diff --git a/default.nix b/default.nix deleted file mode 100644 index fceb631..0000000 --- a/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -let requiredVersion = import ./lib/minver.nix; in - -if ! builtins ? nixVersion || builtins.compareVersions requiredVersion builtins.nixVersion == 1 then - - abort '' - - This version of Nixpkgs requires Nix >= ${requiredVersion}, please upgrade: - - - If you are running NixOS, `nixos-rebuild' can be used to upgrade your system. - - - Alternatively, with Nix > 2.0 `nix upgrade-nix' can be used to imperatively - upgrade Nix. You may use `nix-env --version' to check which version you have. - - - If you installed Nix using the install script (https://nixos.org/nix/install), - it is safe to upgrade by running it again: - - curl -L https://nixos.org/nix/install | sh - - For more information, please see the NixOS release notes at - https://nixos.org/nixos/manual or locally at - ${toString ./nixos/doc/manual/release-notes}. - - If you need further help, see https://nixos.org/nixos/support.html - '' - -else - - import ./pkgs/top-level/impure.nix \ No newline at end of file diff --git a/flake.nix b/flake.nix index 30263b8..3142288 100644 --- a/flake.nix +++ b/flake.nix @@ -1,46 +1,5 @@ { outputs = { self, ... }: - let - forAllSystems = self.lib.genAttrs self.lib.systems.flakeExposed; - in - { - lib = import ./lib; - - auxPackages = forAllSystems (system: - ( - let requiredVersion = import ./lib/minver.nix; in - - if ! builtins ? nixVersion || builtins.compareVersions requiredVersion builtins.nixVersion == 1 then - abort '' - This version of Nixpkgs requires Nix >= ${requiredVersion}, please upgrade: - - - If you are running NixOS, `nixos-rebuild' can be used to upgrade your system. - - - Alternatively, with Nix > 2.0 `nix upgrade-nix' can be used to imperatively - upgrade Nix. You may use `nix-env --version' to check which version you have. - - - If you installed Nix using the install script (https://nixos.org/nix/install), - it is safe to upgrade by running it again: - - curl -L https://nixos.org/nix/install | sh - - For more information, please see the NixOS release notes at - https://nixos.org/nixos/manual or locally at - ${toString ./nixos/doc/manual/release-notes}. - - If you need further help, see https://nixos.org/nixos/support.html - '' - else - import ./pkgs/top-level/default.nix { localSystem = system; } - ) - ); - - legacyPackages = forAllSystems (system: import ./. { inherit system; }); - - # To test, run nix build .#tests.x86_64-linux.release - tests = forAllSystems (system: { - systems = import ./lib/tests/systems.nix; - release = import ./lib/tests/release.nix { pkgs = self.auxPackages.${system}; }; - }); - }; + {} + ; } diff --git a/lib/.version b/lib/.version deleted file mode 100644 index 420f61e..0000000 --- a/lib/.version +++ /dev/null @@ -1 +0,0 @@ -24.05 \ No newline at end of file diff --git a/lib/README.md b/lib/README.md deleted file mode 100644 index 1cf1067..0000000 --- a/lib/README.md +++ /dev/null @@ -1,159 +0,0 @@ -# Nixpkgs lib - -This directory contains the implementation, documentation and tests for the Nixpkgs `lib` library. - -## Overview - -The evaluation entry point for `lib` is [`default.nix`](default.nix). -This file evaluates to an attribute set containing two separate kinds of attributes: -- Sub-libraries: - Attribute sets grouping together similar functionality. - Each sub-library is defined in a separate file usually matching its attribute name. - - Example: `lib.lists` is a sub-library containing list-related functionality such as `lib.lists.take` and `lib.lists.imap0`. - These are defined in the file [`lists.nix`](lists.nix). - -- Aliases: - Attributes that point to an attribute of the same name in some sub-library. - - Example: `lib.take` is an alias for `lib.lists.take`. - -Most files in this directory are definitions of sub-libraries, but there are a few others: -- [`minver.nix`](minver.nix): A string of the minimum version of Nix that is required to evaluate Nixpkgs. -- [`tests`](tests): Tests, see [Running tests](#running-tests) - - [`release.nix`](tests/release.nix): A derivation aggregating all tests - - [`misc.nix`](tests/misc.nix): Evaluation unit tests for most sub-libraries - - `*.sh`: Bash scripts that run tests for specific sub-libraries - - All other files in this directory exist to support the tests -- [`systems`](systems): The `lib.systems` sub-library, structured into a directory instead of a file due to its complexity -- [`path`](path): The `lib.path` sub-library, which includes tests as well as a document describing the design goals of `lib.path` -- All other files in this directory are sub-libraries - -### Module system - -The [module system](https://nixos.org/manual/nixpkgs/#module-system) spans multiple sub-libraries: -- [`modules.nix`](modules.nix): `lib.modules` for the core functions and anything not relating to option definitions -- [`options.nix`](options.nix): `lib.options` for anything relating to option definitions -- [`types.nix`](types.nix): `lib.types` for module system types - -## PR Guidelines - -Follow these guidelines for proposing a change to the interface of `lib`. - -### Provide a Motivation - -Clearly describe why the change is necessary and its use cases. - -Make sure that the change benefits the user more than the added mental effort of looking it up and keeping track of its definition. -If the same can reasonably be done with the existing interface, -consider just updating the documentation with more examples and links. -This is also known as the [Fairbairn Threshold](https://wiki.haskell.org/Fairbairn_threshold). - -Through this principle we avoid the human cost of duplicated functionality in an overly large library. - -### Make one PR for each change - -Don't have multiple changes in one PR, instead split it up into multiple ones. - -This keeps the conversation focused and has a higher chance of getting merged. - -### Name the interface appropriately - -When introducing new names to the interface, such as new function, or new function attributes, -make sure to name it appropriately. - -Names should be self-explanatory and consistent with the rest of `lib`. -If there's no obvious best name, include the alternatives you considered. - -### Write documentation - -Update the [reference documentation](#reference-documentation) to reflect the change. - -Be generous with links to related functionality. - -### Write tests - -Add good test coverage for the change, including: - -- Tests for edge cases, such as empty values or lists. -- Tests for tricky inputs, such as a string with string context or a path that doesn't exist. -- Test all code paths, such as `if-then-else` branches and returned attributes. -- If the tests for the sub-library are written in bash, - test messages of custom errors, such as `throw` or `abortMsg`, - - At the time this is only not necessary for sub-libraries tested with [`tests/misc.nix`](./tests/misc.nix). - -See [running tests](#running-tests) for more details on the test suites. - -### Write tidy code - -Name variables well, even if they're internal. -The code should be as self-explanatory as possible. -Be generous with code comments when appropriate. - -As a baseline, follow the [Nixpkgs code conventions](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#code-conventions). - -### Write efficient code - -Nix generally does not have free abstractions. -Be aware that seemingly straightforward changes can cause more allocations and a decrease in performance. -That said, don't optimise prematurely, especially in new code. - -## Reference documentation - -Reference documentation for library functions is written above each function as a multi-line comment. -These comments are processed using [nixdoc](https://github.com/nix-community/nixdoc) and [rendered in the Nixpkgs manual](https://nixos.org/manual/nixpkgs/stable/#chap-functions). -The nixdoc README describes the [comment format](https://github.com/nix-community/nixdoc#comment-format). - -See [doc/README.md](../doc/README.md) for how to build the manual. - -## Running tests - -All library tests can be run by building the derivation in [`tests/release.nix`](tests/release.nix): - -```bash -nix-build tests/release.nix -``` - -Some commands for quicker iteration over parts of the test suite are also available: - -```bash -# Run all evaluation unit tests in tests/misc.nix -# if the resulting list is empty, all tests passed -nix-instantiate --eval --strict tests/misc.nix - -# Run the module system tests -tests/modules.sh - -# Run the lib.sources tests -tests/sources.sh - -# Run the lib.filesystem tests -tests/filesystem.sh - -# Run the lib.path property tests -path/tests/prop.sh - -# Run the lib.fileset tests -fileset/tests.sh -``` - -## Commit conventions - -- Make sure you read about the [commit conventions](../CONTRIBUTING.md#commit-conventions) common to Nixpkgs as a whole. - -- Format the commit messages in the following way: - - ``` - lib.(section): (init | add additional argument | refactor | etc) - - (Motivation for change. Additional information.) - ``` - - Examples: - - * lib.getExe': check arguments - * lib.fileset: Add an additional argument in the design docs - - Closes #264537 - diff --git a/lib/ascii-table.nix b/lib/ascii-table.nix deleted file mode 100644 index 7498993..0000000 --- a/lib/ascii-table.nix +++ /dev/null @@ -1,99 +0,0 @@ -{ "\t" = 9; - "\n" = 10; - "\r" = 13; - " " = 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; - "\\" = 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; -} diff --git a/lib/asserts.nix b/lib/asserts.nix deleted file mode 100644 index c7900c5..0000000 --- a/lib/asserts.nix +++ /dev/null @@ -1,144 +0,0 @@ -{ lib }: - -rec { - - /** - Throw if pred is false, else return pred. - Intended to be used to augment asserts with helpful error messages. - - # Inputs - - `pred` - - : Predicate that needs to succeed, otherwise `msg` is thrown - - `msg` - - : Message to throw in case `pred` fails - - # Type - - ``` - assertMsg :: Bool -> String -> Bool - ``` - - # Examples - :::{.example} - ## `lib.asserts.assertMsg` usage example - - ```nix - assertMsg false "nope" - stderr> error: nope - assert assertMsg ("foo" == "bar") "foo is not bar, silly"; "" - stderr> error: foo is not bar, silly - ``` - - ::: - */ - # TODO(Profpatsch): add tests that check stderr - assertMsg = - pred: - msg: - pred || builtins.throw msg; - - /** - Specialized `assertMsg` for checking if `val` is one of the elements - of the list `xs`. Useful for checking enums. - - # Inputs - - `name` - - : The name of the variable the user entered `val` into, for inclusion in the error message - - `val` - - : The value of what the user provided, to be compared against the values in `xs` - - `xs` - - : The list of valid values - - # Type - - ``` - assertOneOf :: String -> ComparableVal -> List ComparableVal -> Bool - ``` - - # Examples - :::{.example} - ## `lib.asserts.assertOneOf` usage example - - ```nix - let sslLibrary = "libressl"; - in assertOneOf "sslLibrary" sslLibrary [ "openssl" "bearssl" ] - stderr> error: sslLibrary must be one of [ - stderr> "openssl" - stderr> "bearssl" - stderr> ], but is: "libressl" - ``` - - ::: - */ - assertOneOf = - 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 - of the list `xs`. Useful for checking lists of supported attributes. - - # Inputs - - `name` - - : The name of the variable the user entered `val` into, for inclusion in the error message - - `vals` - - : The list of values of what the user provided, to be compared against the values in `xs` - - `xs` - - : The list of valid values - - # Type - - ``` - assertEachOneOf :: String -> List ComparableVal -> List ComparableVal -> Bool - ``` - - # Examples - :::{.example} - ## `lib.asserts.assertEachOneOf` usage example - - ```nix - let sslLibraries = [ "libressl" "bearssl" ]; - in assertEachOneOf "sslLibraries" sslLibraries [ "openssl" "bearssl" ] - stderr> error: each element in sslLibraries must be one of [ - stderr> "openssl" - stderr> "bearssl" - stderr> ], but is: [ - stderr> "libressl" - stderr> "bearssl" - stderr> ] - ``` - - ::: - */ - 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}"; -} diff --git a/lib/attrsets.nix b/lib/attrsets.nix deleted file mode 100644 index 83f8d0f..0000000 --- a/lib/attrsets.nix +++ /dev/null @@ -1,2040 +0,0 @@ -/** - Operations on attribute sets. -*/ -{ lib }: - -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; -in - -rec { - inherit (builtins) attrNames listToAttrs hasAttr isAttrs getAttr removeAttrs; - - - /** - Return an attribute from nested attribute sets. - - Nix has an [attribute selection operator `. or`](https://nixos.org/manual/nix/stable/language/operators#attribute-selection) which is sufficient for such queries, as long as the number of attributes is static. For example: - - ```nix - (x.a.b or 6) == attrByPath ["a" "b"] 6 x - # and - (x.${f p}."example.com" or 6) == attrByPath [ (f p) "example.com" ] 6 x - ``` - - - # Inputs - - `attrPath` - - : A list of strings representing the attribute path to return from `set` - - `default` - - : Default value if `attrPath` does not resolve to an existing value - - `set` - - : The nested attribute set to select values from - - # Type - - ``` - attrByPath :: [String] -> Any -> AttrSet -> Any - ``` - - # Examples - :::{.example} - ## `lib.attrsets.attrByPath` usage example - - ```nix - x = { a = { b = 3; }; } - # ["a" "b"] is equivalent to x.a.b - # 6 is a default value to return if the path does not exist in attrset - attrByPath ["a" "b"] 6 x - => 3 - attrByPath ["z" "z"] 6 x - => 6 - ``` - - ::: - */ - attrByPath = - 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 - ) - ); - in - attrByPath' 0 set; - - /** - Return if an attribute from nested attribute set exists. - - Nix has a [has attribute operator `?`](https://nixos.org/manual/nix/stable/language/operators#has-attribute), which is sufficient for such queries, as long as the number of attributes is static. For example: - - ```nix - (x?a.b) == hasAttrByPath ["a" "b"] x - # and - (x?${f p}."example.com") == hasAttrByPath [ (f p) "example.com" ] x - ``` - - **Laws**: - 1. ```nix - hasAttrByPath [] x == true - ``` - - - # Inputs - - `attrPath` - - : A list of strings representing the attribute path to check from `set` - - `e` - - : The nested attribute set to check - - # Type - - ``` - hasAttrByPath :: [String] -> AttrSet -> Bool - ``` - - # Examples - :::{.example} - ## `lib.attrsets.hasAttrByPath` usage example - - ```nix - x = { a = { b = 3; }; } - hasAttrByPath ["a" "b"] x - => true - hasAttrByPath ["z" "z"] x - => false - hasAttrByPath [] (throw "no need") - => true - ``` - - ::: - */ - hasAttrByPath = - 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 - ) - ); - in - hasAttrByPath' 0 e; - - /** - Return the longest prefix of an attribute path that refers to an existing attribute in a nesting of attribute sets. - - Can be used after [`mapAttrsRecursiveCond`](#function-library-lib.attrsets.mapAttrsRecursiveCond) to apply a condition, - although this will evaluate the predicate function on sibling attributes as well. - - Note that the empty attribute path is valid for all values, so this function only throws an exception if any of its inputs does. - - **Laws**: - 1. ```nix - attrsets.longestValidPathPrefix [] x == [] - ``` - - 2. ```nix - hasAttrByPath (attrsets.longestValidPathPrefix p x) x == true - ``` - - - # Inputs - - `attrPath` - - : A list of strings representing the longest possible path that may be returned. - - `v` - - : The nested attribute set to check. - - # Type - - ``` - attrsets.longestValidPathPrefix :: [String] -> Value -> [String] - ``` - - # Examples - :::{.example} - ## `lib.attrsets.longestValidPathPrefix` usage example - - ```nix - x = { a = { b = 3; }; } - attrsets.longestValidPathPrefix ["a" "b" "c"] x - => ["a" "b"] - attrsets.longestValidPathPrefix ["a"] x - => ["a"] - attrsets.longestValidPathPrefix ["z" "z"] x - => [] - attrsets.longestValidPathPrefix ["z" "z"] (throw "no need") - => [] - ``` - - ::: - */ - longestValidPathPrefix = - attrPath: - v: - let - lenAttrPath = length attrPath; - getPrefixForSetAtIndex = - # The nested attribute set to check, if it is an attribute set, which - # is not a given. - remainingSet: - # The index of the attribute we're about to check, as well as - # 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 - 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; - in - getPrefixForSetAtIndex v 0; - - /** - Create a new attribute set with `value` set at the nested attribute location specified in `attrPath`. - - - # Inputs - - `attrPath` - - : A list of strings representing the attribute path to set - - `value` - - : The value to set at the location described by `attrPath` - - # Type - - ``` - setAttrByPath :: [String] -> Any -> AttrSet - ``` - - # Examples - :::{.example} - ## `lib.attrsets.setAttrByPath` usage example - - ```nix - setAttrByPath ["a" "b"] 3 - => { a = { b = 3; }; } - ``` - - ::: - */ - setAttrByPath = - attrPath: - value: - let - len = length attrPath; - 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 - path it will throw an error. - - Nix has an [attribute selection operator](https://nixos.org/manual/nix/stable/language/operators#attribute-selection) which is sufficient for such queries, as long as the number of attributes is static. For example: - - ```nix - x.a.b == getAttrByPath ["a" "b"] x - # and - x.${f p}."example.com" == getAttrByPath [ (f p) "example.com" ] x - ``` - - - # Inputs - - `attrPath` - - : A list of strings representing the attribute path to get from `set` - - `set` - - : The nested attribute set to find the value in. - - # Type - - ``` - getAttrFromPath :: [String] -> AttrSet -> Any - ``` - - # Examples - :::{.example} - ## `lib.attrsets.getAttrFromPath` usage example - - ```nix - x = { a = { b = 3; }; } - getAttrFromPath ["a" "b"] x - => 3 - getAttrFromPath ["z" "z"] x - => error: cannot find attribute `z.z' - ``` - - ::: - */ - getAttrFromPath = - 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` - - : 1\. Function argument - - `v` - - : 2\. Function argument - - # Type - - ``` - concatMapAttrs :: (String -> a -> AttrSet) -> AttrSet -> AttrSet - ``` - - # Examples - :::{.example} - ## `lib.attrsets.concatMapAttrs` usage example - - ```nix - concatMapAttrs - (name: value: { - ${name} = value; - ${name + value} = value; - }) - { x = "a"; y = "b"; } - => { x = "a"; xa = "a"; y = "b"; yb = "b"; } - ``` - - ::: - */ - concatMapAttrs = f: v: - foldl' mergeAttrs { } - (attrValues - (mapAttrs f v) - ); - - - /** - Update or set specific paths of an attribute set. - - Takes a list of updates to apply and an attribute set to apply them to, - and returns the attribute set with the updates applied. Updates are - represented as `{ path = ...; update = ...; }` values, where `path` is a - list of strings representing the attribute path that should be updated, - and `update` is a function that takes the old value at that attribute path - as an argument and returns the new - value it should be. - - Properties: - - - Updates to deeper attribute paths are applied before updates to more - shallow attribute paths - - - Multiple updates to the same attribute path are applied in the order - they appear in the update list - - - If any but the last `path` element leads into a value that is not an - attribute set, an error is thrown - - - If there is an update for an attribute path that doesn't exist, - accessing the argument in the update function causes an error, but - intermediate attribute sets are implicitly created as needed - - # Type - - ``` - updateManyAttrsByPath :: [{ path :: [String]; update :: (Any -> Any); }] -> AttrSet -> AttrSet - ``` - - # Examples - :::{.example} - ## `lib.attrsets.updateManyAttrsByPath` usage example - - ```nix - updateManyAttrsByPath [ - { - path = [ "a" "b" ]; - update = old: { d = old.c; }; - } - { - path = [ "a" "b" "c" ]; - update = old: old + 1; - } - { - path = [ "x" "y" ]; - update = old: "xy"; - } - ] { a.b.c = 0; } - => { a = { b = { d = 1; }; }; x = { y = "xy"; }; } - ``` - - ::: - */ - 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; - - # 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 - # If there are nested modifications, try to apply them to the value - 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 - 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."); - - # 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; - - in updates: value: go 0 true value updates; - - /** - Return the specified attributes from a set. - - - # Inputs - - `nameList` - - : The list of attributes to fetch from `set`. Each attribute name must exist on the attrbitue set - - `set` - - : The set to get attribute values from - - # Type - - ``` - attrVals :: [String] -> AttrSet -> [Any] - ``` - - # Examples - :::{.example} - ## `lib.attrsets.attrVals` usage example - - ```nix - attrVals ["a" "b" "c"] as - => [as.a as.b as.c] - ``` - - ::: - */ - attrVals = - nameList: - set: map (x: set.${x}) nameList; - - - /** - Return the values of all attributes in the given set, sorted by - attribute name. - - # Type - - ``` - attrValues :: AttrSet -> [Any] - ``` - - # Examples - :::{.example} - ## `lib.attrsets.attrValues` usage example - - ```nix - attrValues {c = 3; a = 1; b = 2;} - => [1 2 3] - ``` - - ::: - */ - attrValues = builtins.attrValues; - - - /** - Given a set of attribute names, return the set of the corresponding - attributes from the given set. - - - # Inputs - - `names` - - : A list of attribute names to get out of `set` - - `attrs` - - : The set to get the named attributes from - - # Type - - ``` - getAttrs :: [String] -> AttrSet -> AttrSet - ``` - - # Examples - :::{.example} - ## `lib.attrsets.getAttrs` usage example - - ```nix - getAttrs [ "a" "b" ] { a = 1; b = 2; c = 3; } - => { a = 1; b = 2; } - ``` - - ::: - */ - getAttrs = - names: - attrs: genAttrs names (name: attrs.${name}); - - /** - Collect each attribute named `attr` from a list of attribute - sets. Sets that don't contain the named attribute are ignored. - - # Inputs - - `attr` - - : The attribute name to get out of the sets. - - `list` - - : The list of attribute sets to go through - - # Type - - ``` - catAttrs :: String -> [AttrSet] -> [Any] - ``` - - # Examples - :::{.example} - ## `lib.attrsets.catAttrs` usage example - - ```nix - catAttrs "a" [{a = 1;} {b = 0;} {a = 2;}] - => [1 2] - ``` - - ::: - */ - catAttrs = builtins.catAttrs; - - - /** - Filter an attribute set by removing all attributes for which the - given predicate return false. - - - # Inputs - - `pred` - - : Predicate taking an attribute name and an attribute value, which returns `true` to include the attribute, or `false` to exclude the attribute. - - `set` - - : The attribute set to filter - - # Type - - ``` - filterAttrs :: (String -> Any -> Bool) -> AttrSet -> AttrSet - ``` - - # Examples - :::{.example} - ## `lib.attrsets.filterAttrs` usage example - - ```nix - filterAttrs (n: v: n == "foo") { foo = 1; bar = 2; } - => { foo = 1; } - ``` - - ::: - */ - filterAttrs = - 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` - - : Predicate taking an attribute name and an attribute value, which returns `true` to include the attribute, or `false` to exclude the attribute. - - `set` - - : The attribute set to filter - - # Type - - ``` - filterAttrsRecursive :: (String -> Any -> Bool) -> AttrSet -> AttrSet - ``` - - # Examples - :::{.example} - ## `lib.attrsets.filterAttrsRecursive` usage example - - ```nix - filterAttrsRecursive (n: v: v != null) { foo = { bar = null; }; } - => { foo = {}; } - ``` - - ::: - */ - filterAttrsRecursive = - 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 [] - ) (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`. - - Attention: - - There is a completely different function `lib.foldAttrs` - which has nothing to do with this function, despite the similar name. - - - # Inputs - - `f` - - : 1\. Function argument - - `init` - - : 2\. Function argument - - `set` - - : 3\. Function argument - - # Type - - ``` - foldlAttrs :: ( a -> String -> b -> a ) -> a -> { ... :: b } -> a - ``` - - # Examples - :::{.example} - ## `lib.attrsets.foldlAttrs` usage example - - ```nix - foldlAttrs - (acc: name: value: { - sum = acc.sum + value; - names = acc.names ++ [name]; - }) - { sum = 0; names = []; } - { - foo = 1; - bar = 10; - } - -> - { - sum = 11; - names = ["bar" "foo"]; - } - - foldlAttrs - (throw "function not needed") - 123 - {}; - -> - 123 - - foldlAttrs - (acc: _: _: acc) - 3 - { z = throw "value not needed"; a = throw "value not needed"; }; - -> - 3 - - The accumulator doesn't have to be an attrset. - It can be as simple as a number or string. - - foldlAttrs - (acc: _: v: acc * 10 + v) - 1 - { z = 1; a = 2; }; - -> - 121 - ``` - - ::: - */ - 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` - - : A function, given a value and a collector combines the two. - - `nul` - - : The starting value. - - `list_of_attrs` - - : A list of attribute sets to fold together by key. - - # Type - - ``` - foldAttrs :: (Any -> Any -> Any) -> Any -> [AttrSets] -> Any - ``` - - # Examples - :::{.example} - ## `lib.attrsets.foldAttrs` usage example - - ```nix - foldAttrs (item: acc: [item] ++ acc) [] [{ a = 2; } { a = 3; }] - => { a = [ 2 3 ]; } - ``` - - ::: - */ - 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; - - - /** - 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` - - : Given an attribute's value, determine if recursion should stop. - - `attrs` - - : The attribute set to recursively collect. - - # Type - - ``` - collect :: (AttrSet -> Bool) -> AttrSet -> [x] - ``` - - # Examples - :::{.example} - ## `lib.attrsets.collect` usage example - - ```nix - collect isList { a = { b = ["b"]; }; c = [1]; } - => [["b"] [1]] - - collect (x: x ? outPath) - { a = { outPath = "a/"; }; b = { outPath = "b/"; }; } - => [{ outPath = "a/"; } { outPath = "b/"; }] - ``` - - ::: - */ - collect = - 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` - - : Attribute set with attributes that are lists of values - - # Type - - ``` - cartesianProduct :: AttrSet -> [AttrSet] - ``` - - # Examples - :::{.example} - ## `lib.attrsets.cartesianProduct` usage example - - ```nix - cartesianProduct { a = [ 1 2 ]; b = [ 10 20 ]; } - => [ - { a = 1; b = 10; } - { a = 1; b = 20; } - { a = 2; b = 10; } - { a = 2; b = 20; } - ] - ``` - - ::: - */ - cartesianProduct = - attrsOfLists: - foldl' (listOfAttrs: attrName: - concatMap (attrs: - map (listValue: attrs // { ${attrName} = listValue; }) attrsOfLists.${attrName} - ) listOfAttrs - ) [{}] (attrNames attrsOfLists); - - - /** - Return the result of function f applied to the cartesian product of attribute set value combinations. - Equivalent to using cartesianProduct followed by map. - - # Inputs - - `f` - - : A function, given an attribute set, it returns a new value. - - `attrsOfLists` - - : Attribute set with attributes that are lists of values - - # Type - - ``` - mapCartesianProduct :: (AttrSet -> a) -> AttrSet -> [a] - ``` - - # Examples - :::{.example} - ## `lib.attrsets.mapCartesianProduct` usage example - - ```nix - mapCartesianProduct ({a, b}: "${a}-${b}") { a = [ "1" "2" ]; b = [ "3" "4" ]; } - => [ "1-3" "1-4" "2-3" "2-4" ] - ``` - - ::: - - */ - mapCartesianProduct = f: attrsOfLists: map f (cartesianProduct attrsOfLists); - - /** - Utility function that creates a `{name, value}` pair as expected by `builtins.listToAttrs`. - - - # Inputs - - `name` - - : Attribute name - - `value` - - : Attribute value - - # Type - - ``` - nameValuePair :: String -> Any -> { name :: String; value :: Any; } - ``` - - # Examples - :::{.example} - ## `lib.attrsets.nameValuePair` usage example - - ```nix - nameValuePair "some" 6 - => { name = "some"; value = 6; } - ``` - - ::: - */ - nameValuePair = - name: - value: - { inherit name value; }; - - - /** - Apply a function to each element in an attribute set, creating a new attribute set. - - # Inputs - - `f` - - : A function that takes an attribute name and its value, and returns the new value for the attribute. - - `attrset` - - : The attribute set to iterate through. - - # Type - - ``` - mapAttrs :: (String -> Any -> Any) -> AttrSet -> AttrSet - ``` - - # Examples - :::{.example} - ## `lib.attrsets.mapAttrs` usage example - - ```nix - mapAttrs (name: value: name + "-" + value) - { x = "foo"; y = "bar"; } - => { x = "x-foo"; y = "y-bar"; } - ``` - - ::: - */ - 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` - - : A function, given an attribute's name and value, returns a new `nameValuePair`. - - `set` - - : Attribute set to map over. - - # Type - - ``` - mapAttrs' :: (String -> Any -> { name :: String; value :: Any; }) -> AttrSet -> AttrSet - ``` - - # Examples - :::{.example} - ## `lib.attrsets.mapAttrs'` usage example - - ```nix - mapAttrs' (name: value: nameValuePair ("foo_" + name) ("bar-" + value)) - { x = "a"; y = "b"; } - => { foo_x = "bar-a"; foo_y = "bar-b"; } - ``` - - ::: - */ - mapAttrs' = - f: - set: - listToAttrs (map (attr: f attr set.${attr}) (attrNames set)); - - - /** - Call a function for each attribute in the given set and return - the result in a list. - - # Inputs - - `f` - - : A function, given an attribute's name and value, returns a new value. - - `attrs` - - : Attribute set to map over. - - # Type - - ``` - mapAttrsToList :: (String -> a -> b) -> AttrSet -> [b] - ``` - - # Examples - :::{.example} - ## `lib.attrsets.mapAttrsToList` usage example - - ```nix - mapAttrsToList (name: value: name + value) - { x = "a"; y = "b"; } - => [ "xa" "yb" ] - ``` - - ::: - */ - 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). - Each element of the resulting list is an attribute set with these attributes: - - `name` (string): The name of the attribute - - `value` (any): The value of the attribute - - The following is always true: - ```nix - builtins.listToAttrs (attrsToList attrs) == attrs - ``` - - :::{.warning} - The opposite is not always true. In general expect that - ```nix - attrsToList (builtins.listToAttrs list) != list - ``` - - This is because the `listToAttrs` removes duplicate names and doesn't preserve the order of the list. - ::: - - # Inputs - - `set` - - : The attribute set to deconstruct. - - # Type - - ``` - attrsToList :: AttrSet -> [ { name :: String; value :: Any; } ] - ``` - - # Examples - :::{.example} - ## `lib.attrsets.attrsToList` usage example - - ```nix - attrsToList { foo = 1; bar = "asdf"; } - => [ { name = "bar"; value = "asdf"; } { name = "foo"; value = 1; } ] - ``` - - ::: - */ - 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. - Also, the first argument of the mapping function is a *list* of the attribute names that form the path to the leaf attribute. - - For a function that gives you control over what counts as a leaf, see `mapAttrsRecursiveCond`. - - :::{#map-attrs-recursive-example .example} - # Map over leaf attributes - - ```nix - mapAttrsRecursive (path: value: concatStringsSep "-" (path ++ [value])) - { n = { a = "A"; m = { b = "B"; c = "C"; }; }; d = "D"; } - ``` - evaluates to - ```nix - { n = { a = "n-a-A"; m = { b = "n-m-b-B"; c = "n-m-c-C"; }; }; d = "d-D"; } - ``` - ::: - - # Type - ``` - mapAttrsRecursive :: ([String] -> a -> b) -> AttrSet -> AttrSet - ``` - */ - 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. - If the predicate returns false, `mapAttrsRecursiveCond` does not recurse, but instead applies the mapping function. - If the predicate returns true, it does recurse, and does not apply the mapping function. - - :::{#map-attrs-recursive-cond-example .example} - # Map over an leaf attributes defined by a condition - - Map derivations to their `name` attribute. - Derivatons are identified as attribute sets that contain `{ type = "derivation"; }`. - ```nix - mapAttrsRecursiveCond - (as: !(as ? "type" && as.type == "derivation")) - (x: x.name) - attrs - ``` - ::: - - # Type - ``` - mapAttrsRecursiveCond :: (AttrSet -> Bool) -> ([String] -> a -> b) -> AttrSet -> AttrSet - ``` - */ - mapAttrsRecursiveCond = - cond: - f: - set: - let - 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` - - : Names of values in the resulting attribute set. - - `f` - - : A function, given the name of the attribute, returns the attribute's value. - - # Type - - ``` - genAttrs :: [ String ] -> (String -> Any) -> AttrSet - ``` - - # Examples - :::{.example} - ## `lib.attrsets.genAttrs` usage example - - ```nix - genAttrs [ "foo" "bar" ] (name: "x_" + name) - => { foo = "x_foo"; bar = "x_bar"; } - ``` - - ::: - */ - 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` - - : Value to check. - - # Type - - ``` - isDerivation :: Any -> Bool - ``` - - # Examples - :::{.example} - ## `lib.attrsets.isDerivation` usage example - - ```nix - nixpkgs = import {} - isDerivation nixpkgs.ruby - => true - isDerivation "foobar" - => false - ``` - - ::: - */ - isDerivation = - value: value.type or null == "derivation"; - - /** - Converts a store path to a fake derivation. - - - # Inputs - - `path` - - : A store path to convert to a derivation. - - # Type - - ``` - 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; - - - /** - If `cond` is true, return the attribute set `as`, - otherwise an empty attribute set. - - - # Inputs - - `cond` - - : Condition under which the `as` attribute set is returned. - - `as` - - : The attribute set to return if `cond` is `true`. - - # Type - - ``` - optionalAttrs :: Bool -> AttrSet -> AttrSet - ``` - - # Examples - :::{.example} - ## `lib.attrsets.optionalAttrs` usage example - - ```nix - optionalAttrs (true) { my = "set"; } - => { my = "set"; } - optionalAttrs (false) { my = "set"; } - => { } - ``` - - ::: - */ - optionalAttrs = - cond: - as: - if cond then as else {}; - - - /** - Merge sets of attributes and use the function `f` to merge attributes - values. - - - # Inputs - - `names` - - : List of attribute names to zip. - - `f` - - : A function, accepts an attribute name, all the values, and returns a combined value. - - `sets` - - : List of values from the list of attribute sets. - - # Type - - ``` - zipAttrsWithNames :: [ String ] -> (String -> [ Any ] -> Any) -> [ AttrSet ] -> AttrSet - ``` - - # Examples - :::{.example} - ## `lib.attrsets.zipAttrsWithNames` usage example - - ```nix - zipAttrsWithNames ["a"] (name: vs: vs) [{a = "x";} {a = "y"; b = "z";}] - => { a = ["x" "y"]; } - ``` - - ::: - */ - zipAttrsWithNames = - 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. - Like `lib.attrsets.zipAttrsWithNames` with all key names are passed for `names`. - - Implementation note: Common names appear multiple times in the list of - names, hopefully this does not affect the system because the maximal - laziness avoid computing twice the same expression and `listToAttrs` does - not care about duplicated attribute names. - - # Type - - ``` - zipAttrsWith :: (String -> [ Any ] -> Any) -> [ AttrSet ] -> AttrSet - ``` - - # Examples - :::{.example} - ## `lib.attrsets.zipAttrsWith` usage example - - ```nix - zipAttrsWith (name: values: values) [{a = "x";} {a = "y"; b = "z";}] - => { a = ["x" "y"]; b = ["z"]; } - ``` - - ::: - */ - 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. - - Like `lib.attrsets.zipAttrsWith` with `(name: values: values)` as the function. - - # Type - - ``` - zipAttrs :: [ AttrSet ] -> AttrSet - ``` - - # Examples - :::{.example} - ## `lib.attrsets.zipAttrs` usage example - - ```nix - zipAttrs [{a = "x";} {a = "y"; b = "z";}] - => { a = ["x" "y"]; b = ["z"]; } - ``` - - ::: - */ - zipAttrs = zipAttrsWith (name: values: values); - - /** - Merge a list of attribute sets together using the `//` operator. - In case of duplicate attributes, values from later list elements take precedence over earlier ones. - 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` - - : 1\. Function argument - - # Type - - ``` - mergeAttrsList :: [ Attrs ] -> Attrs - ``` - - # Examples - :::{.example} - ## `lib.attrsets.mergeAttrsList` usage example - - ```nix - mergeAttrsList [ { a = 0; b = 1; } { c = 2; d = 3; } ] - => { a = 0; b = 1; c = 2; d = 3; } - mergeAttrsList [ { a = 0; } { a = 1; } ] - => { a = 1; } - ``` - - ::: - */ - 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: - # 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 - else - # Otherwise there will be exactly 1 element due to the invariant, in which case we just return it directly - elemAt list start; - in - if list == [ ] then - # Calling binaryMerge as below would not satisfy its invariant - { } - 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 - accept 3 arguments which are the path to reach the attribute, a part of - the first attribute set and a part of the second attribute set. When - the predicate is satisfied, the value of the first attribute set is - replaced by the value of the second attribute set. - - - # Inputs - - `pred` - - : Predicate, taking the path to the current attribute as a list of strings for attribute names, and the two values at that path from the original arguments. - - `lhs` - - : Left attribute set of the merge. - - `rhs` - - : Right attribute set of the merge. - - # Type - - ``` - recursiveUpdateUntil :: ( [ String ] -> AttrSet -> AttrSet -> Bool ) -> AttrSet -> AttrSet -> AttrSet - ``` - - # Examples - :::{.example} - ## `lib.attrsets.recursiveUpdateUntil` usage example - - ```nix - 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; - } - - => { - 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 - } - ``` - - ::: - */ - 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]; - - - /** - A recursive variant of the update operator ‘//’. The recursion - stops when one of the attribute values is not an attribute set, - in which case the right hand side value takes precedence over the - left hand side value. - - - # Inputs - - `lhs` - - : Left attribute set of the merge. - - `rhs` - - : Right attribute set of the merge. - - # Type - - ``` - recursiveUpdate :: AttrSet -> AttrSet -> AttrSet - ``` - - # Examples - :::{.example} - ## `lib.attrsets.recursiveUpdate` usage example - - ```nix - recursiveUpdate { - boot.loader.grub.enable = true; - boot.loader.grub.device = "/dev/hda"; - } { - boot.loader.grub.device = ""; - } - - returns: { - boot.loader.grub.enable = true; - boot.loader.grub.device = ""; - } - ``` - - ::: - */ - recursiveUpdate = - 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` - - : Attribute set structure to match - - `attrs` - - : Attribute set to check - - # Type - - ``` - matchAttrs :: AttrSet -> AttrSet -> Bool - ``` - - # Examples - :::{.example} - ## `lib.attrsets.matchAttrs` usage example - - ```nix - matchAttrs { cpu = {}; } { cpu = { bits = 64; }; } - => true - ``` - - ::: - */ - matchAttrs = - pattern: - attrs: - assert isAttrs pattern; - all - ( # Compare equality between `pattern` & `attrs`. - attr: - # Missing attr, not equal. - 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 - ) - ) - (attrNames pattern); - - /** - Override only the attributes that are already present in the old set - useful for deep-overriding. - - - # Inputs - - `old` - - : Original attribute set - - `new` - - : Attribute set with attributes to override in `old`. - - # Type - - ``` - overrideExisting :: AttrSet -> AttrSet -> AttrSet - ``` - - # Examples - :::{.example} - ## `lib.attrsets.overrideExisting` usage example - - ```nix - overrideExisting {} { a = 1; } - => {} - overrideExisting { b = 2; } { a = 1; } - => { b = 2; } - overrideExisting { a = 3; b = 2; } { a = 1; } - => { a = 1; b = 2; } - ``` - - ::: - */ - overrideExisting = - old: - new: - mapAttrs (name: value: new.${name} or value) old; - - - /** - Turns a list of strings into a human-readable description of those - strings represented as an attribute path. The result of this function is - not intended to be machine-readable. - Create a new attribute set with `value` set at the nested attribute location specified in `attrPath`. - - - # Inputs - - `path` - - : Attribute path to render to a string - - # Type - - ``` - showAttrPath :: [String] -> String - ``` - - # Examples - :::{.example} - ## `lib.attrsets.showAttrPath` usage example - - ```nix - showAttrPath [ "foo" "10" "bar" ] - => "foo.\"10\".bar" - showAttrPath [] - => "" - ``` - - ::: - */ - showAttrPath = - 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` - - : 1\. Function argument - - `pkg` - - : 2\. Function argument - - # Type - - ``` - getOutput :: String -> Derivation -> String - ``` - - # Examples - :::{.example} - ## `lib.attrsets.getOutput` usage example - - ```nix - getOutput "dev" pkgs.openssl - => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-dev" - ``` - - ::: - */ - getOutput = output: pkg: - if ! pkg ? outputSpecified || ! pkg.outputSpecified - then pkg.${output} or pkg.out or pkg - else pkg; - - /** - Get a package's `bin` output. - If the output does not exist, fallback to `.out` and then to the default. - - # Inputs - - `pkg` - - : The package whose `bin` output will be retrieved. - - # Type - - ``` - getBin :: Derivation -> String - ``` - - # Examples - :::{.example} - ## `lib.attrsets.getBin` usage example - - ```nix - getBin pkgs.openssl - => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r" - ``` - - ::: - */ - getBin = getOutput "bin"; - - - /** - Get a package's `lib` output. - If the output does not exist, fallback to `.out` and then to the default. - - # Inputs - - `pkg` - - : The package whose `lib` output will be retrieved. - - # Type - - ``` - getLib :: Derivation -> String - ``` - - # Examples - :::{.example} - ## `lib.attrsets.getLib` usage example - - ```nix - getLib pkgs.openssl - => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-lib" - ``` - - ::: - */ - getLib = getOutput "lib"; - - - /** - Get a package's `dev` output. - If the output does not exist, fallback to `.out` and then to the default. - - # Inputs - - `pkg` - - : The package whose `dev` output will be retrieved. - - # Type - - ``` - getDev :: Derivation -> String - ``` - - # Examples - :::{.example} - ## `lib.attrsets.getDev` usage example - - ```nix - getDev pkgs.openssl - => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-dev" - ``` - - ::: - */ - getDev = getOutput "dev"; - - - /** - Get a package's `man` output. - If the output does not exist, fallback to `.out` and then to the default. - - # Inputs - - `pkg` - - : The package whose `man` output will be retrieved. - - # Type - - ``` - getMan :: Derivation -> String - ``` - - # Examples - :::{.example} - ## `lib.attrsets.getMan` usage example - - ```nix - getMan pkgs.openssl - => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-man" - ``` - - ::: - */ - getMan = getOutput "man"; - - /** - Pick the outputs of packages to place in `buildInputs` - - # Inputs - - `pkgs` - - : List of packages. - - # Type - - ``` - chooseDevOutputs :: [Derivation] -> [String] - ``` - */ - chooseDevOutputs = builtins.map getDev; - - /** - Make various Nix tools consider the contents of the resulting - attribute set when looking for what to build, find, etc. - - This function only affects a single attribute set; it does not - apply itself recursively for nested attribute sets. - - - # Inputs - - `attrs` - - : An attribute set to scan for derivations. - - # Type - - ``` - recurseIntoAttrs :: AttrSet -> AttrSet - ``` - - # Examples - :::{.example} - ## `lib.attrsets.recurseIntoAttrs` usage example - - ```nix - { pkgs ? import {} }: - { - myTools = pkgs.lib.recurseIntoAttrs { - inherit (pkgs) hello figlet; - }; - } - ``` - - ::: - */ - recurseIntoAttrs = - attrs: - attrs // { recurseForDerivations = true; }; - - /** - Undo the effect of recurseIntoAttrs. - - - # Inputs - - `attrs` - - : An attribute set to not scan for derivations. - - # Type - - ``` - dontRecurseIntoAttrs :: AttrSet -> AttrSet - ``` - */ - dontRecurseIntoAttrs = - attrs: - attrs // { recurseForDerivations = false; }; - - /** - `unionOfDisjoint x y` is equal to `x // y // z` where the - attrnames in `z` are the intersection of the attrnames in `x` and - `y`, and all values `assert` with an error message. This - operator is commutative, unlike (//). - - - # Inputs - - `x` - - : 1\. Function argument - - `y` - - : 2\. Function argument - - # Type - - ``` - unionOfDisjoint :: AttrSet -> AttrSet -> AttrSet - ``` - */ - 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; - in - (x // y) // mask; - - # DEPRECATED - 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; - - # DEPRECATED - cartesianProductOfSets = warnIf (isInOldestRelease 2405) - "lib.cartesianProductOfSets is a deprecated alias of lib.cartesianProduct." cartesianProduct; -} diff --git a/lib/cli.nix b/lib/cli.nix deleted file mode 100644 index fcffacb..0000000 --- a/lib/cli.nix +++ /dev/null @@ -1,104 +0,0 @@ -{ lib }: - -rec { - /** - Automatically convert an attribute set to command-line options. - - This helps protect against malformed command lines and also to reduce - boilerplate related to command-line construction for simple use cases. - - `toGNUCommandLine` returns a list of nix strings. - - `toGNUCommandLineShell` returns an escaped shell string. - - - # Inputs - - `options` - - : 1\. Function argument - - `attrs` - - : 2\. Function argument - - - # Examples - :::{.example} - ## `lib.cli.toGNUCommandLineShell` usage example - - ```nix - cli.toGNUCommandLine {} { - data = builtins.toJSON { id = 0; }; - X = "PUT"; - retry = 3; - retry-delay = null; - url = [ "https://example.com/foo" "https://example.com/bar" ]; - silent = false; - verbose = true; - } - => [ - "-X" "PUT" - "--data" "{\"id\":0}" - "--retry" "3" - "--url" "https://example.com/foo" - "--url" "https://example.com/bar" - "--verbose" - ] - - cli.toGNUCommandLineShell {} { - data = builtins.toJSON { id = 0; }; - X = "PUT"; - retry = 3; - retry-delay = null; - url = [ "https://example.com/foo" "https://example.com/bar" ]; - silent = false; - verbose = true; - } - => "'-X' 'PUT' '--data' '{\"id\":0}' '--retry' '3' '--url' 'https://example.com/foo' '--url' 'https://example.com/bar' '--verbose'"; - ``` - - ::: - */ - 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}", - - # 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 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; - - in - builtins.concatLists (lib.mapAttrsToList render options); -} diff --git a/lib/customisation.nix b/lib/customisation.nix deleted file mode 100644 index 0e0d791..0000000 --- a/lib/customisation.nix +++ /dev/null @@ -1,664 +0,0 @@ -{ lib }: - -let - 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 - ; - 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 - derivation in which the attributes of the original are overridden - according to the function `f`. The function `f` is called with - the original derivation attributes. - - `overrideDerivation` allows certain "ad-hoc" customisation - scenarios (e.g. in ~/.config/nixpkgs/config.nix). For instance, - if you want to "patch" the derivation returned by a package - function in Nixpkgs to build another version than what the - function itself provides. - - For another application, see build-support/vm, where this - function is used to build arbitrary derivations inside a QEMU - virtual machine. - - Note that in order to preserve evaluation errors, the new derivation's - outPath depends on the old one's, which means that this function cannot - be used in circular situations when the old derivation also depends on the - new one. - - You should in general prefer `drv.overrideAttrs` over this function; - see the nixpkgs manual for more information on overriding. - - - # Inputs - - `drv` - - : 1\. Function argument - - `f` - - : 2\. Function argument - - # Type - - ``` - overrideDerivation :: Derivation -> ( Derivation -> AttrSet ) -> Derivation - ``` - - # Examples - :::{.example} - ## `lib.customisation.overrideDerivation` usage example - - ```nix - mySed = overrideDerivation pkgs.gnused (oldAttrs: { - name = "sed-4.2.2-pre"; - src = fetchurl { - url = ftp://alpha.gnu.org/gnu/sed/sed-4.2.2-pre.tar.bz2; - hash = "sha256-MxBJRcM2rYzQYwJ5XKxhXTQByvSg5jZc5cSHEZoB2IY="; - }; - patches = []; - }); - ``` - - ::: - */ - 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 {}; - } - // - (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 - injects `override` attribute which can be used to override arguments of - the function. - - Please refer to documentation on [`.overrideDerivation`](#sec-pkg-overrideDerivation) to learn about `overrideDerivation` and caveats - related to its use. - - - # Inputs - - `f` - - : 1\. Function argument - - # Type - - ``` - makeOverridable :: (AttrSet -> a) -> AttrSet -> a - ``` - - # Examples - :::{.example} - ## `lib.customisation.makeOverridable` usage example - - ```nix - nix-repl> x = {a, b}: { result = a + b; } - - nix-repl> y = lib.makeOverridable x { a = 1; b = 2; } - - nix-repl> y - { override = «lambda»; overrideDerivation = «lambda»; result = 3; } - - nix-repl> y.override { a = 10; } - { override = «lambda»; overrideDerivation = «lambda»; result = 12; } - ``` - - ::: - */ - makeOverridable = f: - let - # Creates a functor with the same arguments as f - mirrorArgs = mirrorFunctionArgs f; - in - 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); - - # 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 // { - override = overrideArgs; - overrideDerivation = fdrv: overrideResult (x: overrideDerivation x 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); - - - /** - Call the package function in the file `fn` with the required - arguments automatically. The function is called with the - arguments `args`, but any missing arguments are obtained from - `autoArgs`. This function is intended to be partially - parameterised, e.g., - - ```nix - callPackage = callPackageWith pkgs; - pkgs = { - libfoo = callPackage ./foo.nix { }; - libbar = callPackage ./bar.nix { }; - }; - ``` - - If the `libbar` function expects an argument named `libfoo`, it is - automatically passed as an argument. Overrides or missing - arguments can be supplied in `args`, e.g. - - ```nix - libbar = callPackage ./bar.nix { - libfoo = null; - enableX11 = true; - }; - ``` - - - - - # Inputs - - `autoArgs` - - : 1\. Function argument - - `fn` - - : 2\. Function argument - - `args` - - : 3\. Function argument - - # Type - - ``` - callPackageWith :: AttrSet -> ((AttrSet -> a) | Path) -> AttrSet -> a - ``` - */ - callPackageWith = autoArgs: fn: args: - let - f = if isFunction fn then fn else import fn; - fargs = functionArgs f; - - # All arguments that will be passed to the function - # This includes automatic ones and ones passed explicitly - allArgs = intersectAttrs fargs autoArgs // args; - - # a list of argument names that the function requires, but - # 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))); - - # 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 + "\"")) - ]; - - 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: - 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 - toString fn + optionalString (pathIsDirectory fn) "/default.nix" - 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}"; - - - /** - Like callPackage, but for a function that returns an attribute - set of derivations. The override function is added to the - individual attributes. - - - # Inputs - - `autoArgs` - - : 1\. Function argument - - `fn` - - : 2\. Function argument - - `args` - - : 3\. Function argument - - # Type - - ``` - callPackagesWith :: AttrSet -> ((AttrSet -> AttrSet) | Path) -> AttrSet -> AttrSet - ``` - */ - callPackagesWith = autoArgs: fn: args: - let - f = if isFunction fn then fn else import fn; - auto = intersectAttrs (functionArgs f) autoArgs; - mirrorArgs = mirrorFunctionArgs f; - origArgs = auto // args; - 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; - - - /** - Add attributes to each output of a derivation without changing - the derivation itself and check a given condition when evaluating. - - - # Inputs - - `condition` - - : 1\. Function argument - - `passthru` - - : 2\. Function argument - - `drv` - - : 3\. Function argument - - # Type - - ``` - extendDerivation :: Bool -> Any -> Derivation -> Derivation - ``` - */ - extendDerivation = condition: passthru: drv: - let - outputs = drv.outputs or [ "out" ]; - - commonAttrs = drv // (listToAttrs outputsList) // - ({ all = map (x: x.value) outputsList; }) // passthru; - - 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; - } // - # TODO: give the derivation control over the outputs. - # `overrideAttrs` may not be the only attribute that needs - # updating when switching outputs. - 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; - }; - - /** - Strip a derivation of all non-essential attributes, returning - only those needed by hydra-eval-jobs. Also strictly evaluate the - result to ensure that there are no thunks kept alive to prevent - garbage collection. - - - # Inputs - - `drv` - - : 1\. Function argument - - # Type - - ``` - hydraJob :: (Derivation | Null) -> (Derivation | Null) - ``` - */ - hydraJob = drv: - let - outputs = drv.outputs or ["out"]; - - commonAttrs = - { 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; - value = commonAttrs // { - outPath = output.outPath; - drvPath = output.drvPath; - type = "derivation"; - inherit outputName; - }; - }; - - outputsList = map makeOutput outputs; - - drv' = (head outputsList).value; - 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. - See [](#ex-makeScope) for how to use it. - - # Inputs - - 1. `newScope` (`AttrSet -> ((AttrSet -> a) | Path) -> AttrSet -> a`) - - A function that takes an attribute set `attrs` and returns what ends up as `callPackage` in the output. - - Typical values are `callPackageWith` or the output attribute `newScope`. - - 2. `f` (`AttrSet -> AttrSet`) - - A function that takes an attribute set as returned by `makeScope newScope f` (a "scope") and returns any attribute set. - - This function is used to compute the fixpoint of the resulting scope using `callPackage`. - Its argument is the lazily evaluated reference to the value of that fixpoint, and is typically called `self` or `final`. - - See [](#ex-makeScope) for how to use it. - See [](#sec-functions-library-fixedPoints) for details on fixpoint computation. - - # Output - - `makeScope` returns an attribute set of a form called `scope`, which also contains the final attributes produced by `f`: - - ``` - scope :: { - callPackage :: ((AttrSet -> a) | Path) -> AttrSet -> a - newScope = AttrSet -> scope - overrideScope = (scope -> scope -> AttrSet) -> scope - packages :: AttrSet -> AttrSet - } - ``` - - - `callPackage` (`((AttrSet -> a) | Path) -> AttrSet -> a`) - - A function that - - 1. Takes a function `p`, or a path to a Nix file that contains a function `p`, which takes an attribute set and returns value of arbitrary type `a`, - 2. Takes an attribute set `args` with explicit attributes to pass to `p`, - 3. Calls `f` with attributes from the original attribute set `attrs` passed to `newScope` updated with `args, i.e. `attrs // args`, if they match the attributes in the argument of `p`. - - All such functions `p` will be called with the same value for `attrs`. - - See [](#ex-makeScope-callPackage) for how to use it. - - - `newScope` (`AttrSet -> scope`) - - Takes an attribute set `attrs` and returns a scope that extends the original scope. - - - `overrideScope` (`(scope -> scope -> AttrSet) -> scope`) - - Takes a function `g` of the form `final: prev: { # attributes }` to act as an overlay on `f`, and returns a new scope with values determined by `extends g f`. - See [](https://nixos.org/manual/nixpkgs/unstable/#function-library-lib.fixedPoints.extends) for details. - - This allows subsequent modification of the final attribute set in a consistent way, i.e. all functions `p` invoked with `callPackage` will be called with the modified values. - - - `packages` (`AttrSet -> AttrSet`) - - The value of the argument `f` to `makeScope`. - - - final attributes - - The final values returned by `f`. - - # Examples - - :::{#ex-makeScope .example} - # Create an interdependent package set on top of `pkgs` - - The functions in `foo.nix` and `bar.nix` can depend on each other, in the sense that `foo.nix` can contain a function that expects `bar` as an attribute in its argument. - - ```nix - let - pkgs = import { }; - in - pkgs.lib.makeScope pkgs.newScope (self: { - foo = self.callPackage ./foo.nix { }; - bar = self.callPackage ./bar.nix { }; - }) - ``` - - evaluates to - - ```nix - { - callPackage = «lambda»; - newScope = «lambda»; - overrideScope = «lambda»; - packages = «lambda»; - foo = «derivation»; - bar = «derivation»; - } - ``` - ::: - - :::{#ex-makeScope-callPackage .example} - # Using `callPackage` from a scope - - ```nix - let - pkgs = import { }; - inherit (pkgs) lib; - scope = lib.makeScope lib.callPackageWith (self: { a = 1; b = 2; }); - three = scope.callPackage ({ a, b }: a + b) { }; - four = scope.callPackage ({ a, b }: a + b) { a = 2; }; - in - [ three four ] - ``` - - evaluates to - - ```nix - [ 3 4 ] - ``` - ::: - - # Type - - ``` - 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) - "`overrideScope'` (from `lib.makeScope`) has been renamed to `overrideScope`." - (makeScope newScope (extends g f)); - packages = f; - }; - in self; - - /** - backward compatibility with old uncurried form; deprecated - - - # Inputs - - `splicePackages` - - : 1\. Function argument - - `newScope` - - : 2\. Function argument - - `otherSplices` - - : 3\. Function argument - - `keep` - - : 4\. Function argument - - `extra` - - : 5\. Function argument - - `f` - - : 6\. Function argument - */ - makeScopeWithSplicing = - splicePackages: newScope: 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 - hopefully it helps a little bit. - - # Type - - ``` - makeScopeWithSplicing' :: - { splicePackages :: Splice -> AttrSet - , newScope :: AttrSet -> ((AttrSet -> a) | Path) -> AttrSet -> a - } - -> { otherSplices :: Splice, keep :: AttrSet -> AttrSet, extra :: AttrSet -> AttrSet } - -> AttrSet - - Splice :: - { pkgsBuildBuild :: AttrSet - , pkgsBuildHost :: AttrSet - , pkgsBuildTarget :: AttrSet - , pkgsHostHost :: AttrSet - , pkgsHostTarget :: AttrSet - , pkgsTargetTarget :: AttrSet - } - ``` - */ - 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 - }: - let - spliced0 = splicePackages { - pkgsBuildBuild = otherSplices.selfBuildBuild; - pkgsBuildHost = otherSplices.selfBuildHost; - pkgsBuildTarget = otherSplices.selfBuildTarget; - pkgsHostHost = otherSplices.selfHostHost; - pkgsHostTarget = self; # Not `otherSplices.selfHostTarget`; - pkgsTargetTarget = otherSplices.selfTargetTarget; - }; - spliced = extra spliced0 // spliced0 // keep self; - self = f self // { - newScope = scope: newScope (spliced // scope); - 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; - f = extends g f; - }); - packages = f; - }; - in self; - -} diff --git a/lib/debug.nix b/lib/debug.nix deleted file mode 100644 index 97e87ac..0000000 --- a/lib/debug.nix +++ /dev/null @@ -1,246 +0,0 @@ -/* 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. -*/ -{ lib }: -let - inherit (lib) - isList - isAttrs - substring - attrValues - concatLists - const - elem - generators - id - mapAttrs - trace; -in - -rec { - - # -- TRACING -- - - /* Conditionally trace the supplied message, based on a predicate. - - Type: traceIf :: bool -> string -> a -> a - - Example: - traceIf true "hello" 3 - trace: hello - => 3 - */ - traceIf = - # Predicate to check - pred: - # Message that should be traced - msg: - # Value to return - x: if pred then trace msg x else x; - - /* Trace the supplied value after applying a function to it, and - return the original value. - - Type: traceValFn :: (a -> b) -> a -> a - - 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; - - /* Trace the supplied value and return it. - - Type: traceVal :: a -> a - - Example: - traceVal 42 - # trace: 42 - => 42 - */ - traceVal = traceValFn id; - - /* `builtins.trace`, but the value is `builtins.deepSeq`ed first. - - 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 - */ - traceSeq = - # The value to trace - x: - # The value to return - 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. - - 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; - - /* 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); - - /* 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. */ - traceValSeqNFn = - # Function to apply - f: - depth: - # Value to trace - v: traceSeqN depth (f v) v; - - /* A combination of `traceVal` and `traceSeqN`. */ - traceValSeqN = traceValSeqNFn id; - - /* 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. - - 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; - - - # -- TESTING -- - - /* Evaluates a set of tests. - - A test is an attribute set `{expr, expected}`, - denoting an expression and its expected result. - - The result is a `list` of __failed tests__, each represented as - `{name, expected, result}`, - - - expected - - What was passed as `expected` - - result - - The actual `result` of the test - - Used for regression testing of the functions in lib; see - tests.nix for more examples. - - Important: Only attributes that start with `test` are executed. - - - If you want to run only a subset of the tests add the attribute `tests = ["testName"];` - - Example: - - runTests { - testAndOk = { - expr = lib.and true false; - expected = false; - }; - testAndFail = { - expr = lib.and true false; - expected = true; - }; - } - -> - [ - { - name = "testAndFail"; - expected = true; - result = false; - } - ] - - Type: - runTests :: { - tests = [ String ]; - ${testName} :: { - expr :: a; - expected :: a; - }; - } - -> - [ - { - name :: String; - expected :: a; - result :: a; - } - ] - */ - 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) - - then [ { inherit name; expected = test.expected; result = test.expr; } ] - else [] ) tests)); - - /* Create a test assuming that list elements are `true`. - - Example: - { testX = allTrue [ true ]; } - */ - testAllTrue = expr: { inherit expr; expected = map (x: true) expr; }; -} diff --git a/lib/default.nix b/lib/default.nix deleted file mode 100644 index d5d47de..0000000 --- a/lib/default.nix +++ /dev/null @@ -1,171 +0,0 @@ -/* 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 { - - # 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; - - # 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; - - # 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; - - # misc - asserts = callLibs ./asserts.nix; - debug = callLibs ./debug.nix; - misc = callLibs ./deprecated/misc.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; - - # back-compat aliases - platforms = self.systems.doubles; - - # 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 diff --git a/lib/deprecated/README.md b/lib/deprecated/README.md deleted file mode 100644 index afeb34d..0000000 --- a/lib/deprecated/README.md +++ /dev/null @@ -1,11 +0,0 @@ - -# lib/deprecated - -Do not add any new functions to this directory. - -This directory contains the `lib.misc` sublibrary, which - as a location - is deprecated. -Furthermore, some of the functions inside are of *dubious* utility, and should perhaps be avoided, -while some functions *may still be needed*. - -This directory does not play a role in the deprecation process for library functions. -They should be deprecated in place, by putting a `lib.warn` or `lib.warnIf` call around the function. diff --git a/lib/deprecated/misc.nix b/lib/deprecated/misc.nix deleted file mode 100644 index d556bcc..0000000 --- a/lib/deprecated/misc.nix +++ /dev/null @@ -1,374 +0,0 @@ -{ lib }: - -let - inherit (lib) - and - any - attrByPath - attrNames - compare - concat - concatMap - elem - filter - foldl - foldr - genericClosure - head - imap1 - init - isAttrs - isFunction - isInt - isList - lists - listToAttrs - mapAttrs - mergeAttrs - meta - nameValuePair - tail - toList - ; - - inherit (lib.attrsets) removeAttrs; - - # returns default if env var is not set - 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); - 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; - - - # shortcut for attrByPath ["name"] default attrs - maybeAttrNullable = maybeAttr; - - # shortcut for attrByPath ["name"] default attrs - 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 {} - # else if builtins.isString val then "" - 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 ; - - - # 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 ); - - - # 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)); - - - # 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}: - let - work = list: doneKeys: result: - if list == [] then - result - else - 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); - in - 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 {}; - - - 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);}); - - # 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 - # The ordering / sorting / comparison is done based on the `outPath` - # 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 [ ])); - }); - - 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); - - # 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); - - # 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: - 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); - - # 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) ); - - # merges attributes using //, if a name exists in both attributes - # an error will be triggered unless its listed in mergeLists - # so you can mergeAttrsNoOverride { buildInputs = [a]; } { buildInputs = [a]; } {} to get - # { buildInputs = [a b]; } - # 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); - - - # example usage: - # mergeAttrByFunc { - # inherit mergeAttrBy; # defined below - # buildInputs = [ a b ]; - # } { - # buildInputs = [ c d ]; - # }; - # will result in - # { 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: - 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)) - ) - ) - ]; - mergeAttrsByFuncDefaults = foldl mergeAttrByFunc { inherit 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" ]) - ; - - 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 - - For historical reasons, imap has an index starting at 1. - - But for consistency with the rest of the library we want an index - starting at zero. - */ - imap = imap1; - - # Fake hashes. Can be used as hash placeholders, when computing hash ahead isn't trivial - fakeHash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; - fakeSha256 = "0000000000000000000000000000000000000000000000000000000000000000"; - fakeSha512 = "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; - -in - -# Everything in this attrset is the public interface of the file. -{ - inherit - checkFlag - checkReqs - closePropagation - closePropagationFast - closePropagationSlow - condConcat - defaultMerge - defaultMergeArg - fakeHash - fakeSha256 - fakeSha512 - foldArgs - getValue - ifEnable - imap - innerClosePropagation - innerModifySumArgs - lazyGenericClosure - mapAttrsFlatten - maybeAttr - maybeAttrNullable - maybeEnv - mergeAttrBy - mergeAttrByFunc - mergeAttrsByFuncDefaults - mergeAttrsByFuncDefaultsClean - mergeAttrsConcatenateValues - mergeAttrsNoOverride - mergeAttrsWithFunc - modifySumArgs - nixType - nvs - setAttr - setAttrMerge - uniqList - uniqListExt - ; -} diff --git a/lib/derivations.nix b/lib/derivations.nix deleted file mode 100644 index 6867458..0000000 --- a/lib/derivations.nix +++ /dev/null @@ -1,177 +0,0 @@ -{ lib }: - -let - 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}"; - - showMaybePackagePosPre = prefix: pkg: - if pkg?meta.position && isString pkg.meta.position - then "${prefix}${pkg.meta.position}" - else ""; -in -{ - /* - Restrict a derivation to a predictable set of attribute names, so - that the returned attrset is not strict in the actual derivation, - saving a lot of computation when the derivation is non-trivial. - - This is useful in situations where a derivation might only be used for its - passthru attributes, improving evaluation performance. - - The returned attribute set is lazy in `derivation`. Specifically, this - means that the derivation will not be evaluated in at least the - situations below. - - For illustration and/or testing, we define derivation such that its - evaluation is very noticeable. - - let derivation = throw "This won't be evaluated."; - - In the following expressions, `derivation` will _not_ be evaluated: - - (lazyDerivation { inherit derivation; }).type - - attrNames (lazyDerivation { inherit derivation; }) - - (lazyDerivation { inherit derivation; } // { foo = true; }).foo - - (lazyDerivation { inherit derivation; meta.foo = true; }).meta - - In these expressions, `derivation` _will_ be evaluated: - - "${lazyDerivation { inherit derivation }}" - - (lazyDerivation { inherit derivation }).outPath - - (lazyDerivation { inherit derivation }).meta - - And the following expressions are not valid, because the refer to - implementation details and/or attributes that may not be present on - some derivations: - - (lazyDerivation { inherit derivation }).buildInputs - - (lazyDerivation { inherit derivation }).passthru - - (lazyDerivation { inherit derivation }).pythonPath - - */ - lazyDerivation = - args@{ - # The derivation to be wrapped. - 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. - # - # This can be used for adding package attributes, such as `tests`. - 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" ] - }: - 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 - # 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. - # However, consider the case where an output is added in the underlying - # derivation, such as dev. lazyDerivation would remove it and cause it - # to fail as a buildInputs item, without any indication as to what - # happened. Hence the more stringent condition. We could consider - # adding a flag to control this behavior if there's a valid case for it, - # but the documentation must have a note like this. - (derivation.outputs == outputs) - '' - lib.lazyDerivation: The derivation ${derivation.name or ""} has outputs that don't match the assumed outputs. - - Assumed outputs passed to lazyDerivation${showMaybeAttrPosPre ",\n at " "outputs" args}: - ${lib.generators.toPretty { multiline = false; } outputs}; - - Actual outputs of the derivation${showMaybePackagePosPre ",\n defined at " derivation}: - ${lib.generators.toPretty { multiline = false; } derivation.outputs} - - If the outputs are known ahead of evaluating the derivation, - then update the lazyDerivation call to match the actual outputs, in the same order. - If lazyDerivation is passed a literal value, just change it to the actual outputs. - As a result it will work as before / as intended. - - Otherwise, when the outputs are dynamic and can't be known ahead of time, it won't - be possible to add laziness, but lib.lazyDerivation may still be useful for trimming - the attributes. - If you want to keep trimming the attributes, make sure that the package is in a - variable (don't evaluate it twice!) and pass the variable and its outputs attribute - to lib.lazyDerivation. This largely defeats laziness, but keeps the trimming. - If none of the above works for you, replace the lib.lazyDerivation call by the - expression in the derivation argument. - '' - derivation; - in - { - # Hardcoded `type` - # - # `lazyDerivation` requires its `derivation` argument to be a derivation, - # so if it is not, that is a programming error by the caller and not - # something that `lazyDerivation` consumers should be able to correct - # for after the fact. - # So, to improve laziness, we assume correctness here and check it only - # when actual derivation values are accessed later. - type = "derivation"; - - # 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 outputs; - - # The meta attribute can either be taken from the derivation, or if the - # `lazyDerivation` caller knew a shortcut, be taken from there. - meta = args.meta or checked.meta; - } - // genAttrs outputs (outputName: checked.${outputName}) - // passthru; - - /* 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. - - 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 - */ - optionalDrvAttr = - # Condition - cond: - # Attribute value - value: if cond then value else null; -} diff --git a/lib/fetchers.nix b/lib/fetchers.nix deleted file mode 100644 index 1107353..0000000 --- a/lib/fetchers.nix +++ /dev/null @@ -1,13 +0,0 @@ -# snippets that can be shared by multiple fetchers (pkgs/build-support) -{ lib }: -{ - - proxyImpureEnvVars = [ - # We borrow these environment variables from the caller to allow - # 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" - ]; - -} diff --git a/lib/fileset/README.md b/lib/fileset/README.md deleted file mode 100644 index 93e0199..0000000 --- a/lib/fileset/README.md +++ /dev/null @@ -1,267 +0,0 @@ -# File set library - -This is the internal contributor documentation. -The user documentation is [in the Nixpkgs manual](https://nixos.org/manual/nixpkgs/unstable/#sec-fileset). - -## Goals - -The main goal of the file set library is to be able to select local files that should be added to the Nix store. -It should have the following properties: -- Easy: - The functions should have obvious semantics, be low in number and be composable. -- Safe: - Throw early and helpful errors when mistakes are detected. -- Lazy: - Only compute values when necessary. - -Non-goals are: -- Efficient: - If the abstraction proves itself worthwhile but too slow, it can be still be optimized further. - -## Tests - -Tests are declared in [`tests.sh`](./tests.sh) and can be run using -``` -./tests.sh -``` - -## Benchmark - -A simple benchmark against the HEAD commit can be run using -``` -./benchmark.sh HEAD -``` - -This is intended to be run manually and is not checked by CI. - -## Internal representation - -The internal representation is versioned in order to allow file sets from different Nixpkgs versions to be composed with each other, see [`internal.nix`](./internal.nix) for the versions and conversions between them. -This section describes only the current representation, but past versions will have to be supported by the code. - -### `fileset` - -An attribute set with these values: - -- `_type` (constant string `"fileset"`): - Tag to indicate this value is a file set. - -- `_internalVersion` (constant `3`, the current version): - Version of the representation. - -- `_internalIsEmptyWithoutBase` (bool): - Whether this file set is the empty file set without a base path. - If `true`, `_internalBase*` and `_internalTree` are not set. - This is the only way to represent an empty file set without needing a base path. - - Such a value can be used as the identity element for `union` and the return value of `unions []` and co. - -- `_internalBase` (path): - Any files outside of this path cannot influence the set of files. - This is always a directory and should be as long as possible. - This is used by `lib.fileset.toSource` to check that all files are under the `root` argument - -- `_internalBaseRoot` (path): - The filesystem root of `_internalBase`, same as `(lib.path.splitRoot _internalBase).root`. - This is here because this needs to be computed anyway, and this computation shouldn't be duplicated. - -- `_internalBaseComponents` (list of strings): - The path components of `_internalBase`, same as `lib.path.subpath.components (lib.path.splitRoot _internalBase).subpath`. - This is here because this needs to be computed anyway, and this computation shouldn't be duplicated. - -- `_internalTree` ([filesetTree](#filesettree)): - A tree representation of all included files under `_internalBase`. - -- `__noEval` (error): - An error indicating that directly evaluating file sets is not supported. - -## `filesetTree` - -One of the following: - -- `{ = filesetTree; }`: - A directory with a nested `filesetTree` value for directory entries. - Entries not included may either be omitted or set to `null`, as necessary to improve efficiency or laziness. - -- `"directory"`: - A directory with all its files included recursively, allowing early cutoff for some operations. - This specific string is chosen to be compatible with `builtins.readDir` for a simpler implementation. - -- `"regular"`, `"symlink"`, `"unknown"` or any other non-`"directory"` string: - A nested file with its file type. - These specific strings are chosen to be compatible with `builtins.readDir` for a simpler implementation. - Distinguishing between different file types is not strictly necessary for the functionality this library, - but it does allow nicer printing of file sets. - -- `null`: - A file or directory that is excluded from the tree. - It may still exist on the file system. - -## API design decisions - -This section justifies API design decisions. - -### Internal structure - -The representation of the file set data type is internal and can be changed over time. - -Arguments: -- (+) The point of this library is to provide high-level functions, users don't need to be concerned with how it's implemented -- (+) It allows adjustments to the representation, which is especially useful in the early days of the library. -- (+) It still allows the representation to be stabilized later if necessary and if it has proven itself - -### Influence tracking - -File set operations internally track the top-most directory that could influence the exact contents of a file set. -Specifically, `toSource` requires that the given `fileset` is completely determined by files within the directory specified by the `root` argument. -For example, even with `dir/file.txt` being the only file in `./.`, `toSource { root = ./dir; fileset = ./.; }` gives an error. -This is because `fileset` may as well be the result of filtering `./.` in a way that excludes `dir`. - -Arguments: -- (+) This gives us the guarantee that adding new files to a project never breaks a file set expression. - This is also true in a lesser form for removed files: - only removing files explicitly referenced by paths can break a file set expression. -- (+) This can be removed later, if we discover it's too restrictive -- (-) It leads to errors when a sensible result could sometimes be returned, such as in the above example. - -### Empty file set without a base - -There is a special representation for an empty file set without a base path. -This is used for return values that should be empty but when there's no base path that would makes sense. - -Arguments: -- Alternative: This could also be represented using `_internalBase = /.` and `_internalTree = null`. - - (+) Removes the need for a special representation. - - (-) Due to [influence tracking](#influence-tracking), - `union empty ./.` would have `/.` as the base path, - which would then prevent `toSource { root = ./.; fileset = union empty ./.; }` from working, - which is not as one would expect. - - (-) With the assumption that there can be multiple filesystem roots (as established with the [path library](../path/README.md)), - this would have to cause an error with `union empty pathWithAnotherFilesystemRoot`, - which is not as one would expect. -- Alternative: Do not have such a value and error when it would be needed as a return value - - (+) Removes the need for a special representation. - - (-) Leaves us with no identity element for `union` and no reasonable return value for `unions []`. - From a set theory perspective, which has a well-known notion of empty sets, this is unintuitive. - -### No intersection for lists - -While there is `intersection a b`, there is no function `intersections [ a b c ]`. - -Arguments: -- (+) There is no known use case for such a function, it can be added later if a use case arises -- (+) There is no suitable return value for `intersections [ ]`, see also "Nullary intersections" [here](https://en.wikipedia.org/w/index.php?title=List_of_set_identities_and_relations&oldid=1177174035#Definitions) - - (-) Could throw an error for that case - - (-) Create a special value to represent "all the files" and return that - - (+) Such a value could then not be used with `fileFilter` unless the internal representation is changed considerably - - (-) Could return the empty file set - - (+) This would be wrong in set theory -- (-) Inconsistent with `union` and `unions` - -### Intersection base path - -The base path of the result of an `intersection` is the longest base path of the arguments. -E.g. the base path of `intersection ./foo ./foo/bar` is `./foo/bar`. -Meanwhile `intersection ./foo ./bar` returns the empty file set without a base path. - -Arguments: -- Alternative: Use the common prefix of all base paths as the resulting base path - - (-) This is unnecessarily strict, because the purpose of the base path is to track the directory under which files _could_ be in the file set. It should be as long as possible. - All files contained in `intersection ./foo ./foo/bar` will be under `./foo/bar` (never just under `./foo`), and `intersection ./foo ./bar` will never contain any files (never under `./.`). - This would lead to `toSource` having to unexpectedly throw errors for cases such as `toSource { root = ./foo; fileset = intersect ./foo base; }`, where `base` may be `./bar` or `./.`. - - (-) There is no benefit to the user, since base path is not directly exposed in the interface - -### Empty directories - -File sets can only represent a _set_ of local files. -Directories on their own are not representable. - -Arguments: -- (+) There does not seem to be a sensible set of combinators when directories can be represented on their own. - Here's some possibilities: - - `./.` represents the files in `./.` _and_ the directory itself including its subdirectories, meaning that even if there's no files, the entire structure of `./.` is preserved - - In that case, what should `fileFilter (file: false) ./.` return? - It could return the entire directory structure unchanged, but with all files removed, which would not be what one would expect. - - Trying to have a filter function that also supports directories will lead to the question of: - What should the behavior be if `./foo` itself is excluded but all of its contents are included? - It leads to having to define when directories are recursed into, but then we're effectively back at how the `builtins.path`-based filters work. - - - `./.` represents all files in `./.` _and_ the directory itself, but not its subdirectories, meaning that at least `./.` will be preserved even if it's empty. - - In that case, `intersection ./. ./foo` should only include files and no directories themselves, since `./.` includes only `./.` as a directory, and same for `./foo`, so there's no overlap in directories. - But intuitively this operation should result in the same as `./foo` – everything else is just confusing. -- (+) This matches how Git only supports files, so developers should already be used to it. -- (-) Empty directories (even if they contain nested directories) are neither representable nor preserved when coercing from paths. - - (+) It is very rare that empty directories are necessary. - - (+) We can implement a workaround, allowing `toSource` to take an extra argument for ensuring certain extra directories exist in the result. -- (-) It slows down store imports, since the evaluator needs to traverse the entire tree to remove any empty directories - - (+) This can still be optimized by introducing more Nix builtins if necessary - -### String paths - -File sets do not support Nix store paths in strings such as `"/nix/store/...-source"`. - -Arguments: -- (+) Such paths are usually produced by derivations, which means `toSource` would either: - - Require [Import From Derivation](https://nixos.org/manual/nix/unstable/language/import-from-derivation) (IFD) if `builtins.path` is used as the underlying primitive - - Require importing the entire `root` into the store such that derivations can be used to do the filtering -- (+) The convenient path coercion like `union ./foo ./bar` wouldn't work for absolute paths, requiring more verbose alternate interfaces: - - `let root = "/nix/store/...-source"; in union "${root}/foo" "${root}/bar"` - - Verbose and dangerous because if `root` was a path, the entire path would get imported into the store. - - - `toSource { root = "/nix/store/...-source"; fileset = union "./foo" "./bar"; }` - - Does not allow debug printing intermediate file set contents, since we don't know the paths contents before having a `root`. - - - `let fs = lib.fileset.withRoot "/nix/store/...-source"; in fs.union "./foo" "./bar"` - - Makes library functions impure since they depend on the contextual root path, questionable composability. - -- (+) The point of the file set abstraction is to specify which files should get imported into the store. - - This use case makes little sense for files that are already in the store. - This should be a separate abstraction as e.g. `pkgs.drvLayout` instead, which could have a similar interface but be specific to derivations. - Additional capabilities could be supported that can't be done at evaluation time, such as renaming files, creating new directories, setting executable bits, etc. -- (+) An API for filtering/transforming Nix store paths could be much more powerful, - because it's not limited to just what is possible at evaluation time with `builtins.path`. - Operations such as moving and adding files would be supported. - -### Single files - -File sets cannot add single files to the store, they can only import files under directories. - -Arguments: -- (+) There's no point in using this library for a single file, since you can't do anything other than add it to the store or not. - And it would be unclear how the library should behave if the one file wouldn't be added to the store: - `toSource { root = ./file.nix; fileset = ; }` has no reasonable result because returing an empty store path wouldn't match the file type, and there's no way to have an empty file store path, whatever that would mean. - -### `fileFilter` takes a path - -The `fileFilter` function takes a path, and not a file set, as its second argument. - -- (-) Makes it harder to compose functions, since the file set type, the return value, can't be passed to the function itself like `fileFilter predicate fileset` - - (+) It's still possible to use `intersection` to filter on file sets: `intersection fileset (fileFilter predicate ./.)` - - (-) This does need an extra `./.` argument that's not obvious - - (+) This could always be `/.` or the project directory, `intersection` will make it lazy -- (+) In the future this will allow `fileFilter` to support a predicate property like `subpath` and/or `components` in a reproducible way. - This wouldn't be possible if it took a file set, because file sets don't have a predictable absolute path. - - (-) What about the base path? - - (+) That can change depending on which files are included, so if it's used for `fileFilter` - it would change the `subpath`/`components` value depending on which files are included. -- (+) If necessary, this restriction can be relaxed later, the opposite wouldn't be possible - -### Strict path existence checking - -Coercing paths that don't exist to file sets always gives an error. - -- (-) Sometimes you want to remove a file that may not always exist using `difference ./. ./does-not-exist`, - but this does not work because coercion of `./does-not-exist` fails, - even though its existence would have no influence on the result. - - (+) This is dangerous, because you wouldn't be protected against typos anymore. - E.g. when trying to prevent `./secret` from being imported, a typo like `difference ./. ./sercet` would import it regardless. - - (+) `difference ./. (maybeMissing ./does-not-exist)` can be used to do this more explicitly. - - (+) `difference ./. (difference ./foo ./foo/bar)` should report an error when `./foo/bar` does not exist ("double negation"). Unfortunately, the current internal representation does not lend itself to a behavior where both `difference x ./does-not-exists` and double negation are handled and checked correctly. - This could be fixed, but would require significant changes to the internal representation that are not worth the effort and the risk of introducing implicit behavior. diff --git a/lib/fileset/benchmark.sh b/lib/fileset/benchmark.sh deleted file mode 100755 index 59ddb6d..0000000 --- a/lib/fileset/benchmark.sh +++ /dev/null @@ -1,140 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell -i bash -p sta jq bc nix -I nixpkgs=../.. -# shellcheck disable=SC2016 - -# Benchmarks lib.fileset -# Run: -# [nixpkgs]$ lib/fileset/benchmark.sh HEAD - -set -euo pipefail -shopt -s inherit_errexit dotglob - -if (( $# == 0 )); then - echo "Usage: $0 HEAD" - echo "Benchmarks the current tree against the HEAD commit. Any git ref will work." - exit 1 -fi -compareTo=$1 - -SCRIPT_FILE=$(readlink -f "${BASH_SOURCE[0]}") -SCRIPT_DIR=$(dirname "$SCRIPT_FILE") - -nixpkgs=$(cd "$SCRIPT_DIR/../.."; pwd) - -tmp="$(mktemp -d)" -clean_up() { - rm -rf "$tmp" -} -trap clean_up EXIT SIGINT SIGTERM -work="$tmp/work" -mkdir "$work" -cd "$work" - -declare -a stats=( - ".envs.elements" - ".envs.number" - ".gc.totalBytes" - ".list.concats" - ".list.elements" - ".nrFunctionCalls" - ".nrLookups" - ".nrOpUpdates" - ".nrPrimOpCalls" - ".nrThunks" - ".sets.elements" - ".sets.number" - ".symbols.number" - ".values.number" -) - -runs=10 - -run() { - # Empty the file - : > cpuTimes - - for i in $(seq 0 "$runs"); do - NIX_PATH=nixpkgs=$1 NIX_SHOW_STATS=1 NIX_SHOW_STATS_PATH=$tmp/stats.json \ - nix-instantiate --eval --strict --show-trace >/dev/null \ - --expr 'with import ; with fileset; '"$2" - - # Only measure the time after the first run, one is warmup - if (( i > 0 )); then - jq '.cpuTime' "$tmp/stats.json" >> cpuTimes - fi - done - - # Compute mean and standard deviation - read -r mean sd < <(sta --mean --sd --brief &2 - #echo "Running benchmark on index" >&2 - run "$nixpkgs" "$1" > "$tmp/new.json" - ( - #echo "Checking out $compareTo" >&2 - git -C "$nixpkgs" worktree add --quiet "$tmp/worktree" "$compareTo" - trap 'git -C "$nixpkgs" worktree remove "$tmp/worktree"' EXIT - #echo "Running benchmark on $compareTo" >&2 - run "$tmp/worktree" "$1" > "$tmp/old.json" - ) - - read -r oldMean oldSd newMean newSd percentageMean percentageSd < \ - <(jq -rn --slurpfile old "$tmp/old.json" --slurpfile new "$tmp/new.json" \ - ' $old[0].cpuTimeMean as $om - | $old[0].cpuTimeSd as $os - | $new[0].cpuTimeMean as $nm - | $new[0].cpuTimeSd as $ns - | (100 / $om * $nm) as $pm - # Copied from https://github.com/sharkdp/hyperfine/blob/b38d550b89b1dab85139eada01c91a60798db9cc/src/benchmark/relative_speed.rs#L46-L53 - | ($pm * pow(pow($ns / $nm; 2) + pow($os / $om; 2); 0.5)) as $ps - | [ $om, $os, $nm, $ns, $pm, $ps ] - | @sh') - - echo -e "Mean CPU time $newMean (σ = $newSd) for $runs runs is \e[0;33m$percentageMean% (σ = $percentageSd%)\e[0m of the old value $oldMean (σ = $oldSd)" >&2 - - different=0 - for stat in "${stats[@]}"; do - oldValue=$(jq "$stat" "$tmp/old.json") - newValue=$(jq "$stat" "$tmp/new.json") - if (( oldValue != newValue )); then - percent=$(bc <<< "scale=100; result = 100/$oldValue*$newValue; scale=4; result / 1") - if (( oldValue < newValue )); then - echo -e "Statistic $stat ($newValue) is \e[0;31m$percent% (+$(( newValue - oldValue )))\e[0m of the old value $oldValue" >&2 - else - echo -e "Statistic $stat ($newValue) is \e[0;32m$percent% (-$(( oldValue - newValue )))\e[0m of the old value $oldValue" >&2 - fi - (( different++ )) || true - fi - done - echo "$different stats differ between the current tree and $compareTo" - echo "" -} - -# Create a fairly populated tree -touch f{0..5} -mkdir d{0..5} -mkdir e{0..5} -touch d{0..5}/f{0..5} -mkdir -p d{0..5}/d{0..5} -mkdir -p e{0..5}/e{0..5} -touch d{0..5}/d{0..5}/f{0..5} -mkdir -p d{0..5}/d{0..5}/d{0..5} -mkdir -p e{0..5}/e{0..5}/e{0..5} -touch d{0..5}/d{0..5}/d{0..5}/f{0..5} -mkdir -p d{0..5}/d{0..5}/d{0..5}/d{0..5} -mkdir -p e{0..5}/e{0..5}/e{0..5}/e{0..5} -touch d{0..5}/d{0..5}/d{0..5}/d{0..5}/f{0..5} - -bench 'toSource { root = ./.; fileset = ./.; }' - -rm -rf -- * - -touch {0..1000} -bench 'toSource { root = ./.; fileset = unions (mapAttrsToList (name: value: ./. + "/${name}") (builtins.readDir ./.)); }' -rm -rf -- * diff --git a/lib/fileset/default.nix b/lib/fileset/default.nix deleted file mode 100644 index e29f302..0000000 --- a/lib/fileset/default.nix +++ /dev/null @@ -1,860 +0,0 @@ -/* - - []{#sec-fileset} - - The [`lib.fileset`](#sec-functions-library-fileset) library allows you to work with _file sets_. - A file set is a (mathematical) set of local files that can be added to the Nix store for use in Nix derivations. - File sets are easy and safe to use, providing obvious and composable semantics with good error messages to prevent mistakes. - - ## Overview {#sec-fileset-overview} - - Basics: - - [Implicit coercion from paths to file sets](#sec-fileset-path-coercion) - - - [`lib.fileset.maybeMissing`](#function-library-lib.fileset.maybeMissing): - - Create a file set from a path that may be missing. - - - [`lib.fileset.trace`](#function-library-lib.fileset.trace)/[`lib.fileset.traceVal`](#function-library-lib.fileset.trace): - - Pretty-print file sets for debugging. - - - [`lib.fileset.toSource`](#function-library-lib.fileset.toSource): - - Add files in file sets to the store to use as derivation sources. - - - [`lib.fileset.toList`](#function-library-lib.fileset.toList): - - The list of files contained in a file set. - - Combinators: - - [`lib.fileset.union`](#function-library-lib.fileset.union)/[`lib.fileset.unions`](#function-library-lib.fileset.unions): - - Create a larger file set from all the files in multiple file sets. - - - [`lib.fileset.intersection`](#function-library-lib.fileset.intersection): - - Create a smaller file set from only the files in both file sets. - - - [`lib.fileset.difference`](#function-library-lib.fileset.difference): - - Create a smaller file set containing all files that are in one file set, but not another one. - - Filtering: - - [`lib.fileset.fileFilter`](#function-library-lib.fileset.fileFilter): - - Create a file set from all files that satisisfy a predicate in a directory. - - Utilities: - - [`lib.fileset.fromSource`](#function-library-lib.fileset.fromSource): - - Create a file set from a `lib.sources`-based value. - - - [`lib.fileset.gitTracked`](#function-library-lib.fileset.gitTracked)/[`lib.fileset.gitTrackedWith`](#function-library-lib.fileset.gitTrackedWith): - - Create a file set from all tracked files in a local Git repository. - - 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. - Such path arguments are implicitly coerced to file sets containing all files under that path: - - A path to a file turns into a file set containing that single file. - - A path to a directory turns into a file set containing all files _recursively_ in that directory. - - If the path points to a non-existent location, an error is thrown. - - ::: {.note} - Just like in Git, file sets cannot represent empty directories. - Because of this, a path to a directory that contains no files (recursively) will turn into a file set containing no files. - ::: - - :::{.note} - File set coercion does _not_ add any of the files under the coerced paths to the store. - Only the [`toSource`](#function-library-lib.fileset.toSource) function adds files to the Nix store, and only those files contained in the `fileset` argument. - This is in contrast to using [paths in string interpolation](https://nixos.org/manual/nix/stable/language/values.html#type-path), which does add the entire referenced path to the store. - ::: - - ### Example {#sec-fileset-path-coercion-example} - - Assume we are in a local directory with a file hierarchy like this: - ``` - ├─ a/ - │ ├─ x (file) - │ └─ b/ - │   └─ y (file) - └─ c/ -   └─ d/ - ``` - - Here's a listing of which files get included when different path expressions get coerced to file sets: - - `./.` as a file set contains both `a/x` and `a/b/y` (`c/` does not contain any files and is therefore omitted). - - `./a` as a file set contains both `a/x` and `a/b/y`. - - `./a/x` as a file set contains only `a/x`. - - `./a/b` as a file set contains only `a/b/y`. - - `./c` as a file set is empty, since neither `c` nor `c/d` contain any files. -*/ -{ lib }: -let - - inherit (import ./internal.nix { inherit lib; }) - _coerce - _singleton - _coerceMany - _toSourceFilter - _fromSourceFilter - _toList - _unionMany - _fileFilter - _printFileset - _intersection - _difference - _fromFetchGit - _fetchGitSubmodulesMinver - _emptyWithoutBase - ; - - inherit (builtins) - isBool - isList - isPath - pathExists - seq - typeOf - nixVersion - ; - - inherit (lib.lists) - elemAt - imap0 - ; - - inherit (lib.path) - hasPrefix - splitRoot - ; - - inherit (lib.strings) - isStringLike - versionOlder - ; - - inherit (lib.filesystem) - pathType - ; - - inherit (lib.sources) - cleanSourceWith - ; - - inherit (lib.trivial) - isFunction - pipe - ; - -in { - - /* - Create a file set from a path that may or may not exist: - - If the path does exist, the path is [coerced to a file set](#sec-fileset-path-coercion). - - If the path does not exist, a file set containing no files is returned. - - Type: - maybeMissing :: Path -> FileSet - - Example: - # All files in the current directory, but excluding main.o if it exists - difference ./. (maybeMissing ./main.o) - */ - maybeMissing = - path: - 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.'' - else - 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; - - /* - Incrementally evaluate and trace a file set in a pretty way. - This function is only intended for debugging purposes. - The exact tracing format is unspecified and may change. - - This function takes a final argument to return. - In comparison, [`traceVal`](#function-library-lib.fileset.traceVal) returns - the given file set argument. - - This variant is useful for tracing file sets in the Nix repl. - - Type: - trace :: FileSet -> Any -> Any - - Example: - trace (unions [ ./Makefile ./src ./tests/run.sh ]) null - => - trace: /home/user/src/myProject - trace: - Makefile (regular) - trace: - src (all files in directory) - trace: - tests - trace: - run.sh (regular) - null - */ - 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). - */ - fileset: - let - # "fileset" would be a better name, but that would clash with the argument name, - # 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); - - /* - Incrementally evaluate and trace a file set in a pretty way. - This function is only intended for debugging purposes. - The exact tracing format is unspecified and may change. - - This function returns the given file set. - In comparison, [`trace`](#function-library-lib.fileset.trace) takes another argument to return. - - This variant is useful for tracing file sets passed as arguments to other functions. - - Type: - traceVal :: FileSet -> FileSet - - Example: - toSource { - root = ./.; - fileset = traceVal (unions [ - ./Makefile - ./src - ./tests/run.sh - ]); - } - => - trace: /home/user/src/myProject - trace: - Makefile (regular) - trace: - src (all files in directory) - trace: - tests - trace: - run.sh (regular) - "/nix/store/...-source" - */ - traceVal = - /* - 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). - */ - fileset: - let - # "fileset" would be a better name, but that would clash with the argument name, - # 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) - # 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; - - /* - Add the local files contained in `fileset` to the store as a single [store path](https://nixos.org/manual/nix/stable/glossary#gloss-store-path) rooted at `root`. - - The result is the store path as a string-like value, making it usable e.g. as the `src` of a derivation, or in string interpolation: - ```nix - stdenv.mkDerivation { - src = lib.fileset.toSource { ... }; - # ... - } - ``` - - The name of the store path is always `source`. - - Type: - toSource :: { - root :: Path, - fileset :: FileSet, - } -> SourceLike - - Example: - # Import the current directory into the store - # but only include files under ./src - toSource { - root = ./.; - fileset = ./src; - } - => "/nix/store/...-source" - - # Import the current directory into the store - # but only include ./Makefile and all files under ./src - toSource { - root = ./.; - fileset = union - ./Makefile - ./src; - } - => "/nix/store/...-source" - - # Trying to include a file outside the root will fail - toSource { - root = ./.; - fileset = unions [ - ./Makefile - ./src - ../LICENSE - ]; - } - => - - # The root needs to point to a directory that contains all the files - toSource { - root = ../.; - fileset = unions [ - ./Makefile - ./src - ../LICENSE - ]; - } - => "/nix/store/...-source" - - # The root has to be a local filesystem path - toSource { - root = "/nix/store/...-source"; - fileset = ./.; - } - => - */ - 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} - 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; - in - let - fileset = _coerce "lib.fileset.toSource: `fileset`" filesetArg; - rootFilesystemRoot = (splitRoot root).root; - filesetFilesystemRoot = (splitRoot fileset._internalBase).root; - sourceFilter = _toSourceFilter fileset; - in - 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. - To use a `lib.sources`-based value, convert it to a file set using `lib.fileset.fromSource` and pass it as `fileset`. - Note that this only works for sources created from paths.'' - else if isStringLike root then - throw '' - 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.'' - # 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 - 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 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 - 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 { - name = "source"; - src = root; - filter = sourceFilter; - }; - - - /* - The list of file paths contained in the given file set. - - :::{.note} - This function is strict in the entire file set. - This is in contrast with combinators [`lib.fileset.union`](#function-library-lib.fileset.union), - [`lib.fileset.intersection`](#function-library-lib.fileset.intersection) and [`lib.fileset.difference`](#function-library-lib.fileset.difference). - - Thus it is recommended to call `toList` on file sets created using the combinators, - instead of doing list processing on the result of `toList`. - ::: - - The resulting list of files can be turned back into a file set using [`lib.fileset.unions`](#function-library-lib.fileset.unions). - - Type: - toList :: FileSet -> [ Path ] - - Example: - toList ./. - [ ./README.md ./Makefile ./src/main.c ./src/main.h ] - - toList (difference ./. ./src) - [ ./README.md ./Makefile ] - */ - toList = - # 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); - - /* - The file set containing all files that are in either of two given file sets. - This is the same as [`unions`](#function-library-lib.fileset.unions), - but takes just two file sets instead of a list. - See also [Union (set theory)](https://en.wikipedia.org/wiki/Union_(set_theory)). - - The given file sets are evaluated as lazily as possible, - with the first argument being evaluated first if needed. - - Type: - union :: FileSet -> FileSet -> FileSet - - Example: - # Create a file set containing the file `Makefile` - # and all files recursively in the `src` directory - union ./Makefile ./src - - # Create a file set containing the file `Makefile` - # and the LICENSE file from the parent directory - union ./Makefile ../LICENSE - */ - union = - # The first file set. - # This argument can also be a path, - # which gets [implicitly coerced to a file set](#sec-fileset-path-coercion). - fileset1: - # The second file set. - # 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" [ - { - context = "First argument"; - value = fileset1; - } - { - context = "Second argument"; - value = fileset2; - } - ]); - - /* - The file set containing all files that are in any of the given file sets. - This is the same as [`union`](#function-library-lib.fileset.unions), - but takes a list of file sets instead of just two. - See also [Union (set theory)](https://en.wikipedia.org/wiki/Union_(set_theory)). - - The given file sets are evaluated as lazily as possible, - with earlier elements being evaluated first if needed. - - Type: - unions :: [ FileSet ] -> FileSet - - Example: - # Create a file set containing selected files - unions [ - # Include the single file `Makefile` in the current directory - # This errors if the file doesn't exist - ./Makefile - - # Recursively include all files in the `src/code` directory - # If this directory is empty this has no effect - ./src/code - - # Include the files `run.sh` and `unit.c` from the `tests` directory - ./tests/run.sh - ./tests/unit.c - - # Include the `LICENSE` file from the parent directory - ../LICENSE - ] - */ - unions = - # A list of file sets. - # 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.'' - else - pipe filesets [ - # Annotate the elements with context, used by _coerceMany for better errors - (imap0 (i: el: { - context = "Element ${toString i}"; - value = el; - })) - (_coerceMany "lib.fileset.unions") - _unionMany - ]; - - /* - The file set containing all files that are in both of two given file sets. - See also [Intersection (set theory)](https://en.wikipedia.org/wiki/Intersection_(set_theory)). - - The given file sets are evaluated as lazily as possible, - with the first argument being evaluated first if needed. - - Type: - intersection :: FileSet -> FileSet -> FileSet - - Example: - # Limit the selected files to the ones in ./., so only ./src and ./Makefile - intersection ./. (unions [ ../LICENSE ./src ./Makefile ]) - */ - intersection = - # The first file set. - # This argument can also be a path, - # which gets [implicitly coerced to a file set](#sec-fileset-path-coercion). - fileset1: - # The second file set. - # This argument can also be a path, - # which gets [implicitly coerced to a file set](#sec-fileset-path-coercion). - fileset2: - let - filesets = _coerceMany "lib.fileset.intersection" [ - { - context = "First argument"; - value = fileset1; - } - { - context = "Second argument"; - value = fileset2; - } - ]; - in - _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. - See also [Difference (set theory)](https://en.wikipedia.org/wiki/Complement_(set_theory)#Relative_complement). - - The given file sets are evaluated as lazily as possible, - with the first argument being evaluated first if needed. - - Type: - union :: FileSet -> FileSet -> FileSet - - Example: - # Create a file set containing all files from the current directory, - # except ones under ./tests - difference ./. ./tests - - let - # A set of Nix-related files - nixFiles = unions [ ./default.nix ./nix ./tests/default.nix ]; - in - # Create a file set containing all files under ./tests, except ones in `nixFiles`, - # meaning only without ./tests/default.nix - difference ./tests nixFiles - */ - difference = - # The positive file set. - # The result can only contain files that are also in this file set. - # - # This argument can also be a path, - # which gets [implicitly coerced to a file set](#sec-fileset-path-coercion). - positive: - # The negative file set. - # The result will never contain files that are also in this file set. - # - # This argument can also be a path, - # which gets [implicitly coerced to a file set](#sec-fileset-path-coercion). - negative: - let - filesets = _coerceMany "lib.fileset.difference" [ - { - context = "First argument (positive set)"; - value = positive; - } - { - context = "Second argument (negative set)"; - value = negative; - } - ]; - in - _difference - (elemAt filesets 0) - (elemAt filesets 1); - - /* - Filter a file set to only contain files matching some predicate. - - Type: - fileFilter :: - ({ - name :: String, - type :: String, - hasExt :: String -> Bool, - ... - } -> Bool) - -> Path - -> FileSet - - Example: - # Include all regular `default.nix` files in the current directory - fileFilter (file: file.name == "default.nix") ./. - - # Include all non-Nix files from the current directory - fileFilter (file: ! file.hasExt "nix") ./. - - # Include all files that start with a "." in the current directory - fileFilter (file: hasPrefix "." file.name) ./. - - # Include all regular files (not symlinks or others) in the current directory - fileFilter (file: file.type == "regular") ./. - */ - fileFilter = - /* - The predicate function to call on all files contained in given file set. - A file is included in the resulting file set if this function returns true for it. - - This function is called with an attribute set containing these attributes: - - - `name` (String): The name of the file - - - `type` (String, one of `"regular"`, `"symlink"` or `"unknown"`): The type of the file. - This matches result of calling [`builtins.readFileType`](https://nixos.org/manual/nix/stable/language/builtins.html#builtins-readFileType) on the file's path. - - - `hasExt` (String -> Bool): Whether the file has a certain file extension. - `hasExt ext` is true only if `hasSuffix ".${ext}" name`. - - This also means that e.g. for a file with name `.gitignore`, - `hasExt "gitignore"` is true. - - Other attributes may be added in the future. - */ - 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 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.'' - 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. - - 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). - - :::{.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 - - 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 - - # Use cleanSource, but limit it to only include ./Makefile and files under ./src - intersection - (fromSource (lib.sources.cleanSource ./.)) - (unions [ - ./Makefile - ./src - ]); - */ - fromSource = source: - let - # This function uses `._isLibCleanSourceWith`, `.origSrc` and `.filter`, - # which are technically internal to lib.sources, - # but we'll allow this since both libraries are in the same code base - # and this function is a bridge between them. - isFiltered = source ? _isLibCleanSourceWith; - path = if isFiltered then source.origSrc else source; - in - # We can only support sources created from paths - 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.'' - else if isFiltered then - _fromSourceFilter path source.filter - else - # If there's no filter, no need to run the expensive conversion, all subpaths will be included - _singleton 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. - - This function behaves like [`gitTrackedWith { }`](#function-library-lib.fileset.gitTrackedWith) - using the defaults. - - Type: - gitTracked :: Path -> FileSet - - Example: - # Include all files tracked by the Git repository in the current directory - gitTracked ./. - - # Include only files tracked by the Git repository in the parent directory - # that are also in the current directory - intersection ./. (gitTracked ../.) - */ - gitTracked = - /* - 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 - {}; - - /* - 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. - The first argument allows configuration with an attribute set, - while the second argument is the path to the Git working tree. - - `gitTrackedWith` does not perform any filtering when the path is a [Nix store path](https://nixos.org/manual/nix/stable/store/store-path.html#store-path) and not a repository. - In this way, it accommodates the use case where the expression that makes the `gitTracked` call does not reside in an actual git repository anymore, - and has presumably already been fetched in a way that excludes untracked files. - Fetchers with such equivalent behavior include `builtins.fetchGit`, `builtins.fetchTree` (experimental), and `pkgs.fetchgit` when used without `leaveDotGit`. - - If you don't need the configuration, - you can use [`gitTracked`](#function-library-lib.fileset.gitTracked) instead. - - This is equivalent to the result of [`unions`](#function-library-lib.fileset.unions) on all files returned by [`git ls-files`](https://git-scm.com/docs/git-ls-files) - (which uses [`--cached`](https://git-scm.com/docs/git-ls-files#Documentation/git-ls-files.txt--c) by default). - - :::{.warning} - Currently this function is based on [`builtins.fetchGit`](https://nixos.org/manual/nix/stable/language/builtins.html#builtins-fetchGit) - As such, this function causes all Git-tracked files to be unnecessarily added to the Nix store, - without being re-usable by [`toSource`](#function-library-lib.fileset.toSource). - - This may change in the future. - ::: - - Type: - gitTrackedWith :: { recurseSubmodules :: Bool ? false } -> Path -> FileSet - - Example: - # Include all files tracked by the Git repository in the current directory - # and any submodules under it - gitTracked { recurseSubmodules = true; } ./. - */ - gitTrackedWith = - { - /* - (optional, default: `false`) Whether to recurse into [Git submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules) to also include their tracked files. - - If `true`, this is equivalent to passing the [--recurse-submodules](https://git-scm.com/docs/git-ls-files#Documentation/git-ls-files.txt---recurse-submodules) flag to `git ls-files`. - */ - recurseSubmodules ? false, - }: - /* - 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: - 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 - # 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; - }); -} diff --git a/lib/fileset/internal.nix b/lib/fileset/internal.nix deleted file mode 100644 index 0d97ef1..0000000 --- a/lib/fileset/internal.nix +++ /dev/null @@ -1,958 +0,0 @@ -{ lib ? import ../. }: -let - - inherit (builtins) - isAttrs - isPath - isString - nixVersion - pathExists - readDir - split - trace - typeOf - fetchGit - ; - - inherit (lib.attrsets) - attrNames - attrValues - mapAttrs - mapAttrsToList - optionalAttrs - zipAttrsWith - ; - - inherit (lib.filesystem) - pathType - ; - - inherit (lib.lists) - all - commonPrefix - concatLists - elemAt - filter - findFirst - findFirstIndex - foldl' - head - length - sublist - tail - ; - - inherit (lib.path) - append - splitRoot - hasStorePathPrefix - splitStorePath - ; - - inherit (lib.path.subpath) - components - join - ; - - inherit (lib.strings) - isStringLike - concatStringsSep - substring - stringLength - hasSuffix - versionAtLeast - ; - - 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 -# - The functions depend on each other -# - We want to expose all of these functions for easy testing -rec { - - # If you change the internal representation, make sure to: - # - Increment this version - # - Add an additional migration function below - # - Update the description of the internal representation in ./README.md - _currentVersion = 3; - - # Migrations between versions. The 0th element converts from v0 to v1, and so on - migrations = [ - # Convert v0 into v1: Add the _internalBase{Root,Components} attributes - ( - filesetV0: - let - parts = splitRoot filesetV0._internalBase; - in - filesetV0 // { - _internalVersion = 1; - _internalBaseRoot = parts.root; - _internalBaseComponents = components parts.subpath; - } - ) - - # Convert v1 into v2: filesetTree's can now also omit attributes to signal paths not being included - ( - filesetV1: - # This change is backwards compatible (but not forwards compatible, so we still need a new version) - filesetV1 // { - _internalVersion = 2; - } - ) - - # Convert v2 into v3: filesetTree's now have a representation for an empty file set without a base path - ( - filesetV2: - filesetV2 // { - # All v1 file sets are not the new empty file set - _internalIsEmptyWithoutBase = false; - _internalVersion = 3; - } - ) - ]; - - _noEvalMessage = '' - lib.fileset: Directly evaluating a file set is not supported. - To turn it into a usable source, use `lib.fileset.toSource`. - To pretty-print the contents, use `lib.fileset.trace` or `lib.fileset.traceVal`.''; - - # The empty file set without a base path - _emptyWithoutBase = { - _type = "fileset"; - - _internalVersion = _currentVersion; - - # The one and only! - _internalIsEmptyWithoutBase = true; - - # Due to alphabetical ordering, this is evaluated last, - # which makes the nix repl output nicer than if it would be ordered first. - # It also allows evaluating it strictly up to this error, which could be useful - _noEval = throw _noEvalMessage; - }; - - # Create a fileset, see ./README.md#fileset - # Type: path -> filesetTree -> fileset - _create = base: tree: - let - # Decompose the base into its components - # See ../path/README.md for why we're not just using `toString` - parts = splitRoot base; - in - { - _type = "fileset"; - - _internalVersion = _currentVersion; - - _internalIsEmptyWithoutBase = false; - _internalBase = base; - _internalBaseRoot = parts.root; - _internalBaseComponents = components parts.subpath; - _internalTree = tree; - - # Due to alphabetical ordering, this is evaluated last, - # which makes the nix repl output nicer than if it would be ordered first. - # It also allows evaluating it strictly up to this error, which could be useful - _noEval = throw _noEvalMessage; - }; - - # 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: - if value._type or "" == "fileset" then - if value._internalVersion > _currentVersion then - throw '' - ${context} is a file set created from a future version of the file set library with a different internal representation: - - Internal version of the file set: ${toString value._internalVersion} - - Internal version of the library: ${toString _currentVersion} - Make sure to update your Nixpkgs to have a newer version of `lib.fileset`.'' - 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; - in - foldl' (value: migration: migration value) value migrationsToApply - else - value - 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. - To convert a `lib.sources`-based value to a file set you can use `lib.fileset.fromSource`. - Note that this only works for sources created from paths.'' - else if isStringLike value then - throw '' - ${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} (${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`.'' - else - _singleton value; - - # 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: - let - 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; - # 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: - # The empty value without a base doesn't have a base path - ! fileset._internalIsEmptyWithoutBase - && firstBaseRoot != fileset._internalBaseRoot - ) null filesets; - in - # Only evaluates `differentIndex` if there are any elements with a base - if firstWithBase != null && differentIndex != null then - throw '' - ${functionContext}: Filesystem roots are not the same: - ${(head list).context}: Filesystem root is "${toString firstBaseRoot}" - ${(elemAt list differentIndex).context}: Filesystem root is "${toString (elemAt filesets differentIndex)._internalBaseRoot}" - Different filesystem roots are not supported.'' - else - filesets; - - # Create a file set from a path. - # Type: Path -> fileset - _singleton = path: - let - type = pathType path; - in - if type == "directory" then - _create path type - else - # This turns a file path ./default.nix into a fileset with - # - _internalBase: ./. - # - _internalTree: { - # "default.nix" = ; - # } - # See ./README.md#single-files - _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: - if value == "directory" then - readDir path - else - # Set all entries not present to null - mapAttrs (name: value: null) (readDir path) - // value; - - /* - A normalisation of a filesetTree suitable filtering with `builtins.path`: - - Replace all directories that have no files with `null`. - This removes directories that would be empty - - Replace all directories with all files with `"directory"`. - This speeds up the source filter function - - Note that this function is strict, it evaluates the entire tree - - Type: Path -> filesetTree -> filesetTree - */ - _normaliseTreeFilter = path: tree: - if tree == "directory" || isAttrs tree then - let - entries = _directoryEntries path tree; - normalisedSubtrees = mapAttrs (name: _normaliseTreeFilter (path + "/${name}")) entries; - subtreeValues = attrValues normalisedSubtrees; - in - # This triggers either when all files in a directory are filtered out - # Or when the directory doesn't contain any files at all - if all isNull subtreeValues then - null - # Triggers when we have the same as a `readDir path`, so we can turn it back into an equivalent "directory". - else if all isString subtreeValues then - "directory" - else - normalisedSubtrees - else - tree; - - /* - A minimal normalisation of a filesetTree, intended for pretty-printing: - - If all children of a path are recursively included or empty directories, the path itself is also recursively included - - If all children of a path are fully excluded or empty directories, the path itself is an empty directory - - Other empty directories are represented with the special "emptyDir" string - While these could be replaced with `null`, that would take another mapAttrs - - Note that this function is partially lazy. - - Type: Path -> filesetTree -> filesetTree (with "emptyDir"'s) - */ - _normaliseTreeMinimal = path: tree: - if tree == "directory" || isAttrs tree then - let - entries = _directoryEntries path tree; - normalisedSubtrees = mapAttrs (name: _normaliseTreeMinimal (path + "/${name}")) entries; - subtreeValues = attrValues normalisedSubtrees; - in - # If there are no entries, or all entries are empty directories, return "emptyDir". - # After this branch we know that there's at least one file - if all (value: value == "emptyDir") subtreeValues then - "emptyDir" - - # If all subtrees are fully included or empty directories - # (both of which are coincidentally represented as strings), return "directory". - # This takes advantage of the fact that empty directories can be represented as included directories. - # Note that the tree == "directory" check allows avoiding recursion - else if tree == "directory" || all (value: isString value) subtreeValues then - "directory" - - # If all subtrees are fully excluded or empty directories, return null. - # This takes advantage of the fact that empty directories can be represented as excluded directories - else if all (value: isNull value || value == "emptyDir") subtreeValues then - null - - # Mix of included and excluded entries - else - normalisedSubtrees - else - tree; - - # 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: - let - treeSuffix = tree: - if isAttrs tree then - "" - else if tree == "directory" then - " (all files in directory)" - else - # This does "leak" the file type strings of the internal representation, - # but this is the main reason these file type strings even are in the representation! - # TODO: Consider removing that information from the internal representation for performance. - # The file types can still be printed by querying them only during tracing - " (${tree})"; - - # Only for attribute set trees - 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; - in - if subtree == null || subtree == "emptyDir" then - # Don't print anything at all if this subtree is empty - prevLine - else if isAttrs subtree then - # A directory with explicit entries - # Do print this node, but also recurse - traceTreeAttrs thisLine "${indent} " subtree - else - # Either a file, or a recursively included directory - # Do print this node but no further recursion needed - thisLine - ) prevLine (attrNames tree); - - # Evaluating this will print the first line - firstLine = - if tree == null || tree == "emptyDir" then - trace "(empty)" null - else - trace "${toString base}${treeSuffix tree}" null; - in - 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: - if fileset._internalIsEmptyWithoutBase then - trace "(empty)" null - else - _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: - 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 - tree = _normaliseTreeFilter fileset._internalBase fileset._internalTree; - - # The base path as a string with a single trailing slash - baseString = - if fileset._internalBaseComponents == [] then - # Need to handle the filesystem root specially - "/" - else - "/" + concatStringsSep "/" fileset._internalBaseComponents + "/"; - - baseLength = stringLength baseString; - - # 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: - let - 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 - # The path may have no more components though, meaning the filter is running on the directory itself, - # so we always include it, again because there's at least one file in it. - true - else - # If we do have more components, the filter runs on some entry inside this directory, so we need to recurse - # We do +2 because builtins.split is an interleaved list of the inbetweens and the matches - recurse (index + 2) localTree.${elemAt components index} - else - # 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; - - # Filter suited when there's no files - empty = _: _: false; - - # Filter suited when there's some files - # This can't be used for when there's no files, because the base directory is always included - nonEmpty = - path: type: - let - # Add a slash to the path string, turning "/foo" to "/foo/", - # making sure to not have any false prefix matches below. - # Note that this would produce "//" for "/", - # but builtins.path doesn't call the filter function on the `path` argument itself, - # meaning this function can never receive "/" as an argument - pathSlash = path + "/"; - in - ( - # Same as `hasPrefix pathSlash baseString`, but more efficient. - # With base /foo/bar we need to include /foo: - # hasPrefix "/foo/" "/foo/bar/" - if substring 0 (stringLength pathSlash) baseString == pathSlash then - true - # Same as `! hasPrefix baseString pathSlash`, but more efficient. - # With base /foo/bar we need to exclude /baz - # ! hasPrefix "/baz/" "/foo/bar/" - else if substring 0 baseLength pathSlash != baseString then - false - else - # Same as `removePrefix baseString path`, but more efficient. - # From the above code we know that hasPrefix baseString pathSlash holds, so this is safe. - # We don't use pathSlash here because we only needed the trailing slash for the prefix matching. - # With base /foo and path /foo/bar/baz this gives - # inTree (split "/" (removePrefix "/foo/" "/foo/bar/baz")) - # == inTree (split "/" "bar/baz") - # == inTree [ "bar" "baz" ] - inTree (split "/" (substring baseLength (-1) path)) - ) - # This is a way have an additional check in case the above is true without any significant performance cost - && ( - # This relies on the fact that Nix only distinguishes path types "directory", "regular", "symlink" and "unknown", - # so everything except "unknown" is allowed, seems reasonable to rely on that - type != "unknown" - || throw '' - lib.fileset.toSource: `fileset` contains a file that cannot be added to the store: ${path} - This file is neither a regular file nor a symlink, the only file types supported by the Nix store. - Therefore the file set cannot be added to the Nix store as is. Make sure to not include that file to avoid this error.'' - ); - in - # 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; - - # 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: - let - # During the recursion we need to track both: - # - The path value such that we can safely call `readDir` on it - # - The path string value such that we can correctly call the `filter` with it - # - # While we could just recurse with the path value, - # this would then require converting it to a path string for every path, - # which is a fairly expensive operation - - # Create a file set from a directory entry - fromDirEntry = path: pathString: type: - # The filter needs to run on the path as a string - if ! sourceFilter pathString type then - null - else if type == "directory" then - fromDir path pathString - else - type; - - # Create a file set from a directory - 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}")) - # We need to readDir on the path value, because reading on a path string - # would be unspecified if there are multiple filesystem roots - (readDir path); - - rootPathType = pathType root; - - # We need to convert the path to a string to imitate what builtins.path calls the filter function with. - # We don't want to rely on `toString` for this though because it's not very well defined, see ../path/README.md - # So instead we use `lib.path.splitRoot` to safely deconstruct the path into its filesystem root and subpath - # We don't need the filesystem root though, builtins.path doesn't expose that in any way to the filter. - # So we only need the components, which we then turn into a string as one would expect. - rootString = "/" + concatStringsSep "/" (components (splitRoot root).subpath); - in - if rootPathType == "directory" then - # We imitate builtins.path not calling the filter on the root path - _create root (fromDir root rootString) - 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; - }; - - # Turns a file set into the list of file paths it includes. - # Type: fileset -> [ Path ] - _toList = fileset: - let - recurse = path: tree: - if isAttrs tree then - concatLists (mapAttrsToList (name: value: - recurse (path + "/${name}") value - ) tree) - else if tree == "directory" then - recurse path (readDir path) - else if tree == null then - [ ] - else - [ path ]; - in - if fileset._internalIsEmptyWithoutBase then - [ ] - else - recurse fileset._internalBase fileset._internalTree; - - # 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: - let - 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 - { ${elemAt fileset._internalBaseComponents index} = recurse (index + 1); } - else - # Otherwise we reached the appropriate depth, here's the original tree - fileset._internalTree; - in - recurse (length targetBaseComponents); - - # 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: - let - 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) - recurse (index + 1) (tree.${elemAt targetBaseComponents index} or null) - else - # For all values here we can just return the tree itself: - # tree == null -> the result is also null, everything is excluded - # tree == "directory" -> the result is also "directory", - # because the base path is always a directory and everything is included - # isAttrs tree -> the result is `tree` - # because we don't need to recurse any more since `index == length longestBaseComponents` - tree; - in - recurse (length fileset._internalBaseComponents) fileset._internalTree; - - # 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: - 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; - - # The first fileset that has a base. - # This value is only accessed if there are at all. - firstWithBase = head filesetsWithBase; - - # To be able to union filesetTree's together, they need to have the same base path. - # Base paths can be unioned by taking their common prefix, - # e.g. such that `union /foo/bar /foo/baz` has the base path `/foo` - - # 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); - - # The common base path assembled from a filesystem root and the common components - commonBase = append firstWithBase._internalBaseRoot (join commonBaseComponents); - - # A list of filesetTree's that all have the same base path - # This is achieved by nesting the trees into the components they have over the common base path - # E.g. `union /foo/bar /foo/baz` has the base path /foo - # So the tree under `/foo/bar` gets nested under `{ bar = ...; ... }`, - # while the tree under `/foo/baz` gets nested under `{ baz = ...; ... }` - # Therefore allowing combined operations over them. - trees = map (_shortenTreeBase commonBaseComponents) filesetsWithBase; - - # Folds all trees together into a single one using _unionTree - # We do not use a fold here because it would cause a thunk build-up - # which could cause a stack overflow for a large number of trees - resultTree = _unionTrees trees; - in - # If there's no values with a base, we have no files - 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: - let - stringIndex = findFirstIndex isString null trees; - withoutNull = filter (tree: tree != null) trees; - in - if stringIndex != null then - # If there's a string, it's always a fully included tree (dir or file), - # no need to look at other elements - elemAt trees stringIndex - else if withoutNull == [ ] then - # If all trees are null, then the resulting tree is also null - null - else - # The non-null elements have to be attribute sets representing partial trees - # We need to recurse into those - zipAttrsWith (name: _unionTrees) withoutNull; - - # 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: - 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 - ); - - # 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) - - # The fileset with the longest base, if any, e.g. - # (/foo/bar, /foo/bar/baz) -> /foo/bar/baz - # (/foo/bar, /foo/baz) -> null - longestBaseFileset = - if commonBaseComponentsLength == length fileset1._internalBaseComponents then - # The common prefix is the same as the first path, so the second path is equal or longer - fileset2 - else if commonBaseComponentsLength == length fileset2._internalBaseComponents then - # The common prefix is the same as the second path, so the first path is longer - fileset1 - else - # The common prefix is neither the first nor the second path - # This means there's no overlap between the two sets - null; - - # Whether the result should be the empty value without a base - resultIsEmptyWithoutBase = - # If either fileset is the empty fileset without a base, the intersection is too - fileset1._internalIsEmptyWithoutBase - || fileset2._internalIsEmptyWithoutBase - # If there is no overlap between the base paths - || longestBaseFileset == null; - - # Lengthen each fileset's tree to the longest base prefix - tree1 = _lengthenTreeBase longestBaseFileset._internalBaseComponents fileset1; - tree2 = _lengthenTreeBase longestBaseFileset._internalBaseComponents fileset2; - - # With two filesetTree's with the same base, we can compute their intersection - resultTree = _intersectTree tree1 tree2; - in - if resultIsEmptyWithoutBase then - _emptyWithoutBase - else - _create longestBaseFileset._internalBase resultTree; - - # 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: - 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) - 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 - # (a string, aka it includes everything), then it's also the lhs - lhs - else - # In all other cases it's the rhs - rhs; - - # 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: - 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 - ); - - # 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. - # Examples: - # For `difference /foo /foo/bar`, `negativeTreeWithPositiveBase = { bar = "directory"; }` - # because under the base path of `/foo`, only `bar` from the negative file set is included - # For `difference /foo/bar /foo`, `negativeTreeWithPositiveBase = "directory"` - # because under the base path of `/foo/bar`, everything from the negative file set is included - # For `difference /foo /bar`, `negativeTreeWithPositiveBase = null` - # because under the base path of `/foo`, nothing from the negative file set is included - negativeTreeWithPositiveBase = - if commonBaseComponentsLength == length positive._internalBaseComponents then - # The common prefix is the same as the positive base path, so the second path is equal or longer. - # We need to _shorten_ the negative filesetTree to the same base path as the positive one - # E.g. for `difference /foo /foo/bar` the common prefix is /foo, equal to the positive file set's base - # So we need to shorten the base of the tree for the negative argument from /foo/bar to just /foo - _shortenTreeBase positive._internalBaseComponents negative - else if commonBaseComponentsLength == length negative._internalBaseComponents then - # The common prefix is the same as the negative base path, so the first path is longer. - # We need to lengthen the negative filesetTree to the same base path as the positive one. - # E.g. for `difference /foo/bar /foo` the common prefix is /foo, equal to the negative file set's base - # So we need to lengthen the base of the tree for the negative argument from /foo to /foo/bar - _lengthenTreeBase positive._internalBaseComponents negative - else - # The common prefix is neither the first nor the second path. - # This means there's no overlap between the two file sets, - # and nothing from the negative argument should get removed from the positive one - # E.g for `difference /foo /bar`, we remove nothing to get the same as `/foo` - null; - - resultingTree = - _differenceTree - positive._internalBase - positive._internalTree - negativeTreeWithPositiveBase; - in - # If the first file set is empty, we can never have any files in the result - if positive._internalIsEmptyWithoutBase then - _emptyWithoutBase - # If the second file set is empty, nothing gets removed, so the result is just the first file set - else if negative._internalIsEmptyWithoutBase then - positive - else - # We use the positive file set base for the result, - # because only files from the positive side may be included, - # which is what base path is for - _create positive._internalBase resultingTree; - - # Computes the set difference of two filesetTree's - # Type: Path -> filesetTree -> filesetTree - _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 - null - # If the right hand side has no files - else if rhs == null then - # The result is always the left hand side, because nothing gets removed - 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); - - # Filters all files in a path based on a predicate - # Type: ({ name, type, ... } -> Bool) -> Path -> FileSet - _fileFilter = predicate: root: - let - # Check the predicate for a single file - # Type: String -> String -> filesetTree - fromFile = name: type: - if - predicate { - inherit name type; - hasExt = ext: hasSuffix ".${ext}" name; - - # 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; - } - then - type - else - null; - - # 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 - ) (readDir path); - - rootType = pathType root; - in - if rootType == "directory" then - _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; - }; - - # Support for `builtins.fetchGit` with `submodules = true` was introduced in 2.4 - # https://github.com/NixOS/nix/commit/55cefd41d63368d4286568e2956afd535cb44018 - _fetchGitSubmodulesMinver = "2.4"; - - # Support for `builtins.fetchGit` with `shallow = true` was introduced in 2.4 - # https://github.com/NixOS/nix/commit/d1165d8791f559352ff6aa7348e1293b2873db1c - _fetchGitShallowMinver = "2.4"; - - # Mirrors the contents of a Nix store path relative to a local path as a file set. - # Some notes: - # - The store path is read at evaluation time. - # - The store path must not include files that don't exist in the respective local path. - # - # Type: Path -> String -> FileSet - _mirrorStorePath = localPath: storePath: - let - recurse = focusedStorePath: - mapAttrs (name: type: - if type == "directory" then - recurse (focusedStorePath + "/${name}") - else - type - ) (builtins.readDir focusedStorePath); - in - _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: - let - # The code path for when isStorePath is true - tryStorePath = - if pathExists (path + "/.git") then - # If there is a `.git` directory in the path, - # it means that the path was imported unfiltered into the Nix store. - # This function should throw in such a case, because - # - `fetchGit` doesn't generally work with `.git` directories in store paths - # - Importing the entire path could include Git-tracked files - throw '' - lib.fileset.${function}: The ${argument} (${toString path}) is a store path within a working tree of a Git repository. - This indicates that a source directory was imported into the store using a method such as `import "''${./.}"` or `path:.`. - This function currently does not support such a use case, since it currently relies on `builtins.fetchGit`. - You could make this work by using a fetcher such as `fetchGit` instead of copying the whole repository. - If you can't avoid copying the repo to the store, see https://github.com/NixOS/nix/issues/9292.'' - else - # Otherwise we're going to assume that the path was a Git directory originally, - # but it was fetched using a method that already removed files not tracked by Git, - # such as `builtins.fetchGit`, `pkgs.fetchgit` or others. - # So we can just import the path in its entirety. - _singleton path; - - # The code path for when isStorePath is false - tryFetchGit = - let - # This imports the files unnecessarily, which currently can't be avoided - # because `builtins.fetchGit` is the only function exposing which files are tracked by Git. - # 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. - - # 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 - 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 - 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." - else if hasStorePathPrefix path then - tryStorePath - else - tryFetchGit; - -} diff --git a/lib/fileset/mock-splitRoot.nix b/lib/fileset/mock-splitRoot.nix deleted file mode 100644 index 3c18ab1..0000000 --- a/lib/fileset/mock-splitRoot.nix +++ /dev/null @@ -1,26 +0,0 @@ -# This overlay implements mocking of the lib.path.splitRoot function -# It pretends that the last component named "mock-root" is the root: -# -# splitRoot /foo/mock-root/bar/mock-root/baz -# => { -# root = /foo/mock-root/bar/mock-root; -# subpath = "./baz"; -# } -self: super: { - path = super.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); - root = self.path.append parts.root (self.path.subpath.join (self.take rootIndex components)); - subpath = self.path.subpath.join (self.drop rootIndex components); - in { - inherit root subpath; - }; - }; -} diff --git a/lib/fileset/tests.sh b/lib/fileset/tests.sh deleted file mode 100755 index b4162c1..0000000 --- a/lib/fileset/tests.sh +++ /dev/null @@ -1,1597 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2016 -# shellcheck disable=SC2317 -# shellcheck disable=SC2192 - -# Tests lib.fileset -# Run: -# [nixpkgs]$ lib/fileset/tests.sh -# or: -# [nixpkgs]$ nix-build lib/tests/release.nix -set -euo pipefail -shopt -s inherit_errexit dotglob - -die() { - # The second to last entry contains the line number of the top-level caller - lineIndex=$(( ${#BASH_LINENO[@]} - 2 )) - echo >&2 -e "test case at ${BASH_SOURCE[0]}:${BASH_LINENO[$lineIndex]} failed:" "$@" - exit 1 -} - -if test -n "${TEST_LIB:-}"; then - NIX_PATH=nixpkgs="$(dirname "$TEST_LIB")" -else - NIX_PATH=nixpkgs="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.."; pwd)" -fi -export NIX_PATH - -tmp="$(mktemp -d)" -clean_up() { - rm -rf "$tmp" -} -trap clean_up EXIT SIGINT SIGTERM -work="$tmp/work" -mkdir "$work" -cd "$work" - -# Crudely unquotes a JSON string by just taking everything between the first and the second quote. -# We're only using this for resulting /nix/store paths, which can't contain " anyways, -# nor can they contain any other characters that would need to be escaped specially in JSON -# This way we don't need to add a dependency on e.g. jq -crudeUnquoteJSON() { - cut -d \" -f2 -} - -prefixExpression=' - let - lib = import ; - internal = import { - inherit lib; - }; - in - with lib; - with internal; - with lib.fileset; -' - -# Check that two nix expression successfully evaluate to the same value. -# The expressions have `lib.fileset` in scope. -# Usage: expectEqual NIX NIX -expectEqual() { - local actualExpr=$1 - local expectedExpr=$2 - if actualResult=$(nix-instantiate --eval --strict --show-trace 2>"$tmp"/actualStderr \ - --expr "$prefixExpression ($actualExpr)"); then - actualExitCode=$? - else - actualExitCode=$? - fi - actualStderr=$(< "$tmp"/actualStderr) - - if expectedResult=$(nix-instantiate --eval --strict --show-trace 2>"$tmp"/expectedStderr \ - --expr "$prefixExpression ($expectedExpr)"); then - expectedExitCode=$? - else - expectedExitCode=$? - fi - expectedStderr=$(< "$tmp"/expectedStderr) - - if [[ "$actualExitCode" != "$expectedExitCode" ]]; then - echo "$actualStderr" >&2 - echo "$actualResult" >&2 - die "$actualExpr should have exited with $expectedExitCode, but it exited with $actualExitCode" - fi - - if [[ "$actualResult" != "$expectedResult" ]]; then - die "$actualExpr should have evaluated to $expectedExpr:\n$expectedResult\n\nbut it evaluated to\n$actualResult" - fi - - if [[ "$actualStderr" != "$expectedStderr" ]]; then - die "$actualExpr should have had this on stderr:\n$expectedStderr\n\nbut it was\n$actualStderr" - fi -} - -# Check that a nix expression evaluates successfully to a store path and returns it (without quotes). -# The expression has `lib.fileset` in scope. -# Usage: expectStorePath NIX -expectStorePath() { - local expr=$1 - if ! result=$(nix-instantiate --eval --strict --json --read-write-mode --show-trace 2>"$tmp"/stderr \ - --expr "$prefixExpression ($expr)"); then - cat "$tmp/stderr" >&2 - die "$expr failed to evaluate, but it was expected to succeed" - fi - # This is safe because we assume to get back a store path in a string - crudeUnquoteJSON <<< "$result" -} - -# Check that a nix expression fails to evaluate (strictly, read-write-mode). -# And check the received stderr against a regex -# The expression has `lib.fileset` in scope. -# Usage: expectFailure NIX REGEX -expectFailure() { - local expr=$1 - local expectedErrorRegex=$2 - if result=$(nix-instantiate --eval --strict --read-write-mode --show-trace 2>"$tmp/stderr" \ - --expr "$prefixExpression $expr"); then - die "$expr evaluated successfully to $result, but it was expected to fail" - fi - stderr=$(<"$tmp/stderr") - if [[ ! "$stderr" =~ $expectedErrorRegex ]]; then - die "$expr should have errored with this regex pattern:\n\n$expectedErrorRegex\n\nbut this was the actual error:\n\n$stderr" - fi -} - -# Check that the traces of a Nix expression are as expected when evaluated. -# The expression has `lib.fileset` in scope. -# Usage: expectTrace NIX STR -expectTrace() { - local expr=$1 - local expectedTrace=$2 - - nix-instantiate --eval --show-trace >/dev/null 2>"$tmp"/stderrTrace \ - --expr "$prefixExpression trace ($expr)" || true - - actualTrace=$(sed -n 's/^trace: //p' "$tmp/stderrTrace") - - nix-instantiate --eval --show-trace >/dev/null 2>"$tmp"/stderrTraceVal \ - --expr "$prefixExpression traceVal ($expr)" || true - - actualTraceVal=$(sed -n 's/^trace: //p' "$tmp/stderrTraceVal") - - # Test that traceVal returns the same trace as trace - if [[ "$actualTrace" != "$actualTraceVal" ]]; then - cat "$tmp"/stderrTrace >&2 - die "$expr traced this for lib.fileset.trace:\n\n$actualTrace\n\nand something different for lib.fileset.traceVal:\n\n$actualTraceVal" - fi - - if [[ "$actualTrace" != "$expectedTrace" ]]; then - cat "$tmp"/stderrTrace >&2 - die "$expr should have traced this:\n\n$expectedTrace\n\nbut this was actually traced:\n\n$actualTrace" - fi -} - -# We conditionally use inotifywait in withFileMonitor. -# Check early whether it's available -# TODO: Darwin support, though not crucial since we have Linux CI -if type inotifywait 2>/dev/null >/dev/null; then - canMonitor=1 -else - echo "Warning: Cannot check for paths not getting read since the inotifywait command (from the inotify-tools package) is not available" >&2 - canMonitor= -fi - -# Run a function while monitoring that it doesn't read certain paths -# Usage: withFileMonitor FUNNAME PATH... -# - FUNNAME should be a bash function that: -# - Performs some operation that should not read some paths -# - Delete the paths it shouldn't read without triggering any open events -# - PATH... are the paths that should not get read -# -# This function outputs the same as FUNNAME -withFileMonitor() { - local funName=$1 - shift - - # If we can't monitor files or have none to monitor, just run the function directly - if [[ -z "$canMonitor" ]] || (( "$#" == 0 )); then - "$funName" - else - - # Use a subshell to start the coprocess in and use a trap to kill it when exiting the subshell - ( - # Assigned by coproc, makes shellcheck happy - local watcher watcher_PID - - # Start inotifywait in the background to monitor all excluded paths - coproc watcher { - # inotifywait outputs a string on stderr when ready - # Redirect it to stdout so we can access it from the coproc's stdout fd - # exec so that the coprocess is inotify itself, making the kill below work correctly - # See below why we listen to both open and delete_self events - exec inotifywait --format='%e %w' --event open,delete_self --monitor "$@" 2>&1 - } - - # This will trigger when this subshell exits, no matter if successful or not - # After exiting the subshell, the parent shell will continue executing - trap 'kill "${watcher_PID}"' exit - - # Synchronously wait until inotifywait is ready - while read -r -u "${watcher[0]}" line && [[ "$line" != "Watches established." ]]; do - : - done - - # Call the function that should not read the given paths and delete them afterwards - "$funName" - - # Get the first event - read -r -u "${watcher[0]}" event file - - # With funName potentially reading files first before deleting them, - # there's only these two possible event timelines: - # - open*, ..., open*, delete_self, ..., delete_self: If some excluded paths were read - # - delete_self, ..., delete_self: If no excluded paths were read - # So by looking at the first event we can figure out which one it is! - # This also means we don't have to wait to collect all events. - case "$event" in - OPEN*) - die "$funName opened excluded file $file when it shouldn't have" - ;; - DELETE_SELF) - # Expected events - ;; - *) - die "During $funName, Unexpected event type '$event' on file $file that should be excluded" - ;; - esac - ) - fi -} - - -# Create the tree structure declared in the tree variable, usage: -# -# tree=( -# [a/b] = # Declare that file a/b should exist -# [c/a] = # Declare that file c/a should exist -# [c/d/]= # Declare that directory c/d/ should exist -# ) -# createTree -declare -A tree -createTree() { - # Track which paths need to be created - local -a dirsToCreate=() - local -a filesToCreate=() - for p in "${!tree[@]}"; do - # If keys end with a `/` we treat them as directories, otherwise files - if [[ "$p" =~ /$ ]]; then - dirsToCreate+=("$p") - else - filesToCreate+=("$p") - fi - done - - # Create all the necessary paths. - # This is done with only a fixed number of processes, - # in order to not be too slow - # Though this does mean we're a bit limited with how many files can be created - if (( ${#dirsToCreate[@]} != 0 )); then - mkdir -p "${dirsToCreate[@]}" - fi - if (( ${#filesToCreate[@]} != 0 )); then - readarray -d '' -t parentsToCreate < <(dirname -z "${filesToCreate[@]}") - mkdir -p "${parentsToCreate[@]}" - touch "${filesToCreate[@]}" - fi -} - -# Check whether a file set includes/excludes declared paths as expected, usage: -# -# tree=( -# [a/b] =1 # Declare that file a/b should exist and expect it to be included in the store path -# [c/a] = # Declare that file c/a should exist and expect it to be excluded in the store path -# [c/d/]= # Declare that directory c/d/ should exist and expect it to be excluded in the store path -# ) -# checkFileset './a' # Pass the fileset as the argument -checkFileset() { - local fileset=$1 - - # Create the tree - createTree - - # Process the tree into separate arrays for included paths, excluded paths and excluded files. - local -a included=() - local -a includedFiles=() - local -a excluded=() - local -a excludedFiles=() - for p in "${!tree[@]}"; do - case "${tree[$p]}" in - 1) - included+=("$p") - # If keys end with a `/` we treat them as directories, otherwise files - if [[ ! "$p" =~ /$ ]]; then - includedFiles+=("$p") - fi - ;; - 0) - excluded+=("$p") - if [[ ! "$p" =~ /$ ]]; then - excludedFiles+=("$p") - fi - ;; - *) - die "Unsupported tree value: ${tree[$p]}" - esac - done - - # Test that lib.fileset.toList contains exactly the included files. - # The /#/./ part prefixes each element with `./` - expectEqual "toList ($fileset)" "sort lessThan [ ${includedFiles[*]/#/./} ]" - - expression="toSource { root = ./.; fileset = $fileset; }" - - # We don't have lambda's in bash unfortunately, - # so we just define a function instead and then pass its name - # shellcheck disable=SC2317 - run() { - # Call toSource with the fileset, triggering open events for all files that are added to the store - expectStorePath "$expression" - if (( ${#excludedFiles[@]} != 0 )); then - rm "${excludedFiles[@]}" - fi - } - - # Runs the function while checking that the given excluded files aren't read - storePath=$(withFileMonitor run "${excludedFiles[@]}") - - # For each path that should be included, make sure it does occur in the resulting store path - for p in "${included[@]}"; do - if [[ ! -e "$storePath/$p" ]]; then - die "$expression doesn't include path $p when it should have" - fi - done - - # For each path that should be excluded, make sure it doesn't occur in the resulting store path - for p in "${excluded[@]}"; do - if [[ -e "$storePath/$p" ]]; then - die "$expression included path $p when it shouldn't have" - fi - done - - rm -rf -- * -} - - -#### Error messages ##### - -# We're using [[:blank:]] here instead of \s, because only the former is POSIX -# (see https://pubs.opengroup.org/onlinepubs/007908799/xbd/re.html#tag_007_003_005). -# And indeed, Darwin's bash only supports the former - -# Absolute paths in strings cannot be passed as `root` -expectFailure 'toSource { root = "/nix/store/foobar"; fileset = ./.; }' 'lib.fileset.toSource: `root` \(/nix/store/foobar\) is a string-like value, but it should be a path instead. -[[:blank:]]*Paths in strings are not supported by `lib.fileset`, use `lib.sources` or derivations instead.' - -expectFailure 'toSource { root = cleanSourceWith { src = ./.; }; fileset = ./.; }' 'lib.fileset.toSource: `root` is a `lib.sources`-based value, but it should be a path instead. -[[:blank:]]*To use a `lib.sources`-based value, convert it to a file set using `lib.fileset.fromSource` and pass it as `fileset`. -[[:blank:]]*Note that this only works for sources created from paths.' - -# Only paths are accepted as `root` -expectFailure 'toSource { root = 10; fileset = ./.; }' 'lib.fileset.toSource: `root` is of type int, but it should be a path instead.' - -# Different filesystem roots in root and fileset are not supported -mkdir -p {foo,bar}/mock-root -expectFailure 'with ((import ).extend (import )).fileset; - toSource { root = ./foo/mock-root; fileset = ./bar/mock-root; } -' 'lib.fileset.toSource: Filesystem roots are not the same for `fileset` and `root` \('"$work"'/foo/mock-root\): -[[:blank:]]*`root`: Filesystem root is "'"$work"'/foo/mock-root" -[[:blank:]]*`fileset`: Filesystem root is "'"$work"'/bar/mock-root" -[[:blank:]]*Different filesystem roots are not supported.' -rm -rf -- * - -# `root` needs to exist -expectFailure 'toSource { root = ./a; fileset = ./.; }' 'lib.fileset.toSource: `root` \('"$work"'/a\) is a path that does not exist.' - -# `root` needs to be a file -touch a -expectFailure 'toSource { root = ./a; fileset = ./a; }' 'lib.fileset.toSource: `root` \('"$work"'/a\) is a file, but it should be a directory instead. Potential solutions: -[[:blank:]]*- If you want to import the file into the store _without_ a containing directory, use string interpolation or `builtins.path` instead of this function. -[[:blank:]]*- If you want to import the file into the store _with_ a containing directory, set `root` to the containing directory, such as '"$work"', and set `fileset` to the file path.' -rm -rf -- * - -# The fileset argument should be evaluated, even if the directory is empty -expectFailure 'toSource { root = ./.; fileset = abort "This should be evaluated"; }' 'evaluation aborted with the following error message: '\''This should be evaluated'\' - -# Only paths under `root` should be able to influence the result -mkdir a -expectFailure 'toSource { root = ./a; fileset = ./.; }' 'lib.fileset.toSource: `fileset` could contain files in '"$work"', which is not under the `root` \('"$work"'/a\). Potential solutions: -[[:blank:]]*- Set `root` to '"$work"' or any directory higher up. This changes the layout of the resulting store path. -[[:blank:]]*- Set `fileset` to a file set that cannot contain files outside the `root` \('"$work"'/a\). This could change the files included in the result.' -rm -rf -- * - -# non-regular and non-symlink files cannot be added to the Nix store -mkfifo a -expectFailure 'toSource { root = ./.; fileset = ./a; }' 'lib.fileset.toSource: `fileset` contains a file that cannot be added to the store: '"$work"'/a -[[:blank:]]*This file is neither a regular file nor a symlink, the only file types supported by the Nix store. -[[:blank:]]*Therefore the file set cannot be added to the Nix store as is. Make sure to not include that file to avoid this error.' -rm -rf -- * - -# Path coercion only works for paths -expectFailure 'toSource { root = ./.; fileset = 10; }' 'lib.fileset.toSource: `fileset` is of type int, but it should be a file set or a path instead.' -expectFailure 'toSource { root = ./.; fileset = "/some/path"; }' 'lib.fileset.toSource: `fileset` \("/some/path"\) is a string-like value, but it should be a file set or a path instead. -[[:blank:]]*Paths represented as strings are not supported by `lib.fileset`, use `lib.sources` or derivations instead.' -expectFailure 'toSource { root = ./.; fileset = cleanSourceWith { src = ./.; }; }' 'lib.fileset.toSource: `fileset` is a `lib.sources`-based value, but it should be a file set or a path instead. -[[:blank:]]*To convert a `lib.sources`-based value to a file set you can use `lib.fileset.fromSource`. -[[:blank:]]*Note that this only works for sources created from paths.' - -# Path coercion errors for non-existent paths -expectFailure 'toSource { root = ./.; fileset = ./a; }' 'lib.fileset.toSource: `fileset` \('"$work"'/a\) is a path that does not exist. -[[:blank:]]*To create a file set from a path that may not exist, use `lib.fileset.maybeMissing`.' - -# File sets cannot be evaluated directly -expectFailure 'union ./. ./.' 'lib.fileset: Directly evaluating a file set is not supported. -[[:blank:]]*To turn it into a usable source, use `lib.fileset.toSource`. -[[:blank:]]*To pretty-print the contents, use `lib.fileset.trace` or `lib.fileset.traceVal`.' -expectFailure '_emptyWithoutBase' 'lib.fileset: Directly evaluating a file set is not supported. -[[:blank:]]*To turn it into a usable source, use `lib.fileset.toSource`. -[[:blank:]]*To pretty-print the contents, use `lib.fileset.trace` or `lib.fileset.traceVal`.' - -# Past versions of the internal representation are supported -expectEqual '_coerce ": value" { _type = "fileset"; _internalVersion = 0; _internalBase = ./.; }' \ - '{ _internalBase = ./.; _internalBaseComponents = path.subpath.components (path.splitRoot ./.).subpath; _internalBaseRoot = /.; _internalIsEmptyWithoutBase = false; _internalVersion = 3; _type = "fileset"; }' -expectEqual '_coerce ": value" { _type = "fileset"; _internalVersion = 1; }' \ - '{ _type = "fileset"; _internalIsEmptyWithoutBase = false; _internalVersion = 3; }' -expectEqual '_coerce ": value" { _type = "fileset"; _internalVersion = 2; }' \ - '{ _type = "fileset"; _internalIsEmptyWithoutBase = false; _internalVersion = 3; }' - -# Future versions of the internal representation are unsupported -expectFailure '_coerce ": value" { _type = "fileset"; _internalVersion = 4; }' ': value is a file set created from a future version of the file set library with a different internal representation: -[[:blank:]]*- Internal version of the file set: 4 -[[:blank:]]*- Internal version of the library: 3 -[[:blank:]]*Make sure to update your Nixpkgs to have a newer version of `lib.fileset`.' - -# _create followed by _coerce should give the inputs back without any validation -expectEqual '{ - inherit (_coerce "" (_create ./. "directory")) - _internalVersion _internalBase _internalTree; -}' '{ _internalBase = ./.; _internalTree = "directory"; _internalVersion = 3; }' - -#### Resulting store path #### - -# The store path name should be "source" -expectEqual 'toSource { root = ./.; fileset = ./.; }' 'sources.cleanSourceWith { name = "source"; src = ./.; }' - -# We should be able to import an empty directory and end up with an empty result -tree=( -) -checkFileset './.' - -# The empty value without a base should also result in an empty result -tree=( - [a]=0 -) -checkFileset '_emptyWithoutBase' - -# Directories recursively containing no files are not included -tree=( - [e/]=0 - [d/e/]=0 - [d/d/e/]=0 - [d/d/f]=1 - [d/f]=1 - [f]=1 -) -checkFileset './.' - -# Check trees that could cause a naïve string prefix checking implementation to fail -tree=( - [a]=0 - [ab/x]=0 - [ab/xy]=1 - [ab/xyz]=0 - [abc]=0 -) -checkFileset './ab/xy' - -# Check path coercion examples in ../../doc/functions/fileset.section.md -tree=( - [a/x]=1 - [a/b/y]=1 - [c/]=0 - [c/d/]=0 -) -checkFileset './.' - -tree=( - [a/x]=1 - [a/b/y]=1 - [c/]=0 - [c/d/]=0 -) -checkFileset './a' - -tree=( - [a/x]=1 - [a/b/y]=0 - [c/]=0 - [c/d/]=0 -) -checkFileset './a/x' - -tree=( - [a/x]=0 - [a/b/y]=1 - [c/]=0 - [c/d/]=0 -) -checkFileset './a/b' - -tree=( - [a/x]=0 - [a/b/y]=0 - [c/]=0 - [c/d/]=0 -) -checkFileset './c' - -# Test the source filter for the somewhat special case of files in the filesystem root -# We can't easily test this with the above functions because we can't write to the filesystem root and we don't want to make any assumptions which files are there in the sandbox -expectEqual '_toSourceFilter (_create /. null) "/foo" ""' 'false' -expectEqual '_toSourceFilter (_create /. { foo = "regular"; }) "/foo" ""' 'true' -expectEqual '_toSourceFilter (_create /. { foo = null; }) "/foo" ""' 'false' - - -## lib.fileset.toList -# This function is mainly tested in checkFileset - -# The error context for an invalid argument must be correct -expectFailure 'toList null' 'lib.fileset.toList: Argument is of type null, but it should be a file set or a path instead.' - -# Works for the empty fileset -expectEqual 'toList _emptyWithoutBase' '[ ]' - -# Works on empty paths -expectEqual 'toList ./.' '[ ]' - - -## lib.fileset.union, lib.fileset.unions - - -# Different filesystem roots in root and fileset are not supported -mkdir -p {foo,bar}/mock-root -expectFailure 'with ((import ).extend (import )).fileset; - toSource { root = ./.; fileset = union ./foo/mock-root ./bar/mock-root; } -' 'lib.fileset.union: Filesystem roots are not the same: -[[:blank:]]*First argument: Filesystem root is "'"$work"'/foo/mock-root" -[[:blank:]]*Second argument: Filesystem root is "'"$work"'/bar/mock-root" -[[:blank:]]*Different filesystem roots are not supported.' - -expectFailure 'with ((import ).extend (import )).fileset; - toSource { root = ./.; fileset = unions [ ./foo/mock-root ./bar/mock-root ]; } -' 'lib.fileset.unions: Filesystem roots are not the same: -[[:blank:]]*Element 0: Filesystem root is "'"$work"'/foo/mock-root" -[[:blank:]]*Element 1: Filesystem root is "'"$work"'/bar/mock-root" -[[:blank:]]*Different filesystem roots are not supported.' -rm -rf -- * - -# Coercion errors show the correct context -expectFailure 'toSource { root = ./.; fileset = union ./a ./.; }' 'lib.fileset.union: First argument \('"$work"'/a\) is a path that does not exist.' -expectFailure 'toSource { root = ./.; fileset = union ./. ./b; }' 'lib.fileset.union: Second argument \('"$work"'/b\) is a path that does not exist.' -expectFailure 'toSource { root = ./.; fileset = unions [ ./a ./. ]; }' 'lib.fileset.unions: Element 0 \('"$work"'/a\) is a path that does not exist.' -expectFailure 'toSource { root = ./.; fileset = unions [ ./. ./b ]; }' 'lib.fileset.unions: Element 1 \('"$work"'/b\) is a path that does not exist.' - -# unions needs a list -expectFailure 'toSource { root = ./.; fileset = unions null; }' 'lib.fileset.unions: Argument is of type null, but it should be a list instead.' - -# The tree of later arguments should not be evaluated if a former argument already includes all files -tree=() -checkFileset 'union ./. (_create ./. (abort "This should not be used!"))' -checkFileset 'unions [ ./. (_create ./. (abort "This should not be used!")) ]' - -# unions doesn't include any files for an empty list or only empty values without a base -tree=( - [x]=0 - [y/z]=0 -) -checkFileset 'unions [ ]' -checkFileset 'unions [ _emptyWithoutBase ]' -checkFileset 'unions [ _emptyWithoutBase _emptyWithoutBase ]' -checkFileset 'union _emptyWithoutBase _emptyWithoutBase' - -# The empty value without a base is the left and right identity of union -tree=( - [x]=1 - [y/z]=0 -) -checkFileset 'union ./x _emptyWithoutBase' -checkFileset 'union _emptyWithoutBase ./x' - -# union doesn't include files that weren't specified -tree=( - [x]=1 - [y]=1 - [z]=0 -) -checkFileset 'union ./x ./y' -checkFileset 'unions [ ./x ./y ]' - -# Also for directories -tree=( - [x/a]=1 - [x/b]=1 - [y/a]=1 - [y/b]=1 - [z/a]=0 - [z/b]=0 -) -checkFileset 'union ./x ./y' -checkFileset 'unions [ ./x ./y ]' - -# And for very specific paths -tree=( - [x/a]=1 - [x/b]=0 - [y/a]=0 - [y/b]=1 - [z/a]=0 - [z/b]=0 -) -checkFileset 'union ./x/a ./y/b' -checkFileset 'unions [ ./x/a ./y/b ]' - -# unions or chained union's can include more paths -tree=( - [x/a]=1 - [x/b]=1 - [y/a]=1 - [y/b]=0 - [z/a]=0 - [z/b]=1 -) -checkFileset 'unions [ ./x/a ./x/b ./y/a ./z/b ]' -checkFileset 'union (union ./x/a ./x/b) (union ./y/a ./z/b)' -checkFileset 'union (union (union ./x/a ./x/b) ./y/a) ./z/b' - -# unions should not stack overflow, even if many elements are passed -tree=() -for i in $(seq 1000); do - tree[$i/a]=1 - tree[$i/b]=0 -done -# This is actually really hard to test: -# A lot of files would be needed to cause a stack overflow. -# And while we could limit the maximum stack size using `ulimit -s`, -# that turns out to not be very deterministic: https://github.com/NixOS/nixpkgs/pull/256417#discussion_r1339396686. -# Meanwhile, the test infra here is not the fastest, creating 10000 would be too slow. -# So, just using 1000 files for now. -checkFileset 'unions (mapAttrsToList (name: _: ./. + "/${name}/a") (builtins.readDir ./.))' - - -## lib.fileset.intersection - - -# Different filesystem roots in root and fileset are not supported -mkdir -p {foo,bar}/mock-root -expectFailure 'with ((import ).extend (import )).fileset; - toSource { root = ./.; fileset = intersection ./foo/mock-root ./bar/mock-root; } -' 'lib.fileset.intersection: Filesystem roots are not the same: -[[:blank:]]*First argument: Filesystem root is "'"$work"'/foo/mock-root" -[[:blank:]]*Second argument: Filesystem root is "'"$work"'/bar/mock-root" -[[:blank:]]*Different filesystem roots are not supported.' -rm -rf -- * - -# Coercion errors show the correct context -expectFailure 'toSource { root = ./.; fileset = intersection ./a ./.; }' 'lib.fileset.intersection: First argument \('"$work"'/a\) is a path that does not exist.' -expectFailure 'toSource { root = ./.; fileset = intersection ./. ./b; }' 'lib.fileset.intersection: Second argument \('"$work"'/b\) is a path that does not exist.' - -# The tree of later arguments should not be evaluated if a former argument already excludes all files -tree=( - [a]=0 -) -checkFileset 'intersection _emptyWithoutBase (_create ./. (abort "This should not be used!"))' -# We don't have any combinators that can explicitly remove files yet, so we need to rely on internal functions to test this for now -checkFileset 'intersection (_create ./. { a = null; }) (_create ./. { a = abort "This should not be used!"; })' - -# If either side is empty, the result is empty -tree=( - [a]=0 -) -checkFileset 'intersection _emptyWithoutBase _emptyWithoutBase' -checkFileset 'intersection _emptyWithoutBase (_create ./. null)' -checkFileset 'intersection (_create ./. null) _emptyWithoutBase' -checkFileset 'intersection (_create ./. null) (_create ./. null)' - -# If the intersection base paths are not overlapping, the result is empty and has no base path -mkdir a b c -touch {a,b,c}/x -expectEqual 'toSource { root = ./c; fileset = intersection ./a ./b; }' 'toSource { root = ./c; fileset = _emptyWithoutBase; }' -rm -rf -- * - -# If the intersection exists, the resulting base path is the longest of them -mkdir a -touch x a/b -expectEqual 'toSource { root = ./a; fileset = intersection ./a ./.; }' 'toSource { root = ./a; fileset = ./a; }' -expectEqual 'toSource { root = ./a; fileset = intersection ./. ./a; }' 'toSource { root = ./a; fileset = ./a; }' -rm -rf -- * - -# Also finds the intersection with null'd filesetTree's -tree=( - [a]=0 - [b]=1 - [c]=0 -) -checkFileset 'intersection (_create ./. { a = "regular"; b = "regular"; c = null; }) (_create ./. { a = null; b = "regular"; c = "regular"; })' - -# Actually computes the intersection between files -tree=( - [a]=0 - [b]=0 - [c]=1 - [d]=1 - [e]=0 - [f]=0 -) -checkFileset 'intersection (unions [ ./a ./b ./c ./d ]) (unions [ ./c ./d ./e ./f ])' - -tree=( - [a/x]=0 - [a/y]=0 - [b/x]=1 - [b/y]=1 - [c/x]=0 - [c/y]=0 -) -checkFileset 'intersection ./b ./.' -checkFileset 'intersection ./b (unions [ ./a/x ./a/y ./b/x ./b/y ./c/x ./c/y ])' - -# Complicated case -tree=( - [a/x]=0 - [a/b/i]=1 - [c/d/x]=0 - [c/d/f]=1 - [c/x]=0 - [c/e/i]=1 - [c/e/j]=1 -) -checkFileset 'intersection (unions [ ./a/b ./c/d ./c/e ]) (unions [ ./a ./c/d/f ./c/e ])' - -## Difference - -# Subtracting something from itself results in nothing -tree=( - [a]=0 -) -checkFileset 'difference ./. ./.' - -# The tree of the second argument should not be evaluated if not needed -checkFileset 'difference _emptyWithoutBase (_create ./. (abort "This should not be used!"))' -checkFileset 'difference (_create ./. null) (_create ./. (abort "This should not be used!"))' - -# Subtracting nothing gives the same thing back -tree=( - [a]=1 -) -checkFileset 'difference ./. _emptyWithoutBase' -checkFileset 'difference ./. (_create ./. null)' - -# Subtracting doesn't influence the base path -mkdir a b -touch {a,b}/x -expectEqual 'toSource { root = ./a; fileset = difference ./a ./b; }' 'toSource { root = ./a; fileset = ./a; }' -rm -rf -- * - -# Also not the other way around -mkdir a -expectFailure 'toSource { root = ./a; fileset = difference ./. ./a; }' 'lib.fileset.toSource: `fileset` could contain files in '"$work"', which is not under the `root` \('"$work"'/a\). Potential solutions: -[[:blank:]]*- Set `root` to '"$work"' or any directory higher up. This changes the layout of the resulting store path. -[[:blank:]]*- Set `fileset` to a file set that cannot contain files outside the `root` \('"$work"'/a\). This could change the files included in the result.' -rm -rf -- * - -# Difference actually works -# We test all combinations of ./., ./a, ./a/x and ./b -tree=( - [a/x]=0 - [a/y]=0 - [b]=0 - [c]=0 -) -checkFileset 'difference ./. ./.' -checkFileset 'difference ./a ./.' -checkFileset 'difference ./a/x ./.' -checkFileset 'difference ./b ./.' -checkFileset 'difference ./a ./a' -checkFileset 'difference ./a/x ./a' -checkFileset 'difference ./a/x ./a/x' -checkFileset 'difference ./b ./b' -tree=( - [a/x]=0 - [a/y]=0 - [b]=1 - [c]=1 -) -checkFileset 'difference ./. ./a' -tree=( - [a/x]=1 - [a/y]=1 - [b]=0 - [c]=0 -) -checkFileset 'difference ./a ./b' -tree=( - [a/x]=1 - [a/y]=0 - [b]=0 - [c]=0 -) -checkFileset 'difference ./a/x ./b' -tree=( - [a/x]=0 - [a/y]=1 - [b]=0 - [c]=0 -) -checkFileset 'difference ./a ./a/x' -tree=( - [a/x]=0 - [a/y]=0 - [b]=1 - [c]=0 -) -checkFileset 'difference ./b ./a' -checkFileset 'difference ./b ./a/x' -tree=( - [a/x]=0 - [a/y]=1 - [b]=1 - [c]=1 -) -checkFileset 'difference ./. ./a/x' -tree=( - [a/x]=1 - [a/y]=1 - [b]=0 - [c]=1 -) -checkFileset 'difference ./. ./b' - -## File filter - -# The first argument needs to be a function -expectFailure 'fileFilter null (abort "this is not needed")' 'lib.fileset.fileFilter: First argument is of type null, but it should be a function instead.' - -# The second argument needs to be an existing path -expectFailure 'fileFilter (file: abort "this is not needed") _emptyWithoutBase' 'lib.fileset.fileFilter: Second argument is a file set, but it should be a path instead. -[[:blank:]]*If you need to filter files in a file set, use `intersection fileset \(fileFilter pred \./\.\)` instead.' -expectFailure 'fileFilter (file: abort "this is not needed") null' 'lib.fileset.fileFilter: Second argument is of type null, but it should be a path instead.' -expectFailure 'fileFilter (file: abort "this is not needed") ./a' 'lib.fileset.fileFilter: Second argument \('"$work"'/a\) is a path that does not exist.' - -# The predicate is not called when there's no files -tree=() -checkFileset 'fileFilter (file: abort "this is not needed") ./.' - -# The predicate must be able to handle extra attributes -touch a -expectFailure 'toSource { root = ./.; fileset = fileFilter ({ name, type, hasExt }: true) ./.; }' 'called with unexpected argument '\''"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."'\' -rm -rf -- * - -# .name is the name, and it works correctly, even recursively -tree=( - [a]=1 - [b]=0 - [c/a]=1 - [c/b]=0 - [d/c/a]=1 - [d/c/b]=0 -) -checkFileset 'fileFilter (file: file.name == "a") ./.' -tree=( - [a]=0 - [b]=1 - [c/a]=0 - [c/b]=1 - [d/c/a]=0 - [d/c/b]=1 -) -checkFileset 'fileFilter (file: file.name != "a") ./.' - -# `.type` is the file type -mkdir d -touch d/a -ln -s d/b d/b -mkfifo d/c -expectEqual \ - 'toSource { root = ./.; fileset = fileFilter (file: file.type == "regular") ./.; }' \ - 'toSource { root = ./.; fileset = ./d/a; }' -expectEqual \ - 'toSource { root = ./.; fileset = fileFilter (file: file.type == "symlink") ./.; }' \ - 'toSource { root = ./.; fileset = ./d/b; }' -expectEqual \ - 'toSource { root = ./.; fileset = fileFilter (file: file.type == "unknown") ./.; }' \ - 'toSource { root = ./.; fileset = ./d/c; }' -expectEqual \ - 'toSource { root = ./.; fileset = fileFilter (file: file.type != "regular") ./.; }' \ - 'toSource { root = ./.; fileset = union ./d/b ./d/c; }' -expectEqual \ - 'toSource { root = ./.; fileset = fileFilter (file: file.type != "symlink") ./.; }' \ - 'toSource { root = ./.; fileset = union ./d/a ./d/c; }' -expectEqual \ - 'toSource { root = ./.; fileset = fileFilter (file: file.type != "unknown") ./.; }' \ - 'toSource { root = ./.; fileset = union ./d/a ./d/b; }' -rm -rf -- * - -# Check that .hasExt checks for the file extension -# The empty extension is the same as a file ending with a . -tree=( - [a]=0 - [a.]=1 - [a.b]=0 - [a.b.]=1 - [a.b.c]=0 -) -checkFileset 'fileFilter (file: file.hasExt "") ./.' - -# It can check for the last extension -tree=( - [a]=0 - [.a]=1 - [.a.]=0 - [.b.a]=1 - [.b.a.]=0 -) -checkFileset 'fileFilter (file: file.hasExt "a") ./.' - -# It can check for any extension -tree=( - [a.b.c.d]=1 -) -checkFileset 'fileFilter (file: - all file.hasExt [ - "b.c.d" - "c.d" - "d" - ] -) ./.' - -# It's lazy -tree=( - [b]=1 - [c/a]=1 -) -# Note that union evaluates the first argument first if necessary, that's why we can use ./c/a here -checkFileset 'union ./c/a (fileFilter (file: assert file.name != "a"; true) ./.)' -# but here we need to use ./c -checkFileset 'union (fileFilter (file: assert file.name != "a"; true) ./.) ./c' - -# Make sure single files are filtered correctly -tree=( - [a]=1 - [b]=0 -) -checkFileset 'fileFilter (file: assert file.name == "a"; true) ./a' -tree=( - [a]=0 - [b]=0 -) -checkFileset 'fileFilter (file: assert file.name == "a"; false) ./a' - -## Tracing - -# The second trace argument is returned -expectEqual 'trace ./. "some value"' 'builtins.trace "(empty)" "some value"' - -# The fileset traceVal argument is returned -expectEqual 'traceVal ./.' 'builtins.trace "(empty)" (_create ./. "directory")' - -# The tracing happens before the final argument is needed -expectEqual 'trace ./.' 'builtins.trace "(empty)" (x: x)' - -# Tracing an empty directory shows it as such -expectTrace './.' '(empty)' - -# This also works if there are directories, but all recursively without files -mkdir -p a/b/c -expectTrace './.' '(empty)' -rm -rf -- * - -# The empty file set without a base also prints as empty -expectTrace '_emptyWithoutBase' '(empty)' -expectTrace 'unions [ ]' '(empty)' -mkdir foo bar -touch {foo,bar}/x -expectTrace 'intersection ./foo ./bar' '(empty)' -rm -rf -- * - -# If a directory is fully included, print it as such -touch a -expectTrace './.' "$work"' (all files in directory)' -rm -rf -- * - -# If a directory is not fully included, recurse -mkdir a b -touch a/{x,y} b/{x,y} -expectTrace 'union ./a/x ./b' "$work"' -- a - - x (regular) -- b (all files in directory)' -rm -rf -- * - -# If an included path is a file, print its type -touch a x -ln -s a b -mkfifo c -expectTrace 'unions [ ./a ./b ./c ]' "$work"' -- a (regular) -- b (symlink) -- c (unknown)' -rm -rf -- * - -# Do not print directories without any files recursively -mkdir -p a/b/c -touch b x -expectTrace 'unions [ ./a ./b ]' "$work"' -- b (regular)' -rm -rf -- * - -# If all children are either fully included or empty directories, -# the parent should be printed as fully included -touch a -mkdir b -expectTrace 'union ./a ./b' "$work"' (all files in directory)' -rm -rf -- * - -mkdir -p x/b x/c -touch x/a -touch a -# If all children are either fully excluded or empty directories, -# the parent should be shown (or rather not shown) as fully excluded -expectTrace 'unions [ ./a ./x/b ./x/c ]' "$work"' -- a (regular)' -rm -rf -- * - -# Completely filtered out directories also print as empty -touch a -expectTrace '_create ./. {}' '(empty)' -rm -rf -- * - -# A general test to make sure the resulting format makes sense -# Such as indentation and ordering -mkdir -p bar/{qux,someDir} -touch bar/{baz,qux,someDir/a} foo -touch bar/qux/x -ln -s x bar/qux/a -mkfifo bar/qux/b -expectTrace 'unions [ - ./bar/baz - ./bar/qux/a - ./bar/qux/b - ./bar/someDir/a - ./foo -]' "$work"' -- bar - - baz (regular) - - qux - - a (symlink) - - b (unknown) - - someDir (all files in directory) -- foo (regular)' -rm -rf -- * - -# For recursively included directories, -# `(all files in directory)` should only be used if there's at least one file (otherwise it would be `(empty)`) -# and this should be determined without doing a full search -# -# a is intentionally ordered first here in order to allow triggering the short-circuit behavior -# We then check that b is not read -# In a more realistic scenario, some directories might need to be recursed into, -# but a file would be quickly found to trigger the short-circuit. -touch a -mkdir b -# We don't have lambda's in bash unfortunately, -# so we just define a function instead and then pass its name -# shellcheck disable=SC2317 -run() { - # This shouldn't read b/ - expectTrace './.' "$work"' (all files in directory)' - # Remove all files immediately after, triggering delete_self events for all of them - rmdir b -} -# Runs the function while checking that b isn't read -withFileMonitor run b -rm -rf -- * - -# Partially included directories trace entries as they are evaluated -touch a b c -expectTrace '_create ./. { a = null; b = "regular"; c = throw "b"; }' "$work"' -- b (regular)' - -# Except entries that need to be evaluated to even figure out if it's only partially included: -# Here the directory could be fully excluded or included just from seeing a and b, -# so c needs to be evaluated before anything can be traced -expectTrace '_create ./. { a = null; b = null; c = throw "c"; }' '' -expectTrace '_create ./. { a = "regular"; b = "regular"; c = throw "c"; }' '' -rm -rf -- * - -# We can trace large directories (10000 here) without any problems -filesToCreate=({0..9}{0..9}{0..9}{0..9}) -expectedTrace=$work$'\n'$(printf -- '- %s (regular)\n' "${filesToCreate[@]}") -# We need an excluded file so it doesn't print as `(all files in directory)` -touch 0 "${filesToCreate[@]}" -expectTrace 'unions (mapAttrsToList (n: _: ./. + "/${n}") (removeAttrs (builtins.readDir ./.) [ "0" ]))' "$expectedTrace" -rm -rf -- * - -## lib.fileset.fromSource - -# Check error messages - -# String-like values are not supported -expectFailure 'fromSource (lib.cleanSource "")' 'lib.fileset.fromSource: The source origin of the argument is a string-like value \(""\), but it should be a path instead. -[[:blank:]]*Sources created from paths in strings cannot be turned into file sets, use `lib.sources` or derivations instead.' - -# Wrong type -expectFailure 'fromSource null' 'lib.fileset.fromSource: The source origin of the argument is of type null, but it should be a path instead.' -expectFailure 'fromSource (lib.cleanSource null)' 'lib.fileset.fromSource: The source origin of the argument is of type null, but it should be a path instead.' - -# fromSource on non-existent paths gives an error -expectFailure 'fromSource ./a' 'lib.fileset.fromSource: The source origin \('"$work"'/a\) of the argument is a path that does not exist.' - -# fromSource on a path works and is the same as coercing that path -mkdir a -touch a/b c -expectEqual 'trace (fromSource ./.) null' 'trace ./. null' -rm -rf -- * - -# Check that converting to a file set doesn't read the included files -mkdir a -touch a/b -run() { - expectEqual "trace (fromSource (lib.cleanSourceWith { src = ./a; })) null" "builtins.trace \"$work/a (all files in directory)\" null" - rm a/b -} -withFileMonitor run a/b -rm -rf -- * - -# Check that converting to a file set doesn't read entries for directories that are filtered out -mkdir -p a/b -touch a/b/c -run() { - expectEqual "trace (fromSource (lib.cleanSourceWith { - src = ./a; - filter = pathString: type: false; - })) null" "builtins.trace \"(empty)\" null" - rm a/b/c - rmdir a/b -} -withFileMonitor run a/b -rm -rf -- * - -# The filter is not needed on empty directories -expectEqual 'trace (fromSource (lib.cleanSourceWith { - src = ./.; - filter = abort "filter should not be needed"; -})) null' 'trace _emptyWithoutBase null' - -# Single files also work -touch a b -expectEqual 'trace (fromSource (cleanSourceWith { src = ./a; })) null' 'trace ./a null' -rm -rf -- * - -# For a tree assigning each subpath true/false, -# check whether a source filter with those results includes the same files -# as a file set created using fromSource. Usage: -# -# tree=( -# [a]=1 # ./a is a file and the filter should return true for it -# [b/]=0 # ./b is a directory and the filter should return false for it -# ) -# checkSource -checkSource() { - createTree - - # Serialise the tree as JSON (there's only minimal savings with jq, - # and we don't need to handle escapes) - { - echo "{" - first=1 - for p in "${!tree[@]}"; do - if [[ -z "$first" ]]; then - echo "," - else - first= - fi - echo "\"$p\":" - case "${tree[$p]}" in - 1) - echo "true" - ;; - 0) - echo "false" - ;; - *) - die "Unsupported tree value: ${tree[$p]}" - esac - done - echo "}" - } > "$tmp/tree.json" - - # An expression to create a source value with a filter matching the tree - sourceExpr=' - let - tree = importJSON '"$tmp"'/tree.json; - in - cleanSourceWith { - src = ./.; - filter = - pathString: type: - let - stripped = removePrefix (toString ./. + "/") pathString; - key = stripped + optionalString (type == "directory") "/"; - in - tree.${key} or - (throw "tree key ${key} missing"); - } - ' - - filesetExpr=' - toSource { - root = ./.; - fileset = fromSource ('"$sourceExpr"'); - } - ' - - # Turn both into store paths - sourceStorePath=$(expectStorePath "$sourceExpr") - filesetStorePath=$(expectStorePath "$filesetExpr") - - # Loop through each path in the tree - while IFS= read -r -d $'\0' subpath; do - if [[ ! -e "$sourceStorePath"/"$subpath" ]]; then - # If it's not in the source store path, it's also not in the file set store path - if [[ -e "$filesetStorePath"/"$subpath" ]]; then - die "The store path $sourceStorePath created by $expr doesn't contain $subpath, but the corresponding store path $filesetStorePath created via fromSource does contain $subpath" - fi - elif [[ -z "$(find "$sourceStorePath"/"$subpath" -type f)" ]]; then - # If it's an empty directory in the source store path, it shouldn't be in the file set store path - if [[ -e "$filesetStorePath"/"$subpath" ]]; then - die "The store path $sourceStorePath created by $expr contains the path $subpath without any files, but the corresponding store path $filesetStorePath created via fromSource didn't omit it" - fi - else - # If it's non-empty directory or a file, it should be in the file set store path - if [[ ! -e "$filesetStorePath"/"$subpath" ]]; then - die "The store path $sourceStorePath created by $expr contains the non-empty path $subpath, but the corresponding store path $filesetStorePath created via fromSource doesn't include it" - fi - fi - done < <(find . -mindepth 1 -print0) - - rm -rf -- * -} - -# Check whether the filter is evaluated correctly -tree=( - [a]= - [b/]= - [b/c]= - [b/d]= - [e/]= - [e/e/]= -) -# We fill out the above tree values with all possible combinations of 0 and 1 -# Then check whether a filter based on those return values gets turned into the corresponding file set -for i in $(seq 0 $((2 ** ${#tree[@]} - 1 ))); do - for p in "${!tree[@]}"; do - tree[$p]=$(( i % 2 )) - (( i /= 2 )) || true - done - checkSource -done - -# The filter is called with the same arguments in the same order -mkdir a e -touch a/b a/c d e -expectEqual ' - trace (fromSource (cleanSourceWith { - src = ./.; - filter = pathString: type: builtins.trace "${pathString} ${toString type}" true; - })) null -' ' - builtins.seq (cleanSourceWith { - src = ./.; - filter = pathString: type: builtins.trace "${pathString} ${toString type}" true; - }).outPath - builtins.trace "'"$work"' (all files in directory)" - null -' -rm -rf -- * - -# Test that if a directory is not included, the filter isn't called on its contents -mkdir a b -touch a/c b/d -expectEqual 'trace (fromSource (cleanSourceWith { - src = ./.; - filter = pathString: type: - if pathString == toString ./a then - false - else if pathString == toString ./b then - true - else if pathString == toString ./b/d then - true - else - abort "This filter should not be called with path ${pathString}"; -})) null' 'trace (_create ./. { b = "directory"; }) null' -rm -rf -- * - -# The filter is called lazily: -# If a later say intersection removes a part of the tree, the filter won't run on it -mkdir a d -touch a/{b,c} d/e -expectEqual 'trace (intersection ./a (fromSource (lib.cleanSourceWith { - src = ./.; - filter = pathString: type: - if pathString == toString ./a || pathString == toString ./a/b then - true - else if pathString == toString ./a/c then - false - else - abort "filter should not be called on ${pathString}"; -}))) null' 'trace ./a/b null' -rm -rf -- * - -## lib.fileset.gitTracked/gitTrackedWith - -# The first/second argument has to be a path -expectFailure 'gitTracked null' 'lib.fileset.gitTracked: Expected the argument to be a path, but it'\''s a null instead.' -expectFailure 'gitTrackedWith {} null' 'lib.fileset.gitTrackedWith: Expected the second argument to be a path, but it'\''s a null instead.' - -# The path must be a directory -touch a -expectFailure 'gitTracked ./a' 'lib.fileset.gitTracked: Expected the argument \('"$work"'/a\) to be a directory, but it'\''s a file instead' -expectFailure 'gitTrackedWith {} ./a' 'lib.fileset.gitTrackedWith: Expected the second argument \('"$work"'/a\) to be a directory, but it'\''s a file instead' -rm -rf -- * - -# The path has to contain a .git directory -expectFailure 'gitTracked ./.' 'lib.fileset.gitTracked: Expected the argument \('"$work"'\) to point to a local working tree of a Git repository, but it'\''s not.' -expectFailure 'gitTrackedWith {} ./.' 'lib.fileset.gitTrackedWith: Expected the second argument \('"$work"'\) to point to a local working tree of a Git repository, but it'\''s not.' - -# recurseSubmodules has to be a boolean -expectFailure 'gitTrackedWith { recurseSubmodules = null; } ./.' 'lib.fileset.gitTrackedWith: Expected the attribute `recurseSubmodules` of the first argument to be a boolean, but it'\''s a null instead.' - -# recurseSubmodules = true is not supported on all Nix versions -if [[ "$(nix-instantiate --eval --expr "$prefixExpression (versionAtLeast builtins.nixVersion _fetchGitSubmodulesMinver)")" == true ]]; then - fetchGitSupportsSubmodules=1 -else - fetchGitSupportsSubmodules= - expectFailure 'gitTrackedWith { recurseSubmodules = true; } ./.' 'lib.fileset.gitTrackedWith: Setting the attribute `recurseSubmodules` to `true` is only supported for Nix version 2.4 and after, but Nix version [0-9.]+ is used.' -fi - -# Checks that `gitTrackedWith` contains the same files as `git ls-files` -# for the current working directory. -# If --recurse-submodules is passed, the flag is passed through to `git ls-files` -# and as `recurseSubmodules` to `gitTrackedWith` -checkGitTrackedWith() { - if [[ "${1:-}" == "--recurse-submodules" ]]; then - gitLsFlags="--recurse-submodules" - gitTrackedArg="{ recurseSubmodules = true; }" - else - gitLsFlags="" - gitTrackedArg="{ }" - fi - - # All files listed by `git ls-files` - expectedFiles=() - while IFS= read -r -d $'\0' file; do - # If there are submodules but --recurse-submodules isn't passed, - # `git ls-files` lists them as empty directories, - # we need to filter that out since we only want to check/count files - if [[ -f "$file" ]]; then - expectedFiles+=("$file") - fi - done < <(git ls-files -z $gitLsFlags) - - storePath=$(expectStorePath 'toSource { root = ./.; fileset = gitTrackedWith '"$gitTrackedArg"' ./.; }') - - # Check that each expected file is also in the store path with the same content - for expectedFile in "${expectedFiles[@]}"; do - if [[ ! -e "$storePath"/"$expectedFile" ]]; then - die "Expected file $expectedFile to exist in $storePath, but it doesn't.\nGit status:\n$(git status)\nStore path contents:\n$(find "$storePath")" - fi - if ! diff "$expectedFile" "$storePath"/"$expectedFile"; then - die "Expected file $expectedFile to have the same contents as in $storePath, but it doesn't.\nGit status:\n$(git status)\nStore path contents:\n$(find "$storePath")" - fi - done - - # This is a cheap way to verify the inverse: That all files in the store path are also expected - # We just count the number of files in both and verify they're the same - actualFileCount=$(find "$storePath" -type f -printf . | wc -c) - if [[ "${#expectedFiles[@]}" != "$actualFileCount" ]]; then - die "Expected ${#expectedFiles[@]} files in $storePath, but got $actualFileCount.\nGit status:\n$(git status)\nStore path contents:\n$(find "$storePath")" - fi -} - - -# Runs checkGitTrackedWith with and without --recurse-submodules -# Allows testing both variants together -checkGitTracked() { - checkGitTrackedWith - if [[ -n "$fetchGitSupportsSubmodules" ]]; then - checkGitTrackedWith --recurse-submodules - fi -} - -createGitRepo() { - git init -q "$1" - # Only repo-local config - git -C "$1" config user.name "Nixpkgs" - git -C "$1" config user.email "nixpkgs@nixos.org" - # Get at least a HEAD commit, needed for older Nix versions - git -C "$1" commit -q --allow-empty -m "Empty commit" -} - -# Check that gitTracked[With] works as expected when evaluated out-of-tree - -## First we create a git repositories (and a subrepository) with `default.nix` files referring to their local paths -## Simulating how it would be used in the wild -createGitRepo . -echo '{ fs }: fs.toSource { root = ./.; fileset = fs.gitTracked ./.; }' > default.nix -git add . - -## We can evaluate it locally just fine, `fetchGit` is used underneath to filter git-tracked files -expectEqual '(import ./. { fs = lib.fileset; }).outPath' '(builtins.fetchGit ./.).outPath' - -## We can also evaluate when importing from fetched store paths -storePath=$(expectStorePath 'builtins.fetchGit ./.') -expectEqual '(import '"$storePath"' { fs = lib.fileset; }).outPath' \""$storePath"\" - -## But it fails if the path is imported with a fetcher that doesn't remove .git (like just using "${./.}") -expectFailure 'import "${./.}" { fs = lib.fileset; }' 'lib.fileset.gitTracked: The argument \(.*\) is a store path within a working tree of a Git repository. -[[:blank:]]*This indicates that a source directory was imported into the store using a method such as `import "\$\{./.\}"` or `path:.`. -[[:blank:]]*This function currently does not support such a use case, since it currently relies on `builtins.fetchGit`. -[[:blank:]]*You could make this work by using a fetcher such as `fetchGit` instead of copying the whole repository. -[[:blank:]]*If you can'\''t avoid copying the repo to the store, see https://github.com/NixOS/nix/issues/9292.' - -## Even with submodules -if [[ -n "$fetchGitSupportsSubmodules" ]]; then - ## Both the main repo with the submodule - echo '{ fs }: fs.toSource { root = ./.; fileset = fs.gitTrackedWith { recurseSubmodules = true; } ./.; }' > default.nix - createGitRepo sub - git submodule add ./sub sub >/dev/null - ## But also the submodule itself - echo '{ fs }: fs.toSource { root = ./.; fileset = fs.gitTracked ./.; }' > sub/default.nix - git -C sub add . - - ## We can evaluate it locally just fine, `fetchGit` is used underneath to filter git-tracked files - expectEqual '(import ./. { fs = lib.fileset; }).outPath' '(builtins.fetchGit { url = ./.; submodules = true; }).outPath' - expectEqual '(import ./sub { fs = lib.fileset; }).outPath' '(builtins.fetchGit ./sub).outPath' - - ## We can also evaluate when importing from fetched store paths - storePathWithSub=$(expectStorePath 'builtins.fetchGit { url = ./.; submodules = true; }') - expectEqual '(import '"$storePathWithSub"' { fs = lib.fileset; }).outPath' \""$storePathWithSub"\" - storePathSub=$(expectStorePath 'builtins.fetchGit ./sub') - expectEqual '(import '"$storePathSub"' { fs = lib.fileset; }).outPath' \""$storePathSub"\" - - ## But it fails if the path is imported with a fetcher that doesn't remove .git (like just using "${./.}") - expectFailure 'import "${./.}" { fs = lib.fileset; }' 'lib.fileset.gitTrackedWith: The second argument \(.*\) is a store path within a working tree of a Git repository. - [[:blank:]]*This indicates that a source directory was imported into the store using a method such as `import "\$\{./.\}"` or `path:.`. - [[:blank:]]*This function currently does not support such a use case, since it currently relies on `builtins.fetchGit`. - [[:blank:]]*You could make this work by using a fetcher such as `fetchGit` instead of copying the whole repository. - [[:blank:]]*If you can'\''t avoid copying the repo to the store, see https://github.com/NixOS/nix/issues/9292.' - expectFailure 'import "${./.}/sub" { fs = lib.fileset; }' 'lib.fileset.gitTracked: The argument \(.*/sub\) is a store path within a working tree of a Git repository. - [[:blank:]]*This indicates that a source directory was imported into the store using a method such as `import "\$\{./.\}"` or `path:.`. - [[:blank:]]*This function currently does not support such a use case, since it currently relies on `builtins.fetchGit`. - [[:blank:]]*You could make this work by using a fetcher such as `fetchGit` instead of copying the whole repository. - [[:blank:]]*If you can'\''t avoid copying the repo to the store, see https://github.com/NixOS/nix/issues/9292.' -fi -rm -rf -- * - -# shallow = true is not supported on all Nix versions -# and older versions don't support shallow clones at all -if [[ "$(nix-instantiate --eval --expr "$prefixExpression (versionAtLeast builtins.nixVersion _fetchGitShallowMinver)")" == true ]]; then - createGitRepo full - # Extra commit such that there's a commit that won't be in the shallow clone - git -C full commit --allow-empty -q -m extra - git clone -q --depth 1 "file://${PWD}/full" shallow - cd shallow - checkGitTracked - cd .. - rm -rf -- * -fi - -# Go through all stages of Git files -# See https://www.git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository - -# Empty repository -createGitRepo . -checkGitTracked - -# Untracked file -echo a > a -checkGitTracked - -# Staged file -git add a -checkGitTracked - -# Committed file -git commit -q -m "Added a" -checkGitTracked - -# Edited file -echo b > a -checkGitTracked - -# Removed file -git rm -f -q a -checkGitTracked - -rm -rf -- * - -# gitignored file -createGitRepo . -echo a > .gitignore -touch a -git add -A -checkGitTracked - -# Add it regardless (needs -f) -git add -f a -checkGitTracked -rm -rf -- * - -# Directory -createGitRepo . -mkdir -p d1/d2/d3 -touch d1/d2/d3/a -git add d1 -checkGitTracked -rm -rf -- * - -# Submodules -createGitRepo . -createGitRepo sub - -# Untracked submodule -git -C sub commit -q --allow-empty -m "Empty commit" -checkGitTracked - -# Tracked submodule -git submodule add ./sub sub >/dev/null -checkGitTracked - -# Untracked file -echo a > sub/a -checkGitTracked - -# Staged file -git -C sub add a -checkGitTracked - -# Committed file -git -C sub commit -q -m "Add a" -checkGitTracked - -# Changed file -echo b > sub/b -checkGitTracked - -# Removed file -git -C sub rm -f -q a -checkGitTracked - -rm -rf -- * - -## lib.fileset.maybeMissing - -# Argument must be a path -expectFailure 'maybeMissing "someString"' 'lib.fileset.maybeMissing: Argument \("someString"\) is a string-like value, but it should be a path instead.' -expectFailure 'maybeMissing null' 'lib.fileset.maybeMissing: Argument is of type null, but it should be a path instead.' - -tree=( -) -checkFileset 'maybeMissing ./a' -checkFileset 'maybeMissing ./b' -checkFileset 'maybeMissing ./b/c' - -# Works on single files -tree=( - [a]=1 - [b/c]=0 - [b/d]=0 -) -checkFileset 'maybeMissing ./a' -tree=( - [a]=0 - [b/c]=1 - [b/d]=0 -) -checkFileset 'maybeMissing ./b/c' - -# Works on directories -tree=( - [a]=0 - [b/c]=1 - [b/d]=1 -) -checkFileset 'maybeMissing ./b' - -# TODO: Once we have combinators and a property testing library, derive property tests from https://en.wikipedia.org/wiki/Algebra_of_sets - -echo >&2 tests ok diff --git a/lib/filesystem.nix b/lib/filesystem.nix deleted file mode 100644 index c416db0..0000000 --- a/lib/filesystem.nix +++ /dev/null @@ -1,311 +0,0 @@ -/* - Functions for querying information about the filesystem - without copying any files to the Nix store. -*/ -{ lib }: - -# Tested in lib/tests/filesystem.sh -let - inherit (builtins) - readDir - pathExists - toString - ; - - inherit (lib.attrsets) - mapAttrs' - filterAttrs - ; - - inherit (lib.filesystem) - pathType - ; - - inherit (lib.strings) - hasSuffix - removeSuffix - ; -in - -{ - - /* - The type of a path. The path needs to exist and be accessible. - The result is either "directory" for a directory, "regular" for a regular file, "symlink" for a symlink, or "unknown" for anything else. - - Type: - pathType :: Path -> String - - Example: - pathType /. - => "directory" - - pathType /some/file.nix - => "regular" - */ - pathType = - builtins.readFileType or - # Nix <2.14 compatibility shim - (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." - # 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} - ); - - /* - Whether a path exists and is a directory. - - Type: - pathIsDirectory :: Path -> Bool - - Example: - pathIsDirectory /. - => true - - pathIsDirectory /this/does/not/exist - => false - - pathIsDirectory /some/file.nix - => false - */ - 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. - - Type: - pathIsRegularFile :: Path -> Bool - - Example: - pathIsRegularFile /. - => false - - pathIsRegularFile /this/does/not/exist - => false - - pathIsRegularFile /some/file.nix - => true - */ - pathIsRegularFile = path: - pathExists path && pathType path == "regular"; - - /* - A map of all haskell packages defined in the given path, - identified by having a cabal file with the same name as the - directory itself. - - Type: Path -> Map String Path - */ - 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; - /* - Find the first directory containing a file matching 'pattern' - upward from a given 'file'. - Returns 'null' if no directories contain a file matching 'pattern'. - - Type: RegExp -> Path -> Nullable { path : Path; matches : [ MatchResults ]; } - */ - locateDominatingFile = - # The pattern to search for - 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); - - - /* - Given a directory, return a flattened list of all files within it recursively. - - Type: Path -> [ Path ] - */ - 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)); - - /* - Transform a directory tree containing package files suitable for - `callPackage` into a matching nested attribute set of derivations. - - For a directory tree like this: - - ``` - my-packages - ├── a.nix - ├── b.nix - ├── c - │ ├── my-extra-feature.patch - │ ├── package.nix - │ └── support-definitions.nix - └── my-namespace - ├── d.nix - ├── e.nix - └── f - └── package.nix - ``` - - `packagesFromDirectoryRecursive` will produce an attribute set like this: - - ```nix - # packagesFromDirectoryRecursive { - # callPackage = pkgs.callPackage; - # directory = ./my-packages; - # } - { - a = pkgs.callPackage ./my-packages/a.nix { }; - b = pkgs.callPackage ./my-packages/b.nix { }; - c = pkgs.callPackage ./my-packages/c/package.nix { }; - my-namespace = { - d = pkgs.callPackage ./my-packages/my-namespace/d.nix { }; - e = pkgs.callPackage ./my-packages/my-namespace/e.nix { }; - f = pkgs.callPackage ./my-packages/my-namespace/f/package.nix { }; - }; - } - ``` - - In particular: - - If the input directory contains a `package.nix` file, then - `callPackage /package.nix { }` is returned. - - Otherwise, the input directory's contents are listed and transformed into - an attribute set. - - If a file name has the `.nix` extension, it is turned into attribute - where: - - The attribute name is the file name without the `.nix` extension - - The attribute value is `callPackage { }` - - Other files are ignored. - - Directories are turned into an attribute where: - - The attribute name is the name of the directory - - The attribute value is the result of calling - `packagesFromDirectoryRecursive { ... }` on the directory. - - As a result, directories with no `.nix` files (including empty - directories) will be transformed into empty attribute sets. - - Example: - packagesFromDirectoryRecursive { - inherit (pkgs) callPackage; - directory = ./my-packages; - } - => { ... } - - lib.makeScope pkgs.newScope ( - self: packagesFromDirectoryRecursive { - callPackage = self.callPackage; - directory = ./my-packages; - } - ) - => { ... } - - Type: - packagesFromDirectoryRecursive :: AttrSet -> AttrSet - */ - packagesFromDirectoryRecursive = - # Options. - { - /* - `pkgs.callPackage` - - Type: - Path -> AttrSet -> a - */ - callPackage, - /* - The directory to read package files from - - Type: - Path - */ - directory, - ... - }: - let - # Determine if a directory entry from `readDir` indicates a package or - # directory of packages. - directoryEntryIsPackage = basename: type: - type == "directory" || hasSuffix ".nix" basename; - - # List directory entries that indicate packages in the given `path`. - packageDirectoryEntries = path: - filterAttrs directoryEntryIsPackage (readDir path); - - # Transform a directory entry (a `basename` and `type` pair) into a - # package. - directoryEntryToAttrPair = subdirectory: basename: type: - let - path = subdirectory + "/${basename}"; - in - if type == "regular" - then - { - name = removeSuffix ".nix" basename; - value = callPackage path { }; - } - else - if type == "directory" - then - { - name = basename; - value = packagesFromDirectory path; - } - else - 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: - let - defaultPackagePath = path + "/package.nix"; - in - 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 deleted file mode 100644 index 3bd18fd..0000000 --- a/lib/fixed-points.nix +++ /dev/null @@ -1,309 +0,0 @@ -{ lib, ... }: -rec { - /* - `fix f` computes the fixed point of the given function `f`. In other words, the return value is `x` in `x = f x`. - - `f` must be a lazy function. - This means that `x` must be a value that can be partially evaluated, - such as an attribute set, a list, or a function. - This way, `f` can use one part of `x` to compute another part. - - **Relation to syntactic recursion** - - This section explains `fix` by refactoring from syntactic recursion to a call of `fix` instead. - - For context, Nix lets you define attributes in terms of other attributes syntactically using the [`rec { }` syntax](https://nixos.org/manual/nix/stable/language/constructs.html#recursive-sets). - - ```nix - nix-repl> rec { - foo = "foo"; - bar = "bar"; - foobar = foo + bar; - } - { bar = "bar"; foo = "foo"; foobar = "foobar"; } - ``` - - This is convenient when constructing a value to pass to a function for example, - but an equivalent effect can be achieved with the `let` binding syntax: - - ```nix - nix-repl> let self = { - foo = "foo"; - bar = "bar"; - foobar = self.foo + self.bar; - }; in self - { bar = "bar"; foo = "foo"; foobar = "foobar"; } - ``` - - But in general you can get more reuse out of `let` bindings by refactoring them to a function. - - ```nix - nix-repl> f = self: { - foo = "foo"; - bar = "bar"; - foobar = self.foo + self.bar; - } - ``` - - This is where `fix` comes in, it contains the syntactic recursion that's not in `f` anymore. - - ```nix - nix-repl> fix = f: - let self = f self; in self; - ``` - - By applying `fix` we get the final result. - - ```nix - nix-repl> fix f - { bar = "bar"; foo = "foo"; foobar = "foobar"; } - ``` - - Such a refactored `f` using `fix` is not useful by itself. - See [`extends`](#function-library-lib.fixedPoints.extends) for an example use case. - There `self` is also often called `final`. - - Type: fix :: (a -> a) -> a - - Example: - fix (self: { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; }) - => { bar = "bar"; foo = "foo"; foobar = "foobar"; } - - fix (self: [ 1 2 (elemAt self 0 + elemAt self 1) ]) - => [ 1 2 3 ] - */ - fix = f: let x = f x; in x; - - /* - A variant of `fix` that records the original recursive attribute set in the - result, in an attribute named `__unfix__`. - - This is useful in combination with the `extends` function to - implement deep overriding. - */ - fix' = f: let x = f x // { __unfix__ = f; }; in x; - - /* - Return the fixpoint that `f` converges to when called iteratively, starting - with the input `x`. - - ``` - nix-repl> converge (x: x / 2) 16 - 0 - ``` - - Type: (a -> a) -> a -> a - */ - converge = f: x: - let - x' = f x; - in - if x' == x - then x - else converge f x'; - - /* - Extend a function using an overlay. - - Overlays allow modifying and extending fixed-point functions, specifically ones returning attribute sets. - 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 - final: { # attributes } - ``` - - where `final` refers to the lazily evaluated attribute set returned by the fixed-point function. - - An overlay to such a fixed-point function has the form - - ```nix - final: prev: { # attributes } - ``` - - where `prev` refers to the result of the original function to `final`, and `final` is the result of the composition of the overlay and the original function. - - Applying an overlay is done with `extends`: - - ```nix - let - f = final: { # attributes }; - overlay = final: prev: { # attributes }; - in extends overlay f; - ``` - - To get the value of `final`, use `lib.fix`: - - ```nix - let - f = final: { # attributes }; - overlay = final: prev: { # attributes }; - g = extends overlay f; - in fix g - ``` - - :::{.note} - The argument to the given fixed-point function after applying an overlay will *not* refer to its own return value, but rather to the value after evaluating the overlay function. - - The given fixed-point function is called with a separate argument than if it was evaluated with `lib.fix`. - ::: - - :::{.example} - - # Extend a fixed-point function with an overlay - - Define a fixed-point function `f` that expects its own output as the argument `final`: - - ```nix-repl - f = final: { - # Constant value a - a = 1; - - # b depends on the final value of a, available as final.a - b = final.a + 2; - } - ``` - - Evaluate this using [`lib.fix`](#function-library-lib.fixedPoints.fix) to get the final result: - - ```nix-repl - fix f - => { a = 1; b = 3; } - ``` - - An overlay represents a modification or extension of such a fixed-point function. - Here's an example of an overlay: - - ```nix-repl - overlay = final: prev: { - # Modify the previous value of a, available as prev.a - a = prev.a + 10; - - # Extend the attribute set with c, letting it depend on the final values of a and b - c = final.a + final.b; - } - ``` - - Use `extends overlay f` to apply the overlay to the fixed-point function `f`. - This produces a new fixed-point function `g` with the combined behavior of `f` and `overlay`: - - ```nix-repl - g = extends overlay f - ``` - - The result is a function, so we can't print it directly, but it's the same as: - - ```nix-repl - g' = final: { - # The constant from f, but changed with the overlay - a = 1 + 10; - - # Unchanged from f - b = final.a + 2; - - # Extended in the overlay - c = final.a + final.b; - } - ``` - - Evaluate this using [`lib.fix`](#function-library-lib.fixedPoints.fix) again to get the final result: - - ```nix-repl - fix g - => { a = 11; b = 13; c = 24; } - ``` - ::: - - Type: - extends :: (Attrs -> Attrs -> Attrs) # The overlay to apply to the fixed-point function - -> (Attrs -> Attrs) # A fixed-point function - -> (Attrs -> Attrs) # The resulting fixed-point function - - Example: - f = final: { a = 1; b = final.a + 2; } - - fix f - => { a = 1; b = 3; } - - fix (extends (final: prev: { a = prev.a + 10; }) f) - => { a = 11; b = 13; } - - fix (extends (final: prev: { b = final.a + 5; }) f) - => { a = 1; b = 6; } - - fix (extends (final: prev: { c = final.a + final.b; }) f) - => { a = 1; b = 3; c = 4; } - */ - extends = - # The overlay to apply to the fixed-point function - overlay: - # The fixed-point function - f: - # Wrap with parenthesis to prevent nixdoc from rendering the `final` argument in the documentation - # The result should be thought of as a function, the argument of that function is not an argument to `extends` itself - ( - final: - let - prev = f final; - in - prev // overlay final prev - ); - - /* - Compose two extending functions of the type expected by 'extends' - into one where changes made in the first are available in the - 'super' of the second - */ - composeExtensions = - f: 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 - one where changes made in preceding functions are made available to - subsequent ones. - - ``` - composeManyExtensions : [packageSet -> packageSet -> packageSet] -> packageSet -> packageSet -> packageSet - ^final ^prev ^overrides ^final ^prev ^overrides - ``` - */ - composeManyExtensions = - lib.foldr (x: y: composeExtensions x y) (final: prev: {}); - - /* - Create an overridable, recursive attribute set. For example: - - ``` - nix-repl> obj = makeExtensible (self: { }) - - nix-repl> obj - { __unfix__ = «lambda»; extend = «lambda»; } - - nix-repl> obj = obj.extend (self: super: { foo = "foo"; }) - - nix-repl> obj - { __unfix__ = «lambda»; extend = «lambda»; foo = "foo"; } - - nix-repl> obj = obj.extend (self: super: { foo = super.foo + " + "; bar = "bar"; foobar = self.foo + self.bar; }) - - nix-repl> obj - { __unfix__ = «lambda»; bar = "bar"; extend = «lambda»; foo = "foo + "; foobar = "foo + bar"; } - ``` - */ - makeExtensible = makeExtensibleWithCustomName "extend"; - - /* - 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); - }); -} diff --git a/lib/flake-version-info.nix b/lib/flake-version-info.nix deleted file mode 100644 index de15be9..0000000 --- a/lib/flake-version-info.nix +++ /dev/null @@ -1,20 +0,0 @@ -# This function produces a lib overlay to be used by the nixpkgs -# & nixpkgs/lib flakes to provide meaningful values for -# `lib.trivial.version` et al.. -# -# Internal and subject to change, don't use this anywhere else! -# Instead, consider using a public interface, such as this flake here -# in this directory, `lib/`, or use the nixpkgs flake, which applies -# this logic for you in its `lib` output attribute. - -self: # from the flake - -finalLib: prevLib: # lib overlay - -{ - trivial = prevLib.trivial // { - 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 deleted file mode 100644 index ca09ed5..0000000 --- a/lib/flake.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ - description = "Library of low-level helper functions for nix expressions."; - - outputs = { self }: - let - lib0 = import ./.; - in { - lib = lib0.extend (import ./flake-version-info.nix self); - }; -} diff --git a/lib/generators.nix b/lib/generators.nix deleted file mode 100644 index 5f42a98..0000000 --- a/lib/generators.nix +++ /dev/null @@ -1,602 +0,0 @@ -/* 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 - inherit (lib) - addErrorContext - assertMsg - attrNames - concatLists - concatMapStringsSep - concatStrings - concatStringsSep - const - elem - escape - filter - flatten - foldl - functionArgs # Note: not the builtin; considers `__functor` in attrsets. - gvariant - hasInfix - head - id - init - isAttrs - isBool - isDerivation - isFloat - isFunction # Note: not the builtin; considers `__functor` in attrsets. - isInt - isList - isPath - isString - last - length - mapAttrs - mapAttrsToList - optionals - recursiveUpdate - replaceStrings - reverseList - splitString - tail - toList - ; - - inherit (lib.strings) - escapeNixIdentifier - floatToString - match - split - toJSON - typeOf - ; - - ## -- 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 derivations to store paths - else if isDerivation v then toString v - # we default to not quoting strings - else if isString v then v - # isString returns "1", which is not a good default - 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" - # if you have lists you probably want to replace this - else if isList v then err "lists" v - # same as for lists, might want to replace - else if isAttrs v then err "attrsets" v - # functions can’t be printed of course - 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); - - - /* 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}"; - - - ## -- FILE FORMAT GENERATORS -- - - - /* 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: - 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: - let - 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}"''; - - mkValueString = v: - let - 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)); - - # 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)); - - toINI_ = toINI { inherit mkKeyValue mkSectionName; }; - in - toINI_ (gitFlattenAttrs attrs); - - # mkKeyValueDefault wrapper that handles dconf INI quirks. - # The main differences of the format is that it requires strings to be quoted. - mkDconfKeyValue = mkKeyValueDefault { mkValueString = v: toString (gvariant.mkValue v); } "="; - - # Generates INI in dconf keyfile style. See https://help.gnome.org/admin/system-admin-guide/stable/dconf-keyfiles.html.en - # for details. - toDconfINI = toINI { mkKeyValue = mkDconfKeyValue; }; - - 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 - }: - 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 ? "" - }: - 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; - - # 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})"; - - 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}"; - - indent = ind: expr "\t${ind}"; - - item = ind: concatMapStringsSep "\n" (indent 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 "") - ]; - - 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} -''; - - /* 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) - } }" - else if isList v then - "[ ${concatItems (map (toDhall args) v)} ]" - else if isInt v then - "${if v < 0 then "" else "+"}${toString v}" - else if isBool v then - (if v then "True" else "False") - else if isFunction v then - abort "generators.toDhall: cannot convert a function to Dhall" - else if v == null then - abort "generators.toDhall: cannot convert a null to Dhall" - else - toJSON v; - - /* - 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. - - 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)) - } - } - } - - 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: - let - innerIndent = "${indent} "; - introSpace = if multiline then "\n${innerIndent}" else " "; - outroSpace = if multiline then "\n${indent}" else " "; - innerArgs = args // { - indent = if asBindings then indent else innerIndent; - asBindings = false; - }; - concatItems = concatStringsSep ",${introSpace}"; - 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 - ); - - # https://en.wikibooks.org/wiki/Lua_Programming/variable#Variable_names - matchVarName = match "[[:alpha:]_][[:alnum:]_]*(\\.[[:alpha:]_][[:alnum:]_]*)*"; - badVarNames = filter (name: matchVarName name == null) (attrNames v); - in - if asBindings then - generatedBindings - else if v == null then - "nil" - 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}}") - else if isAttrs v then - ( - if isLuaInline v then - "(${v.expr})" - else if v == { } then - "{}" - else if isDerivation v then - ''"${toString v}"'' - else - "{${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. - - Type: - mkLuaInline :: String -> AttrSet - */ - mkLuaInline = expr: { _type = "lua-inline"; inherit expr; }; - -in - -# Everything in this attrset is the public interface of the file. -{ - inherit - mkDconfKeyValue - mkKeyValueDefault - mkLuaInline - mkValueStringDefault - toDconfINI - toDhall - toGitINI - toINI - toINIWithGlobalSection - toKeyValue - toLua - toPlist - toPretty - withRecursion - ; - - /* Generates JSON from an arbitrary (non-function) value. - * For more information see the documentation of the builtin. - */ - toJSON = {}: toJSON; - - /* 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; -} diff --git a/lib/gvariant.nix b/lib/gvariant.nix deleted file mode 100644 index 7082132..0000000 --- a/lib/gvariant.nix +++ /dev/null @@ -1,291 +0,0 @@ -/* - A partial and basic implementation of GVariant formatted strings. - See [GVariant Format Strings](https://docs.gtk.org/glib/gvariant-format-strings.html) for details. - - :::{.warning} - This API is not considered fully stable and it might therefore - change in backwards incompatible ways without prior notice. - ::: -*/ - -# This file is based on https://github.com/nix-community/home-manager -# Copyright (c) 2017-2022 Home Manager contributors -{ lib }: - -let - inherit (lib) - concatMapStringsSep concatStrings escape head replaceStrings; - - mkPrimitive = t: v: { - _type = "gvariant"; - type = t; - value = v; - __toString = self: "@${self.type} ${toString self.value}"; # https://docs.gtk.org/glib/gvariant-text.html - }; - - type = { - arrayOf = t: "a${t}"; - maybeOf = t: "m${t}"; - tupleOf = ts: "(${concatStrings ts})"; - dictionaryEntryOf = nameType: valueType: "{${nameType}${valueType}}"; - string = "s"; - boolean = "b"; - uchar = "y"; - int16 = "n"; - uint16 = "q"; - int32 = "i"; - uint32 = "u"; - int64 = "x"; - uint64 = "t"; - double = "d"; - variant = "v"; - }; - - /* Check if a value is a GVariant value - - Type: - isGVariant :: Any -> Bool - */ - isGVariant = v: v._type or "" == "gvariant"; - -in -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. - - Type: - mkValue :: Any -> gvariant - */ - mkValue = v: - if builtins.isBool v then - mkBoolean v - else if builtins.isFloat v then - mkDouble v - else if builtins.isString v then - mkString v - else if builtins.isList v then - mkArray v - else if isGVariant v then - v - 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. - - Type: - mkArray :: [Any] -> gvariant - - Example: - # Creating a string array - lib.gvariant.mkArray [ "a" "b" "c" ] - */ - 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; - in - mkPrimitive (type.arrayOf elemType) vs // { - __toString = self: - "@${self.type} [${concatMapStringsSep "," toString self.value}]"; - }; - - /* Returns the GVariant array from the given empty Nix list. - - Type: - mkEmptyArray :: gvariant.type -> gvariant - - Example: - # Creating an empty string array - lib.gvariant.mkEmptyArray (lib.gvariant.type.string) - */ - 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. - - Type: - mkVariant :: Any -> gvariant - - 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}>"; - }; - - /* Returns the GVariant dictionary entry from the given key and value. - - 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")) - ] - */ - mkDictionaryEntry = - # The key of the entry - name: - # The value of the entry - value: - let - name' = mkValue name; - value' = mkValue value; - dictionaryType = type.dictionaryEntryOf name'.type value'.type; - in - mkPrimitive dictionaryType { inherit name value; } // { - __toString = self: "@${self.type} {${name'},${value'}}"; - }; - - /* Returns the GVariant maybe from the given element type. - - 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}"; - }; - - /* Returns the GVariant nothing from the given element type. - - Type: - mkNothing :: gvariant.type -> gvariant - */ - mkNothing = elemType: mkMaybe elemType null; - - /* Returns the GVariant just from the given Nix value. - - Type: - mkJust :: Any -> gvariant - */ - mkJust = elem: let gvarElem = mkValue elem; in mkMaybe gvarElem.type gvarElem; - - /* Returns the GVariant tuple from the given Nix list. - - Type: - mkTuple :: [Any] -> gvariant - */ - 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})"; - }; - - /* Returns the GVariant boolean from the given Nix bool value. - - Type: - mkBoolean :: Bool -> gvariant - */ - 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. - - Type: - mkString :: String -> gvariant - */ - 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. - - Type: - mkObjectpath :: String -> gvariant - */ - mkObjectpath = v: - mkPrimitive type.string v // { - __toString = self: "objectpath '${escape [ "'" ] self.value}'"; - }; - - /* Returns the GVariant uchar from the given Nix int value. - - Type: - mkUchar :: Int -> gvariant - */ - mkUchar = mkPrimitive type.uchar; - - /* Returns the GVariant int16 from the given Nix int value. - - Type: - mkInt16 :: Int -> gvariant - */ - mkInt16 = mkPrimitive type.int16; - - /* Returns the GVariant uint16 from the given Nix int value. - - Type: - mkUint16 :: Int -> gvariant - */ - mkUint16 = mkPrimitive type.uint16; - - /* Returns the GVariant int32 from the given Nix int value. - - Type: - mkInt32 :: Int -> gvariant - */ - mkInt32 = v: - mkPrimitive type.int32 v // { - __toString = self: toString self.value; - }; - - /* Returns the GVariant uint32 from the given Nix int value. - - Type: - mkUint32 :: Int -> gvariant - */ - mkUint32 = mkPrimitive type.uint32; - - /* Returns the GVariant int64 from the given Nix int value. - - Type: - mkInt64 :: Int -> gvariant - */ - mkInt64 = mkPrimitive type.int64; - - /* Returns the GVariant uint64 from the given Nix int value. - - Type: - mkUint64 :: Int -> gvariant - */ - mkUint64 = mkPrimitive type.uint64; - - /* Returns the GVariant double from the given Nix float value. - - Type: - mkDouble :: Float -> gvariant - */ - mkDouble = v: - mkPrimitive type.double v // { - __toString = self: toString self.value; - }; -} diff --git a/lib/kernel.nix b/lib/kernel.nix deleted file mode 100644 index d03d010..0000000 --- a/lib/kernel.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib }: - -let - inherit (lib) mkIf versionAtLeast versionOlder; -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; }; - - - # Common patterns/legacy used in common-config/hardened/config.nix - whenHelpers = version: { - whenAtLeast = ver: mkIf (versionAtLeast 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 deleted file mode 100644 index 035907e..0000000 --- a/lib/licenses.nix +++ /dev/null @@ -1,1312 +0,0 @@ -{ 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; - }; -}) diff --git a/lib/lists.nix b/lib/lists.nix deleted file mode 100644 index ca436d7..0000000 --- a/lib/lists.nix +++ /dev/null @@ -1,1901 +0,0 @@ -/** - General list operations. -*/ -{ lib }: -let - inherit (lib.strings) toInt; - 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; - - /** - Create a list consisting of a single element. `singleton x` is - sometimes more convenient with respect to indentation than `[x]` - when x spans multiple lines. - - # Inputs - - `x` - - : 1\. Function argument - - # Type - - ``` - singleton :: a -> [a] - ``` - - # Examples - :::{.example} - ## `lib.lists.singleton` usage example - - ```nix - singleton "foo" - => [ "foo" ] - ``` - - ::: - */ - singleton = x: [x]; - - /** - Apply the function to each element in the list. - Same as `map`, but arguments flipped. - - # Inputs - - `xs` - - : 1\. Function argument - - `f` - - : 2\. Function argument - - # Type - - ``` - forEach :: [a] -> (a -> b) -> [b] - ``` - - # Examples - :::{.example} - ## `lib.lists.forEach` usage example - - ```nix - forEach [ 1 2 ] (x: - toString x - ) - => [ "1" "2" ] - ``` - - ::: - */ - forEach = xs: f: map f xs; - - /** - “right fold” a binary function `op` between successive elements of - `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` - - : 1\. Function argument - - `nul` - - : 2\. Function argument - - `list` - - : 3\. Function argument - - # Type - - ``` - foldr :: (a -> b -> b) -> b -> [a] -> b - ``` - - # Examples - :::{.example} - ## `lib.lists.foldr` usage example - - ```nix - concat = foldr (a: b: a + b) "z" - concat [ "a" "b" "c" ] - => "abcz" - # different types - strange = foldr (int: str: toString (int + 1) + str) "a" - strange [ 1 2 3 4 ] - => "2345a" - ``` - - ::: - */ - 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` is an alias of `foldr` for historic reasons - */ - # FIXME(Profpatsch): deprecate? - fold = foldr; - - - /** - “left fold”, like `foldr`, but from the left: - - `foldl op nul [x_1 x_2 ... x_n] == op (... (op (op nul x_1) x_2) ... x_n)`. - - # Inputs - - `op` - - : 1\. Function argument - - `nul` - - : 2\. Function argument - - `list` - - : 3\. Function argument - - # Type - - ``` - foldl :: (b -> a -> b) -> b -> [a] -> b - ``` - - # Examples - :::{.example} - ## `lib.lists.foldl` usage example - - ```nix - lconcat = foldl (a: b: a + b) "z" - lconcat [ "a" "b" "c" ] - => "zabc" - # different types - lstrange = foldl (str: int: str + toString (int + 1)) "a" - lstrange [ 1 2 3 4 ] - => "a2345" - ``` - - ::: - */ - 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); - - /** - Reduce a list by applying a binary operator from left to right, - starting with an initial accumulator. - - Before each application of the operator, the accumulator value is evaluated. - This behavior makes this function stricter than [`foldl`](#function-library-lib.lists.foldl). - - Unlike [`builtins.foldl'`](https://nixos.org/manual/nix/unstable/language/builtins.html#builtins-foldl'), - the initial accumulator argument is evaluated before the first iteration. - - A call like - - ```nix - foldl' op acc₀ [ x₀ x₁ x₂ ... xₙ₋₁ xₙ ] - ``` - - is (denotationally) equivalent to the following, - but with the added benefit that `foldl'` itself will never overflow the stack. - - ```nix - let - acc₁ = builtins.seq acc₀ (op acc₀ x₀ ); - acc₂ = builtins.seq acc₁ (op acc₁ x₁ ); - acc₃ = builtins.seq acc₂ (op acc₂ x₂ ); - ... - accₙ = builtins.seq accₙ₋₁ (op accₙ₋₁ xₙ₋₁); - accₙ₊₁ = builtins.seq accₙ (op accₙ xₙ ); - in - accₙ₊₁ - - # Or ignoring builtins.seq - op (op (... (op (op (op acc₀ x₀) x₁) x₂) ...) xₙ₋₁) xₙ - ``` - - # Inputs - - `op` - - : The binary operation to run, where the two arguments are: - - 1. `acc`: The current accumulator value: Either the initial one for the first iteration, or the result of the previous iteration - 2. `x`: The corresponding list element for this iteration - - `acc` - - : The initial accumulator value. - - The accumulator value is evaluated in any case before the first iteration starts. - - To avoid evaluation even before the `list` argument is given an eta expansion can be used: - - ```nix - list: lib.foldl' op acc list - ``` - - `list` - - : The list to fold - - # Type - - ``` - foldl' :: (acc -> x -> acc) -> acc -> [x] -> acc - ``` - - # Examples - :::{.example} - ## `lib.lists.foldl'` usage example - - ```nix - foldl' (acc: x: acc + x) 0 [1 2 3] - => 6 - ``` - - ::: - */ - foldl' = - 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); - - /** - Map with index starting from 0 - - # Inputs - - `f` - - : 1\. Function argument - - `list` - - : 2\. Function argument - - # Type - - ``` - imap0 :: (int -> a -> b) -> [a] -> [b] - ``` - - # Examples - :::{.example} - ## `lib.lists.imap0` usage example - - ```nix - imap0 (i: v: "${v}-${toString i}") ["a" "b"] - => [ "a-0" "b-1" ] - ``` - - ::: - */ - imap0 = f: list: genList (n: f n (elemAt list n)) (length list); - - /** - Map with index starting from 1 - - - # Inputs - - `f` - - : 1\. Function argument - - `list` - - : 2\. Function argument - - # Type - - ``` - imap1 :: (int -> a -> b) -> [a] -> [b] - ``` - - # Examples - :::{.example} - ## `lib.lists.imap1` usage example - - ```nix - imap1 (i: v: "${v}-${toString i}") ["a" "b"] - => [ "a-1" "b-2" ] - ``` - - ::: - */ - imap1 = f: list: genList (n: f (n + 1) (elemAt list n)) (length list); - - /** - Filter a list for elements that satisfy a predicate function. - The predicate function is called with both the index and value for each element. - It must return `true`/`false` to include/exclude a given element in the result. - This function is strict in the result of the predicate function for each element. - This function has O(n) complexity. - - Also see [`builtins.filter`](https://nixos.org/manual/nix/stable/language/builtins.html#builtins-filter) (available as `lib.lists.filter`), - which can be used instead when the index isn't needed. - - # Inputs - - `ipred` - - : The predicate function, it takes two arguments: - - 1. (int): the index of the element. - - 2. (a): the value of the element. - - It must return `true`/`false` to include/exclude a given element from the result. - - `list` - - : The list to filter using the predicate. - - # Type - ``` - ifilter0 :: (int -> a -> bool) -> [a] -> [a] - ``` - - # Examples - :::{.example} - ## `lib.lists.ifilter0` usage example - - ```nix - ifilter0 (i: v: i == 0 || v > 2) [ 1 2 3 ] - => [ 1 3 ] - ``` - ::: - */ - ifilter0 = - ipred: - input: - map (idx: elemAt input idx) ( - filter (idx: ipred idx (elemAt input idx)) ( - genList (x: x) (length input) - ) - ); - - /** - Map and concatenate the result. - - # Type - - ``` - concatMap :: (a -> [b]) -> [a] -> [b] - ``` - - # Examples - :::{.example} - ## `lib.lists.concatMap` usage example - - ```nix - concatMap (x: [x] ++ ["z"]) ["a" "b"] - => [ "a" "z" "b" "z" ] - ``` - - ::: - */ - concatMap = builtins.concatMap; - - /** - 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 - - ```nix - flatten [1 [2 [3] 4] 5] - => [1 2 3 4 5] - flatten 1 - => [1] - ``` - - ::: - */ - 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` - - : Element to remove from `list` - - `list` - - : The list - - # Type - - ``` - remove :: a -> [a] -> [a] - ``` - - # Examples - :::{.example} - ## `lib.lists.remove` usage example - - ```nix - remove 3 [ 1 3 4 3 ] - => [ 1 4 ] - ``` - - ::: - */ - remove = - e: filter (x: x != e); - - /** - Find the sole element in the list matching the specified - predicate. - - Returns `default` if no such element exists, or - `multiple` if there are multiple matching elements. - - - # Inputs - - `pred` - - : Predicate - - `default` - - : Default value to return if element was not found. - - `multiple` - - : Default value to return if more than one element was found - - `list` - - : Input list - - # Type - - ``` - findSingle :: (a -> bool) -> a -> a -> [a] -> a - ``` - - # Examples - :::{.example} - ## `lib.lists.findSingle` usage example - - ```nix - findSingle (x: x == 3) "none" "multiple" [ 1 3 3 ] - => "multiple" - findSingle (x: x == 3) "none" "multiple" [ 1 3 ] - => 3 - findSingle (x: x == 3) "none" "multiple" [ 1 9 ] - => "none" - ``` - - ::: - */ - 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; - - /** - Find the first index in the list matching the specified - predicate or return `default` if no such element exists. - - # Inputs - - `pred` - - : Predicate - - `default` - - : Default value to return - - `list` - - : Input list - - # Type - - ``` - findFirstIndex :: (a -> Bool) -> b -> [a] -> (Int | b) - ``` - - # Examples - :::{.example} - ## `lib.lists.findFirstIndex` usage example - - ```nix - findFirstIndex (x: x > 3) null [ 0 6 4 ] - => 1 - findFirstIndex (x: x > 9) null [ 0 6 4 ] - => null - ``` - - ::: - */ - findFirstIndex = - 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 - # because it reuses the same stack space, evaluating the function for one - # element after another. We can't return early, so this means that we - # sacrifice early cutoff, but that appears to be an acceptable cost. A - # clever scheme with "exponential search" is possible, but appears over- - # engineered for now. See https://github.com/NixOS/nixpkgs/pull/235267 - - # Invariant: - # - if index < 0 then el == elemAt list (- index - 1) and all elements before el didn't satisfy pred - # - 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: - 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 - else - # Still no match, update the index to the next element (we're counting down, so minus one) - index - 1 - else - # There's already a match, propagate the index without evaluating anything - index - ) (-1) list; - in - if resultIndex < 0 then - default - else - resultIndex; - - /** - Find the first element in the list matching the specified - predicate or return `default` if no such element exists. - - # Inputs - - `pred` - - : Predicate - - `default` - - : Default value to return - - `list` - - : Input list - - # Type - - ``` - findFirst :: (a -> bool) -> a -> [a] -> a - ``` - - # Examples - :::{.example} - ## `lib.lists.findFirst` usage example - - ```nix - findFirst (x: x > 3) 7 [ 1 6 4 ] - => 6 - findFirst (x: x > 9) 7 [ 1 6 4 ] - => 7 - ``` - - ::: - */ - findFirst = - pred: - default: - list: - let - index = findFirstIndex pred null list; - in - if index == null then - default - else - elemAt list index; - - /** - Return true if function `pred` returns true for at least one - element of `list`. - - # Inputs - - `pred` - - : Predicate - - `list` - - : Input list - - # Type - - ``` - any :: (a -> bool) -> [a] -> bool - ``` - - # Examples - :::{.example} - ## `lib.lists.any` usage example - - ```nix - any isString [ 1 "a" { } ] - => true - any isString [ 1 { } ] - => false - ``` - - ::: - */ - any = builtins.any; - - /** - Return true if function `pred` returns true for all elements of - `list`. - - # Inputs - - `pred` - - : Predicate - - `list` - - : Input list - - # Type - - ``` - all :: (a -> bool) -> [a] -> bool - ``` - - # Examples - :::{.example} - ## `lib.lists.all` usage example - - ```nix - all (x: x < 3) [ 1 2 ] - => true - all (x: x < 3) [ 1 2 3 ] - => false - ``` - - ::: - */ - all = builtins.all; - - /** - Count how many elements of `list` match the supplied predicate - function. - - # Inputs - - `pred` - - : Predicate - - # Type - - ``` - count :: (a -> bool) -> [a] -> int - ``` - - # Examples - :::{.example} - ## `lib.lists.count` usage example - - ```nix - count (x: x == 3) [ 3 2 3 4 6 ] - => 2 - ``` - - ::: - */ - 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 - value. Useful when building lists with optional elements - (e.g. `++ optional (system == "i686-linux") firefox`). - - # Inputs - - `cond` - - : 1\. Function argument - - `elem` - - : 2\. Function argument - - # Type - - ``` - optional :: bool -> a -> [a] - ``` - - # Examples - :::{.example} - ## `lib.lists.optional` usage example - - ```nix - optional true "foo" - => [ "foo" ] - optional false "foo" - => [ ] - ``` - - ::: - */ - optional = cond: elem: if cond then [elem] else []; - - /** - Return a list or an empty list, depending on a boolean value. - - # Inputs - - `cond` - - : Condition - - `elems` - - : List to return if condition is true - - # Type - - ``` - optionals :: bool -> [a] -> [a] - ``` - - # Examples - :::{.example} - ## `lib.lists.optionals` usage example - - ```nix - optionals true [ 2 3 ] - => [ 2 3 ] - optionals false [ 2 3 ] - => [ ] - ``` - - ::: - */ - optionals = - cond: - elems: if cond then elems else []; - - - /** - If argument is a list, return it; else, wrap it in a singleton - list. If you're using this, you should almost certainly - reconsider if there isn't a more "well-typed" approach. - - # Inputs - - `x` - - : 1\. Function argument - - # Examples - :::{.example} - ## `lib.lists.toList` usage example - - ```nix - toList [ 1 2 ] - => [ 1 2 ] - toList "hi" - => [ "hi "] - ``` - - ::: - */ - toList = x: if isList x then x else [x]; - - /** - Return a list of integers from `first` up to and including `last`. - - # Inputs - - `first` - - : First integer in the range - - `last` - - : Last integer in the range - - # Type - - ``` - range :: int -> int -> [int] - ``` - - # Examples - :::{.example} - ## `lib.lists.range` usage example - - ```nix - range 2 4 - => [ 2 3 4 ] - range 3 2 - => [ ] - ``` - - ::: - */ - range = - first: - last: - if first > last then - [] - else - genList (n: first + n) (last - first + 1); - - /** - Return a list with `n` copies of an element. - - # Inputs - - `n` - - : 1\. Function argument - - `elem` - - : 2\. Function argument - - # Type - - ``` - replicate :: int -> a -> [a] - ``` - - # Examples - :::{.example} - ## `lib.lists.replicate` usage example - - ```nix - replicate 3 "a" - => [ "a" "a" "a" ] - replicate 2 true - => [ true true ] - ``` - - ::: - */ - replicate = n: elem: genList (_: elem) n; - - /** - Splits the elements of a list in two lists, `right` and - `wrong`, depending on the evaluation of a predicate. - - # Inputs - - `pred` - - : Predicate - - `list` - - : Input list - - # Type - - ``` - (a -> bool) -> [a] -> { right :: [a]; wrong :: [a]; } - ``` - - # Examples - :::{.example} - ## `lib.lists.partition` usage example - - ```nix - partition (x: x > 2) [ 5 1 2 3 4 ] - => { right = [ 5 3 4 ]; wrong = [ 1 2 ]; } - ``` - - ::: - */ - partition = builtins.partition; - - /** - Splits the elements of a list into many lists, using the return value of a predicate. - Predicate should return a string which becomes keys of attrset `groupBy` returns. - `groupBy'` allows to customise the combining function and initial value - - # Inputs - - `op` - - : 1\. Function argument - - `nul` - - : 2\. Function argument - - `pred` - - : 3\. Function argument - - `lst` - - : 4\. Function argument - - - # Examples - :::{.example} - ## `lib.lists.groupBy'` usage example - - ```nix - groupBy (x: boolToString (x > 2)) [ 5 1 2 3 4 ] - => { true = [ 5 3 4 ]; false = [ 1 2 ]; } - groupBy (x: x.name) [ {name = "icewm"; script = "icewm &";} - {name = "xfce"; script = "xfce4-session &";} - {name = "icewm"; script = "icewmbg &";} - {name = "mate"; script = "gnome-session &";} - ] - => { icewm = [ { name = "icewm"; script = "icewm &"; } - { name = "icewm"; script = "icewmbg &"; } ]; - mate = [ { name = "mate"; script = "gnome-session &"; } ]; - xfce = [ { name = "xfce"; script = "xfce4-session &"; } ]; - } - - groupBy' builtins.add 0 (x: boolToString (x > 2)) [ 5 1 2 3 4 ] - => { true = 12; false = 3; } - ``` - - ::: - */ - 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]; } - ) {}); - - /** - Merges two lists of the same size together. If the sizes aren't the same - the merging stops at the shortest. How both lists are merged is defined - by the first argument. - - # Inputs - - `f` - - : Function to zip elements of both lists - - `fst` - - : First list - - `snd` - - : Second list - - # Type - - ``` - zipListsWith :: (a -> b -> c) -> [a] -> [b] -> [c] - ``` - - # Examples - :::{.example} - ## `lib.lists.zipListsWith` usage example - - ```nix - zipListsWith (a: b: a + b) ["h" "l"] ["e" "o"] - => ["he" "lo"] - ``` - - ::: - */ - zipListsWith = - 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 - the merging stops at the shortest. - - # Inputs - - `fst` - - : First list - - `snd` - - : Second list - - # Type - - ``` - zipLists :: [a] -> [b] -> [{ fst :: a; snd :: b; }] - ``` - - # Examples - :::{.example} - ## `lib.lists.zipLists` usage example - - ```nix - zipLists [ 1 2 ] [ "a" "b" ] - => [ { fst = 1; snd = "a"; } { fst = 2; snd = "b"; } ] - ``` - - ::: - */ - zipLists = zipListsWith (fst: snd: { inherit fst snd; }); - - /** - Reverse the order of the elements of a list. - - # Inputs - - `xs` - - : 1\. Function argument - - # Type - - ``` - reverseList :: [a] -> [a] - ``` - - # Examples - :::{.example} - ## `lib.lists.reverseList` usage example - - ```nix - reverseList [ "b" "o" "j" ] - => [ "j" "o" "b" ] - ``` - - ::: - */ - reverseList = xs: - let l = length xs; in genList (n: elemAt xs (l - n - 1)) l; - - /** - Depth-First Search (DFS) for lists `list != []`. - - `before a b == true` means that `b` depends on `a` (there's an - edge from `b` to `a`). - - - # Inputs - - `stopOnCycles` - - : 1\. Function argument - - `before` - - : 2\. Function argument - - `list` - - : 3\. Function argument - - - # Examples - :::{.example} - ## `lib.lists.listDfs` usage example - - ```nix - listDfs true hasPrefix [ "/home/user" "other" "/" "/home" ] - == { minimal = "/"; # minimal element - visited = [ "/home/user" ]; # seen elements (in reverse order) - rest = [ "/home" "other" ]; # everything else - } - - listDfs true hasPrefix [ "/home/user" "other" "/" "/home" "/" ] - == { cycle = "/"; # cycle encountered at this element - loops = [ "/" ]; # and continues to these elements - visited = [ "/" "/home/user" ]; # elements leading to the cycle (in reverse order) - rest = [ "/home" "other" ]; # everything else - ``` - - ::: - */ - listDfs = stopOnCycles: before: list: - let - 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); - - /** - Sort a list based on a partial ordering using DFS. This - implementation is O(N^2), if your ordering is linear, use `sort` - instead. - - `before a b == true` means that `b` should be after `a` - in the result. - - - # Inputs - - `before` - - : 1\. Function argument - - `list` - - : 2\. Function argument - - - # Examples - :::{.example} - ## `lib.lists.toposort` usage example - - ```nix - toposort hasPrefix [ "/home/user" "other" "/" "/home" ] - == { result = [ "/" "/home" "/home/user" "other" ]; } - - toposort hasPrefix [ "/home/user" "other" "/" "/home" "/" ] - == { cycle = [ "/home/user" "/" "/" ]; # path leading to a cycle - loops = [ "/" ]; } # loops back to these elements - - toposort hasPrefix [ "other" "/home/user" "/home" "/" ] - == { result = [ "other" "/" "/home" "/home/user" ]; } - - toposort (a: b: a < b) [ 3 2 1 ] == { result = [ 1 2 3 ]; } - ``` - - ::: - */ - 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; }; - - /** - Sort a list based on a comparator function which compares two - elements and returns true if the first argument is strictly below - the second argument. The returned list is sorted in an increasing - order. The implementation does a quick-sort. - - See also [`sortOn`](#function-library-lib.lists.sortOn), which applies the - default comparison on a function-derived property, and may be more efficient. - - # Inputs - - `comparator` - - : 1\. Function argument - - `list` - - : 2\. Function argument - - # Type - - ``` - sort :: (a -> a -> Bool) -> [a] -> [a] - ``` - - # Examples - :::{.example} - ## `lib.lists.sort` usage example - - ```nix - sort (p: q: p < q) [ 5 3 7 ] - => [ 3 5 7 ] - ``` - - ::: - */ - sort = builtins.sort; - - /** - Sort a list based on the default comparison of a derived property `b`. - - The items are returned in `b`-increasing order. - - **Performance**: - - The passed function `f` is only evaluated once per item, - unlike an unprepared [`sort`](#function-library-lib.lists.sort) using - `f p < f q`. - - **Laws**: - ```nix - sortOn f == sort (p: q: f p < f q) - ``` - - - # Inputs - - `f` - - : 1\. Function argument - - `list` - - : 2\. Function argument - - # Type - - ``` - sortOn :: (a -> b) -> [a] -> [a], for comparable b - ``` - - # Examples - :::{.example} - ## `lib.lists.sortOn` usage example - - ```nix - sortOn stringLength [ "aa" "b" "cccc" ] - => [ "b" "aa" "cccc" ] - ``` - - ::: - */ - sortOn = f: list: - let - # Heterogenous list as pair may be ugly, but requires minimal allocations. - 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); - - /** - Compare two lists element-by-element. - - # Inputs - - `cmp` - - : 1\. Function argument - - `a` - - : 2\. Function argument - - `b` - - : 3\. Function argument - - - # Examples - :::{.example} - ## `lib.lists.compareLists` usage example - - ```nix - compareLists compare [] [] - => 0 - compareLists compare [] [ "a" ] - => -1 - compareLists compare [ "a" ] [] - => 1 - compareLists compare [ "a" "b" ] [ "a" "c" ] - => -1 - ``` - - ::: - */ - 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 - - ```nix - naturalSort ["disk11" "disk8" "disk100" "disk9"] - => ["disk8" "disk9" "disk11" "disk100"] - naturalSort ["10.46.133.149" "10.5.16.62" "10.54.16.25"] - => ["10.5.16.62" "10.46.133.149" "10.54.16.25"] - naturalSort ["v0.2" "v0.15" "v0.0.9"] - => [ "v0.0.9" "v0.2" "v0.15" ] - ``` - - ::: - */ - 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 - less = a: b: (compareLists compare (head a) (head b)) < 0; - in - map (x: elemAt x 1) (sort less prepared); - - /** - Return the first (at most) N elements of a list. - - - # Inputs - - `count` - - : Number of elements to take - - `list` - - : Input list - - # Type - - ``` - take :: int -> [a] -> [a] - ``` - - # Examples - :::{.example} - ## `lib.lists.take` usage example - - ```nix - take 2 [ "a" "b" "c" "d" ] - => [ "a" "b" ] - take 2 [ ] - => [ ] - ``` - - ::: - */ - take = - count: sublist 0 count; - - /** - Remove the first (at most) N elements of a list. - - - # Inputs - - `count` - - : Number of elements to drop - - `list` - - : Input list - - # Type - - ``` - drop :: int -> [a] -> [a] - ``` - - # Examples - :::{.example} - ## `lib.lists.drop` usage example - - ```nix - drop 2 [ "a" "b" "c" "d" ] - => [ "c" "d" ] - drop 2 [ ] - => [ ] - ``` - - ::: - */ - drop = - count: - list: sublist count (length list) list; - - /** - Whether the first list is a prefix of the second list. - - - # Inputs - - `list1` - - : 1\. Function argument - - `list2` - - : 2\. Function argument - - # Type - - ``` - hasPrefix :: [a] -> [a] -> bool - ``` - - # Examples - :::{.example} - ## `lib.lists.hasPrefix` usage example - - ```nix - hasPrefix [ 1 2 ] [ 1 2 3 4 ] - => true - hasPrefix [ 0 1 ] [ 1 2 3 4 ] - => false - ``` - - ::: - */ - hasPrefix = - list1: - list2: - take (length list1) list2 == list1; - - /** - Remove the first list as a prefix from the second list. - Error if the first list isn't a prefix of the second list. - - # Inputs - - `list1` - - : 1\. Function argument - - `list2` - - : 2\. Function argument - - # Type - - ``` - removePrefix :: [a] -> [a] -> [a] - ``` - - # Examples - :::{.example} - ## `lib.lists.removePrefix` usage example - - ```nix - removePrefix [ 1 2 ] [ 1 2 3 4 ] - => [ 3 4 ] - removePrefix [ 0 1 ] [ 1 2 3 4 ] - => - ``` - - ::: - */ - removePrefix = - list1: - list2: - if hasPrefix list1 list2 then - drop (length list1) list2 - else - throw "lib.lists.removePrefix: First argument is not a list prefix of the second argument"; - - /** - Return a list consisting of at most `count` elements of `list`, - starting at index `start`. - - # Inputs - - `start` - - : Index at which to start the sublist - - `count` - - : Number of elements to take - - `list` - - : Input list - - # Type - - ``` - sublist :: int -> int -> [a] -> [a] - ``` - - # Examples - :::{.example} - ## `lib.lists.sublist` usage example - - ```nix - sublist 1 3 [ "a" "b" "c" "d" "e" ] - => [ "b" "c" "d" ] - sublist 1 3 [ ] - => [ ] - ``` - - ::: - */ - 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); - - /** - The common prefix of two lists. - - - # Inputs - - `list1` - - : 1\. Function argument - - `list2` - - : 2\. Function argument - - # Type - - ``` - commonPrefix :: [a] -> [a] -> [a] - ``` - - # Examples - :::{.example} - ## `lib.lists.commonPrefix` usage example - - ```nix - commonPrefix [ 1 2 3 4 5 6 ] [ 1 2 4 8 ] - => [ 1 2 ] - commonPrefix [ 1 2 3 ] [ 1 2 3 4 5 ] - => [ 1 2 3 ] - commonPrefix [ 1 2 3 ] [ 4 5 6 ] - => [ ] - ``` - - ::: - */ - commonPrefix = - list1: - list2: - let - # Zip the lists together into a list of booleans whether each element matches - matchings = zipListsWith (fst: snd: fst != snd) list1 list2; - # Find the first index where the elements don't match, - # which will then also be the length of the common prefix. - # If all elements match, we fall back to the length of the zipped list, - # which is the same as the length of the smaller list. - commonPrefixLength = findFirstIndex id (length matchings) matchings; - in - take commonPrefixLength list1; - - /** - Return the last element of a list. - - This function throws an error if the list is empty. - - - # Inputs - - `list` - - : 1\. Function argument - - # Type - - ``` - last :: [a] -> a - ``` - - # Examples - :::{.example} - ## `lib.lists.last` usage example - - ```nix - last [ 1 2 3 ] - => 3 - ``` - - ::: - */ - last = list: - assert lib.assertMsg (list != []) "lists.last: list must not be empty!"; - elemAt list (length list - 1); - - /** - Return all elements but the last. - - This function throws an error if the list is empty. - - - # Inputs - - `list` - - : 1\. Function argument - - # Type - - ``` - init :: [a] -> [a] - ``` - - # Examples - :::{.example} - ## `lib.lists.init` usage example - - ```nix - init [ 1 2 3 ] - => [ 1 2 ] - ``` - - ::: - */ - 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 - - ```nix - crossLists (x: y: "${toString x}${toString y}") [[1 2] [3 4]] - => [ "13" "14" "23" "24" ] - ``` - - The following function call is equivalent to the one deprecated above: - - ```nix - mapCartesianProduct (x: "${toString x.a}${toString x.b}") { a = [1 2]; b = [3 4]; } - => [ "13" "14" "23" "24" ] - ``` - ::: - */ - crossLists = warn - ''lib.crossLists is deprecated, use lib.mapCartesianProduct instead. - - For example, the following function call: - - nix-repl> lib.crossLists (x: y: x+y) [[1 2] [3 4]] - [ 4 5 5 6 ] - - 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]); - - /** - Remove duplicate elements from the `list`. O(n^2) complexity. - - - # Inputs - - `list` - - : Input list - - # Type - - ``` - unique :: [a] -> [a] - ``` - - # Examples - :::{.example} - ## `lib.lists.unique` usage example - - ```nix - unique [ 3 2 3 4 ] - => [ 3 2 4 ] - ``` - - ::: - */ - 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` - - : 1\. Function argument - - # Type - - ``` - allUnique :: [a] -> bool - ``` - - # Examples - :::{.example} - ## `lib.lists.allUnique` usage example - - ```nix - allUnique [ 3 2 3 4 ] - => false - allUnique [ 3 2 4 1 ] - => true - ``` - - ::: - */ - allUnique = list: (length (unique list) == length list); - - - /** - Intersects list 'list1' and another list (`list2`). - - O(nm) complexity. - - # Inputs - - `list1` - - : First list - - `list2` - - : Second list - - - # Examples - :::{.example} - ## `lib.lists.intersectLists` usage example - - ```nix - intersectLists [ 1 2 3 ] [ 6 3 2 ] - => [ 3 2 ] - ``` - - ::: - */ - intersectLists = e: filter (x: elem x e); - - /** - Subtracts list 'e' from another list (`list2`). - - O(nm) complexity. - - # Inputs - - `e` - - : First list - - `list2` - - : Second list - - - # Examples - :::{.example} - ## `lib.lists.subtractLists` usage example - - ```nix - subtractLists [ 3 2 ] [ 1 2 3 4 5 3 ] - => [ 1 4 5 ] - ``` - - ::: - */ - subtractLists = e: filter (x: !(elem x e)); - - /** - Test if two lists have no common element. - It should be slightly more efficient than (intersectLists a b == []) - - # Inputs - - `a` - - : 1\. Function argument - - `b` - - : 2\. Function argument - */ - mutuallyExclusive = a: b: length a == 0 || !(any (x: elem x a) b); - -} diff --git a/lib/meta.nix b/lib/meta.nix deleted file mode 100644 index 675e191..0000000 --- a/lib/meta.nix +++ /dev/null @@ -1,189 +0,0 @@ -/* Some functions for manipulating meta attributes, as well as the - name attribute. */ - -{ lib }: - -let - 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. - - Example: - addMetaAttrs {description = "Bla blah";} somePkg - */ - addMetaAttrs = newAttrs: drv: - drv // { meta = (drv.meta or {}) // newAttrs; }; - - - /* Disable Hydra builds of given derivation. - */ - dontDistribute = drv: addMetaAttrs { hydraPlatforms = []; } drv; - - - /* Change the symbolic name of a package for presentation purposes - (i.e., so that nix-env users can tell them apart). - */ - setName = name: drv: drv // {inherit name;}; - - - /* Like `setName`, but takes the previous name as an argument. - - Example: - updateName (oldName: oldName + "-experimental") somePkg - */ - updateName = updater: drv: drv // {name = updater (drv.name);}; - - - /* 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. - */ - setPrio = priority: addMetaAttrs { inherit priority; }; - - /* 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 - */ - lowPrioSet = set: mapDerivationAttrset lowPrio set; - - - /* 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 - */ - hiPrioSet = set: mapDerivationAttrset hiPrio set; - - - /* Check to see if a platform is matched by the given `meta.platforms` - element. - - A `meta.platform` pattern is either - - 1. (legacy) a system string. - - 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`). - - 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 - ); - - /* 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 - */ - 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"; } - */ - 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; } - ); - - /* Get the path to the main program of a package based on meta.mainProgram - - 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" - */ - 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. - - 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: - 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) - "lib.meta.getExe': The second argument is of type ${typeOf y}, but it should be a string instead."; - assert assertMsg (match ".*\/.*" y == null) - "lib.meta.getExe': The second argument \"${y}\" is a nested path with a \"/\" character, but it should just be the name of the executable instead."; - "${getBin x}/bin/${y}"; -} diff --git a/lib/minver.nix b/lib/minver.nix deleted file mode 100644 index 507d45b..0000000 --- a/lib/minver.nix +++ /dev/null @@ -1,2 +0,0 @@ -# Expose the minimum required version for evaluating Nixpkgs -"2.3" diff --git a/lib/modules.nix b/lib/modules.nix deleted file mode 100644 index 79892f5..0000000 --- a/lib/modules.nix +++ /dev/null @@ -1,1438 +0,0 @@ -{ lib }: - -let - inherit (lib) - all - any - attrByPath - attrNames - catAttrs - concatLists - concatMap - concatStringsSep - elem - filter - foldl' - getAttrFromPath - head - id - imap1 - isAttrs - isBool - isFunction - isList - isString - length - mapAttrs - mapAttrsToList - mapAttrsRecursiveCond - min - optional - optionalAttrs - optionalString - recursiveUpdate - reverseList sort - setAttrByPath - types - warnIf - zipAttrsWith - ; - inherit (lib.options) - isOption - mkOption - showDefs - showFiles - showOption - unknownModule - ; - 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 - )); - - /* 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 - }: - 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; - - legacyModules = - optional (evalModulesArgs?args) { - config = { - _module.args = args; - }; - } - ++ optional (evalModulesArgs?check) { - config = { - _module.check = mkDefault check; - }; - }; - regularModules = modules ++ legacyModules; - - # This internal module declare internal options under the `_module' - # attribute. These options are fragile, as they are used by the - # module system to change the interpretation of modules. - # - # When extended with extendModules or moduleType, a fresh instance of - # this module is used, to avoid conflicts and allow chaining of - # extendModules. - internalModule = rec { - _file = "lib/modules.nix"; - - key = _file; - - options = { - _module.args = mkOption { - # Because things like `mkIf` are entirely useless for - # `_module.args` (because there's no way modules can check which - # arguments were passed), we'll use `lazyAttrsOf` which drops - # support for that, in turn it's lazy in its values. This means e.g. - # a `_module.args.pkgs = import (fetchTarball { ... }) {}` won't - # start a download when `pkgs` wasn't evaluated. - type = types.lazyAttrsOf types.raw; - # 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; - # TODO: Change the type of this option to a submodule with a - # freeformType, so that individual arguments can be documented - # separately - description = '' - Additional arguments passed to each module in addition to ones - like `lib`, `config`, - and `pkgs`, `modulesPath`. - - This option is also available to all submodules. Submodules do not - inherit args from their parent module, nor do they provide args to - their parent module or sibling submodules. The sole exception to - this is the argument `name` which is provided by - parent modules to a submodule and contains the attribute name - the submodule is bound to, or a unique generated name if it is - not bound to an attribute. - - Some arguments are already passed by default, of which the - following *cannot* be changed with this option: - - {var}`lib`: The nixpkgs library. - - {var}`config`: The results of all options after merging the values from all modules together. - - {var}`options`: The options declared in all modules. - - {var}`specialArgs`: The `specialArgs` argument passed to `evalModules`. - - All attributes of {var}`specialArgs` - - Whereas option values can generally depend on other option values - thanks to laziness, this does not apply to `imports`, which - must be computed statically before anything else. - - For this reason, callers of the module system can provide `specialArgs` - which are available during import resolution. - - For NixOS, `specialArgs` includes - {var}`modulesPath`, which allows you to import - extra modules from the nixpkgs package tree without having to - somehow make the module aware of the location of the - `nixpkgs` or NixOS directories. - ``` - { modulesPath, ... }: { - imports = [ - (modulesPath + "/profiles/minimal.nix") - ]; - } - ``` - - For NixOS, the default value for this option includes at least this argument: - - {var}`pkgs`: The nixpkgs package set according to - the {option}`nixpkgs.pkgs` option. - ''; - }; - - _module.check = mkOption { - type = types.bool; - internal = true; - default = true; - description = "Whether to check whether all option definitions have matching declarations."; - }; - - _module.freeformType = mkOption { - type = types.nullOr types.optionType; - internal = true; - default = null; - description = '' - If set, merge all definitions that don't have an associated option - together using this type. The result then gets combined with the - values of all declared options to produce the final ` - config` value. - - If this is `null`, definitions without an option - will throw an error unless {option}`_module.check` is - turned off. - ''; - }; - - _module.specialArgs = mkOption { - readOnly = true; - internal = true; - description = '' - Externally provided module arguments that can't be modified from - within a configuration, but can be used in module imports. - ''; - }; - }; - - config = { - _module.args = { - inherit extendModules; - moduleType = type; - }; - _module.specialArgs = specialArgs; - }; - }; - - merged = - let collected = collectModules - class - (specialArgs.modulesPath or "") - (regularModules ++ [ internalModule ]) - ({ inherit lib options config specialArgs; } // specialArgs); - in mergeModules prefix (reverseList collected); - - options = merged.matchedOptions; - - config = - let - - # For definitions that have an associated option - 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 = - let - defs = map (def: { - file = def.file; - value = setAttrByPath def.prefix def.value; - }) merged.unmatchedDefns; - 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; - - checkUnmatched = - if config._module.check && config._module.freeformType == null && merged.unmatchedDefns != [] then - let - firstDef = head merged.unmatchedDefns; - baseMsg = - let - optText = showOption (prefix ++ firstDef.prefix); - 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 ]) - ); - in - "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} - - 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; - - checked = builtins.seq checkUnmatched; - - extendModules = extendArgs@{ - modules ? [], - specialArgs ? {}, - prefix ? [], - }: - evalModules (evalModulesArgs // { - inherit class; - modules = regularModules ++ modules; - specialArgs = evalModulesArgs.specialArgs or {} // specialArgs; - prefix = extendArgs.prefix or evalModulesArgs.prefix or []; - }); - - type = lib.types.submoduleWith { - inherit modules specialArgs class; - }; - - result = withWarnings { - _type = "configuration"; - options = checked options; - config = checked (removeAttrs config [ "_module" ]); - _module = checked (config._module); - inherit extendModules type; - class = class; - }; - 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 - - # Like unifyModuleSyntax, but also imports paths and calls functions if necessary - loadModule = args: fallbackFile: fallbackKey: m: - if isFunction m then - unifyModuleSyntax fallbackFile fallbackKey (applyModuleArgs fallbackKey m args) - else if isAttrs m then - if m._type or "module" == "module" then - unifyModuleSyntax fallbackFile fallbackKey m - else if m._type == "if" || m._type == "override" then - loadModule args fallbackFile fallbackKey { config = m; } - else - 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. - ) - else if isList m then - 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); - - checkModule = - 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}." - else - m: m; - - /* - 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 = [ ... ]; - } - ... - ]; - } - ... - ]; - } - */ - collectStructuredModules = - let - collectResults = modules: { - 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); - - # 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 }: - let - 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 - 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 - 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}."; - - 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; - }); - - 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 ]; }; - - /* 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; - in - if m ? config || m ? options 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; - _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 {})); - } - else - # shorthand syntax - 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"]); - }; - - applyModuleArgsIfFunction = key: f: args@{ config, options, lib, ... }: - if isFunction f then applyModuleArgs key f args else f; - - 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 - # config._module.args option, the strictness used on the attribute - # set argument would cause an infinite loop, if the result of the - # option is given as argument. - # - # To work-around the strictness issue on the deconstruction of the - # attributes set argument, we create a new attribute set which is - # constructed to satisfy the expected set of attributes. Thus calling - # a module will resolve strictly the attributes used as argument but - # 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}) - ) (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); - - /* 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"; } - ... - ]; - } - */ - mergeModules = prefix: modules: - mergeModules' prefix modules - (concatMap (m: map (config: { file = m._file; inherit config; }) (pushDownProperties m.config)) modules); - - 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); - - # 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}'! - - 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); - # extract the definitions for each loc - 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 // { - options = mkOption { - type = types.submoduleWith { - modules = [ { options = decl.options; } ]; - # `null` is not intended for use by modules. It is an internal - # value that means "whatever the user has declared elsewhere". - # This might become obsolete with https://github.com/NixOS/nixpkgs/issues/162398 - shorthandOnlyDefinesConfig = null; - }; - }; - }; - - 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; - 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 = []; - } - 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; - - matchedOptions = mapAttrs (n: v: v.matchedOptions) resultsByName; - - # an attrset 'name' => list of unmatched definitions for 'name' - unmatchedDefnsByName = - # Propagate all unmatched definitions from nested option sets - 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 { - inherit matchedOptions; - - # Transforms unmatchedDefnsByName into a list of definitions - unmatchedDefns = - 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); - }; - - 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") '' - When declaring an option, you must wrap the type in a `mkOption` call. It should look somewhat like: - ${comment} - ${name} = lib.mkOption { - description = ...; - type = ; - ... - }; - ''; - - # Ideally we'd know the exact syntax they used, but short of that, - # we can only reliably repeat the last. However, we repeat the - # full path in a non-misleading way here, in case they overlook - # the start of the message. Examples attract attention. - comment = optionalString (depth > 1) "\n # ${showOption loc}"; - 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’). - - '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'. */ - mergeOptionDecls = - 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 {}; - 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 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; }]); - options = submodules; - } // typeSet - ) { inherit loc; declarations = []; declarationPositions = []; options = []; } opts; - - /* 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; - - # Handle properties, check types, and merge everything together. - res = - if opt.readOnly or false && length defs' > 1 then - 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}" - else - mergeDefinitions loc opt.type defs'; - - # Apply the 'apply' function to the merged value. This allows options to - # yield a value computed from the definitions - value = if opt ? apply then opt.apply res.mergedValue else res.mergedValue; - - warnDeprecation = - 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; - }; - - # 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; - - # Process mkOverride properties. - defs'' = filterOverrides' defs'; - - # 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 { - values = defs'''; - inherit (defs'') highestPrio; - }; - defsFinal = defsFinal'.values; - - # 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}" - 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 != []; - - 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, - - mkMerge [ { boot = set1; } (mkIf cond { boot = set2; services = set3; }) ] - - is transformed into - - [ { 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. - */ - 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? - [ 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 - - mkMerge [ 1 (mkIf true 2) (mkIf true (mkIf false 3)) ] - - yields ‘[ 1 2 ]’. - */ - 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 - [ ] - 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, - - [ { file = "/1"; value = mkOverride 10 "a"; } - { file = "/2"; value = mkOverride 20 "b"; } - { file = "/3"; value = "z"; } - { file = "/4"; value = mkOverride 10 "d"; } - ] - - yields - - [ { file = "/1"; value = "a"; } - { file = "/4"; value = "d"; } - ] - - Note that "z" has the default priority 100. - */ - filterOverrides = defs: (filterOverrides' defs).values; - - filterOverrides' = defs: - let - 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; - 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: - let - 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'; - - # 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 = []; }; - - - /* - Merge an option's definitions in a way that preserves the priority of the - individual attributes in the option value. - - This does not account for all option semantics, such as readOnly. - - 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; - - /* Properties. */ - - mkIf = condition: content: - { _type = "if"; - inherit condition content; - }; - - mkAssert = assertion: message: content: - mkIf - (if assertion then true else throw "\nFailed assertion: ${message}") - content; - - mkMerge = contents: - { _type = "merge"; - inherit contents; - }; - - 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 - defaultOverridePriority = 100; - mkImageMediaOverride = mkOverride 60; # image media profiles can be derived by inclusion into host config, hence needing to override host config, but do allow user to mkForce - 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; - - 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; - }; - - mkBefore = mkOrder 500; - defaultOrderPriority = 1000; - mkAfter = mkOrder 1500; - - # Convenient property used to transfer all definitions and their - # properties from one option to another. This property is useful for - # renaming options, and also for including properties from another module - # system, including sub-modules. - # - # { config, options, ... }: - # - # { - # # 'bar' might not always be defined in the current module-set. - # config.foo.enable = mkAliasDefinitions (options.bar.enable or {}); - # - # # 'barbaz' has to be defined in the current module-set. - # config.foobar.paths = mkAliasDefinitions options.barbaz.paths; - # } - # - # Note, this is different than taking the value of the option and using it - # as a definition, as the new definition will not keep the mkOverride / - # mkDefault properties of the previous option. - # - mkAliasDefinitions = mkAliasAndWrapDefinitions id; - 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: - let - prio = option.highestPrio or defaultOverridePriority; - defsWithPrio = map (mkOverride prio) option.definitions; - in mkAliasIfDef option (wrap (mkMerge defsWithPrio)); - - mkAliasIfDef = option: - mkIf (isOption option && option.isDefined); - - /* 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, - - mkRemovedOptionModule [ "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! - */ - mkRemovedOptionModule = optionName: replacementInstructions: - { options, ... }: - { options = setAttrByPath optionName (mkOption { - visible = false; - 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} - ''; - }]; - }; - - /* 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" ] - - 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. - */ - 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, - - /* - 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}'."; - }; - - /* 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. - - 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 - - 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: - { config, options, ... }: - { - 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))); - }; - - /* 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. - - 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 - - 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: - 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; - }; - - /* Transitional version of mkAliasOptionModule that uses MD docs. - - This function is no longer necessary and merely an alias of `mkAliasOptionModule`. - */ - mkAliasOptionModuleMD = mkAliasOptionModule; - - /* 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. - For instance a config file could be set with a `text` or `source` option, where text translates to a `source` - value using `mkDerivedConfig options.text (pkgs.writeText "filename.conf")`. - - It takes care of setting the right priority using `mkOverride`. - */ - # TODO: make the module system error message include information about `opt` in - # error messages about conflicts. E.g. introduce a variation of `mkOverride` which - # adds extra location context to the definition object. This will allow context to be added - # 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); - - /* - 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 - }: - { 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 {}); - in - { - 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}'."; - }) - (if withPriority - then mkAliasAndWrapDefsWithPriority (setAttrByPath to) fromOpt - else mkAliasAndWrapDefinitions (setAttrByPath to) fromOpt) - ]); - }; - - /* Use this function to import a JSON file as NixOS configuration. - - modules.importJSON :: path -> attrs - */ - importJSON = file: { - _file = file; - config = lib.importJSON file; - }; - - /* Use this function to import a TOML file as NixOS configuration. - - 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; - }; - -in -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. - inherit - defaultOrderPriority - defaultOverridePriority - defaultPriority - doRename - evalModules - evalOptionValue # for use by lib.types - filterOverrides - filterOverrides' - fixMergeModules - fixupOptionType # should be private? - importJSON - importTOML - mergeDefinitions - mergeAttrDefinitionsWithPrio - mergeOptionDecls # should be private? - mkAfter - mkAliasAndWrapDefinitions - mkAliasAndWrapDefsWithPriority - mkAliasDefinitions - mkAliasIfDef - mkAliasOptionModule - mkAliasOptionModuleMD - mkAssert - mkBefore - mkChangedOptionModule - mkDefault - mkDerivedConfig - mkFixStrictness - mkForce - mkIf - mkImageMediaOverride - mkMerge - mkMergedOptionModule - mkOptionDefault - mkOrder - mkOverride - mkRemovedOptionModule - mkRenamedOptionModule - mkRenamedOptionModuleWith - mkVMOverride - setDefaultModuleLocation - sortProperties; -} diff --git a/lib/options.nix b/lib/options.nix deleted file mode 100644 index 7e64e6e..0000000 --- a/lib/options.nix +++ /dev/null @@ -1,473 +0,0 @@ -/* Nixpkgs/NixOS option handling. */ -{ lib }: - -let - inherit (lib) - all - collect - concatLists - concatMap - concatMapStringsSep - filter - foldl' - head - tail - isAttrs - isBool - isDerivation - isFunction - isInt - isList - isString - length - mapAttrs - optional - optionals - take - ; - 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. - ''; -in -rec { - - /* Returns true when the given argument is an option - - Type: isOption :: a -> bool - - 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: - - All keys default to `null` when not given. - - 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: - attrs // { _type = "option"; }; - - /* 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 = { ... }; } - */ - mkEnableOption = - # Name for the created option - 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. - - 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 (`.`). - - 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. - - 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). - - 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. - - 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 "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 "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 "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; } - */ - 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; - 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); - }); - - /* 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 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}"; - - /* - 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@{ - 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 }: - 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}"; - - /* "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; - - /* Extracts values of all "value" keys of the given list. - - Type: getValues :: [ { value :: a; } ] -> [a] - - Example: - getValues [ { value = 1; } { value = 2; } ] // => [ 1 2 ] - getValues [ ] // => [ ] - */ - getValues = map (x: x.value); - - /* Extracts values of all "file" keys of the given list - - Type: getFiles :: [ { file :: a; } ] -> [a] - - 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' = _: 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}`" ( - 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; }; - - subOptions = - 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); - - - /* 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 function was made obsolete by renderOptionValue and is kept for - compatibility with out-of-tree code. - */ - 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; - - - /* 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); - - - /* 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; }; - - 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. - */ - 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. - */ - 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. - - 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" - */ - 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; - - showOptionWithDefLocs = opt: '' - ${showOption opt.loc}, with values defined in: - ${concatMapStringsSep "\n" (defFile: " - ${defFile}") opt.files} - ''; - - unknownModule = ""; - -} diff --git a/lib/path/README.md b/lib/path/README.md deleted file mode 100644 index 89eec18..0000000 --- a/lib/path/README.md +++ /dev/null @@ -1,217 +0,0 @@ -# Path library - -This document explains why the `lib.path` library is designed the way it is. - -The purpose of this library is to process [filesystem paths]. It does not read files from the filesystem. -It exists to support the native Nix [path value type] with extra functionality. - -[filesystem paths]: https://en.m.wikipedia.org/wiki/Path_(computing) -[path value type]: https://nixos.org/manual/nix/stable/language/values.html#type-path - -As an extension of the path value type, it inherits the same intended use cases and limitations: -- Only use paths to access files at evaluation time, such as the local project source. -- Paths cannot point to derivations, so they are unfit to represent dependencies. -- A path implicitly imports the referenced files into the Nix store when interpolated to a string. Therefore paths are not suitable to access files at build- or run-time, as you risk importing the path from the evaluation system instead. - -Overall, this library works with two types of paths: -- Absolute paths are represented with the Nix [path value type]. Nix automatically normalises these paths. -- Subpaths are represented with the [string value type] since path value types don't support relative paths. This library normalises these paths as safely as possible. Absolute paths in strings are not supported. - - A subpath refers to a specific file or directory within an absolute base directory. - It is a stricter form of a relative path, notably [without support for `..` components][parents] since those could escape the base directory. - -[string value type]: https://nixos.org/manual/nix/stable/language/values.html#type-string - -This library is designed to be as safe and intuitive as possible, throwing errors when operations are attempted that would produce surprising results, and giving the expected result otherwise. - -This library is designed to work well as a dependency for the `lib.filesystem` and `lib.sources` library components. Contrary to these library components, `lib.path` does not read any paths from the filesystem. - -This library makes only these assumptions about paths and no others: -- `dirOf path` returns the path to the parent directory of `path`, unless `path` is the filesystem root, in which case `path` is returned. - - There can be multiple filesystem roots: `p == dirOf p` and `q == dirOf q` does not imply `p == q`. - - While there's only a single filesystem root in stable Nix, the [lazy trees feature](https://github.com/NixOS/nix/pull/6530) introduces [additional filesystem roots](https://github.com/NixOS/nix/pull/6530#discussion_r1041442173). -- `path + ("/" + string)` returns the path to the `string` subdirectory in `path`. - - If `string` contains no `/` characters, then `dirOf (path + ("/" + string)) == path`. - - If `string` contains no `/` characters, then `baseNameOf (path + ("/" + string)) == string`. -- `path1 == path2` returns `true` only if `path1` points to the same filesystem path as `path2`. - -Notably we do not make the assumption that we can turn paths into strings using `toString path`. - -## Design decisions - -Each subsection here contains a decision along with arguments and counter-arguments for (+) and against (-) that decision. - -### Leading dots for relative paths -[leading-dots]: #leading-dots-for-relative-paths - -Observing: Since subpaths are a form of relative paths, they can have a leading `./` to indicate it being a relative path, this is generally not necessary for tools though. - -Considering: Paths should be as explicit, consistent and unambiguous as possible. - -Decision: Returned subpaths should always have a leading `./`. - -
-Arguments - -- (+) In shells, just running `foo` as a command wouldn't execute the file `foo`, whereas `./foo` would execute the file. In contrast, `foo/bar` does execute that file without the need for `./`. This can lead to confusion about when a `./` needs to be prefixed. If a `./` is always included, this becomes a non-issue. This effectively then means that paths don't overlap with command names. -- (+) Prepending with `./` makes the subpaths always valid as relative Nix path expressions. -- (+) Using paths in command line arguments could give problems if not escaped properly, e.g. if a path was `--version`. This is not a problem with `./--version`. This effectively then means that paths don't overlap with GNU-style command line options. -- (-) `./` is not required to resolve relative paths, resolution always has an implicit `./` as prefix. -- (-) It's less noisy without the `./`, e.g. in error messages. - - (+) But similarly, it could be confusing whether something was even a path. - e.g. `foo` could be anything, but `./foo` is more clearly a path. -- (+) Makes it more uniform with absolute paths (those always start with `/`). - - (-) That is not relevant for practical purposes. -- (+) `find` also outputs results with `./`. - - (-) But only if you give it an argument of `.`. If you give it the argument `some-directory`, it won't prefix that. -- (-) `realpath --relative-to` doesn't prefix relative paths with `./`. - - (+) There is no need to return the same result as `realpath`. - -
- -### Representation of the current directory -[curdir]: #representation-of-the-current-directory - -Observing: The subpath that produces the base directory can be represented with `.` or `./` or `./.`. - -Considering: Paths should be as consistent and unambiguous as possible. - -Decision: It should be `./.`. - -
-Arguments - -- (+) `./` would be inconsistent with [the decision to not persist trailing slashes][trailing-slashes]. -- (-) `.` is how `realpath` normalises paths. -- (+) `.` can be interpreted as a shell command (it's a builtin for sourcing files in `bash` and `zsh`). -- (+) `.` would be the only path without a `/`. It could not be used as a Nix path expression, since those require at least one `/` to be parsed as such. -- (-) `./.` is rather long. - - (-) We don't require users to type this though, as it's only output by the library. - As inputs all three variants are supported for subpaths (and we can't do anything about absolute paths) -- (-) `builtins.dirOf "foo" == "."`, so `.` would be consistent with that. -- (+) `./.` is consistent with the [decision to have leading `./`][leading-dots]. -- (+) `./.` is a valid Nix path expression, although this property does not hold for every relative path or subpath. - -
- -### Subpath representation -[relrepr]: #subpath-representation - -Observing: Subpaths such as `foo/bar` can be represented in various ways: -- string: `"foo/bar"` -- list with all the components: `[ "foo" "bar" ]` -- attribute set: `{ type = "relative-path"; components = [ "foo" "bar" ]; }` - -Considering: Paths should be as safe to use as possible. We should generate string outputs in the library and not encourage users to do that themselves. - -Decision: Paths are represented as strings. - -
-Arguments - -- (+) It's simpler for the users of the library. One doesn't have to convert a path a string before it can be used. - - (+) Naively converting the list representation to a string with `concatStringsSep "/"` would break for `[]`, requiring library users to be more careful. -- (+) It doesn't encourage people to do their own path processing and instead use the library. - With a list representation it would seem easy to just use `lib.lists.init` to get the parent directory, but then it breaks for `.`, which would be represented as `[ ]`. -- (+) `+` is convenient and doesn't work on lists and attribute sets. - - (-) Shouldn't use `+` anyways, we export safer functions for path manipulation. - -
- -### Parent directory -[parents]: #parent-directory - -Observing: Relative paths can have `..` components, which refer to the parent directory. - -Considering: Paths should be as safe and unambiguous as possible. - -Decision: `..` path components in string paths are not supported, neither as inputs nor as outputs. Hence, string paths are called subpaths, rather than relative paths. - -
-Arguments - -- (+) If we wanted relative paths to behave according to the "physical" interpretation (as a directory tree with relations between nodes), it would require resolving symlinks, since e.g. `foo/..` would not be the same as `.` if `foo` is a symlink. - - (-) The "logical" interpretation is also valid (treating paths as a sequence of names), and is used by some software. It is simpler, and not using symlinks at all is safer. - - (+) Mixing both models can lead to surprises. - - (+) We can't resolve symlinks without filesystem access. - - (+) Nix also doesn't support reading symlinks at evaluation time. - - (-) We could just not handle such cases, e.g. `equals "foo" "foo/bar/.. == false`. The paths are different, we don't need to check whether the paths point to the same thing. - - (+) Assume we said `relativeTo /foo /bar == "../bar"`. If this is used like `/bar/../foo` in the end, and `bar` turns out to be a symlink to somewhere else, this won't be accurate. - - (-) We could decide to not support such ambiguous operations, or mark them as such, e.g. the normal `relativeTo` will error on such a case, but there could be `extendedRelativeTo` supporting that. -- (-) `..` are a part of paths, a path library should therefore support it. - - (+) If we can convincingly argue that all such use cases are better done e.g. with runtime tools, the library not supporting it can nudge people towards using those. -- (-) We could allow "..", but only in the prefix. - - (+) Then we'd have to throw an error for doing `append /some/path "../foo"`, making it non-composable. - - (+) The same is for returning paths with `..`: `relativeTo /foo /bar => "../bar"` would produce a non-composable path. -- (+) We argue that `..` is not needed at the Nix evaluation level, since we'd always start evaluation from the project root and don't go up from there. - - (+) `..` is supported in Nix paths, turning them into absolute paths. - - (-) This is ambiguous in the presence of symlinks. -- (+) If you need `..` for building or runtime, you can use build-/run-time tooling to create those (e.g. `realpath` with `--relative-to`), or use absolute paths instead. - This also gives you the ability to correctly handle symlinks. - -
- -### Trailing slashes -[trailing-slashes]: #trailing-slashes - -Observing: Subpaths can contain trailing slashes, like `foo/`, indicating that the path points to a directory and not a file. - -Considering: Paths should be as consistent as possible, there should only be a single normalisation for the same path. - -Decision: All functions remove trailing slashes in their results. - -
-Arguments - -- (+) It allows normalisations to be unique, in that there's only a single normalisation for the same path. If trailing slashes were preserved, both `foo/bar` and `foo/bar/` would be valid but different normalisations for the same path. -- Comparison to other frameworks to figure out the least surprising behavior: - - (+) Nix itself doesn't support trailing slashes when parsing and doesn't preserve them when appending paths. - - (-) [Rust's std::path](https://doc.rust-lang.org/std/path/index.html) does preserve them during [construction](https://doc.rust-lang.org/std/path/struct.Path.html#method.new). - - (+) Doesn't preserve them when returning individual [components](https://doc.rust-lang.org/std/path/struct.Path.html#method.components). - - (+) Doesn't preserve them when [canonicalizing](https://doc.rust-lang.org/std/path/struct.Path.html#method.canonicalize). - - (+) [Python 3's pathlib](https://docs.python.org/3/library/pathlib.html#module-pathlib) doesn't preserve them during [construction](https://docs.python.org/3/library/pathlib.html#pathlib.PurePath). - - Notably it represents the individual components as a list internally. - - (-) [Haskell's filepath](https://hackage.haskell.org/package/filepath-1.4.100.0) has [explicit support](https://hackage.haskell.org/package/filepath-1.4.100.0/docs/System-FilePath.html#g:6) for handling trailing slashes. - - (-) Does preserve them for [normalisation](https://hackage.haskell.org/package/filepath-1.4.100.0/docs/System-FilePath.html#v:normalise). - - (-) [NodeJS's Path library](https://nodejs.org/api/path.html) preserves trailing slashes for [normalisation](https://nodejs.org/api/path.html#pathnormalizepath). - - (+) For [parsing a path](https://nodejs.org/api/path.html#pathparsepath) into its significant elements, trailing slashes are not preserved. -- (+) Nix's builtin function `dirOf` gives an unexpected result for paths with trailing slashes: `dirOf "foo/bar/" == "foo/bar"`. - Inconsistently, `baseNameOf` works correctly though: `baseNameOf "foo/bar/" == "bar"`. - - (-) We are writing a path library to improve handling of paths though, so we shouldn't use these functions and discourage their use. -- (-) Unexpected result when normalising intermediate paths, like `relative.normalise ("foo" + "/") + "bar" == "foobar"`. - - (+) This is not a practical use case though. - - (+) Don't use `+` to append paths, this library has a `join` function for that. - - (-) Users might use `+` out of habit though. -- (+) The `realpath` command also removes trailing slashes. -- (+) Even with a trailing slash, the path is the same, it's only an indication that it's a directory. - -
- -### Prefer returning subpaths over components -[subpath-preference]: #prefer-returning-subpaths-over-components - -Observing: Functions could return subpaths or lists of path component strings. - -Considering: Subpaths are used as inputs for some functions. Using them for outputs, too, makes the library more consistent and composable. - -Decision: Subpaths should be preferred over list of path component strings. - -
-Arguments - -- (+) It is consistent with functions accepting subpaths, making the library more composable -- (-) It is less efficient when the components are needed, because after creating the normalised subpath string, it will have to be parsed into components again - - (+) If necessary, we can still make it faster by adding builtins to Nix - - (+) Alternatively if necessary, versions of these functions that return components could later still be introduced. -- (+) It makes the path library simpler because there's only two types (paths and subpaths). Only `lib.path.subpath.components` can be used to get a list of components. - And once we have a list of component strings, `lib.lists` and `lib.strings` can be used to operate on them. - For completeness, `lib.path.subpath.join` allows converting the list of components back to a subpath. -
- -## Other implementations and references - -- [Rust](https://doc.rust-lang.org/std/path/struct.Path.html) -- [Python](https://docs.python.org/3/library/pathlib.html) -- [Haskell](https://hackage.haskell.org/package/filepath-1.4.100.0/docs/System-FilePath.html) -- [Nodejs](https://nodejs.org/api/path.html) -- [POSIX.1-2017](https://pubs.opengroup.org/onlinepubs/9699919799/nframe.html) diff --git a/lib/path/default.nix b/lib/path/default.nix deleted file mode 100644 index e6b385c..0000000 --- a/lib/path/default.nix +++ /dev/null @@ -1,641 +0,0 @@ -/* Functions for working with path values. */ -# See ./README.md for internal docs -{ lib }: -let - - inherit (builtins) - isString - isPath - split - match - typeOf - storeDir - ; - - inherit (lib.lists) - length - head - last - genList - elemAt - all - concatMap - foldl' - take - drop - ; - - listHasPrefix = lib.lists.hasPrefix; - - inherit (lib.strings) - concatStringsSep - substring - ; - - inherit (lib.asserts) - assertMsg - ; - - 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 - "The given value is of type ${builtins.typeOf value}, but a string was expected" - else if value == "" then - "The given string is empty" - else if substring 0 1 value == "/" then - "The given string \"${value}\" starts with a `/`, representing an absolute path" - # 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; - - # Split and normalise a relative path string into its components. - # Error for ".." components and doesn't include "." components - splitRelPath = path: - let - # Split the string into its parts using regex for efficiency. This regex - # matches patterns like "/", "/./", "/././", with arbitrarily many "/"s - # together. These are the main special cases: - # - Leading "./" gets split into a leading "." part - # - Trailing "/." or "/" get split into a trailing "." or "" - # part respectively - # - # These are the only cases where "." and "" parts can occur - parts = split "/+(\\./+)*" path; - - # `split` creates a list of 2 * k + 1 elements, containing the k + - # 1 parts, interleaved with k matches where k is the number of - # (non-overlapping) matches. This calculation here gets the number of parts - # back from the list length - # floor( (2 * k + 1) / 2 ) + 1 == floor( k + 1/2 ) + 1 == k + 1 - partCount = length parts / 2 + 1; - - # To assemble the final list of components we want to: - # - Skip a potential leading ".", normalising "./foo" to "foo" - # - Skip a potential trailing "." or "", normalising "foo/" and "foo/." to - # "foo". See ./path.md#trailing-slashes - skipStart = if head parts == "." then 1 else 0; - skipEnd = if last parts == "." || last parts == "" then 1 else 0; - - # We can now know the length of the result by removing the number of - # skipped parts from the total number - 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 [] - - # 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: - # 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); - - # Type: Path -> { root :: Path, components :: [ String ] } - # - # Deconstruct a path value type into: - # - root: The filesystem root of the path, generally `/` - # - components: All the path's components - # - # This is similar to `splitString "/" (toString path)` but safer - # because it can distinguish different filesystem roots - deconstructPath = - let - 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 []; - - # The components of the store directory, typically [ "nix" "store" ] - storeDirComponents = splitRelPath ("./" + storeDir); - # The number of store directory components, typically 2 - storeDirLength = length storeDirComponents; - - # Type: [ String ] -> Bool - # - # 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: - # 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 - && storeDirComponents != components - # and the first component after the store directory has the expected format. - # NOTE: We could change the hash regex to be [0-9a-df-np-sv-z], - # because these are the actual ASCII characters used by Nix's base32 implementation, - # but this is not fully specified, so let's tie this too much to the currently implemented concept of store paths. - # Similar reasoning applies to the validity of the name part. - # 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. */ { - - /* - Append a subpath string to a path. - - Like `path + ("/" + string)` but safer, because it errors instead of returning potentially surprising results. - More specifically, it checks that the first argument is a [path value type](https://nixos.org/manual/nix/stable/language/values.html#type-path"), - and that the second argument is a [valid subpath string](#function-library-lib.path.subpath.isValid). - - Laws: - - - Not influenced by subpath [normalisation](#function-library-lib.path.subpath.normalise): - - append p s == append p (subpath.normalise s) - - Type: - append :: Path -> String -> Path - - Example: - append /foo "bar/baz" - => /foo/bar/baz - - # subpaths don't need to be normalised - append /foo "./bar//baz/./" - => /foo/bar/baz - - # can append to root directory - append /. "foo/bar" - => /foo/bar - - # first argument needs to be a path value type - append "/foo" "bar" - => - - # second argument needs to be a valid subpath string - append /foo /bar - => - append /foo "" - => - append /foo "/bar" - => - append /foo "../bar" - => - */ - append = - # The absolute path to append to - 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 (isValid subpath) '' - lib.path.append: Second argument is not a valid subpath string: - ${subpathInvalidReason subpath}''; - path + ("/" + subpath); - - /* - Whether the first path is a component-wise prefix of the second path. - - Laws: - - - `hasPrefix p q` is only true if [`q == append p s`](#function-library-lib.path.append) for some [subpath](#function-library-lib.path.subpath.isValid) `s`. - - - `hasPrefix` is a [non-strict partial order](https://en.wikipedia.org/wiki/Partially_ordered_set#Non-strict_partial_order) over the set of all path values. - - Type: - hasPrefix :: Path -> Path -> Bool - - Example: - hasPrefix /foo /foo/bar - => true - hasPrefix /foo /foo - => true - hasPrefix /foo/bar /foo - => false - hasPrefix /. /foo - => true - */ - hasPrefix = - 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; - - /* - Remove the first path as a component-wise prefix from the second path. - The result is a [normalised subpath string](#function-library-lib.path.subpath.normalise). - - Laws: - - - Inverts [`append`](#function-library-lib.path.append) for [normalised subpath string](#function-library-lib.path.subpath.normalise): - - removePrefix p (append p s) == subpath.normalise s - - Type: - removePrefix :: Path -> Path -> String - - Example: - removePrefix /foo /foo/bar/baz - => "./bar/baz" - removePrefix /foo /foo - => "./." - removePrefix /foo/bar /foo - => - removePrefix /. /foo - => "./foo" - */ - removePrefix = - 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; - - /* - Split the filesystem root from a [path](https://nixos.org/manual/nix/stable/language/values.html#type-path). - The result is an attribute set with these attributes: - - `root`: The filesystem root of the path, meaning that this directory has no parent directory. - - `subpath`: The [normalised subpath string](#function-library-lib.path.subpath.normalise) that when [appended](#function-library-lib.path.append) to `root` returns the original path. - - Laws: - - [Appending](#function-library-lib.path.append) the `root` and `subpath` gives the original path: - - p == - append - (splitRoot p).root - (splitRoot p).subpath - - - Trying to get the parent directory of `root` using [`readDir`](https://nixos.org/manual/nix/stable/language/builtins.html#builtins-readDir) returns `root` itself: - - dirOf (splitRoot p).root == (splitRoot p).root - - Type: - splitRoot :: Path -> { root :: Path, subpath :: String } - - Example: - splitRoot /foo/bar - => { root = /.; subpath = "./foo/bar"; } - - splitRoot /. - => { root = /.; subpath = "./."; } - - # Nix neutralises `..` path components for all path values automatically - splitRoot /foo/../bar - => { root = /.; subpath = "./bar"; } - - splitRoot "/foo/bar" - => - */ - splitRoot = - # The path to split the root off of - path: - assert assertMsg - (isPath path) - "lib.path.splitRoot: Argument is of type ${typeOf path}, but a path was expected"; - let - deconstructed = deconstructPath path; - in { - root = deconstructed.root; - subpath = joinRelPath deconstructed.components; - }; - - /* - Whether a [path](https://nixos.org/manual/nix/stable/language/values.html#type-path) - has a [store path](https://nixos.org/manual/nix/stable/store/store-path.html#store-path) - as a prefix. - - :::{.note} - As with all functions of this `lib.path` library, it does not work on paths in strings, - which is how you'd typically get store paths. - - Instead, this function only handles path values themselves, - which occur when Nix files in the store use relative path expressions. - ::: - - Type: - hasStorePathPrefix :: Path -> Bool - - Example: - # Subpaths of derivation outputs have a store path as a prefix - hasStorePathPrefix /nix/store/nvl9ic0pj1fpyln3zaqrf4cclbqdfn1j-foo/bar/baz - => true - - # The store directory itself is not a store path - hasStorePathPrefix /nix/store - => false - - # Derivation outputs are store paths themselves - hasStorePathPrefix /nix/store/nvl9ic0pj1fpyln3zaqrf4cclbqdfn1j-foo - => true - - # Paths outside the Nix store don't have a store path prefix - hasStorePathPrefix /home/user - => false - - # Not all paths under the Nix store are store paths - hasStorePathPrefix /nix/store/.links/10gg8k3rmbw8p7gszarbk7qyd9jwxhcfq9i6s5i0qikx8alkk4hq - => false - - # Store derivations are also store paths themselves - hasStorePathPrefix /nix/store/nvl9ic0pj1fpyln3zaqrf4cclbqdfn1j-foo.drv - => true - */ - hasStorePathPrefix = path: - let - deconstructed = deconstructPath path; - in - 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. - # Let's try to error nicely in such a case, though it's unclear how an implementation would work even and whether this could be detected. - # See also https://github.com/NixOS/nix/pull/6530#discussion_r1422843117 - (deconstructed.root == /. && toString deconstructed.root == "/") - "lib.path.hasStorePathPrefix: Argument has a filesystem root (${toString deconstructed.root}) that's not /, which is currently not supported."; - componentsHaveStorePathPrefix deconstructed.components; - - /* - Whether a value is a valid subpath string. - - A subpath string points to a specific file or directory within an absolute base directory. - It is a stricter form of a relative path that excludes `..` components, since those could escape the base directory. - - - The value is a string. - - - The string is not empty. - - - The string doesn't start with a `/`. - - - The string doesn't contain any `..` path components. - - Type: - subpath.isValid :: String -> Bool - - Example: - # Not a string - subpath.isValid null - => false - - # Empty string - subpath.isValid "" - => false - - # Absolute path - subpath.isValid "/foo" - => false - - # Contains a `..` path component - subpath.isValid "../foo" - => false - - # Valid subpath - subpath.isValid "foo/bar" - => true - - # Doesn't need to be normalised - subpath.isValid "./foo//bar/" - => true - */ - subpath.isValid = - # The value to check - value: - subpathInvalidReason value == null; - - - /* - Join subpath strings together using `/`, returning a normalised subpath string. - - Like `concatStringsSep "/"` but safer, specifically: - - - All elements must be [valid subpath strings](#function-library-lib.path.subpath.isValid). - - - The result gets [normalised](#function-library-lib.path.subpath.normalise). - - - The edge case of an empty list gets properly handled by returning the neutral subpath `"./."`. - - Laws: - - - Associativity: - - subpath.join [ x (subpath.join [ y z ]) ] == subpath.join [ (subpath.join [ x y ]) z ] - - - Identity - `"./."` is the neutral element for normalised paths: - - subpath.join [ ] == "./." - subpath.join [ (subpath.normalise p) "./." ] == subpath.normalise p - subpath.join [ "./." (subpath.normalise p) ] == subpath.normalise p - - - Normalisation - the result is [normalised](#function-library-lib.path.subpath.normalise): - - subpath.join ps == subpath.normalise (subpath.join ps) - - - For non-empty lists, the implementation is equivalent to [normalising](#function-library-lib.path.subpath.normalise) the result of `concatStringsSep "/"`. - Note that the above laws can be derived from this one: - - ps != [] -> subpath.join ps == subpath.normalise (concatStringsSep "/" ps) - - Type: - subpath.join :: [ String ] -> String - - Example: - subpath.join [ "foo" "bar/baz" ] - => "./foo/bar/baz" - - # normalise the result - subpath.join [ "./foo" "." "bar//./baz/" ] - => "./foo/bar/baz" - - # passing an empty list results in the current directory - subpath.join [ ] - => "./." - - # elements must be valid subpath strings - subpath.join [ /foo ] - => - subpath.join [ "" ] - => - subpath.join [ "/foo" ] - => - subpath.join [ "../foo" ] - => - */ - subpath.join = - # The list of subpaths to join together - subpaths: - # Fast in case all paths are valid - 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}'' - ) 0 subpaths; - - /* - Split [a subpath](#function-library-lib.path.subpath.isValid) into its path component strings. - Throw an error if the subpath isn't valid. - Note that the returned path components are also [valid subpath strings](#function-library-lib.path.subpath.isValid), though they are intentionally not [normalised](#function-library-lib.path.subpath.normalise). - - Laws: - - - Splitting a subpath into components and [joining](#function-library-lib.path.subpath.join) the components gives the same subpath but [normalised](#function-library-lib.path.subpath.normalise): - - subpath.join (subpath.components s) == subpath.normalise s - - Type: - subpath.components :: String -> [ String ] - - Example: - subpath.components "." - => [ ] - - subpath.components "./foo//bar/./baz/" - => [ "foo" "bar" "baz" ] - - subpath.components "/foo" - => - */ - subpath.components = - # The subpath string to split into components - subpath: - assert assertMsg (isValid subpath) '' - lib.path.subpath.components: Argument is not a valid subpath string: - ${subpathInvalidReason subpath}''; - splitRelPath subpath; - - /* - Normalise a subpath. Throw an error if the subpath isn't [valid](#function-library-lib.path.subpath.isValid). - - - Limit repeating `/` to a single one. - - - Remove redundant `.` components. - - - Remove trailing `/` and `/.`. - - - Add leading `./`. - - Laws: - - - Idempotency - normalising multiple times gives the same result: - - subpath.normalise (subpath.normalise p) == subpath.normalise p - - - Uniqueness - there's only a single normalisation for the paths that lead to the same file system node: - - subpath.normalise p != subpath.normalise q -> $(realpath ${p}) != $(realpath ${q}) - - - Don't change the result when [appended](#function-library-lib.path.append) to a Nix path value: - - append base p == append base (subpath.normalise p) - - - Don't change the path according to `realpath`: - - $(realpath ${p}) == $(realpath ${subpath.normalise p}) - - - Only error on [invalid subpaths](#function-library-lib.path.subpath.isValid): - - builtins.tryEval (subpath.normalise p)).success == subpath.isValid p - - Type: - subpath.normalise :: String -> String - - Example: - # limit repeating `/` to a single one - subpath.normalise "foo//bar" - => "./foo/bar" - - # remove redundant `.` components - subpath.normalise "foo/./bar" - => "./foo/bar" - - # add leading `./` - subpath.normalise "foo/bar" - => "./foo/bar" - - # remove trailing `/` - subpath.normalise "foo/bar/" - => "./foo/bar" - - # remove trailing `/.` - subpath.normalise "foo/bar/." - => "./foo/bar" - - # Return the current directory as `./.` - subpath.normalise "." - => "./." - - # error on `..` path components - subpath.normalise "foo/../bar" - => - - # error on empty string - subpath.normalise "" - => - - # error on absolute path - subpath.normalise "/foo" - => - */ - subpath.normalise = - # The subpath string to normalise - subpath: - assert assertMsg (isValid subpath) '' - lib.path.subpath.normalise: Argument is not a valid subpath string: - ${subpathInvalidReason subpath}''; - joinRelPath (splitRelPath subpath); - -} diff --git a/lib/path/tests/default.nix b/lib/path/tests/default.nix deleted file mode 100644 index 93aea79..0000000 --- a/lib/path/tests/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ - nixpkgs ? ../../.., - system ? builtins.currentSystem, - pkgs ? import nixpkgs { - config = {}; - overlays = []; - inherit system; - }, - nixVersions ? import ../../tests/nix-for-tests.nix { inherit pkgs; }, - libpath ? ../.., - # Random seed - 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 - - 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 property tests lib/path/tests/prop.sh" - bash lib/path/tests/prop.sh ${toString seed} - - touch $out -'' diff --git a/lib/path/tests/generate.awk b/lib/path/tests/generate.awk deleted file mode 100644 index 811dd0c..0000000 --- a/lib/path/tests/generate.awk +++ /dev/null @@ -1,64 +0,0 @@ -# Generate random path-like strings, separated by null characters. -# -# Invocation: -# -# awk -f ./generate.awk -v = | tr '\0' '\n' -# -# Customizable variables (all default to 0): -# - seed: Deterministic random seed to use for generation -# - count: Number of paths to generate -# - extradotweight: Give extra weight to dots being generated -# - extraslashweight: Give extra weight to slashes being generated -# - extranullweight: Give extra weight to null being generated, making paths shorter -BEGIN { - # Random seed, passed explicitly for reproducibility - srand(seed) - - # Don't include special characters below 32 - minascii = 32 - # Don't include DEL at 128 - maxascii = 127 - upperascii = maxascii - minascii - - # add extra weight for ., in addition to the one weight from the ascii range - upperdot = upperascii + extradotweight - - # add extra weight for /, in addition to the one weight from the ascii range - upperslash = upperdot + extraslashweight - - # add extra weight for null, indicating the end of the string - # Must be at least 1 to have strings end at all - total = upperslash + 1 + extranullweight - - # new=1 indicates that it's a new string - new=1 - while (count > 0) { - - # Random integer between [0, total) - value = int(rand() * total) - - if (value < upperascii) { - # Ascii range - printf("%c", value + minascii) - new=0 - - } else if (value < upperdot) { - # Dot range - printf "." - new=0 - - } else if (value < upperslash) { - # If it's the start of a new path, only generate a / in 10% of cases - # This is always an invalid subpath, which is not a very interesting case - if (new && rand() > 0.1) continue - printf "/" - - } else { - # Do not generate empty strings - if (new) continue - printf "\x00" - count-- - new=1 - } - } -} diff --git a/lib/path/tests/prop.nix b/lib/path/tests/prop.nix deleted file mode 100644 index 67e5c1e..0000000 --- a/lib/path/tests/prop.nix +++ /dev/null @@ -1,60 +0,0 @@ -# Given a list of path-like strings, check some properties of the path library -# using those paths and return a list of attribute sets of the following form: -# -# { = ; } -# -# If `normalise` fails to evaluate, the attribute value is set to `""`. -# If not, the resulting value is normalised again and an appropriate attribute set added to the output list. -{ - # The path to the nixpkgs lib to use - libpath, - # A flat directory containing files with randomly-generated - # path-like values - dir, -}: -let - lib = import libpath; - - # read each file into a string - strings = map (name: - builtins.readFile (dir + "/${name}") - ) (builtins.attrNames (builtins.readDir dir)); - - inherit (lib.path.subpath) normalise isValid; - inherit (lib.asserts) assertMsg; - - normaliseAndCheck = str: - let - originalValid = isValid str; - - tryOnce = builtins.tryEval (normalise str); - tryTwice = builtins.tryEval (normalise tryOnce.value); - - 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 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}\""; - - # Return an empty string when failed - if tryOnce.success then tryOnce.value else ""; - -in lib.genAttrs strings normaliseAndCheck diff --git a/lib/path/tests/prop.sh b/lib/path/tests/prop.sh deleted file mode 100755 index f321fdf..0000000 --- a/lib/path/tests/prop.sh +++ /dev/null @@ -1,182 +0,0 @@ -#!/usr/bin/env bash - -# Property tests for lib/path/default.nix -# It generates random path-like strings and runs the functions on -# them, checking that the expected laws of the functions hold -# Run: -# [nixpkgs]$ lib/path/tests/prop.sh -# or: -# [nixpkgs]$ nix-build lib/tests/release.nix - -set -euo pipefail -shopt -s inherit_errexit - -# https://stackoverflow.com/a/246128 -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) - -if test -z "${TEST_LIB:-}"; then - TEST_LIB=$SCRIPT_DIR/../.. -fi - -tmp="$(mktemp -d)" -clean_up() { - rm -rf "$tmp" -} -trap clean_up EXIT -mkdir -p "$tmp/work" -cd "$tmp/work" - -# Defaulting to a random seed but the first argument can override this -seed=${1:-$RANDOM} -echo >&2 "Using seed $seed, use \`lib/path/tests/prop.sh $seed\` to reproduce this result" - -# The number of random paths to generate. This specific number was chosen to -# be fast enough while still generating enough variety to detect bugs. -count=500 - -debug=0 -# debug=1 # print some extra info -# debug=2 # print generated values - -# Fine tuning parameters to balance the number of generated invalid paths -# to the variance in generated paths. -extradotweight=64 # Larger value: more dots -extraslashweight=64 # Larger value: more slashes -extranullweight=16 # Larger value: shorter strings - -die() { - echo >&2 "test case failed: " "$@" - exit 1 -} - -if [[ "$debug" -ge 1 ]]; then - echo >&2 "Generating $count random path-like strings" -fi - -# Read stream of null-terminated strings entry-by-entry into bash, -# write it to a file and the `strings` array. -declare -a strings=() -mkdir -p "$tmp/strings" -while IFS= read -r -d $'\0' str; do - printf "%s" "$str" > "$tmp/strings/${#strings[@]}" - strings+=("$str") -done < <(awk \ - -f "$SCRIPT_DIR"/generate.awk \ - -v seed="$seed" \ - -v count="$count" \ - -v extradotweight="$extradotweight" \ - -v extraslashweight="$extraslashweight" \ - -v extranullweight="$extranullweight") - -if [[ "$debug" -ge 1 ]]; then - echo >&2 "Trying to normalise the generated path-like strings with Nix" -fi - -# Precalculate all normalisations with a single Nix call. Calling Nix for each -# string individually would take way too long -nix-instantiate --eval --strict --json --show-trace \ - --argstr libpath "$TEST_LIB" \ - --argstr dir "$tmp/strings" \ - "$SCRIPT_DIR"/prop.nix \ - >"$tmp/result.json" - -# Uses some jq magic to turn the resulting attribute set into an associative -# bash array assignment -declare -A normalised_result="($(jq ' - to_entries - | map("[\(.key | @sh)]=\(.value | @sh)") - | join(" \n")' -r < "$tmp/result.json"))" - -# Looks up a normalisation result for a string -# Checks that the normalisation is only failing iff it's an invalid subpath -# For valid subpaths, returns 0 and prints the normalisation result -# For invalid subpaths, returns 1 -normalise() { - local str=$1 - # Uses the same check for validity as in the library implementation - if [[ "$str" == "" || "$str" == /* || "$str" =~ ^(.*/)?\.\.(/.*)?$ ]]; then - valid= - else - valid=1 - fi - - normalised=${normalised_result[$str]} - # An empty string indicates failure, this is encoded in ./prop.nix - if [[ -n "$normalised" ]]; then - if [[ -n "$valid" ]]; then - echo "$normalised" - else - die "For invalid subpath \"$str\", lib.path.subpath.normalise returned this result: \"$normalised\"" - fi - else - if [[ -n "$valid" ]]; then - die "For valid subpath \"$str\", lib.path.subpath.normalise failed" - else - if [[ "$debug" -ge 2 ]]; then - echo >&2 "String \"$str\" is not a valid subpath" - fi - # Invalid and it correctly failed, we let the caller continue if they catch the exit code - return 1 - fi - fi -} - -# Intermediate result populated by test_idempotency_realpath -# and used in test_normalise_uniqueness -# -# Contains a mapping from a normalised subpath to the realpath result it represents -declare -A norm_to_real - -test_idempotency_realpath() { - if [[ "$debug" -ge 1 ]]; then - echo >&2 "Checking idempotency of each result and making sure the realpath result isn't changed" - fi - - # Count invalid subpaths to display stats - invalid=0 - for str in "${strings[@]}"; do - if ! result=$(normalise "$str"); then - ((invalid++)) || true - continue - fi - - # Check the law that it doesn't change the result of a realpath - mkdir -p -- "$str" "$result" - real_orig=$(realpath -- "$str") - real_norm=$(realpath -- "$result") - - if [[ "$real_orig" != "$real_norm" ]]; then - die "realpath of the original string \"$str\" (\"$real_orig\") is not the same as realpath of the normalisation \"$result\" (\"$real_norm\")" - fi - - if [[ "$debug" -ge 2 ]]; then - echo >&2 "String \"$str\" gets normalised to \"$result\" and file path \"$real_orig\"" - fi - norm_to_real["$result"]="$real_orig" - done - if [[ "$debug" -ge 1 ]]; then - echo >&2 "$(bc <<< "scale=1; 100 / $count * $invalid")% of the total $count generated strings were invalid subpath strings, and were therefore ignored" - fi -} - -test_normalise_uniqueness() { - if [[ "$debug" -ge 1 ]]; then - echo >&2 "Checking for the uniqueness law" - fi - - for norm_p in "${!norm_to_real[@]}"; do - real_p=${norm_to_real["$norm_p"]} - for norm_q in "${!norm_to_real[@]}"; do - real_q=${norm_to_real["$norm_q"]} - # Checks normalisation uniqueness law for each pair of values - if [[ "$norm_p" != "$norm_q" && "$real_p" == "$real_q" ]]; then - die "Normalisations \"$norm_p\" and \"$norm_q\" are different, but the realpath of them is the same: \"$real_p\"" - fi - done - done -} - -test_idempotency_realpath -test_normalise_uniqueness - -echo >&2 tests ok diff --git a/lib/path/tests/unit.nix b/lib/path/tests/unit.nix deleted file mode 100644 index 9b0a0b2..0000000 --- a/lib/path/tests/unit.nix +++ /dev/null @@ -1,285 +0,0 @@ -# Unit tests for lib.path functions. Use `nix-build` in this directory to -# run these -{ libpath }: -let - lib = import libpath; - 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; - - cases = lib.runTests { - # Test examples from the lib.path.append documentation - testAppendExample1 = { - expr = append /foo "bar/baz"; - expected = /foo/bar/baz; - }; - testAppendExample2 = { - expr = append /foo "./bar//baz/./"; - expected = /foo/bar/baz; - }; - testAppendExample3 = { - expr = append /. "foo/bar"; - expected = /foo/bar; - }; - testAppendExample4 = { - expr = (builtins.tryEval (append "/foo" "bar")).success; - expected = false; - }; - testAppendExample5 = { - expr = (builtins.tryEval (append /foo /bar)).success; - expected = false; - }; - testAppendExample6 = { - expr = (builtins.tryEval (append /foo "")).success; - expected = false; - }; - testAppendExample7 = { - expr = (builtins.tryEval (append /foo "/bar")).success; - expected = false; - }; - testAppendExample8 = { - expr = (builtins.tryEval (append /foo "../bar")).success; - expected = false; - }; - - testHasPrefixExample1 = { - expr = hasPrefix /foo /foo/bar; - expected = true; - }; - testHasPrefixExample2 = { - expr = hasPrefix /foo /foo; - expected = true; - }; - testHasPrefixExample3 = { - expr = hasPrefix /foo/bar /foo; - expected = false; - }; - testHasPrefixExample4 = { - expr = hasPrefix /. /foo; - expected = true; - }; - - testRemovePrefixExample1 = { - expr = removePrefix /foo /foo/bar/baz; - expected = "./bar/baz"; - }; - testRemovePrefixExample2 = { - expr = removePrefix /foo /foo; - expected = "./."; - }; - testRemovePrefixExample3 = { - expr = (builtins.tryEval (removePrefix /foo/bar /foo)).success; - expected = false; - }; - testRemovePrefixExample4 = { - expr = removePrefix /. /foo; - expected = "./foo"; - }; - - testSplitRootExample1 = { - expr = splitRoot /foo/bar; - expected = { root = /.; subpath = "./foo/bar"; }; - }; - testSplitRootExample2 = { - expr = splitRoot /.; - expected = { root = /.; subpath = "./."; }; - }; - testSplitRootExample3 = { - expr = splitRoot /foo/../bar; - expected = { root = /.; subpath = "./bar"; }; - }; - testSplitRootExample4 = { - expr = (builtins.tryEval (splitRoot "/foo/bar")).success; - expected = false; - }; - - testHasStorePathPrefixExample1 = { - expr = hasStorePathPrefix (storeDirPath + "/nvl9ic0pj1fpyln3zaqrf4cclbqdfn1j-foo/bar/baz"); - expected = true; - }; - testHasStorePathPrefixExample2 = { - expr = hasStorePathPrefix storeDirPath; - expected = false; - }; - testHasStorePathPrefixExample3 = { - expr = hasStorePathPrefix (storeDirPath + "/nvl9ic0pj1fpyln3zaqrf4cclbqdfn1j-foo"); - expected = true; - }; - testHasStorePathPrefixExample4 = { - expr = hasStorePathPrefix /home/user; - expected = false; - }; - testHasStorePathPrefixExample5 = { - expr = hasStorePathPrefix (storeDirPath + "/.links/10gg8k3rmbw8p7gszarbk7qyd9jwxhcfq9i6s5i0qikx8alkk4hq"); - expected = false; - }; - testHasStorePathPrefixExample6 = { - expr = hasStorePathPrefix (storeDirPath + "/nvl9ic0pj1fpyln3zaqrf4cclbqdfn1j-foo.drv"); - expected = true; - }; - - # Test examples from the lib.path.subpath.isValid documentation - testSubpathIsValidExample1 = { - expr = subpath.isValid null; - expected = false; - }; - testSubpathIsValidExample2 = { - expr = subpath.isValid ""; - expected = false; - }; - testSubpathIsValidExample3 = { - expr = subpath.isValid "/foo"; - expected = false; - }; - testSubpathIsValidExample4 = { - expr = subpath.isValid "../foo"; - expected = false; - }; - testSubpathIsValidExample5 = { - expr = subpath.isValid "foo/bar"; - expected = true; - }; - testSubpathIsValidExample6 = { - expr = subpath.isValid "./foo//bar/"; - expected = true; - }; - # Some extra tests - testSubpathIsValidTwoDotsEnd = { - expr = subpath.isValid "foo/.."; - expected = false; - }; - testSubpathIsValidTwoDotsMiddle = { - expr = subpath.isValid "foo/../bar"; - expected = false; - }; - testSubpathIsValidTwoDotsPrefix = { - expr = subpath.isValid "..foo"; - expected = true; - }; - testSubpathIsValidTwoDotsSuffix = { - expr = subpath.isValid "foo.."; - expected = true; - }; - testSubpathIsValidTwoDotsPrefixComponent = { - expr = subpath.isValid "foo/..bar/baz"; - expected = true; - }; - testSubpathIsValidTwoDotsSuffixComponent = { - expr = subpath.isValid "foo/bar../baz"; - expected = true; - }; - testSubpathIsValidThreeDots = { - expr = subpath.isValid "..."; - expected = true; - }; - testSubpathIsValidFourDots = { - expr = subpath.isValid "...."; - expected = true; - }; - testSubpathIsValidThreeDotsComponent = { - expr = subpath.isValid "foo/.../bar"; - expected = true; - }; - testSubpathIsValidFourDotsComponent = { - expr = subpath.isValid "foo/..../bar"; - expected = true; - }; - - # Test examples from the lib.path.subpath.join documentation - testSubpathJoinExample1 = { - expr = subpath.join [ "foo" "bar/baz" ]; - expected = "./foo/bar/baz"; - }; - testSubpathJoinExample2 = { - expr = subpath.join [ "./foo" "." "bar//./baz/" ]; - expected = "./foo/bar/baz"; - }; - testSubpathJoinExample3 = { - expr = subpath.join [ ]; - expected = "./."; - }; - testSubpathJoinExample4 = { - expr = (builtins.tryEval (subpath.join [ /foo ])).success; - expected = false; - }; - testSubpathJoinExample5 = { - expr = (builtins.tryEval (subpath.join [ "" ])).success; - expected = false; - }; - testSubpathJoinExample6 = { - expr = (builtins.tryEval (subpath.join [ "/foo" ])).success; - expected = false; - }; - testSubpathJoinExample7 = { - expr = (builtins.tryEval (subpath.join [ "../foo" ])).success; - expected = false; - }; - - # Test examples from the lib.path.subpath.normalise documentation - testSubpathNormaliseExample1 = { - expr = subpath.normalise "foo//bar"; - expected = "./foo/bar"; - }; - testSubpathNormaliseExample2 = { - expr = subpath.normalise "foo/./bar"; - expected = "./foo/bar"; - }; - testSubpathNormaliseExample3 = { - expr = subpath.normalise "foo/bar"; - expected = "./foo/bar"; - }; - testSubpathNormaliseExample4 = { - expr = subpath.normalise "foo/bar/"; - expected = "./foo/bar"; - }; - testSubpathNormaliseExample5 = { - expr = subpath.normalise "foo/bar/."; - expected = "./foo/bar"; - }; - testSubpathNormaliseExample6 = { - expr = subpath.normalise "."; - expected = "./."; - }; - testSubpathNormaliseExample7 = { - expr = (builtins.tryEval (subpath.normalise "foo/../bar")).success; - expected = false; - }; - testSubpathNormaliseExample8 = { - expr = (builtins.tryEval (subpath.normalise "")).success; - expected = false; - }; - testSubpathNormaliseExample9 = { - expr = (builtins.tryEval (subpath.normalise "/foo")).success; - expected = false; - }; - # Some extra tests - testSubpathNormaliseIsValidDots = { - expr = subpath.normalise "./foo/.bar/.../baz...qux"; - expected = "./foo/.bar/.../baz...qux"; - }; - testSubpathNormaliseWrongType = { - expr = (builtins.tryEval (subpath.normalise null)).success; - expected = false; - }; - testSubpathNormaliseTwoDots = { - expr = (builtins.tryEval (subpath.normalise "..")).success; - expected = false; - }; - - testSubpathComponentsExample1 = { - expr = subpath.components "."; - expected = [ ]; - }; - testSubpathComponentsExample2 = { - expr = subpath.components "./foo//bar/./baz/"; - expected = [ "foo" "bar" "baz" ]; - }; - testSubpathComponentsExample3 = { - expr = (builtins.tryEval (subpath.components "/foo")).success; - expected = false; - }; - }; -in - 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 deleted file mode 100644 index c4f263d..0000000 --- a/lib/source-types.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ lib }: - -let - defaultSourceType = tname: { - shortName = tname; - isSource = false; - }; -in lib.mapAttrs (tname: tset: defaultSourceType tname // tset) { - - fromSource = { - isSource = true; - }; - - binaryNativeCode = {}; - - binaryBytecode = {}; - - binaryFirmware = {}; -} diff --git a/lib/sources.nix b/lib/sources.nix deleted file mode 100644 index f61ea30..0000000 --- a/lib/sources.nix +++ /dev/null @@ -1,286 +0,0 @@ -/* Functions for copying sources to the Nix store. */ -{ lib }: - -# Tested in lib/tests/sources.sh -let - inherit (builtins) - match - split - storeDir - ; - inherit (lib) - boolToString - filter - isString - readFile - ; - 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 || - - # 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. - - Example: - cleanSource ./. - */ - cleanSource = src: cleanSourceWith { filter = cleanSourceFilter; inherit src; }; - - /* - Like `builtins.filterSource`, except it will compose with itself, - allowing you to chain multiple calls together without any - intermediate copies being put in the nix store. - - Example: - lib.cleanSourceWith { - filter = f; - src = lib.cleanSourceWith { - filter = g; - src = ./.; - }; - } - # Succeeds! - - builtins.filterSource f (builtins.filterSource g ./.) - # Fails! - - */ - cleanSourceWith = - { - # A path or cleanSourceWith result to filter and/or rename. - src, - # Optional with default value: constant true (include everything) - # The function will be combined with the && operator such - # that src.filter is called lazily. - # For implementing a filter, see - # https://nixos.org/nix/manual/#builtin-filterSource - # Type: A function (path -> type -> bool) - filter ? _path: _type: true, - # Optional name to use as part of the store path. - # This defaults to `src.name` or otherwise `"source"`. - name ? null - }: - let - orig = toSourceAttributes src; - in fromSourceAttributes { - inherit (orig) origSrc; - filter = path: type: filter path type && orig.filter path type; - name = if name != null then name else orig.name; - }; - - /* - Add logging to a source, for troubleshooting the filtering behavior. - Type: - sources.trace :: sourceLike -> Source - */ - trace = - # Source to debug. The returned source will behave like this source, but also log its filter invocations. - src: - 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; - }; - - /* - Filter sources by a list of regular expressions. - - Example: src = sourceByRegex ./my-subproject [".*\.py$" "^database.sql$"] - */ - 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); - inherit src; - }; - - /* - Get all files ending with the specified suffices from the given - source directory or its descendants, omitting files that do not match - any suffix. The result of the example below will include files like - `./dir/module.c` and `./dir/subdir/doc.xml` if present. - - Type: sourceLike -> [String] -> Source - - Example: - sourceFilesBySuffices ./. [ ".xml" ".c" ] - */ - sourceFilesBySuffices = - # Path or source containing the files to be returned - 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; }; - - 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); - - # Get the commit id of a git repo. - - # Returns `{ value = commitHash }` or `{ error = "... message ..." }`. - - # 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 - - 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 { error = "Not a .git directory: " + toString path; }; - in readCommitFromFile "HEAD"; - - pathHasContext = builtins.hasContext or (lib.hasPrefix storeDir); - - canCleanSource = src: src ? _isLibCleanSourceWith || !(pathHasContext (toString src)); - - # -------------------------------------------------------------------------- # - # Internal functions - # - - # toSourceAttributes : sourceLike -> SourceAttrs - # - # Convert any source-like object into a simple, singular representation. - # We don't expose this representation in order to avoid having a fifth path- - # 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: - let - isFiltered = src ? _isLibCleanSourceWith; - in - { - # The original path - origSrc = if isFiltered then src.origSrc else src; - filter = if isFiltered then src.filter else _: _: true; - name = if isFiltered then src.name else "source"; - }; - - # fromSourceAttributes : SourceAttrs -> Source - # - # Inverse of toSourceAttributes for Source objects. - fromSourceAttributes = { origSrc, filter, name }: - { - _isLibCleanSourceWith = true; - inherit origSrc filter name; - outPath = builtins.path { inherit filter name; path = origSrc; }; - }; - -in { - - 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; - - pathIsRegularFile = lib.warnIf (lib.isInOldestRelease 2305) - "lib.sources.pathIsRegularFile has been moved to lib.filesystem.pathIsRegularFile." - lib.filesystem.pathIsRegularFile; - - inherit - pathIsGitRepo - commitIdFromGitRepo - - cleanSource - cleanSourceWith - cleanSourceFilter - pathHasContext - canCleanSource - - sourceByRegex - sourceFilesBySuffices - - trace - ; -} diff --git a/lib/strings-with-deps.nix b/lib/strings-with-deps.nix deleted file mode 100644 index 7b88b01..0000000 --- a/lib/strings-with-deps.nix +++ /dev/null @@ -1,84 +0,0 @@ -{ lib }: -/* -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]); - - 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 - - Attention: - - 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"]; - - 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",[]) - - [1] maybe this behaviour should be removed to keep things simple (?) -*/ - -let - inherit (lib) - concatStringsSep - head - isAttrs - listToAttrs - tail - ; -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. */ - - textClosureList = predefined: arg: - let - f = done: todo: - if todo == [] then {result = []; inherit done;} - else - 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; - - 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="";}; - - stringAfter = deps: text: { inherit text deps; }; - -} diff --git a/lib/strings.nix b/lib/strings.nix deleted file mode 100644 index 67bb669..0000000 --- a/lib/strings.nix +++ /dev/null @@ -1,1341 +0,0 @@ -/* String manipulation functions. */ -{ lib }: -let - - inherit (builtins) length; - - inherit (lib.trivial) warnIf; - -asciiTable = import ./ascii-table.nix; - -in - -rec { - - inherit (builtins) - compareVersions - elem - elemAt - filter - fromJSON - genList - head - isInt - isList - isAttrs - isPath - isString - match - parseDrvName - readFile - replaceStrings - split - storeDir - stringLength - substring - tail - toJSON - typeOf - unsafeDiscardStringContext - ; - - /* Concatenate a list of strings. - - Type: concatStrings :: [string] -> string - - Example: - concatStrings ["foo" "bar"] - => "foobar" - */ - concatStrings = builtins.concatStringsSep ""; - - /* Map a function over a list and concatenate the resulting strings. - - Type: concatMapStrings :: (a -> string) -> [a] -> string - - Example: - concatMapStrings (x: "a" + x) ["foo" "bar"] - => "afooabar" - */ - concatMapStrings = f: list: concatStrings (map f list); - - /* Like `concatMapStrings` except that the f functions also gets the - position as a parameter. - - Type: concatImapStrings :: (int -> a -> string) -> [a] -> string - - 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 - - Type: intersperse :: a -> [a] -> [a] - - 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); - - /* Concatenate a list of strings with a separator between each element - - Type: concatStringsSep :: string -> [string] -> string - - 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. - - Type: concatMapStringsSep :: string -> (a -> string) -> [a] -> string - - Example: - concatMapStringsSep "-" (x: toUpper x) ["foo" "bar" "baz"] - => "FOO-BAR-BAZ" - */ - concatMapStringsSep = - # Separator to add between elements - sep: - # Function to map over the list - f: - # List of input strings - list: concatStringsSep sep (map f list); - - /* Same as `concatMapStringsSep`, but the mapping function - additionally receives the position of its argument. - - Type: concatIMapStringsSep :: string -> (int -> a -> string) -> [a] -> string - - Example: - concatImapStringsSep "-" (pos: x: toString (x / pos)) [ 6 6 6 ] - => "6-3-2" - */ - concatImapStringsSep = - # Separator to add between elements - sep: - # Function that receives elements and their positions - f: - # List of input strings - 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")`. - - Type: concatLines :: [string] -> string - - Example: - concatLines [ "foo" "bar" ] - => "foo\nbar\n" - */ - concatLines = concatMapStrings (s: s + "\n"); - - /* - Replicate a string n times, - and concatenate the parts into a new string. - - Type: replicate :: int -> string -> string - - Example: - replicate 3 "v" - => "vvv" - replicate 5 "hello" - => "hellohellohellohellohello" - */ - 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. - - Type: makeSearchPath :: string -> [string] -> string - - Example: - makeSearchPath "bin" ["/root" "/usr" "/usr/local"] - => "/root/bin:/usr/bin:/usr/local/bin" - makeSearchPath "bin" [""] - => "/bin" - */ - makeSearchPath = - # Directory name to append - subDir: - # List of base paths - 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. - - 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" - */ - makeSearchPathOutput = - # Package output to use - output: - # Directory name to append - subDir: - # List of packages - pkgs: makeSearchPath subDir (map (lib.getOutput output) pkgs); - - /* 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" - */ - 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. - - 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. - - Example: - makeBinPath ["/root" "/usr" "/usr/local"] - => "/root/bin:/usr/bin:/usr/local/bin" - */ - makeBinPath = makeSearchPathOutput "bin" "bin"; - - /* Normalize path, removing extraneous /s - - Type: normalizePath :: string -> string - - Example: - normalizePath "/a//b///c/" - => "/a/b/c/" - */ - 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) - ); - - /* 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 - - 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 ""; - - /* Determine whether a string has given prefix. - - Type: hasPrefix :: string -> string -> bool - - Example: - hasPrefix "foo" "foobar" - => true - hasPrefix "foo" "barfoo" - => false - */ - hasPrefix = - # Prefix to check for - pref: - # Input string - 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) - '' - 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. - 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. - 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. - - Type: hasSuffix :: string -> string -> bool - - Example: - hasSuffix "foo" "foobar" - => false - hasSuffix "foo" "barfoo" - => true - */ - hasSuffix = - # Suffix to check for - suffix: - # Input string - content: - let - lenContent = stringLength content; - lenSuffix = stringLength suffix; - 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) - '' - 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 - ); - - /* Determine whether a string contains the given infix - - Type: hasInfix :: string -> string -> bool - - Example: - hasInfix "bc" "abcd" - => true - hasInfix "ab" "abcd" - => true - hasInfix "cd" "abcd" - => true - hasInfix "foo" "abcd" - => false - */ - 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) - '' - 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. - 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.'' - (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. - - Type: stringToCharacters :: string -> [string] - - Example: - stringToCharacters "" - => [ ] - stringToCharacters "abc" - => [ "a" "b" "c" ] - stringToCharacters "🦄" - => [ "�" "�" "�" "�" ] - */ - 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. - - Type: stringAsChars :: (string -> string) -> string -> string - - 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) - ); - - /* Convert char to ascii value, must be in printable range - - 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. - - Type: escape :: [string] -> string -> string - - 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. - - Type: escapeC = [string] -> string -> string - - Example: - escapeC [" "] "foo bar" - => "foo\\x20bar" - - */ - 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. - - Type: escapeURL :: string -> string - - 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); - - /* Quote string to be used safely within the Bourne shell. - - Type: escapeShellArg :: string -> string - - Example: - escapeShellArg "esc'ape\nme" - => "'esc'\\''ape\nme'" - */ - escapeShellArg = arg: "'${replaceStrings ["'"] ["'\\''"] (toString arg)}'"; - - /* Quote all arguments to be safely passed to the Bourne shell. - - Type: escapeShellArgs :: [string] -> string - - 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. - - Type: string -> bool - - 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. - - 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). - - Type: string -> (string | listOf string | attrsOf string) -> string - - Example: - '' - ${toShellVar "foo" "some string"} - [[ "$foo" == "some string" ]] - '' - */ - 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}" - ); - - /* Translate an attribute set into corresponding shell variable declarations - using `toShellVar`. - - Type: attrsOf (string | listOf string | attrsOf string) -> string - - 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 - - Type: string -> string - - Example: - escapeNixString "hello\${}\n" - => "\"hello\\\${}\\n\"" - */ - escapeNixString = s: escape ["$"] (toJSON s); - - /* Turn a string into an exact regular expression - - Type: string -> string - - Example: - escapeRegex "[^a-z]*" - => "\\[\\^a-z]\\*" - */ - escapeRegex = escape (stringToCharacters "\\[{()^$?*+|."); - - /* Quotes a string if it can't be used as an identifier directly. - - Type: string -> string - - Example: - escapeNixIdentifier "hello" - => "hello" - escapeNixIdentifier "0abc" - => "\"0abc\"" - */ - 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; - - /* Escapes a string such that it is safe to include verbatim in an XML - document. - - Type: string -> string - - Example: - escapeXML ''"test" 'test' < & >'' - => ""test" 'test' < & >" - */ - escapeXML = builtins.replaceStrings - ["\"" "'" "<" ">" "&"] - [""" "'" "<" ">" "&"]; - - # warning added 12-12-2022 - replaceChars = lib.warn "lib.replaceChars is a deprecated alias of lib.replaceStrings." builtins.replaceStrings; - - # Case conversion utilities. - lowerChars = stringToCharacters "abcdefghijklmnopqrstuvwxyz"; - upperChars = stringToCharacters "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - - /* Converts an ASCII string to lower-case. - - Type: toLower :: string -> string - - Example: - toLower "HOME" - => "home" - */ - toLower = replaceStrings upperChars lowerChars; - - /* Converts an ASCII string to upper-case. - - Type: toUpper :: string -> string - - 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. - - 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" - */ - 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. - - Example: - splitString "." "foo.bar.baz" - => [ "foo" "bar" "baz" ] - splitString "/" "/usr/local/bin" - => [ "" "usr" "local" "bin" ] - */ - splitString = sep: s: - let - splits = builtins.filter builtins.isString (builtins.split (escapeRegex (toString sep)) (toString s)); - in - map (addContextFrom s) splits; - - /* Return a string without the specified prefix, if the prefix matches. - - Type: string -> string -> string - - Example: - removePrefix "foo." "foo.bar.baz" - => "bar.baz" - removePrefix "xxx" "foo.bar.baz" - => "foo.bar.baz" - */ - removePrefix = - # Prefix to remove if it matches - prefix: - # Input string - 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) - '' - 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); - - /* Return a string without the specified suffix, if the suffix matches. - - Type: string -> string -> string - - Example: - removeSuffix "front" "homefront" - => "home" - removeSuffix "xxx" "homefront" - => "homefront" - */ - removeSuffix = - # Suffix to remove if it matches - suffix: - # Input string - 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) - '' - 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); - - /* Return true if string v1 denotes a version older than v2. - - 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. - - 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. - - 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); - - /* 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" - */ - 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. - - 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: - let - components = splitString "/" url; - filename = lib.last components; - name = head (splitString sep filename); - in assert name != filename; name; - - /* Create a "-D:=" string that can be passed to typical - CMake invocations. - - Type: cmakeOptionType :: string -> string -> string -> string - - @param feature The feature to be set - @param type The type of the feature to be set, as described in - https://cmake.org/cmake/help/latest/command/set.html - the possible values (case insensitive) are: - BOOL FILEPATH PATH STRING INTERNAL - @param value The desired value - - Example: - cmakeOptionType "string" "ENGINE" "sdl2" - => "-DENGINE:STRING=sdl2" - */ - 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 - CMake invocations. - - Type: cmakeBool :: string -> bool -> string - - @param condition The condition to be made true or false - @param flag The controlling flag of the condition - - Example: - cmakeBool "ENABLE_STATIC_LIBS" false - => "-DENABLESTATIC_LIBS:BOOL=FALSE" - */ - 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 - CMake invocations. - This is the most typical usage, so it deserves a special case. - - Type: cmakeFeature :: string -> string -> string - - @param condition The condition to be made true or false - @param flag The controlling flag of the condition - - Example: - cmakeFeature "MODULES" "badblock" - => "-DMODULES:STRING=badblock" - */ - 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 - invocations. - - Type: mesonOption :: string -> string -> string - - @param feature The feature to be set - @param value The desired value - - Example: - mesonOption "engine" "opengl" - => "-Dengine=opengl" - */ - 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 - Meson invocations. - - Type: mesonBool :: string -> bool -> string - - @param condition The condition to be made true or false - @param flag The controlling flag of the condition - - Example: - mesonBool "hardened" true - => "-Dhardened=true" - mesonBool "static" false - => "-Dstatic=false" - */ - 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 - typical Meson invocations. - - Type: mesonEnable :: string -> bool -> string - - @param feature The feature to be enabled or disabled - @param flag The controlling flag - - Example: - mesonEnable "docs" true - => "-Ddocs=enabled" - mesonEnable "savage" false - => "-Dsavage=disabled" - */ - 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. - - Example: - enableFeature true "shared" - => "--enable-shared" - enableFeature false "shared" - => "--disable-shared" - */ - 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. - - Example: - enableFeatureAs true "shared" "foo" - => "--enable-shared=foo" - enableFeatureAs false "shared" (throw "ignored") - => "--disable-shared" - */ - enableFeatureAs = flag: feature: value: - enableFeature flag feature + optionalString flag "=${value}"; - - /* 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" - */ - 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. - - Example: - withFeatureAs true "shared" "foo" - => "--with-shared=foo" - withFeatureAs false "shared" (throw "ignored") - => "--without-shared" - */ - withFeatureAs = flag: feature: value: - withFeature flag feature + optionalString flag "=${value}"; - - /* 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. - - Type: fixedWidthString :: int -> string -> string -> string - - Example: - fixedWidthString 5 "0" (toString 15) - => "00015" - */ - 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; - - /* Format a number adding leading zeroes up to fixed width. - - 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 - - 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; - - /* 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. - */ - 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 - 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. - - Type: string -> int - - Example: - - toInt "1337" - => 1337 - - toInt "-4" - => -4 - - toInt " 123 " - => 123 - - 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 = - let - matchStripInput = match "[[:space:]]*(-?[[:digit:]]+)[[:space:]]*"; - matchLeadingZero = match "0[[:digit:]]+"; - in - str: - let - # RegEx: Match any leading whitespace, possibly a '-', one or more digits, - # and finally match any trailing whitespace. - strippedInput = matchStripInput str; - - # RegEx: Match a leading '0' then one or more digits. - isLeadingZero = matchLeadingZero (head strippedInput) == []; - - # Attempt to parse input - parsedInput = fromJSON (head strippedInput); - - 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; - - - /* Parse a string as a base 10 int. This supports parsing of zero-padded integers. - - Type: string -> int - - Example: - toIntBase10 "1337" - => 1337 - - toIntBase10 "-4" - => -4 - - toIntBase10 " 123 " - => 123 - - toIntBase10 "00024" - => 24 - - toIntBase10 "3.14" - => error: floating point JSON numbers are not supported - */ - toIntBase10 = - let - matchStripInput = match "[[:space:]]*0*(-?[[:digit:]]+)[[:space:]]*"; - matchZero = match "0+"; - in - str: - let - # RegEx: Match any leading whitespace, then match any zero padding, - # capture possibly a '-' followed by one or more digits, - # and finally match any trailing whitespace. - strippedInput = matchStripInput str; - - # RegEx: Match at least one '0'. - isZero = matchZero (head strippedInput) == []; - - # Attempt to parse input - parsedInput = fromJSON (head strippedInput); - - 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; - - /* 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. - - 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); - - /* Read the contents of a file removing the trailing \n - - Type: fileContents :: path -> string - - Example: - $ echo "1.0" > ./version - - fileContents ./version - => "1.0" - */ - fileContents = file: removeSuffix "\n" (readFile file); - - - /* Creates a valid derivation name from a potentially invalid one. - - Type: sanitizeDerivationName :: String -> String - - 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) - ]; - - /* 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 - - 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); - - /* 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; - - /* 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; - - /* 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 - - */ - 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; - - # 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 - # 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 - # 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 - # 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; - - 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 deleted file mode 100644 index 9be8c80..0000000 --- a/lib/systems/architectures.nix +++ /dev/null @@ -1,136 +0,0 @@ -{ lib }: - -rec { - # gcc.arch to its features (as in /proc/cpuinfo) - 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" ]; - # 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" ]; - # 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" ]; - # other - 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" ]; - 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; - - 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; - icelake-server = [ "icelake-client" ] ++ inferiors.icelake-client; - 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 = [ ]; - - # x86_64 AMD - # TODO: fill this (need testing) - 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. - # - # The GCC documentation on extensions used and wikichip documentation - # regarding supperted extensions on znver1 and skylake was used to create - # this partial order. - # - # Note: - # - # - The successors of `skylake` (`cannonlake`, `icelake`, etc) use `avx512` - # which no current AMD Zen michroarch support. - # - `znver1` uses `ABM`, `CLZERO`, `CX16`, `MWAITX`, and `SSE4A` which no - # current Intel microarch support. - # - # https://www.phoronix.com/scan.php?page=article&item=amd-znver3-gcc11&num=1 - # 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); - - # other - 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"; - }; -} diff --git a/lib/systems/default.nix b/lib/systems/default.nix deleted file mode 100644 index 7e9aade..0000000 --- a/lib/systems/default.nix +++ /dev/null @@ -1,418 +0,0 @@ -{ lib }: - -let - inherit (lib) - any - filterAttrs - foldl - hasInfix - isFunction - isList - isString - mapAttrs - optional - optionalAttrs - optionalString - removeSuffix - replaceStrings - toUpper - ; - - inherit (lib.strings) toJSON; - - doubles = import ./doubles.nix { inherit lib; }; - parse = import ./parse.nix { inherit lib; }; - inspect = import ./inspect.nix { inherit lib; }; - platforms = import ./platforms.nix { inherit lib; }; - examples = import ./examples.nix { inherit lib; }; - architectures = import ./architectures.nix { inherit lib; }; - - /** - Elaborated systems contain functions, which means that they don't satisfy - `==` for a lack of reflexivity. - - They might *appear* to satisfy `==` reflexivity when the same exact value is - compared to itself, because object identity is used as an "optimization"; - compare the value with a reconstruction of itself, e.g. with `f == a: f a`, - or perhaps calling `elaborate` twice, and one will see reflexivity fail as described. - - Hence a custom equality test. - - Note that this does not canonicalize the systems, so you'll want to make sure - both arguments have been `elaborate`-d. - */ - equals = - 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 - for. All systems listed here must be supported by nixpkgs as `localSystem`. - - :::{.warning} - This attribute is considered experimental and is subject to change. - ::: - */ - flakeExposed = import ./flake-systems.nix { }; - - # Elaborate a `localSystem` or `crossSystem` so that it contains everything - # necessary. - # - # `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'; - - # 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" ]; - }; - 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; - # 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}"}"; - - # 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 []); - final; - -in - -# Everything in this attrset is the public interface of the file. -{ - inherit - architectures - doubles - elaborate - equals - examples - flakeExposed - inspect - parse - platforms - ; -} diff --git a/lib/systems/doubles.nix b/lib/systems/doubles.nix deleted file mode 100644 index 13f029e..0000000 --- a/lib/systems/doubles.nix +++ /dev/null @@ -1,119 +0,0 @@ -{ lib }: -let - inherit (lib) lists; - inherit (lib.systems) parse; - inherit (lib.systems.inspect) predicates; - inherit (lib.attrsets) matchAttrs; - - all = [ - # Cygwin - "i686-cygwin" "x86_64-cygwin" - - # Darwin - "x86_64-darwin" "i686-darwin" "aarch64-darwin" "armv7a-darwin" - - # FreeBSD - "i686-freebsd13" "x86_64-freebsd13" - - # Genode - "aarch64-genode" "i686-genode" "x86_64-genode" - - # illumos - "x86_64-solaris" - - # JS - "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" - - # 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" - - # 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" - - # Redox - "x86_64-redox" - - # WASI - "wasm64-wasi" "wasm32-wasi" - - # Windows - "x86_64-windows" "i686-windows" - ]; - - allParsed = map parse.mkSystemFromString all; - - filterDoubles = f: map parse.doubleFromSystem (lists.filter f allParsed); - -in { - inherit all; - - 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; - - bigEndian = filterDoubles predicates.isBigEndian; - littleEndian = filterDoubles predicates.isLittleEndian; - - 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; - - 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"]; -} diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix deleted file mode 100644 index b16445e..0000000 --- a/lib/systems/examples.nix +++ /dev/null @@ -1,361 +0,0 @@ -# These can be passed to nixpkgs as either the `localSystem` or -# `crossSystem`. They are put here for user convenience, but also used by cross -# tests and linux cross stdenv building, so handle with care! -{ lib }: -let - platforms = import ./platforms.nix { inherit lib; }; - - riscv = bits: { - config = "riscv${bits}-unknown-linux-gnu"; - }; -in - -rec { - # - # Linux - # - powernv = { - config = "powerpc64le-unknown-linux-gnu"; - }; - musl-power = { - config = "powerpc64le-unknown-linux-musl"; - }; - - ppc64 = { - config = "powerpc64-unknown-linux-gnuabielfv2"; - }; - ppc64-musl = { - config = "powerpc64-unknown-linux-musl"; - gcc = { abi = "elfv2"; }; - }; - - sheevaplug = { - config = "armv5tel-unknown-linux-gnueabi"; - } // platforms.sheevaplug; - - raspberryPi = { - config = "armv6l-unknown-linux-gnueabihf"; - } // platforms.raspberrypi; - - bluefield2 = { - config = "aarch64-unknown-linux-gnu"; - } // platforms.bluefield2; - - remarkable1 = { - config = "armv7l-unknown-linux-gnueabihf"; - } // platforms.zero-gravitas; - - remarkable2 = { - config = "armv7l-unknown-linux-gnueabihf"; - } // platforms.zero-sugar; - - armv7l-hf-multiplatform = { - config = "armv7l-unknown-linux-gnueabihf"; - }; - - aarch64-multiplatform = { - config = "aarch64-unknown-linux-gnu"; - }; - - armv7a-android-prebuilt = { - config = "armv7a-unknown-linux-androideabi"; - rustc.config = "armv7-linux-androideabi"; - sdkVer = "28"; - ndkVer = "24"; - useAndroidPrebuilt = true; - } // platforms.armv7a-android; - - aarch64-android-prebuilt = { - config = "aarch64-unknown-linux-android"; - rustc.config = "aarch64-linux-android"; - sdkVer = "28"; - ndkVer = "24"; - useAndroidPrebuilt = true; - }; - - aarch64-android = { - config = "aarch64-unknown-linux-android"; - sdkVer = "30"; - ndkVer = "24"; - libc = "bionic"; - useAndroidPrebuilt = false; - useLLVM = true; - }; - - pogoplug4 = { - config = "armv5tel-unknown-linux-gnueabi"; - } // platforms.pogoplug4; - - ben-nanonote = { - config = "mipsel-unknown-linux-uclibc"; - } // platforms.ben_nanonote; - - fuloongminipc = { - config = "mipsel-unknown-linux-gnu"; - } // 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; - - # 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; - - # 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; - - muslpi = raspberryPi // { - config = "armv6l-unknown-linux-musleabihf"; - }; - - aarch64-multiplatform-musl = { - config = "aarch64-unknown-linux-musl"; - }; - - gnu64 = { config = "x86_64-unknown-linux-gnu"; }; - gnu64_simplekernel = gnu64 // platforms.pc_simplekernel; # see test/cross/default.nix - gnu32 = { config = "i686-unknown-linux-gnu"; }; - - musl64 = { config = "x86_64-unknown-linux-musl"; }; - musl32 = { config = "i686-unknown-linux-musl"; }; - - riscv64 = riscv "64"; - riscv32 = riscv "32"; - - riscv64-embedded = { - config = "riscv64-none-elf"; - libc = "newlib"; - }; - - riscv32-embedded = { - config = "riscv32-none-elf"; - libc = "newlib"; - }; - - mips64-embedded = { - config = "mips64-none-elf"; - libc = "newlib"; - }; - - mips-embedded = { - config = "mips-none-elf"; - libc = "newlib"; - }; - - loongarch64-linux = { - config = "loongarch64-unknown-linux-gnu"; - }; - - mmix = { - config = "mmix-unknown-mmixware"; - libc = "newlib"; - }; - - rx-embedded = { - config = "rx-none-elf"; - libc = "newlib"; - }; - - msp430 = { - config = "msp430-elf"; - libc = "newlib"; - }; - - avr = { - config = "avr"; - }; - - vc4 = { - config = "vc4-elf"; - libc = "newlib"; - }; - - or1k = { - config = "or1k-elf"; - libc = "newlib"; - }; - - m68k = { - config = "m68k-unknown-linux-gnu"; - }; - - s390 = { - config = "s390-unknown-linux-gnu"; - }; - - s390x = { - config = "s390x-unknown-linux-gnu"; - }; - - arm-embedded = { - config = "arm-none-eabi"; - libc = "newlib"; - }; - armhf-embedded = { - config = "arm-none-eabihf"; - libc = "newlib"; - # GCC8+ does not build without this - # (https://www.mail-archive.com/gcc-bugs@gcc.gnu.org/msg552339.html): - gcc = { - arch = "armv5t"; - fpu = "vfp"; - }; - }; - - aarch64-embedded = { - config = "aarch64-none-elf"; - libc = "newlib"; - rustc.config = "aarch64-unknown-none"; - }; - - aarch64be-embedded = { - config = "aarch64_be-none-elf"; - libc = "newlib"; - }; - - ppc-embedded = { - config = "powerpc-none-eabi"; - libc = "newlib"; - }; - - ppcle-embedded = { - config = "powerpcle-none-eabi"; - libc = "newlib"; - }; - - i686-embedded = { - config = "i686-elf"; - libc = "newlib"; - }; - - x86_64-embedded = { - config = "x86_64-elf"; - libc = "newlib"; - }; - - microblaze-embedded = { - config = "microblazeel-none-elf"; - libc = "newlib"; - }; - - # - # Redox - # - - x86_64-unknown-redox = { - config = "x86_64-unknown-redox"; - libc = "relibc"; - }; - - # - # Darwin - # - - iphone64 = { - config = "aarch64-apple-ios"; - # config = "aarch64-apple-darwin14"; - sdkVer = "14.3"; - xcodeVer = "12.3"; - xcodePlatform = "iPhoneOS"; - useiOSPrebuilt = true; - }; - - iphone32 = { - config = "armv7a-apple-ios"; - # config = "arm-apple-darwin10"; - sdkVer = "14.3"; - xcodeVer = "12.3"; - xcodePlatform = "iPhoneOS"; - useiOSPrebuilt = true; - }; - - iphone64-simulator = { - config = "x86_64-apple-ios"; - # config = "x86_64-apple-darwin14"; - sdkVer = "14.3"; - xcodeVer = "12.3"; - xcodePlatform = "iPhoneSimulator"; - darwinPlatform = "ios-simulator"; - useiOSPrebuilt = true; - }; - - iphone32-simulator = { - config = "i686-apple-ios"; - # config = "i386-apple-darwin11"; - sdkVer = "14.3"; - xcodeVer = "12.3"; - xcodePlatform = "iPhoneSimulator"; - darwinPlatform = "ios-simulator"; - useiOSPrebuilt = true; - }; - - aarch64-darwin = { - config = "aarch64-apple-darwin"; - xcodePlatform = "MacOSX"; - platform = {}; - }; - - x86_64-darwin = { - config = "x86_64-apple-darwin"; - xcodePlatform = "MacOSX"; - platform = {}; - }; - - # - # Windows - # - - # 32 bit mingw-w64 - mingw32 = { - config = "i686-w64-mingw32"; - libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain - }; - - # 64 bit mingw-w64 - mingwW64 = { - # That's the triplet they use in the mingw-w64 docs. - config = "x86_64-w64-mingw32"; - libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain - }; - - ucrt64 = { - config = "x86_64-w64-mingw32"; - libc = "ucrt"; # This distinguishes the mingw (non posix) toolchain - }; - - # BSDs - - x86_64-freebsd = { - config = "x86_64-unknown-freebsd13"; - useLLVM = true; - }; - - x86_64-netbsd = { - config = "x86_64-unknown-netbsd"; - }; - - # this is broken and never worked fully - x86_64-netbsd-llvm = { - config = "x86_64-unknown-netbsd"; - useLLVM = true; - }; - - # - # WASM - # - - wasi32 = { - config = "wasm32-unknown-wasi"; - useLLVM = true; - }; - - # Ghcjs - ghcjs = { - # This triple is special to GHC/Cabal/GHCJS and not recognized by autotools - # See: https://gitlab.haskell.org/ghc/ghc/-/commit/6636b670233522f01d002c9b97827d00289dbf5c - # https://github.com/ghcjs/ghcjs/issues/53 - config = "javascript-unknown-ghcjs"; - }; -} diff --git a/lib/systems/flake-systems.nix b/lib/systems/flake-systems.nix deleted file mode 100644 index b1988c6..0000000 --- a/lib/systems/flake-systems.nix +++ /dev/null @@ -1,29 +0,0 @@ -# See [RFC 46] for mandated platform support and ../../pkgs/stdenv for -# implemented platform support. This list is mainly descriptive, i.e. all -# system doubles for platforms where nixpkgs can do native compilation -# reasonably well are included. -# -# [RFC 46]: https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md -{ }: - -[ - # Tier 1 - "x86_64-linux" - # Tier 2 - "aarch64-linux" - "x86_64-darwin" - # Tier 3 - "armv6l-linux" - "armv7l-linux" - "i686-linux" - "mipsel-linux" - - # Other platforms with sufficient support in stdenv which is not formally - # mandated by their platform tier. - "aarch64-darwin" - "armv5tel-linux" - "powerpc64le-linux" - "riscv64-linux" - - # "x86_64-freebsd" is excluded because it is mostly broken -] diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix deleted file mode 100644 index ebc7ab3..0000000 --- a/lib/systems/inspect.nix +++ /dev/null @@ -1,169 +0,0 @@ -{ lib }: - -let - inherit (lib) - any - attrValues - concatMap - filter - hasPrefix - isList - mapAttrs - matchAttrs - recursiveUpdateUntil - toList - ; - - inherit (lib.strings) toJSON; - - inherit (lib.systems.parse) - kernels - kernelFamilies - significantBytes - cpuTypes - execFormats - ; - - abis = mapAttrs (_: abi: removeAttrs abi [ "assertions" ]) lib.systems.parse.abis; -in - -rec { - # these patterns are to be matched against {host,build,target}Platform.parsed - patterns = rec { - # The patterns below are lists in sum-of-products form. - # - # Each attribute is list of product conditions; non-list values are treated - # as a singleton list. If *any* product condition in the list matches then - # the predicate matches. Each product condition is tested by - # `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; }; }; - # 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; }; } - ]; - 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; }; }; - - 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; }; - - 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"; }; } - ]; - - 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_: - 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; - - matchAnyAttrs = patterns: - if isList patterns then attrs: any (pattern: matchAttrs pattern attrs) patterns - else matchAttrs patterns; - - predicates = mapAttrs (_: matchAnyAttrs) patterns; - - # these patterns are to be matched against the entire - # {host,build,target}Platform structure; they include a `parsed={}` marker so - # 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; }; - }; -} diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix deleted file mode 100644 index 191e973..0000000 --- a/lib/systems/parse.nix +++ /dev/null @@ -1,548 +0,0 @@ -# Define the list of system with their properties. -# -# See https://clang.llvm.org/docs/CrossCompilation.html and -# http://llvm.org/docs/doxygen/html/Triple_8cpp_source.html especially -# Triple::normalize. Parsing should essentially act as a more conservative -# version of that last function. -# -# Most of the types below come in "open" and "closed" pairs. The open ones -# specify what information we need to know about systems in general, and the -# closed ones are sub-types representing the whitelist of systems we support in -# practice. -# -# Code in the remainder of nixpkgs shouldn't rely on the closed ones in -# e.g. exhaustive cases. Its more a sanity check to make sure nobody defines -# systems that overlap with existing ones and won't notice something amiss. -# -{ lib }: - -let - inherit (lib) - all - any - attrValues - elem - elemAt - hasPrefix - id - length - mapAttrs - mergeOneOption - optionalString - splitString - versionAtLeast - ; - - inherit (lib.strings) match; - - inherit (lib.systems.inspect.predicates) - isAarch32 - isBigEndian - isDarwin - isLinux - isPower64 - isWindows - ; - - inherit (lib.types) - enum - float - isType - mkOptionType - number - setType - string - types - ; - - setTypes = type: - mapAttrs (name: value: - assert type.check 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; - -in - -rec { - - ################################################################################ - - types.openSignificantByte = mkOptionType { - name = "significant-byte"; - description = "Endianness"; - merge = mergeOneOption; - }; - - types.significantByte = enum (attrValues significantBytes); - - significantBytes = setTypes types.openSignificantByte { - bigEndian = {}; - littleEndian = {}; - }; - - ################################################################################ - - # Reasonable power of 2 - types.bitWidth = enum [ 8 16 32 64 128 ]; - - ################################################################################ - - types.openCpuType = mkOptionType { - 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)); - }; - - 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"; }; - - 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"; }; - - 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"; }; - - 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"; }; - - 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"; }; - - 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"; }; - - 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"; }; - - vc4 = { bits = 32; significantByte = littleEndian; family = "vc4"; }; - - or1k = { bits = 32; significantByte = bigEndian; family = "or1k"; }; - - loongarch64 = { bits = 64; significantByte = littleEndian; family = "loongarch"; }; - - 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; - - # 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, - # the programs that system B accepts must be a subset of the - # programs that system A accepts. - # - # We have the following properties of the compatibility relation, - # which must be preserved when adding compatibility information for - # additional CPUs. - # - (reflexivity) - # Every CPU is compatible with itself. - # - (transitivity) - # If A is compatible with B and B is compatible with C then A is compatible with C. - # - # 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) - - # XXX: Not true in some cases. Like in WSL mode. - (b == i686 && isCompatible a x86_64) - - # ARMv4 - (b == arm && isCompatible a armv5tel) - - # ARMv5 - (b == armv5tel && isCompatible a armv6l) - - # 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) - - # 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) - - # MIPS - (b == mips && isCompatible a mips64) - (b == mipsel && isCompatible a mips64el) - - # RISCV - (b == riscv32 && isCompatible a riscv64) - - # SPARC - (b == sparc && isCompatible a sparc64) - - # WASM - (b == wasm32 && isCompatible a wasm64) - - # identity - (b == a) - ]; - - ################################################################################ - - types.openVendor = mkOptionType { - name = "vendor"; - description = "vendor for the platform"; - merge = mergeOneOption; - }; - - types.vendor = enum (attrValues vendors); - - vendors = setTypes types.openVendor { - 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 = {}; - - none = {}; - unknown = {}; - }; - - ################################################################################ - - types.openExecFormat = mkOptionType { - name = "exec-format"; - description = "executable container used by the kernel"; - merge = mergeOneOption; - }; - - types.execFormat = enum (attrValues execFormats); - - execFormats = setTypes types.openExecFormat { - aout = {}; # a.out - elf = {}; - macho = {}; - pe = {}; - wasm = {}; - - unknown = {}; - }; - - ################################################################################ - - types.openKernelFamily = mkOptionType { - name = "exec-format"; - description = "executable container used by the kernel"; - merge = mergeOneOption; - }; - - types.kernelFamily = enum (attrValues kernelFamilies); - - kernelFamilies = setTypes types.openKernelFamily { - bsd = {}; - darwin = {}; - }; - - ################################################################################ - - types.openKernel = mkOptionType { - name = "kernel"; - description = "kernel name and information"; - merge = mergeOneOption; - 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; - }; - - ################################################################################ - - types.openAbi = mkOptionType { - name = "abi"; - description = "binary interface for compiled code and syscalls"; - merge = mergeOneOption; - }; - - types.abi = enum (attrValues abis); - - abis = setTypes types.openAbi { - 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"; }; - - # Other architectures should use ELF in embedded situations. - elf = {}; - - androideabi = {}; - android = { - assertions = [ - { assertion = platform: !platform.isAarch32; - message = '' - The "android" ABI is not for 32-bit ARM. Use "androideabi" instead. - ''; - } - ]; - }; - - gnueabi = { float = "soft"; }; - gnueabihf = { float = "hard"; }; - gnu = { - assertions = [ - { 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); - message = '' - The "gnu" ABI is ambiguous on big-endian 64-bit PowerPC. Use "gnuabielfv2" or "gnuabielfv1" instead. - ''; - } - ]; - }; - 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"; }; - - gnuabielfv2 = { abi = "elfv2"; }; - gnuabielfv1 = { abi = "elfv1"; }; - - musleabi = { float = "soft"; }; - musleabihf = { float = "hard"; }; - musl = {}; - - uclibceabi = { float = "soft"; }; - uclibceabihf = { float = "hard"; }; - uclibc = {}; - - unknown = {}; - }; - - ################################################################################ - - types.parsedPlatform = mkOptionType { - 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; - }; - - isSystem = isType "system"; - - 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; - 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)} - 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}"); - - 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; - - mkSystemFromString = s: mkSystemFromSkeleton (mkSkeletonFromList (splitString "-" s)); - - 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}"; - - 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 deleted file mode 100644 index d2e8f77..0000000 --- a/lib/systems/platforms.nix +++ /dev/null @@ -1,572 +0,0 @@ -# Note: lib/systems/default.nix takes care of producing valid, -# fully-formed "platform" values (e.g. hostPlatform, buildPlatform, -# targetPlatform, etc) containing at least the minimal set of attrs -# required (see types.parsedPlatform in lib/systems/parse.nix). This -# file takes an already-valid platform and further elaborates it with -# optional fields; currently these are: linux-kernel, gcc, and rustc. - -{ lib }: -rec { - pc = { - linux-kernel = { - name = "pc"; - - baseConfig = "defconfig"; - # Build whatever possible as a module, if not stated in the extra config. - autoModules = true; - target = "bzImage"; - }; - }; - - pc_simplekernel = lib.recursiveUpdate pc { - linux-kernel.autoModules = false; - }; - - powernv = { - linux-kernel = { - name = "PowerNV"; - - baseConfig = "powernv_defconfig"; - target = "vmlinux"; - autoModules = true; - # avoid driver/FS trouble arising from unusual page size - extraConfig = '' - PPC_64K_PAGES n - PPC_4K_PAGES y - IPV6 y - - ATA_BMDMA y - ATA_SFF y - VIRTIO_MENU y - ''; - }; - }; - - ## - ## ARM - ## - - pogoplug4 = { - linux-kernel = { - name = "pogoplug4"; - - baseConfig = "multi_v5_defconfig"; - autoModules = false; - extraConfig = '' - # Ubi for the mtd - MTD_UBI y - UBIFS_FS y - UBIFS_FS_XATTR y - UBIFS_FS_ADVANCED_COMPR y - UBIFS_FS_LZO y - UBIFS_FS_ZLIB y - UBIFS_FS_DEBUG n - ''; - makeFlags = [ "LOADADDR=0x8000" ]; - target = "uImage"; - # TODO reenable once manual-config's config actually builds a .dtb and this is checked to be working - #DTB = true; - }; - gcc = { - arch = "armv5te"; - }; - }; - - sheevaplug = { - linux-kernel = { - name = "sheevaplug"; - - baseConfig = "multi_v5_defconfig"; - autoModules = false; - extraConfig = '' - BLK_DEV_RAM y - BLK_DEV_INITRD y - BLK_DEV_CRYPTOLOOP m - BLK_DEV_DM m - DM_CRYPT m - MD y - REISERFS_FS m - BTRFS_FS m - XFS_FS m - JFS_FS m - EXT4_FS m - USB_STORAGE_CYPRESS_ATACB m - - # mv cesa requires this sw fallback, for mv-sha1 - CRYPTO_SHA1 y - # Fast crypto - CRYPTO_TWOFISH y - CRYPTO_TWOFISH_COMMON y - CRYPTO_BLOWFISH y - CRYPTO_BLOWFISH_COMMON y - - IP_PNP y - IP_PNP_DHCP y - NFS_FS y - ROOT_NFS y - TUN m - NFS_V4 y - NFS_V4_1 y - NFS_FSCACHE y - NFSD m - NFSD_V2_ACL y - NFSD_V3 y - NFSD_V3_ACL y - NFSD_V4 y - NETFILTER y - IP_NF_IPTABLES y - IP_NF_FILTER y - IP_NF_MATCH_ADDRTYPE y - IP_NF_TARGET_LOG y - IP_NF_MANGLE y - IPV6 m - VLAN_8021Q m - - CIFS y - CIFS_XATTR y - CIFS_POSIX y - CIFS_FSCACHE y - CIFS_ACL y - - WATCHDOG y - WATCHDOG_CORE y - ORION_WATCHDOG m - - ZRAM m - NETCONSOLE m - - # Disable OABI to have seccomp_filter (required for systemd) - # https://github.com/raspberrypi/firmware/issues/651 - OABI_COMPAT n - - # Fail to build - DRM n - SCSI_ADVANSYS n - USB_ISP1362_HCD n - SND_SOC n - SND_ALI5451 n - FB_SAVAGE n - SCSI_NSP32 n - ATA_SFF n - SUNGEM n - IRDA n - ATM_HE n - SCSI_ACARD n - BLK_DEV_CMD640_ENHANCED n - - FUSE_FS m - - # systemd uses cgroups - CGROUPS y - - # Latencytop - LATENCYTOP y - - # Ubi for the mtd - MTD_UBI y - UBIFS_FS y - UBIFS_FS_XATTR y - UBIFS_FS_ADVANCED_COMPR y - UBIFS_FS_LZO y - UBIFS_FS_ZLIB y - UBIFS_FS_DEBUG n - - # Kdb, for kernel troubles - KGDB y - KGDB_SERIAL_CONSOLE y - KGDB_KDB y - ''; - makeFlags = [ "LOADADDR=0x0200000" ]; - target = "uImage"; - DTB = true; # Beyond 3.10 - }; - gcc = { - arch = "armv5te"; - }; - }; - - raspberrypi = { - linux-kernel = { - name = "raspberrypi"; - - baseConfig = "bcm2835_defconfig"; - DTB = true; - autoModules = true; - preferBuiltin = true; - extraConfig = '' - # Disable OABI to have seccomp_filter (required for systemd) - # https://github.com/raspberrypi/firmware/issues/651 - OABI_COMPAT n - ''; - target = "zImage"; - }; - gcc = { - arch = "armv6"; - fpu = "vfp"; - }; - }; - - # Legacy attribute, for compatibility with existing configs only. - raspberrypi2 = armv7l-hf-multiplatform; - - # Nvidia Bluefield 2 (w. crypto support) - bluefield2 = { - gcc = { - arch = "armv8-a+fp+simd+crc+crypto"; - }; - }; - - zero-gravitas = { - linux-kernel = { - name = "zero-gravitas"; - - baseConfig = "zero-gravitas_defconfig"; - # Target verified by checking /boot on reMarkable 1 device - target = "zImage"; - autoModules = false; - DTB = true; - }; - gcc = { - fpu = "neon"; - cpu = "cortex-a9"; - }; - }; - - zero-sugar = { - linux-kernel = { - name = "zero-sugar"; - - baseConfig = "zero-sugar_defconfig"; - DTB = true; - autoModules = false; - preferBuiltin = true; - target = "zImage"; - }; - gcc = { - cpu = "cortex-a7"; - fpu = "neon-vfpv4"; - float-abi = "hard"; - }; - }; - - utilite = { - linux-kernel = { - name = "utilite"; - maseConfig = "multi_v7_defconfig"; - autoModules = false; - extraConfig = '' - # Ubi for the mtd - MTD_UBI y - UBIFS_FS y - UBIFS_FS_XATTR y - UBIFS_FS_ADVANCED_COMPR y - UBIFS_FS_LZO y - UBIFS_FS_ZLIB y - UBIFS_FS_DEBUG n - ''; - makeFlags = [ "LOADADDR=0x10800000" ]; - target = "uImage"; - DTB = true; - }; - gcc = { - cpu = "cortex-a9"; - fpu = "neon"; - }; - }; - - guruplug = lib.recursiveUpdate sheevaplug { - # Define `CONFIG_MACH_GURUPLUG' (see - # ) - # and other GuruPlug-specific things. Requires the `guruplug-defconfig' - # patch. - linux-kernel.baseConfig = "guruplug_defconfig"; - }; - - beaglebone = lib.recursiveUpdate armv7l-hf-multiplatform { - linux-kernel = { - name = "beaglebone"; - baseConfig = "bb.org_defconfig"; - autoModules = false; - extraConfig = ""; # TBD kernel config - target = "zImage"; - }; - }; - - # https://developer.android.com/ndk/guides/abis#v7a - armv7a-android = { - linux-kernel.name = "armeabi-v7a"; - gcc = { - arch = "armv7-a"; - float-abi = "softfp"; - fpu = "vfpv3-d16"; - }; - }; - - armv7l-hf-multiplatform = { - linux-kernel = { - name = "armv7l-hf-multiplatform"; - Major = "2.6"; # Using "2.6" enables 2.6 kernel syscalls in glibc. - baseConfig = "multi_v7_defconfig"; - DTB = true; - autoModules = true; - preferBuiltin = true; - target = "zImage"; - extraConfig = '' - # Serial port for Raspberry Pi 3. Wasn't included in ARMv7 defconfig - # until 4.17. - SERIAL_8250_BCM2835AUX y - SERIAL_8250_EXTENDED y - SERIAL_8250_SHARE_IRQ y - - # Hangs ODROID-XU4 - ARM_BIG_LITTLE_CPUIDLE n - - # Disable OABI to have seccomp_filter (required for systemd) - # https://github.com/raspberrypi/firmware/issues/651 - OABI_COMPAT n - - # >=5.12 fails with: - # drivers/net/ethernet/micrel/ks8851_common.o: in function `ks8851_probe_common': - # ks8851_common.c:(.text+0x179c): undefined reference to `__this_module' - # See: https://lore.kernel.org/netdev/20210116164828.40545-1-marex@denx.de/T/ - KS8851_MLL y - ''; - }; - gcc = { - # Some table about fpu flags: - # http://community.arm.com/servlet/JiveServlet/showImage/38-1981-3827/blogentry-103749-004812900+1365712953_thumb.png - # Cortex-A5: -mfpu=neon-fp16 - # Cortex-A7 (rpi2): -mfpu=neon-vfpv4 - # Cortex-A8 (beaglebone): -mfpu=neon - # Cortex-A9: -mfpu=neon-fp16 - # Cortex-A15: -mfpu=neon-vfpv4 - - # More about FPU: - # https://wiki.debian.org/ArmHardFloatPort/VfpComparison - - # vfpv3-d16 is what Debian uses and seems to be the best compromise: NEON is not supported in e.g. Scaleway or Tegra 2, - # and the above page suggests NEON is only an improvement with hand-written assembly. - arch = "armv7-a"; - fpu = "vfpv3-d16"; - - # For Raspberry Pi the 2 the best would be: - # cpu = "cortex-a7"; - # fpu = "neon-vfpv4"; - }; - }; - - aarch64-multiplatform = { - linux-kernel = { - name = "aarch64-multiplatform"; - baseConfig = "defconfig"; - DTB = true; - autoModules = true; - preferBuiltin = true; - extraConfig = '' - # Raspberry Pi 3 stuff. Not needed for s >= 4.10. - ARCH_BCM2835 y - BCM2835_MBOX y - BCM2835_WDT y - RASPBERRYPI_FIRMWARE y - RASPBERRYPI_POWER y - SERIAL_8250_BCM2835AUX y - SERIAL_8250_EXTENDED y - SERIAL_8250_SHARE_IRQ y - - # Cavium ThunderX stuff. - PCI_HOST_THUNDER_ECAM y - - # Nvidia Tegra stuff. - PCI_TEGRA y - - # The default (=y) forces us to have the XHCI firmware available in initrd, - # which our initrd builder can't currently do easily. - USB_XHCI_TEGRA m - ''; - target = "Image"; - }; - gcc = { - arch = "armv8-a"; - }; - }; - - apple-m1 = { - gcc = { - arch = "armv8.3-a+crypto+sha2+aes+crc+fp16+lse+simd+ras+rdm+rcpc"; - cpu = "apple-a13"; - }; - }; - - ## - ## MIPS - ## - - ben_nanonote = { - linux-kernel = { - name = "ben_nanonote"; - }; - gcc = { - arch = "mips32"; - float = "soft"; - }; - }; - - fuloong2f_n32 = { - linux-kernel = { - name = "fuloong2f_n32"; - baseConfig = "lemote2f_defconfig"; - autoModules = false; - extraConfig = '' - MIGRATION n - COMPACTION n - - # nixos mounts some cgroup - CGROUPS y - - BLK_DEV_RAM y - BLK_DEV_INITRD y - BLK_DEV_CRYPTOLOOP m - BLK_DEV_DM m - DM_CRYPT m - MD y - REISERFS_FS m - EXT4_FS m - USB_STORAGE_CYPRESS_ATACB m - - IP_PNP y - IP_PNP_DHCP y - IP_PNP_BOOTP y - NFS_FS y - ROOT_NFS y - TUN m - NFS_V4 y - NFS_V4_1 y - NFS_FSCACHE y - NFSD m - NFSD_V2_ACL y - NFSD_V3 y - NFSD_V3_ACL y - NFSD_V4 y - - # Fail to build - DRM n - SCSI_ADVANSYS n - USB_ISP1362_HCD n - SND_SOC n - SND_ALI5451 n - FB_SAVAGE n - SCSI_NSP32 n - ATA_SFF n - SUNGEM n - IRDA n - ATM_HE n - SCSI_ACARD n - BLK_DEV_CMD640_ENHANCED n - - FUSE_FS m - - # Needed for udev >= 150 - SYSFS_DEPRECATED_V2 n - - VGA_CONSOLE n - VT_HW_CONSOLE_BINDING y - SERIAL_8250_CONSOLE y - FRAMEBUFFER_CONSOLE y - EXT2_FS y - EXT3_FS y - REISERFS_FS y - MAGIC_SYSRQ y - - # The kernel doesn't boot at all, with FTRACE - FTRACE n - ''; - target = "vmlinux"; - }; - gcc = { - arch = "loongson2f"; - float = "hard"; - abi = "n32"; - }; - }; - - # 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"; }; }; - - # based on: - # https://www.mail-archive.com/qemu-discuss@nongnu.org/msg05179.html - # https://gmplib.org/~tege/qemu.html#mips64-debian - mips64el-qemu-linux-gnuabi64 = { - linux-kernel = { - name = "mips64el"; - baseConfig = "64r2el_defconfig"; - target = "vmlinuz"; - autoModules = false; - DTB = true; - # for qemu 9p passthrough filesystem - extraConfig = '' - MIPS_MALTA y - PAGE_SIZE_4KB y - CPU_LITTLE_ENDIAN y - CPU_MIPS64_R2 y - 64BIT y - CPU_MIPS64_R2 y - - NET_9P y - NET_9P_VIRTIO y - 9P_FS y - 9P_FS_POSIX_ACL y - PCI y - VIRTIO_PCI y - ''; - }; - }; - - ## - ## Other - ## - - riscv-multiplatform = { - linux-kernel = { - name = "riscv-multiplatform"; - target = "Image"; - autoModules = true; - baseConfig = "defconfig"; - DTB = true; - extraConfig = '' - SERIAL_OF_PLATFORM y - ''; - }; - }; - - # 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: - # x86 - /**/ 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.isAarch64 then - if platform.isDarwin then apple-m1 - else aarch64-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.powerpc64le then powernv - - else { }; -} diff --git a/lib/tests/check-eval.nix b/lib/tests/check-eval.nix deleted file mode 100644 index 8bd7b60..0000000 --- a/lib/tests/check-eval.nix +++ /dev/null @@ -1,7 +0,0 @@ -# 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) diff --git a/lib/tests/filesystem.sh b/lib/tests/filesystem.sh deleted file mode 100755 index 7e7e03b..0000000 --- a/lib/tests/filesystem.sh +++ /dev/null @@ -1,90 +0,0 @@ -#!/usr/bin/env bash - -# Tests lib/filesystem.nix -# Run: -# [nixpkgs]$ lib/tests/filesystem.sh -# or: -# [nixpkgs]$ nix-build lib/tests/release.nix - -set -euo pipefail -shopt -s inherit_errexit - -# Use -# || die -die() { - echo >&2 "test case failed: " "$@" - exit 1 -} - -if test -n "${TEST_LIB:-}"; then - NIX_PATH=nixpkgs="$(dirname "$TEST_LIB")" -else - NIX_PATH=nixpkgs="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.."; pwd)" -fi -export NIX_PATH - -work="$(mktemp -d)" -clean_up() { - rm -rf "$work" -} -trap clean_up EXIT -cd "$work" - -mkdir directory -touch regular -ln -s target symlink -mkfifo fifo - -expectSuccess() { - local expr=$1 - local expectedResultRegex=$2 - if ! result=$(nix-instantiate --eval --strict --json \ - --expr "with (import ).filesystem; $expr"); then - die "$expr failed to evaluate, but it was expected to succeed" - fi - if [[ ! "$result" =~ $expectedResultRegex ]]; then - die "$expr == $result, but $expectedResultRegex was expected" - fi -} - -expectFailure() { - local expr=$1 - local expectedErrorRegex=$2 - if result=$(nix-instantiate --eval --strict --json 2>"$work/stderr" \ - --expr "with (import ).filesystem; $expr"); then - die "$expr evaluated successfully to $result, but it was expected to fail" - fi - if [[ ! "$(<"$work/stderr")" =~ $expectedErrorRegex ]]; then - die "Error was $(<"$work/stderr"), but $expectedErrorRegex was expected" - fi -} - -expectSuccess "pathType /." '"directory"' -expectSuccess "pathType $PWD/directory" '"directory"' -expectSuccess "pathType $PWD/regular" '"regular"' -expectSuccess "pathType $PWD/symlink" '"symlink"' -expectSuccess "pathType $PWD/fifo" '"unknown"' - -# Only check error message when a Nixpkgs-specified error is thrown, -# which is only the case when `readFileType` is not available -# and the fallback implementation needs to be used. -if [[ "$(nix-instantiate --eval --expr 'builtins ? readFileType')" == false ]]; then - expectFailure "pathType $PWD/non-existent" \ - "error: evaluation aborted with the following error message: 'lib.filesystem.pathType: Path $PWD/non-existent does not exist.'" -fi - -expectSuccess "pathIsDirectory /." "true" -expectSuccess "pathIsDirectory $PWD/directory" "true" -expectSuccess "pathIsDirectory $PWD/regular" "false" -expectSuccess "pathIsDirectory $PWD/symlink" "false" -expectSuccess "pathIsDirectory $PWD/fifo" "false" -expectSuccess "pathIsDirectory $PWD/non-existent" "false" - -expectSuccess "pathIsRegularFile /." "false" -expectSuccess "pathIsRegularFile $PWD/directory" "false" -expectSuccess "pathIsRegularFile $PWD/regular" "true" -expectSuccess "pathIsRegularFile $PWD/symlink" "false" -expectSuccess "pathIsRegularFile $PWD/fifo" "false" -expectSuccess "pathIsRegularFile $PWD/non-existent" "false" - -echo >&2 tests ok diff --git a/lib/tests/maintainer-module.nix b/lib/tests/maintainer-module.nix deleted file mode 100644 index afa1258..0000000 --- a/lib/tests/maintainer-module.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib, ... }: -let - inherit (lib) types; -in { - options = { - name = lib.mkOption { - type = types.str; - }; - email = lib.mkOption { - type = types.nullOr types.str; - default = null; - }; - matrix = lib.mkOption { - type = types.nullOr types.str; - default = null; - }; - github = lib.mkOption { - type = types.nullOr types.str; - default = null; - }; - githubId = lib.mkOption { - type = types.nullOr types.ints.unsigned; - default = null; - }; - keys = lib.mkOption { - 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 deleted file mode 100644 index be1c8aa..0000000 --- a/lib/tests/maintainers.nix +++ /dev/null @@ -1,53 +0,0 @@ -# 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 -}: - -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; - - 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"; - - 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 deleted file mode 100644 index 98c927c..0000000 --- a/lib/tests/misc.nix +++ /dev/null @@ -1,2341 +0,0 @@ -/** - Nix evaluation tests for various lib functions. - - Since these tests are implemented with Nix evaluation, - error checking is limited to what `builtins.tryEval` can detect, - which is `throw`'s and `abort`'s, without error messages. - - If you need to test error messages or more complex evaluations, see - `lib/tests/modules.sh`, `lib/tests/sources.sh` or `lib/tests/filesystem.sh` as examples. - - To run these tests: - - [nixpkgs]$ nix-instantiate --eval --strict lib/tests/misc.nix - - If the resulting list is empty, all tests passed. - Alternatively, to run all `lib` tests: - - [nixpkgs]$ nix-build lib/tests/release.nix -*/ - -let - lib = import ../default.nix; - - inherit (lib) - allUnique - and - attrNames - attrsets - attrsToList - bitAnd - bitOr - bitXor - boolToString - callPackagesWith - callPackageWith - cartesianProduct - cli - composeExtensions - composeManyExtensions - concatLines - concatMapAttrs - concatMapStrings - concatStrings - concatStringsSep - const - escapeXML - evalModules - filter - fix - fold - foldAttrs - foldl - foldl' - foldlAttrs - foldr - functionArgs - generators - genList - getExe - getExe' - groupBy - groupBy' - hasAttrByPath - hasInfix - id - ifilter0 - isStorePath - lazyDerivation - length - lists - listToAttrs - makeExtensible - makeIncludePath - makeOverridable - mapAttrs - mapCartesianProduct - matchAttrs - mergeAttrs - meta - mod - nameValuePair - optionalDrvAttr - optionAttrSetToDocList - overrideExisting - packagesFromDirectoryRecursive - pipe - range - recursiveUpdateUntil - removePrefix - replicate - runTests - setFunctionArgs - showAttrPath - sort - sortOn - stringLength - strings - stringToCharacters - systems - tail - take - testAllTrue - toBaseDigits - toHexString - toInt - toIntBase10 - toShellVars - types - updateManyAttrsByPath - versions - xor - ; - - testingThrow = expr: { - expr = (builtins.tryEval (builtins.seq expr "didn't throw")); - 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"; - }; - in { - # Evaluate the derivation so an invalid name would be caught - expr = builtins.seq drv.drvPath drv.name; - inherit expected; - }; - -in - -runTests { - -# CUSTOMIZATION - - testFunctionArgsMakeOverridable = { - 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; }; - }; - - testCallPackageWithOverridePreservesArguments = - let - 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 { - expr = functionArgs f'.nested.override; - expected = functionArgs f; - }; - -# TRIVIAL - - testId = { - expr = id 1; - expected = 1; - }; - - testConst = { - expr = const 2 3; - expected = 2; - }; - - testPipe = { - expr = pipe 2 [ - (x: x + 2) # 2 + 2 = 4 - (x: x * 2) # 4 * 2 = 8 - ]; - expected = 8; - }; - - testPipeEmpty = { - expr = pipe 2 []; - expected = 2; - }; - - testPipeStrings = { - expr = pipe [ 3 4 ] [ - (map toString) - (map (s: s + "\n")) - concatStrings - ]; - expected = '' - 3 - 4 - ''; - }; - - /* - testOr = { - expr = or true false; - expected = true; - }; - */ - - testAnd = { - expr = and true false; - expected = false; - }; - - testXor = { - expr = [ - (xor true false) - (xor true true) - (xor false false) - (xor false true) - ]; - expected = [ - true - false - false - true - ]; - }; - - testFix = { - 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; - expected = true; - }; - - testComposeManyExtensions0 = { - 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; - }; - - testBitAnd = { - expr = (bitAnd 3 10); - expected = 2; - }; - - testBitOr = { - expr = (bitOr 3 10); - expected = 11; - }; - - testBitXor = { - expr = (bitXor 3 10); - expected = 9; - }; - - testToHexString = { - expr = toHexString 250; - expected = "FA"; - }; - - testToBaseDigits = { - expr = toBaseDigits 2 6; - expected = [ 1 1 0 ]; - }; - - testFunctionArgsFunctor = { - expr = functionArgs { __functor = self: { a, b }: null; }; - expected = { a = false; b = false; }; - }; - - testFunctionArgsSetFunctionArgs = { - expr = functionArgs (setFunctionArgs (args: args.x) { x = false; }); - expected = { x = false; }; - }; - -# STRINGS - - testConcatMapStrings = { - expr = concatMapStrings (x: x + ";") ["a" "b" "c"]; - expected = "a;b;c;"; - }; - - testConcatStringsSep = { - expr = concatStringsSep "," ["a" "b" "c"]; - expected = "a,b,c"; - }; - - testConcatLines = { - 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; } - ]); - expected = "/dev/include:/out/include:/default/include:/default/include"; - }; - - testMakeIncludePathWithEmptyList = { - expr = (makeIncludePath [ ]); - expected = ""; - }; - - testMakeIncludePathWithOneString = { - expr = (makeIncludePath [ "/usr" ]); - expected = "/usr/include"; - }; - - testMakeIncludePathWithManyString = { - expr = (makeIncludePath [ "/usr" "/usr/local" ]); - expected = "/usr/include:/usr/local/include"; - }; - - testReplicateString = { - expr = strings.replicate 5 "hello"; - expected = "hellohellohellohellohello"; - }; - - testSplitStringsSimple = { - expr = strings.splitString "." "a.b.c.d"; - expected = [ "a" "b" "c" "d" ]; - }; - - testSplitStringsEmpty = { - expr = strings.splitString "." "a..b"; - expected = [ "a" "" "b" ]; - }; - - testSplitStringsOne = { - expr = strings.splitString ":" "a.b"; - expected = [ "a.b" ]; - }; - - testSplitStringsNone = { - expr = strings.splitString "." ""; - expected = [ "" ]; - }; - - testSplitStringsFirstEmpty = { - expr = strings.splitString "/" "/a/b/c"; - expected = [ "" "a" "b" "c" ]; - }; - - testSplitStringsLastEmpty = { - expr = strings.splitString ":" "2001:db8:0:0042::8a2e:370:"; - expected = [ "2001" "db8" "0" "0042" "" "8a2e" "370" "" ]; - }; - - testSplitStringsRegex = { - expr = strings.splitString "\\[{}]()^$?*+|." "A\\[{}]()^$?*+|.B"; - expected = [ "A" "B" ]; - }; - - testSplitStringsDerivation = { - expr = take 3 (strings.splitString "/" (derivation { - name = "name"; - builder = "builder"; - system = "system"; - })); - expected = ["" "nix" "store"]; - }; - - testSplitVersionSingle = { - expr = versions.splitVersion "1"; - expected = [ "1" ]; - }; - - testSplitVersionDouble = { - expr = versions.splitVersion "1.2"; - expected = [ "1" "2" ]; - }; - - testSplitVersionTriple = { - expr = versions.splitVersion "1.2.3"; - expected = [ "1" "2" "3" ]; - }; - - testPadVersionLess = { - expr = versions.pad 3 "1.2"; - expected = "1.2.0"; - }; - - testPadVersionLessExtra = { - expr = versions.pad 3 "1.3-rc1"; - expected = "1.3.0-rc1"; - }; - - testPadVersionMore = { - expr = versions.pad 3 "1.2.3.4"; - expected = "1.2.3"; - }; - - testIsStorePath = { - expr = - 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"; - nonAbsolute = isStorePath (concatStrings (tail (stringToCharacters goodPath))); - asPath = isStorePath (/. + goodPath); - otherPath = isStorePath "/something/else"; - otherVals = { - attrset = isStorePath {}; - list = isStorePath []; - int = isStorePath 42; - }; - }; - expected = { - storePath = true; - # storePathDerivation = true; - storePathAppendix = false; - nonAbsolute = false; - asPath = true; - otherPath = false; - otherVals = { - attrset = false; - list = false; - int = false; - }; - }; - }; - - testEscapeXML = { - expr = escapeXML ''"test" 'test' < & >''; - expected = ""test" 'test' < & >"; - }; - - testToShellVars = { - expr = '' - ${toShellVars { - STRing01 = "just a 'string'"; - _array_ = [ "with" "more strings" ]; - assoc."with some" = '' - strings - possibly newlines - ''; - drv = { - outPath = "/drv"; - foo = "ignored attribute"; - }; - path = /path; - stringable = { - __toString = _: "hello toString"; - bar = "ignored attribute"; - }; - }} - ''; - expected = '' - STRing01='just a '\'''string'\'''' - declare -a _array_=('with' 'more strings') - declare -A assoc=(['with some']='strings - possibly newlines - ') - drv='/drv' - path='/path' - stringable='hello toString' - ''; - }; - - testHasInfixFalse = { - expr = hasInfix "c" "abde"; - expected = false; - }; - - testHasInfixTrue = { - expr = hasInfix "c" "abcde"; - expected = true; - }; - - # testHasInfixDerivation = { - # expr = hasInfix "hello" (import ../.. { system = "x86_64-linux"; }).hello; - # expected = true; - # }; - - testHasInfixPath = { - expr = hasInfix "tests" ./.; - expected = true; - }; - - testHasInfixPathStoreDir = { - expr = hasInfix builtins.storeDir ./.; - expected = true; - }; - - testHasInfixToString = { - expr = hasInfix "a" { __toString = _: "a"; }; - expected = true; - }; - - testRemovePrefixExample1 = { - expr = removePrefix "foo." "foo.bar.baz"; - expected = "bar.baz"; - }; - testRemovePrefixExample2 = { - expr = removePrefix "xxx" "foo.bar.baz"; - expected = "foo.bar.baz"; - }; - testRemovePrefixEmptyPrefix = { - expr = removePrefix "" "foo"; - expected = "foo"; - }; - testRemovePrefixEmptyString = { - expr = removePrefix "foo" ""; - expected = ""; - }; - testRemovePrefixEmptyBoth = { - expr = removePrefix "" ""; - expected = ""; - }; - - testNormalizePath = { - expr = strings.normalizePath "//a/b//c////d/"; - expected = "/a/b/c/d/"; - }; - - testCharToInt = { - expr = strings.charToInt "A"; - expected = 65; - }; - - testEscapeC = { - expr = strings.escapeC [ " " ] "Hello World"; - expected = "Hello\\x20World"; - }; - - testEscapeURL = testAllTrue [ - ("" == strings.escapeURL "") - ("Hello" == strings.escapeURL "Hello") - ("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:/@$'()*,;") - ]; - - testToInt = testAllTrue [ - # Naive - (123 == toInt "123") - (0 == toInt "0") - # Whitespace Padding - (123 == toInt " 123") - (123 == toInt "123 ") - (123 == toInt " 123 ") - (123 == toInt " 123 ") - (0 == toInt " 0") - (0 == toInt "0 ") - (0 == toInt " 0 ") - (-1 == toInt "-1") - (-1 == toInt " -1 ") - ]; - - 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; } ) - ]; - - testToIntBase10 = testAllTrue [ - # Naive - (123 == toIntBase10 "123") - (0 == toIntBase10 "0") - # Whitespace Padding - (123 == toIntBase10 " 123") - (123 == toIntBase10 "123 ") - (123 == toIntBase10 " 123 ") - (123 == toIntBase10 " 123 ") - (0 == toIntBase10 " 0") - (0 == toIntBase10 "0 ") - (0 == toIntBase10 " 0 ") - # Zero Padding - (123 == toIntBase10 "0123") - (123 == toIntBase10 "0000123") - (0 == toIntBase10 "000000") - # Whitespace and Zero Padding - (123 == toIntBase10 " 0123") - (123 == toIntBase10 "0123 ") - (123 == toIntBase10 " 0123 ") - (123 == toIntBase10 " 0000123") - (123 == toIntBase10 "0000123 ") - (123 == toIntBase10 " 0000123 ") - (0 == toIntBase10 " 000000") - (0 == toIntBase10 "000000 ") - (0 == toIntBase10 " 000000 ") - (-1 == toIntBase10 "-1") - (-1 == toIntBase10 " -1 ") - ]; - - 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; } ) - ]; - -# LISTS - - testFilter = { - 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 ]; - }; - 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")]); - expected = 2; - }; - testIfilter0All = { - 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 ]; - expected = [ 10 ]; - }; - testIfilter0Last = { - expr = ifilter0 (i: v: i == 5) [ 10 11 12 13 14 15 ]; - expected = [ 15 ]; - }; - - testFold = - let - f = op: fold: fold op 0 (range 0 100); - # fold with associative operator - assoc = f builtins.add; - # fold with non-associative operator - nonAssoc = f builtins.sub; - in { - expr = { - assocRight = assoc foldr; - # right fold with assoc operator is same as left fold - assocRightIsLeft = assoc foldr == assoc foldl; - nonAssocRight = nonAssoc foldr; - nonAssocLeft = nonAssoc foldl; - # with non-assoc operator the fold results are not the same - nonAssocRightIsNotLeft = nonAssoc foldl != nonAssoc foldr; - # fold is an alias for foldr - foldIsRight = nonAssoc fold == nonAssoc foldr; - }; - expected = { - assocRight = 5050; - assocRightIsLeft = true; - nonAssocRight = 50; - nonAssocLeft = (-5050); - nonAssocRightIsNotLeft = true; - foldIsRight = true; - }; - }; - - testFoldl'Empty = { - expr = foldl' (acc: el: abort "operation not called") 0 [ ]; - expected = 0; - }; - - testFoldl'IntegerAdding = { - 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 ]; - }; - - # Compared to builtins.foldl', lib.foldl' evaluates the first accumulator strictly too - testFoldl'StrictInitial = { - expr = (builtins.tryEval (foldl' (acc: el: el) (throw "hello") [])).success; - expected = false; - }; - - # Make sure we don't get a stack overflow for large lists - # This number of elements would notably cause a stack overflow if it was implemented without the `foldl'` builtin - testFoldl'Large = { - expr = foldl' (acc: el: acc + el) 0 (range 0 100000); - expected = 5000050000; - }; - - 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 ])) - ]; - - testListHasPrefixExample1 = { - expr = lists.hasPrefix [ 1 2 ] [ 1 2 3 4 ]; - expected = true; - }; - testListHasPrefixExample2 = { - expr = lists.hasPrefix [ 0 1 ] [ 1 2 3 4 ]; - expected = false; - }; - testListHasPrefixLazy = { - expr = lists.hasPrefix [ 1 ] [ 1 (abort "lib.lists.hasPrefix is not lazy") ]; - expected = true; - }; - testListHasPrefixEmptyPrefix = { - expr = lists.hasPrefix [ ] [ 1 2 ]; - expected = true; - }; - testListHasPrefixEmptyList = { - expr = lists.hasPrefix [ 1 2 ] [ ]; - expected = false; - }; - - testListRemovePrefixExample1 = { - 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; - expected = false; - }; - testListRemovePrefixEmptyPrefix = { - expr = lists.removePrefix [ ] [ 1 2 ]; - expected = [ 1 2 ]; - }; - testListRemovePrefixEmptyList = { - 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; } - ]; - 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 ]; - }; - testListCommonPrefixExample2 = { - 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 ]; - expected = [ ]; - }; - testListCommonPrefixEmpty = { - expr = lists.commonPrefix [ ] [ 1 2 3 ]; - expected = [ ]; - }; - testListCommonPrefixSame = { - 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")]; - expected = [ 1 ]; - }; - # This would stack overflow if `commonPrefix` were implemented using recursion - testListCommonPrefixLong = - let - longList = genList (n: n) 100000; - in { - expr = lists.commonPrefix longList longList; - expected = longList; - }; - - testSort = { - expr = sort builtins.lessThan [ 40 2 30 42 ]; - expected = [2 30 40 42]; - }; - - testSortOn = { - expr = sortOn stringLength [ "aa" "b" "cccc" ]; - expected = [ "b" "aa" "cccc" ]; - }; - - testSortOnEmpty = { - expr = sortOn (throw "nope") [ ]; - expected = [ ]; - }; - - 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 ]; - }; - - testReplicate = { - expr = replicate 3 "a"; - expected = ["a" "a" "a"]; - }; - - testToIntShouldConvertStringToInt = { - expr = toInt "27"; - expected = 27; - }; - - testToIntShouldThrowErrorIfItCouldNotConvertToInt = { - expr = builtins.tryEval (toInt "\"foo\""); - expected = { success = false; value = false; }; - }; - - testHasAttrByPathTrue = { - expr = hasAttrByPath ["a" "b"] { a = { b = "yey"; }; }; - expected = true; - }; - - testHasAttrByPathFalse = { - expr = hasAttrByPath ["a" "b"] { a = { c = "yey"; }; }; - expected = false; - }; - - testHasAttrByPathNonStrict = { - expr = hasAttrByPath [] (throw "do not use"); - expected = true; - }; - - testLongestValidPathPrefix_empty_empty = { - expr = attrsets.longestValidPathPrefix [ ] { }; - expected = [ ]; - }; - - testLongestValidPathPrefix_empty_nonStrict = { - expr = attrsets.longestValidPathPrefix [ ] (throw "do not use"); - expected = [ ]; - }; - - testLongestValidPathPrefix_zero = { - expr = attrsets.longestValidPathPrefix [ "a" (throw "do not use") ] { d = null; }; - expected = [ ]; - }; - - testLongestValidPathPrefix_zero_b = { - expr = attrsets.longestValidPathPrefix [ "z" "z" ] "remarkably harmonious"; - expected = [ ]; - }; - - testLongestValidPathPrefix_one = { - expr = attrsets.longestValidPathPrefix [ "a" "b" "c" ] { a = null; }; - expected = [ "a" ]; - }; - - testLongestValidPathPrefix_two = { - 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" ]; - }; - - testLongestValidPathPrefix_three_extra = { - 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 ]; - expected = 1; - }; - - testFindFirstIndexExample2 = { - 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 []; - expected = null; - }; - - testFindFirstIndexSingleMatch = { - expr = lists.findFirstIndex (x: x == 5) null [ 5 ]; - expected = 0; - }; - - testFindFirstIndexSingleDefault = { - 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; }; - }; - - # Makes sure that the implementation doesn't cause a stack overflow - testFindFirstIndexBig = { - expr = lists.findFirstIndex (x: x == 1000000) null (range 0 1000000); - expected = 1000000; - }; - - testFindFirstIndexLazy = { - 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 ]; - expected = 6; - }; - - testFindFirstExample2 = { - expr = lists.findFirst (x: x > 9) 7 [ 1 6 4 ]; - expected = 7; - }; - - testAllUnique_true = { - expr = allUnique [ 3 2 4 1 ]; - expected = true; - }; - testAllUnique_false = { - expr = allUnique [ 3 2 3 4 ]; - expected = false; - }; - -# ATTRSETS - - testConcatMapAttrs = { - expr = concatMapAttrs - (name: value: { - ${name} = value; - ${name + value} = value; - }) - { - foo = "bar"; - foobar = "baz"; - }; - expected = { - foo = "bar"; - foobar = "baz"; - foobarbaz = "baz"; - }; - }; - - # 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; - }; - # 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"; }; - # 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; }; - }; - expected = { - example = { - sum = 11; - names = [ "bar" "foo" ]; - }; - emptySet = 123; - valuesNotNeeded = 3; - trivialAcc = 121; - }; - }; - - - testMergeAttrsListExample1 = { - 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; }; - }; - 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) - ) 100; - 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; - }; - 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 - }; - }; - - testMatchAttrsMatchingExact = { - expr = matchAttrs { cpu = { bits = 64; }; } { cpu = { bits = 64; }; }; - expected = true; - }; - - testMatchAttrsMismatch = { - expr = matchAttrs { cpu = { bits = 128; }; } { cpu = { bits = 64; }; }; - expected = false; - }; - - testMatchAttrsMatchingImplicit = { - expr = matchAttrs { cpu = { }; } { cpu = { bits = 64; }; }; - expected = true; - }; - - testMatchAttrsMissingAttrs = { - expr = matchAttrs { cpu = {}; } { }; - expected = false; - }; - - testOverrideExistingEmpty = { - expr = overrideExisting {} { a = 1; }; - expected = {}; - }; - - testOverrideExistingDisjoint = { - expr = overrideExisting { b = 2; } { a = 1; }; - 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;}]); - }; - expected = { - isReverseToAttrsToList = true; - isReverseToListToAttrs = true; - testDuplicatePruningBehaviour = [{name="a"; value=2;}]; - }; - }; - - 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"; - 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; - expected = { - int = "42"; - string = ''fo"o''; - bool = "true"; - bool2 = "false"; - null = "null"; - # float = "42.23" true false [ "bar" ] ]''; - }; - }; - - testToKeyValue = { - expr = generators.toKeyValue {} { - key = "value"; - "other=key" = "baz"; - }; - expected = '' - key=value - other\=key=baz - ''; - }; - - testToINIEmpty = { - expr = generators.toINI {} {}; - expected = ""; - }; - - testToINIEmptySection = { - expr = generators.toINI {} { foo = {}; bar = {}; }; - expected = '' - [bar] - - [foo] - ''; - }; - - testToINIDuplicateKeys = { - expr = generators.toINI { listsAsDuplicateKeys = true; } { foo.bar = true; baz.qux = [ 1 false ]; }; - expected = '' - [baz] - qux=1 - qux=false - - [foo] - bar=true - ''; - }; - - testToINIDefaultEscapes = { - expr = generators.toINI {} { - "no [ and ] allowed unescaped" = { - "and also no = in keys" = 42; - }; - }; - expected = '' - [no \[ and \] allowed unescaped] - and also no \= in keys=42 - ''; - }; - - testToINIDefaultFull = { - expr = generators.toINI {} { - "section 1" = { - attribute1 = 5; - x = "Me-se JarJar Binx"; - # booleans are converted verbatim by default - boolean = false; - }; - "foo[]" = { - "he\\h=he" = "this is okay"; - }; - }; - expected = '' - [foo\[\]] - he\h\=he=this is okay - - [section 1] - attribute1=5 - boolean=false - x=Me-se JarJar Binx - ''; - }; - - testToINIWithGlobalSectionEmpty = { - expr = generators.toINIWithGlobalSection {} { - globalSection = { - }; - sections = { - }; - }; - expected = '' - ''; - }; - - testToINIWithGlobalSectionGlobalEmptyIsTheSameAsToINI = - let - sections = { - "section 1" = { - attribute1 = 5; - x = "Me-se JarJar Binx"; - }; - "foo" = { - "he\\h=he" = "this is okay"; - }; - }; - in { - expr = - generators.toINIWithGlobalSection {} { - globalSection = {}; - sections = sections; - }; - expected = generators.toINI {} sections; - }; - - testToINIWithGlobalSectionFull = { - expr = generators.toINIWithGlobalSection {} { - globalSection = { - foo = "bar"; - test = false; - }; - sections = { - "section 1" = { - attribute1 = 5; - x = "Me-se JarJar Binx"; - }; - "foo" = { - "he\\h=he" = "this is okay"; - }; - }; - }; - expected = '' - foo=bar - test=false - - [foo] - he\h\=he=this is okay - - [section 1] - attribute1=5 - x=Me-se JarJar Binx - ''; - }; - - testToGitINI = { - expr = generators.toGitINI { - user = { - email = "user@example.org"; - name = "John Doe"; - signingKey = "00112233445566778899AABBCCDDEEFF"; - }; - gpg.program = "path-to-gpg"; - tag.gpgSign = true; - include.path = "~/path/to/config.inc"; - includeIf."gitdif:~/src/dir".path = "~/path/to/conditional.inc"; - extra = { - boolean = true; - integer = 38; - name = "value"; - subsection.value = "test"; - };}; - expected = '' - [extra] - ${"\t"}boolean = true - ${"\t"}integer = 38 - ${"\t"}name = "value" - - [extra "subsection"] - ${"\t"}value = "test" - - [gpg] - ${"\t"}program = "path-to-gpg" - - [include] - ${"\t"}path = "~/path/to/config.inc" - - [includeIf "gitdif:~/src/dir"] - ${"\t"}path = "~/path/to/conditional.inc" - - [tag] - ${"\t"}gpgSign = true - - [user] - ${"\t"}email = "user@example.org" - ${"\t"}name = "John Doe" - ${"\t"}signingKey = "00112233445566778899AABBCCDDEEFF" - ''; - }; - - # right now only invocation check - testToJSONSimple = - 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; - # 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; - }; - 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); - expected = "{\n b = 1;\n c = {\n b = \"\";\n c = {\n b = \"\";\n c = \"\";\n };\n };\n}"; - }; - - testToPrettyLimitThrow = - let - a.b = 1; - a.c = a; - in { - expr = (builtins.tryEval - (generators.toPretty { } (generators.withRecursion { depthLimit = 2; } a))).success; - expected = false; - }; - - testWithRecursionDealsWithFunctors = - let - functor = { - __functor = self: { a, b, }: null; - }; - a = { - value = "1234"; - b = functor; - c.d = functor; - }; - 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"; }; - newlinestring = "\n"; - multilinestring = '' - hello - ''${there} - te'''st - ''; - multilinestring' = '' - hello - there - test''; - }; - expected = { - list = '' - [ - 3 - 4 - [ - false - ] - ]''; - attrs = '' - { - bar = { - foo = "baz"; - }; - foo = null; - }''; - newlinestring = "''\n \n''"; - multilinestring = '' - ''' - hello - '''''${there} - te''''st - '''''; - multilinestring' = '' - ''' - hello - there - test'''''; - - }; - }; - - testToPrettyAllowPrettyValues = { - expr = generators.toPretty { allowPrettyValues = true; } - { __pretty = v: "«" + v + "»"; val = "foo"; }; - expected = "«foo»"; - }; - - testToPlist = { - expr = mapAttrs (const (generators.toPlist { })) { - value = { - nested.values = { - int = 42; - float = 0.1337; - bool = true; - emptystring = ""; - string = "fn\${o}\"r\\d"; - newlinestring = "\n"; - path = /. + "/foo"; - null_ = null; - list = [ 3 4 "test" ]; - emptylist = []; - attrs = { foo = null; "foo b/ar" = "baz"; }; - emptyattrs = {}; - }; - }; - }; - expected = { value = builtins.readFile ./test-to-plist-expected.plist; }; - }; - - testToLuaEmptyAttrSet = { - expr = generators.toLua {} {}; - expected = ''{}''; - }; - - testToLuaEmptyList = { - expr = generators.toLua {} []; - expected = ''{}''; - }; - - testToLuaListOfVariousTypes = { - expr = generators.toLua {} [ null 43 3.14159 true ]; - expected = '' - { - nil, - 43, - 3.14159, - true - }''; - }; - - testToLuaString = { - expr = generators.toLua {} ''double-quote (") and single quotes (')''; - expected = ''"double-quote (\") and single quotes (')"''; - }; - - testToLuaAttrsetWithLuaInline = { - expr = generators.toLua {} { x = generators.mkLuaInline ''"abc" .. "def"''; }; - expected = '' - { - ["x"] = ("abc" .. "def") - }''; - }; - - testToLuaAttrsetWithSpaceInKey = { - expr = generators.toLua {} { "some space and double-quote (\")" = 42; }; - expected = '' - { - ["some space and double-quote (\")"] = 42 - }''; - }; - - testToLuaWithoutMultiline = { - expr = generators.toLua { multiline = false; } [ 41 43 ]; - expected = ''{ 41, 43 }''; - }; - - testToLuaEmptyBindings = { - expr = generators.toLua { asBindings = true; } {}; - expected = ""; - }; - - testToLuaBindings = { - expr = generators.toLua { asBindings = true; } { x1 = 41; _y = { a = 43; }; }; - expected = '' - _y = { - ["a"] = 43 - } - x1 = 41 - ''; - }; - - testToLuaPartialTableBindings = { - expr = generators.toLua { asBindings = true; } { "x.y" = 42; }; - expected = '' - x.y = 42 - ''; - }; - - testToLuaIndentedBindings = { - expr = generators.toLua { asBindings = true; indent = " "; } { x = { y = 42; }; }; - expected = " x = {\n [\"y\"] = 42\n }\n"; - }; - - testToLuaBindingsWithSpace = testingThrow ( - generators.toLua { asBindings = true; } { "with space" = 42; } - ); - - testToLuaBindingsWithLeadingDigit = testingThrow ( - generators.toLua { asBindings = true; } { "11eleven" = 42; } - ); - - testToLuaBasicExample = { - expr = generators.toLua {} { - cmd = [ "typescript-language-server" "--stdio" ]; - settings.workspace.library = generators.mkLuaInline ''vim.api.nvim_get_runtime_file("", true)''; - }; - expected = '' - { - ["cmd"] = { - "typescript-language-server", - "--stdio" - }, - ["settings"] = { - ["workspace"] = { - ["library"] = (vim.api.nvim_get_runtime_file("", true)) - } - } - }''; - }; - -# CLI - - testToGNUCommandLine = { - expr = cli.toGNUCommandLine {} { - data = builtins.toJSON { id = 0; }; - X = "PUT"; - retry = 3; - retry-delay = null; - 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" - "--verbose" - ]; - }; - - testToGNUCommandLineShell = { - expr = cli.toGNUCommandLineShell {} { - data = builtins.toJSON { id = 0; }; - X = "PUT"; - retry = 3; - retry-delay = null; - 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' '--verbose'"; - }; - - testSanitizeDerivationNameLeadingDots = testSanitizeDerivationName { - name = "..foo"; - expected = "foo"; - }; - - testSanitizeDerivationNameUnicode = testSanitizeDerivationName { - name = "fö"; - expected = "f-"; - }; - - testSanitizeDerivationNameAscii = testSanitizeDerivationName { - name = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"; - expected = "-+--.-0123456789-=-?-ABCDEFGHIJKLMNOPQRSTUVWXYZ-_-abcdefghijklmnopqrstuvwxyz-"; - }; - - testSanitizeDerivationNameTooLong = testSanitizeDerivationName { - name = "This string is loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"; - expected = "loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"; - }; - - testSanitizeDerivationNameTooLongWithInvalid = testSanitizeDerivationName { - name = "Hello there aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &&&&&&&&"; - expected = "there-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-"; - }; - - testSanitizeDerivationNameEmpty = testSanitizeDerivationName { - name = ""; - expected = "unknown"; - }; - - 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; - }; - }; - - 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 = [ {} ]; - }; - - testCartesianProductOfOneSet = { - expr = cartesianProduct { a = [ 1 2 3 ]; }; - expected = [ { a = 1; } { a = 2; } { a = 3; } ]; - }; - - testCartesianProductOfTwoSets = { - expr = cartesianProduct { a = [ 1 ]; b = [ 10 20 ]; }; - expected = [ - { a = 1; b = 10; } - { a = 1; b = 20; } - ]; - }; - - testCartesianProductOfTwoSetsWithOneEmpty = { - expr = cartesianProduct { a = [ ]; b = [ 10 20 ]; }; - expected = [ ]; - }; - - testCartesianProductOfThreeSets = { - expr = cartesianProduct { - 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 = 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 = 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 = 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 = 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; } - ]; - }; - - testMapCartesianProductOfOneSet = { - 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 ]; - }; - - testMapCartesianProcutOfTwoSetsWithOneEmpty = { - 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 ]; - }; - - # The example from the showAttrPath documentation - testShowAttrPathExample = { - expr = showAttrPath [ "foo" "10" "bar" ]; - expected = "foo.\"10\".bar"; - }; - - testShowAttrPathEmpty = { - expr = showAttrPath []; - expected = ""; - }; - - testShowAttrPathVarious = { - expr = showAttrPath [ - "." - "foo" - "2" - "a2-b" - "_bc'de" - ]; - expected = ''".".foo."2".a2-b._bc'de''; - }; - - 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 ]; - }; - }; - - testGroupBy' = { - 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" ]; - update = old: { d = old.c; }; - } - { - path = [ "a" "b" "c" ]; - update = old: old + 1; - } - { - path = [ "x" "y" ]; - update = old: "xy"; - } - ] { a.b.c = 0; }; - expected = { a = { b = { d = 1; }; }; x = { y = "xy"; }; }; - }; - - # If there are no updates, the value is passed through - testUpdateManyAttrsByPathNone = { - expr = updateManyAttrsByPath [] "something"; - expected = "something"; - }; - - # A single update to the root path is just like applying the function directly - testUpdateManyAttrsByPathSingleIncrement = { - expr = updateManyAttrsByPath [ - { - path = [ ]; - update = old: old + 1; - } - ] 0; - expected = 1; - }; - - # Multiple updates can be applied are done in order - testUpdateManyAttrsByPathMultipleIncrements = { - expr = updateManyAttrsByPath [ - { - path = [ ]; - update = old: old + "a"; - } - { - path = [ ]; - update = old: old + "b"; - } - { - path = [ ]; - update = old: old + "c"; - } - ] ""; - expected = "abc"; - }; - - # If an update doesn't use the value, all previous updates are not evaluated - testUpdateManyAttrsByPathLazy = { - expr = updateManyAttrsByPath [ - { - path = [ ]; - update = old: old + throw "nope"; - } - { - path = [ ]; - update = old: "untainted"; - } - ] (throw "start"); - expected = "untainted"; - }; - - # Deeply nested attributes can be updated without affecting others - testUpdateManyAttrsByPathDeep = { - 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; - }; - expected = { - a.b.c = 1; - - a.b.z = 0; - a.y.z = 0; - x.y.z = 0; - }; - }; - - # Nested attributes are updated first - testUpdateManyAttrsByPathNestedBeforehand = { - expr = updateManyAttrsByPath [ - { - path = [ "a" ]; - update = old: old // { x = old.b; }; - } - { - path = [ "a" "b" ]; - update = old: old + 1; - } - ] { - a.b = 0; - }; - expected = { - a.b = 1; - a.x = 1; - }; - }; - - ## Levenshtein distance functions and co. - testCommonPrefixLengthEmpty = { - expr = strings.commonPrefixLength "" "hello"; - expected = 0; - }; - - testCommonPrefixLengthSame = { - expr = strings.commonPrefixLength "hello" "hello"; - expected = 5; - }; - - testCommonPrefixLengthDiffering = { - expr = strings.commonPrefixLength "hello" "hey"; - expected = 2; - }; - - testCommonSuffixLengthEmpty = { - expr = strings.commonSuffixLength "" "hello"; - expected = 0; - }; - - testCommonSuffixLengthSame = { - expr = strings.commonSuffixLength "hello" "hello"; - expected = 5; - }; - - testCommonSuffixLengthDiffering = { - expr = strings.commonSuffixLength "test" "rest"; - expected = 3; - }; - - testLevenshteinEmpty = { - expr = strings.levenshtein "" ""; - expected = 0; - }; - - testLevenshteinOnlyAdd = { - expr = strings.levenshtein "" "hello there"; - expected = 11; - }; - - testLevenshteinOnlyRemove = { - expr = strings.levenshtein "hello there" ""; - expected = 11; - }; - - testLevenshteinOnlyTransform = { - expr = strings.levenshtein "abcdef" "ghijkl"; - expected = 6; - }; - - testLevenshteinMixed = { - expr = strings.levenshtein "kitchen" "sitting"; - expected = 5; - }; - - testLevenshteinAtMostZeroFalse = { - expr = strings.levenshteinAtMost 0 "foo" "boo"; - expected = false; - }; - - testLevenshteinAtMostZeroTrue = { - expr = strings.levenshteinAtMost 0 "foo" "foo"; - expected = true; - }; - - testLevenshteinAtMostOneFalse = { - expr = strings.levenshteinAtMost 1 "car" "ct"; - expected = false; - }; - - testLevenshteinAtMostOneTrue = { - expr = strings.levenshteinAtMost 1 "car" "cr"; - expected = true; - }; - - # We test levenshteinAtMost 2 particularly well because it uses a complicated - # implementation - testLevenshteinAtMostTwoIsEmpty = { - expr = strings.levenshteinAtMost 2 "" ""; - expected = true; - }; - - testLevenshteinAtMostTwoIsZero = { - expr = strings.levenshteinAtMost 2 "abcdef" "abcdef"; - expected = true; - }; - - testLevenshteinAtMostTwoIsOne = { - expr = strings.levenshteinAtMost 2 "abcdef" "abddef"; - expected = true; - }; - - testLevenshteinAtMostTwoDiff0False = { - expr = strings.levenshteinAtMost 2 "abcdef" "aczyef"; - expected = false; - }; - - testLevenshteinAtMostTwoDiff0Outer = { - expr = strings.levenshteinAtMost 2 "abcdef" "zbcdez"; - expected = true; - }; - - testLevenshteinAtMostTwoDiff0DelLeft = { - expr = strings.levenshteinAtMost 2 "abcdef" "bcdefz"; - expected = true; - }; - - testLevenshteinAtMostTwoDiff0DelRight = { - expr = strings.levenshteinAtMost 2 "abcdef" "zabcde"; - expected = true; - }; - - testLevenshteinAtMostTwoDiff1False = { - expr = strings.levenshteinAtMost 2 "abcdef" "bddez"; - expected = false; - }; - - testLevenshteinAtMostTwoDiff1DelLeft = { - expr = strings.levenshteinAtMost 2 "abcdef" "bcdez"; - expected = true; - }; - - testLevenshteinAtMostTwoDiff1DelRight = { - expr = strings.levenshteinAtMost 2 "abcdef" "zbcde"; - expected = true; - }; - - testLevenshteinAtMostTwoDiff2False = { - expr = strings.levenshteinAtMost 2 "hello" "hxo"; - expected = false; - }; - - testLevenshteinAtMostTwoDiff2True = { - expr = strings.levenshteinAtMost 2 "hello" "heo"; - expected = true; - }; - - testLevenshteinAtMostTwoDiff3 = { - expr = strings.levenshteinAtMost 2 "hello" "ho"; - expected = false; - }; - - testLevenshteinAtMostThreeFalse = { - expr = strings.levenshteinAtMost 3 "hello" "Holla!"; - expected = false; - }; - - testLevenshteinAtMostThreeTrue = { - expr = strings.levenshteinAtMost 3 "hello" "Holla"; - expected = true; - }; - - # DERIVATIONS - - testLazyDerivationIsLazyInDerivationForAttrNames = { - expr = attrNames (lazyDerivation { - derivation = throw "not lazy enough"; - }); - # 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" ]; - }; - - testLazyDerivationIsLazyInDerivationForPassthruAttr = { - 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; - expected = "whatever is in foo"; - }; - - testLazyDerivationIsLazyInDerivationForMeta = { - 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"; - }; - 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"; - }; - in { - expr = lazyDerivation { inherit derivation; outputs = ["out" "dev"]; passthru.meta.position = "/hi:23"; }; - expected = derivation; - }; - - testTypeDescriptionInt = { - expr = (with types; int).description; - expected = "signed integer"; - }; - testTypeDescriptionIntsPositive = { - expr = (with types; ints.positive).description; - expected = "positive integer, meaning >0"; - }; - testTypeDescriptionIntsPositiveOrEnumAuto = { - expr = (with types; either ints.positive (enum ["auto"])).description; - expected = ''positive integer, meaning >0, or value "auto" (singular enum)''; - }; - testTypeDescriptionListOfPositive = { - expr = (with types; listOf ints.positive).description; - expected = "list of (positive integer, meaning >0)"; - }; - testTypeDescriptionListOfInt = { - expr = (with types; listOf int).description; - expected = "list of signed integer"; - }; - testTypeDescriptionListOfListOfInt = { - expr = (with types; listOf (listOf int)).description; - expected = "list of list of signed integer"; - }; - testTypeDescriptionListOfEitherStrOrBool = { - expr = (with types; listOf (either str bool)).description; - expected = "list of (string or boolean)"; - }; - testTypeDescriptionEitherListOfStrOrBool = { - expr = (with types; either (listOf bool) str).description; - expected = "(list of boolean) or string"; - }; - testTypeDescriptionEitherStrOrListOfBool = { - expr = (with types; either str (listOf bool)).description; - expected = "string or list of boolean"; - }; - testTypeDescriptionOneOfListOfStrOrBool = { - expr = (with types; oneOf [ (listOf bool) str ]).description; - expected = "(list of boolean) or string"; - }; - testTypeDescriptionOneOfListOfStrOrBoolOrNumber = { - expr = (with types; oneOf [ (listOf bool) str number ]).description; - expected = "(list of boolean) or string or signed integer or floating point number"; - }; - testTypeDescriptionEitherListOfBoolOrEitherStringOrNumber = { - expr = (with types; either (listOf bool) (either str number)).description; - expected = "(list of boolean) or string or signed integer or floating point number"; - }; - testTypeDescriptionEitherEitherListOfBoolOrStringOrNumber = { - expr = (with types; either (either (listOf bool) str) number).description; - expected = "(list of boolean) or string or signed integer or floating point number"; - }; - testTypeDescriptionEitherNullOrBoolOrString = { - expr = (with types; either (nullOr bool) str).description; - expected = "null or boolean or string"; - }; - testTypeDescriptionEitherListOfEitherBoolOrStrOrInt = { - expr = (with types; either (listOf (either bool str)) int).description; - expected = "(list of (boolean or string)) or signed integer"; - }; - testTypeDescriptionEitherIntOrListOrEitherBoolOrStr = { - expr = (with types; either int (listOf (either bool str))).description; - expected = "signed integer or list of (boolean or string)"; - }; - -# Meta - testGetExe'Output = { - expr = getExe' { - type = "derivation"; - out = "somelonghash"; - bin = "somelonghash"; - } "executable"; - expected = "somelonghash/bin/executable"; - }; - - testGetExeOutput = { - expr = getExe { - type = "derivation"; - out = "somelonghash"; - bin = "somelonghash"; - meta.mainProgram = "mainProgram"; - }; - expected = "somelonghash/bin/mainProgram"; - }; - - testGetExe'FailureFirstArg = testingThrow ( - getExe' "not a derivation" "executable" - ); - - testGetExe'FailureSecondArg = testingThrow ( - getExe' { type = "derivation"; } "dir/executable" - ); - - testPlatformMatch = { - expr = meta.platformMatch { system = "x86_64-linux"; } "x86_64-linux"; - expected = true; - }; - - testPlatformMatchAttrs = { - expr = meta.platformMatch (systems.elaborate "x86_64-linux") (systems.elaborate "x86_64-linux").parsed; - expected = true; - }; - - testPlatformMatchNoMatch = { - expr = meta.platformMatch { system = "x86_64-darwin"; } "x86_64-linux"; - expected = false; - }; - - testPlatformMatchMissingSystem = { - expr = meta.platformMatch { } "x86_64-linux"; - expected = false; - }; - - testPackagesFromDirectoryRecursive = { - expr = packagesFromDirectoryRecursive { - callPackage = path: overrides: import path overrides; - directory = ./packages-from-directory; - }; - expected = { - a = "a"; - b = "b"; - # Note: Other files/directories in `./test-data/c/` are ignored and can be - # used by `package.nix`. - c = "c"; - my-namespace = { - d = "d"; - e = "e"; - f = "f"; - my-sub-namespace = { - g = "g"; - h = "h"; - }; - }; - }; - }; - - # Check that `packagesFromDirectoryRecursive` can process a directory with a - # top-level `package.nix` file into a single package. - testPackagesFromDirectoryRecursiveTopLevelPackageNix = { - expr = packagesFromDirectoryRecursive { - callPackage = path: overrides: import path overrides; - directory = ./packages-from-directory/c; - }; - expected = "c"; - }; -} diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh deleted file mode 100755 index 750b1d0..0000000 --- a/lib/tests/modules.sh +++ /dev/null @@ -1,525 +0,0 @@ -#!/usr/bin/env bash - -# This script is used to test that the module system is working as expected. -# Executing it runs tests for `lib.modules`, `lib.options` and `lib.types`. -# By default it test the version of nixpkgs which is defined in the NIX_PATH. -# -# Run: -# [nixpkgs]$ lib/tests/modules.sh -# or: -# [nixpkgs]$ nix-build lib/tests/release.nix - -set -o errexit -o noclobber -o nounset -o pipefail -shopt -s failglob inherit_errexit - -# https://stackoverflow.com/a/246128/6605742 -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" - -cd "$DIR"/modules - -pass=0 -fail=0 - -evalConfig() { - local attr=$1 - shift - local script="import ./default.nix { modules = [ $* ];}" - nix-instantiate --timeout 1 -E "$script" -A "$attr" --eval-only --show-trace --read-write-mode --json -} - -reportFailure() { - local attr=$1 - shift - local script="import ./default.nix { modules = [ $* ];}" - echo 2>&1 "$ nix-instantiate -E '$script' -A '$attr' --eval-only --json" - evalConfig "$attr" "$@" || true - ((++fail)) -} - -checkConfigOutput() { - local outputContains=$1 - shift - if evalConfig "$@" 2>/dev/null | grep -E --silent "$outputContains" ; then - ((++pass)) - else - echo 2>&1 "error: Expected result matching '$outputContains', while evaluating" - reportFailure "$@" - fi -} - -checkConfigError() { - local errorContains=$1 - local err="" - shift - if err="$(evalConfig "$@" 2>&1 >/dev/null)"; then - echo 2>&1 "error: Expected error code, got exit code 0, while evaluating" - reportFailure "$@" - else - if echo "$err" | grep -zP --silent "$errorContains" ; then - ((++pass)) - else - echo 2>&1 "error: Expected error matching '$errorContains', while evaluating" - reportFailure "$@" - fi - fi -} - -# Shorthand meta attribute does not duplicate the config -checkConfigOutput '^"one two"$' config.result ./shorthand-meta.nix - -checkConfigOutput '^true$' config.result ./test-mergeAttrDefinitionsWithPrio.nix - -# Check that a module argument is passed, also when a default is available -# (but not needed) -# -# When the default is needed, we currently fail to do what the users expect, as -# we pass our own argument anyway, even if it *turns out* not to exist. -# -# The reason for this is that we don't know at invocation time what is in the -# _module.args option. That value is only available *after* all modules have been -# invoked. -# -# Hypothetically, Nix could help support this by giving access to the default -# values, through a new built-in function. -# However the default values are allowed to depend on other arguments, so those -# would have to be passed in somehow, making this not just a getter but -# something more complicated. -# -# At that point we have to wonder whether the extra complexity is worth the cost. -# Another - subjective - reason not to support it is that default values -# contradict the notion that an option has a single value, where _module.args -# is the option. -checkConfigOutput '^true$' config.result ./module-argument-default.nix - -# gvariant -checkConfigOutput '^true$' config.assertion ./gvariant.nix - -# https://github.com/NixOS/nixpkgs/pull/131205 -# We currently throw this error already in `config`, but throwing in `config.wrong1` would be acceptable. -checkConfigError 'It seems as if you.re trying to declare an option by placing it into .config. rather than .options.' config.wrong1 ./error-mkOption-in-config.nix -# We currently throw this error already in `config`, but throwing in `config.nest.wrong2` would be acceptable. -checkConfigError 'It seems as if you.re trying to declare an option by placing it into .config. rather than .options.' config.nest.wrong2 ./error-mkOption-in-config.nix -checkConfigError 'The option .sub.wrong2. does not exist. Definition values:' config.sub ./error-mkOption-in-submodule-config.nix -checkConfigError '.*This can happen if you e.g. declared your options in .types.submodule.' config.sub ./error-mkOption-in-submodule-config.nix -checkConfigError '.*A definition for option .bad. is not of type .non-empty .list of .submodule...\.' config.bad ./error-nonEmptyListOf-submodule.nix - -# types.attrTag -checkConfigOutput '^true$' config.okChecks ./types-attrTag.nix -checkConfigError 'A definition for option .intStrings\.syntaxError. is not of type .attribute-tagged union' config.intStrings.syntaxError ./types-attrTag.nix -checkConfigError 'A definition for option .intStrings\.syntaxError2. is not of type .attribute-tagged union' config.intStrings.syntaxError2 ./types-attrTag.nix -checkConfigError 'A definition for option .intStrings\.syntaxError3. is not of type .attribute-tagged union' config.intStrings.syntaxError3 ./types-attrTag.nix -checkConfigError 'A definition for option .intStrings\.syntaxError4. is not of type .attribute-tagged union' config.intStrings.syntaxError4 ./types-attrTag.nix -checkConfigError 'A definition for option .intStrings\.mergeError. is not of type .attribute-tagged union' config.intStrings.mergeError ./types-attrTag.nix -checkConfigError 'A definition for option .intStrings\.badTagError. is not of type .attribute-tagged union' config.intStrings.badTagError ./types-attrTag.nix -checkConfigError 'A definition for option .intStrings\.badTagTypeError\.left. is not of type .signed integer.' config.intStrings.badTagTypeError.left ./types-attrTag.nix -checkConfigError 'A definition for option .nested\.right\.left. is not of type .signed integer.' config.nested.right.left ./types-attrTag.nix -checkConfigError 'In attrTag, each tag value must be an option, but tag int was a bare type, not wrapped in mkOption.' config.opt.int ./types-attrTag-wrong-decl.nix - -# types.pathInStore -checkConfigOutput '".*/store/0lz9p8xhf89kb1c1kk6jxrzskaiygnlh-bash-5.2-p15.drv"' config.pathInStore.ok1 ./types.nix -checkConfigOutput '".*/store/0fb3ykw9r5hpayd05sr0cizwadzq1d8q-bash-5.2-p15"' config.pathInStore.ok2 ./types.nix -checkConfigOutput '".*/store/0fb3ykw9r5hpayd05sr0cizwadzq1d8q-bash-5.2-p15/bin/bash"' config.pathInStore.ok3 ./types.nix -checkConfigError 'A definition for option .* is not of type .path in the Nix store.. Definition values:\n\s*- In .*: ""' config.pathInStore.bad1 ./types.nix -checkConfigError 'A definition for option .* is not of type .path in the Nix store.. Definition values:\n\s*- In .*: ".*/store"' config.pathInStore.bad2 ./types.nix -checkConfigError 'A definition for option .* is not of type .path in the Nix store.. Definition values:\n\s*- In .*: ".*/store/"' config.pathInStore.bad3 ./types.nix -checkConfigError 'A definition for option .* is not of type .path in the Nix store.. Definition values:\n\s*- In .*: ".*/store/.links"' config.pathInStore.bad4 ./types.nix -checkConfigError 'A definition for option .* is not of type .path in the Nix store.. Definition values:\n\s*- In .*: "/foo/bar"' config.pathInStore.bad5 ./types.nix - -# Check boolean option. -checkConfigOutput '^false$' config.enable ./declare-enable.nix -checkConfigError 'The option .* does not exist. Definition values:\n\s*- In .*: true' config.enable ./define-enable.nix -checkConfigError 'The option .* does not exist. Definition values:\n\s*- In .*' config.enable ./define-enable-throw.nix -checkConfigError 'while evaluating a definition from `.*/define-enable-abort.nix' config.enable ./define-enable-abort.nix -checkConfigError 'while evaluating the error message for definitions for .enable., which is an option that does not exist' config.enable ./define-enable-abort.nix - -# Check boolByOr type. -checkConfigOutput '^false$' config.value.falseFalse ./boolByOr.nix -checkConfigOutput '^true$' config.value.trueFalse ./boolByOr.nix -checkConfigOutput '^true$' config.value.falseTrue ./boolByOr.nix -checkConfigOutput '^true$' config.value.trueTrue ./boolByOr.nix - -checkConfigOutput '^1$' config.bare-submodule.nested ./declare-bare-submodule.nix ./declare-bare-submodule-nested-option.nix -checkConfigOutput '^2$' config.bare-submodule.deep ./declare-bare-submodule.nix ./declare-bare-submodule-deep-option.nix -checkConfigOutput '^42$' config.bare-submodule.nested ./declare-bare-submodule.nix ./declare-bare-submodule-nested-option.nix ./declare-bare-submodule-deep-option.nix ./define-bare-submodule-values.nix -checkConfigOutput '^420$' config.bare-submodule.deep ./declare-bare-submodule.nix ./declare-bare-submodule-nested-option.nix ./declare-bare-submodule-deep-option.nix ./define-bare-submodule-values.nix -checkConfigOutput '^2$' config.bare-submodule.deep ./declare-bare-submodule.nix ./declare-bare-submodule-deep-option.nix ./define-shorthandOnlyDefinesConfig-true.nix -checkConfigError 'The option .bare-submodule.deep. in .*/declare-bare-submodule-deep-option.nix. is already declared in .*/declare-bare-submodule-deep-option-duplicate.nix' config.bare-submodule.deep ./declare-bare-submodule.nix ./declare-bare-submodule-deep-option.nix ./declare-bare-submodule-deep-option-duplicate.nix - -# Check integer types. -# unsigned -checkConfigOutput '^42$' config.value ./declare-int-unsigned-value.nix ./define-value-int-positive.nix -checkConfigError 'A definition for option .* is not of type.*unsigned integer.*. Definition values:\n\s*- In .*: -23' config.value ./declare-int-unsigned-value.nix ./define-value-int-negative.nix -# positive -checkConfigError 'A definition for option .* is not of type.*positive integer.*. Definition values:\n\s*- In .*: 0' config.value ./declare-int-positive-value.nix ./define-value-int-zero.nix -# between -checkConfigOutput '^42$' config.value ./declare-int-between-value.nix ./define-value-int-positive.nix -checkConfigError 'A definition for option .* is not of type.*between.*-21 and 43.*inclusive.*. Definition values:\n\s*- In .*: -23' config.value ./declare-int-between-value.nix ./define-value-int-negative.nix - -# Check either types -# types.either -checkConfigOutput '^42$' config.value ./declare-either.nix ./define-value-int-positive.nix -checkConfigOutput '^"24"$' config.value ./declare-either.nix ./define-value-string.nix -# types.oneOf -checkConfigOutput '^42$' config.value ./declare-oneOf.nix ./define-value-int-positive.nix -checkConfigOutput '^\[\]$' config.value ./declare-oneOf.nix ./define-value-list.nix -checkConfigOutput '^"24"$' config.value ./declare-oneOf.nix ./define-value-string.nix - -# Check mkForce without submodules. -set -- config.enable ./declare-enable.nix ./define-enable.nix -checkConfigOutput '^true$' "$@" -checkConfigOutput '^false$' "$@" ./define-force-enable.nix -checkConfigOutput '^false$' "$@" ./define-enable-force.nix - -# Check mkForce with option and submodules. -checkConfigError 'attribute .*foo.* .* not found' config.attrsOfSub.foo.enable ./declare-attrsOfSub-any-enable.nix -checkConfigOutput '^false$' config.attrsOfSub.foo.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo.nix -set -- config.attrsOfSub.foo.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo-enable.nix -checkConfigOutput '^true$' "$@" -checkConfigOutput '^false$' "$@" ./define-force-attrsOfSub-foo-enable.nix -checkConfigOutput '^false$' "$@" ./define-attrsOfSub-force-foo-enable.nix -checkConfigOutput '^false$' "$@" ./define-attrsOfSub-foo-force-enable.nix -checkConfigOutput '^false$' "$@" ./define-attrsOfSub-foo-enable-force.nix - -# Check overriding effect of mkForce on submodule definitions. -checkConfigError 'attribute .*bar.* .* not found' config.attrsOfSub.bar.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo.nix -checkConfigOutput '^false$' config.attrsOfSub.bar.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo.nix ./define-attrsOfSub-bar.nix -set -- config.attrsOfSub.bar.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo.nix ./define-attrsOfSub-bar-enable.nix -checkConfigOutput '^true$' "$@" -checkConfigError 'attribute .*bar.* .* not found' "$@" ./define-force-attrsOfSub-foo-enable.nix -checkConfigError 'attribute .*bar.* .* not found' "$@" ./define-attrsOfSub-force-foo-enable.nix -checkConfigOutput '^true$' "$@" ./define-attrsOfSub-foo-force-enable.nix -checkConfigOutput '^true$' "$@" ./define-attrsOfSub-foo-enable-force.nix - -# Check mkIf with submodules. -checkConfigError 'attribute .*foo.* .* not found' config.attrsOfSub.foo.enable ./declare-enable.nix ./declare-attrsOfSub-any-enable.nix -set -- config.attrsOfSub.foo.enable ./declare-enable.nix ./declare-attrsOfSub-any-enable.nix -checkConfigError 'attribute .*foo.* .* not found' "$@" ./define-if-attrsOfSub-foo-enable.nix -checkConfigError 'attribute .*foo.* .* not found' "$@" ./define-attrsOfSub-if-foo-enable.nix -checkConfigError 'attribute .*foo.* .* not found' "$@" ./define-attrsOfSub-foo-if-enable.nix -checkConfigOutput '^false$' "$@" ./define-attrsOfSub-foo-enable-if.nix -checkConfigOutput '^true$' "$@" ./define-enable.nix ./define-if-attrsOfSub-foo-enable.nix -checkConfigOutput '^true$' "$@" ./define-enable.nix ./define-attrsOfSub-if-foo-enable.nix -checkConfigOutput '^true$' "$@" ./define-enable.nix ./define-attrsOfSub-foo-if-enable.nix -checkConfigOutput '^true$' "$@" ./define-enable.nix ./define-attrsOfSub-foo-enable-if.nix - -# Check disabledModules with config definitions and option declarations. -set -- config.enable ./define-enable.nix ./declare-enable.nix -checkConfigOutput '^true$' "$@" -checkConfigOutput '^false$' "$@" ./disable-define-enable.nix -checkConfigOutput '^false$' "$@" ./disable-define-enable-string-path.nix -checkConfigError "The option .*enable.* does not exist. Definition values:\n\s*- In .*: true" "$@" ./disable-declare-enable.nix -checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-define-enable.nix ./disable-declare-enable.nix -checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-enable-modules.nix - -checkConfigOutput '^true$' 'config.positive.enable' ./disable-module-with-key.nix -checkConfigOutput '^false$' 'config.negative.enable' ./disable-module-with-key.nix -checkConfigError 'Module ..*disable-module-bad-key.nix. contains a disabledModules item that is an attribute set, presumably a module, that does not have a .key. attribute. .*' 'config.enable' ./disable-module-bad-key.nix - -# Not sure if we want to keep supporting module keys that aren't strings, paths or v?key, but we shouldn't remove support accidentally. -checkConfigOutput '^true$' 'config.positive.enable' ./disable-module-with-toString-key.nix -checkConfigOutput '^false$' 'config.negative.enable' ./disable-module-with-toString-key.nix - -# Check _module.args. -set -- config.enable ./declare-enable.nix ./define-enable-with-custom-arg.nix -checkConfigError 'while evaluating the module argument .*custom.* in .*define-enable-with-custom-arg.nix.*:' "$@" -checkConfigOutput '^true$' "$@" ./define-_module-args-custom.nix - -# Check that using _module.args on imports cause infinite recursions, with -# the proper error context. -set -- "$@" ./define-_module-args-custom.nix ./import-custom-arg.nix -checkConfigError 'while evaluating the module argument .*custom.* in .*import-custom-arg.nix.*:' "$@" -checkConfigError 'infinite recursion encountered' "$@" - -# Check _module.check. -set -- config.enable ./declare-enable.nix ./define-enable.nix ./define-attrsOfSub-foo.nix -checkConfigError 'The option .* does not exist. Definition values:\n\s*- In .*' "$@" -checkConfigOutput '^true$' "$@" ./define-module-check.nix - -# Check coerced value. -set -- -checkConfigOutput '^"42"$' config.value ./declare-coerced-value.nix -checkConfigOutput '^"24"$' config.value ./declare-coerced-value.nix ./define-value-string.nix -checkConfigError 'A definition for option .* is not.*string or signed integer convertible to it.*. Definition values:\n\s*- In .*: \[ \]' config.value ./declare-coerced-value.nix ./define-value-list.nix - -# Check coerced value with unsound coercion -checkConfigOutput '^12$' config.value ./declare-coerced-value-unsound.nix -checkConfigError 'A definition for option .* is not of type .*. Definition values:\n\s*- In .*: "1000"' config.value ./declare-coerced-value-unsound.nix ./define-value-string-bigint.nix -checkConfigError 'toInt: Could not convert .* to int' config.value ./declare-coerced-value-unsound.nix ./define-value-string-arbitrary.nix - -# Check mkAliasOptionModule. -checkConfigOutput '^true$' config.enable ./alias-with-priority.nix -checkConfigOutput '^true$' config.enableAlias ./alias-with-priority.nix -checkConfigOutput '^false$' config.enable ./alias-with-priority-can-override.nix -checkConfigOutput '^false$' config.enableAlias ./alias-with-priority-can-override.nix - -# Check mkPackageOption -checkConfigOutput '^"hello"$' config.package.pname ./declare-mkPackageOption.nix -checkConfigOutput '^"hello"$' config.namedPackage.pname ./declare-mkPackageOption.nix -checkConfigOutput '^".*Hello.*"$' options.namedPackage.description ./declare-mkPackageOption.nix -checkConfigOutput '^"hello"$' config.pathPackage.pname ./declare-mkPackageOption.nix -checkConfigOutput '^"pkgs\.hello\.override \{ stdenv = pkgs\.clangStdenv; \}"$' options.packageWithExample.example.text ./declare-mkPackageOption.nix -checkConfigOutput '^".*Example extra description\..*"$' options.packageWithExtraDescription.description ./declare-mkPackageOption.nix -checkConfigError 'The option .undefinedPackage. is used but not defined' config.undefinedPackage ./declare-mkPackageOption.nix -checkConfigOutput '^null$' config.nullablePackage ./declare-mkPackageOption.nix -checkConfigOutput '^"null or package"$' options.nullablePackageWithDefault.type.description ./declare-mkPackageOption.nix -checkConfigOutput '^"myPkgs\.hello"$' options.packageWithPkgsText.defaultText.text ./declare-mkPackageOption.nix -checkConfigOutput '^"hello-other"$' options.packageFromOtherSet.default.pname ./declare-mkPackageOption.nix - -# submoduleWith - -## specialArgs should work -checkConfigOutput '^"foo"$' config.submodule.foo ./declare-submoduleWith-special.nix - -## shorthandOnlyDefines config behaves as expected -checkConfigOutput '^true$' config.submodule.config ./declare-submoduleWith-shorthand.nix ./define-submoduleWith-shorthand.nix -checkConfigError 'is not of type `boolean' config.submodule.config ./declare-submoduleWith-shorthand.nix ./define-submoduleWith-noshorthand.nix -checkConfigError "In module ..*define-submoduleWith-shorthand.nix., you're trying to define a value of type \`bool'\n\s*rather than an attribute set for the option" config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-shorthand.nix -checkConfigOutput '^true$' config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-noshorthand.nix - -## submoduleWith should merge all modules in one swoop -checkConfigOutput '^true$' config.submodule.inner ./declare-submoduleWith-modules.nix -checkConfigOutput '^true$' config.submodule.outer ./declare-submoduleWith-modules.nix -# Should also be able to evaluate the type name (which evaluates freeformType, -# which evaluates all the modules defined by the type) -checkConfigOutput '^"submodule"$' options.submodule.type.description ./declare-submoduleWith-modules.nix - -## submodules can be declared using (evalModules {...}).type -checkConfigOutput '^true$' config.submodule.inner ./declare-submodule-via-evalModules.nix -checkConfigOutput '^true$' config.submodule.outer ./declare-submodule-via-evalModules.nix -# Should also be able to evaluate the type name (which evaluates freeformType, -# which evaluates all the modules defined by the type) -checkConfigOutput '^"submodule"$' options.submodule.type.description ./declare-submodule-via-evalModules.nix - -## Paths should be allowed as values and work as expected -checkConfigOutput '^true$' config.submodule.enable ./declare-submoduleWith-path.nix - -## deferredModule -# default module is merged into nodes.foo -checkConfigOutput '"beta"' config.nodes.foo.settingsDict.c ./deferred-module.nix -# errors from the default module are reported with accurate location -checkConfigError 'In `the-file-that-contains-the-bad-config.nix, via option default'\'': "bogus"' config.nodes.foo.bottom ./deferred-module.nix -checkConfigError '.*lib/tests/modules/deferred-module-error.nix, via option deferred [(]:anon-1:anon-1:anon-1[)] does not look like a module.' config.result ./deferred-module-error.nix - -# Check the file location information is propagated into submodules -checkConfigOutput the-file.nix config.submodule.internalFiles.0 ./submoduleFiles.nix - - -# Check that disabledModules works recursively and correctly -checkConfigOutput '^true$' config.enable ./disable-recursive/main.nix -checkConfigOutput '^true$' config.enable ./disable-recursive/{main.nix,disable-foo.nix} -checkConfigOutput '^true$' config.enable ./disable-recursive/{main.nix,disable-bar.nix} -checkConfigError 'The option .* does not exist. Definition values:\n\s*- In .*: true' config.enable ./disable-recursive/{main.nix,disable-foo.nix,disable-bar.nix} - -# Check that imports can depend on derivations -checkConfigOutput '^true$' config.enable ./import-from-store.nix - -# Check that configs can be conditional on option existence -checkConfigOutput '^true$' config.enable ./define-option-dependently.nix ./declare-enable.nix ./declare-int-positive-value.nix -checkConfigOutput '^360$' config.value ./define-option-dependently.nix ./declare-enable.nix ./declare-int-positive-value.nix -checkConfigOutput '^7$' config.value ./define-option-dependently.nix ./declare-int-positive-value.nix -checkConfigOutput '^true$' config.set.enable ./define-option-dependently-nested.nix ./declare-enable-nested.nix ./declare-int-positive-value-nested.nix -checkConfigOutput '^360$' config.set.value ./define-option-dependently-nested.nix ./declare-enable-nested.nix ./declare-int-positive-value-nested.nix -checkConfigOutput '^7$' config.set.value ./define-option-dependently-nested.nix ./declare-int-positive-value-nested.nix - -# Check attrsOf and lazyAttrsOf. Only lazyAttrsOf should be lazy, and only -# attrsOf should work with conditional definitions -# In addition, lazyAttrsOf should honor an options emptyValue -checkConfigError "is not lazy" config.isLazy ./declare-attrsOf.nix ./attrsOf-lazy-check.nix -checkConfigOutput '^true$' config.isLazy ./declare-lazyAttrsOf.nix ./attrsOf-lazy-check.nix -checkConfigOutput '^true$' config.conditionalWorks ./declare-attrsOf.nix ./attrsOf-conditional-check.nix -checkConfigOutput '^false$' config.conditionalWorks ./declare-lazyAttrsOf.nix ./attrsOf-conditional-check.nix -checkConfigOutput '^"empty"$' config.value.foo ./declare-lazyAttrsOf.nix ./attrsOf-conditional-check.nix - - -# Even with multiple assignments, a type error should be thrown if any of them aren't valid -checkConfigError 'A definition for option .* is not of type .*' \ - config.value ./declare-int-unsigned-value.nix ./define-value-list.nix ./define-value-int-positive.nix - -## Freeform modules -# Assigning without a declared option should work -checkConfigOutput '^"24"$' config.value ./freeform-attrsOf.nix ./define-value-string.nix -# Shorthand modules interpret `meta` and `class` as config items -checkConfigOutput '^true$' options._module.args.value.result ./freeform-attrsOf.nix ./define-freeform-keywords-shorthand.nix -# No freeform assignments shouldn't make it error -checkConfigOutput '^{}$' config ./freeform-attrsOf.nix -# but only if the type matches -checkConfigError 'A definition for option .* is not of type .*' config.value ./freeform-attrsOf.nix ./define-value-list.nix -# and properties should be applied -checkConfigOutput '^"yes"$' config.value ./freeform-attrsOf.nix ./define-value-string-properties.nix -# Options should still be declarable, and be able to have a type that doesn't match the freeform type -checkConfigOutput '^false$' config.enable ./freeform-attrsOf.nix ./define-value-string.nix ./declare-enable.nix -checkConfigOutput '^"24"$' config.value ./freeform-attrsOf.nix ./define-value-string.nix ./declare-enable.nix -# and this should work too with nested values -checkConfigOutput '^false$' config.nest.foo ./freeform-attrsOf.nix ./freeform-nested.nix -checkConfigOutput '^"bar"$' config.nest.bar ./freeform-attrsOf.nix ./freeform-nested.nix -# Check whether a declared option can depend on an freeform-typed one -checkConfigOutput '^null$' config.foo ./freeform-attrsOf.nix ./freeform-str-dep-unstr.nix -checkConfigOutput '^"24"$' config.foo ./freeform-attrsOf.nix ./freeform-str-dep-unstr.nix ./define-value-string.nix -# Check whether an freeform-typed value can depend on a declared option, this can only work with lazyAttrsOf -checkConfigError 'infinite recursion encountered' config.foo ./freeform-attrsOf.nix ./freeform-unstr-dep-str.nix -checkConfigError 'The option .* is used but not defined' config.foo ./freeform-lazyAttrsOf.nix ./freeform-unstr-dep-str.nix -checkConfigOutput '^"24"$' config.foo ./freeform-lazyAttrsOf.nix ./freeform-unstr-dep-str.nix ./define-value-string.nix -# submodules in freeformTypes should have their locations annotated -checkConfigOutput '/freeform-submodules.nix"$' config.fooDeclarations.0 ./freeform-submodules.nix -# freeformTypes can get merged using `types.type`, including submodules -checkConfigOutput '^10$' config.free.xxx.foo ./freeform-submodules.nix -checkConfigOutput '^10$' config.free.yyy.bar ./freeform-submodules.nix - -## types.anything -# Check that attribute sets are merged recursively -checkConfigOutput '^null$' config.value.foo ./types-anything/nested-attrs.nix -checkConfigOutput '^null$' config.value.l1.foo ./types-anything/nested-attrs.nix -checkConfigOutput '^null$' config.value.l1.l2.foo ./types-anything/nested-attrs.nix -checkConfigOutput '^null$' config.value.l1.l2.l3.foo ./types-anything/nested-attrs.nix -# Attribute sets that are coercible to strings shouldn't be recursed into -checkConfigOutput '^"foo"$' config.value.outPath ./types-anything/attrs-coercible.nix -# Multiple lists aren't concatenated together -checkConfigError 'The option .* has conflicting definitions' config.value ./types-anything/lists.nix -# Check that all equalizable atoms can be used as long as all definitions are equal -checkConfigOutput '^0$' config.value.int ./types-anything/equal-atoms.nix -checkConfigOutput '^false$' config.value.bool ./types-anything/equal-atoms.nix -checkConfigOutput '^""$' config.value.string ./types-anything/equal-atoms.nix -checkConfigOutput '^"/[^"]+"$' config.value.path ./types-anything/equal-atoms.nix -checkConfigOutput '^null$' config.value.null ./types-anything/equal-atoms.nix -checkConfigOutput '^0.1$' config.value.float ./types-anything/equal-atoms.nix -# Functions can't be merged together -checkConfigError "The option .value.multiple-lambdas.. has conflicting option types" config.applied.multiple-lambdas ./types-anything/functions.nix -checkConfigOutput '^true$' config.valueIsFunction.single-lambda ./types-anything/functions.nix -checkConfigOutput '^null$' config.applied.merging-lambdas.x ./types-anything/functions.nix -checkConfigOutput '^null$' config.applied.merging-lambdas.y ./types-anything/functions.nix -# Check that all mk* modifiers are applied -checkConfigError 'attribute .* not found' config.value.mkiffalse ./types-anything/mk-mods.nix -checkConfigOutput '^{}$' config.value.mkiftrue ./types-anything/mk-mods.nix -checkConfigOutput '^1$' config.value.mkdefault ./types-anything/mk-mods.nix -checkConfigOutput '^{}$' config.value.mkmerge ./types-anything/mk-mods.nix -checkConfigOutput '^true$' config.value.mkbefore ./types-anything/mk-mods.nix -checkConfigOutput '^1$' config.value.nested.foo ./types-anything/mk-mods.nix -checkConfigOutput '^"baz"$' config.value.nested.bar.baz ./types-anything/mk-mods.nix - -## types.functionTo -checkConfigOutput '^"input is input"$' config.result ./functionTo/trivial.nix -checkConfigOutput '^"a b"$' config.result ./functionTo/merging-list.nix -checkConfigError 'A definition for option .fun.. is not of type .string.. Definition values:\n\s*- In .*wrong-type.nix' config.result ./functionTo/wrong-type.nix -checkConfigOutput '^"b a"$' config.result ./functionTo/list-order.nix -checkConfigOutput '^"a c"$' config.result ./functionTo/merging-attrs.nix -checkConfigOutput '^"a bee"$' config.result ./functionTo/submodule-options.nix -checkConfigOutput '^"fun..a fun..b"$' config.optionsResult ./functionTo/submodule-options.nix - -# moduleType -checkConfigOutput '^"a b"$' config.resultFoo ./declare-variants.nix ./define-variant.nix -checkConfigOutput '^"a b y z"$' config.resultFooBar ./declare-variants.nix ./define-variant.nix -checkConfigOutput '^"a b c"$' config.resultFooFoo ./declare-variants.nix ./define-variant.nix - -## emptyValue's -checkConfigOutput "\[\]" config.list.a ./emptyValues.nix -checkConfigOutput "{}" config.attrs.a ./emptyValues.nix -checkConfigOutput "null" config.null.a ./emptyValues.nix -checkConfigOutput "{}" config.submodule.a ./emptyValues.nix -# These types don't have empty values -checkConfigError 'The option .int.a. is used but not defined' config.int.a ./emptyValues.nix -checkConfigError 'The option .nonEmptyList.a. is used but not defined' config.nonEmptyList.a ./emptyValues.nix - -# types.unique -# requires a single definition -checkConfigError 'The option .examples\.merged. is defined multiple times while it.s expected to be unique' config.examples.merged.a ./types-unique.nix -# user message is printed -checkConfigError 'We require a single definition, because seeing the whole value at once helps us maintain critical invariants of our system.' config.examples.merged.a ./types-unique.nix -# let the inner merge function check the values (on demand) -checkConfigError 'A definition for option .examples\.badLazyType\.a. is not of type .string.' config.examples.badLazyType.a ./types-unique.nix -# overriding still works (unlike option uniqueness) -checkConfigOutput '^"bee"$' config.examples.override.b ./types-unique.nix - -## types.raw -checkConfigOutput '^true$' config.unprocessedNestingEvaluates.success ./raw.nix -checkConfigOutput "10" config.processedToplevel ./raw.nix -checkConfigError "The option .multiple. is defined multiple times" config.multiple ./raw.nix -checkConfigOutput "bar" config.priorities ./raw.nix - -## Option collision -checkConfigError \ - 'The option .set. in module .*/declare-set.nix. would be a parent of the following options, but its type .attribute set of signed integer. does not support nested options.\n\s*- option[(]s[)] with prefix .set.enable. in module .*/declare-enable-nested.nix.' \ - config.set \ - ./declare-set.nix ./declare-enable-nested.nix - -# Options: accidental use of an option-type instead of option (or other tagged type; unlikely) -checkConfigError 'In module .*/options-type-error-typical.nix: expected an option declaration at option path .result. but got an attribute set with type option-type' config.result ./options-type-error-typical.nix -checkConfigError 'In module .*/options-type-error-typical-nested.nix: expected an option declaration at option path .result.here. but got an attribute set with type option-type' config.result.here ./options-type-error-typical-nested.nix -checkConfigError 'In module .*/options-type-error-configuration.nix: expected an option declaration at option path .result. but got an attribute set with type configuration' config.result ./options-type-error-configuration.nix - -# Check that that merging of option collisions doesn't depend on type being set -checkConfigError 'The option .group..*would be a parent of the following options, but its type .. does not support nested options.\n\s*- option.s. with prefix .group.enable..*' config.group.enable ./merge-typeless-option.nix - -# Test that types.optionType merges types correctly -checkConfigOutput '^10$' config.theOption.int ./optionTypeMerging.nix -checkConfigOutput '^"hello"$' config.theOption.str ./optionTypeMerging.nix - -# Test that types.optionType correctly annotates option locations -checkConfigError 'The option .theOption.nested. in .other.nix. is already declared in .optionTypeFile.nix.' config.theOption.nested ./optionTypeFile.nix - -# Test that types.optionType leaves types untouched as long as they don't need to be merged -checkConfigOutput 'ok' config.freeformItems.foo.bar ./adhoc-freeformType-survives-type-merge.nix - -# Anonymous submodules don't get nixed by import resolution/deduplication -# because of an `extendModules` bug, issue 168767. -checkConfigOutput '^1$' config.sub.specialisation.value ./extendModules-168767-imports.nix - -# Class checks, evalModules -checkConfigOutput '^{}$' config.ok.config ./class-check.nix -checkConfigOutput '"nixos"' config.ok.class ./class-check.nix -checkConfigError 'The module .*/module-class-is-darwin.nix was imported into nixos instead of darwin.' config.fail.config ./class-check.nix -checkConfigError 'The module foo.nix#darwinModules.default was imported into nixos instead of darwin.' config.fail-anon.config ./class-check.nix - -# Class checks, submoduleWith -checkConfigOutput '^{}$' config.sub.nixosOk ./class-check.nix -checkConfigError 'The module .*/module-class-is-darwin.nix was imported into nixos instead of darwin.' config.sub.nixosFail.config ./class-check.nix - -# submoduleWith type merge with different class -checkConfigError 'A submoduleWith option is declared multiple times with conflicting class values "darwin" and "nixos".' config.sub.mergeFail.config ./class-check.nix - -# _type check -checkConfigError 'Could not load a value as a module, because it is of type "flake", in file .*/module-imports-_type-check.nix' config.ok.config ./module-imports-_type-check.nix -checkConfigOutput '^true$' "$@" config.enable ./declare-enable.nix ./define-enable-with-top-level-mkIf.nix -checkConfigError 'Could not load a value as a module, because it is of type "configuration", in file .*/import-configuration.nix.*please only import the modules that make up the configuration.*' config ./import-configuration.nix - -# doRename works when `warnings` does not exist. -checkConfigOutput '^1234$' config.c.d.e ./doRename-basic.nix -# doRename adds a warning. -checkConfigOutput '^"The option `a\.b. defined in `.*/doRename-warnings\.nix. has been renamed to `c\.d\.e.\."$' \ - config.result \ - ./doRename-warnings.nix -checkConfigOutput "^true$" config.result ./doRename-condition.nix ./doRename-condition-enable.nix -checkConfigOutput "^true$" config.result ./doRename-condition.nix ./doRename-condition-no-enable.nix -checkConfigOutput "^true$" config.result ./doRename-condition.nix ./doRename-condition-migrated.nix - -# Anonymous modules get deduplicated by key -checkConfigOutput '^"pear"$' config.once.raw ./merge-module-with-key.nix -checkConfigOutput '^"pear\\npear"$' config.twice.raw ./merge-module-with-key.nix - -# Declaration positions -# Line should be present for direct options -checkConfigOutput '^10$' options.imported.line10.declarationPositions.0.line ./declaration-positions.nix -checkConfigOutput '/declaration-positions.nix"$' options.imported.line10.declarationPositions.0.file ./declaration-positions.nix -# Generated options may not have line numbers but they will at least get the -# right file -checkConfigOutput '/declaration-positions.nix"$' options.generated.line18.declarationPositions.0.file ./declaration-positions.nix -checkConfigOutput '^null$' options.generated.line18.declarationPositions.0.line ./declaration-positions.nix -# Submodules don't break it -checkConfigOutput '^39$' config.submoduleLine34.submodDeclLine39.0.line ./declaration-positions.nix -checkConfigOutput '/declaration-positions.nix"$' config.submoduleLine34.submodDeclLine39.0.file ./declaration-positions.nix -# New options under freeform submodules get collected into the parent submodule -# (consistent with .declarations behaviour, but weird; notably appears in system.build) -checkConfigOutput '^34|23$' options.submoduleLine34.declarationPositions.0.line ./declaration-positions.nix -checkConfigOutput '^34|23$' options.submoduleLine34.declarationPositions.1.line ./declaration-positions.nix -# nested options work -checkConfigOutput '^30$' options.nested.nestedLine30.declarationPositions.0.line ./declaration-positions.nix - -cat < - # - 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. - ''; - }; - }) - - { - _file = "default-1.nix"; - default = { config, ... }: { - options.settingsDict = lib.mkOption { type = lazyAttrsOf str; default = {}; }; - options.bottom = lib.mkOption { type = enum []; }; - }; - } - - { - _file = "default-a-is-b.nix"; - default = ./define-settingsDict-a-is-b.nix; - } - - { - _file = "nodes-foo.nix"; - nodes.foo.settingsDict.b = "beta"; - } - - { - _file = "the-file-that-contains-the-bad-config.nix"; - default.bottom = "bogus"; - } - - { - _file = "nodes-foo-c-is-a.nix"; - nodes.foo = { config, ... }: { - settingsDict.c = config.settingsDict.a; - }; - } - - ]; -} diff --git a/lib/tests/modules/define-_module-args-custom.nix b/lib/tests/modules/define-_module-args-custom.nix deleted file mode 100644 index e565fd2..0000000 --- a/lib/tests/modules/define-_module-args-custom.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ lib, ... }: - -{ - config = { - _module.args.custom = true; - }; -} diff --git a/lib/tests/modules/define-attrsOfSub-bar-enable.nix b/lib/tests/modules/define-attrsOfSub-bar-enable.nix deleted file mode 100644 index 99c55d8..0000000 --- a/lib/tests/modules/define-attrsOfSub-bar-enable.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - attrsOfSub.bar.enable = true; -} diff --git a/lib/tests/modules/define-attrsOfSub-bar.nix b/lib/tests/modules/define-attrsOfSub-bar.nix deleted file mode 100644 index 2a33068..0000000 --- a/lib/tests/modules/define-attrsOfSub-bar.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - attrsOfSub.bar = {}; -} diff --git a/lib/tests/modules/define-attrsOfSub-foo-enable-force.nix b/lib/tests/modules/define-attrsOfSub-foo-enable-force.nix deleted file mode 100644 index c9ee364..0000000 --- a/lib/tests/modules/define-attrsOfSub-foo-enable-force.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ lib, ... }: - -{ - attrsOfSub.foo.enable = lib.mkForce false; -} diff --git a/lib/tests/modules/define-attrsOfSub-foo-enable-if.nix b/lib/tests/modules/define-attrsOfSub-foo-enable-if.nix deleted file mode 100644 index 0b3badd..0000000 --- a/lib/tests/modules/define-attrsOfSub-foo-enable-if.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ config, lib, ... }: - -{ - attrsOfSub.foo.enable = lib.mkIf config.enable true; -} diff --git a/lib/tests/modules/define-attrsOfSub-foo-enable.nix b/lib/tests/modules/define-attrsOfSub-foo-enable.nix deleted file mode 100644 index 39cd63c..0000000 --- a/lib/tests/modules/define-attrsOfSub-foo-enable.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - 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 deleted file mode 100644 index 009da7c..0000000 --- a/lib/tests/modules/define-attrsOfSub-foo-force-enable.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ lib, ... }: - -{ - 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 deleted file mode 100644 index 93702df..0000000 --- a/lib/tests/modules/define-attrsOfSub-foo-if-enable.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, lib, ... }: - -{ - 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 deleted file mode 100644 index e6bb531..0000000 --- a/lib/tests/modules/define-attrsOfSub-foo.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - attrsOfSub.foo = {}; -} diff --git a/lib/tests/modules/define-attrsOfSub-force-foo-enable.nix b/lib/tests/modules/define-attrsOfSub-force-foo-enable.nix deleted file mode 100644 index 5c02dd3..0000000 --- a/lib/tests/modules/define-attrsOfSub-force-foo-enable.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ lib, ... }: - -{ - 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 deleted file mode 100644 index a3fe605..0000000 --- a/lib/tests/modules/define-attrsOfSub-if-foo-enable.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, lib, ... }: - -{ - attrsOfSub = lib.mkIf config.enable { - foo.enable = true; - }; -} diff --git a/lib/tests/modules/define-bare-submodule-values.nix b/lib/tests/modules/define-bare-submodule-values.nix deleted file mode 100644 index 00ede92..0000000 --- a/lib/tests/modules/define-bare-submodule-values.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ - bare-submodule.nested = 42; - bare-submodule.deep = 420; -} diff --git a/lib/tests/modules/define-enable-abort.nix b/lib/tests/modules/define-enable-abort.nix deleted file mode 100644 index 85b58a5..0000000 --- a/lib/tests/modules/define-enable-abort.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - config.enable = abort "oops"; -} diff --git a/lib/tests/modules/define-enable-force.nix b/lib/tests/modules/define-enable-force.nix deleted file mode 100644 index f4990a3..0000000 --- a/lib/tests/modules/define-enable-force.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ lib, ... }: - -{ - enable = lib.mkForce false; -} diff --git a/lib/tests/modules/define-enable-throw.nix b/lib/tests/modules/define-enable-throw.nix deleted file mode 100644 index 16a59b7..0000000 --- a/lib/tests/modules/define-enable-throw.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - config.enable = throw "oops"; -} diff --git a/lib/tests/modules/define-enable-with-custom-arg.nix b/lib/tests/modules/define-enable-with-custom-arg.nix deleted file mode 100644 index 7da7467..0000000 --- a/lib/tests/modules/define-enable-with-custom-arg.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ lib, custom, ... }: - -{ - config = { - enable = custom; - }; -} diff --git a/lib/tests/modules/define-enable-with-top-level-mkIf.nix b/lib/tests/modules/define-enable-with-top-level-mkIf.nix deleted file mode 100644 index 4909c16..0000000 --- a/lib/tests/modules/define-enable-with-top-level-mkIf.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ lib, ... }: -# I think this might occur more realistically in a submodule -{ - imports = [ (lib.mkIf true { enable = true; }) ]; -} diff --git a/lib/tests/modules/define-enable.nix b/lib/tests/modules/define-enable.nix deleted file mode 100644 index 7dc2601..0000000 --- a/lib/tests/modules/define-enable.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - enable = true; -} diff --git a/lib/tests/modules/define-force-attrsOfSub-foo-enable.nix b/lib/tests/modules/define-force-attrsOfSub-foo-enable.nix deleted file mode 100644 index dafb236..0000000 --- a/lib/tests/modules/define-force-attrsOfSub-foo-enable.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ lib, ... }: - -lib.mkForce { - attrsOfSub.foo.enable = false; -} diff --git a/lib/tests/modules/define-force-enable.nix b/lib/tests/modules/define-force-enable.nix deleted file mode 100644 index 978caa2..0000000 --- a/lib/tests/modules/define-force-enable.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ lib, ... }: - -lib.mkForce { - enable = false; -} diff --git a/lib/tests/modules/define-freeform-keywords-shorthand.nix b/lib/tests/modules/define-freeform-keywords-shorthand.nix deleted file mode 100644 index 8de1ec6..0000000 --- a/lib/tests/modules/define-freeform-keywords-shorthand.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ 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"; - }); -} diff --git a/lib/tests/modules/define-if-attrsOfSub-foo-enable.nix b/lib/tests/modules/define-if-attrsOfSub-foo-enable.nix deleted file mode 100644 index 6a8e32e..0000000 --- a/lib/tests/modules/define-if-attrsOfSub-foo-enable.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ config, lib, ... }: - -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 deleted file mode 100644 index 5a0707c..0000000 --- a/lib/tests/modules/define-module-check.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - _module.check = false; -} diff --git a/lib/tests/modules/define-option-dependently-nested.nix b/lib/tests/modules/define-option-dependently-nested.nix deleted file mode 100644 index 69ee425..0000000 --- a/lib/tests/modules/define-option-dependently-nested.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ lib, options, ... }: - -# Some modules may be distributed separately and need to adapt to other modules -# that are distributed and versioned separately. -{ - - # 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; - }; - -} diff --git a/lib/tests/modules/define-option-dependently.nix b/lib/tests/modules/define-option-dependently.nix deleted file mode 100644 index ad85f99..0000000 --- a/lib/tests/modules/define-option-dependently.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ lib, options, ... }: - -# Some modules may be distributed separately and need to adapt to other modules -# that are distributed and versioned separately. -{ - - # 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; - }; - -} diff --git a/lib/tests/modules/define-settingsDict-a-is-b.nix b/lib/tests/modules/define-settingsDict-a-is-b.nix deleted file mode 100644 index 42363f4..0000000 --- a/lib/tests/modules/define-settingsDict-a-is-b.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ config, ... }: { - settingsDict.a = config.settingsDict.b; -} diff --git a/lib/tests/modules/define-shorthandOnlyDefinesConfig-true.nix b/lib/tests/modules/define-shorthandOnlyDefinesConfig-true.nix deleted file mode 100644 index bd3a73d..0000000 --- a/lib/tests/modules/define-shorthandOnlyDefinesConfig-true.nix +++ /dev/null @@ -1 +0,0 @@ -{ shorthandOnlyDefinesConfig = true; } diff --git a/lib/tests/modules/define-submoduleWith-noshorthand.nix b/lib/tests/modules/define-submoduleWith-noshorthand.nix deleted file mode 100644 index 35e1607..0000000 --- a/lib/tests/modules/define-submoduleWith-noshorthand.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - submodule.config.config = true; -} diff --git a/lib/tests/modules/define-submoduleWith-shorthand.nix b/lib/tests/modules/define-submoduleWith-shorthand.nix deleted file mode 100644 index 17df248..0000000 --- a/lib/tests/modules/define-submoduleWith-shorthand.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - submodule.config = true; -} diff --git a/lib/tests/modules/define-value-int-negative.nix b/lib/tests/modules/define-value-int-negative.nix deleted file mode 100644 index a041222..0000000 --- a/lib/tests/modules/define-value-int-negative.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - value = -23; -} diff --git a/lib/tests/modules/define-value-int-positive.nix b/lib/tests/modules/define-value-int-positive.nix deleted file mode 100644 index 5803de1..0000000 --- a/lib/tests/modules/define-value-int-positive.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - value = 42; -} diff --git a/lib/tests/modules/define-value-int-zero.nix b/lib/tests/modules/define-value-int-zero.nix deleted file mode 100644 index 68bb9f4..0000000 --- a/lib/tests/modules/define-value-int-zero.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - value = 0; -} diff --git a/lib/tests/modules/define-value-list.nix b/lib/tests/modules/define-value-list.nix deleted file mode 100644 index 4831c1c..0000000 --- a/lib/tests/modules/define-value-list.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - value = []; -} diff --git a/lib/tests/modules/define-value-string-arbitrary.nix b/lib/tests/modules/define-value-string-arbitrary.nix deleted file mode 100644 index 8e3abaf..0000000 --- a/lib/tests/modules/define-value-string-arbitrary.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - value = "foobar"; -} diff --git a/lib/tests/modules/define-value-string-bigint.nix b/lib/tests/modules/define-value-string-bigint.nix deleted file mode 100644 index f27e319..0000000 --- a/lib/tests/modules/define-value-string-bigint.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - value = "1000"; -} diff --git a/lib/tests/modules/define-value-string-properties.nix b/lib/tests/modules/define-value-string-properties.nix deleted file mode 100644 index 972304c..0000000 --- a/lib/tests/modules/define-value-string-properties.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ lib, ... }: { - - imports = [{ - value = lib.mkDefault "def"; - }]; - - value = lib.mkMerge [ - (lib.mkIf false "nope") - "yes" - ]; - -} diff --git a/lib/tests/modules/define-value-string.nix b/lib/tests/modules/define-value-string.nix deleted file mode 100644 index e7a1669..0000000 --- a/lib/tests/modules/define-value-string.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - value = "24"; -} diff --git a/lib/tests/modules/define-variant.nix b/lib/tests/modules/define-variant.nix deleted file mode 100644 index 423cb0e..0000000 --- a/lib/tests/modules/define-variant.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ config, lib, ... }: -let inherit (lib) types mkOption attrNames; -in -{ - options = { - attrs = mkOption { type = types.attrsOf lib.types.int; }; - result = mkOption { }; - resultFoo = mkOption { }; - resultFooBar = mkOption { }; - resultFooFoo = mkOption { }; - }; - config = { - attrs.a = 1; - variants.foo.attrs.b = 1; - variants.bar.attrs.y = 1; - 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); - }; -} diff --git a/lib/tests/modules/disable-declare-enable.nix b/lib/tests/modules/disable-declare-enable.nix deleted file mode 100644 index a373ee7..0000000 --- a/lib/tests/modules/disable-declare-enable.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ lib, ... }: - -{ - disabledModules = [ ./declare-enable.nix ]; -} diff --git a/lib/tests/modules/disable-define-enable-string-path.nix b/lib/tests/modules/disable-define-enable-string-path.nix deleted file mode 100644 index 6429a6d..0000000 --- a/lib/tests/modules/disable-define-enable-string-path.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ lib, ... }: - -{ - disabledModules = [ (toString ./define-enable.nix) ]; -} diff --git a/lib/tests/modules/disable-define-enable.nix b/lib/tests/modules/disable-define-enable.nix deleted file mode 100644 index 0d84a7c..0000000 --- a/lib/tests/modules/disable-define-enable.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ lib, ... }: - -{ - disabledModules = [ ./define-enable.nix ]; -} diff --git a/lib/tests/modules/disable-enable-modules.nix b/lib/tests/modules/disable-enable-modules.nix deleted file mode 100644 index c325f4e..0000000 --- a/lib/tests/modules/disable-enable-modules.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ lib, ... }: - -{ - 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 deleted file mode 100644 index f50d06f..0000000 --- a/lib/tests/modules/disable-module-bad-key.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ lib, ... }: -let - inherit (lib) mkOption types; - - moduleWithKey = { config, ... }: { - config = { - enable = true; - }; - }; -in -{ - 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 deleted file mode 100644 index ea2a60a..0000000 --- a/lib/tests/modules/disable-module-with-key.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ lib, ... }: -let - inherit (lib) mkOption types; - - moduleWithKey = { - key = "disable-module-with-key.nix#moduleWithKey"; - config = { - enable = true; - }; - }; -in -{ - options = { - positive = mkOption { - type = types.submodule { - imports = [ - ./declare-enable.nix - moduleWithKey - ]; - }; - default = {}; - }; - negative = mkOption { - type = types.submodule { - imports = [ - ./declare-enable.nix - moduleWithKey - ]; - disabledModules = [ moduleWithKey ]; - }; - default = {}; - }; - }; -} diff --git a/lib/tests/modules/disable-module-with-toString-key.nix b/lib/tests/modules/disable-module-with-toString-key.nix deleted file mode 100644 index 3f8c819..0000000 --- a/lib/tests/modules/disable-module-with-toString-key.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ lib, ... }: -let - inherit (lib) mkOption types; - - moduleWithKey = { - key = 123; - config = { - enable = true; - }; - }; -in -{ - options = { - positive = mkOption { - type = types.submodule { - imports = [ - ./declare-enable.nix - moduleWithKey - ]; - }; - default = {}; - }; - negative = mkOption { - type = types.submodule { - imports = [ - ./declare-enable.nix - moduleWithKey - ]; - disabledModules = [ 123 ]; - }; - default = {}; - }; - }; -} diff --git a/lib/tests/modules/disable-recursive/bar.nix b/lib/tests/modules/disable-recursive/bar.nix deleted file mode 100644 index 4d9240a..0000000 --- a/lib/tests/modules/disable-recursive/bar.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ - imports = [ - ../declare-enable.nix - ]; -} diff --git a/lib/tests/modules/disable-recursive/disable-bar.nix b/lib/tests/modules/disable-recursive/disable-bar.nix deleted file mode 100644 index 987b280..0000000 --- a/lib/tests/modules/disable-recursive/disable-bar.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - - disabledModules = [ - ./bar.nix - ]; - -} diff --git a/lib/tests/modules/disable-recursive/disable-foo.nix b/lib/tests/modules/disable-recursive/disable-foo.nix deleted file mode 100644 index 5b68a3c..0000000 --- a/lib/tests/modules/disable-recursive/disable-foo.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - - disabledModules = [ - ./foo.nix - ]; - -} diff --git a/lib/tests/modules/disable-recursive/foo.nix b/lib/tests/modules/disable-recursive/foo.nix deleted file mode 100644 index 4d9240a..0000000 --- a/lib/tests/modules/disable-recursive/foo.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ - imports = [ - ../declare-enable.nix - ]; -} diff --git a/lib/tests/modules/disable-recursive/main.nix b/lib/tests/modules/disable-recursive/main.nix deleted file mode 100644 index 48a3c62..0000000 --- a/lib/tests/modules/disable-recursive/main.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - imports = [ - ./foo.nix - ./bar.nix - ]; - - enable = true; -} diff --git a/lib/tests/modules/doRename-basic.nix b/lib/tests/modules/doRename-basic.nix deleted file mode 100644 index 9d79fa4..0000000 --- a/lib/tests/modules/doRename-basic.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ lib, ... }: { - imports = [ - (lib.doRename { from = ["a" "b"]; to = ["c" "d" "e"]; warn = true; use = x: x; visible = true; }) - ]; - options = { - 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 deleted file mode 100644 index e6eabfa..0000000 --- a/lib/tests/modules/doRename-condition-enable.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ config, lib, ... }: -{ - config = { - services.foo.enable = true; - services.foo.bar = "baz"; - result = - 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 deleted file mode 100644 index 8d21610..0000000 --- a/lib/tests/modules/doRename-condition-migrated.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ config, lib, ... }: -{ - config = { - services.foos."".bar = "baz"; - result = - 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 deleted file mode 100644 index 66ec004..0000000 --- a/lib/tests/modules/doRename-condition-no-enable.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ config, lib, options, ... }: -{ - config = { - result = - assert config.services.foos == { }; - assert ! options.services.foo.bar.isDefined; - true; - }; -} diff --git a/lib/tests/modules/doRename-condition.nix b/lib/tests/modules/doRename-condition.nix deleted file mode 100644 index 176c21a..0000000 --- a/lib/tests/modules/doRename-condition.nix +++ /dev/null @@ -1,42 +0,0 @@ -/** - Simulate a migration from a single-instance `services.foo` to a multi instance - `services.foos.` module, where `name = ""` serves as the legacy / - compatibility instance. - - - No instances must exist, unless one is defined in the multi-instance module, - or if the legacy enable option is set to true. - - The legacy instance options must be renamed to the new instance, if it exists. - - The relevant scenarios are tested in separate files: - - ./doRename-condition-enable.nix - - ./doRename-condition-no-enable.nix -*/ -{ config, lib, ... }: -let - 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; }; - }; - }); - default = { }; - }; - result = mkOption {}; - }; - imports = [ - (doRename { - from = [ "services" "foo" "bar" ]; - to = [ "services" "foos" "" "bar" ]; - visible = true; - warn = false; - use = x: x; - withPriority = true; - condition = config.services.foo.enable; - }) - ]; -} diff --git a/lib/tests/modules/doRename-warnings.nix b/lib/tests/modules/doRename-warnings.nix deleted file mode 100644 index 6f0f1e8..0000000 --- a/lib/tests/modules/doRename-warnings.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ lib, config, ... }: { - imports = [ - (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 {}; - }; - config = { - a.b = 1234; - result = lib.concatStringsSep "%" config.warnings; - }; -} diff --git a/lib/tests/modules/docs.nix b/lib/tests/modules/docs.nix deleted file mode 100644 index 225aa7e..0000000 --- a/lib/tests/modules/docs.nix +++ /dev/null @@ -1,41 +0,0 @@ -/* - 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 - inherit (lib) - head - length - mkOption - types - ; - - traceListSeq = l: v: lib.foldl' (a: b: lib.traceSeq b a) v l; - -in - -{ - options.docs = mkOption { - type = types.lazyAttrsOf types.raw; - description = '' - 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) - ); -} diff --git a/lib/tests/modules/emptyValues.nix b/lib/tests/modules/emptyValues.nix deleted file mode 100644 index 77825de..0000000 --- a/lib/tests/modules/emptyValues.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, ... }: -let - inherit (lib) types; -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 {}); - }; - }; - - config = { - int.a = lib.mkIf false null; - list.a = lib.mkIf false null; - nonEmptyList.a = lib.mkIf false null; - attrs.a = lib.mkIf false null; - null.a = lib.mkIf false null; - submodule.a = lib.mkIf false null; - }; - -} diff --git a/lib/tests/modules/error-mkOption-in-config.nix b/lib/tests/modules/error-mkOption-in-config.nix deleted file mode 100644 index 2d78cd8..0000000 --- a/lib/tests/modules/error-mkOption-in-config.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ lib, ... }: -let - inherit (lib) mkOption; -in -{ - 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 { - }; -} diff --git a/lib/tests/modules/error-mkOption-in-submodule-config.nix b/lib/tests/modules/error-mkOption-in-submodule-config.nix deleted file mode 100644 index 91ac3d6..0000000 --- a/lib/tests/modules/error-mkOption-in-submodule-config.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ lib, ... }: -let - inherit (lib) mkOption; -in -{ - options.sub = lib.mkOption { - type = lib.types.submodule { - wrong2 = mkOption {}; - }; - default = {}; - }; -} diff --git a/lib/tests/modules/error-nonEmptyListOf-submodule.nix b/lib/tests/modules/error-nonEmptyListOf-submodule.nix deleted file mode 100644 index 1189e88..0000000 --- a/lib/tests/modules/error-nonEmptyListOf-submodule.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ lib, ... }: -{ - options.bad = lib.mkOption { - type = lib.types.nonEmptyListOf (lib.types.submodule { }); - default = [ ]; - }; -} diff --git a/lib/tests/modules/extendModules-168767-imports.nix b/lib/tests/modules/extendModules-168767-imports.nix deleted file mode 100644 index 6b50b81..0000000 --- a/lib/tests/modules/extendModules-168767-imports.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ lib -, extendModules -, ... -}: - -let - inherit (lib) - mkOption - mkOverride - types - ; -in -{ - imports = [ - - { - options.sub = mkOption { - default = { }; - type = types.submodule ( - { config - , extendModules - , ... - }: - { - options.value = mkOption { - type = types.int; - }; - - options.specialisation = mkOption { - default = { }; - inherit - (extendModules { - modules = [{ - specialisation = mkOverride 0 { }; - }]; - }) - type; - }; - } - ); - }; - } - - { config.sub.value = 1; } - - - ]; -} diff --git a/lib/tests/modules/freeform-attrsOf.nix b/lib/tests/modules/freeform-attrsOf.nix deleted file mode 100644 index 8cc577f..0000000 --- a/lib/tests/modules/freeform-attrsOf.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ 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 deleted file mode 100644 index 36d6c0b..0000000 --- a/lib/tests/modules/freeform-lazyAttrsOf.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ 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 deleted file mode 100644 index b81fa7f..0000000 --- a/lib/tests/modules/freeform-nested.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ 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); -in -{ - options.nest.foo = lib.mkOption { - type = lib.types.bool; - default = false; - }; - options.nest.unused = lib.mkOption deathtrapArgs; - config.nest.bar = "bar"; -} diff --git a/lib/tests/modules/freeform-str-dep-unstr.nix b/lib/tests/modules/freeform-str-dep-unstr.nix deleted file mode 100644 index a2dfbc8..0000000 --- a/lib/tests/modules/freeform-str-dep-unstr.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ lib, config, ... }: { - options.foo = lib.mkOption { - type = lib.types.nullOr lib.types.str; - default = null; - }; - - config.foo = lib.mkIf (config ? value) config.value; -} diff --git a/lib/tests/modules/freeform-submodules.nix b/lib/tests/modules/freeform-submodules.nix deleted file mode 100644 index 3910435..0000000 --- a/lib/tests/modules/freeform-submodules.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ lib, options, ... }: with lib.types; { - - options.fooDeclarations = lib.mkOption { - 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 {}; - })) - (attrsOf (submodule { - options.bar = lib.mkOption {}; - })) - ]; - }; - }; - - config.free.xxx.foo = 10; - config.free.yyy.bar = 10; -} diff --git a/lib/tests/modules/freeform-unstr-dep-str.nix b/lib/tests/modules/freeform-unstr-dep-str.nix deleted file mode 100644 index 549d89a..0000000 --- a/lib/tests/modules/freeform-unstr-dep-str.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ lib, config, ... }: { - options.value = lib.mkOption { - type = lib.types.nullOr lib.types.str; - default = null; - }; - - config.foo = lib.mkIf (config.value != null) config.value; -} diff --git a/lib/tests/modules/functionTo/list-order.nix b/lib/tests/modules/functionTo/list-order.nix deleted file mode 100644 index 77a1a43..0000000 --- a/lib/tests/modules/functionTo/list-order.nix +++ /dev/null @@ -1,25 +0,0 @@ - -{ lib, config, ... }: -let - inherit (lib) types; -in { - options = { - 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"; - }); - }; - }; - - config.fun = lib.mkMerge [ - (input: lib.mkAfter [ input.a ]) - (input: [ input.b ]) - ]; -} diff --git a/lib/tests/modules/functionTo/merging-attrs.nix b/lib/tests/modules/functionTo/merging-attrs.nix deleted file mode 100644 index 97c015f..0000000 --- a/lib/tests/modules/functionTo/merging-attrs.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, config, ... }: -let - inherit (lib) types; -in { - options = { - 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"; - })); - }; - }; - - config.fun = lib.mkMerge [ - (input: { inherit (input) a; }) - (input: { inherit (input) b; }) - (input: { - b = lib.mkForce input.c; - }) - ]; -} diff --git a/lib/tests/modules/functionTo/merging-list.nix b/lib/tests/modules/functionTo/merging-list.nix deleted file mode 100644 index 15fcd2b..0000000 --- a/lib/tests/modules/functionTo/merging-list.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib, config, ... }: -let - inherit (lib) types; -in { - options = { - 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"; - }); - }; - }; - - config.fun = lib.mkMerge [ - (input: [ input.a ]) - (input: [ input.b ]) - ]; -} diff --git a/lib/tests/modules/functionTo/submodule-options.nix b/lib/tests/modules/functionTo/submodule-options.nix deleted file mode 100644 index b884892..0000000 --- a/lib/tests/modules/functionTo/submodule-options.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ lib, config, options, ... }: -let - inherit (lib) types; -in -{ - imports = [ - - # fun..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 = { - 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" ]) - ) - ) - ); - }; - }; - - config.fun = lib.mkMerge - [ - (input: { b = "bee"; }) - ]; -} diff --git a/lib/tests/modules/functionTo/trivial.nix b/lib/tests/modules/functionTo/trivial.nix deleted file mode 100644 index 0962a0c..0000000 --- a/lib/tests/modules/functionTo/trivial.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ lib, config, ... }: -let - inherit (lib) types; -in { - options = { - fun = lib.mkOption { - type = types.functionTo types.str; - }; - - result = lib.mkOption { - type = types.str; - default = config.fun "input"; - }; - }; - - config.fun = input: "input is ${input}"; -} diff --git a/lib/tests/modules/functionTo/wrong-type.nix b/lib/tests/modules/functionTo/wrong-type.nix deleted file mode 100644 index fd65b75..0000000 --- a/lib/tests/modules/functionTo/wrong-type.nix +++ /dev/null @@ -1,18 +0,0 @@ - -{ lib, config, ... }: -let - inherit (lib) types; -in { - options = { - fun = lib.mkOption { - type = types.functionTo types.str; - }; - - result = lib.mkOption { - type = types.str; - default = config.fun 0; - }; - }; - - config.fun = input: input + 1; -} diff --git a/lib/tests/modules/gvariant.nix b/lib/tests/modules/gvariant.nix deleted file mode 100644 index ba452c0..0000000 --- a/lib/tests/modules/gvariant.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ config, lib, ... }: - -{ - options = { - examples = lib.mkOption { type = lib.types.attrs; }; - assertion = lib.mkOption { type = lib.types.bool; }; - }; - - config = { - examples = with lib.gvariant; { - bool = true; - float = 3.14; - int32 = mkInt32 (- 42); - uint32 = mkUint32 42; - int16 = mkInt16 (-42); - uint16 = mkUint16 42; - int64 = mkInt64 (-42); - uint64 = mkUint64 42; - array1 = [ "one" ]; - array2 = mkArray [ (mkInt32 1) ]; - array3 = mkArray [ (mkUint32 2) ]; - emptyArray = mkEmptyArray type.uint32; - string = "foo"; - escapedString = '' - '\ - ''; - tuple = mkTuple [ (mkInt32 1) [ "foo" ] ]; - maybe1 = mkNothing type.string; - maybe2 = mkJust (mkUint32 4); - variant = mkVariant "foo"; - dictionaryEntry = mkDictionaryEntry (mkInt32 1) [ "foo" ]; - }; - - assertion = - let - mkLine = n: v: "${n} = ${toString (lib.gvariant.mkValue v)}"; - result = lib.concatStringsSep "\n" (lib.mapAttrsToList mkLine config.examples); - in - (result + "\n") == '' - array1 = @as ['one'] - array2 = @ai [1] - array3 = @au [@u 2] - bool = true - dictionaryEntry = @{ias} {1,@as ['foo']} - emptyArray = @au [] - escapedString = '\'\\\n' - float = 3.140000 - int16 = @n -42 - int32 = -42 - int64 = @x -42 - maybe1 = @ms nothing - maybe2 = just @u 4 - string = 'foo' - tuple = @(ias) (1,@as ['foo']) - uint16 = @q 42 - uint32 = @u 42 - uint64 = @t 42 - variant = <'foo'> - ''; - }; -} diff --git a/lib/tests/modules/import-configuration.nix b/lib/tests/modules/import-configuration.nix deleted file mode 100644 index a2a32bb..0000000 --- a/lib/tests/modules/import-configuration.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ lib, ... }: -let - myconf = lib.evalModules { modules = [ { } ]; }; -in -{ - imports = [ - # We can't do this. A configuration is not equal to its set of a modules. - # Equating those would lead to a mess, as specialArgs, anonymous modules - # that can't be deduplicated, and possibly more come into play. - myconf - ]; -} diff --git a/lib/tests/modules/import-custom-arg.nix b/lib/tests/modules/import-custom-arg.nix deleted file mode 100644 index 3e687b6..0000000 --- a/lib/tests/modules/import-custom-arg.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ lib, custom, ... }: - -{ - 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 deleted file mode 100644 index f5af224..0000000 --- a/lib/tests/modules/import-from-store.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ lib, ... }: -{ - - imports = [ - "${builtins.toFile "drv" "{}"}" - ./declare-enable.nix - ./define-enable.nix - ]; - -} - diff --git a/lib/tests/modules/merge-module-with-key.nix b/lib/tests/modules/merge-module-with-key.nix deleted file mode 100644 index 21f00e6..0000000 --- a/lib/tests/modules/merge-module-with-key.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ lib, ... }: -let - inherit (lib) mkOption types; - - moduleWithoutKey = { - config = { - raw = "pear"; - }; - }; - - moduleWithKey = { - key = __curPos.file + "#moduleWithKey"; - config = { - raw = "pear"; - }; - }; - - decl = { - options = { - raw = mkOption { - type = types.lines; - }; - }; - }; -in -{ - options = { - once = mkOption { - type = types.submodule { - imports = [ - decl - moduleWithKey - moduleWithKey - ]; - }; - default = {}; - }; - twice = mkOption { - type = types.submodule { - imports = [ - decl - moduleWithoutKey - moduleWithoutKey - ]; - }; - default = {}; - }; - }; -} diff --git a/lib/tests/modules/merge-typeless-option.nix b/lib/tests/modules/merge-typeless-option.nix deleted file mode 100644 index 627d90b..0000000 --- a/lib/tests/modules/merge-typeless-option.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib, ... }: - -let - typeless = - { lib, ... }: - - { - options.group = lib.mkOption { }; - }; - childOfTypeless = - { lib, ... }: - - { - options.group.enable = lib.mkEnableOption "nothing"; - }; -in - -{ - imports = [ - typeless - childOfTypeless - ]; - - config.group.enable = false; -} diff --git a/lib/tests/modules/module-argument-default.nix b/lib/tests/modules/module-argument-default.nix deleted file mode 100644 index 8dbb783..0000000 --- a/lib/tests/modules/module-argument-default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ a ? false, lib, ... }: { - options = { - result = lib.mkOption {}; - }; - config = { - _module.args.a = true; - result = a; - }; -} diff --git a/lib/tests/modules/module-class-is-darwin.nix b/lib/tests/modules/module-class-is-darwin.nix deleted file mode 100644 index bacf456..0000000 --- a/lib/tests/modules/module-class-is-darwin.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ - _class = "darwin"; - config = {}; -} diff --git a/lib/tests/modules/module-class-is-nixos.nix b/lib/tests/modules/module-class-is-nixos.nix deleted file mode 100644 index 6d62fee..0000000 --- a/lib/tests/modules/module-class-is-nixos.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ - _class = "nixos"; - config = {}; -} diff --git a/lib/tests/modules/module-imports-_type-check.nix b/lib/tests/modules/module-imports-_type-check.nix deleted file mode 100644 index 1e29c46..0000000 --- a/lib/tests/modules/module-imports-_type-check.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - imports = [ { _type = "flake"; } ]; -} diff --git a/lib/tests/modules/optionTypeFile.nix b/lib/tests/modules/optionTypeFile.nix deleted file mode 100644 index 6015d59..0000000 --- a/lib/tests/modules/optionTypeFile.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ config, lib, ... }: { - - _file = "optionTypeFile.nix"; - - options.theType = lib.mkOption { - type = lib.types.optionType; - }; - - options.theOption = lib.mkOption { - type = config.theType; - default = {}; - }; - - config.theType = lib.mkMerge [ - (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; - }; - }) - ]; - -} diff --git a/lib/tests/modules/optionTypeMerging.nix b/lib/tests/modules/optionTypeMerging.nix deleted file mode 100644 index 74a620c..0000000 --- a/lib/tests/modules/optionTypeMerging.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ config, lib, ... }: { - - options.theType = lib.mkOption { - type = lib.types.optionType; - }; - - options.theOption = lib.mkOption { - type = config.theType; - }; - - config.theType = lib.mkMerge [ - (lib.types.submodule { - options.int = lib.mkOption { - type = lib.types.int; - default = 10; - }; - }) - (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 deleted file mode 100644 index bcd6db8..0000000 --- a/lib/tests/modules/options-type-error-configuration.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ lib, ... }: { - options = { - # unlikely mistake, but we can catch any attrset with _type - 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 deleted file mode 100644 index 2c07e19..0000000 --- a/lib/tests/modules/options-type-error-typical-nested.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ 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 deleted file mode 100644 index 416f436..0000000 --- a/lib/tests/modules/options-type-error-typical.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ lib, ... }: { - options = { - result = lib.types.str; - }; -} diff --git a/lib/tests/modules/raw.nix b/lib/tests/modules/raw.nix deleted file mode 100644 index 9eb7c5c..0000000 --- a/lib/tests/modules/raw.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ 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; - }; - unprocessedNestingEvaluates = lib.mkOption { - default = builtins.tryEval config.unprocessedNesting; - }; - }; - - config = { - processedToplevel = lib.mkIf true 10; - unprocessedNesting.foo = throw "foo"; - multiple = lib.mkMerge [ - "foo" - "foo" - ]; - priorities = lib.mkMerge [ - "foo" - (lib.mkForce "bar") - ]; - }; -} diff --git a/lib/tests/modules/shorthand-meta.nix b/lib/tests/modules/shorthand-meta.nix deleted file mode 100644 index 8c9619e..0000000 --- a/lib/tests/modules/shorthand-meta.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ lib, ... }: -let - inherit (lib) types mkOption; -in -{ - imports = [ - ({ config, ... }: { - options = { - meta.foo = mkOption { - type = types.listOf types.str; - }; - result = mkOption { default = lib.concatStringsSep " " config.meta.foo; }; - }; - }) - { - meta.foo = [ "one" "two" ]; - } - ]; -} diff --git a/lib/tests/modules/submoduleFiles.nix b/lib/tests/modules/submoduleFiles.nix deleted file mode 100644 index c0d9b2c..0000000 --- a/lib/tests/modules/submoduleFiles.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ lib, ... }: { - options.submodule = lib.mkOption { - default = {}; - type = lib.types.submoduleWith { - modules = [ ({ options, ... }: { - options.value = lib.mkOption {}; - - options.internalFiles = lib.mkOption { - default = options.value.files; - }; - })]; - }; - }; - - imports = [ - { - _file = "the-file.nix"; - submodule.value = 10; - } - ]; -} diff --git a/lib/tests/modules/test-mergeAttrDefinitionsWithPrio.nix b/lib/tests/modules/test-mergeAttrDefinitionsWithPrio.nix deleted file mode 100644 index 3233f41..0000000 --- a/lib/tests/modules/test-mergeAttrDefinitionsWithPrio.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ lib, options, ... }: - -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."; -in - -{ - options.result = lib.mkOption { }; - config._module.args = { - default = lib.mkDefault (assertLazy __curPos); - regular = null; - force = lib.mkForce (assertLazy __curPos); - unused = assertLazy __curPos; - }; - config.result = - assert defs.default.highestPrio == (lib.mkDefault (assertLazy __curPos)).priority; - assert defs.regular.highestPrio == lib.modules.defaultOverridePriority; - assert defs.force.highestPrio == (lib.mkForce (assertLazy __curPos)).priority; - true; -} diff --git a/lib/tests/modules/types-anything/attrs-coercible.nix b/lib/tests/modules/types-anything/attrs-coercible.nix deleted file mode 100644 index 085cbd6..0000000 --- a/lib/tests/modules/types-anything/attrs-coercible.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ lib, ... }: { - - options.value = lib.mkOption { - type = lib.types.anything; - }; - - config.value = { - outPath = "foo"; - err = throw "err"; - }; - -} diff --git a/lib/tests/modules/types-anything/equal-atoms.nix b/lib/tests/modules/types-anything/equal-atoms.nix deleted file mode 100644 index 9925cfd..0000000 --- a/lib/tests/modules/types-anything/equal-atoms.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, ... }: { - - options.value = lib.mkOption { - type = lib.types.anything; - }; - - config = lib.mkMerge [ - { - value.int = 0; - value.bool = false; - value.string = ""; - value.path = ./.; - value.null = null; - value.float = 0.1; - } - { - value.int = 0; - value.bool = false; - value.string = ""; - value.path = ./.; - value.null = null; - value.float = 0.1; - } - ]; - -} diff --git a/lib/tests/modules/types-anything/functions.nix b/lib/tests/modules/types-anything/functions.nix deleted file mode 100644 index 3288b64..0000000 --- a/lib/tests/modules/types-anything/functions.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, config, ... }: { - - options.valueIsFunction = lib.mkOption { - default = lib.mapAttrs (name: lib.isFunction) config.value; - }; - - options.value = lib.mkOption { - type = lib.types.anything; - }; - - options.applied = lib.mkOption { - default = lib.mapAttrs (name: fun: fun null) config.value; - }; - - config = lib.mkMerge [ - { - value.single-lambda = x: x; - value.multiple-lambdas = x: { inherit x; }; - value.merging-lambdas = x: { inherit x; }; - } - { - value.multiple-lambdas = x: [ x ]; - value.merging-lambdas = y: { inherit y; }; - } - ]; - -} diff --git a/lib/tests/modules/types-anything/lists.nix b/lib/tests/modules/types-anything/lists.nix deleted file mode 100644 index bd846af..0000000 --- a/lib/tests/modules/types-anything/lists.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ lib, ... }: { - - options.value = lib.mkOption { - type = lib.types.anything; - }; - - config = lib.mkMerge [ - { - value = [ null ]; - } - { - value = [ null ]; - } - ]; - -} diff --git a/lib/tests/modules/types-anything/mk-mods.nix b/lib/tests/modules/types-anything/mk-mods.nix deleted file mode 100644 index f84ad01..0000000 --- a/lib/tests/modules/types-anything/mk-mods.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ lib, ... }: { - - 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.nested = lib.mkMerge [ - { - foo = lib.mkDefault 0; - bar = lib.mkIf false 0; - } - (lib.mkIf true { - foo = lib.mkIf true (lib.mkForce 1); - bar = { - baz = lib.mkDefault "baz"; - }; - }) - ]; - } - ]; - -} diff --git a/lib/tests/modules/types-anything/nested-attrs.nix b/lib/tests/modules/types-anything/nested-attrs.nix deleted file mode 100644 index e57d33e..0000000 --- a/lib/tests/modules/types-anything/nested-attrs.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ lib, ... }: { - - 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; - } - ]; - -} diff --git a/lib/tests/modules/types-attrTag-wrong-decl.nix b/lib/tests/modules/types-attrTag-wrong-decl.nix deleted file mode 100644 index d03370b..0000000 --- a/lib/tests/modules/types-attrTag-wrong-decl.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ lib, ... }: -let - inherit (lib) types mkOption; -in -{ - options = { - opt = mkOption { - type = types.attrTag { - int = types.int; - }; - default = { int = 1; }; - }; - }; -} diff --git a/lib/tests/modules/types-attrTag.nix b/lib/tests/modules/types-attrTag.nix deleted file mode 100644 index b2e5158..0000000 --- a/lib/tests/modules/types-attrTag.nix +++ /dev/null @@ -1,135 +0,0 @@ -{ lib, config, options, ... }: -let - inherit (lib) mkOption types; - forceDeep = x: builtins.deepSeq x x; - mergedSubOption = (options.merged.type.getSubOptions options.merged.loc).extensible."merged."; -in -{ - options = { - intStrings = mkOption { - 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; - }; - right = mkOption { - type = types.attrTag { - left = mkOption { - type = types.int; - }; - right = mkOption { - type = types.str; - }; - }; - }; - }; - }; - merged = mkOption { - type = types.attrsOf ( - types.attrTag { - yay = mkOption { - type = types.int; - }; - extensible = mkOption { - type = types.enum [ "foo" ]; - }; - } - ); - }; - submodules = mkOption { - type = types.attrsOf ( - types.attrTag { - foo = mkOption { - type = types.submodule { - options = { - bar = mkOption { - type = types.int; - }; - }; - }; - }; - qux = mkOption { - type = types.str; - description = "A qux for when you don't want a foo"; - }; - } - ); - }; - okChecks = mkOption {}; - }; - imports = [ - ./docs.nix - { - options.merged = mkOption { - type = types.attrsOf ( - types.attrTag { - nay = mkOption { - type = types.bool; - }; - extensible = mkOption { - type = types.enum [ "bar" ]; - }; - } - ); - }; - } - ]; - 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.badTagError.rite = throw "do not eval"; - intStrings.badTagTypeError.left = "bad"; - intStrings.numberOne.left = 1; - intStrings.hello.right = "hello world"; - nested.right.left = "not a number"; - merged.negative.nay = false; - merged.positive.yay = 100; - merged.extensi-foo.extensible = "foo"; - merged.extensi-bar.extensible = "bar"; - okChecks = builtins.addErrorContext "while evaluating the assertions" ( - assert config.intStrings.hello == { right = "hello world"; }; - assert config.intStrings.numberOne == { left = 1; }; - assert config.merged.negative == { nay = false; }; - assert config.merged.positive == { yay = 100; }; - assert config.merged.extensi-foo == { extensible = "foo"; }; - assert config.merged.extensi-bar == { extensible = "bar"; }; - 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".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; - assert config.docs."submodules..qux".visible == true; - # Not available (yet?) - # assert config.docs."submodules..qux".declarationsWithPositions == [ ... ]; - 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 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.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.length config.docs."merged..extensible".declarations == 2; - true); - }; -} diff --git a/lib/tests/modules/types-unique.nix b/lib/tests/modules/types-unique.nix deleted file mode 100644 index 115be01..0000000 --- a/lib/tests/modules/types-unique.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, ... }: -let - inherit (lib) mkOption types; -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)); - }; - imports = [ - { examples.merged = { b = "bee"; }; } - { examples.override = lib.mkForce { b = "bee"; }; } - ]; - config.examples = { - merged = { - a = "aye"; - }; - override = { - a = "aye"; - }; - badLazyType = { - a = true; - }; - }; -} diff --git a/lib/tests/modules/types.nix b/lib/tests/modules/types.nix deleted file mode 100644 index 7c43a68..0000000 --- a/lib/tests/modules/types.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib, ... }: -let - inherit (builtins) - storeDir; - inherit (lib) - types - mkOption - ; -in -{ - options = { - pathInStore = mkOption { type = types.lazyAttrsOf types.pathInStore; }; - }; - config = { - pathInStore.ok1 = "${storeDir}/0lz9p8xhf89kb1c1kk6jxrzskaiygnlh-bash-5.2-p15.drv"; - pathInStore.ok2 = "${storeDir}/0fb3ykw9r5hpayd05sr0cizwadzq1d8q-bash-5.2-p15"; - pathInStore.ok3 = "${storeDir}/0fb3ykw9r5hpayd05sr0cizwadzq1d8q-bash-5.2-p15/bin/bash"; - pathInStore.bad1 = ""; - pathInStore.bad2 = "${storeDir}"; - pathInStore.bad3 = "${storeDir}/"; - pathInStore.bad4 = "${storeDir}/.links"; # technically true, but not reasonable - pathInStore.bad5 = "/foo/bar"; - }; -} diff --git a/lib/tests/nix-for-tests.nix b/lib/tests/nix-for-tests.nix deleted file mode 100644 index 69dedec..0000000 --- a/lib/tests/nix-for-tests.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ 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 -# getting false CI failures due to whatever is flaky in the AWS -# SDK tests. Since none of our CI needs to (or should be able to) -# contact AWS S3, let's just omit it all from the Nix that runs -# CI. Bonus: the tests build way faster. -# -# 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 diff --git a/lib/tests/packages-from-directory/a.nix b/lib/tests/packages-from-directory/a.nix deleted file mode 100644 index 54f9eaf..0000000 --- a/lib/tests/packages-from-directory/a.nix +++ /dev/null @@ -1,2 +0,0 @@ -{ }: -"a" diff --git a/lib/tests/packages-from-directory/b.nix b/lib/tests/packages-from-directory/b.nix deleted file mode 100644 index 345b3c2..0000000 --- a/lib/tests/packages-from-directory/b.nix +++ /dev/null @@ -1,2 +0,0 @@ -{ }: -"b" diff --git a/lib/tests/packages-from-directory/c/my-extra-feature.patch b/lib/tests/packages-from-directory/c/my-extra-feature.patch deleted file mode 100644 index e69de29..0000000 diff --git a/lib/tests/packages-from-directory/c/not-a-namespace/not-a-package.nix b/lib/tests/packages-from-directory/c/not-a-namespace/not-a-package.nix deleted file mode 100644 index ffcd441..0000000 --- a/lib/tests/packages-from-directory/c/not-a-namespace/not-a-package.nix +++ /dev/null @@ -1 +0,0 @@ -{ } diff --git a/lib/tests/packages-from-directory/c/package.nix b/lib/tests/packages-from-directory/c/package.nix deleted file mode 100644 index c1203cd..0000000 --- a/lib/tests/packages-from-directory/c/package.nix +++ /dev/null @@ -1,2 +0,0 @@ -{ }: -"c" diff --git a/lib/tests/packages-from-directory/c/support-definitions.nix b/lib/tests/packages-from-directory/c/support-definitions.nix deleted file mode 100644 index ffcd441..0000000 --- a/lib/tests/packages-from-directory/c/support-definitions.nix +++ /dev/null @@ -1 +0,0 @@ -{ } diff --git a/lib/tests/packages-from-directory/my-namespace/d.nix b/lib/tests/packages-from-directory/my-namespace/d.nix deleted file mode 100644 index 6e5eaa0..0000000 --- a/lib/tests/packages-from-directory/my-namespace/d.nix +++ /dev/null @@ -1,2 +0,0 @@ -{ }: -"d" diff --git a/lib/tests/packages-from-directory/my-namespace/e.nix b/lib/tests/packages-from-directory/my-namespace/e.nix deleted file mode 100644 index 50bd742..0000000 --- a/lib/tests/packages-from-directory/my-namespace/e.nix +++ /dev/null @@ -1,2 +0,0 @@ -{ }: -"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 deleted file mode 100644 index c9a66c2..0000000 --- a/lib/tests/packages-from-directory/my-namespace/f/package.nix +++ /dev/null @@ -1,2 +0,0 @@ -{ }: -"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 deleted file mode 100644 index 4ecaffb..0000000 --- a/lib/tests/packages-from-directory/my-namespace/my-sub-namespace/g.nix +++ /dev/null @@ -1,2 +0,0 @@ -{ }: -"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 deleted file mode 100644 index 3756275..0000000 --- a/lib/tests/packages-from-directory/my-namespace/my-sub-namespace/h.nix +++ /dev/null @@ -1,2 +0,0 @@ -{ }: -"h" diff --git a/lib/tests/release.nix b/lib/tests/release.nix deleted file mode 100644 index 373b990..0000000 --- a/lib/tests/release.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ # 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!"; }, - nix ? pkgs-nixVersions.stable, - 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; }; - -in - 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 {})] - ; - - } diff --git a/lib/tests/sources.sh b/lib/tests/sources.sh deleted file mode 100755 index 079c7ee..0000000 --- a/lib/tests/sources.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/env bash - -# Tests lib/sources.nix -# Run: -# [nixpkgs]$ lib/tests/sources.sh -# or: -# [nixpkgs]$ nix-build lib/tests/release.nix - -set -euo pipefail -shopt -s inherit_errexit - -# Use -# || die -die() { - echo >&2 "test case failed: " "$@" - exit 1 -} - -if test -n "${TEST_LIB:-}"; then - NIX_PATH=nixpkgs="$(dirname "$TEST_LIB")" -else - NIX_PATH=nixpkgs="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.."; pwd)" -fi -export NIX_PATH - -work="$(mktemp -d)" -clean_up() { - rm -rf "$work" -} -trap clean_up EXIT -cd "$work" - -# Crudely unquotes a JSON string by just taking everything between the first and the second quote. -# We're only using this for resulting /nix/store paths, which can't contain " anyways, -# nor can they contain any other characters that would need to be escaped specially in JSON -# This way we don't need to add a dependency on e.g. jq -crudeUnquoteJSON() { - cut -d \" -f2 -} - -touch {README.md,module.o,foo.bar} - -dir="$(nix-instantiate --eval --strict --read-write-mode --json --expr '(with import ; "${ - cleanSource ./. -}")' | crudeUnquoteJSON)" -(cd "$dir"; find) | sort -f | diff -U10 - <(cat <&2 tests ok diff --git a/lib/tests/systems.nix b/lib/tests/systems.nix deleted file mode 100644 index e142ff3..0000000 --- a/lib/tests/systems.nix +++ /dev/null @@ -1,105 +0,0 @@ -# Run: -# [nixpkgs]$ nix-instantiate --eval --strict lib/tests/systems.nix -# Expected output: [], or the failed cases -# -# OfBorg runs (approximately) nix-build lib/tests/release.nix -let - lib = import ../default.nix; - mseteq = x: y: { - expr = lib.sort lib.lessThan x; - expected = lib.sort lib.lessThan y; - }; - - /* - Try to convert an elaborated system back to a simple string. If not possible, - return null. So we have the property: - - sys: _valid_ sys -> - sys == elaborate (toLosslessStringMaybe sys) - - 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; - -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 :). - -(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" ]; - - 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}; - }; - -}) (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 deleted file mode 100644 index 8a0a5d2..0000000 --- a/lib/tests/teams.nix +++ /dev/null @@ -1,50 +0,0 @@ -# to run these tests: -# nix-build nixpkgs/lib/tests/teams.nix -# If it builds, all tests passed -{ 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 = []; - }; - }; - }; - - 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) diff --git a/lib/tests/test-to-plist-expected.plist b/lib/tests/test-to-plist-expected.plist deleted file mode 100644 index df0528a..0000000 --- a/lib/tests/test-to-plist-expected.plist +++ /dev/null @@ -1,46 +0,0 @@ - - - - - nested - - values - - attrs - - foo b/ar - baz - - bool - - emptyattrs - - - - emptylist - - - - emptystring - - float - 0.133700 - int - 42 - list - - 3 - 4 - test - - newlinestring - - - path - /foo - string - fn${o}"r\d - - - - \ No newline at end of file diff --git a/lib/tests/test-with-nix.nix b/lib/tests/test-with-nix.nix deleted file mode 100644 index c8c3cae..0000000 --- a/lib/tests/test-with-nix.nix +++ /dev/null @@ -1,77 +0,0 @@ -/** - * 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, - # Only ever use this nix; see comment at top - 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 - } - - echo "Running lib/tests/filesystem.sh" - TEST_LIB=$PWD/lib bash lib/tests/filesystem.sh - - 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 deleted file mode 100644 index 5b7a1ee..0000000 --- a/lib/trivial.nix +++ /dev/null @@ -1,1080 +0,0 @@ -{ lib }: - -let - inherit (lib.trivial) - isFunction - isInt - functionArgs - pathExists - release - setFunctionArgs - toBaseDigits - version - versionSuffix - warn; -in { - - ## Simple (higher order) functions - - /** - The identity function - For when you need a function that does “nothing”. - - - # Inputs - - `x` - - : The value to return - - # Type - - ``` - id :: a -> a - ``` - */ - id = x: x; - - /** - The constant function - - Ignores the second argument. If called with only one argument, - constructs a function that always returns a static value. - - - # Inputs - - `x` - - : Value to return - - `y` - - : Value to ignore - - # Type - - ``` - const :: a -> b -> a - ``` - - # Examples - :::{.example} - ## `lib.trivial.const` usage example - - ```nix - let f = const 5; in f 10 - => 5 - ``` - - ::: - */ - const = - x: - y: x; - - /** - Pipes a value through a list of functions, left to right. - - # Inputs - - `value` - - : Value to start piping. - - `fns` - - : List of functions to apply sequentially. - - # Type - - ``` - pipe :: a -> [] -> - ``` - - # Examples - :::{.example} - ## `lib.trivial.pipe` usage example - - ```nix - pipe 2 [ - (x: x + 2) # 2 + 2 = 4 - (x: x * 2) # 4 * 2 = 8 - ] - => 8 - - # ideal to do text transformations - pipe [ "a/b" "a/c" ] [ - - # create the cp command - (map (file: ''cp "${src}/${file}" $out\n'')) - - # concatenate all commands into one string - lib.concatStrings - - # make that string into a nix derivation - (pkgs.runCommand "copy-to-out" {}) - - ] - => - - The output type of each function has to be the input type - of the next function, and the last function returns the - final value. - ``` - - ::: - */ - pipe = builtins.foldl' (x: f: f x); - - # note please don’t add a function like `compose = flip pipe`. - # This would confuse users, because the order of the functions - # in the list is not clear. With pipe, it’s obvious that it - # goes first-to-last. With `compose`, not so much. - - ## Named versions corresponding to some builtin operators. - - /** - Concatenate two lists - - - # Inputs - - `x` - - : 1\. Function argument - - `y` - - : 2\. Function argument - - # Type - - ``` - concat :: [a] -> [a] -> [a] - ``` - - # Examples - :::{.example} - ## `lib.trivial.concat` usage example - - ```nix - concat [ 1 2 ] [ 3 4 ] - => [ 1 2 3 4 ] - ``` - - ::: - */ - concat = x: y: x ++ y; - - /** - boolean “or” - - - # Inputs - - `x` - - : 1\. Function argument - - `y` - - : 2\. Function argument - */ - or = x: y: x || y; - - /** - boolean “and” - - - # Inputs - - `x` - - : 1\. Function argument - - `y` - - : 2\. Function argument - */ - and = x: y: x && y; - - /** - boolean “exclusive or” - - - # Inputs - - `x` - - : 1\. Function argument - - `y` - - : 2\. Function argument - */ - # We explicitly invert the arguments purely as a type assertion. - # This is invariant under XOR, so it does not affect the result. - xor = x: y: (!x) != (!y); - - /** - bitwise “not” - */ - bitNot = builtins.sub (-1); - - /** - Convert a boolean to a string. - - This function uses the strings "true" and "false" to represent - boolean values. Calling `toString` on a bool instead returns "1" - and "" (sic!). - - - # Inputs - - `b` - - : 1\. Function argument - - # Type - - ``` - boolToString :: bool -> string - ``` - */ - boolToString = b: if b then "true" else "false"; - - /** - Merge two attribute sets shallowly, right side trumps left - - mergeAttrs :: attrs -> attrs -> attrs - - - # Inputs - - `x` - - : Left attribute set - - `y` - - : Right attribute set (higher precedence for equal keys) - - - # Examples - :::{.example} - ## `lib.trivial.mergeAttrs` usage example - - ```nix - mergeAttrs { a = 1; b = 2; } { b = 3; c = 4; } - => { a = 1; b = 3; c = 4; } - ``` - - ::: - */ - mergeAttrs = - x: - y: x // y; - - /** - Flip the order of the arguments of a binary function. - - - # Inputs - - `f` - - : 1\. Function argument - - `a` - - : 2\. Function argument - - `b` - - : 3\. Function argument - - # Type - - ``` - flip :: (a -> b -> c) -> (b -> a -> c) - ``` - - # Examples - :::{.example} - ## `lib.trivial.flip` usage example - - ```nix - flip concat [1] [2] - => [ 2 1 ] - ``` - - ::: - */ - flip = f: a: b: f b a; - - /** - Apply function if the supplied argument is non-null. - - - # Inputs - - `f` - - : Function to call - - `a` - - : Argument to check for null before passing it to `f` - - - # Examples - :::{.example} - ## `lib.trivial.mapNullable` usage example - - ```nix - mapNullable (x: x+1) null - => null - mapNullable (x: x+1) 22 - => 23 - ``` - - ::: - */ - 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; - - ## nixpkgs version strings - - /** - Returns the current full nixpkgs version number. - */ - version = release + versionSuffix; - - /** - Returns the current nixpkgs release number as string. - */ - release = lib.strings.fileContents ./.version; - - /** - The latest release that is supported, at the time of release branch-off, - if applicable. - - Ideally, out-of-tree modules should be able to evaluate cleanly with all - supported Nixpkgs versions (master, release and old release until EOL). - So if possible, deprecation warnings should take effect only when all - out-of-tree expressions/libs/modules can upgrade to the new way without - losing support for supported Nixpkgs versions. - - This release number allows deprecation warnings to be implemented such that - they take effect as soon as the oldest release reaches end of life. - */ - oldestSupportedRelease = - # Update on master only. Do not backport. - 2311; - - /** - Whether a feature is supported in all supported releases (at the time of - release branch-off, if applicable). See `oldestSupportedRelease`. - - - # Inputs - - `release` - - : 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; - - /** - Returns the current nixpkgs release code name. - - On each release the first letter is bumped and a new animal is chosen - starting with that new letter. - */ - codeName = "Uakari"; - - /** - 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"; - - /** - Attempts to return the the current revision of nixpkgs and - returns the supplied default value otherwise. - - - # Inputs - - `default` - - : Default value to return if revision can not be determined - - # Type - - ``` - revisionWithDefault :: string -> string - ``` - */ - revisionWithDefault = - 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; - - nixpkgsVersion = warn "lib.nixpkgsVersion is a deprecated alias of lib.version." version; - - /** - Determine whether the function is being called from inside a Nix - shell. - - # Type - - ``` - inNixShell :: bool - ``` - */ - inNixShell = builtins.getEnv "IN_NIX_SHELL" != ""; - - /** - Determine whether the function is being called from inside pure-eval mode - by seeing whether `builtins` contains `currentSystem`. If not, we must be in - pure-eval mode. - - # Type - - ``` - inPureEvalMode :: bool - ``` - */ - inPureEvalMode = ! builtins ? currentSystem; - - ## Integer operations - - /** - Return minimum of two numbers. - - - # Inputs - - `x` - - : 1\. Function argument - - `y` - - : 2\. Function argument - */ - min = x: y: if x < y then x else y; - - /** - Return maximum of two numbers. - - - # Inputs - - `x` - - : 1\. Function argument - - `y` - - : 2\. Function argument - */ - max = x: y: if x > y then x else y; - - /** - Integer modulus - - - # Inputs - - `base` - - : 1\. Function argument - - `int` - - : 2\. Function argument - - - # Examples - :::{.example} - ## `lib.trivial.mod` usage example - - ```nix - mod 11 10 - => 1 - mod 1 10 - => 1 - ``` - - ::: - */ - mod = base: int: base - (int * (builtins.div base int)); - - - ## Comparisons - - /** - C-style comparisons - - a < b, compare a b => -1 - a == b, compare a b => 0 - a > b, compare a b => 1 - - - # Inputs - - `a` - - : 1\. Function argument - - `b` - - : 2\. Function argument - */ - 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 - of the first subtype to be less than all the elements of the - second subtype, compare elements of a single subtype with `yes` - and `no` respectively. - - - # Inputs - - `p` - - : Predicate - - `yes` - - : Comparison function if predicate holds for both values - - `no` - - : Comparison function if predicate holds for neither value - - `a` - - : First value to compare - - `b` - - : Second value to compare - - # Type - - ``` - (a -> bool) -> (a -> a -> int) -> (a -> a -> int) -> (a -> a -> int) - ``` - - # Examples - :::{.example} - ## `lib.trivial.splitByAndCompare` usage example - - ```nix - let cmp = splitByAndCompare (hasPrefix "foo") compare compare; in - - cmp "a" "z" => -1 - cmp "fooa" "fooz" => -1 - - cmp "f" "a" => 1 - cmp "fooa" "a" => -1 - # while - compare "fooa" "a" => 1 - ``` - - ::: - */ - 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; - - - /** - Reads a JSON file. - - - # Inputs - - `path` - - : 1\. Function argument - - # Type - - ``` - importJSON :: path -> any - ``` - */ - importJSON = path: - builtins.fromJSON (builtins.readFile path); - - /** - Reads a TOML file. - - - # Inputs - - `path` - - : 1\. Function argument - - # Type - - ``` - importTOML :: path -> any - ``` - */ - importTOML = path: - builtins.fromTOML (builtins.readFile path); - - ## Warnings - - # See https://github.com/NixOS/nix/issues/749. Eventually we'd like these - # to expand to Nix builtins that carry metadata so that Nix can filter out - # the INFO messages without parsing the message string. - # - # Usage: - # { - # foo = lib.warn "foo is deprecated" oldFoo; - # bar = lib.warnIf (bar == "") "Empty bar is deprecated" bar; - # } - # - # TODO: figure out a clever way to integrate location information from - # something like __unsafeGetAttrPos. - - /** - Print a warning before returning the second argument. This function behaves - like `builtins.trace`, but requires a string message and formats it as a - warning, including the `warning: ` prefix. - - To get a call stack trace and abort evaluation, set the environment variable - `NIX_ABORT_ON_WARN=true` and set the Nix options `--option pure-eval false --show-trace` - - # Inputs - - `msg` - - : Warning message to print. - - `val` - - : Value to return as-is. - - # Type - - ``` - string -> a -> a - ``` - */ - 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}"; - - /** - Like warn, but only warn when the first argument is `true`. - - - # Inputs - - `cond` - - : 1\. Function argument - - `msg` - - : 2\. Function argument - - `val` - - : Value to return as-is. - - # Type - - ``` - bool -> string -> a -> a - ``` - */ - warnIf = cond: msg: if cond then warn msg else x: x; - - /** - Like warnIf, but negated (warn if the first argument is `false`). - - - # Inputs - - `cond` - - : 1\. Function argument - - `msg` - - : 2\. Function argument - - `val` - - : Value to return as-is. - - # Type - - ``` - bool -> string -> a -> a - ``` - */ - warnIfNot = cond: msg: if cond then x: x else warn msg; - - /** - Like the `assert b; e` expression, but with a custom error message and - without the semicolon. - - If true, return the identity function, `r: r`. - - If false, throw the error message. - - Calls can be juxtaposed using function application, as `(r: r) a = a`, so - `(r: r) (r: r) a = a`, and so forth. - - - # Inputs - - `cond` - - : 1\. Function argument - - `msg` - - : 2\. Function argument - - # Type - - ``` - bool -> string -> a -> a - ``` - - # Examples - :::{.example} - ## `lib.trivial.throwIfNot` usage example - - ```nix - 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 - pkgs - ``` - - ::: - */ - throwIfNot = cond: msg: if cond then x: x else throw msg; - - /** - Like throwIfNot, but negated (throw if the first argument is `true`). - - - # Inputs - - `cond` - - : 1\. Function argument - - `msg` - - : 2\. Function argument - - # Type - - ``` - bool -> string -> a -> a - ``` - */ - throwIf = cond: msg: if cond then throw msg else x: x; - - /** - 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` - - : 1\. Function argument - - `valid` - - : 2\. Function argument - - `given` - - : 3\. Function argument - - # Type - - ``` - String -> List ComparableVal -> List ComparableVal -> a -> a - ``` - - # Examples - :::{.example} - ## `lib.trivial.checkListOfEnum` usage example - - ```nix - let colorVariants = ["bright" "dark" "black"] - in checkListOfEnum "color variants" [ "standard" "light" "dark" ] colorVariants; - => - error: color variants: bright, black unexpected; valid ones: standard, light, dark - ``` - - ::: - */ - 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)}"; - - info = msg: builtins.trace "INFO: ${msg}"; - - showWarnings = warnings: res: lib.foldr (w: x: warn w x) res warnings; - - ## Function annotations - - /** - Add metadata about expected function arguments to a function. - The metadata should match the format given by - builtins.functionArgs, i.e. a set from expected argument to a bool - representing whether that argument has a default or not. - setFunctionArgs : (a → b) → Map String Bool → (a → b) - - This function is necessary because you can't dynamically create a - function of the { a, b ? foo, ... }: format, but some facilities - like callPackage expect to be able to query expected arguments. - - - # Inputs - - `f` - - : 1\. Function argument - - `args` - - : 2\. Function argument - */ - 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. - This works both with nix-native { a, b ? foo, ... }: style - functions and functions with args set with 'setFunctionArgs'. It - 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; - - /** - 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)); - - /** - `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` - - : Function to provide the argument metadata - - `g` - - : Function to set the argument metadata to - - # Type - - ``` - mirrorFunctionArgs :: (a -> b) -> (a -> c) -> (a -> c) - ``` - - # Examples - :::{.example} - ## `lib.trivial.mirrorFunctionArgs` usage example - - ```nix - addab = {a, b}: a + b - addab { a = 2; b = 4; } - => 6 - lib.functionArgs addab - => { a = false; b = false; } - addab1 = attrs: addab attrs + 1 - addab1 { a = 2; b = 4; } - => 7 - lib.functionArgs addab1 - => { } - addab1' = lib.mirrorFunctionArgs addab addab1 - addab1' { a = 2; b = 4; } - => 7 - lib.functionArgs addab1' - => { a = false; b = false; } - ``` - - ::: - */ - mirrorFunctionArgs = - f: - let - fArgs = functionArgs f; - in - 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 - - ```nix - nix-repl> lib.toFunction 1 2 - 1 - - nix-repl> lib.toFunction (x: x + 1) 2 - 3 - ``` - - ::: - */ - toFunction = - v: - if isFunction v - then v - else k: v; - - /** - Convert the given positive integer to a string of its hexadecimal - representation. For example: - - toHexString 0 => "0" - - toHexString 16 => "10" - - 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); - - /** - `toBaseDigits base i` converts the positive integer i to a list of its - digits in the given base. For example: - - toBaseDigits 10 123 => [ 1 2 3 ] - - toBaseDigits 2 6 => [ 1 1 0 ] - - toBaseDigits 16 250 => [ 15 10 ] - - - # Inputs - - `base` - - : 1\. Function argument - - `i` - - : 2\. Function argument - */ - toBaseDigits = base: i: - let - go = i: - if i < base - then [i] - else - let - r = i - ((i / base) * base); - q = (i - r) / base; - in - [r] ++ go q; - in - 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 deleted file mode 100644 index 518b987..0000000 --- a/lib/types.nix +++ /dev/null @@ -1,1051 +0,0 @@ -# Definitions related to run-time type checking. Used in particular -# to type-check NixOS configurations. -{ lib }: - -let - inherit (lib) - elem - flip - isAttrs - isBool - isDerivation - isFloat - isFunction - isInt - isList - isString - isStorePath - throwIf - toDerivation - toList - ; - inherit (lib.lists) - all - concatLists - count - elemAt - filter - foldl' - head - imap1 - last - length - tail - ; - inherit (lib.attrsets) - attrNames - filterAttrs - hasAttr - mapAttrs - optionalAttrs - zipAttrsWith - ; - inherit (lib.options) - getFiles - getValues - mergeDefaultOption - mergeEqualOption - mergeOneOption - mergeUniqueOption - showFiles - showOption - ; - inherit (lib.strings) - concatMapStringsSep - concatStringsSep - escapeNixString - hasInfix - isStringLike - ; - inherit (lib.trivial) - boolToString - ; - - inherit (lib.modules) - mergeDefinitions - fixupOptionType - mergeOptionDecls - ; - - 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; - - 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; - 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; - - # 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; - }; - - # 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})"; - - # When adding new types don't forget to document them in - # nixos/doc/manual/development/option-types.xml! - types = rec { - - raw = mkOptionType { - name = "raw"; - description = "raw value"; - descriptionClass = "noun"; - check = value: true; - merge = mergeOneOption; - }; - - 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; - - # 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; - - 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; - }; - - unspecified = mkOptionType { - name = "unspecified"; - description = "unspecified value"; - descriptionClass = "noun"; - }; - - 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; - }; - - 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}"; - }; - 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"; - }; - 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; - }; - - # Alias of u16 for a port number - port = ints.u16; - - float = mkOptionType { - name = "float"; - description = "floating point number"; - descriptionClass = "noun"; - check = isFloat; - merge = mergeEqualOption; - }; - - number = either int float; - - 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"; - }; - - 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}" ( - 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 ] - ); - } - )) - 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 = - 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) ] - // { - # 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; - }; - } - ) 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)" - 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; }; - - }; -}; - -in outer_types // outer_types.types diff --git a/lib/versions.nix b/lib/versions.nix deleted file mode 100644 index 720d19e..0000000 --- a/lib/versions.nix +++ /dev/null @@ -1,64 +0,0 @@ -/* Version string functions. */ -{ lib }: - -rec { - - /* Break a version string into its component parts. - - Example: - splitVersion "1.2.3" - => ["1" "2" "3"] - */ - splitVersion = builtins.splitVersion; - - /* Get the major version string from a string. - - Example: - major "1.2.3" - => "1" - */ - major = v: builtins.elemAt (splitVersion v) 0; - - /* Get the minor version string from a string. - - Example: - minor "1.2.3" - => "2" - */ - minor = v: builtins.elemAt (splitVersion v) 1; - - /* Get the patch version string from a string. - - Example: - patch "1.2.3" - => "3" - */ - patch = v: builtins.elemAt (splitVersion v) 2; - - /* Get string of the first two parts (major and minor) - of a version string. - - Example: - majorMinor "1.2.3" - => "1.2" - */ - majorMinor = v: - builtins.concatStringsSep "." - (lib.take 2 (splitVersion v)); - - /* 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" - */ - 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 deleted file mode 100644 index 2aafbc6..0000000 --- a/maintainers/maintainer-list.nix +++ /dev/null @@ -1,68 +0,0 @@ -/* 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; - - keys = [{ - fingerprint = "AAAA BBBB CCCC DDDD EEEE FFFF 0000 1111 2222 3333"; - }]; - }; - ``` - - 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. - - 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. - - 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. - - 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. - - 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 - - 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. -*/ -{ - -} diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix deleted file mode 100644 index 952fdd0..0000000 --- a/maintainers/team-list.nix +++ /dev/null @@ -1,48 +0,0 @@ -/* List of maintainer teams. - name = { - # Required - members = [ maintainer1 maintainer2 ]; - scope = "Maintain foo packages."; - shortName = "foo"; - # Optional - enableFeatureFreezePing = true; - githubTeams = [ "my-subsystem" ]; - }; - - where - - - `members` is the list of maintainers belonging to the group, - - `scope` describes the scope of the group. - - `shortName` short human-readable name - - `enableFeatureFreezePing` will ping this team during the Feature Freeze announcements on releases - - There is limited mention capacity in a single post, so this should be reserved for critical components - or larger ecosystems within nixpkgs. - - `githubTeams` will ping specified GitHub teams as well - - More fields may be added in the future. - - When editing this file: - * keep the list alphabetically sorted - * test the validity of the format with: - nix-build lib/tests/teams.nix - */ - -{ lib }: -with lib.maintainers; { - llvm = { - members = []; - scope = "Maintain LLVM package sets and related packages"; - shortName = "LLVM"; - enableFeatureFreezePing = true; - }; - lix = { - members = []; - }; - python = { - members = []; - }; - rust = { - members = []; - }; -} - diff --git a/pkgs/build-support/add-driver-runpath/default.nix b/pkgs/build-support/add-driver-runpath/default.nix deleted file mode 100644 index 08547a4..0000000 --- a/pkgs/build-support/add-driver-runpath/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ lib, stdenv }: - -stdenv.mkDerivation { - name = "add-driver-runpath"; - - # Named "opengl-driver" for legacy reasons, but it is the path to - # hardware drivers installed by NixOS - driverLink = "/run/opengl-driver" + lib.optionalString stdenv.isi686 "-32"; - - buildCommand = '' - mkdir -p $out/nix-support - substituteAll ${./setup-hook.sh} $out/nix-support/setup-hook - ''; -} diff --git a/pkgs/build-support/add-driver-runpath/setup-hook.sh b/pkgs/build-support/add-driver-runpath/setup-hook.sh deleted file mode 100644 index 86a41a7..0000000 --- a/pkgs/build-support/add-driver-runpath/setup-hook.sh +++ /dev/null @@ -1,29 +0,0 @@ -# Set RUNPATH so that driver libraries in /run/opengl-driver(-32)/lib can be found. -# This is needed to not rely on LD_LIBRARY_PATH which does not work with setuid -# executables. Fixes https://github.com/NixOS/nixpkgs/issues/22760. It must be run -# in postFixup because RUNPATH stripping in fixup would undo it. Note that patchelf -# actually sets RUNPATH not RPATH, which applies only to dependencies of the binary -# it set on (including for dlopen), so the RUNPATH must indeed be set on these -# libraries and would not work if set only on executables. -addDriverRunpath() { - local forceRpath= - - while [ $# -gt 0 ]; do - case "$1" in - --) shift; break;; - --force-rpath) shift; forceRpath=1;; - --*) - echo "addDriverRunpath: ERROR: Invalid command line" \ - "argument: $1" >&2 - return 1;; - *) break;; - esac - done - - for file in "$@"; do - if ! isELF "$file"; then continue; fi - local origRpath="$(patchelf --print-rpath "$file")" - patchelf --set-rpath "@driverLink@/lib:$origRpath" ${forceRpath:+--force-rpath} "$file" - done -} - diff --git a/pkgs/build-support/add-opengl-runpath/default.nix b/pkgs/build-support/add-opengl-runpath/default.nix deleted file mode 100644 index 5cab093..0000000 --- a/pkgs/build-support/add-opengl-runpath/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ lib, stdenv }: - -stdenv.mkDerivation { - name = "add-opengl-runpath"; - - driverLink = "/run/opengl-driver" + lib.optionalString stdenv.isi686 "-32"; - - buildCommand = '' - mkdir -p $out/nix-support - substituteAll ${./setup-hook.sh} $out/nix-support/setup-hook - ''; -} diff --git a/pkgs/build-support/add-opengl-runpath/setup-hook.sh b/pkgs/build-support/add-opengl-runpath/setup-hook.sh deleted file mode 100644 index e556e7e..0000000 --- a/pkgs/build-support/add-opengl-runpath/setup-hook.sh +++ /dev/null @@ -1,29 +0,0 @@ -# Set RUNPATH so that driver libraries in /run/opengl-driver(-32)/lib can be found. -# This is needed to not rely on LD_LIBRARY_PATH which does not work with setuid -# executables. Fixes https://github.com/NixOS/nixpkgs/issues/22760. It must be run -# in postFixup because RUNPATH stripping in fixup would undo it. Note that patchelf -# actually sets RUNPATH not RPATH, which applies only to dependencies of the binary -# it set on (including for dlopen), so the RUNPATH must indeed be set on these -# libraries and would not work if set only on executables. -addOpenGLRunpath() { - local forceRpath= - - while [ $# -gt 0 ]; do - case "$1" in - --) shift; break;; - --force-rpath) shift; forceRpath=1;; - --*) - echo "addOpenGLRunpath: ERROR: Invalid command line" \ - "argument: $1" >&2 - return 1;; - *) break;; - esac - done - - for file in "$@"; do - if ! isELF "$file"; then continue; fi - local origRpath="$(patchelf --print-rpath "$file")" - patchelf --set-rpath "@driverLink@/lib:$origRpath" ${forceRpath:+--force-rpath} "$file" - done -} - diff --git a/pkgs/build-support/agda/default.nix b/pkgs/build-support/agda/default.nix deleted file mode 100644 index b5d72d9..0000000 --- a/pkgs/build-support/agda/default.nix +++ /dev/null @@ -1,122 +0,0 @@ -# Builder for Agda packages. - -{ stdenv, lib, self, Agda, runCommand, makeWrapper, writeText, ghcWithPackages, nixosTests }: - -let - inherit (lib) - attrValues - elem - filter - filterAttrs - isAttrs - isList - platforms - ; - - 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 = arg: if isAttrs arg then withPackages' arg else withPackages' { pkgs = arg; }; - - extensions = [ - "agda" - "agda-lib" - "agdai" - "lagda" - "lagda.md" - "lagda.org" - "lagda.rst" - "lagda.tex" - "lagda.typ" - ]; - - defaults = - { 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)]); - in - { - inherit libraryName libraryFile; - - isAgdaDerivation = true; - - buildInputs = buildInputs ++ [ agdaWithArgs ]; - - 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 - ''; - - # 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; - - # 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); - - inherit withPackages withPackages'; -} diff --git a/pkgs/build-support/agda/lib.nix b/pkgs/build-support/agda/lib.nix deleted file mode 100644 index 63fa6cc..0000000 --- a/pkgs/build-support/agda/lib.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ 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" - */ - 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. - */ - 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 deleted file mode 100644 index 91001bc..0000000 --- a/pkgs/build-support/alternatives/blas/default.nix +++ /dev/null @@ -1,143 +0,0 @@ -{ 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" - "ztrsv" - ]; - - version = "3"; - 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; }; - -in - -assert isILP64 -> blasImplementation == "mkl" || blasProvider'.blas64; - -stdenv.mkDerivation { - pname = "blas"; - inherit version; - - outputs = [ "out" "dev" ]; - - meta = (blasProvider'.meta or {}) // { - description = "${lib.getName blasProvider} with just the BLAS C and FORTRAN ABI"; - }; - - passthru = { - inherit isILP64; - provider = blasProvider'; - implementation = blasImplementation; - }; - - dontBuild = true; - dontConfigure = true; - unpackPhase = "src=$PWD"; - - dontPatchELF = true; - - installPhase = ('' - mkdir -p $out/lib $dev/include $dev/lib/pkgconfig - - 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 - - $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} - -'' + (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 - - 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}" - - 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} - -'' + (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 - - 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 deleted file mode 100644 index 2d62855..0000000 --- a/pkgs/build-support/alternatives/lapack/default.nix +++ /dev/null @@ -1,113 +0,0 @@ -{ 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; - - lapackImplementation = lib.getName lapackProvider; - lapackProvider' = if lapackImplementation == "mkl" - then lapackProvider - else lapackProvider.override { blas64 = isILP64; }; - -in - -assert isILP64 -> lapackImplementation == "mkl" || lapackProvider'.blas64; - -stdenv.mkDerivation { - pname = "lapack"; - inherit version; - - outputs = [ "out" "dev" ]; - - meta = (lapackProvider'.meta or {}) // { - description = "${lib.getName lapackProvider'} with just the LAPACK C and FORTRAN ABI"; - }; - - passthru = { - inherit isILP64; - provider = lapackProvider'; - implementation = lapackImplementation; - }; - - # TODO: drop this forced rebuild, as it was needed just once. - rebuild_salt = if stdenv.isDarwin && stdenv.isx86_64 then "J4AQ" else null; - - dontBuild = true; - dontConfigure = true; - unpackPhase = "src=$PWD"; - - dontPatchELF = true; - - installPhase = ('' - mkdir -p $out/lib $dev/include $dev/lib/pkgconfig - - 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 - - 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} -'') + '' - - 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 - - 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}" - - 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} - -'' + (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 - - 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 -''); -} diff --git a/pkgs/build-support/appimage/appimage-exec.sh b/pkgs/build-support/appimage/appimage-exec.sh deleted file mode 100755 index b91d13c..0000000 --- a/pkgs/build-support/appimage/appimage-exec.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!@shell@ -# shellcheck shell=bash - -if [ -n "$DEBUG" ] ; then - set -x -fi - -PATH="@path@:$PATH" -apprun_opt=true -OWD=$(readlink -f .) -# can be read by appimages: https://docs.appimage.org/packaging-guide/environment-variables.html -export OWD - -# src : AppImage -# dest : let's unpack() create the directory -unpack() { - local src="$1" - local out="$2" - - # https://github.com/AppImage/libappimage/blob/ca8d4b53bed5cbc0f3d0398e30806e0d3adeaaab/src/libappimage/utils/MagicBytesChecker.cpp#L45-L63 - local appimageSignature; - appimageSignature="$(LC_ALL=C readelf -h "$src" | awk 'NR==2{print $10$11;}')" - local appimageType; - appimageType="$(LC_ALL=C readelf -h "$src" | awk 'NR==2{print $12;}')" - - # check AppImage signature - if [ "$appimageSignature" != "4149" ]; then - echo "Not an AppImage file" - exit - fi - - case "$appimageType" in - "01") - echo "Uncompress $(basename "$src") of type $appimageType" - mkdir "$out" - pv "$src" | bsdtar -x -C "$out" -f - - ;; - - "02") - # This method avoid issues with non executable appimages, - # non-native packer, packer patching and squashfs-root destination prefix. - - # multiarch offset one-liner using same method as AppImage - # see https://gist.github.com/probonopd/a490ba3401b5ef7b881d5e603fa20c93 - offset=$(LC_ALL=C readelf -h "$src" | awk 'NR==13{e_shoff=$5} NR==18{e_shentsize=$5} NR==19{e_shnum=$5} END{print e_shoff+e_shentsize*e_shnum}') - echo "Uncompress $(basename "$src") of type $appimageType @ offset $offset" - unsquashfs -q -d "$out" -o "$offset" "$src" - chmod go-w "$out" - ;; - - # "03") - # get ready, https://github.com/TheAssassin/type3-runtime - - *) - echo Unsupported AppImage Type: "$appimageType" - exit - ;; - esac - echo "$(basename "$src") is now installed in $out" -} - -apprun() { - - SHA256=$(sha256sum "$APPIMAGE" | awk '{print $1}') - export APPDIR="${XDG_CACHE_HOME:-$HOME/.cache}/appimage-run/$SHA256" - - #compatibility - if [ -x "$APPDIR/squashfs-root" ]; then APPDIR="$APPDIR/squashfs-root"; fi - - if [ ! -x "$APPDIR" ]; then - mkdir -p "$(dirname "$APPDIR")" - unpack "$APPIMAGE" "$APPDIR" - else echo "$(basename "$APPIMAGE")" installed in "$APPDIR" - fi - - export PATH="$PATH:$PWD/usr/bin" -} - -wrap() { - - # quite same in appimageTools - export APPIMAGE_SILENT_INSTALL=1 - - if [ -n "$APPIMAGE_DEBUG_EXEC" ]; then - cd "$APPDIR" || true - exec "$APPIMAGE_DEBUG_EXEC" - fi - - exec "$APPDIR/AppRun" "$@" -} - -usage() { - cat < [AppImage options] - --h show this message --d debug mode --x : extract appimage in the directory then exit. --w : run uncompressed appimage directory (used in appimageTools) - -[AppImage options]: Options are passed on to the appimage. -If you want to execute a custom command in the appimage's environment, set the APPIMAGE_DEBUG_EXEC environment variable. - -EOF - exit 1 -} - -while getopts "x:w:dh" option; do - case "${option}" in - d) set -x - ;; - x) # eXtract - unpack_opt=true - APPDIR=${OPTARG} - ;; - w) # WrapAppImage - export APPDIR=${OPTARG} - wrap_opt=true - ;; - h) usage - ;; - *) usage - ;; - esac -done -shift "$((OPTIND-1))" - -if [ -n "$wrap_opt" ] && [ -d "$APPDIR" ]; then - wrap "$@" - exit -else - APPIMAGE="$(realpath "$1")" || usage - shift -fi - -if [ -n "$unpack_opt" ] && [ -f "$APPIMAGE" ]; then - unpack "$APPIMAGE" "$APPDIR" - exit -fi - -if [ -n "$apprun_opt" ] && [ -f "$APPIMAGE" ]; then - apprun - wrap "$@" - exit -fi diff --git a/pkgs/build-support/appimage/default.nix b/pkgs/build-support/appimage/default.nix deleted file mode 100644 index 95dc7ff..0000000 --- a/pkgs/build-support/appimage/default.nix +++ /dev/null @@ -1,210 +0,0 @@ -{ lib -, bash -, binutils-unwrapped -, coreutils -, gawk -, libarchive -, pv -, squashfsTools -, buildFHSEnv -, pkgs -}: - -rec { - appimage-exec = pkgs.substituteAll { - src = ./appimage-exec.sh; - isExecutable = true; - dir = "bin"; - path = lib.makeBinPath [ - bash - binutils-unwrapped - coreutils - gawk - libarchive - pv - squashfsTools - ]; - }; - - extract = args@{ name ? "${args.pname}-${args.version}", postExtract ? "", src, ... }: pkgs.runCommand "${name}-extracted" { - buildInputs = [ appimage-exec ]; - } '' - appimage-exec.sh -x $out ${src} - ${postExtract} - ''; - - # for compatibility, deprecated - extractType1 = extract; - extractType2 = extract; - wrapType1 = wrapType2; - - wrapAppImage = args@{ - src, - extraPkgs, - meta ? {}, - ... - }: buildFHSEnv - (defaultFhsEnvArgs // { - targetPkgs = pkgs: [ appimage-exec ] - ++ defaultFhsEnvArgs.targetPkgs pkgs ++ extraPkgs pkgs; - - runScript = "appimage-exec.sh -w ${src} --"; - - 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); - - # 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 - ]; - - # 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 - - 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 - - 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 - - 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 - - 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 - ]; - }; -} diff --git a/pkgs/build-support/binary-cache/default.nix b/pkgs/build-support/binary-cache/default.nix deleted file mode 100644 index 8c610c5..0000000 --- a/pkgs/build-support/binary-cache/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ 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). - -# For example, in the Nixpkgs repo: -# nix-build -E 'with import ./. {}; mkBinaryCache { rootPaths = [hello]; }' - -{ name ? "binary-cache" -, rootPaths -}: - -stdenv.mkDerivation { - inherit name; - - __structuredAttrs = true; - - exportReferencesGraph.closure = rootPaths; - - preferLocalBuild = true; - - nativeBuildInputs = [ coreutils jq python3 nix xz ]; - - buildCommand = '' - mkdir -p $out/nar - - python ${./make-binary-cache.py} - - # These directories must exist, or Nix might try to create them in LocalBinaryCacheStore::init(), - # which fails if mounted read-only - mkdir $out/realisations - mkdir $out/debuginfo - mkdir $out/log - ''; -} diff --git a/pkgs/build-support/binary-cache/make-binary-cache.py b/pkgs/build-support/binary-cache/make-binary-cache.py deleted file mode 100644 index 589d005..0000000 --- a/pkgs/build-support/binary-cache/make-binary-cache.py +++ /dev/null @@ -1,43 +0,0 @@ - -import json -import os -import subprocess - -with open(os.environ["NIX_ATTRS_JSON_FILE"], "r") as f: - closures = json.load(f)["closure"] - -os.chdir(os.environ["out"]) - -nixPrefix = os.environ["NIX_STORE"] # Usually /nix/store - -with open("nix-cache-info", "w") as f: - f.write("StoreDir: " + nixPrefix + "\n") - -def dropPrefix(path): - return path[len(nixPrefix + "/"):] - -for item in closures: - narInfoHash = dropPrefix(item["path"]).split("-")[0] - - xzFile = "nar/" + narInfoHash + ".nar.xz" - with open(xzFile, "w") as f: - subprocess.run("nix-store --dump %s | xz -c" % item["path"], stdout=f, shell=True) - - fileHash = subprocess.run(["nix-hash", "--base32", "--type", "sha256", item["path"]], capture_output=True).stdout.decode().strip() - fileSize = os.path.getsize(xzFile) - - # Rename the .nar.xz file to its own hash to match "nix copy" behavior - finalXzFile = "nar/" + fileHash + ".nar.xz" - os.rename(xzFile, finalXzFile) - - with open(narInfoHash + ".narinfo", "w") as f: - f.writelines((x + "\n" for x in [ - "StorePath: " + item["path"], - "URL: " + finalXzFile, - "Compression: xz", - "FileHash: sha256:" + fileHash, - "FileSize: " + str(fileSize), - "NarHash: " + item["narHash"], - "NarSize: " + str(item["narSize"]), - "References: " + " ".join(dropPrefix(ref) for ref in item["references"]), - ])) diff --git a/pkgs/build-support/bintools-wrapper/add-darwin-ldflags-before.sh b/pkgs/build-support/bintools-wrapper/add-darwin-ldflags-before.sh deleted file mode 100644 index 75d9484..0000000 --- a/pkgs/build-support/bintools-wrapper/add-darwin-ldflags-before.sh +++ /dev/null @@ -1,81 +0,0 @@ -# Unconditionally adding in platform version flags will result in warnings that -# will be treated as errors by some packages. Add any missing flags here. - -# There are two things to be configured: the "platform version" (oldest -# supported version of macos, ios, etc), and the "sdk version". -# -# The modern way of configuring these is to use: -# -platform_version $platform $platform_version $sdk_version" -# -# The old way is still supported, and uses flags like: -# -${platform}_version_min $platform_version -# -sdk_version $sdk_version -# -# If both styles are specified ld will combine them. If multiple versions are -# specified for the same platform, ld will emit an error. -# -# The following adds flags for whichever properties have not already been -# provided. - -havePlatformVersionFlag= -haveDarwinSDKVersion= -haveDarwinPlatformVersion= - -# Roles will set by add-flags.sh, but add-flags.sh can be skipped when the -# cc-wrapper has added the linker flags. Both the cc-wrapper and the binutils -# wrapper mangle the same variable (MACOSX_DEPLOYMENT_TARGET), so if roles are -# empty due to being run through the cc-wrapper then the mangle here is a no-op -# and we still do the right thing. -# -# To be robust, make sure we always have the correct set of roles. -accumulateRoles - -mangleVarSingle @darwinMinVersionVariable@ ${role_suffixes[@]+"${role_suffixes[@]}"} - -n=0 -nParams=${#params[@]} -while (( n < nParams )); do - p=${params[n]} - case "$p" in - # the current platform - -@darwinPlatform@_version_min) - haveDarwinPlatformVersion=1 - ;; - - # legacy aliases - -macosx_version_min|-iphoneos_version_min|-iosmac_version_min|-uikitformac_version_min) - haveDarwinPlatformVersion=1 - ;; - - -sdk_version) - haveDarwinSDKVersion=1 - ;; - - -platform_version) - havePlatformVersionFlag=1 - - # If clang can't determine the sdk version it will pass 0.0.0. This - # has runtime effects so we override this to use the known sdk - # version. - if [ "${params[n+3]-}" = 0.0.0 ]; then - params[n+3]=@darwinSdkVersion@ - fi - ;; - esac - n=$((n + 1)) -done - -# If the caller has set -platform_version, trust they're doing the right thing. -# This will be the typical case for clang in nixpkgs. -if [ ! "$havePlatformVersionFlag" ]; then - if [ ! "$haveDarwinSDKVersion" ] && [ ! "$haveDarwinPlatformVersion" ]; then - # Nothing provided. Use the modern "-platform_version" to set both. - extraBefore+=(-platform_version @darwinPlatform@ "${@darwinMinVersionVariable@_@suffixSalt@:-@darwinMinVersion@}" @darwinSdkVersion@) - elif [ ! "$haveDarwinSDKVersion" ]; then - # Add missing sdk version - extraBefore+=(-sdk_version @darwinSdkVersion@) - elif [ ! "$haveDarwinPlatformVersion" ]; then - # Add missing platform version - extraBefore+=(-@darwinPlatform@_version_min "${@darwinMinVersionVariable@_@suffixSalt@:-@darwinMinVersion@}") - fi -fi diff --git a/pkgs/build-support/bintools-wrapper/add-flags.sh b/pkgs/build-support/bintools-wrapper/add-flags.sh deleted file mode 100644 index 3b94dab..0000000 --- a/pkgs/build-support/bintools-wrapper/add-flags.sh +++ /dev/null @@ -1,37 +0,0 @@ -# See cc-wrapper for comments. -var_templates_list=( - NIX_IGNORE_LD_THROUGH_GCC - NIX_LDFLAGS - NIX_LDFLAGS_BEFORE - NIX_DYNAMIC_LINKER - NIX_LDFLAGS_AFTER - NIX_LDFLAGS_HARDEN - NIX_HARDENING_ENABLE -) -var_templates_bool=( - NIX_SET_BUILD_ID - NIX_DONT_SET_RPATH -) - -accumulateRoles - -for var in "${var_templates_list[@]}"; do - mangleVarList "$var" ${role_suffixes[@]+"${role_suffixes[@]}"} -done -for var in "${var_templates_bool[@]}"; do - mangleVarBool "$var" ${role_suffixes[@]+"${role_suffixes[@]}"} -done - -if [ -e @out@/nix-support/libc-ldflags ]; then - NIX_LDFLAGS_@suffixSalt@+=" $(< @out@/nix-support/libc-ldflags)" -fi - -if [ -z "$NIX_DYNAMIC_LINKER_@suffixSalt@" ] && [ -e @out@/nix-support/ld-set-dynamic-linker ]; then - NIX_DYNAMIC_LINKER_@suffixSalt@="$(< @out@/nix-support/dynamic-linker)" -fi - -if [ -e @out@/nix-support/libc-ldflags-before ]; then - NIX_LDFLAGS_BEFORE_@suffixSalt@="$(< @out@/nix-support/libc-ldflags-before) $NIX_LDFLAGS_BEFORE_@suffixSalt@" -fi - -export NIX_BINTOOLS_WRAPPER_FLAGS_SET_@suffixSalt@=1 diff --git a/pkgs/build-support/bintools-wrapper/add-hardening.sh b/pkgs/build-support/bintools-wrapper/add-hardening.sh deleted file mode 100644 index db9553c..0000000 --- a/pkgs/build-support/bintools-wrapper/add-hardening.sh +++ /dev/null @@ -1,62 +0,0 @@ -declare -a hardeningLDFlags=() - -declare -A hardeningEnableMap=() - -# Intentionally word-split in case 'NIX_HARDENING_ENABLE' is defined in Nix. The -# array expansion also prevents undefined variables from causing trouble with -# `set -u`. -for flag in ${NIX_HARDENING_ENABLE_@suffixSalt@-}; do - hardeningEnableMap["$flag"]=1 -done - -# Remove unsupported flags. -for flag in @hardening_unsupported_flags@; do - unset -v "hardeningEnableMap[$flag]" -done - -if (( "${NIX_DEBUG:-0}" >= 1 )); then - declare -a allHardeningFlags=(pie relro bindnow) - declare -A hardeningDisableMap=() - - # Determine which flags were effectively disabled so we can report below. - for flag in "${allHardeningFlags[@]}"; do - if [[ -z "${hardeningEnableMap[$flag]-}" ]]; then - hardeningDisableMap[$flag]=1 - fi - done - - printf 'HARDENING: disabled flags:' >&2 - (( "${#hardeningDisableMap[@]}" )) && printf ' %q' "${!hardeningDisableMap[@]}" >&2 - echo >&2 - - if (( "${#hardeningEnableMap[@]}" )); then - echo 'HARDENING: Is active (not completely disabled with "all" flag)' >&2; - fi -fi - -for flag in "${!hardeningEnableMap[@]}"; do - case $flag in - pie) - if [[ ! (" ${params[*]} " =~ " -shared " \ - || " ${params[*]} " =~ " -static " \ - || " ${params[*]} " =~ " -r " \ - || " ${params[*]} " =~ " -Ur " \ - || " ${params[*]} " =~ " -i ") ]]; then - if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling LDFlags -pie >&2; fi - hardeningLDFlags+=('-pie') - fi - ;; - relro) - if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling relro >&2; fi - hardeningLDFlags+=('-z' 'relro') - ;; - bindnow) - if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling bindnow >&2; fi - hardeningLDFlags+=('-z' 'now') - ;; - *) - # Ignore unsupported. Checked in Nix that at least *some* - # tool supports each flag. - ;; - esac -done diff --git a/pkgs/build-support/bintools-wrapper/darwin-install_name_tool-wrapper.sh b/pkgs/build-support/bintools-wrapper/darwin-install_name_tool-wrapper.sh deleted file mode 100755 index 376a7ab..0000000 --- a/pkgs/build-support/bintools-wrapper/darwin-install_name_tool-wrapper.sh +++ /dev/null @@ -1,49 +0,0 @@ -#! @shell@ -# shellcheck shell=bash - -set -eu -o pipefail +o posix -shopt -s nullglob - -if (( "${NIX_DEBUG:-0}" >= 7 )); then - set -x -fi - -source @signingUtils@ - -extraAfter=() -extraBefore=() -params=("$@") - -input= - -pprev= -prev= -for p in \ - ${extraBefore+"${extraBefore[@]}"} \ - ${params+"${params[@]}"} \ - ${extraAfter+"${extraAfter[@]}"} -do - if [ "$pprev" != "-change" ] && [[ "$prev" != -* ]] && [[ "$p" != -* ]]; then - input="$p" - fi - pprev="$prev" - prev="$p" -done - -# Optionally print debug info. -if (( "${NIX_DEBUG:-0}" >= 1 )); then - # Old bash workaround, see above. - echo "extra flags before to @prog@:" >&2 - printf " %q\n" ${extraBefore+"${extraBefore[@]}"} >&2 - echo "original flags to @prog@:" >&2 - printf " %q\n" ${params+"${params[@]}"} >&2 - echo "extra flags after to @prog@:" >&2 - printf " %q\n" ${extraAfter+"${extraAfter[@]}"} >&2 -fi - -@prog@ \ - ${extraBefore+"${extraBefore[@]}"} \ - ${params+"${params[@]}"} \ - ${extraAfter+"${extraAfter[@]}"} - -sign "$input" diff --git a/pkgs/build-support/bintools-wrapper/darwin-strip-wrapper.sh b/pkgs/build-support/bintools-wrapper/darwin-strip-wrapper.sh deleted file mode 100755 index a676995..0000000 --- a/pkgs/build-support/bintools-wrapper/darwin-strip-wrapper.sh +++ /dev/null @@ -1,78 +0,0 @@ -#! @shell@ -# shellcheck shell=bash - -set -eu -o pipefail +o posix -shopt -s nullglob - -if (( "${NIX_DEBUG:-0}" >= 7 )); then - set -x -fi - -source @signingUtils@ - -extraAfter=() -extraBefore=() -params=("$@") - -output= -inputs=() - -restAreFiles= -prev= -for p in \ - ${extraBefore+"${extraBefore[@]}"} \ - ${params+"${params[@]}"} \ - ${extraAfter+"${extraAfter[@]}"} -do - if [ "$restAreFiles" ]; then - inputs+=("$p") - else - case "$prev" in - -s|-R|-d|-arch) - # Unrelated arguments with values - ;; - -o) - # Explicit output - output="$p" - ;; - *) - # Any other orgument either takes no value, or is a file. - if [[ "$p" != -* ]]; then - inputs+=("$p") - fi - ;; - esac - - if [ "$p" == - ]; then - restAreFiles=1 - fi - fi - - prev="$p" -done - -# Optionally print debug info. -if (( "${NIX_DEBUG:-0}" >= 1 )); then - # Old bash workaround, see above. - echo "extra flags before to @prog@:" >&2 - printf " %q\n" ${extraBefore+"${extraBefore[@]}"} >&2 - echo "original flags to @prog@:" >&2 - printf " %q\n" ${params+"${params[@]}"} >&2 - echo "extra flags after to @prog@:" >&2 - printf " %q\n" ${extraAfter+"${extraAfter[@]}"} >&2 -fi - -@prog@ \ - ${extraBefore+"${extraBefore[@]}"} \ - ${params+"${params[@]}"} \ - ${extraAfter+"${extraAfter[@]}"} - -if [ "$output" ]; then - # Single explicit output - signIfRequired "$output" -else - # Multiple inputs, rewritten in place - for input in "${inputs[@]}"; do - signIfRequired "$input" - done -fi diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix deleted file mode 100644 index 5ca5bc3..0000000 --- a/pkgs/build-support/bintools-wrapper/default.nix +++ /dev/null @@ -1,439 +0,0 @@ -# The Nixpkgs CC is not directly usable, since it doesn't know where -# the C library and standard header files are. Therefore the compiler -# produced by that package cannot be installed directly in a user -# environment and used from the command line. So we use a wrapper -# 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 - 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" - -# Darwin code signing support utilities -, postLinkSignHook ? null, signingUtils ? null -}: - -assert nativeTools -> !propagateDoc && nativePrefix != ""; -assert !nativeTools -> bintools != null && coreutils != null && gnugrep != null; -assert !(nativeLibc && noLibc); -assert (noLibc || nativeLibc) == (libc == null); - -let - inherit (lib) - attrByPath - concatStringsSep - getBin - getDev - getLib - getName - getVersion - hasSuffix - optional - optionalAttrs - optionals - optionalString - platforms - removePrefix - replaceStrings - ; - - inherit (stdenvNoCC) hostPlatform targetPlatform; - - # Prefix for binaries. Customarily ends with a dash separator. - # - # TODO(@Ericson2314) Make unconditional, or optional but always true by - # default. - targetPrefix = optionalString (targetPlatform != hostPlatform) - (targetPlatform.config + "-"); - - bintoolsVersion = getVersion bintools; - bintoolsName = removePrefix targetPrefix (getName bintools); - - libc_bin = optionalString (libc != null) (getBin libc); - libc_dev = optionalString (libc != null) (getDev libc); - libc_lib = optionalString (libc != null) (getLib libc); - bintools_bin = optionalString (!nativeTools) (getBin bintools); - # The wrapper scripts use 'cat' and 'grep', so we may need coreutils. - coreutils_bin = optionalString (!nativeTools) (getBin coreutils); - - # See description in cc-wrapper. - 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" - # ELFv1 (.1) or ELFv2 (.2) ABI - 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" - # `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 ""; - -in - -stdenvNoCC.mkDerivation { - pname = targetPrefix - + (if name != "" then name else "${bintoolsName}-wrapper"); - version = optionalString (bintools != null) bintoolsVersion; - - preferLocalBuild = true; - - outputs = [ "out" ] ++ optionals propagateDoc ([ "man" ] ++ optional (bintools ? info) "info"); - - passthru = { - inherit targetPrefix suffixSalt; - inherit bintools libc nativeTools nativeLibc nativePrefix isGNU isLLVM; - - emacsBufferSetup = pkgs: '' - ; We should handle propagation here too - (mapc - (lambda (arg) - (when (file-directory-p (concat arg "/lib")) - (setenv "NIX_LDFLAGS_${suffixSalt}" (concat (getenv "NIX_LDFLAGS_${suffixSalt}") " -L" arg "/lib"))) - (when (file-directory-p (concat arg "/lib64")) - (setenv "NIX_LDFLAGS_${suffixSalt}" (concat (getenv "NIX_LDFLAGS_${suffixSalt}") " -L" arg "/lib64")))) - '(${concatStringsSep " " (map (pkg: "\"${pkg}\"") pkgs)})) - ''; - - inherit defaultHardeningFlags; - }; - - dontBuild = true; - dontConfigure = true; - - enableParallelBuilding = true; - - unpackPhase = '' - src=$PWD - ''; - - installPhase = - '' - mkdir -p $out/bin $out/nix-support - - wrap() { - local dst="$1" - local wrapper="$2" - export prog="$3" - export use_response_file_by_default=${if isCCTools then "1" else "0"} - substituteAll "$wrapper" "$out/bin/$dst" - chmod +x "$out/bin/$dst" - } - '' - - + (if nativeTools then '' - echo ${nativePrefix} > $out/nix-support/orig-bintools - - ldPath="${nativePrefix}/bin" - '' else '' - echo $bintools_bin > $out/nix-support/orig-bintools - - 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} - '') - - # If we are asked to wrap `gas` and this bintools has it, - # then symlink it (`as` will be symlinked next). - # This is mainly for the wrapped gnat-bootstrap on x86-64 Darwin, - # as it must have both the GNU assembler from cctools (installed as `gas`) - # and the Clang integrated assembler (installed as `as`). - # See pkgs/os-specific/darwin/binutils/default.nix for details. - + optionalString wrapGas '' - if [ -e $ldPath/${targetPrefix}gas ]; then - ln -s $ldPath/${targetPrefix}gas $out/bin/${targetPrefix}gas - fi - '' - - # Create symlinks for rest of the binaries. - + '' - for binary in objdump objcopy size strings as ar nm gprof dwp c++filt addr2line \ - ranlib readelf elfedit dlltool dllwrap windmc windres; do - if [ -e $ldPath/${targetPrefix}''${binary} ]; then - ln -s $ldPath/${targetPrefix}''${binary} $out/bin/${targetPrefix}''${binary} - 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 - '') + '' - - for variant in $ldPath/${targetPrefix}ld.*; do - basename=$(basename "$variant") - wrap $basename ${./ld-wrapper.sh} $variant - done - ''; - - strictDeps = true; - depsTargetTargetPropagated = extraPackages; - - setupHooks = [ - ../setup-hooks/role.bash - ./setup-hook.sh - ]; - - postFixup = - ## - ## 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 - - 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 - '' - - # 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 - - 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 - '') - - ## - ## User env support - ## - - # Propagate the underling unwrapped bintools so that if you - # 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 - '' - - ## - ## Man page and info support - ## - + optionalString propagateDoc ('' - ln -s ${bintools.man} $man - '' + optionalString (bintools ? info) '' - ln -s ${bintools.info} $info - '') - - ## - ## Hardening support - ## - - # some linkers on some platforms don't support specific -z flags - + '' - export hardening_unsupported_flags="" - if [[ "$($ldPath/${targetPrefix}ld -z now 2>&1 || true)" =~ un(recognized|known)\ option ]]; then - hardening_unsupported_flags+=" bindnow" - fi - if [[ "$($ldPath/${targetPrefix}ld -z relro 2>&1 || true)" =~ un(recognized|known)\ option ]]; then - hardening_unsupported_flags+=" relro" - fi - '' - - + optionalString hostPlatform.isCygwin '' - hardening_unsupported_flags+=" pic" - '' - - + optionalString (targetPlatform.isAvr || targetPlatform.isWindows) '' - hardening_unsupported_flags+=" relro bindnow" - '' - - + optionalString (libc != null && targetPlatform.isAvr) '' - for isa in avr5 avr3 avr4 avr6 avr25 avr31 avr35 avr51 avrxmega2 avrxmega4 avrxmega5 avrxmega6 avrxmega7 tiny-stack; do - echo "-L${getLib libc}/avr/lib/$isa" >> $out/nix-support/libc-cflags - done - '' - - + optionalString targetPlatform.isDarwin '' - echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/libc-ldflags - '' - - ## - ## GNU specific extra strip flags - ## - - # TODO(@sternenseemann): make a generic strip wrapper? - + optionalString (bintools.isGNU or false) '' - wrap ${targetPrefix}strip ${./gnu-binutils-strip-wrapper.sh} \ - "${bintools_bin}/bin/${targetPrefix}strip" - '' - - ### - ### Remove certain timestamps from final binaries - ### - + optionalString (targetPlatform.isDarwin && !(bintools.isGNU or false)) '' - echo "export ZERO_AR_DATE=1" >> $out/nix-support/setup-hook - '' - - + '' - for flags in "$out/nix-support"/*flags*; do - substituteInPlace "$flags" --replace $'\n' ' ' - done - - substituteAll ${./add-flags.sh} $out/nix-support/add-flags.sh - substituteAll ${./add-hardening.sh} $out/nix-support/add-hardening.sh - substituteAll ${../wrapper-common/utils.bash} $out/nix-support/utils.bash - '' - - ### - ### Ensure consistent LC_VERSION_MIN_MACOSX - ### - + optionalString targetPlatform.isDarwin ( - let - inherit (targetPlatform) - darwinPlatform darwinSdkVersion - darwinMinVersion darwinMinVersionVariable; - in '' - export darwinPlatform=${darwinPlatform} - export darwinMinVersion=${darwinMinVersion} - export darwinSdkVersion=${darwinSdkVersion} - export darwinMinVersionVariable=${darwinMinVersionVariable} - substituteAll ${./add-darwin-ldflags-before.sh} $out/nix-support/add-local-ldflags-before.sh - '' - ) - - ## - ## Code signing on Apple Silicon - ## - + optionalString (targetPlatform.isDarwin && targetPlatform.isAarch64) '' - echo 'source ${postLinkSignHook}' >> $out/nix-support/post-link-hook - - export signingUtils=${signingUtils} - - wrap \ - ${targetPrefix}install_name_tool \ - ${./darwin-install_name_tool-wrapper.sh} \ - "${bintools_bin}/bin/${targetPrefix}install_name_tool" - - wrap \ - ${targetPrefix}strip ${./darwin-strip-wrapper.sh} \ - "${bintools_bin}/bin/${targetPrefix}strip" - '' - - ## - ## Extra custom steps - ## - + extraBuildCommands; - - env = { - # for substitution in utils.bash - # TODO(@sternenseemann): invent something cleaner than passing in "" in case of absence - expandResponseParams = "${expand-response-params}/bin/expand-response-params"; - # TODO(@sternenseemann): rename env var via stdenv rebuild - 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; - 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_ - + " (wrapper script)"; - priority = 10; - } // optionalAttrs useMacosReexportHack { - platforms = platforms.darwin; - }; -} diff --git a/pkgs/build-support/bintools-wrapper/gnu-binutils-strip-wrapper.sh b/pkgs/build-support/bintools-wrapper/gnu-binutils-strip-wrapper.sh deleted file mode 100644 index 5b5136e..0000000 --- a/pkgs/build-support/bintools-wrapper/gnu-binutils-strip-wrapper.sh +++ /dev/null @@ -1,4 +0,0 @@ -#! @shell@ -# shellcheck shell=bash - -exec @prog@ --enable-deterministic-archives "$@" diff --git a/pkgs/build-support/bintools-wrapper/ld-solaris-wrapper.sh b/pkgs/build-support/bintools-wrapper/ld-solaris-wrapper.sh deleted file mode 100644 index 5d81e34..0000000 --- a/pkgs/build-support/bintools-wrapper/ld-solaris-wrapper.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!@shell@ -set -eu -o pipefail -shopt -s nullglob - -if (( "${NIX_DEBUG:-0}" >= 7 )); then - set -x -fi - -declare -a args=("$@") -# I've also tried adding -z direct and -z lazyload, but it gave too many problems with C++ exceptions :'( -# Also made sure libgcc would not be lazy-loaded, as suggested here: https://www.illumos.org/issues/2534#note-3 -# but still no success. -declare -a argsBefore=(-z ignore) argsAfter=() - -# This loop makes sure all -L arguments are before -l arguments, or ld may complain it cannot find a library. -# GNU binutils does not have this problem: -# http://stackoverflow.com/questions/5817269/does-the-order-of-l-and-l-options-in-the-gnu-linker-matter -while (( $# )); do - case "${args[$i]}" in - -L) argsBefore+=("$1" "$2"); shift ;; - -L?*) argsBefore+=("$1") ;; - *) argsAfter+=("$1") ;; - esac - shift -done - -# Trace: -set -x -exec "@ld@" "${argsBefore[@]}" "${argsAfter[@]}" diff --git a/pkgs/build-support/bintools-wrapper/ld-wrapper.sh b/pkgs/build-support/bintools-wrapper/ld-wrapper.sh deleted file mode 100644 index dcbe8a4..0000000 --- a/pkgs/build-support/bintools-wrapper/ld-wrapper.sh +++ /dev/null @@ -1,273 +0,0 @@ -#! @shell@ -set -eu -o pipefail +o posix -shopt -s nullglob - -if (( "${NIX_DEBUG:-0}" >= 7 )); then - set -x -fi - -path_backup="$PATH" - -# phase separation makes this look useless -# shellcheck disable=SC2157 -if [ -n "@coreutils_bin@" ]; then - PATH="@coreutils_bin@/bin" -fi - -source @out@/nix-support/utils.bash - -if [ -z "${NIX_BINTOOLS_WRAPPER_FLAGS_SET_@suffixSalt@:-}" ]; then - source @out@/nix-support/add-flags.sh -fi - - -# Optionally filter out paths not refering to the store. -expandResponseParams "$@" - -# NIX_LINK_TYPE is set if ld has been called through our cc wrapper. We take -# advantage of this to avoid both recalculating it, and also repeating other -# processing cc wrapper has already done. -if [[ -n "${NIX_LINK_TYPE_@suffixSalt@:-}" ]]; then - linkType=$NIX_LINK_TYPE_@suffixSalt@ -else - linkType=$(checkLinkType "${params[@]}") -fi - -if [[ "${NIX_ENFORCE_PURITY:-}" = 1 && -n "${NIX_STORE:-}" - && ( -z "$NIX_IGNORE_LD_THROUGH_GCC_@suffixSalt@" || -z "${NIX_LINK_TYPE_@suffixSalt@:-}" ) ]]; then - rest=() - nParams=${#params[@]} - declare -i n=0 - - while (( "$n" < "$nParams" )); do - p=${params[n]} - p2=${params[n+1]:-} # handle `p` being last one - if [ "${p:0:3}" = -L/ ] && badPath "${p:2}"; then - skip "${p:2}" - elif [ "$p" = -L ] && badPath "$p2"; then - n+=1; skip "$p2" - elif [ "$p" = -rpath ] && badPath "$p2"; then - n+=1; skip "$p2" - elif [ "$p" = -dynamic-linker ] && badPath "$p2"; then - n+=1; skip "$p2" - elif [ "$p" = -syslibroot ] && [ $p2 == // ]; then - # When gcc is built on darwin --with-build-sysroot=/ - # produces '-syslibroot //' linker flag. It's a no-op, - # which does not introduce impurities. - n+=1; skip "$p2" - elif [ "${p:0:10}" = /LIBPATH:/ ] && badPath "${p:9}"; then - reject "${p:9}" - # We need to not match LINK.EXE-style flags like - # /NOLOGO or /LIBPATH:/nix/store/foo - elif [[ $p =~ ^/[^:]*/ ]] && badPath "$p"; then - reject "$p" - elif [ "${p:0:9}" = --sysroot ]; then - # Our ld is not built with sysroot support (Can we fix that?) - : - else - rest+=("$p") - fi - n+=1 - done - # Old bash empty array hack - params=(${rest+"${rest[@]}"}) -fi - - -source @out@/nix-support/add-hardening.sh - -extraAfter=() -extraBefore=(${hardeningLDFlags[@]+"${hardeningLDFlags[@]}"}) - -if [ -z "${NIX_LINK_TYPE_@suffixSalt@:-}" ]; then - extraAfter+=($(filterRpathFlags "$linkType" $NIX_LDFLAGS_@suffixSalt@)) - extraBefore+=($(filterRpathFlags "$linkType" $NIX_LDFLAGS_BEFORE_@suffixSalt@)) - - # By adding dynamic linker to extraBefore we allow the users set their - # own dynamic linker as NIX_LD_FLAGS will override earlier set flags - if [[ "$linkType" == dynamic && -n "$NIX_DYNAMIC_LINKER_@suffixSalt@" ]]; then - extraBefore+=("-dynamic-linker" "$NIX_DYNAMIC_LINKER_@suffixSalt@") - fi -fi - -extraAfter+=($(filterRpathFlags "$linkType" $NIX_LDFLAGS_AFTER_@suffixSalt@)) - -# These flags *must not* be pulled up to -Wl, flags, so they can't go in -# add-flags.sh. They must always be set, so must not be disabled by -# NIX_LDFLAGS_SET. -if [ -e @out@/nix-support/add-local-ldflags-before.sh ]; then - source @out@/nix-support/add-local-ldflags-before.sh -fi - - -# Three tasks: -# -# 1. Find all -L... switches for rpath -# -# 2. Find relocatable flag for build id. -# -# 3. Choose 32-bit dynamic linker if needed -declare -a libDirs -declare -A libs -declare -i relocatable=0 link32=0 - -linkerOutput="a.out" - -if - [ "$NIX_DONT_SET_RPATH_@suffixSalt@" != 1 ] \ - || [ "$NIX_SET_BUILD_ID_@suffixSalt@" = 1 ] \ - || [ -e @out@/nix-support/dynamic-linker-m32 ] -then - prev= - # Old bash thinks empty arrays are undefined, ugh. - for p in \ - ${extraBefore+"${extraBefore[@]}"} \ - ${params+"${params[@]}"} \ - ${extraAfter+"${extraAfter[@]}"} - do - case "$prev" in - -L) - libDirs+=("$p") - ;; - -l) - libs["lib${p}.so"]=1 - ;; - -m) - # Presumably only the last `-m` flag has any effect. - case "$p" in - elf_i386) link32=1;; - *) link32=0;; - esac - ;; - -dynamic-linker | -plugin) - # Ignore this argument, or it will match *.so and be added to rpath. - ;; - *) - case "$p" in - -L/*) - libDirs+=("${p:2}") - ;; - -l?*) - libs["lib${p:2}.so"]=1 - ;; - "${NIX_STORE:-}"/*.so | "${NIX_STORE:-}"/*.so.*) - # This is a direct reference to a shared library. - libDirs+=("${p%/*}") - libs["${p##*/}"]=1 - ;; - -r | --relocatable | -i) - relocatable=1 - esac - ;; - esac - prev="$p" - done -fi - -# Determine linkerOutput -prev= -for p in \ - ${extraBefore+"${extraBefore[@]}"} \ - ${params+"${params[@]}"} \ - ${extraAfter+"${extraAfter[@]}"} -do - case "$prev" in - -o) - # Informational for post-link-hook - linkerOutput="$p" - ;; - *) - ;; - esac - prev="$p" -done - -if [[ "$link32" == "1" && "$linkType" == dynamic && -e "@out@/nix-support/dynamic-linker-m32" ]]; then - # We have an alternate 32-bit linker and we're producing a 32-bit ELF, let's - # use it. - extraAfter+=( - '-dynamic-linker' - "$(< @out@/nix-support/dynamic-linker-m32)" - ) -fi - -# Add all used dynamic libraries to the rpath. -if [[ "$NIX_DONT_SET_RPATH_@suffixSalt@" != 1 && "$linkType" != static-pie ]]; then - # For each directory in the library search path (-L...), - # see if it contains a dynamic library used by a -l... flag. If - # so, add the directory to the rpath. - # It's important to add the rpath in the order of -L..., so - # the link time chosen objects will be those of runtime linking. - declare -A rpaths - for dir in ${libDirs+"${libDirs[@]}"}; do - if [[ "$dir" =~ [/.][/.] ]] && dir2=$(readlink -f "$dir"); then - dir="$dir2" - fi - if [ -n "${rpaths[$dir]:-}" ] || [[ "$dir" != "${NIX_STORE:-}"/* ]]; then - # If the path is not in the store, don't add it to the rpath. - # This typically happens for libraries in /tmp that are later - # copied to $out/lib. If not, we're screwed. - continue - fi - for path in "$dir"/*; do - file="${path##*/}" - if [ "${libs[$file]:-}" ]; then - # This library may have been provided by a previous directory, - # but if that library file is inside an output of the current - # derivation, it can be deleted after this compilation and - # should be found in a later directory, so we add all - # directories that contain any of the libraries to rpath. - rpaths["$dir"]=1 - extraAfter+=(-rpath "$dir") - break - fi - done - done - -fi - -# This is outside the DONT_SET_RPATH branch because it's more targeted and we -# usually want it (on Darwin) even if DONT_SET_RPATH is set. -if [ -n "${NIX_COREFOUNDATION_RPATH:-}" ]; then - extraAfter+=(-rpath $NIX_COREFOUNDATION_RPATH) -fi - -# Only add --build-id if this is a final link. FIXME: should build gcc -# with --enable-linker-build-id instead? -# -# Note: `lld` interprets `--build-id` to mean `--build-id=fast`; GNU ld defaults -# to SHA1. -if [ "$NIX_SET_BUILD_ID_@suffixSalt@" = 1 ] && ! (( "$relocatable" )); then - extraAfter+=(--build-id="${NIX_BUILD_ID_STYLE:-sha1}") -fi - - -# Optionally print debug info. -if (( "${NIX_DEBUG:-0}" >= 1 )); then - # Old bash workaround, see above. - echo "extra flags before to @prog@:" >&2 - printf " %q\n" ${extraBefore+"${extraBefore[@]}"} >&2 - echo "original flags to @prog@:" >&2 - printf " %q\n" ${params+"${params[@]}"} >&2 - echo "extra flags after to @prog@:" >&2 - printf " %q\n" ${extraAfter+"${extraAfter[@]}"} >&2 -fi - -PATH="$path_backup" -# Old bash workaround, see above. - -if (( "${NIX_LD_USE_RESPONSE_FILE:-@use_response_file_by_default@}" >= 1 )); then - @prog@ @<(printf "%q\n" \ - ${extraBefore+"${extraBefore[@]}"} \ - ${params+"${params[@]}"} \ - ${extraAfter+"${extraAfter[@]}"}) -else - @prog@ \ - ${extraBefore+"${extraBefore[@]}"} \ - ${params+"${params[@]}"} \ - ${extraAfter+"${extraAfter[@]}"} -fi - -if [ -e "@out@/nix-support/post-link-hook" ]; then - source @out@/nix-support/post-link-hook -fi diff --git a/pkgs/build-support/bintools-wrapper/macos-sierra-reexport-hack.bash b/pkgs/build-support/bintools-wrapper/macos-sierra-reexport-hack.bash deleted file mode 100644 index 255071a..0000000 --- a/pkgs/build-support/bintools-wrapper/macos-sierra-reexport-hack.bash +++ /dev/null @@ -1,246 +0,0 @@ -#! @shell@ - -set -eu -o pipefail - -# For cmd | while read; do ...; done -shopt -s lastpipe - -path_backup="$PATH" -if [ -n "@coreutils_bin@" ]; then - PATH="@coreutils_bin@/bin" -fi - -declare -ri recurThreshold=200 -declare -i overflowCount=0 - -declare -ar origArgs=("$@") - -# Throw away what we won't need -declare -a parentArgs=() - -while (( $# )); do - case "$1" in - -l) - echo "cctools LD does not support '-l foo'" >&2 - exit 1 - ;; - -lazy_library | -reexport_library | -upward_library | -weak_library) - overflowCount+=1 - shift 2 - ;; - -l* | *.so.* | *.dylib | -lazy-l* | -reexport-l* | -upward-l* | -weak-l*) - overflowCount+=1 - shift 1 - ;; - *.a | *.o) - shift 1 - ;; - -L | -F) - # Evidentally ld doesn't like using the child's RPATH, so it still - # needs these. - parentArgs+=("$1" "$2") - shift 2 - ;; - -L?* | -F?*) - parentArgs+=("$1") - shift 1 - ;; - -o) - outputName="$2" - parentArgs+=("$1" "$2") - shift 2 - ;; - -install_name | -dylib_install_name | -dynamic-linker | -plugin) - parentArgs+=("$1" "$2") - shift 2 - ;; - -rpath) - # Only an rpath to the child is needed, which we will add - shift 2 - ;; - *) - if [[ -f "$1" ]]; then - # Propabably a non-standard object file like Haskell's - # `.dyn_o`. Skip it like other inputs - : - else - parentArgs+=("$1") - fi - shift 1 - ;; - esac -done - - - -if (( "$overflowCount" <= "$recurThreshold" )); then - if [ -n "${NIX_DEBUG:-}" ]; then - echo "ld-wrapper: Only ${overflowCount} inputs counted while ${recurThreshold} is the ceiling, linking normally. " >&2 - fi - PATH="$path_backup" - exec @prog@ "${origArgs[@]}" -fi - - - -if [ -n "${NIX_DEBUG:-}" ]; then - echo "ld-wrapper: ${overflowCount} inputs counted when ${recurThreshold} is the ceiling, inspecting further. " >&2 -fi - -# Collect the normalized linker input -declare -a norm=() - -# Arguments are null-separated -@prog@ --dump-normalized-lib-args "${origArgs[@]}" | - while IFS= read -r -d '' input; do - norm+=("$input") - done - -declare -i leafCount=0 -declare lastLeaf='' -declare -a childrenInputs=() trailingInputs=() -while (( "${#norm[@]}" )); do - case "${norm[0]}" in - -lazy_library | -upward_library) - # TODO(@Ericson2314): Don't do that, but intersperse children - # between such args. - echo "ld-wrapper: Warning: Potentially changing link order" >&2 - trailingInputs+=("${norm[0]}" "${norm[1]}") - norm=("${norm[@]:2}") - ;; - -reexport_library | -weak_library) - childrenInputs+=("${norm[0]}" "${norm[1]}") - if [[ "${norm[1]}" != "$lastLeaf" ]]; then - leafCount+=1 - lastLeaf="${norm[1]}" - fi - norm=("${norm[@]:2}") - ;; - *.so | *.dylib) - childrenInputs+=(-reexport_library "${norm[0]}") - if [[ "${norm[0]}" != "$lastLeaf" ]]; then - leafCount+=1 - lastLeaf="${norm[0]}" - fi - norm=("${norm[@]:1}") - ;; - *.o | *.a) - # Don't delegate object files or static libs - parentArgs+=("${norm[0]}") - norm=("${norm[@]:1}") - ;; - *) - if [[ -f "${norm[0]}" ]]; then - # Propabably a non-standard object file. We'll let it by. - parentArgs+=("${norm[0]}") - norm=("${norm[@]:1}") - else - echo "ld-wrapper: Internal Error: Invalid normalized argument" >&2 - exit 255 - fi - ;; - esac -done - - - -if (( "$leafCount" <= "$recurThreshold" )); then - if [ -n "${NIX_DEBUG:-}" ]; then - echo "ld-wrapper: Only ${leafCount} *dynamic* inputs counted while ${recurThreshold} is the ceiling, linking normally. " >&2 - fi - PATH="$path_backup" - exec @prog@ "${origArgs[@]}" -fi - - - -if [ -n "${NIX_DEBUG:-}" ]; then - echo "ld-wrapper: ${leafCount} *dynamic* inputs counted when ${recurThreshold} is the ceiling, delegating to children. " >&2 -fi - -declare -r outputNameLibless=$( \ - if [[ -z "${outputName:+isUndefined}" ]]; then - echo unnamed - return 0; - fi - baseName=$(basename ${outputName}) - if [[ "$baseName" = lib* ]]; then - baseName="${baseName:3}" - fi - echo "$baseName") - -declare -ra children=( - "$outputNameLibless-reexport-delegate-0" - "$outputNameLibless-reexport-delegate-1" -) - -mkdir -p "$out/lib" - -symbolBloatObject=$outputNameLibless-symbol-hack.o -if [[ ! -f $symbolBloatObject ]]; then - # `-Q` means use GNU Assembler rather than Clang, avoiding an awkward - # dependency cycle. - printf '.private_extern _______child_hack_foo\nchild_hack_foo:\n' | - PATH="$PATH:@out@/bin" @targetPrefix@as -Q -- -o $symbolBloatObject -fi - -# Split inputs between children -declare -a child0Inputs=() child1Inputs=("${childrenInputs[@]}") -let "countFirstChild = $leafCount / 2" || true -lastLeaf='' -while (( "$countFirstChild" )); do - case "${child1Inputs[0]}" in - -reexport_library | -weak_library) - child0Inputs+=("${child1Inputs[0]}" "${child1Inputs[1]}") - if [[ "${child1Inputs[1]}" != "$lastLeaf" ]]; then - let countFirstChild-=1 || true - lastLeaf="${child1Inputs[1]}" - fi - child1Inputs=("${child1Inputs[@]:2}") - ;; - *.so | *.dylib) - child0Inputs+=(-reexport_library "${child1Inputs[0]}") - if [[ "${child1Inputs[0]}" != "$lastLeaf" ]]; then - let countFirstChild-=1 || true - lastLeaf="${child1Inputs[1]}" - fi - child1Inputs=("${child1Inputs[@]:2}") - ;; - *) - echo "ld-wrapper: Internal Error: Invalid delegated input" >&2 - exit -1 - ;; - esac -done - - -# First half of libs -@out@/bin/@targetPrefix@ld \ - -macosx_version_min $MACOSX_DEPLOYMENT_TARGET -arch x86_64 -dylib \ - -o "$out/lib/lib${children[0]}.dylib" \ - -install_name "$out/lib/lib${children[0]}.dylib" \ - "$symbolBloatObject" "${child0Inputs[@]}" "${trailingInputs[@]}" - -# Second half of libs -@out@/bin/@targetPrefix@ld \ - -macosx_version_min $MACOSX_DEPLOYMENT_TARGET -arch x86_64 -dylib \ - -o "$out/lib/lib${children[1]}.dylib" \ - -install_name "$out/lib/lib${children[1]}.dylib" \ - "$symbolBloatObject" "${child1Inputs[@]}" "${trailingInputs[@]}" - -parentArgs+=("-L$out/lib" -rpath "$out/lib") -if [[ $outputName != *reexport-delegate* ]]; then - parentArgs+=("-l${children[0]}" "-l${children[1]}") -else - parentArgs+=("-reexport-l${children[0]}" "-reexport-l${children[1]}") -fi - -parentArgs+=("${trailingInputs[@]}") - -if [ -n "${NIX_DEBUG:-}" ]; then - echo "flags using delegated children to @prog@:" >&2 - printf " %q\n" "${parentArgs[@]}" >&2 -fi - -PATH="$path_backup" -exec @prog@ "${parentArgs[@]}" diff --git a/pkgs/build-support/bintools-wrapper/setup-hook.sh b/pkgs/build-support/bintools-wrapper/setup-hook.sh deleted file mode 100644 index c146cbe..0000000 --- a/pkgs/build-support/bintools-wrapper/setup-hook.sh +++ /dev/null @@ -1,72 +0,0 @@ -# Binutils Wrapper hygiene -# -# See comments in cc-wrapper's setup hook. This works exactly the same way. - -# Skip setup hook if we're neither a build-time dep, nor, temporarily, doing a -# native compile. -# -# TODO(@Ericson2314): No native exception -[[ -z ${strictDeps-} ]] || (( "$hostOffset" < 0 )) || return 0 - -bintoolsWrapper_addLDVars () { - # See ../setup-hooks/role.bash - local role_post - getHostRoleEnvHook - - if [[ -d "$1/lib64" && ! -L "$1/lib64" ]]; then - export NIX_LDFLAGS${role_post}+=" -L$1/lib64" - fi - - if [[ -d "$1/lib" ]]; then - # Don't add the /lib directory if it actually doesn't contain any libraries. For instance, - # Python and Haskell packages often only have directories like $out/lib/ghc-8.4.3/ or - # $out/lib/python3.6/, so having them in LDFLAGS just makes the linker search unnecessary - # directories and bloats the size of the environment variable space. - local -a glob=( $1/lib/lib* ) - if [ "${#glob[*]}" -gt 0 ]; then - export NIX_LDFLAGS${role_post}+=" -L$1/lib" - fi - fi -} - -# See ../setup-hooks/role.bash -getTargetRole -getTargetRoleWrapper - -addEnvHooks "$targetOffset" bintoolsWrapper_addLDVars - -# shellcheck disable=SC2157 -if [ -n "@bintools_bin@" ]; then - addToSearchPath _PATH @bintools_bin@/bin -fi - -# shellcheck disable=SC2157 -if [ -n "@libc_bin@" ]; then - addToSearchPath _PATH @libc_bin@/bin -fi - -# shellcheck disable=SC2157 -if [ -n "@coreutils_bin@" ]; then - addToSearchPath _PATH @coreutils_bin@/bin -fi - -# Export tool environment variables so various build systems use the right ones. - -export NIX_BINTOOLS${role_post}=@out@ - -for cmd in \ - ar as ld nm objcopy objdump readelf ranlib strip strings size windres -do - if - PATH=$_PATH type -p "@targetPrefix@${cmd}" > /dev/null - then - export "${cmd^^}${role_post}=@targetPrefix@${cmd}"; - fi -done - -# If unset, assume the default hardening flags. -: ${NIX_HARDENING_ENABLE="@default_hardening_flags_str@"} -export NIX_HARDENING_ENABLE - -# No local scope in sourced file -unset -v role_post cmd upper_case diff --git a/pkgs/build-support/build-bazel-package/default.nix b/pkgs/build-support/build-bazel-package/default.nix deleted file mode 100644 index 3ffff74..0000000 --- a/pkgs/build-support/build-bazel-package/default.nix +++ /dev/null @@ -1,294 +0,0 @@ -{ stdenv -, cacert -, lib -, writeCBin -}: - -args@{ - 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 - # removed in the fixed-output fetch phase, building will fail to download it. - # This can be seen e.g. in #73097 - # - # This option allows configuring the removal of rules_cc in cases where a - # project depends on it via an external dependency. - # - # [1]: https://github.com/bazelbuild/rules_cc -, 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 - - # 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 -, ... -}: - -let - 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 ? [ ] }: - lib.optionalString (targets != [ ]) '' - # See footnote called [USER and BAZEL_USE_CPP_ONLY_TOOLCHAIN variables] - BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 \ - USER=homeless-shelter \ - bazel \ - --batch \ - --output_base="$bazelOut" \ - --output_user_root="$bazelUserRoot" \ - ${cmd} \ - --curses=no \ - "''${copts[@]}" \ - "''${host_copts[@]}" \ - "''${linkopts[@]}" \ - "''${host_linkopts[@]}" \ - $bazelFlags \ - ${lib.strings.concatStringsSep " " additionalFlags} \ - ${lib.strings.concatStringsSep " " targets} \ - ${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' - chmodder = writeCBin "chmodder" '' - #include - #include - #include - #include - #include - #include - - int main(int argc, char** argv) { - mode_t mode = S_IRWXU | S_IRWXG | S_IRWXO; - if (argc != 2) { - fprintf(stderr, "usage: chmodder file"); - exit(EXIT_FAILURE); - } - if (lchmod(argv[1], mode) != 0) { - fprintf(stderr, "failed to lchmod '%s': %s", argv[0], strerror(errno)); - exit(EXIT_FAILURE); - } - } - ''; -in -stdenv.mkDerivation (fBuildAttrs // { - - deps = stdenv.mkDerivation (fFetchAttrs // { - name = "${name}-deps.tar.gz"; - - impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ fFetchAttrs.impureEnvVars or []; - - 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" - ''; - - 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; - } - } - - 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 - } - - 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 - ''; -}) - -# [USER and BAZEL_USE_CPP_ONLY_TOOLCHAIN variables]: -# Bazel computes the default value of output_user_root before parsing the -# flag. The computation of the default value involves getting the $USER -# from the environment. Code here : -# https://github.com/bazelbuild/bazel/blob/9323c57607d37f9c949b60e293b573584906da46/src/main/cpp/startup_options.cc#L123-L124 -# -# On macOS Bazel will use the system installed Xcode or CLT toolchain instead of the one in the PATH unless we pass BAZEL_USE_CPP_ONLY_TOOLCHAIN. diff --git a/pkgs/build-support/build-fhsenv-bubblewrap/buildFHSEnv.nix b/pkgs/build-support/build-fhsenv-bubblewrap/buildFHSEnv.nix deleted file mode 100644 index 1e34ad1..0000000 --- a/pkgs/build-support/build-fhsenv-bubblewrap/buildFHSEnv.nix +++ /dev/null @@ -1,266 +0,0 @@ -{ 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: - -# HOWTO: -# All packages (most likely programs) returned from targetPkgs will only be -# installed once--matching the host's architecture (64bit on x86_64 and 32bit on -# x86). -# -# Packages (most likely libraries) returned from multiPkgs are installed -# once on x86 systems and twice on x86_64 systems. -# On x86 they are merged with packages from targetPkgs. -# On x86_64 they are added to targetPkgs and in addition their 32bit -# versions are also installed. The final directory structure looks as -# follows: -# /lib32 will include 32bit libraries from multiPkgs -# /lib64 will include 64bit libraries from multiPkgs and targetPkgs -# /lib will link to /lib32 - -let - inherit (stdenv) is64bit; - - 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"; - isTargetBuild = !isMultiBuild; - - # 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); - - # list of packages which are for x86 (only multiPkgs, only for x86_64 hosts) - multiPaths = multiPkgs pkgsi686Linux; - - # base packages of the chroot - # 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. - baseTargetPaths = 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 - ]; - 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 "$@" - ''; - - etcProfile = writeText "profile" '' - export PS1='${name}-chrootenv:\u@\h:\w\$ ' - export LOCALE_ARCHIVE='/usr/lib/locale/locale-archive' - export LD_LIBRARY_PATH="/run/opengl-driver/lib:/run/opengl-driver-32/lib''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" - export PATH="/run/wrappers/bin:/usr/bin:/usr/sbin:$PATH" - export TZDIR='/etc/zoneinfo' - - # XDG_DATA_DIRS is used by pressure-vessel (steam proton) and vulkan loaders to find the corresponding icd - export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}/run/opengl-driver/share:/run/opengl-driver-32/share - - # Following XDG spec [1], XDG_DATA_DIRS should default to "/usr/local/share:/usr/share". - # In nix, it is commonly set without containing these values, so we add them as fallback. - # - # [1] - case ":$XDG_DATA_DIRS:" in - *:/usr/local/share:*) ;; - *) export XDG_DATA_DIRS="$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}/usr/local/share" ;; - esac - case ":$XDG_DATA_DIRS:" in - *:/usr/share:*) ;; - *) export XDG_DATA_DIRS="$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}/usr/share" ;; - esac - - # Force compilers and other tools to look in default search paths - unset NIX_ENFORCE_PURITY - export NIX_BINTOOLS_WRAPPER_TARGET_HOST_${stdenv.cc.suffixSalt}=1 - export NIX_CC_WRAPPER_TARGET_HOST_${stdenv.cc.suffixSalt}=1 - export NIX_CFLAGS_COMPILE='-idirafter /usr/include' - export NIX_CFLAGS_LINK='-L/usr/lib -L/usr/lib32' - export NIX_LDFLAGS='-L/usr/lib -L/usr/lib32' - export PKG_CONFIG_PATH=/usr/lib/pkgconfig - export ACLOCAL_PATH=/usr/share/aclocal - - ${profile} - ''; - - # Compose /etc for the chroot environment - etcPkg = runCommandLocal "${name}-chrootenv-etc" { } '' - mkdir -p $out/etc - pushd $out/etc - - # environment variables - ln -s ${etcProfile} profile - - # symlink /etc/mtab -> /proc/mounts (compat for old userspace progs) - ln -s /proc/mounts mtab - ''; - - # Composes a /usr-like directory structure - 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; - ignoreCollisions = true; - postBuild = '' - if [[ -d $out/share/gsettings-schemas/ ]]; then - # Recreate the standard schemas directory if its a symlink to make it writable - if [[ -L $out/share/glib-2.0 ]]; then - target=$(readlink $out/share/glib-2.0) - rm $out/share/glib-2.0 - mkdir $out/share/glib-2.0 - ln -fs $target/* $out/share/glib-2.0 - fi - - if [[ -L $out/share/glib-2.0/schemas ]]; then - target=$(readlink $out/share/glib-2.0/schemas) - rm $out/share/glib-2.0/schemas - mkdir $out/share/glib-2.0/schemas - ln -fs $target/* $out/share/glib-2.0/schemas - fi - - mkdir -p $out/share/glib-2.0/schemas - - for d in $out/share/gsettings-schemas/*; do - # Force symlink, in case there are duplicates - ln -fs $d/glib-2.0/schemas/*.xml $out/share/glib-2.0/schemas - ln -fs $d/glib-2.0/schemas/*.gschema.override $out/share/glib-2.0/schemas - done - - # and compile them - ${pkgs.glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas - fi - ''; - }; - - staticUsrProfileMulti = buildEnv { - name = "${name}-usr-multi"; - paths = baseMultiPaths ++ multiPaths; - extraOutputsToInstall = [ "out" "lib" ] ++ extraOutputsToInstall; - ignoreCollisions = true; - }; - - # setup library paths only for the targeted architecture - setupLibDirsTarget = '' - # link content of targetPaths - cp -rsHf ${staticUsrProfileTarget}/lib lib - ln -s lib lib${if is64bit then "64" else "32"} - ''; - - # setup /lib, /lib32 and /lib64 - setupLibDirsMulti = '' - mkdir -m0755 lib32 - mkdir -m0755 lib64 - ln -s lib64 lib - - # copy glibc stuff - cp -rsHf ${staticUsrProfileTarget}/lib/32/* lib32/ - chmod u+w -R lib32/ - - # copy content of multiPaths (32bit libs) - if [ -d ${staticUsrProfileMulti}/lib ]; then - cp -rsHf ${staticUsrProfileMulti}/lib/* lib32/ - chmod u+w -R lib32/ - fi - - # copy content of targetPaths (64bit libs) - cp -rsHf ${staticUsrProfileTarget}/lib/* lib64/ - chmod u+w -R lib64/ - - # symlink 32-bit ld-linux.so - ln -Ls ${staticUsrProfileTarget}/lib/32/ld-linux.so.2 lib/ - ''; - - 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 - - ${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 - fi - fi - 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 - - popd - ''; - -in runCommandLocal "${name}-fhs" { - passthru = { - inherit args baseTargetPaths targetPaths baseMultiPaths ldconfig isMultiBuild; - }; -} '' - mkdir -p $out - pushd $out - - ${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 deleted file mode 100644 index 12f3e7d..0000000 --- a/pkgs/build-support/build-fhsenv-bubblewrap/default.nix +++ /dev/null @@ -1,289 +0,0 @@ -{ 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: - -assert (!args ? pname || !args ? version) -> (args ? name); # You must provide name if pname or version (preferred) is missing. - -let - inherit (lib) - concatLines - concatStringsSep - escapeShellArgs - filter - optionalString - splitString - ; - - inherit (lib.attrsets) removeAttrs; - - 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; - - buildFHSEnv = callPackage ./buildFHSEnv.nix { }; - - 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; - - # Create this on the fly instead of linking from /nix - # The container might have to modify it and re-run ldconfig if there are - # issues running some binary with LD_LIBRARY_PATH - createLdConfCache = '' - cat > /etc/ld.so.conf < /dev/null - ''; - 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=() - - # 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 - 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 [[ -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=}") - 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 - ''; - 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 deleted file mode 100644 index 32ac43d..0000000 --- a/pkgs/build-support/build-fhsenv-chroot/chrootenv/default.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ lib, stdenv, meson, ninja, pkg-config, glib }: - -stdenv.mkDerivation { - name = "chrootenv"; - src = ./src; - - nativeBuildInputs = [ meson ninja pkg-config ]; - buildInputs = [ glib ]; - - meta = with lib; { - description = "Setup mount/user namespace for FHS emulation"; - license = licenses.mit; - maintainers = with maintainers; [ yana ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/build-support/build-fhsenv-chroot/chrootenv/src/chrootenv.c b/pkgs/build-support/build-fhsenv-chroot/chrootenv/src/chrootenv.c deleted file mode 100644 index c109d72..0000000 --- a/pkgs/build-support/build-fhsenv-chroot/chrootenv/src/chrootenv.c +++ /dev/null @@ -1,169 +0,0 @@ -#define _GNU_SOURCE - -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include - -#define fail(s, err) g_error("%s: %s: %s", __func__, s, g_strerror(err)) -#define fail_if(expr) \ - if (expr) \ - fail(#expr, errno); - -const gchar *bind_blacklist[] = {"bin", "etc", "host", "real-host", "usr", "lib", "lib64", "lib32", "sbin", "opt", NULL}; - -int pivot_root(const char *new_root, const char *put_old) { - return syscall(SYS_pivot_root, new_root, put_old); -} - -void mount_tmpfs(const gchar *target) { - fail_if(mount("none", target, "tmpfs", 0, NULL)); -} - -void bind_mount(const gchar *source, const gchar *target) { - fail_if(g_mkdir(target, 0755)); - fail_if(mount(source, target, NULL, MS_BIND | MS_REC, NULL)); -} - -const gchar *create_tmpdir() { - gchar *prefix = - g_build_filename(g_get_tmp_dir(), "chrootenvXXXXXX", NULL); - fail_if(!g_mkdtemp_full(prefix, 0755)); - return prefix; -} - -void pivot_host(const gchar *guest) { - g_autofree gchar *point = g_build_filename(guest, "host", NULL); - fail_if(g_mkdir(point, 0755)); - fail_if(pivot_root(guest, point)); -} - -void bind_mount_item(const gchar *host, const gchar *guest, const gchar *name) { - g_autofree gchar *source = g_build_filename(host, name, NULL); - g_autofree gchar *target = g_build_filename(guest, name, NULL); - - if (G_LIKELY(g_file_test(source, G_FILE_TEST_IS_DIR))) - bind_mount(source, target); -} - -void bind(const gchar *host, const gchar *guest) { - mount_tmpfs(guest); - - pivot_host(guest); - - g_autofree gchar *host_dir = g_build_filename("/host", host, NULL); - - g_autoptr(GError) err = NULL; - g_autoptr(GDir) dir = g_dir_open(host_dir, 0, &err); - - if (err != NULL) - fail("g_dir_open", errno); - - const gchar *item; - - while ((item = g_dir_read_name(dir))) - if (!g_strv_contains(bind_blacklist, item)) - bind_mount_item(host_dir, "/", item); -} - -void spit(const char *path, char *fmt, ...) { - va_list args; - va_start(args, fmt); - - FILE *f = g_fopen(path, "w"); - - if (f == NULL) - fail("g_fopen", errno); - - g_vfprintf(f, fmt, args); - fclose(f); -} - -int main(gint argc, gchar **argv) { - const gchar *self = *argv++; - - if (argc < 2) { - g_message("%s command [arguments...]", self); - return 1; - } - - g_autofree const gchar *prefix = create_tmpdir(); - - pid_t cpid = fork(); - - if (cpid < 0) - fail("fork", errno); - - else if (cpid == 0) { - uid_t uid = getuid(); - gid_t gid = getgid(); - - int namespaces = CLONE_NEWNS; - if (uid != 0) { - namespaces |= CLONE_NEWUSER; - } - if (unshare(namespaces) < 0) { - int unshare_errno = errno; - - g_message("Requires Linux version >= 3.19 built with CONFIG_USER_NS"); - if (g_file_test("/proc/sys/kernel/unprivileged_userns_clone", - G_FILE_TEST_EXISTS)) - g_message("Run: sudo sysctl -w kernel.unprivileged_userns_clone=1"); - - fail("unshare", unshare_errno); - } - - // hide all mounts we do from the parent - fail_if(mount(0, "/", 0, MS_SLAVE | MS_REC, 0)); - - if (uid != 0) { - spit("/proc/self/setgroups", "deny"); - spit("/proc/self/uid_map", "%d %d 1", uid, uid); - spit("/proc/self/gid_map", "%d %d 1", gid, gid); - } - - // If there is a /host directory, assume this is nested chrootenv and use it as host instead. - gboolean nested_host = g_file_test("/host", G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR); - g_autofree const gchar *host = nested_host ? "/host" : "/"; - - bind(host, prefix); - - // Replace /host by an actual (inner) /host. - if (nested_host) { - fail_if(g_mkdir("/real-host", 0755)); - fail_if(mount("/host/host", "/real-host", NULL, MS_BIND | MS_REC, NULL)); - // For some reason umount("/host") returns EBUSY even immediately after - // pivot_root. We detach it at least to keep `/proc/mounts` from blowing - // up in nested cases. - fail_if(umount2("/host", MNT_DETACH)); - fail_if(mount("/real-host", "/host", NULL, MS_MOVE, NULL)); - fail_if(rmdir("/real-host")); - } - - fail_if(chdir("/")); - fail_if(execvp(*argv, argv)); - } - - else { - int status; - - fail_if(waitpid(cpid, &status, 0) != cpid); - fail_if(rmdir(prefix)); - - if (WIFEXITED(status)) - return WEXITSTATUS(status); - - else if (WIFSIGNALED(status)) - kill(getpid(), WTERMSIG(status)); - - return 1; - } -} diff --git a/pkgs/build-support/build-fhsenv-chroot/chrootenv/src/meson.build b/pkgs/build-support/build-fhsenv-chroot/chrootenv/src/meson.build deleted file mode 100644 index 6d0770a..0000000 --- a/pkgs/build-support/build-fhsenv-chroot/chrootenv/src/meson.build +++ /dev/null @@ -1,5 +0,0 @@ -project('chrootenv', 'c') - -glib = dependency('glib-2.0') - -executable('chrootenv', 'chrootenv.c', dependencies: [glib], install: true) diff --git a/pkgs/build-support/build-fhsenv-chroot/default.nix b/pkgs/build-support/build-fhsenv-chroot/default.nix deleted file mode 100644 index 6f0adfb..0000000 --- a/pkgs/build-support/build-fhsenv-chroot/default.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ lib, callPackage, runCommandLocal, writeScript, stdenv, coreutils }: - -let buildFHSEnv = callPackage ./env.nix { }; in - -args@{ name, version ? null, runScript ? "bash", extraInstallCommands ? "", meta ? {}, passthru ? {}, ... }: - -let - env = buildFHSEnv (removeAttrs args [ "version" "runScript" "extraInstallCommands" "meta" "passthru" ]); - - chrootenv = callPackage ./chrootenv {}; - - 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; - - 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 deleted file mode 100644 index 6a82435..0000000 --- a/pkgs/build-support/build-fhsenv-chroot/env.nix +++ /dev/null @@ -1,259 +0,0 @@ -{ stdenv, lib, buildEnv, writeText, pkgs, pkgsi686Linux }: - -{ name -, profile ? "" -, targetPkgs ? pkgs: [] -, multiPkgs ? pkgs: [] -, extraBuildCommands ? "" -, extraBuildCommandsMulti ? "" -, extraOutputsToInstall ? [] -}: - -# HOWTO: -# All packages (most likely programs) returned from targetPkgs will only be -# installed once--matching the host's architecture (64bit on x86_64 and 32bit on -# x86). -# -# Packages (most likely libraries) returned from multiPkgs are installed -# once on x86 systems and twice on x86_64 systems. -# On x86 they are merged with packages from targetPkgs. -# On x86_64 they are added to targetPkgs and in addition their 32bit -# versions are also installed. The final directory structure looks as -# follows: -# /lib32 will include 32bit libraries from multiPkgs -# /lib64 will include 64bit libraries from multiPkgs and targetPkgs -# /lib will link to /lib32 - -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"; - 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); - - # list of packages which are installed for both x86 and x86_64 on x86_64 - # systems - multiPaths = multiPkgs pkgsi686Linux; - - # base packages of the chroot - # 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) - ]; - - etcProfile = writeText "profile" '' - export PS1='${name}-chrootenv:\u@\h:\w\$ ' - export LOCALE_ARCHIVE='/usr/lib/locale/locale-archive' - export LD_LIBRARY_PATH="/run/opengl-driver/lib:/run/opengl-driver-32/lib:/usr/lib:/usr/lib32''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" - export PATH="/run/wrappers/bin:/usr/bin:/usr/sbin:$PATH" - export TZDIR='/etc/zoneinfo' - - # XDG_DATA_DIRS is used by pressure-vessel (steam proton) and vulkan loaders to find the corresponding icd - export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}/run/opengl-driver/share:/run/opengl-driver-32/share - - # Following XDG spec [1], XDG_DATA_DIRS should default to "/usr/local/share:/usr/share". - # In nix, it is commonly set without containing these values, so we add them as fallback. - # - # [1] - case ":$XDG_DATA_DIRS:" in - *:/usr/local/share:*) ;; - *) export XDG_DATA_DIRS="$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}/usr/local/share" ;; - esac - case ":$XDG_DATA_DIRS:" in - *:/usr/share:*) ;; - *) export XDG_DATA_DIRS="$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}/usr/share" ;; - esac - - # Force compilers and other tools to look in default search paths - unset NIX_ENFORCE_PURITY - export NIX_BINTOOLS_WRAPPER_TARGET_HOST_${stdenv.cc.suffixSalt}=1 - export NIX_CC_WRAPPER_TARGET_HOST_${stdenv.cc.suffixSalt}=1 - export NIX_CFLAGS_COMPILE='-idirafter /usr/include' - export NIX_CFLAGS_LINK='-L/usr/lib -L/usr/lib32' - export NIX_LDFLAGS='-L/usr/lib -L/usr/lib32' - export PKG_CONFIG_PATH=/usr/lib/pkgconfig - export ACLOCAL_PATH=/usr/share/aclocal - - ${profile} - ''; - - # Compose /etc for the chroot environment - etcPkg = stdenv.mkDerivation { - name = "${name}-chrootenv-etc"; - buildCommand = '' - mkdir -p $out/etc - cd $out/etc - - # environment variables - ln -s ${etcProfile} profile - - # compatibility with NixOS - ln -s /host/etc/static static - - # symlink nix config - ln -s /host/etc/nix nix - - # symlink some NSS stuff - ln -s /host/etc/passwd passwd - ln -s /host/etc/group group - ln -s /host/etc/shadow shadow - ln -s /host/etc/hosts hosts - ln -s /host/etc/resolv.conf resolv.conf - ln -s /host/etc/nsswitch.conf nsswitch.conf - - # symlink user profiles - ln -s /host/etc/profiles profiles - - # symlink sudo and su stuff - ln -s /host/etc/login.defs login.defs - ln -s /host/etc/sudoers sudoers - ln -s /host/etc/sudoers.d sudoers.d - - # symlink other core stuff - ln -s /host/etc/localtime localtime - ln -s /host/etc/zoneinfo zoneinfo - ln -s /host/etc/machine-id machine-id - ln -s /host/etc/os-release os-release - - # symlink PAM stuff - ln -s /host/etc/pam.d pam.d - - # symlink fonts stuff - ln -s /host/etc/fonts fonts - - # symlink ALSA stuff - ln -s /host/etc/asound.conf asound.conf - ln -s /host/etc/alsa alsa - - # symlink SSL certs - mkdir -p ssl - ln -s /host/etc/ssl/certs ssl/certs - - # symlink /etc/mtab -> /proc/mounts (compat for old userspace progs) - ln -s /proc/mounts mtab - ''; - }; - - # Composes a /usr-like directory structure - staticUsrProfileTarget = buildEnv { - name = "${name}-usr-target"; - paths = [ etcPkg ] ++ basePkgs ++ targetPaths; - extraOutputsToInstall = [ "out" "lib" "bin" ] ++ extraOutputsToInstall; - ignoreCollisions = true; - postBuild = '' - if [[ -d $out/share/gsettings-schemas/ ]]; then - # Recreate the standard schemas directory if its a symlink to make it writable - if [[ -L $out/share/glib-2.0 ]]; then - target=$(readlink $out/share/glib-2.0) - rm $out/share/glib-2.0 - mkdir $out/share/glib-2.0 - ln -fs $target/* $out/share/glib-2.0 - fi - - if [[ -L $out/share/glib-2.0/schemas ]]; then - target=$(readlink $out/share/glib-2.0/schemas) - rm $out/share/glib-2.0/schemas - mkdir $out/share/glib-2.0/schemas - ln -fs $target/* $out/share/glib-2.0/schemas - fi - - mkdir -p $out/share/glib-2.0/schemas - - for d in $out/share/gsettings-schemas/*; do - # Force symlink, in case there are duplicates - ln -fs $d/glib-2.0/schemas/*.xml $out/share/glib-2.0/schemas - ln -fs $d/glib-2.0/schemas/*.gschema.override $out/share/glib-2.0/schemas - done - - # and compile them - ${pkgs.glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas - fi - ''; - }; - - staticUsrProfileMulti = buildEnv { - name = "${name}-usr-multi"; - paths = baseMultiPkgs ++ multiPaths; - extraOutputsToInstall = [ "out" "lib" ] ++ extraOutputsToInstall; - ignoreCollisions = true; - }; - - # setup library paths only for the targeted architecture - setupLibDirs_target = '' - # link content of targetPaths - cp -rsHf ${staticUsrProfileTarget}/lib lib - ln -s lib lib${if is64Bit then "64" else "32"} - ''; - - # setup /lib, /lib32 and /lib64 - setupLibDirs_multi = '' - mkdir -m0755 lib32 - mkdir -m0755 lib64 - ln -s lib64 lib - - # copy glibc stuff - cp -rsHf ${staticUsrProfileTarget}/lib/32/* lib32/ && chmod u+w -R lib32/ - - # copy content of multiPaths (32bit libs) - [ -d ${staticUsrProfileMulti}/lib ] && cp -rsHf ${staticUsrProfileMulti}/lib/* lib32/ && chmod u+w -R lib32/ - - # copy content of targetPaths (64bit libs) - cp -rsHf ${staticUsrProfileTarget}/lib/* lib64/ && chmod u+w -R lib64/ - - # symlink 32-bit ld-linux.so - ln -Ls ${staticUsrProfileTarget}/lib/32/ld-linux.so.2 lib/ - ''; - - setupLibDirs = if isTargetBuild then setupLibDirs_target - else setupLibDirs_multi; - - # the target profile is the actual profile that will be used for the chroot - setupTargetProfile = '' - mkdir -m0755 usr - cd usr - ${setupLibDirs} - for i in bin sbin share 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 - ''; - -in stdenv.mkDerivation { - name = "${name}-fhs"; - buildCommand = '' - mkdir -p $out - cd $out - ${setupTargetProfile} - cd $out - ${extraBuildCommands} - cd $out - ${lib.optionalString isMultiBuild extraBuildCommandsMulti} - ''; - preferLocalBuild = true; - allowSubstitutes = false; -} diff --git a/pkgs/build-support/build-graalvm-native-image/default.nix b/pkgs/build-support/build-graalvm-native-image/default.nix deleted file mode 100644 index f0e7390..0000000 --- a/pkgs/build-support/build-graalvm-native-image/default.nix +++ /dev/null @@ -1,84 +0,0 @@ -{ lib -, stdenv -, glibcLocales - # The GraalVM derivation to use -, graalvmDrv -, removeReferencesTo -, executable ? args.pname - # JAR used as input for GraalVM derivation, defaults to 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 ? [ - (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 ? [ ] - # XMX size of GraalVM during build -, graalvmXmx ? "-J-Xmx6g" -, meta ? { } -, LC_ALL ? "en_US.UTF-8" -, ... -} @ args: - -let - extraArgs = builtins.removeAttrs args [ - "lib" - "stdenv" - "glibcLocales" - "jar" - "dontUnpack" - "LC_ALL" - "meta" - "buildPhase" - "nativeBuildInputs" - "installPhase" - "postInstall" - ]; -in -stdenv.mkDerivation ({ - inherit dontUnpack jar; - - env = { inherit LC_ALL; }; - - nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ graalvmDrv glibcLocales removeReferencesTo ]; - - nativeImageBuildArgs = nativeImageBuildArgs ++ extraNativeImageBuildArgs ++ [ graalvmXmx ]; - - buildPhase = args.buildPhase or '' - runHook preBuild - - native-image -jar "$jar" $(export -p | sed -n 's/^declare -x \([^=]\+\)=.*$/ -E\1/p' | tr -d \\n) ''${nativeImageBuildArgs[@]} - - runHook postBuild - ''; - - installPhase = args.installPhase or '' - runHook preInstall - - install -Dm755 ${executable} -t $out/bin - - runHook postInstall - ''; - - postInstall = '' - remove-references-to -t ${graalvmDrv} $out/bin/${executable} - ${args.postInstall or ""} - ''; - - disallowedReferences = [ graalvmDrv ]; - - passthru = { inherit graalvmDrv; }; - - 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 deleted file mode 100644 index 7ac8afd..0000000 --- a/pkgs/build-support/build-maven.nix +++ /dev/null @@ -1,88 +0,0 @@ -{ 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. -# -# repo: A local maven repository with the project's dependencies. -# -# settings: A settings.xml to pass to maven to use the repo. -# -# build: A simple build derivation that uses mvn compile and package to build -# the project. -# -# @example -# project = pkgs.buildMaven ./project-info.json -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 ""; - - 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; - }; - - 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; - })); - - settings = writeText "settings.xml" '' - - ${repo} - - ''; - - src = dirOf infoFile; -in { - inherit repo settings info; - - build = stdenv.mkDerivation { - name = "${info.project.artifactId}-${info.project.version}.jar"; - - src = builtins.filterSource (path: type: - (toString path) != (toString (src + "/target")) && (toString path) - != (toString (src + "/.git"))) src; - - buildInputs = [ maven ]; - - buildPhase = "mvn --offline --settings ${settings} compile"; - - installPhase = '' - mvn --offline --settings ${settings} package - mv target/*.jar $out - ''; - }; -} diff --git a/pkgs/build-support/buildenv/builder.pl b/pkgs/build-support/buildenv/builder.pl deleted file mode 100755 index 975e76d..0000000 --- a/pkgs/build-support/buildenv/builder.pl +++ /dev/null @@ -1,283 +0,0 @@ -#! @perl@ -w - -use strict; -use Cwd 'abs_path'; -use IO::Handle; -use File::Path; -use File::Basename; -use File::Compare; -use JSON::PP; - -STDOUT->autoflush(1); - -$SIG{__WARN__} = sub { warn "warning: ", @_ }; -$SIG{__DIE__} = sub { die "error: ", @_ }; - -my $out = $ENV{"out"}; -my $extraPrefix = $ENV{"extraPrefix"}; - -my @pathsToLink = split ' ', $ENV{"pathsToLink"}; - -sub isInPathsToLink { - my $path = shift; - $path = "/" if $path eq ""; - foreach my $elem (@pathsToLink) { - return 1 if - $elem eq "/" || - (substr($path, 0, length($elem)) eq $elem - && (($path eq $elem) || (substr($path, length($elem), 1) eq "/"))); - } - return 0; -} - -# Returns whether a path in one of the linked packages may contain -# files in one of the elements of pathsToLink. -sub hasPathsToLink { - my $path = shift; - foreach my $elem (@pathsToLink) { - return 1 if - $path eq "" || - (substr($elem, 0, length($path)) eq $path - && (($path eq $elem) || (substr($elem, length($path), 1) eq "/"))); - } - return 0; -} - -# Similar to `lib.isStorePath` -sub isStorePath { - my $path = shift; - my $storePath = "@storeDir@"; - - return substr($path, 0, 1) eq "/" && dirname($path) eq $storePath; -} - -# For each activated package, determine what symlinks to create. - -my %symlinks; - -# Add all pathsToLink and all parent directories. -# -# For "/a/b/c" that will include -# [ "", "/a", "/a/b", "/a/b/c" ] -# -# That ensures the whole directory tree needed by pathsToLink is -# created as directories and not symlinks. -$symlinks{""} = ["", 0]; -for my $p (@pathsToLink) { - my @parts = split '/', $p; - - my $cur = ""; - for my $x (@parts) { - $cur = $cur . "/$x"; - $cur = "" if $cur eq "/"; - $symlinks{$cur} = ["", 0]; - } -} - -sub findFiles; - -sub findFilesInDir { - my ($relName, $target, $ignoreCollisions, $checkCollisionContents, $priority) = @_; - - opendir DIR, "$target" or die "cannot open `$target': $!"; - my @names = readdir DIR or die; - closedir DIR; - - foreach my $name (@names) { - next if $name eq "." || $name eq ".."; - findFiles("$relName/$name", "$target/$name", $name, $ignoreCollisions, $checkCollisionContents, $priority); - } -} - -sub checkCollision { - my ($path1, $path2) = @_; - - if (! -e $path1 || ! -e $path2) { - return 0; - } - - my $stat1 = (stat($path1))[2]; - my $stat2 = (stat($path2))[2]; - - if ($stat1 != $stat2) { - warn "different permissions in `$path1' and `$path2': " - . sprintf("%04o", $stat1 & 07777) . " <-> " - . sprintf("%04o", $stat2 & 07777); - return 0; - } - - return compare($path1, $path2) == 0; -} - -sub prependDangling { - my $path = shift; - return (-l $path && ! -e $path ? "dangling symlink " : "") . "`$path'"; -} - -sub findFiles { - my ($relName, $target, $baseName, $ignoreCollisions, $checkCollisionContents, $priority) = @_; - - # The store path must not be a file - if (-f $target && isStorePath $target) { - die "The store path $target is a file and can't be merged into an environment using pkgs.buildEnv!"; - } - - # Urgh, hacky... - return if - $relName eq "/propagated-build-inputs" || - $relName eq "/nix-support" || - $relName =~ /info\/dir$/ || - ( $relName =~ /^\/share\/mime\// && !( $relName =~ /^\/share\/mime\/packages/ ) ) || - $baseName eq "perllocal.pod" || - $baseName eq "log" || - ! (hasPathsToLink($relName) || isInPathsToLink($relName)); - - my ($oldTarget, $oldPriority) = @{$symlinks{$relName} // [undef, undef]}; - - # If target doesn't exist, create it. If it already exists as a - # symlink to a file (not a directory) in a lower-priority package, - # overwrite it. - if (!defined $oldTarget || ($priority < $oldPriority && ($oldTarget ne "" && ! -d $oldTarget))) { - # If target is a dangling symlink, emit a warning. - if (-l $target && ! -e $target) { - my $link = readlink $target; - warn "creating dangling symlink `$out$extraPrefix/$relName' -> `$target' -> `$link'\n"; - } - $symlinks{$relName} = [$target, $priority]; - return; - } - - # If target already exists and both targets resolves to the same path, skip - if ( - defined $oldTarget && $oldTarget ne "" && - defined abs_path($target) && defined abs_path($oldTarget) && - abs_path($target) eq abs_path($oldTarget) - ) { - # Prefer the target that is not a symlink, if any - if (-l $oldTarget && ! -l $target) { - $symlinks{$relName} = [$target, $priority]; - } - return; - } - - # If target already exists as a symlink to a file (not a - # directory) in a higher-priority package, skip. - if (defined $oldTarget && $priority > $oldPriority && $oldTarget ne "" && ! -d $oldTarget) { - return; - } - - # If target is supposed to be a directory but it isn't, die with an error message - # instead of attempting to recurse into it, only to fail then. - # This happens e.g. when pathsToLink contains a non-directory path. - if ($oldTarget eq "" && ! -d $target) { - die "not a directory: `$target'\n"; - } - - unless (-d $target && ($oldTarget eq "" || -d $oldTarget)) { - # Prepend "dangling symlink" to paths if applicable. - my $targetRef = prependDangling($target); - my $oldTargetRef = prependDangling($oldTarget); - - if ($ignoreCollisions) { - warn "collision between $targetRef and $oldTargetRef\n" if $ignoreCollisions == 1; - return; - } elsif ($checkCollisionContents && checkCollision($oldTarget, $target)) { - return; - } else { - die "collision between $targetRef and $oldTargetRef\n"; - } - } - - findFilesInDir($relName, $oldTarget, $ignoreCollisions, $checkCollisionContents, $oldPriority) unless $oldTarget eq ""; - findFilesInDir($relName, $target, $ignoreCollisions, $checkCollisionContents, $priority); - - $symlinks{$relName} = ["", $priority]; # denotes directory -} - - -my %done; -my %postponed; - -sub addPkg { - my ($pkgDir, $ignoreCollisions, $checkCollisionContents, $priority) = @_; - - return if (defined $done{$pkgDir}); - $done{$pkgDir} = 1; - - findFiles("", $pkgDir, "", $ignoreCollisions, $checkCollisionContents, $priority); - - my $propagatedFN = "$pkgDir/nix-support/propagated-user-env-packages"; - if (-e $propagatedFN) { - open PROP, "<$propagatedFN" or die; - my $propagated = ; - close PROP; - my @propagated = split ' ', $propagated; - foreach my $p (@propagated) { - $postponed{$p} = 1 unless defined $done{$p}; - } - } -} - -# Read packages list. -my $pkgs; - -if (exists $ENV{"pkgsPath"}) { - open FILE, $ENV{"pkgsPath"}; - $pkgs = ; - close FILE; -} else { - $pkgs = $ENV{"pkgs"} -} - -# Symlink to the packages that have been installed explicitly by the -# user. -for my $pkg (@{decode_json $pkgs}) { - for my $path (@{$pkg->{paths}}) { - addPkg($path, - $ENV{"ignoreCollisions"} eq "1", - $ENV{"checkCollisionContents"} eq "1", - $pkg->{priority}) - if -e $path; - } -} - - -# Symlink to the packages that have been "propagated" by packages -# installed by the user (i.e., package X declares that it wants Y -# installed as well). We do these later because they have a lower -# priority in case of collisions. -my $priorityCounter = 1000; # don't care about collisions -while (scalar(keys %postponed) > 0) { - my @pkgDirs = keys %postponed; - %postponed = (); - foreach my $pkgDir (sort @pkgDirs) { - addPkg($pkgDir, 2, $ENV{"checkCollisionContents"} eq "1", $priorityCounter++); - } -} - - -# Create the symlinks. -my $nrLinks = 0; -foreach my $relName (sort keys %symlinks) { - my ($target, $priority) = @{$symlinks{$relName}}; - my $abs = "$out" . "$extraPrefix" . "/$relName"; - next unless isInPathsToLink $relName; - if ($target eq "") { - #print "creating directory $relName\n"; - mkpath $abs or die "cannot create directory `$abs': $!"; - } else { - #print "creating symlink $relName to $target\n"; - symlink $target, $abs || - die "error creating link `$abs': $!"; - $nrLinks++; - } -} - - -print STDERR "created $nrLinks symlinks in user environment\n"; - - -my $manifest = $ENV{"manifest"}; -if ($manifest) { - symlink($manifest, "$out/manifest") or die "cannot create manifest"; -} diff --git a/pkgs/build-support/buildenv/default.nix b/pkgs/build-support/buildenv/default.nix deleted file mode 100644 index 560f59b..0000000 --- a/pkgs/build-support/buildenv/default.nix +++ /dev/null @@ -1,81 +0,0 @@ -# buildEnv creates a tree of symlinks to the specified paths. This is -# a fork of the hardcoded buildEnv in the Nix distribution. - -{ buildPackages, runCommand, lib, substituteAll }: - -let - builder = substituteAll { - src = ./builder.pl; - inherit (builtins) storeDir; - }; -in - -lib.makeOverridable -({ name - -, # The manifest file (if any). A symlink $out/manifest will be - # created to it. - manifest ? "" - -, # The paths to symlink. - paths - -, # Whether to ignore collisions or abort. - ignoreCollisions ? false - -, # If there is a collision, check whether the contents and permissions match - # and only if not, throw a collision error. - checkCollisionContents ? true - -, # The paths (relative to each element of `paths') that we want to - # symlink (e.g., ["/bin"]). Any file not inside any of the - # directories in the list is not symlinked. - pathsToLink ? ["/"] - -, # The package outputs to include. By default, only the default - # output is included. - extraOutputsToInstall ? [] - -, # Root the result in directory "$out${extraPrefix}", e.g. "/share". - extraPrefix ? "" - -, # Shell commands to run after building the symlink tree. - postBuild ? "" - -# Additional inputs -, nativeBuildInputs ? [] # Handy e.g. if using makeWrapper in `postBuild`. -, buildInputs ? [] - -, passthru ? {} -, meta ? {} -}: - -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/add-clang-cc-cflags-before.sh b/pkgs/build-support/cc-wrapper/add-clang-cc-cflags-before.sh deleted file mode 100644 index a1d06b9..0000000 --- a/pkgs/build-support/cc-wrapper/add-clang-cc-cflags-before.sh +++ /dev/null @@ -1,11 +0,0 @@ -needsTarget=true - -for p in "${params[@]}"; do - case "$p" in - -target | --target=*) needsTarget=false ;; - esac -done - -if $needsTarget; then - extraBefore+=(-target @defaultTarget@ @march@) -fi diff --git a/pkgs/build-support/cc-wrapper/add-flags.sh b/pkgs/build-support/cc-wrapper/add-flags.sh deleted file mode 100644 index c59118d..0000000 --- a/pkgs/build-support/cc-wrapper/add-flags.sh +++ /dev/null @@ -1,87 +0,0 @@ -# N.B. It may be a surprise that the derivation-specific variables are exported, -# since this is just sourced by the wrapped binaries---the end consumers. This -# is because one wrapper binary may invoke another (e.g. cc invoking ld). In -# that case, it is cheaper/better to not repeat this step and let the forked -# wrapped binary just inherit the work of the forker's wrapper script. - -var_templates_list=( - NIX_CFLAGS_COMPILE - NIX_CFLAGS_COMPILE_BEFORE - NIX_CFLAGS_LINK - NIX_CXXSTDLIB_COMPILE - NIX_CXXSTDLIB_LINK - NIX_GNATFLAGS_COMPILE -) -var_templates_bool=( - NIX_ENFORCE_NO_NATIVE -) - -accumulateRoles - -# We need to mangle names for hygiene, but also take parameters/overrides -# from the environment. -for var in "${var_templates_list[@]}"; do - mangleVarList "$var" ${role_suffixes[@]+"${role_suffixes[@]}"} -done -for var in "${var_templates_bool[@]}"; do - mangleVarBool "$var" ${role_suffixes[@]+"${role_suffixes[@]}"} -done - -# `-B@out@/bin' forces cc to use ld-wrapper.sh when calling ld. -NIX_CFLAGS_COMPILE_@suffixSalt@="-B@out@/bin/ $NIX_CFLAGS_COMPILE_@suffixSalt@" - -# Export and assign separately in order that a failing $(..) will fail -# the script. - -# Currently bootstrap-tools does not split glibc, and gcc files into -# separate directories. As a workaround we want resulting cflags to be -# ordered as: crt1-cflags libc-cflags cc-cflags. Otherwise we mix crt/libc.so -# from different libc as seen in -# https://github.com/NixOS/nixpkgs/issues/158042 -# -# Note that below has reverse ordering as we prepend flags one-by-one. -# Once bootstrap-tools is split into different directories we can stop -# relying on flag ordering below. - -if [ -e @out@/nix-support/cc-cflags ]; then - NIX_CFLAGS_COMPILE_@suffixSalt@="$(< @out@/nix-support/cc-cflags) $NIX_CFLAGS_COMPILE_@suffixSalt@" -fi - -if [[ "$cInclude" = 1 ]] && [ -e @out@/nix-support/libc-cflags ]; then - NIX_CFLAGS_COMPILE_@suffixSalt@="$(< @out@/nix-support/libc-cflags) $NIX_CFLAGS_COMPILE_@suffixSalt@" -fi - -if [ -e @out@/nix-support/libc-crt1-cflags ]; then - NIX_CFLAGS_COMPILE_@suffixSalt@="$(< @out@/nix-support/libc-crt1-cflags) $NIX_CFLAGS_COMPILE_@suffixSalt@" -fi - -if [ -e @out@/nix-support/libcxx-cxxflags ]; then - NIX_CXXSTDLIB_COMPILE_@suffixSalt@+=" $(< @out@/nix-support/libcxx-cxxflags)" -fi - -if [ -e @out@/nix-support/libcxx-ldflags ]; then - NIX_CXXSTDLIB_LINK_@suffixSalt@+=" $(< @out@/nix-support/libcxx-ldflags)" -fi - -if [ -e @out@/nix-support/gnat-cflags ]; then - NIX_GNATFLAGS_COMPILE_@suffixSalt@="$(< @out@/nix-support/gnat-cflags) $NIX_GNATFLAGS_COMPILE_@suffixSalt@" -fi - -if [ -e @out@/nix-support/cc-ldflags ]; then - NIX_LDFLAGS_@suffixSalt@+=" $(< @out@/nix-support/cc-ldflags)" -fi - -if [ -e @out@/nix-support/cc-cflags-before ]; then - NIX_CFLAGS_COMPILE_BEFORE_@suffixSalt@="$(< @out@/nix-support/cc-cflags-before) $NIX_CFLAGS_COMPILE_BEFORE_@suffixSalt@" -fi - -# Only add darwin min version flag if a default darwin min version is set, -# which is a signal that we're targetting darwin. -if [ "@darwinMinVersion@" ]; then - mangleVarSingle @darwinMinVersionVariable@ ${role_suffixes[@]+"${role_suffixes[@]}"} - - NIX_CFLAGS_COMPILE_BEFORE_@suffixSalt@="-m@darwinPlatformForCC@-version-min=${@darwinMinVersionVariable@_@suffixSalt@:-@darwinMinVersion@} $NIX_CFLAGS_COMPILE_BEFORE_@suffixSalt@" -fi - -# That way forked processes will not extend these environment variables again. -export NIX_CC_WRAPPER_FLAGS_SET_@suffixSalt@=1 diff --git a/pkgs/build-support/cc-wrapper/add-gnat-extra-flags.sh b/pkgs/build-support/cc-wrapper/add-gnat-extra-flags.sh deleted file mode 100644 index ceff1e4..0000000 --- a/pkgs/build-support/cc-wrapper/add-gnat-extra-flags.sh +++ /dev/null @@ -1,23 +0,0 @@ -# See add-flags.sh in cc-wrapper for comments. -var_templates_list=( - NIX_GNATMAKE_CARGS -) - -accumulateRoles - -for var in "${var_templates_list[@]}"; do - mangleVarList "$var" ${role_suffixes[@]+"${role_suffixes[@]}"} -done - -# `-B@out@/bin' forces cc to use wrapped as instead of the system one. -NIX_GNATMAKE_CARGS_@suffixSalt@="$NIX_GNATMAKE_CARGS_@suffixSalt@ -B@out@/bin/" - -# Only add darwin min version flag if a default darwin min version is set, -# which is a signal that we're targetting darwin. -if [ "@darwinMinVersion@" ]; then - mangleVarSingle @darwinMinVersionVariable@ ${role_suffixes[@]+"${role_suffixes[@]}"} - - NIX_GNATMAKE_CARGS_@suffixSalt@="-m@darwinPlatformForCC@-version-min=${@darwinMinVersionVariable@_@suffixSalt@:-@darwinMinVersion@} $NIX_GNATMAKE_CARGS_@suffixSalt@" -fi - -export NIX_GNAT_WRAPPER_EXTRA_FLAGS_SET_@suffixSalt@=1 diff --git a/pkgs/build-support/cc-wrapper/add-hardening.sh b/pkgs/build-support/cc-wrapper/add-hardening.sh deleted file mode 100644 index ef166e2..0000000 --- a/pkgs/build-support/cc-wrapper/add-hardening.sh +++ /dev/null @@ -1,126 +0,0 @@ -declare -a hardeningCFlagsAfter=() -declare -a hardeningCFlagsBefore=() - -declare -A hardeningEnableMap=() - -# Intentionally word-split in case 'NIX_HARDENING_ENABLE' is defined in Nix. The -# array expansion also prevents undefined variables from causing trouble with -# `set -u`. -for flag in ${NIX_HARDENING_ENABLE_@suffixSalt@-}; do - hardeningEnableMap["$flag"]=1 -done - -# fortify3 implies fortify enablement - make explicit before -# we filter unsupported flags because unsupporting fortify3 -# doesn't mean we should unsupport fortify too -if [[ -n "${hardeningEnableMap[fortify3]-}" ]]; then - hardeningEnableMap["fortify"]=1 -fi - -# Remove unsupported flags. -for flag in @hardening_unsupported_flags@; do - unset -v "hardeningEnableMap[$flag]" - # fortify being unsupported implies fortify3 is unsupported - if [[ "$flag" = 'fortify' ]] ; then - unset -v "hardeningEnableMap['fortify3']" - fi -done - -# now make fortify and fortify3 mutually exclusive -if [[ -n "${hardeningEnableMap[fortify3]-}" ]]; then - unset -v "hardeningEnableMap['fortify']" -fi - -if (( "${NIX_DEBUG:-0}" >= 1 )); then - declare -a allHardeningFlags=(fortify fortify3 stackprotector pie pic strictoverflow format trivialautovarinit zerocallusedregs) - declare -A hardeningDisableMap=() - - # Determine which flags were effectively disabled so we can report below. - for flag in "${allHardeningFlags[@]}"; do - if [[ -z "${hardeningEnableMap[$flag]-}" ]]; then - hardeningDisableMap["$flag"]=1 - fi - done - - printf 'HARDENING: disabled flags:' >&2 - (( "${#hardeningDisableMap[@]}" )) && printf ' %q' "${!hardeningDisableMap[@]}" >&2 - echo >&2 - - if (( "${#hardeningEnableMap[@]}" )); then - echo 'HARDENING: Is active (not completely disabled with "all" flag)' >&2; - fi -fi - -for flag in "${!hardeningEnableMap[@]}"; do - case $flag in - fortify | fortify3) - # Use -U_FORTIFY_SOURCE to avoid warnings on toolchains that explicitly - # set -D_FORTIFY_SOURCE=0 (like 'clang -fsanitize=address'). - hardeningCFlagsBefore+=('-O2' '-U_FORTIFY_SOURCE') - # Unset any _FORTIFY_SOURCE values the command-line may have set before - # enforcing our own value, avoiding (potentially fatal) redefinition - # warnings - hardeningCFlagsAfter+=('-U_FORTIFY_SOURCE') - case $flag in - fortify) - if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling fortify >&2; fi - hardeningCFlagsAfter+=('-D_FORTIFY_SOURCE=2') - ;; - fortify3) - if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling fortify3 >&2; fi - hardeningCFlagsAfter+=('-D_FORTIFY_SOURCE=3') - ;; - *) - # Ignore unsupported. - ;; - esac - ;; - stackprotector) - if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling stackprotector >&2; fi - hardeningCFlagsBefore+=('-fstack-protector-strong' '--param' 'ssp-buffer-size=4') - ;; - pie) - # NB: we do not use `+=` here, because PIE flags must occur before any PIC flags - if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling CFlags -fPIE >&2; fi - hardeningCFlagsBefore=('-fPIE' "${hardeningCFlagsBefore[@]}") - if [[ ! (" ${params[*]} " =~ " -shared " || " ${params[*]} " =~ " -static ") ]]; then - if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling LDFlags -pie >&2; fi - hardeningCFlagsBefore=('-pie' "${hardeningCFlagsBefore[@]}") - fi - ;; - pic) - if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling pic >&2; fi - hardeningCFlagsBefore+=('-fPIC') - ;; - strictoverflow) - if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling strictoverflow >&2; fi - if (( @isClang@ )); then - # In Clang, -fno-strict-overflow only serves to set -fwrapv and is - # reported as an unused CLI argument if -fwrapv or -fno-wrapv is set - # explicitly, so we side step that by doing the conversion here. - # - # See: https://github.com/llvm/llvm-project/blob/llvmorg-16.0.6/clang/lib/Driver/ToolChains/Clang.cpp#L6315 - # - hardeningCFlagsBefore+=('-fwrapv') - else - hardeningCFlagsBefore+=('-fno-strict-overflow') - fi - ;; - trivialautovarinit) - if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling trivialautovarinit >&2; fi - hardeningCFlagsBefore+=('-ftrivial-auto-var-init=pattern') - ;; - format) - if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling format >&2; fi - hardeningCFlagsBefore+=('-Wformat' '-Wformat-security' '-Werror=format-security') - ;; - zerocallusedregs) - if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling zerocallusedregs >&2; fi - hardeningCFlagsBefore+=('-fzero-call-used-regs=used-gpr') - ;; - *) - # Ignore unsupported. Checked in Nix that at least *some* - # tool supports each flag. - ;; - esac -done diff --git a/pkgs/build-support/cc-wrapper/cc-wrapper.sh b/pkgs/build-support/cc-wrapper/cc-wrapper.sh deleted file mode 100644 index b8d170d..0000000 --- a/pkgs/build-support/cc-wrapper/cc-wrapper.sh +++ /dev/null @@ -1,261 +0,0 @@ -#! @shell@ -set -eu -o pipefail +o posix -shopt -s nullglob - -if (( "${NIX_DEBUG:-0}" >= 7 )); then - set -x -fi - -path_backup="$PATH" - -# That @-vars are substituted separately from bash evaluation makes -# shellcheck think this, and others like it, are useless conditionals. -# shellcheck disable=SC2157 -if [[ -n "@coreutils_bin@" && -n "@gnugrep_bin@" ]]; then - PATH="@coreutils_bin@/bin:@gnugrep_bin@/bin" -fi - -source @out@/nix-support/utils.bash - - -# Parse command line options and set several variables. -# For instance, figure out if linker flags should be passed. -# GCC prints annoying warnings when they are not needed. -dontLink=0 -nonFlagArgs=0 -cc1=0 -# shellcheck disable=SC2193 -[[ "@prog@" = *++ ]] && isCxx=1 || isCxx=0 -cxxInclude=1 -cxxLibrary=1 -cInclude=1 - -expandResponseParams "$@" - -declare -ag positionalArgs=() -declare -i n=0 -nParams=${#params[@]} -while (( "$n" < "$nParams" )); do - p=${params[n]} - p2=${params[n+1]:-} # handle `p` being last one - n+=1 - - case "$p" in - -[cSEM] | -MM) dontLink=1 ;; - -cc1) cc1=1 ;; - -nostdinc) cInclude=0 cxxInclude=0 ;; - -nostdinc++) cxxInclude=0 ;; - -nostdlib) cxxLibrary=0 ;; - -x*-header) dontLink=1 ;; # both `-x c-header` and `-xc-header` are accepted by clang - -xc++*) isCxx=1 ;; # both `-xc++` and `-x c++` are accepted by clang - -x) - case "$p2" in - *-header) dontLink=1 ;; - c++*) isCxx=1 ;; - esac - ;; - --) # Everything else is positional args! - # See: https://github.com/llvm/llvm-project/commit/ed1d07282cc9d8e4c25d585e03e5c8a1b6f63a74 - - # Any positional arg (i.e. any argument after `--`) will be - # interpreted as a "non flag" arg: - if [[ -v "params[$n]" ]]; then nonFlagArgs=1; fi - - positionalArgs=("${params[@]:$n}") - params=("${params[@]:0:$((n - 1))}") - break; - ;; - -?*) ;; - *) nonFlagArgs=1 ;; # Includes a solitary dash (`-`) which signifies standard input; it is not a flag - esac -done - -# If we pass a flag like -Wl, then gcc will call the linker unless it -# can figure out that it has to do something else (e.g., because of a -# "-c" flag). So if no non-flag arguments are given, don't pass any -# linker flags. This catches cases like "gcc" (should just print -# "gcc: no input files") and "gcc -v" (should print the version). -if [ "$nonFlagArgs" = 0 ]; then - dontLink=1 -fi - -# Optionally filter out paths not refering to the store. -if [[ "${NIX_ENFORCE_PURITY:-}" = 1 && -n "$NIX_STORE" ]]; then - kept=() - nParams=${#params[@]} - declare -i n=0 - while (( "$n" < "$nParams" )); do - p=${params[n]} - p2=${params[n+1]:-} # handle `p` being last one - n+=1 - - skipNext=false - path="" - case "$p" in - -[IL]/*) path=${p:2} ;; - -[IL] | -isystem) path=$p2 skipNext=true ;; - esac - - if [[ -n $path ]] && badPath "$path"; then - skip "$path" - $skipNext && n+=1 - continue - fi - - kept+=("$p") - done - # Old bash empty array hack - params=(${kept+"${kept[@]}"}) -fi - -# Flirting with a layer violation here. -if [ -z "${NIX_BINTOOLS_WRAPPER_FLAGS_SET_@suffixSalt@:-}" ]; then - source @bintools@/nix-support/add-flags.sh -fi - -# Put this one second so libc ldflags take priority. -if [ -z "${NIX_CC_WRAPPER_FLAGS_SET_@suffixSalt@:-}" ]; then - source @out@/nix-support/add-flags.sh -fi - -# Clear march/mtune=native -- they bring impurity. -if [ "$NIX_ENFORCE_NO_NATIVE_@suffixSalt@" = 1 ]; then - kept=() - # Old bash empty array hack - for p in ${params+"${params[@]}"}; do - if [[ "$p" = -m*=native ]]; then - skip "$p" - else - kept+=("$p") - fi - done - # Old bash empty array hack - params=(${kept+"${kept[@]}"}) -fi - -if [[ "$isCxx" = 1 ]]; then - if [[ "$cxxInclude" = 1 ]]; then - # - # The motivation for this comment is to explain the reason for appending - # the C++ stdlib to NIX_CFLAGS_COMPILE, which I initially thought should - # change and later realized it shouldn't in: - # - # https://github.com/NixOS/nixpkgs/pull/185569#issuecomment-1234959249 - # - # NIX_CFLAGS_COMPILE contains dependencies added using "-isystem", and - # NIX_CXXSTDLIB_COMPILE adds the C++ stdlib using "-isystem". Appending - # NIX_CXXSTDLIB_COMPILE to NIX_CLAGS_COMPILE emulates this part of the - # include lookup order from GCC/Clang: - # - # > 4. Directories specified with -isystem options are scanned in - # > left-to-right order. - # > 5. Standard system directories are scanned. - # > 6. Directories specified with -idirafter options are scanned - # > in left-to-right order. - # - # NIX_CXX_STDLIB_COMPILE acts as the "standard system directories" that - # are otherwise missing from CC in nixpkgs, so should be added last. - # - # This means that the C standard library should never be present inside - # NIX_CFLAGS_COMPILE, because it MUST come after the C++ stdlib. It is - # added automatically by cc-wrapper later using "-idirafter". - # - NIX_CFLAGS_COMPILE_@suffixSalt@+=" $NIX_CXXSTDLIB_COMPILE_@suffixSalt@" - fi - if [[ "$cxxLibrary" = 1 ]]; then - NIX_CFLAGS_LINK_@suffixSalt@+=" $NIX_CXXSTDLIB_LINK_@suffixSalt@" - fi -fi - -source @out@/nix-support/add-hardening.sh - -# Add the flags for the C compiler proper. -extraAfter=(${hardeningCFlagsAfter[@]+"${hardeningCFlagsAfter[@]}"} $NIX_CFLAGS_COMPILE_@suffixSalt@) -extraBefore=(${hardeningCFlagsBefore[@]+"${hardeningCFlagsBefore[@]}"} $NIX_CFLAGS_COMPILE_BEFORE_@suffixSalt@) - -if [ "$dontLink" != 1 ]; then - linkType=$(checkLinkType $NIX_LDFLAGS_BEFORE_@suffixSalt@ "${params[@]}" ${NIX_CFLAGS_LINK_@suffixSalt@:-} $NIX_LDFLAGS_@suffixSalt@) - - # Add the flags that should only be passed to the compiler when - # linking. - extraAfter+=($(filterRpathFlags "$linkType" $NIX_CFLAGS_LINK_@suffixSalt@)) - - # Add the flags that should be passed to the linker (and prevent - # `ld-wrapper' from adding NIX_LDFLAGS_@suffixSalt@ again). - for i in $(filterRpathFlags "$linkType" $NIX_LDFLAGS_BEFORE_@suffixSalt@); do - extraBefore+=("-Wl,$i") - done - if [[ "$linkType" == dynamic && -n "$NIX_DYNAMIC_LINKER_@suffixSalt@" ]]; then - extraBefore+=("-Wl,-dynamic-linker=$NIX_DYNAMIC_LINKER_@suffixSalt@") - fi - for i in $(filterRpathFlags "$linkType" $NIX_LDFLAGS_@suffixSalt@); do - if [ "${i:0:3}" = -L/ ]; then - extraAfter+=("$i") - else - extraAfter+=("-Wl,$i") - fi - done - export NIX_LINK_TYPE_@suffixSalt@=$linkType -fi - -if [[ -e @out@/nix-support/add-local-cc-cflags-before.sh ]]; then - source @out@/nix-support/add-local-cc-cflags-before.sh -fi - -# As a very special hack, if the arguments are just `-v', then don't -# add anything. This is to prevent `gcc -v' (which normally prints -# out the version number and returns exit code 0) from printing out -# `No input files specified' and returning exit code 1. -if [ "$*" = -v ]; then - extraAfter=() - extraBefore=() -fi - -# clang's -cc1 mode is not compatible with most options -# that we would pass. Rather than trying to pass only -# options that would work, let's just remove all of them. -if [ "$cc1" = 1 ]; then - extraAfter=() - extraBefore=() -fi - -# Finally, if we got any positional args, append them to `extraAfter` -# now: -if [[ "${#positionalArgs[@]}" -gt 0 ]]; then - extraAfter+=(-- "${positionalArgs[@]}") -fi - -# Optionally print debug info. -if (( "${NIX_DEBUG:-0}" >= 1 )); then - # Old bash workaround, see ld-wrapper for explanation. - echo "extra flags before to @prog@:" >&2 - printf " %q\n" ${extraBefore+"${extraBefore[@]}"} >&2 - echo "original flags to @prog@:" >&2 - printf " %q\n" ${params+"${params[@]}"} >&2 - echo "extra flags after to @prog@:" >&2 - printf " %q\n" ${extraAfter+"${extraAfter[@]}"} >&2 -fi - -PATH="$path_backup" -# Old bash workaround, see above. - -# if a cc-wrapper-hook exists, run it. -if [[ -e @out@/nix-support/cc-wrapper-hook ]]; then - compiler=@prog@ - source @out@/nix-support/cc-wrapper-hook -fi - -if (( "${NIX_CC_USE_RESPONSE_FILE:-@use_response_file_by_default@}" >= 1 )); then - responseFile=$(mktemp "${TMPDIR:-/tmp}/cc-params.XXXXXX") - trap 'rm -f -- "$responseFile"' EXIT - printf "%q\n" \ - ${extraBefore+"${extraBefore[@]}"} \ - ${params+"${params[@]}"} \ - ${extraAfter+"${extraAfter[@]}"} > "$responseFile" - @prog@ "@$responseFile" -else - exec @prog@ \ - ${extraBefore+"${extraBefore[@]}"} \ - ${params+"${params[@]}"} \ - ${extraAfter+"${extraAfter[@]}"} -fi diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix deleted file mode 100644 index 4adc1dc..0000000 --- a/pkgs/build-support/cc-wrapper/default.nix +++ /dev/null @@ -1,764 +0,0 @@ -# The Nixpkgs CC is not directly usable, since it doesn't know where -# the C library and standard header files are. Therefore the compiler -# produced by that package cannot be installed directly in a user -# environment and used from the command line. So we use a wrapper -# 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 - -# 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 - - # 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 - - # 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 - - # 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 -}: - -assert nativeTools -> !propagateDoc && nativePrefix != ""; -assert !nativeTools -> cc != null && coreutils != null && gnugrep != null; -assert !(nativeLibc && noLibc); -assert (noLibc || nativeLibc) == (libc == null); - -let - inherit (lib) - attrByPath - concatMapStrings - concatStringsSep - escapeShellArg - getBin - getDev - getLib - getName - getVersion - mapAttrsToList - optional - optionalAttrs - optionals - optionalString - removePrefix - replaceStrings - toList - versionAtLeast - ; - - inherit (stdenvNoCC) hostPlatform targetPlatform; - - includeFortifyHeaders' = if includeFortifyHeaders != null - then includeFortifyHeaders - else (targetPlatform.libc == "musl" && isGNU); - - # Prefix for binaries. Customarily ends with a dash separator. - # - # TODO(@Ericson2314) Make unconditional, or optional but always true by default. - targetPrefix = optionalString (targetPlatform != hostPlatform) (targetPlatform.config + "-"); - - ccVersion = getVersion cc; - ccName = removePrefix targetPrefix (getName cc); - - 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}"; - - # The wrapper scripts use 'cat' and 'grep', so we may need coreutils. - coreutils_bin = optionalString (!nativeTools) (getBin coreutils); - - # The "suffix salt" is a arbitrary string added in the end of env vars - # defined by cc-wrapper's hooks so that multiple cc-wrappers can be used - # 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; - - 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}"; - - # Analogously to cc_solib and gccForLibs_solib - libcxx_solib = "${getLib libcxx}/lib"; - - # The following two functions, `isGccArchSupported` and - # `isGccTuneSupported`, only handle those situations where a flag - # (`-march` or `-mtune`) is accepted by one compiler but rejected - # by another, and both compilers are relevant to nixpkgs. We are - # not trying to maintain a complete list of all flags accepted by - # all versions of all compilers ever in nixpkgs. - # - # The two main cases of interest are: - # - # - One compiler is gcc and the other is clang - # - One compiler is pkgs.gcc and the other is bootstrap-files.gcc - # -- 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 - 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-avx512 = versionAtLeast ccVersion "6.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"; - - # AMD - 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 - 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"; - icelake-client = versionAtLeast ccVersion "7.0"; - icelake-server = versionAtLeast ccVersion "7.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 - else - false; - - 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) - # 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) - else if targetPlatform.isPower then - # powerpc does not support -march - true - else if targetPlatform.isMips then - # for mips -mtune= takes the same values as -march - isGccArchSupported tune - else - false; - - # Clang does not support as many `-mtune=` values as gcc does; - # this function will return the best possible approximation of the - # provided `-mtune=` value, or `null` if none exists. - # - # 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; - - 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 []); - - darwinPlatformForCC = optionalString targetPlatform.isDarwin ( - if (targetPlatform.darwinPlatform == "macos" && isGNU) then "macosx" - else targetPlatform.darwinPlatform - ); - - darwinMinVersion = optionalString targetPlatform.isDarwin ( - targetPlatform.darwinMinVersion - ); - - darwinMinVersionVariable = optionalString targetPlatform.isDarwin - targetPlatform.darwinMinVersionVariable; -in - -assert includeFortifyHeaders' -> fortify-headers != null; - -# Ensure bintools matches -assert libc_bin == bintools.libc_bin; -assert libc_dev == bintools.libc_dev; -assert libc_lib == bintools.libc_lib; -assert nativeTools == bintools.nativeTools; -assert nativeLibc == bintools.nativeLibc; -assert nativePrefix == bintools.nativePrefix; - -stdenvNoCC.mkDerivation { - pname = targetPrefix - + (if name != "" then name else "${ccName}-wrapper"); - version = optionalString (cc != null) ccVersion; - - preferLocalBuild = true; - - outputs = [ "out" ] ++ optionals propagateDoc [ "man" "info" ]; - - passthru = { - inherit targetPrefix suffixSalt; - # "cc" is the generic name for a C compiler, but there is no one for package - # providing the linker and related tools. The two we use now are GNU - # 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; - - emacsBufferSetup = pkgs: '' - ; We should handle propagation here too - (mapc - (lambda (arg) - (when (file-directory-p (concat arg "/include")) - (setenv "NIX_CFLAGS_COMPILE_${suffixSalt}" (concat (getenv "NIX_CFLAGS_COMPILE_${suffixSalt}") " -isystem " arg "/include")))) - '(${concatStringsSep " " (map (pkg: "\"${pkg}\"") pkgs)})) - ''; - - # Expose expand-response-params we are /actually/ using. In stdenv - # bootstrapping, expand-response-params usually comes from an earlier stage, - # so it is important to expose this for reference checking. - inherit expand-response-params; - - inherit nixSupport; - - inherit defaultHardeningFlags; - }; - - dontBuild = true; - dontConfigure = true; - enableParallelBuilding = true; - - unpackPhase = '' - src=$PWD - ''; - - wrapper = ./cc-wrapper.sh; - - installPhase = - '' - mkdir -p $out/bin $out/nix-support - - wrap() { - local dst="$1" - local wrapper="$2" - export prog="$3" - export use_response_file_by_default=${if isClang && !isCcache then "1" else "0"} - substituteAll "$wrapper" "$out/bin/$dst" - chmod +x "$out/bin/$dst" - } - '' - - + (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="${cc}/bin" - '') - - # Create symlinks to everything in the bintools wrapper. - + '' - for bbin in $bintools/bin/*; do - mkdir -p "$out/bin" - ln -s "$bbin" "$out/bin/$(basename $bbin)" - done - '' - - # We export environment variables pointing to the wrapped nonstandard - # cmds, lest some lousy configure script use those to guess compiler - # version. - + '' - export named_cc=${targetPrefix}cc - export named_cxx=${targetPrefix}c++ - - if [ -e $ccPath/${targetPrefix}gcc ]; then - wrap ${targetPrefix}gcc $wrapper $ccPath/${targetPrefix}gcc - ln -s ${targetPrefix}gcc $out/bin/${targetPrefix}cc - export named_cc=${targetPrefix}gcc - export named_cxx=${targetPrefix}g++ - elif [ -e $ccPath/clang ]; then - wrap ${targetPrefix}clang $wrapper $ccPath/clang - ln -s ${targetPrefix}clang $out/bin/${targetPrefix}cc - export named_cc=${targetPrefix}clang - export named_cxx=${targetPrefix}clang++ - fi - - if [ -e $ccPath/${targetPrefix}g++ ]; then - wrap ${targetPrefix}g++ $wrapper $ccPath/${targetPrefix}g++ - ln -s ${targetPrefix}g++ $out/bin/${targetPrefix}c++ - elif [ -e $ccPath/clang++ ]; then - wrap ${targetPrefix}clang++ $wrapper $ccPath/clang++ - ln -s ${targetPrefix}clang++ $out/bin/${targetPrefix}c++ - fi - - if [ -e $ccPath/${targetPrefix}cpp ]; then - wrap ${targetPrefix}cpp $wrapper $ccPath/${targetPrefix}cpp - elif [ -e $ccPath/cpp ]; then - wrap ${targetPrefix}cpp $wrapper $ccPath/cpp - fi - '' - - # No need to wrap gnat, gnatkr, gnatname or gnatprep; we can just symlink them in - + optionalString cc.langAda or false '' - for cmd in gnatbind gnatchop gnatclean gnatlink gnatls gnatmake; do - wrap ${targetPrefix}$cmd ${./gnat-wrapper.sh} $ccPath/${targetPrefix}$cmd - done - - for cmd in gnat gnatkr gnatname gnatprep; do - ln -s $ccPath/${targetPrefix}$cmd $out/bin/${targetPrefix}$cmd - done - - # this symlink points to the unwrapped gnat's output "out". It is used by - # our custom gprconfig compiler description to find GNAT's ada runtime. See - # ../../development/ada-modules/gprbuild/{boot.nix, nixpkgs-gnat.xml} - ln -sf ${cc} $out/nix-support/gprconfig-gnat-unwrapped - '' - - + optionalString cc.langD or false '' - wrap ${targetPrefix}gdc $wrapper $ccPath/${targetPrefix}gdc - '' - - + optionalString cc.langFortran or false '' - wrap ${targetPrefix}gfortran $wrapper $ccPath/${targetPrefix}gfortran - ln -sv ${targetPrefix}gfortran $out/bin/${targetPrefix}g77 - ln -sv ${targetPrefix}gfortran $out/bin/${targetPrefix}f77 - export named_fc=${targetPrefix}gfortran - '' - - + optionalString cc.langJava or false '' - wrap ${targetPrefix}gcj $wrapper $ccPath/${targetPrefix}gcj - '' - - + optionalString cc.langGo or false '' - wrap ${targetPrefix}gccgo $wrapper $ccPath/${targetPrefix}gccgo - wrap ${targetPrefix}go ${./go-wrapper.sh} $ccPath/${targetPrefix}go - ''; - - strictDeps = true; - 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 - ++ 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 - ''; - }); - - postFixup = - # Ensure flags files exists, as some other programs cat them. (That these - # are considered an exposed interface is a bit dubious, but fine for now.) - '' - touch "$out/nix-support/cc-cflags" - touch "$out/nix-support/cc-ldflags" - '' - - # Backwards compatibility for packages expecting this file, e.g. with - # `$NIX_CC/nix-support/dynamic-linker`. - # - # TODO(@Ericson2314): Remove this after stable release and force - # everyone to refer to bintools-wrapper directly. - + '' - if [[ -f "$bintools/nix-support/dynamic-linker" ]]; then - ln -s "$bintools/nix-support/dynamic-linker" "$out/nix-support" - fi - if [[ -f "$bintools/nix-support/dynamic-linker-m32" ]]; then - ln -s "$bintools/nix-support/dynamic-linker-m32" "$out/nix-support" - fi - '' - - ## - ## GCC libs for non-GCC support - ## - + optionalString (useGccForLibs && isClang) '' - - echo "-B${gccForLibs}/lib/gcc/${targetPlatform.config}/${gccForLibs.version}" >> $out/nix-support/cc-cflags - '' - + optionalString useGccForLibs '' - echo "-L${gccForLibs}/lib/gcc/${targetPlatform.config}/${gccForLibs.version}" >> $out/nix-support/cc-ldflags - echo "-L${gccForLibs_solib}/lib" >> $out/nix-support/cc-ldflags - '' - - # TODO We would like to connect this to `useGccForLibs`, but we cannot yet - # because `libcxxStdenv` on linux still needs this. Maybe someday we'll - # always set `useLLVM` on Darwin, and maybe also break down `useLLVM` into - # fine-grained use flags (libgcc vs compiler-rt, ld.lld vs legacy, libc++ - # 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 - - # 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 - ## - - # The "-B${libc_lib}/lib/" flag is a quick hack to force gcc to link - # against the crt1.o from our own glibc, rather than the one in - # /usr/lib. (This is only an issue when using an `impure' - # compiler/linker, i.e., one that searches /usr/lib and so on.) - # - # Unfortunately, setting -B appears to override the default search - # path. Thus, the gcc-specific "../includes-fixed" directory is - # now longer searched and glibc's header fails to - # 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 - '' + '' - - 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 - ## - - # 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" - '' - # 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 - # https://github.com/NixOS/nixpkgs/pull/209870#issuecomment-1500550903) - + optionalString (libcxx == null && isClang && (useGccForLibs && gccForLibs.langCC or false)) '' - for dir in ${gccForLibs}/include/c++/*; do - echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags - done - for dir in ${gccForLibs}/include/c++/*/${targetPlatform.config}; do - echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags - done - '' - + optionalString (libcxx.isLLVM or false) '' - echo "-isystem ${getDev libcxx}/include/c++/v1" >> $out/nix-support/libcxx-cxxflags - echo "-stdlib=libc++" >> $out/nix-support/libcxx-ldflags - '' - - ## - ## Initial CFLAGS - ## - - # GCC shows ${cc_solib}/lib in `gcc -print-search-dirs', but not - # ${cc_solib}/lib64 (even though it does actually search there...).. - # This confuses libtool. So add it to the compiler tool search - # path explicitly. - + optionalString (!nativeTools) '' - if [ -e "${cc_solib}/lib64" -a ! -L "${cc_solib}/lib64" ]; then - ccLDFlags+=" -L${cc_solib}/lib64" - ccCFlags+=" -B${cc_solib}/lib64" - fi - ccLDFlags+=" -L${cc_solib}/lib" - ccCFlags+=" -B${cc_solib}/lib" - - '' + optionalString cc.langAda or false '' - touch "$out/nix-support/gnat-cflags" - touch "$out/nix-support/gnat-ldflags" - basePath=$(echo $cc/lib/*/*/*) - ccCFlags+=" -B$basePath -I$basePath/adainclude" - 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)) '' - echo " -L${libcxx_solib}" >> $out/nix-support/cc-ldflags - '' - - ## - ## Man page and info support - ## - + optionalString propagateDoc '' - ln -s ${cc.man} $man - ln -s ${cc.info} $info - '' + optionalString (cc.langD or cc.langJava or false) '' - echo "-B${zlib}${zlib.libdir or "/lib/"}" >> $out/nix-support/libc-cflags - '' - - ## - ## Hardening support - ## - + '' - export hardening_unsupported_flags="${concatStringsSep " " ccHardeningUnsupportedFlags}" - '' - - # Machine flags. These are necessary to support - - # TODO: We should make a way to support miscellaneous machine - # flags and other gcc flags as well. - - # Always add -march based on cpu in triple. Sometimes there is a - # discrepency (x86_64 vs. x86-64), so we provide an "arch" arg in - # that case. - # - # 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 - '' - - # -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 - '' - - # -mfloat-abi only matters on arm32 but we set it here - # unconditionally just in case. If the abi specifically sets hard - # vs. soft floats we use it here. - + optionalString (targetPlatform ? gcc.float-abi) '' - echo "-mfloat-abi=${targetPlatform.gcc.float-abi}" >> $out/nix-support/cc-cflags-before - '' - + optionalString (targetPlatform ? gcc.fpu) '' - echo "-mfpu=${targetPlatform.gcc.fpu}" >> $out/nix-support/cc-cflags-before - '' - + optionalString (targetPlatform ? gcc.mode) '' - echo "-mmode=${targetPlatform.gcc.mode}" >> $out/nix-support/cc-cflags-before - '' - + 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 - '') - - # TODO: categorize these and figure out a better place for them - + optionalString targetPlatform.isWindows '' - hardening_unsupported_flags+=" pic" - '' + optionalString targetPlatform.isMinGW '' - hardening_unsupported_flags+=" stackprotector fortify" - '' + optionalString targetPlatform.isAvr '' - hardening_unsupported_flags+=" stackprotector pic" - '' + optionalString (targetPlatform.libc == "newlib" || targetPlatform.libc == "newlib-nano") '' - hardening_unsupported_flags+=" stackprotector fortify pie pic" - '' + optionalString (targetPlatform.libc == "musl" && targetPlatform.isx86_32) '' - hardening_unsupported_flags+=" stackprotector" - '' + optionalString targetPlatform.isNetBSD '' - hardening_unsupported_flags+=" stackprotector fortify" - '' + optionalString cc.langAda or false '' - hardening_unsupported_flags+=" format stackprotector strictoverflow" - '' + optionalString cc.langD or false '' - hardening_unsupported_flags+=" format" - '' + optionalString cc.langFortran or false '' - hardening_unsupported_flags+=" format" - '' + optionalString targetPlatform.isWasm '' - hardening_unsupported_flags+=" stackprotector fortify pie pic" - '' + optionalString targetPlatform.isMicroBlaze '' - hardening_unsupported_flags+=" stackprotector" - '' - - + optionalString (libc != null && targetPlatform.isAvr) '' - for isa in avr5 avr3 avr4 avr6 avr25 avr31 avr35 avr51 avrxmega2 avrxmega4 avrxmega5 avrxmega6 avrxmega7 tiny-stack; do - echo "-B${getLib libc}/avr/lib/$isa" >> $out/nix-support/libc-crt1-cflags - done - '' - - + optionalString targetPlatform.isDarwin '' - echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/cc-cflags - '' - - + optionalString targetPlatform.isAndroid '' - echo "-D__ANDROID_API__=${targetPlatform.sdkVer}" >> $out/nix-support/cc-cflags - '' - - # There are a few tools (to name one libstdcxx5) which do not work - # well with multi line flags, so make the flags single line again - + '' - for flags in "$out/nix-support"/*flags*; do - substituteInPlace "$flags" --replace $'\n' ' ' - done - - substituteAll ${./add-flags.sh} $out/nix-support/add-flags.sh - substituteAll ${./add-hardening.sh} $out/nix-support/add-hardening.sh - substituteAll ${../wrapper-common/utils.bash} $out/nix-support/utils.bash - '' - - + optionalString cc.langAda or false '' - substituteAll ${./add-gnat-extra-flags.sh} $out/nix-support/add-gnat-extra-flags.sh - '' - - ## - ## General Clang support - ## Needs to go after ^ because the for loop eats \n and makes this file an invalid script - ## - + 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 defaultTarget=${targetPlatform.config} - substituteAll ${./add-clang-cc-cflags-before.sh} $out/nix-support/add-local-cc-cflags-before.sh - '' - - ## - ## Extra custom steps - ## - + extraBuildCommands - + concatStringsSep "; " - (mapAttrsToList - (name: value: "echo ${toString value} >> $out/nix-support/${name}") - nixSupport); - - - env = { - inherit isClang; - - # for substitution in utils.bash - # TODO(@sternenseemann): invent something cleaner than passing in "" in case of absence - expandResponseParams = "${expand-response-params}/bin/expand-response-params"; - # TODO(@sternenseemann): rename env var via stdenv rebuild - shell = getBin runtimeShell + runtimeShell.shellPath or ""; - gnugrep_bin = optionalString (!nativeTools) gnugrep; - # stdenv.cc.cc should not be null and we have nothing better for now. - # if the native impure bootstrap is gotten rid of this can become `inherit cc;` again. - cc = optionalString (!nativeTools) cc; - wrapperName = "CC_WRAPPER"; - inherit suffixSalt coreutils_bin bintools; - inherit libc_bin libc_dev libc_lib; - inherit darwinPlatformForCC darwinMinVersion darwinMinVersionVariable; - default_hardening_flags_str = builtins.toString defaultHardeningFlags; - }; - - 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)"; - priority = 10; - mainProgram = if name != "" then name else ccName; - }; -} diff --git a/pkgs/build-support/cc-wrapper/fortran-hook.sh b/pkgs/build-support/cc-wrapper/fortran-hook.sh deleted file mode 100644 index 02da7fd..0000000 --- a/pkgs/build-support/cc-wrapper/fortran-hook.sh +++ /dev/null @@ -1,10 +0,0 @@ -getTargetRole -getTargetRoleWrapper - -export FC${role_post}=@named_fc@ - -# If unset, assume the default hardening flags. -: ${NIX_HARDENING_ENABLE="@default_hardening_flags_str@"} -export NIX_HARDENING_ENABLE - -unset -v role_post diff --git a/pkgs/build-support/cc-wrapper/gnat-wrapper.sh b/pkgs/build-support/cc-wrapper/gnat-wrapper.sh deleted file mode 100644 index e75eb3e..0000000 --- a/pkgs/build-support/cc-wrapper/gnat-wrapper.sh +++ /dev/null @@ -1,182 +0,0 @@ -#! @shell@ -set -eu -o pipefail +o posix -shopt -s nullglob - -if (( "${NIX_DEBUG:-0}" >= 7 )); then - set -x -fi - -path_backup="$PATH" - -# That @-vars are substituted separately from bash evaluation makes -# shellcheck think this, and others like it, are useless conditionals. -# shellcheck disable=SC2157 -if [[ -n "@coreutils_bin@" && -n "@gnugrep_bin@" ]]; then - PATH="@coreutils_bin@/bin:@gnugrep_bin@/bin" -fi - -cInclude=0 - -source @out@/nix-support/utils.bash - -# Flirting with a layer violation here. -if [ -z "${NIX_BINTOOLS_WRAPPER_FLAGS_SET_@suffixSalt@:-}" ]; then - source @bintools@/nix-support/add-flags.sh -fi - -# Put this one second so libc ldflags take priority. -if [ -z "${NIX_CC_WRAPPER_FLAGS_SET_@suffixSalt@:-}" ]; then - source @out@/nix-support/add-flags.sh -fi - -if [ -z "${NIX_GNAT_WRAPPER_EXTRA_FLAGS_SET_@suffixSalt@:-}" ]; then - source @out@/nix-support/add-gnat-extra-flags.sh -fi - -# Parse command line options and set several variables. -# For instance, figure out if linker flags should be passed. -# GCC prints annoying warnings when they are not needed. -dontLink=0 -nonFlagArgs=0 -# shellcheck disable=SC2193 - -expandResponseParams "$@" -declare -i n=0 -nParams=${#params[@]} -while (( "$n" < "$nParams" )); do - p=${params[n]} - p2=${params[n+1]:-} # handle `p` being last one - if [ "$p" = -c ]; then - dontLink=1 - elif [ "$p" = -S ]; then - dontLink=1 - elif [ "$p" = -E ]; then - dontLink=1 - elif [ "$p" = -E ]; then - dontLink=1 - elif [ "$p" = -M ]; then - dontLink=1 - elif [ "$p" = -MM ]; then - dontLink=1 - elif [[ "$p" = -x && "$p2" = *-header ]]; then - dontLink=1 - elif [[ "$p" != -?* ]]; then - # A dash alone signifies standard input; it is not a flag - nonFlagArgs=1 - fi - n+=1 -done - -# If we pass a flag like -Wl, then gcc will call the linker unless it -# can figure out that it has to do something else (e.g., because of a -# "-c" flag). So if no non-flag arguments are given, don't pass any -# linker flags. This catches cases like "gcc" (should just print -# "gcc: no input files") and "gcc -v" (should print the version). -if [ "$nonFlagArgs" = 0 ]; then - dontLink=1 -fi - -# Optionally filter out paths not refering to the store. -if [[ "${NIX_ENFORCE_PURITY:-}" = 1 && -n "$NIX_STORE" ]]; then - rest=() - nParams=${#params[@]} - declare -i n=0 - while (( "$n" < "$nParams" )); do - p=${params[n]} - p2=${params[n+1]:-} # handle `p` being last one - if [ "${p:0:3}" = -L/ ] && badPath "${p:2}"; then - skip "${p:2}" - elif [ "$p" = -L ] && badPath "$p2"; then - n+=1; skip "$p2" - elif [ "${p:0:3}" = -I/ ] && badPath "${p:2}"; then - skip "${p:2}" - elif [ "$p" = -I ] && badPath "$p2"; then - n+=1; skip "$p2" - elif [ "${p:0:4}" = -aI/ ] && badPath "${p:3}"; then - skip "${p:3}" - elif [ "$p" = -aI ] && badPath "$p2"; then - n+=1; skip "$p2" - elif [ "${p:0:4}" = -aO/ ] && badPath "${p:3}"; then - skip "${p:3}" - elif [ "$p" = -aO ] && badPath "$p2"; then - n+=1; skip "$p2" - elif [ "$p" = -isystem ] && badPath "$p2"; then - n+=1; skip "$p2" - else - rest+=("$p") - fi - n+=1 - done - # Old bash empty array hack - params=(${rest+"${rest[@]}"}) -fi - - -# Clear march/mtune=native -- they bring impurity. -if [ "$NIX_ENFORCE_NO_NATIVE_@suffixSalt@" = 1 ]; then - rest=() - # Old bash empty array hack - for p in ${params+"${params[@]}"}; do - if [[ "$p" = -m*=native ]]; then - skip "$p" - else - rest+=("$p") - fi - done - # Old bash empty array hack - params=(${rest+"${rest[@]}"}) -fi - -case "$(basename $0)x" in - "gnatbindx") - extraBefore=() - extraAfter=($NIX_GNATFLAGS_COMPILE_@suffixSalt@) - ;; - "gnatchopx") - extraBefore=("--GCC=@out@/bin/gcc") - extraAfter=() - ;; - "gnatcleanx") - extraBefore=($NIX_GNATFLAGS_COMPILE_@suffixSalt@) - extraAfter=() - ;; - "gnatlinkx") - extraBefore=() - extraAfter=("--GCC=@out@/bin/gcc") - ;; - "gnatlsx") - extraBefore=() - extraAfter=($NIX_GNATFLAGS_COMPILE_@suffixSalt@) - ;; - "gnatmakex") - extraBefore=("--GNATBIND=@out@/bin/gnatbind" "--GNATLINK=@out@/bin/gnatlink") - extraAfter=($NIX_GNATFLAGS_COMPILE_@suffixSalt@ -cargs $NIX_GNATMAKE_CARGS_@suffixSalt@) - ;; -esac - -# As a very special hack, if the arguments are just `-v', then don't -# add anything. This is to prevent `gcc -v' (which normally prints -# out the version number and returns exit code 0) from printing out -# `No input files specified' and returning exit code 1. -if [ "$*" = -v ]; then - extraAfter=() - extraBefore=() -fi - -# Optionally print debug info. -if (( "${NIX_DEBUG:-0}" >= 1 )); then - # Old bash workaround, see ld-wrapper for explanation. - echo "extra flags before to @prog@:" >&2 - printf " %q\n" ${extraBefore+"${extraBefore[@]}"} >&2 - echo "original flags to @prog@:" >&2 - printf " %q\n" ${params+"${params[@]}"} >&2 - echo "extra flags after to @prog@:" >&2 - printf " %q\n" ${extraAfter+"${extraAfter[@]}"} >&2 -fi - -PATH="$path_backup" -# Old bash workaround, see above. -exec @prog@ \ - ${extraBefore+"${extraBefore[@]}"} \ - ${params+"${params[@]}"} \ - ${extraAfter+"${extraAfter[@]}"} diff --git a/pkgs/build-support/cc-wrapper/go-wrapper.sh b/pkgs/build-support/cc-wrapper/go-wrapper.sh deleted file mode 100644 index 5dfc5d2..0000000 --- a/pkgs/build-support/cc-wrapper/go-wrapper.sh +++ /dev/null @@ -1,11 +0,0 @@ -#! @shell@ -set -eu -o pipefail +o posix -shopt -s nullglob - -if (( "${NIX_DEBUG:-0}" >= 7 )); then - set -x -fi - -export GCCGO="@out@/bin/gccgo" - -exec @prog@ "$@" diff --git a/pkgs/build-support/cc-wrapper/setup-hook.sh b/pkgs/build-support/cc-wrapper/setup-hook.sh deleted file mode 100644 index 33a2b62..0000000 --- a/pkgs/build-support/cc-wrapper/setup-hook.sh +++ /dev/null @@ -1,118 +0,0 @@ -# CC Wrapper hygiene -# -# For at least cross compilation, we need to depend on multiple cc-wrappers at -# once---specifically up to one per sort of dependency. This follows from having -# different tools targeting different platforms, and different flags for those -# tools. For example: -# -# # Flags for compiling (whether or not linking) C code for the... -# NIX_CFLAGS_COMPILE_FOR_BUILD # ...build platform -# NIX_CFLAGS_COMPILE # ...host platform -# NIX_CFLAGS_COMPILE_FOR_TARGET # ...target platform -# -# Notice that these platforms are the 3 *relative* to the package using -# cc-wrapper, not absolute like `x86_64-pc-linux-gnu`. -# -# The simplest solution would be to have separate cc-wrappers per (3 intended -# use-cases * n absolute concrete platforms). For the use-case axis, we would -# @-splice in 'BUILD_' '' 'TARGET_' to use the write environment variables when -# building the cc-wrapper, and likewise prefix the binaries' names so they didn't -# clobber each other on the PATH. But the need for 3x cc-wrappers, along with -# non-standard name prefixes, is annoying and liable to break packages' build -# systems. -# -# Instead, we opt to have just one cc-wrapper per absolute platform. Matching -# convention, the binaries' names can just be prefixed with their target -# platform. On the other hand, that means packages will depend on not just -# multiple cc-wrappers, but the exact same cc-wrapper derivation multiple ways. -# That means the exact same cc-wrapper derivation must be able to avoid -# conflicting with itself, despite the fact that `setup-hook.sh`, the `addCvars` -# function, and `add-flags.sh` are all communicating with each other with -# environment variables. Yuck. -# -# The basic strategy is: -# -# - Everyone exclusively *adds information* to relative-platform-specific -# environment variables, like `NIX_CFLAGS_COMPILE_FOR_TARGET`, to communicate -# with the wrapped binaries. -# -# - The wrapped binaries will exclusively *read* cc-wrapper-derivation-specific -# environment variables distinguished with with `suffixSalt`, like -# `NIX_CFLAGS_COMPILE_@suffixSalt@`. -# -# - `add-flags`, beyond its old task of reading extra flags stuck inside the -# cc-wrapper derivation, will convert the relative-platform-specific -# variables to cc-wrapper-derivation-specific variables. This conversion is -# the only time all but one of the cc-wrapper-derivation-specific variables -# are set. -# -# This ensures the flow of information is exclusive from -# relative-platform-specific variables to cc-wrapper-derivation-specific -# variables. This allows us to support the general case of a many--many relation -# between relative platforms and cc-wrapper derivations. -# -# For more details, read the individual files where the mechanisms used to -# accomplish this will be individually documented. - -# Skip setup hook if we're neither a build-time dep, nor, temporarily, doing a -# native compile. -# -# TODO(@Ericson2314): No native exception -[[ -z ${strictDeps-} ]] || (( "$hostOffset" < 0 )) || return 0 - -# It's fine that any other cc-wrapper will redefine this. Bash functions close -# over no state, and there's no @-substitutions within, so any redefined -# function is guaranteed to be exactly the same. -ccWrapper_addCVars () { - # See ../setup-hooks/role.bash - local role_post - getHostRoleEnvHook - - if [ -d "$1/include" ]; then - export NIX_CFLAGS_COMPILE${role_post}+=" -isystem $1/include" - fi - - if [ -d "$1/Library/Frameworks" ]; then - export NIX_CFLAGS_COMPILE${role_post}+=" -iframework $1/Library/Frameworks" - fi -} - -# See ../setup-hooks/role.bash -getTargetRole -getTargetRoleWrapper - -# We use the `targetOffset` to choose the right env hook to accumulate the right -# sort of deps (those with that offset). -addEnvHooks "$targetOffset" ccWrapper_addCVars - -# Note 1: these come *after* $out in the PATH (see setup.sh). -# Note 2: phase separation makes this look useless to shellcheck. - -# shellcheck disable=SC2157 -if [ -n "@cc@" ]; then - addToSearchPath _PATH @cc@/bin -fi - -# shellcheck disable=SC2157 -if [ -n "@libc_bin@" ]; then - addToSearchPath _PATH @libc_bin@/bin -fi - -# shellcheck disable=SC2157 -if [ -n "@coreutils_bin@" ]; then - addToSearchPath _PATH @coreutils_bin@/bin -fi - -# Export tool environment variables so various build systems use the right ones. - -export NIX_CC${role_post}=@out@ - -export CC${role_post}=@named_cc@ -export CXX${role_post}=@named_cxx@ - -# If unset, assume the default hardening flags. -: ${NIX_HARDENING_ENABLE="@default_hardening_flags_str@"} -export NIX_HARDENING_ENABLE - -# No local scope in sourced file -unset -v role_post diff --git a/pkgs/build-support/checkpoint-build.nix b/pkgs/build-support/checkpoint-build.nix deleted file mode 100644 index f1202ca..0000000 --- a/pkgs/build-support/checkpoint-build.nix +++ /dev/null @@ -1,95 +0,0 @@ -{ lib -, buildPackages -}: - -let - # rudimentary support for cross-compiling - # see: https://github.com/NixOS/nixpkgs/pull/279487#discussion_r1444449726 - inherit (buildPackages) - mktemp - rsync - ; -in - -rec { - /* Prepare a derivation for local builds. - * - * This function prepares checkpoint builds by storing - * the build output and the sources for cross checking. - * The build output can be used later to allow checkpoint builds - * by passing the derivation output to the `mkCheckpointBuild` function. - * - * To build a project with checkpoints, follow these steps: - * - run `prepareCheckpointBuild` on the desired derivation, e.g. - * checkpointArtifacts = prepareCheckpointBuild virtualbox; - * - change something you want in the sources of the package, - * e.g. using source override: - * changedVBox = pkgs.virtuabox.overrideAttrs (old: { - * src = path/to/vbox/sources; - * }; - * - 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/ - ''; - - # 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; - }); - - /* Build a derivation based on the checkpoint output generated by - * the `prepareCheckpointBuild` function. - * - * Usage: - * let - * 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" - ''; - }); - - 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 deleted file mode 100644 index f2aa496..0000000 --- a/pkgs/build-support/closure-info.nix +++ /dev/null @@ -1,42 +0,0 @@ -# This derivation builds two files containing information about the -# closure of 'rootPaths': $out/store-paths contains the paths in the -# closure, and $out/registration contains a file suitable for use with -# "nix-store --load-db" and "nix-store --register-validity -# --hash-given". - -{ stdenv, coreutils, jq }: - -{ rootPaths }: - -assert builtins.langVersion >= 5; - -stdenv.mkDerivation { - name = "closure-info"; - - __structuredAttrs = true; - - exportReferencesGraph.closure = rootPaths; - - preferLocalBuild = true; - - nativeBuildInputs = [ coreutils jq ]; - - empty = rootPaths == []; - - buildCommand = - '' - out=''${outputs[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 - - ''; -} diff --git a/pkgs/build-support/coq/default.nix b/pkgs/build-support/coq/default.nix deleted file mode 100644 index 6036d0f..0000000 --- a/pkgs/build-support/coq/default.nix +++ /dev/null @@ -1,155 +0,0 @@ -{ lib, stdenv, coqPackages, coq, which, fetchzip }@args: - -let - lib = import ./extra-lib.nix { - inherit (args) lib; - }; - - inherit (lib) - concatStringsSep - flip - foldl - isFunction - isString - optional - optionalAttrs - optionals - optionalString - pred - remove - switch - versions - ; - - inherit (lib.attrsets) removeAttrs; - inherit (lib.strings) match; - - isGitHubDomain = d: match "^github.*" d != null; - isGitLabDomain = d: match "^gitlab.*" d != null; -in - -{ pname, - version ? null, - fetcher ? null, - owner ? "coq-community", - domain ? "github.com", - repo ? pname, - defaultVersion ? null, - releaseRev ? (v: v), - displayVersion ? {}, - release ? {}, - buildInputs ? [], - nativeBuildInputs ? [], - extraBuildInputs ? [], - extraNativeBuildInputs ? [], - overrideBuildInputs ? [], - overrideNativeBuildInputs ? [], - namePrefix ? [ "coq" ], - enableParallelBuilding ? true, - extraInstallFlags ? [], - setCOQBIN ? true, - mlPlugin ? false, - useMelquiondRemake ? null, - 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; } ({ - inherit release releaseRev; - 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"; - 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)" ]; - docdir-flags = switch 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 ({ - - name = prefix-name + (display-pkg pname "-" fetched.version); - - 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; - - 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) diff --git a/pkgs/build-support/coq/extra-lib.nix b/pkgs/build-support/coq/extra-lib.nix deleted file mode 100644 index 94de7c0..0000000 --- a/pkgs/build-support/coq/extra-lib.nix +++ /dev/null @@ -1,213 +0,0 @@ -{ lib }: - -let - inherit (lib) - all - concatStringsSep - findFirst - flip - getAttr - head - isFunction - length - recursiveUpdate - splitVersion - tail - take - versionAtLeast - versionOlder - zipListsWith - ; -in -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 { - - /* Get string of the first n parts of a version string. - - Example: - - truncate 2 "1.2.3-stuff" - => "1.2" - - - truncate 4 "1.2.3-stuff" - => "1.2.3.stuff" - */ - - inherit truncate; - - /* 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; - - /* 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 - - 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); - }; - - /* 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. - - Type: splitList :: (a -> bool) -> [a] -> [[a]] - - Example: - 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; - - 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; - false = p: false; - - /* 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"; } - ``` - */ - 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 deleted file mode 100644 index daed9fa..0000000 --- a/pkgs/build-support/coq/meta-fetch/default.nix +++ /dev/null @@ -1,95 +0,0 @@ -{ lib, stdenv, fetchzip }@args: - -let - lib = import ../extra-lib.nix { - inherit (args) lib; - }; - - inherit (lib) - attrNames - fakeSha256 - filter - findFirst - head - isAttrs - isPath - isString - last - length - optionalAttrs - pathExists - pred - sort - switch - switch-if - versionAtLeast - versions - ; - - 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 ; }; -in -{ - fetcher ? default-fetcher, - location, - 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 -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 - { - 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; - has-owner = length splitted > 1; - 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; - out = { - 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 deleted file mode 100644 index c99b8bb..0000000 --- a/pkgs/build-support/dart/build-dart-application/default.nix +++ /dev/null @@ -1,132 +0,0 @@ -{ 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 ? { } - -, 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 ? [ ] - # These come at the end of the command, useful to pass flags to the jit run -, 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 - # 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 - -, 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"'') -, ... -}@args: - -let - generators = callPackage ./generators.nix { inherit dart; } { buildDrvArgs = args; }; - - pubspecLockFile = builtins.toJSON pubspecLock; - 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; - - dependencies = - # Ideally, we'd only include the main dependencies and their transitive - # dependencies. - # - # The pubspec.lock file does not contain information about where - # transitive dependencies come from, though, and it would be weird to - # include the transitive dependencies of dev and override dependencies - # without including the dev and override dependencies themselves. - builtins.concatLists (builtins.attrValues pubspecLockData.dependencies); - - inherit (pubspecLockData) dependencySources; - }; - extraSetupCommands = extraPackageConfigSetup; - }; - - 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; - - outputs = [ "out" "pubcache" ] ++ args.outputs or [ ]; - - dartEntryPoints = - if (dartEntryPoints != null) - then writeText "entrypoints.json" (builtins.toJSON dartEntryPoints) - else null; - - 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; - - 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"); - - passAsFile = [ "pubspecLockFile" ]; - - passthru = { - pubspecLock = pubspecLockData; - } // (args.passthru or { }); - - 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"; -baseDerivation diff --git a/pkgs/build-support/dart/build-dart-application/generators.nix b/pkgs/build-support/dart/build-dart-application/generators.nix deleted file mode 100644 index f01a093..0000000 --- a/pkgs/build-support/dart/build-dart-application/generators.nix +++ /dev/null @@ -1,74 +0,0 @@ -{ lib -, stdenvNoCC -, dart -, dartHooks -, jq -, yq -, cacert -}: - -{ - # Arguments used in the derivation that builds the Dart package. - # 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 ? { } -, ... -}@args: - -# This is a derivation and setup hook that can be used to fetch dependencies for Dart projects. -# It is designed to be placed in the nativeBuildInputs of a derivation that builds a Dart package. -# Providing the buildDrvArgs argument is highly recommended. -let - buildDrvInheritArgNames = [ - "name" - "pname" - "version" - "src" - "sourceRoot" - "setSourceRoot" - "preUnpack" - "unpackPhase" - "unpackCmd" - "postUnpack" - "prePatch" - "patchPhase" - "patches" - "patchFlags" - "postPatch" - ]; - - 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"; - - nativeBuildInputs = drvArgs.nativeBuildInputs or [ ] ++ args.nativeBuildInputs or [ ] ++ [ jq yq ]; - - dontBuild = true; - - installPhase = '' - runHook preInstall - - packageName="$(yq --raw-output .name pubspec.yaml)" - jq --arg name "$packageName" '.packages |= . + [{ name: $name, rootUri: "../", packageUri: "lib/" }]' '${packageConfig}' > "$out" - ${extraSetupCommands} - - runHook postInstall - ''; - }); -in -{ - inherit - linkPackageConfig; -} diff --git a/pkgs/build-support/dart/build-dart-application/hooks/dart-build-hook.sh b/pkgs/build-support/dart/build-dart-application/hooks/dart-build-hook.sh deleted file mode 100644 index 23ebfbd..0000000 --- a/pkgs/build-support/dart/build-dart-application/hooks/dart-build-hook.sh +++ /dev/null @@ -1,34 +0,0 @@ -# shellcheck shell=bash - -# Outputs line-separated "${dest}\t${source}" -_getDartEntryPoints() { - if [ -n "$dartEntryPoints" ]; then - @jq@ -r '(to_entries | map(.key + "\t" + .value) | join("\n"))' "$dartEntryPoints" - else - # The pubspec executables section follows the pattern: - # : [source-file-name] - # Where source-file-name defaults to output-bin-name if omited - @yq@ -r '(.executables | to_entries | map("bin/" + .key + "\t" + "bin/" + (.value // .key) + ".dart") | join("\n"))' pubspec.yaml - fi -} - -dartBuildHook() { - echo "Executing dartBuildHook" - - runHook preBuild - - while IFS=$'\t' read -ra target; do - dest="${target[0]}" - src="${target[1]}" - eval "$dartCompileCommand" "$dartOutputType" \ - -o "$dest" "${dartCompileFlags[@]}" "$src" "${dartJitFlags[@]}" - done < <(_getDartEntryPoints) - - runHook postBuild - - echo "Finished dartBuildHook" -} - -if [ -z "${dontDartBuild-}" ] && [ -z "${buildPhase-}" ]; then - buildPhase=dartBuildHook -fi diff --git a/pkgs/build-support/dart/build-dart-application/hooks/dart-config-hook.sh b/pkgs/build-support/dart/build-dart-application/hooks/dart-config-hook.sh deleted file mode 100644 index 50754a7..0000000 --- a/pkgs/build-support/dart/build-dart-application/hooks/dart-config-hook.sh +++ /dev/null @@ -1,70 +0,0 @@ -# shellcheck shell=bash - -dartConfigHook() { - echo "Executing dartConfigHook" - - echo "Setting up SDK" - eval "$sdkSetupScript" - - echo "Installing dependencies" - mkdir -p .dart_tool - cp "$packageConfig" .dart_tool/package_config.json - - packagePath() { - jq --raw-output --arg name "$1" '.packages.[] | select(.name == $name) .rootUri | sub("file://"; "")' .dart_tool/package_config.json - } - - # Runs a Dart executable from a package with a custom path. - # - # Usage: - # packageRunCustom [executable] [bin_dir] - # - # By default, [bin_dir] is "bin", and [executable] is . - # i.e. `packageRunCustom build_runner` is equivalent to `packageRunCustom build_runner build_runner bin`, which runs `bin/build_runner.dart` from the build_runner package. - packageRunCustom() { - local args=() - local passthrough=() - - while [ $# -gt 0 ]; do - if [ "$1" != "--" ]; then - args+=("$1") - shift - else - shift - passthrough=("$@") - break - fi - done - - local name="${args[0]}" - local path="${args[1]:-$name}" - local prefix="${args[2]:-bin}" - - dart --packages=.dart_tool/package_config.json "$(packagePath "$name")/$prefix/$path.dart" "${passthrough[@]}" - } - - # Runs a Dart executable from a package. - # - # Usage: - # packageRun [-e executable] [...] - # - # To run an executable from an unconventional location, use packageRunCustom. - packageRun() { - local name="$1" - shift - - local executableName="$name" - if [ "$1" = "-e" ]; then - shift - executableName="$1" - shift - fi - - fileName="$(@yq@ --raw-output --arg name "$executableName" '.executables.[$name] // $name' "$(packagePath "$name")/pubspec.yaml")" - packageRunCustom "$name" "$fileName" -- "$@" - } - - echo "Finished dartConfigHook" -} - -postConfigureHooks+=(dartConfigHook) diff --git a/pkgs/build-support/dart/build-dart-application/hooks/dart-fixup-hook.sh b/pkgs/build-support/dart/build-dart-application/hooks/dart-fixup-hook.sh deleted file mode 100644 index 60bd748..0000000 --- a/pkgs/build-support/dart/build-dart-application/hooks/dart-fixup-hook.sh +++ /dev/null @@ -1,35 +0,0 @@ -# shellcheck shell=bash - -dartFixupHook() { - echo "Executing dartFixupHook" - - declare -a wrapProgramArgs - - # Add runtime library dependencies to the LD_LIBRARY_PATH. - # For some reason, the RUNPATH of the executable is not used to load dynamic libraries in dart:ffi with DynamicLibrary.open(). - # - # This could alternatively be fixed with patchelf --add-needed, but this would cause all the libraries to be opened immediately, - # which is not what application authors expect. - APPLICATION_LD_LIBRARY_PATH="" - for runtimeDependency in "${runtimeDependencies[@]}"; do - addToSearchPath APPLICATION_LD_LIBRARY_PATH "${runtimeDependency}/lib" - done - if [[ ! -z "$APPLICATION_LD_LIBRARY_PATH" ]]; then - wrapProgramArgs+=(--suffix LD_LIBRARY_PATH : \"$APPLICATION_LD_LIBRARY_PATH\") - fi - - if [[ ! -z "$extraWrapProgramArgs" ]]; then - wrapProgramArgs+=("$extraWrapProgramArgs") - fi - - if [ ${#wrapProgramArgs[@]} -ne 0 ]; then - for f in "$out"/bin/*; do - echo "Wrapping $f..." - eval "wrapProgram \"$f\" ${wrapProgramArgs[@]}" - done - fi - - echo "Finished dartFixupHook" -} - -postFixupHooks+=(dartFixupHook) diff --git a/pkgs/build-support/dart/build-dart-application/hooks/dart-install-hook.sh b/pkgs/build-support/dart/build-dart-application/hooks/dart-install-hook.sh deleted file mode 100644 index 349a0df..0000000 --- a/pkgs/build-support/dart/build-dart-application/hooks/dart-install-hook.sh +++ /dev/null @@ -1,43 +0,0 @@ -# shellcheck shell=bash - -dartInstallHook() { - echo "Executing dartInstallHook" - - runHook preInstall - - # Install snapshots and executables. - mkdir -p "$out" - while IFS=$'\t' read -ra target; do - dest="${target[0]}" - # Wrap with runtime command, if it's defined - if [ -n "$dartRuntimeCommand" ]; then - install -D "$dest" "$out/share/$dest" - makeWrapper "$dartRuntimeCommand" "$out/$dest" \ - --add-flags "$out/share/$dest" - else - install -Dm755 "$dest" "$out/$dest" - fi - done < <(_getDartEntryPoints) - - runHook postInstall - - echo "Finished dartInstallHook" -} - -dartInstallCacheHook() { - echo "Executing dartInstallCacheHook" - - # Install the package_config.json file. - mkdir -p "$pubcache" - cp .dart_tool/package_config.json "$pubcache/package_config.json" - - echo "Finished dartInstallCacheHook" -} - -if [ -z "${dontDartInstall-}" ] && [ -z "${installPhase-}" ]; then - installPhase=dartInstallHook -fi - -if [ -z "${dontDartInstallCache-}" ]; then - postInstallHooks+=(dartInstallCacheHook) -fi diff --git a/pkgs/build-support/dart/build-dart-application/hooks/default.nix b/pkgs/build-support/dart/build-dart-application/hooks/default.nix deleted file mode 100644 index 253d313..0000000 --- a/pkgs/build-support/dart/build-dart-application/hooks/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ lib, makeSetupHook, dart, yq, jq }: - -{ - dartConfigHook = makeSetupHook { - name = "dart-config-hook"; - substitutions.yq = "${yq}/bin/yq"; - substitutions.jq = "${jq}/bin/jq"; - } ./dart-config-hook.sh; - dartBuildHook = makeSetupHook { - name = "dart-build-hook"; - 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; -} diff --git a/pkgs/build-support/dart/pub2nix/default.nix b/pkgs/build-support/dart/pub2nix/default.nix deleted file mode 100644 index ace2cc5..0000000 --- a/pkgs/build-support/dart/pub2nix/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ callPackage }: - -{ - readPubspecLock = callPackage ./pubspec-lock.nix { }; - generatePackageConfig = callPackage ./package-config.nix { }; -} diff --git a/pkgs/build-support/dart/pub2nix/package-config.nix b/pkgs/build-support/dart/pub2nix/package-config.nix deleted file mode 100644 index 70abb0a..0000000 --- a/pkgs/build-support/dart/pub2nix/package-config.nix +++ /dev/null @@ -1,68 +0,0 @@ -{ lib -, runCommand -, jq -, yq -}: - -{ pname ? null - - # A list of dependency package names. -, dependencies - - # An attribute set of package names to sources. -, dependencySources -}: - -let - packages = lib.genAttrs dependencies (dependency: rec { - src = dependencySources.${dependency}; - inherit (src) packageRoot; - }); -in -(runCommand "${lib.optionalString (pname != null) "${pname}-"}package-config.json" { - inherit packages; - - 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") - - 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 - - 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 deleted file mode 100644 index e1ab4d7..0000000 --- a/pkgs/build-support/dart/pub2nix/pubspec-lock.nix +++ /dev/null @@ -1,119 +0,0 @@ -{ lib -, callPackage -, fetchurl -, fetchgit -, runCommand -}: - -{ - # The source directory of the package. - src - - # The package subdirectory within src. - # Useful if the package references sibling packages with relative paths. -, packageRoot ? "." - - # The pubspec.lock file, in attribute set form. -, pubspecLock - - # Hashes for Git dependencies. - # Pub does not record these itself, so they must be manually provided. -, 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 ? { } - - # Functions that create custom package source derivations. - # - # The function names should match the package names, and the package version, - # source, and source files are given in an attribute set argument. - # - # The passthru of the source derivation should be propagated. -, customSourceBuilders ? { } -}: - -let - dependencyVersions = builtins.mapAttrs (name: details: details.version) pubspecLock.packages; - - dependencyTypes = { - "direct main" = "main"; - "direct dev" = "dev"; - "direct overridden" = "overridden"; - "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; - - # 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: - let - archive = fetchurl { - name = "pub-${name}-${details.version}.tar.gz"; - url = "${details.description.url}/packages/${details.description.name}/versions/${details.version}.tar.gz"; - sha256 = details.description.sha256; - }; - in - runCommand "pub-${name}-${details.version}" { passthru.packageRoot = "."; } '' - mkdir -p "$out" - 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; - }; - }); - - 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; - - addDependencySourceUtils = dependencySource: details: dependencySource.overrideAttrs ({ passthru, ... }: { - passthru = passthru // { - inherit (details) version; - }; - }); - - sourceBuilders = callPackage ../../../development/compilers/dart/package-source-builders { } // customSourceBuilders; - - 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); -in -{ - inherit - # An attribute set of dependency categories to package name lists. - dependencies - - # An attribute set of package names to their versions. - dependencyVersions - - # An attribute set of package names to their sources. - dependencySources; -} diff --git a/pkgs/build-support/deterministic-uname/default.nix b/pkgs/build-support/deterministic-uname/default.nix deleted file mode 100644 index 6d15055..0000000 --- a/pkgs/build-support/deterministic-uname/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -# expr and script based on our lsb_release -{ stdenv -, lib -, substituteAll -, coreutils -, getopt -, modDirVersion ? "" -}: - -substituteAll { - name = "uname"; - - src = ./deterministic-uname.sh; - - dir = "bin"; - isExecutable = true; - - inherit coreutils getopt; - - uSystem = if stdenv.buildPlatform.uname.system != null then stdenv.buildPlatform.uname.system else "unknown"; - inherit (stdenv.buildPlatform.uname) processor; - - # uname -o - # maybe add to lib/systems/default.nix uname attrset - # https://github.com/coreutils/coreutils/blob/7fc84d1c0f6b35231b0b4577b70aaa26bf548a7c/src/uname.c#L373-L374 - # 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"; - - # in os-specific/linux module packages - # --replace '$(shell uname -r)' "${kernel.modDirVersion}" \ - # is a common thing to do. - modDirVersion = if modDirVersion != "" then modDirVersion else "unknown"; - - meta = with lib; { - description = "Print certain system information (hardcoded with lib/system values)"; - mainProgram = "uname"; - longDescription = '' - This package provides a replacement for `uname` whose output depends only - on `stdenv.buildPlatform`. It is meant to be used from within derivations. - Many packages' build processes run `uname` at compile time and embed its - output into the result of the build. Since `uname` calls into the kernel, - and the Nix sandbox currently does not intercept these calls, builds made - on different kernels will produce different results. - ''; - license = [ licenses.mit ]; - maintainers = with maintainers; [ artturin ]; - platforms = platforms.all; - }; -} diff --git a/pkgs/build-support/deterministic-uname/deterministic-uname.sh b/pkgs/build-support/deterministic-uname/deterministic-uname.sh deleted file mode 100644 index 31772ae..0000000 --- a/pkgs/build-support/deterministic-uname/deterministic-uname.sh +++ /dev/null @@ -1,174 +0,0 @@ -#! @shell@ - -set -o errexit -set -o nounset - -show_help() { - @coreutils@/bin/cat << EOF -Usage: uname [OPTION]... -Print certain system information. With no OPTION, same as -s. - - -a, --all print all information, in the following order, - except omit -p and -i if unknown: - -s, --kernel-name print the kernel name - -n, --nodename print the network node hostname - -r, --kernel-release print the kernel release - -v, --kernel-version print the kernel version - -m, --machine print the machine hardware name - -p, --processor print the processor type (non-portable) - -i, --hardware-platform print the hardware platform (non-portable) - -o, --operating-system print the operating system - --help display this help and exit - --version output version information and exit -EOF - exit 0 -} - -# Potential command-line options. -version=0 -all=0 - - -kernel_name=0 -nodename=0 -kernel_release=0 -kernel_version=0 -machine=0 -processor=0 -hardware_platform=0 -operating_system=0 - -# With no OPTION, same as -s. -if [[ $# -eq 0 ]]; then - kernel_name=1 -fi - -@getopt@/bin/getopt --test > /dev/null && rc=$? || rc=$? -if [[ $rc -ne 4 ]]; then - # This shouldn't happen. - echo "Warning: Enhanced getopt not supported, please open an issue in nixpkgs." >&2 -else - # Define all short and long options. - SHORT=hvsnrvmpioa - LONG=help,version,kernel-name,nodename,kernel-release,kernel-version,machine,processor,hardware-platform,operating-system,all - - # Parse all options. - PARSED=`@getopt@/bin/getopt --options $SHORT --longoptions $LONG --name "$0" -- "$@"` - - eval set -- "$PARSED" -fi - -# Process each argument, and set the appropriate flag if we recognize it. -while [[ $# -ge 1 ]]; do - case "$1" in - --version) - version=1 - ;; - -s|--kernel-name) - kernel_name=1 - ;; - -n|--nodename) - nodename=1 - ;; - -r|--kernel-release) - kernel_release=1 - ;; - -v|--kernel-version) - kernel_version=1 - ;; - -m|--machine) - machine=1 - ;; - -p|--processor) - processor=1 - ;; - -i|--hardware-platform) - hardware_platform=1 - ;; - -o|--operating-system) - operating_system=1 - ;; - -a|--all) - all=1 - ;; - --help) - show_help - ;; - --) - shift - break - ;; - *) - echo "uname: unrecognized option '$1'" - echo "Type 'uname --help' for a list of available options." - exit 1 - ;; - esac - shift -done - - -KERNEL_NAME_VAL=@uSystem@ -NODENAME_VAL=nixpkgs -KERNEL_RELEASE_VAL=@modDirVersion@ -# #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 14 10:41:06 UTC 2022 -KERNEL_VERSION_VAL="#1-NixOS Tue Jan 1 00:00:00 UTC 1980" -MACHINE_VAL=@processor@ -PROCESSOR_VAL=unknown -HARDWARE_PLATFORM_VAL=unknown -OPERATING_SYSTEM_VAL=@operatingSystem@ - - -if [[ "$version" = "1" ]]; then - # in case some script greps for GNU coreutils. - echo "uname (GNU coreutils) 9.1" - echo "Nixpkgs deterministic-uname" - exit -fi - -# output of the real uname from GNU coreutils -# Darwin: -# Darwin *nodename* 22.1.0 Darwin Kernel Version 22.1.0: Sun Oct 9 20:14:30 PDT 2022; root:xnu-8792.41.9~2/RELEASE_ARM64_T8103 arm64 arm Darwin -# NixOS: -# Linux *nodename* 6.0.13 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 14 10:41:06 UTC 2022 x86_64 GNU/Linux -output=() -if [[ "$all" = "1" ]]; then - output+=("$KERNEL_NAME_VAL" "$NODENAME_VAL" "$KERNEL_RELEASE_VAL" "$KERNEL_VERSION_VAL" "$MACHINE_VAL") - # in help: except omit -p and -i if unknown. - # output+=($PROCESSOR_VAL $HARDWARE_PLATFORM_VAL) - output+=("$OPERATING_SYSTEM_VAL") -fi - -if [[ "$kernel_name" = "1" ]]; then - output+=("$KERNEL_NAME_VAL") -fi - -if [[ "$nodename" = "1" ]]; then - output+=("$NODENAME_VAL") -fi - -if [[ "$kernel_release" = "1" ]]; then - output+=("$KERNEL_RELEASE_VAL") -fi - -if [[ "$kernel_version" = "1" ]]; then - output+=("$KERNEL_VERSION_VAL") -fi - -if [[ "$machine" = "1" ]]; then - output+=("$MACHINE_VAL") -fi - -if [[ "$processor" = "1" ]]; then - output+=("$PROCESSOR_VAL") -fi - -if [[ "$hardware_platform" = "1" ]]; then - output+=("$HARDWARE_PLATFORM_VAL") -fi - -if [[ "$operating_system" = "1" ]]; then - output+=("$OPERATING_SYSTEM_VAL") -fi - -echo "${output[@]}" diff --git a/pkgs/build-support/dhall/directory-to-nix.nix b/pkgs/build-support/dhall/directory-to-nix.nix deleted file mode 100644 index d751e19..0000000 --- a/pkgs/build-support/dhall/directory-to-nix.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ dhallPackages, dhallPackageToNix}: - -# `dhallDirectoryToNix is a utility function to take a directory of Dhall files -# and read them in as a Nix expression. -# -# This function is similar to `dhallToNix`, but takes a Nixpkgs Dhall package -# as input instead of raw Dhall code. -# -# Note that this uses "import from derivation" (IFD), meaning that Nix will -# perform a build during the evaluation phase if you use this -# `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" -}@args: - -let - generatedPkg = dhallPackages.generateDhallDirectoryPackage args; - - builtPkg = dhallPackages.callPackage generatedPkg { }; - -in - dhallPackageToNix builtPkg diff --git a/pkgs/build-support/dhall/package-to-nix.nix b/pkgs/build-support/dhall/package-to-nix.nix deleted file mode 100644 index 301501a..0000000 --- a/pkgs/build-support/dhall/package-to-nix.nix +++ /dev/null @@ -1,36 +0,0 @@ - -# `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. -# -# This function is similar to `dhallToNix`, but takes a Nixpkgs Dhall package -# as input instead of raw Dhall code. -# -# Note that this uses "import from derivation" (IFD), meaning that Nix will -# perform a build during the evaluation phase if you use this -# `dhallPackageToNix` utility. It is not possible to use `dhallPackageToNix` -# in Nixpkgs, since the Nixpkgs Hydra doesn't allow IFD. - -{ stdenv, dhall-nix }: - -dhallPackage: - 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 - - dhall-to-nix <<< "${dhallPackage}/binary.dhall" > $out - ''; - - nativeBuildInputs = [ dhall-nix ]; - }; - - in - import drv diff --git a/pkgs/build-support/dhall/to-nix.nix b/pkgs/build-support/dhall/to-nix.nix deleted file mode 100644 index 96cc16e..0000000 --- a/pkgs/build-support/dhall/to-nix.nix +++ /dev/null @@ -1,38 +0,0 @@ -/* `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 - - 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 -*/ -{ stdenv, dhall-nix, writeText }: - -let - dhallToNix = code : - let - file = writeText "dhall-expression" code; - - drv = stdenv.mkDerivation { - name = "dhall-compiled.nix"; - - buildCommand = '' - dhall-to-nix <<< "${file}" > $out - ''; - - buildInputs = [ dhall-nix ]; - }; - - in - import drv; -in - dhallToNix diff --git a/pkgs/build-support/dlang/README.md b/pkgs/build-support/dlang/README.md deleted file mode 100644 index bdd5fd2..0000000 --- a/pkgs/build-support/dlang/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Build support for D - -Build utilities for the D language can be found in this directory. - -### Current maintainers -- @TomaSajt -- @jtbx diff --git a/pkgs/build-support/dlang/builddubpackage/default.nix b/pkgs/build-support/dlang/builddubpackage/default.nix deleted file mode 100644 index 9295445..0000000 --- a/pkgs/build-support/dlang/builddubpackage/default.nix +++ /dev/null @@ -1,124 +0,0 @@ -{ - lib, - stdenv, - fetchurl, - linkFarm, - dub, - ldc, - removeReferencesTo, -}: - -# See https://nixos.org/manual/nixpkgs/unstable#dlang for more detailed usage information - -{ - # A lockfile generated by `dub-to-nix` from the source of the package. - # Can be either a path to the file, or an attrset already parsed with `lib.importJSON`. - dubLock, - # The build type to pass to `dub build` as a value for the `--build=` flag. - dubBuildType ? "release", - # The flags to pass to `dub build` and `dub test`. - dubFlags ? [ ], - # The flags to pass to `dub build`. - dubBuildFlags ? [ ], - # The flags to pass to `dub test`. - dubTestFlags ? [ ], - # The D compiler to be used by `dub`. - compiler ? ldc, - ... -}@args: - -let - makeDubDep = - { - pname, - version, - sha256, - }: - { - inherit pname version; - src = fetchurl { - name = "dub-${pname}-${version}.zip"; - url = "mirror://dub/${pname}/${version}.zip"; - inherit sha256; - }; - }; - - lockJson = if lib.isPath dubLock then lib.importJSON dubLock else dubLock; - - lockedDeps = lib.mapAttrsToList ( - pname: { version, sha256 }: makeDubDep { inherit pname version sha256; } - ) lockJson.dependencies; - - # a directory with multiple single element registries - # one big directory with all .zip files leads to version parsing errors - # when the name of a package is a prefix of the name of another package - dubRegistryBase = linkFarm "dub-registry-base" ( - map (dep: { - name = "${dep.pname}/${dep.pname}-${dep.version}.zip"; - path = dep.src; - }) lockedDeps - ); - - combinedFlags = "--skip-registry=all --compiler=${lib.getExe compiler} ${toString dubFlags}"; - combinedBuildFlags = "${combinedFlags} --build=${dubBuildType} ${toString dubBuildFlags}"; - combinedTestFlags = "${combinedFlags} ${toString dubTestFlags}"; -in -stdenv.mkDerivation ( - builtins.removeAttrs args [ "dubLock" ] - // { - strictDeps = args.strictDeps or true; - - nativeBuildInputs = args.nativeBuildInputs or [ ] ++ [ - dub - compiler - removeReferencesTo - ]; - - configurePhase = - args.configurePhase or '' - runHook preConfigure - - export DUB_HOME="$NIX_BUILD_TOP/.dub" - mkdir -p $DUB_HOME - - # register dependencies - ${lib.concatMapStringsSep "\n" (dep: '' - dub fetch ${dep.pname}@${dep.version} --cache=user --skip-registry=standard --registry=file://${dubRegistryBase}/${dep.pname} - '') lockedDeps} - - runHook postConfigure - ''; - - buildPhase = - args.buildPhase or '' - runHook preBuild - - dub build ${combinedBuildFlags} - - runHook postBuild - ''; - - doCheck = args.doCheck or false; - - checkPhase = - args.checkPhase or '' - runHook preCheck - - dub test ${combinedTestFlags} - - runHook postCheck - ''; - - preFixup = '' - ${args.preFixup or ""} - - find "$out" -type f -exec remove-references-to -t ${compiler} '{}' + - ''; - - disallowedReferences = [ compiler ]; - - meta = { - platforms = dub.meta.platforms; - } // args.meta or { }; - } -) diff --git a/pkgs/build-support/dlang/dub-support.nix b/pkgs/build-support/dlang/dub-support.nix deleted file mode 100644 index 879d593..0000000 --- a/pkgs/build-support/dlang/dub-support.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ callPackage }: -{ - buildDubPackage = callPackage ./builddubpackage { }; - dub-to-nix = callPackage ./dub-to-nix { }; -} diff --git a/pkgs/build-support/dlang/dub-to-nix/default.nix b/pkgs/build-support/dlang/dub-to-nix/default.nix deleted file mode 100644 index 53a2e99..0000000 --- a/pkgs/build-support/dlang/dub-to-nix/default.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ - lib, - runCommand, - makeWrapper, - python3, - nix, -}: - -runCommand "dub-to-nix" - { - nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ python3 ]; - } - '' - install -Dm755 ${./dub-to-nix.py} "$out/bin/dub-to-nix" - patchShebangs "$out/bin/dub-to-nix" - wrapProgram "$out/bin/dub-to-nix" \ - --prefix PATH : ${lib.makeBinPath [ nix ]} - '' diff --git a/pkgs/build-support/dlang/dub-to-nix/dub-to-nix.py b/pkgs/build-support/dlang/dub-to-nix/dub-to-nix.py deleted file mode 100644 index 48a9f24..0000000 --- a/pkgs/build-support/dlang/dub-to-nix/dub-to-nix.py +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env python3 - -import sys -import json -import os -import subprocess - -def eprint(text: str): - print(text, file=sys.stderr) - -if not os.path.exists("dub.selections.json"): - eprint("The file `dub.selections.json` does not exist in the current working directory") - eprint("run `dub upgrade --annotate` to generate it") - sys.exit(1) - -with open("dub.selections.json") as f: - selectionsJson = json.load(f) - -versionDict: dict[str, str] = selectionsJson["versions"] - -for pname in versionDict: - version = versionDict[pname] - if version.startswith("~"): - eprint(f'Package "{pname}" has a branch-type version "{version}", which doesn\'t point to a fixed version') - eprint("You can resolve it by manually changing the required version to a fixed one inside `dub.selections.json`") - eprint("When packaging, you might need to create a patch for `dub.sdl` or `dub.json` to accept the changed version") - sys.exit(1) - -lockedDependenciesDict: dict[str, dict[str, str]] = {} - -for pname in versionDict: - version = versionDict[pname] - eprint(f"Fetching {pname}@{version}") - url = f"https://code.dlang.org/packages/{pname}/{version}.zip" - command = ["nix-prefetch-url", "--type", "sha256", url] - sha256 = subprocess.run(command, check=True, text=True, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL).stdout.rstrip() - lockedDependenciesDict[pname] = {"version": version, "sha256": sha256} - -print(json.dumps({"dependencies": lockedDependenciesDict}, indent=2)) diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix deleted file mode 100644 index 1d1989d..0000000 --- a/pkgs/build-support/docker/default.nix +++ /dev/null @@ -1,1299 +0,0 @@ -{ 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) - escapeShellArgs - toList - ; - - mkDbExtraCommand = contents: - let - contentsList = if builtins.isList contents then contents else [ contents ]; - in - '' - echo "Generating the nix database..." - echo "Warning: only the database of the deepest Nix layer is loaded." - echo " If you want to use nix commands in the container, it would" - echo " be better to only have one layer that contains a nix store." - - export NIX_REMOTE=local?root=$PWD - # 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 - # 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}" - - mkdir -p nix/var/nix/gcroots/docker/ - for i in ${lib.concatStringsSep " " contentsList}; do - ln -s $i nix/var/nix/gcroots/docker/$(basename $i) - done; - ''; - - # The OCI Image specification recommends that configurations use values listed - # in the Go Language document for GOARCH. - # Reference: https://github.com/opencontainers/image-spec/blob/master/config.md#properties - # For the mapping from Nixpkgs system parameters to GOARCH, we can reuse the - # mapping from the go package. - defaultArchitecture = go.GOARCH; - - compressors = { - none = { - ext = ""; - nativeInputs = [ ]; - compress = "cat"; - decompress = "cat"; - }; - gz = { - ext = ".gz"; - nativeInputs = [ pigz ]; - compress = "pigz -p$NIX_BUILD_CORES -nTR"; - decompress = "pigz -d -p$NIX_BUILD_CORES"; - }; - zstd = { - ext = ".zst"; - nativeInputs = [ zstd ]; - compress = "zstd -T$NIX_BUILD_CORES"; - decompress = "zstd -d -T$NIX_BUILD_CORES"; - }; - }; - - compressorForImage = compressor: imageName: compressors.${compressor} or - (throw "in docker image ${imageName}: compressor must be one of: [${toString builtins.attrNames compressors}]"); - -in -rec { - examples = callPackage ./examples.nix { - inherit buildImage buildLayeredImage fakeNss pullImage shadowSetup buildImageWithNixDb streamNixShellImage; - }; - - tests = { - inherit (nixosTests) - docker-tools - docker-tools-overlay - # requires remote builder - # docker-tools-cross - ; - }; - - pullImage = - let - fixName = name: builtins.replaceStrings [ "/" ":" ] [ "-" "-" ] name; - in - { 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 - # This is used to set name to the pulled image - , finalImageName ? imageName - # This used to set a tag to the pulled image - , finalImageTag ? "latest" - # This is used to disable TLS certificate verification, allowing access to http registries on (hopefully) trusted networks - , tlsVerify ? true - - , name ? fixName "docker-image-${finalImageName}-${finalImageTag}.tar" - }: - - runCommand name - { - inherit imageDigest; - imageName = finalImageName; - imageTag = finalImageTag; - impureEnvVars = lib.fetchers.proxyImpureEnvVars; - outputHashMode = "flat"; - outputHashAlgo = "sha256"; - outputHash = sha256; - - nativeBuildInputs = [ skopeo ]; - SSL_CERT_FILE = "${cacert.out}/etc/ssl/certs/ca-bundle.crt"; - - 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 - ''; - - # 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. - inherit tarsum; # pkgs.dockerTools.tarsum - - # buildEnv creates symlinks to dirs, which is hard to edit inside the overlay VM - mergeDrvs = - { derivations - , onlyDeps ? false - }: - runCommand "merge-drvs" - { - inherit derivations onlyDeps; - } '' - if [[ -n "$onlyDeps" ]]; then - echo $derivations > $out - exit 0 - fi - - mkdir $out - for derivation in $derivations; do - echo "Merging $derivation..." - if [[ -d "$derivation" ]]; then - # If it's a directory, copy all of its contents into $out. - cp -drf --preserve=mode -f $derivation/* $out/ - else - # Otherwise treat the derivation as a tarball and extract it - # into $out. - tar -C $out -xpf $drv || true - fi - done - ''; - - # Helper for setting up the base files for managing users and - # groups, only if such files don't exist already. It is suitable for - # being used in a runAsRoot script. - shadowSetup = '' - export PATH=${shadow}/bin:$PATH - mkdir -p /etc/pam.d - if [[ ! -f /etc/passwd ]]; then - echo "root:x:0:0::/root:${runtimeShell}" > /etc/passwd - echo "root:!x:::::::" > /etc/shadow - fi - if [[ ! -f /etc/group ]]; then - echo "root:x:0:" > /etc/group - echo "root:x::" > /etc/gshadow - fi - if [[ ! -f /etc/pam.d/other ]]; then - cat > /etc/pam.d/other < layer-list - else - touch layer-list - fi - - # Unpack all of the parent layers into the image. - lowerdir="" - extractionID=0 - for layerTar in $(cat layer-list); do - echo "Unpacking layer $layerTar" - extractionID=$((extractionID + 1)) - - mkdir -p image/$extractionID/layer - tar -C image/$extractionID/layer -xpf image/$layerTar - rm image/$layerTar - - find image/$extractionID/layer -name ".wh.*" -exec bash -c 'name="$(basename {}|sed "s/^.wh.//")"; mknod "$(dirname {})/$name" c 0 0; rm {}' \; - - # Get the next lower directory and continue the loop. - lowerdir=image/$extractionID/layer''${lowerdir:+:}$lowerdir - done - - mkdir work - mkdir layer - mkdir mnt - - ${lib.optionalString (preMount != "") '' - # Execute pre-mount steps - echo "Executing pre-mount steps..." - ${preMount} - ''} - - if [ -n "$lowerdir" ]; then - mount -t overlay overlay -olowerdir=$lowerdir,workdir=work,upperdir=layer mnt - else - mount --bind layer mnt - fi - - ${lib.optionalString (postMount != "") '' - # Execute post-mount steps - echo "Executing post-mount steps..." - ${postMount} - ''} - - umount mnt - - ( - cd layer - cmd='name="$(basename {})"; touch "$(dirname {})/.wh.$name"; rm "{}"' - find . -type c -exec bash -c "$cmd" \; - ) - - ${postUmount} - ''); - - exportImage = { name ? fromImage.name, fromImage, fromImageName ? null, fromImageTag ? null, diskSize ? 1024 }: - runWithOverlay { - inherit name fromImage fromImageName fromImageTag diskSize; - - postMount = '' - echo "Packing raw image..." - tar -C mnt --hard-dereference --sort=name --mtime="@$SOURCE_DATE_EPOCH" -cf $out/layer.tar . - ''; - - postUmount = '' - mv $out/layer.tar . - rm -rf $out - mv layer.tar $out - ''; - }; - - # 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: - writeScript name '' - #!${runtimeShell} - set -e - export PATH=${coreutils}/bin:/bin - ${text} - ''; - - # Create a "layer" (set of files). - 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 - # 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 - }: - runCommand "docker-layer-${name}" - { - inherit baseJson extraCommands; - contents = copyToRoot; - nativeBuildInputs = [ jshon rsync tarsum ]; - } - '' - mkdir layer - if [[ -n "$contents" ]]; then - echo "Adding contents..." - for item in $contents; do - echo "Adding $item" - rsync -a${if keepContentsDirlinks then "K" else "k"} --chown=0:0 $item/ layer/ - done - else - echo "No contents to add to layer." - fi - - chmod ug+w layer - - if [[ -n "$extraCommands" ]]; then - (cd layer; eval "$extraCommands") - fi - - # Tar up the layer and throw it into 'layer.tar'. - echo "Packing layer..." - mkdir $out - tarhash=$(tar -C layer --hard-dereference --sort=name --mtime="@$SOURCE_DATE_EPOCH" --owner=${toString uid} --group=${toString gid} -cf - . | tee -p $out/layer.tar | tarsum) - - # Add a 'checksum' field to the JSON, with the value set to the - # checksum of the tarball. - cat ${baseJson} | jshon -s "$tarhash" -i checksum > $out/json - - # Indicate to docker that we're using schema version 1.0. - echo -n "1.0" > $out/VERSION - - echo "Finished building layer '${name}'" - ''; - - # Make a "root" layer; required if we need to execute commands as a - # privileged user on the image. The commands themselves will be - # performed in a virtual machine sandbox. - 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. - # To add packages to /bin, use `buildEnv` or similar. - 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 ? "" - }: - # Generate an executable script from the `runAsRoot` text. - let - runAsRootScript = shellScript "run-as-root.sh" runAsRoot; - extraCommandsScript = shellScript "extra-commands.sh" extraCommands; - in - runWithOverlay { - name = "docker-layer-${name}"; - - inherit fromImage fromImageName fromImageTag diskSize buildVMMemorySize; - - preMount = lib.optionalString (copyToRoot != null && copyToRoot != [ ]) '' - echo "Adding contents..." - for item in ${escapeShellArgs (map (c: "${c}") (toList copyToRoot))}; do - echo "Adding $item..." - rsync -a${if keepContentsDirlinks then "K" else "k"} --chown=0:0 $item/ layer/ - done - - chmod ug+w layer - ''; - - postMount = '' - mkdir -p mnt/{dev,proc,sys,tmp} mnt${storeDir} - - # Mount /dev, /sys and the nix store as shared folders. - mount --rbind /dev mnt/dev - mount --rbind /sys mnt/sys - mount --rbind ${storeDir} mnt${storeDir} - - # Execute the run as root script. See 'man unshare' for - # details on what's going on here; basically this command - # means that the runAsRootScript will be executed in a nearly - # completely isolated environment. - # - # Ideally we would use --mount-proc=mnt/proc or similar, but this - # doesn't work. The workaround is to setup proc after unshare. - # See: https://github.com/karelzak/util-linux/issues/648 - unshare -imnpuf --mount-proc sh -c 'mount --rbind /proc mnt/proc && chroot mnt ${runAsRootScript}' - - # Unmount directories and remove them. - umount -R mnt/dev mnt/sys mnt${storeDir} - rmdir --ignore-fail-on-non-empty \ - mnt/dev mnt/proc mnt/sys mnt${storeDir} \ - mnt$(dirname ${storeDir}) - ''; - - postUmount = '' - (cd layer; ${extraCommandsScript}) - - echo "Packing layer..." - mkdir -p $out - tarhash=$(tar -C layer --hard-dereference --sort=name --mtime="@$SOURCE_DATE_EPOCH" -cf - . | - tee -p $out/layer.tar | - ${tarsum}/bin/tarsum) - - cat ${baseJson} | jshon -s "$tarhash" -i checksum > $out/json - # Indicate to docker that we're using schema version 1.0. - echo -n "1.0" > $out/VERSION - - echo "Finished building layer '${name}'" - ''; - }; - - buildLayeredImage = lib.makeOverridable ({ name, compressor ? "gz", ... }@args: - let - 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" - ); - - # 1. extract the base image - # 2. create the layer - # 3. add layer deps to the layer itself, diffing with the base image - # 4. compute the layer id - # 5. put the layer in the image - # 6. repack the image - 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 - # 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 - , - }: - - 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." - ; - - rootContents = if copyToRoot == null then contents else copyToRoot; - - baseName = baseNameOf name; - - # 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 ]; - 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 - mkRootLayer { - name = baseName; - 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 - 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 - touch layer-list - fi - - chmod -R ug+rw image - - mkdir temp - cp ${layer}/* temp/ - chmod ug+w temp/* - - for dep in $(cat $layerClosure); do - find $dep >> layerFiles - done - - echo "Adding layer..." - # Record the contents of the tarball with ls_tar. - ls_tar temp/layer.tar >> baseFiles - - # 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 - - # 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 - - echo "Adding meta..." - - # 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 - - # 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 - - # Use the temp folder we've been working on to create a new image. - mv temp image/$layerID - - # 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 - - # 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\"]}]") - - 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." - ''; - - in - checked result - ); - - # 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 - - 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 - # username/groups (like nginx). - # /bin/sh is fine to not exist, and provided by another shim. - inherit fakeNss; # alias - - # This provides a /usr/bin/env, for shell scripts using the - # "#!/usr/bin/env executable" shebang. - usrBinEnv = runCommand "usr-bin-env" { } '' - mkdir -p $out/usr/bin - ln -s ${coreutils}/bin/env $out/usr/bin - ''; - - # This provides /bin/sh, pointing to bashInteractive. - # The use of bashInteractive here is intentional to support cases like `docker run -it `, so keep these use cases in mind if making any changes to how this works. - binSh = runCommand "bin-sh" { } '' - mkdir -p $out/bin - ln -s ${bashInteractive}/bin/bash $out/bin/sh - ''; - - # This provides the ca bundle in common locations - caCertificates = runCommand "ca-certificates" { } '' - mkdir -p $out/etc/ssl/certs $out/etc/pki/tls/certs - # Old NixOS compatibility. - ln -s ${cacert}/etc/ssl/certs/ca-bundle.crt $out/etc/ssl/certs/ca-bundle.crt - # NixOS canonical location + Debian/Ubuntu/Arch/Gentoo compatibility. - ln -s ${cacert}/etc/ssl/certs/ca-bundle.crt $out/etc/ssl/certs/ca-certificates.crt - # CentOS/Fedora compatibility. - ln -s ${cacert}/etc/ssl/certs/ca-bundle.crt $out/etc/pki/tls/certs/ca-bundle.crt - ''; - - # Build an image and populate its nix database with the provided - # contents. The main purpose is to be able to use nix commands in - # 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; - }) - ); - - # TODO: add the dependencies of the config json. - 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 ? {} - , - }: - 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 { - inherit config architecture; - os = "linux"; - }); - - 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" ) - - 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); - - # 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" - { - inherit fromImage maxLayers created uid gid uname gname; - imageName = lib.toLower name; - preferLocalBuild = true; - passthru.imageTag = - if tag != null - then tag - else - 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} - } - - # 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; - passthru = passthru // { - inherit (conf) imageTag; - - # Distinguish tarballs and exes at the Nix level so functions that - # take images can know in advance how the image is supposed to be used. - isExe = true; - }; - nativeBuildInputs = [ makeWrapper ]; - } '' - 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 - # 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 - }: - 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)} - ''; - - 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/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; - - # 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 = { - - # Root certificates for internet access - SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; - NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; - - # https://github.com/NixOS/nix/blob/2.8.0/src/libstore/build/local-derivation-goal.cc#L1027-L1030 - # PATH = "/path-not-set"; - # Allows calling bash and `buildDerivation` as the Cmd - PATH = staticPath; - - # https://github.com/NixOS/nix/blob/2.8.0/src/libstore/build/local-derivation-goal.cc#L1032-L1038 - HOME = homeDirectory; - - # https://github.com/NixOS/nix/blob/2.8.0/src/libstore/build/local-derivation-goal.cc#L1040-L1044 - NIX_STORE = storeDir; - - # https://github.com/NixOS/nix/blob/2.8.0/src/libstore/build/local-derivation-goal.cc#L1046-L1047 - # TODO: Make configurable? - NIX_BUILD_CORES = "1"; - - } // drvEnv // { - - # https://github.com/NixOS/nix/blob/2.8.0/src/libstore/build/local-derivation-goal.cc#L1008-L1010 - NIX_BUILD_TOP = sandboxBuildDir; - - # https://github.com/NixOS/nix/blob/2.8.0/src/libstore/build/local-derivation-goal.cc#L1012-L1013 - TMPDIR = sandboxBuildDir; - TEMPDIR = sandboxBuildDir; - TMP = sandboxBuildDir; - TEMP = sandboxBuildDir; - - # https://github.com/NixOS/nix/blob/2.8.0/src/libstore/build/local-derivation-goal.cc#L1015-L1019 - PWD = sandboxBuildDir; - - # https://github.com/NixOS/nix/blob/2.8.0/src/libstore/build/local-derivation-goal.cc#L1071-L1074 - # We don't set it here because the output here isn't handled in any special way - # NIX_LOG_FD = "2"; - - # https://github.com/NixOS/nix/blob/2.8.0/src/libstore/build/local-derivation-goal.cc#L1076-L1077 - 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}:" - ]; - }) - ]; - - 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} - ''; - - # 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: - let - 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"; -} diff --git a/pkgs/build-support/docker/detjson.py b/pkgs/build-support/docker/detjson.py deleted file mode 100644 index fe82cbe..0000000 --- a/pkgs/build-support/docker/detjson.py +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# Deterministic layer json: https://github.com/docker/hub-feedback/issues/488 - -import sys -reload(sys) -sys.setdefaultencoding('UTF8') -import json - -# If any of the keys below are equal to a certain value -# then we can delete it because it's the default value -SAFEDELS = { - "Size": 0, - "config": { - "ExposedPorts": None, - "MacAddress": "", - "NetworkDisabled": False, - "PortSpecs": None, - "VolumeDriver": "" - } -} -SAFEDELS["container_config"] = SAFEDELS["config"] - -def makedet(j, safedels): - for k,v in safedels.items(): - if k not in j: - continue - if type(v) == dict: - makedet(j[k], v) - elif j[k] == v: - del j[k] - -def main(): - j = json.load(sys.stdin) - makedet(j, SAFEDELS) - json.dump(j, sys.stdout, sort_keys=True) - -if __name__ == '__main__': - main() diff --git a/pkgs/build-support/docker/examples.nix b/pkgs/build-support/docker/examples.nix deleted file mode 100644 index 52706ef..0000000 --- a/pkgs/build-support/docker/examples.nix +++ /dev/null @@ -1,900 +0,0 @@ -# Examples of using the docker tools to build packages. -# -# This file defines several docker images. In order to use an image, -# build its derivation with `nix-build`, and then load the result with -# `docker load`. For example: -# -# $ nix-build '' -A dockerTools.examples.redis -# $ docker load < result - -{ 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 = {}; - }; - evalMinimalConfig = module: nixosLib.evalModules { modules = [ module ]; }; - -in - -rec { - # 1. basic example - bash = buildImage { - name = "bash"; - tag = "latest"; - copyToRoot = pkgs.buildEnv { - name = "image-root"; - paths = [ pkgs.bashInteractive ]; - pathsToLink = [ "/bin" ]; - }; - }; - - # 2. service example, layered on another image - redis = buildImage { - name = "redis"; - tag = "latest"; - - # for example's sake, we can layer redis on top of bash or debian - fromImage = bash; - # fromImage = debian; - - copyToRoot = pkgs.buildEnv { - name = "image-root"; - paths = [ pkgs.redis ]; - pathsToLink = [ "/bin" ]; - }; - - runAsRoot = '' - mkdir -p /data - ''; - - config = { - Cmd = [ "/bin/redis-server" ]; - WorkingDir = "/data"; - Volumes = { - "/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}; - } - } - } - ''; - 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 - - # 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" = {}; - }; - }; - }; - - # 4. example of pulling an image. could be used as a base for other images - nixFromDockerHub = pullImage { - imageName = "nixos/nix"; - imageDigest = "sha256:85299d86263a3059cf19f419f9d286cc9f06d3c13146a8ebbb21b3437f598357"; - sha256 = "19fw0n3wmddahzr20mhdqv6jkjn1kanh6n2mrr08ai53dr8ph5n7"; - finalImageTag = "2.2.1"; - finalImageName = "nix"; - }; - # Same example, but re-fetches every time the fetcher implementation changes. - # NOTE: Only use this for testing, or you'd be wasting a lot of time, network and space. - testNixFromDockerHub = pkgs.testers.invalidateFetcherByDrvHash pullImage { - imageName = "nixos/nix"; - imageDigest = "sha256:85299d86263a3059cf19f419f9d286cc9f06d3c13146a8ebbb21b3437f598357"; - sha256 = "19fw0n3wmddahzr20mhdqv6jkjn1kanh6n2mrr08ai53dr8ph5n7"; - finalImageTag = "2.2.1"; - finalImageName = "nix"; - }; - - # 5. example of multiple contents, emacs and vi happily coexisting - editors = buildImage { - name = "editors"; - copyToRoot = pkgs.buildEnv { - name = "image-root"; - pathsToLink = [ "/bin" ]; - paths = [ - pkgs.coreutils - pkgs.bash - pkgs.emacs - pkgs.vim - pkgs.nano - ]; - }; - }; - - # 6. nix example to play with the container nix store - # docker run -it --rm nix nix-store -qR $(nix-build '' -A nix) - nix = buildImageWithNixDb { - name = "nix"; - tag = "latest"; - copyToRoot = pkgs.buildEnv { - name = "image-root"; - pathsToLink = [ "/bin" ]; - paths = [ - # nix-store uses cat program to display results as specified by - # the image env variable NIX_PAGER. - pkgs.coreutils - pkgs.nix - pkgs.bash - ]; - }; - config = { - Env = [ - "NIX_PAGER=cat" - # A user is required by nix - # https://github.com/NixOS/nix/blob/9348f9291e5d9e4ba3c4347ea1b235640f54fd79/src/libutil/util.cc#L478 - "USER=nobody" - ]; - }; - }; - - # 7. example of adding something on top of an image pull by our - # dockerTools chain. - onTopOfPulledImage = buildImage { - name = "onTopOfPulledImage"; - tag = "latest"; - fromImage = nixFromDockerHub; - copyToRoot = pkgs.buildEnv { - name = "image-root"; - pathsToLink = [ "/bin" ]; - paths = [ pkgs.hello ]; - }; - }; - - # 8. regression test for erroneous use of eval and string expansion. - # See issue #34779 and PR #40947 for details. - runAsRootExtraCommands = pkgs.dockerTools.buildImage { - name = "runAsRootExtraCommands"; - tag = "latest"; - copyToRoot = pkgs.buildEnv { - name = "image-root"; - pathsToLink = [ "/bin" ]; - paths = [ pkgs.coreutils ]; - }; - # The parens here are to create problematic bash to embed and eval. In case - # this is *embedded* into the script (with nix expansion) the initial quotes - # will close the string and the following parens are unexpected - runAsRoot = ''echo "(runAsRoot)" > runAsRoot''; - extraCommands = ''echo "(extraCommand)" > extraCommands''; - }; - - # 9. Ensure that setting created to now results in a date which - # isn't the epoch + 1 - unstableDate = pkgs.dockerTools.buildImage { - name = "unstable-date"; - tag = "latest"; - copyToRoot = pkgs.buildEnv { - name = "image-root"; - pathsToLink = [ "/bin" ]; - paths = [ pkgs.coreutils ]; - }; - created = "now"; - }; - - # 10. Create a layered image - layered-image = pkgs.dockerTools.buildLayeredImage { - name = "layered-image"; - tag = "latest"; - extraCommands = ''echo "(extraCommand)" > extraCommands''; - config.Cmd = [ "${pkgs.hello}/bin/hello" ]; - contents = [ pkgs.hello pkgs.bash pkgs.coreutils ]; - }; - - # 11. Create an image on top of a layered image - layered-on-top = pkgs.dockerTools.buildImage { - name = "layered-on-top"; - tag = "latest"; - fromImage = layered-image; - extraCommands = '' - mkdir ./example-output - chmod 777 ./example-output - ''; - config = { - Env = [ "PATH=${pkgs.coreutils}/bin/" ]; - WorkingDir = "/example-output"; - Cmd = [ - "${pkgs.bash}/bin/bash" "-c" "echo hello > foo; cat foo" - ]; - }; - }; - - # 12 Create a layered image on top of a layered image - layered-on-top-layered = pkgs.dockerTools.buildLayeredImage { - name = "layered-on-top-layered"; - tag = "latest"; - fromImage = layered-image; - extraCommands = '' - mkdir ./example-output - chmod 777 ./example-output - ''; - config = { - Env = [ "PATH=${pkgs.coreutils}/bin/" ]; - WorkingDir = "/example-output"; - Cmd = [ - "${pkgs.bash}/bin/bash" "-c" "echo hello > foo; cat foo" - ]; - }; - }; - - # 13. example of running something as root on top of a parent image - # Regression test related to PR #52109 - runAsRootParentImage = buildImage { - name = "runAsRootParentImage"; - tag = "latest"; - runAsRoot = "touch /example-file"; - fromImage = bash; - }; - - # 14. example of 3 layers images This image is used to verify the - # order of layers is correct. - # It allows to validate - # - 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"; - 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 layer3 > tmp/layer3 - ''; - }; - - # 15. Environment variable inheritance. - # Child image should inherit parents environment variables, - # optionally overriding them. - environmentVariablesParent = pkgs.dockerTools.buildImage { - name = "parent"; - tag = "latest"; - config = { - Env = [ - "FROM_PARENT=true" - "LAST_LAYER=parent" - ]; - }; - }; - - environmentVariables = pkgs.dockerTools.buildImage { - name = "child"; - fromImage = environmentVariablesParent; - tag = "latest"; - copyToRoot = pkgs.buildEnv { - name = "image-root"; - pathsToLink = [ "/bin" ]; - paths = [ pkgs.coreutils ]; - }; - config = { - Env = [ - "FROM_CHILD=true" - "LAST_LAYER=child" - ]; - }; - }; - - environmentVariablesLayered = pkgs.dockerTools.buildLayeredImage { - name = "child"; - fromImage = environmentVariablesParent; - tag = "latest"; - contents = [ pkgs.coreutils ]; - config = { - Env = [ - "FROM_CHILD=true" - "LAST_LAYER=child" - ]; - }; - }; - - # 16. Create another layered image, for comparing layers with image 10. - another-layered-image = pkgs.dockerTools.buildLayeredImage { - name = "another-layered-image"; - tag = "latest"; - config.Cmd = [ "${pkgs.hello}/bin/hello" ]; - }; - - # 17. Create a layered image with only 2 layers - two-layered-image = pkgs.dockerTools.buildLayeredImage { - name = "two-layered-image"; - tag = "latest"; - config.Cmd = [ "${pkgs.hello}/bin/hello" ]; - contents = [ pkgs.bash pkgs.hello ]; - maxLayers = 2; - }; - - # 18. Create a layered image with more packages than max layers. - # coreutils and hello are part of the same layer - bulk-layer = pkgs.dockerTools.buildLayeredImage { - name = "bulk-layer"; - tag = "latest"; - contents = with pkgs; [ - coreutils hello - ]; - maxLayers = 2; - }; - - # 19. Create a layered image with a base image and more packages than max - # layers. coreutils and hello are part of the same layer - layered-bulk-layer = pkgs.dockerTools.buildLayeredImage { - name = "layered-bulk-layer"; - tag = "latest"; - fromImage = two-layered-image; - contents = with pkgs; [ - coreutils hello - ]; - maxLayers = 4; - }; - - # 20. Create a "layered" image without nix store layers. This is not - # recommended, but can be useful for base images in rare cases. - no-store-paths = pkgs.dockerTools.buildLayeredImage { - name = "no-store-paths"; - tag = "latest"; - extraCommands = '' - # This removes sharing of busybox and is not recommended. We do this - # to make the example suitable as a test case with working binaries. - cp -r ${pkgs.pkgsStatic.busybox}/* . - - # This is a "build" dependency that will not appear in the image - ${pkgs.hello}/bin/hello - ''; - }; - - nixLayered = pkgs.dockerTools.buildLayeredImageWithNixDb { - name = "nix-layered"; - tag = "latest"; - contents = [ - # nix-store uses cat program to display results as specified by - # the image env variable NIX_PAGER. - pkgs.coreutils - pkgs.nix - pkgs.bash - ]; - config = { - Env = [ - "NIX_PAGER=cat" - # A user is required by nix - # https://github.com/NixOS/nix/blob/9348f9291e5d9e4ba3c4347ea1b235640f54fd79/src/libutil/util.cc#L478 - "USER=nobody" - ]; - }; - }; - - # 21. Support files in the store on buildLayeredImage - # See: https://github.com/NixOS/nixpkgs/pull/91084#issuecomment-653496223 - filesInStore = pkgs.dockerTools.buildLayeredImageWithNixDb { - name = "file-in-store"; - tag = "latest"; - contents = [ - pkgs.coreutils - pkgs.nix - (pkgs.writeScriptBin "myscript" '' - #!${pkgs.runtimeShell} - cat ${pkgs.writeText "somefile" "some data"} - '') - ]; - config = { - Cmd = [ "myscript" ]; - # For some reason 'nix-store --verify' requires this environment variable - Env = [ "USER=root" ]; - }; - }; - - # 22. Ensure that setting created to now results in a date which - # isn't the epoch + 1 for layered images. - unstableDateLayered = pkgs.dockerTools.buildLayeredImage { - name = "unstable-date-layered"; - tag = "latest"; - contents = [ pkgs.coreutils ]; - created = "now"; - }; - - # 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 ]; - }; - 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; - - bashUncompressed = pkgs.dockerTools.buildImage { - name = "bash-uncompressed"; - tag = "latest"; - compressor = "none"; - # Not recommended. Use `buildEnv` between copy and packages to avoid file duplication. - copyToRoot = pkgs.bashInteractive; - }; - - bashZstdCompressed = pkgs.dockerTools.buildImage { - name = "bash-zstd"; - tag = "latest"; - compressor = "zstd"; - # Not recommended. Use `buildEnv` between copy and packages to avoid file duplication. - copyToRoot = pkgs.bashInteractive; - }; - - # buildImage without explicit tag - bashNoTag = pkgs.dockerTools.buildImage { - name = "bash-no-tag"; - # Not recommended. Use `buildEnv` between copy and packages to avoid file duplication. - copyToRoot = pkgs.bashInteractive; - }; - - # buildLayeredImage without explicit tag - bashNoTagLayered = pkgs.dockerTools.buildLayeredImage { - name = "bash-no-tag-layered"; - contents = pkgs.bashInteractive; - }; - - # buildLayeredImage without compression - bashLayeredUncompressed = pkgs.dockerTools.buildLayeredImage { - name = "bash-layered-uncompressed"; - tag = "latest"; - compressor = "none"; - contents = pkgs.bashInteractive; - }; - - # buildLayeredImage with zstd compression - bashLayeredZstdCompressed = pkgs.dockerTools.buildLayeredImage { - name = "bash-layered-zstd"; - tag = "latest"; - compressor = "zstd"; - contents = pkgs.bashInteractive; - }; - - # streamLayeredImage without explicit tag - bashNoTagStreamLayered = pkgs.dockerTools.streamLayeredImage { - name = "bash-no-tag-stream-layered"; - contents = pkgs.bashInteractive; - }; - - # 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 - pkgs.dockerTools.buildLayeredImage { - name = "bash-layered-with-user"; - tag = "latest"; - 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 ]; - }; - }; - - # 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 - pkgs.dockerTools.buildLayeredImage { - name = "layeredstoresymlink"; - tag = "latest"; - contents = [ pkgs.bash symlink ]; - } // { passthru = { inherit symlink; }; }; - - # image with registry/ prefix - prefixedImage = pkgs.dockerTools.buildImage { - name = "registry-1.docker.io/image"; - tag = "latest"; - config.Cmd = [ "${pkgs.hello}/bin/hello" ]; - }; - - # layered image with registry/ prefix - prefixedLayeredImage = pkgs.dockerTools.buildLayeredImage { - name = "registry-1.docker.io/layered-image"; - tag = "latest"; - config.Cmd = [ "${pkgs.hello}/bin/hello" ]; - }; - - # layered image with files owned by a user other than root - layeredImageWithFakeRootCommands = pkgs.dockerTools.buildLayeredImage { - name = "layered-image-with-fake-root-commands"; - tag = "latest"; - 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 - ''; - }; - - # tarball consisting of both bash and redis images - mergedBashAndRedis = pkgs.dockerTools.mergeImages [ - bash - redis - ]; - - # tarball consisting of bash (without tag) and redis images - mergedBashNoTagAndRedis = pkgs.dockerTools.mergeImages [ - bashNoTag - redis - ]; - - # tarball consisting of bash and layered image with different owner of the - # /home/alice directory - mergedBashFakeRoot = pkgs.dockerTools.mergeImages [ - bash - layeredImageWithFakeRootCommands - ]; - - mergeVaryingCompressor = pkgs.dockerTools.mergeImages [ - redis - bashUncompressed - bashZstdCompressed - ]; - - helloOnRoot = pkgs.dockerTools.streamLayeredImage { - name = "hello"; - tag = "latest"; - contents = [ - (pkgs.buildEnv { - name = "hello-root"; - paths = [ pkgs.hello ]; - }) - ]; - config.Cmd = [ "hello" ]; - }; - - helloOnRootNoStore = pkgs.dockerTools.streamLayeredImage { - name = "hello"; - tag = "latest"; - contents = [ - (pkgs.buildEnv { - name = "hello-root"; - paths = [ pkgs.hello ]; - }) - ]; - config.Cmd = [ "hello" ]; - includeStorePaths = false; - }; - - helloOnRootNoStoreFakechroot = pkgs.dockerTools.streamLayeredImage { - name = "hello"; - tag = "latest"; - contents = [ - (pkgs.buildEnv { - name = "hello-root"; - paths = [ pkgs.hello ]; - }) - ]; - config.Cmd = [ "hello" ]; - includeStorePaths = false; - enableFakechroot = true; - }; - - 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 { - name = "etc"; - tag = "latest"; - enableFakechroot = true; - fakeRootCommands = '' - mkdir -p /etc - ${nixosCore.config.system.build.etcActivationCommands} - ''; - config.Cmd = pkgs.writeScript "etc-cmd" '' - #!${pkgs.busybox}/bin/sh - ${pkgs.busybox}/bin/cat /etc/some-config-file - ''; - }; - - # Example export of the bash image - exportBash = pkgs.dockerTools.exportImage { fromImage = bash; }; - - imageViaFakeChroot = pkgs.dockerTools.streamLayeredImage { - name = "image-via-fake-chroot"; - tag = "latest"; - config.Cmd = [ "hello" ]; - enableFakechroot = true; - # Crucially, instead of a relative path, this creates /bin, which is - # intercepted by fakechroot. - # This functionality is not available on darwin as of 2021. - fakeRootCommands = '' - mkdir /bin - ln -s ${pkgs.hello}/bin/hello /bin/hello - ''; - }; - - build-image-with-path = buildImage { - name = "build-image-with-path"; - tag = "latest"; - # Not recommended. Use `buildEnv` between copy and packages to avoid file duplication. - copyToRoot = [ pkgs.bashInteractive ./test-dummy ]; - }; - - layered-image-with-path = pkgs.dockerTools.streamLayeredImage { - name = "layered-image-with-path"; - tag = "latest"; - contents = [ pkgs.bashInteractive ./test-dummy ]; - }; - - build-image-with-architecture = buildImage { - name = "build-image-with-architecture"; - tag = "latest"; - architecture = "arm64"; - # Not recommended. Use `buildEnv` between copy and packages to avoid file duplication. - 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 ]; - }; - - # ensure that caCertificates builds - image-with-certs = buildImage { - name = "image-with-certs"; - tag = "latest"; - - copyToRoot = pkgs.buildEnv { - name = "image-with-certs-root"; - paths = [ - pkgs.coreutils - pkgs.dockerTools.caCertificates - ]; - }; - - config = { - }; - }; - - nix-shell-basic = streamNixShellImage { - name = "nix-shell-basic"; - tag = "latest"; - drv = pkgs.hello; - }; - - nix-shell-hook = streamNixShellImage { - name = "nix-shell-hook"; - tag = "latest"; - drv = pkgs.mkShell { - shellHook = '' - echo "This is the shell hook!" - exit - ''; - }; - }; - - nix-shell-inputs = streamNixShellImage { - name = "nix-shell-inputs"; - tag = "latest"; - drv = pkgs.mkShell { - nativeBuildInputs = [ - pkgs.hello - ]; - }; - command = '' - hello - ''; - }; - - nix-shell-pass-as-file = streamNixShellImage { - name = "nix-shell-pass-as-file"; - tag = "latest"; - drv = pkgs.mkShell { - str = "this is a string"; - passAsFile = [ "str" ]; - }; - command = '' - cat "$strPath" - ''; - }; - - nix-shell-run = streamNixShellImage { - name = "nix-shell-run"; - tag = "latest"; - drv = pkgs.mkShell {}; - run = '' - case "$-" in - *i*) echo This shell is interactive ;; - *) echo This shell is not interactive ;; - esac - ''; - }; - - nix-shell-command = streamNixShellImage { - name = "nix-shell-command"; - tag = "latest"; - drv = pkgs.mkShell {}; - command = '' - case "$-" in - *i*) echo This shell is interactive ;; - *) echo This shell is not interactive ;; - esac - ''; - }; - - nix-shell-writable-home = streamNixShellImage { - name = "nix-shell-writable-home"; - tag = "latest"; - drv = pkgs.mkShell {}; - run = '' - if [[ "$HOME" != "$(eval "echo ~$(whoami)")" ]]; then - echo "\$HOME ($HOME) is not the same as ~\$(whoami) ($(eval "echo ~$(whoami)"))" - exit 1 - fi - - if ! touch $HOME/test-file; then - echo "home directory is not writable" - exit 1 - fi - echo "home directory is writable" - ''; - }; - - nix-shell-nonexistent-home = streamNixShellImage { - name = "nix-shell-nonexistent-home"; - tag = "latest"; - drv = pkgs.mkShell {}; - homeDirectory = "/homeless-shelter"; - run = '' - if [[ "$HOME" != "$(eval "echo ~$(whoami)")" ]]; then - echo "\$HOME ($HOME) is not the same as ~\$(whoami) ($(eval "echo ~$(whoami)"))" - exit 1 - fi - - if -e $HOME; then - echo "home directory exists" - exit 1 - fi - echo "home directory doesn't exist" - ''; - }; - - nix-shell-build-derivation = streamNixShellImage { - name = "nix-shell-build-derivation"; - tag = "latest"; - drv = pkgs.hello; - run = '' - buildDerivation - $out/bin/hello - ''; - }; - -} diff --git a/pkgs/build-support/docker/nix-prefetch-docker b/pkgs/build-support/docker/nix-prefetch-docker deleted file mode 100755 index f551d37..0000000 --- a/pkgs/build-support/docker/nix-prefetch-docker +++ /dev/null @@ -1,173 +0,0 @@ -#! /usr/bin/env bash - -set -e -o pipefail - -os= -arch= -imageName= -imageTag= -imageDigest= -finalImageName= -finalImageTag= -hashType=$NIX_HASH_ALGO -hashFormat=$hashFormat -format=nix - -usage(){ - echo >&2 "syntax: nix-prefetch-docker [options] [IMAGE_NAME [IMAGE_TAG|IMAGE_DIGEST]] - -Options: - --os os OS to fetch image for - --arch linux Arch to fetch image for - --image-name name Name of the image to fetch - --image-tag tag Image tag - --image-digest digest Image digest - --final-image-name name Desired name of the image - --final-image-tag tag Desired image tag - --json Output result in json format instead of nix - --quiet Only print the final result -" - exit 1 -} - -get_image_digest(){ - local imageName=$1 - local imageTag=$2 - - if test -z "$imageTag"; then - imageTag="latest" - fi - - skopeo --override-os "${os}" --override-arch "${arch}" --insecure-policy --tmpdir=$TMPDIR inspect "docker://$imageName:$imageTag" | jq '.Digest' -r -} - -get_name() { - local imageName=$1 - local imageTag=$2 - - echo "docker-image-$(echo "$imageName:$imageTag" | tr '/:' '-').tar" -} - -argi=0 -argfun="" -for arg; do - if test -z "$argfun"; then - case $arg in - --os) argfun=set_os;; - --arch) argfun=set_arch;; - --image-name) argfun=set_imageName;; - --image-tag) argfun=set_imageTag;; - --image-digest) argfun=set_imageDigest;; - --final-image-name) argfun=set_finalImageName;; - --final-image-tag) argfun=set_finalImageTag;; - --quiet) QUIET=true;; - --json) format=json;; - --help) usage; exit;; - *) - : $((++argi)) - case $argi in - 1) imageName=$arg;; - 2) [[ $arg == *"sha256"* ]] && imageDigest=$arg || imageTag=$arg;; - *) exit 1;; - esac - ;; - esac - else - case $argfun in - set_*) - var=${argfun#set_} - eval $var=$arg - ;; - esac - argfun="" - fi -done - -if test -z "$imageName"; then - usage -fi - -if test -z "$os"; then - os=linux -fi - -if test -z "$arch"; then - arch=amd64 -fi - -if test -z "$hashType"; then - hashType=sha256 -fi - -if test -z "$hashFormat"; then - hashFormat=base32 -fi - -if test -z "$finalImageName"; then - finalImageName="$imageName" -fi - -if test -z "$finalImageTag"; then - if test -z "$imageTag"; then - finalImageTag="latest" - else - finalImageTag="$imageTag" - fi -fi - -if test -z "$imageDigest"; then - imageDigest=$(get_image_digest $imageName $imageTag) -fi - -sourceUrl="docker://$imageName@$imageDigest" - -tmpPath="$(mktemp -d "${TMPDIR:-/tmp}/skopeo-copy-tmp-XXXXXXXX")" -trap "rm -rf \"$tmpPath\"" EXIT - -tmpFile="$tmpPath/$(get_name $finalImageName $finalImageTag)" - -if test -z "$QUIET"; then - skopeo --insecure-policy --tmpdir=$TMPDIR --override-os ${os} --override-arch ${arch} copy "$sourceUrl" "docker-archive://$tmpFile:$finalImageName:$finalImageTag" >&2 -else - skopeo --insecure-policy --tmpdir=$TMPDIR --override-os ${os} --override-arch ${arch} copy "$sourceUrl" "docker-archive://$tmpFile:$finalImageName:$finalImageTag" > /dev/null -fi - -# Compute the hash. -imageHash=$(nix-hash --flat --type $hashType --base32 "$tmpFile") - -# Add the downloaded file to Nix store. -finalPath=$(nix-store --add-fixed "$hashType" "$tmpFile") - -if test -z "$QUIET"; then - echo "-> ImageName: $imageName" >&2 - echo "-> ImageDigest: $imageDigest" >&2 - echo "-> FinalImageName: $finalImageName" >&2 - echo "-> FinalImageTag: $finalImageTag" >&2 - echo "-> ImagePath: $finalPath" >&2 - echo "-> ImageHash: $imageHash" >&2 -fi - -if [ "$format" == "nix" ]; then -cat < - # To enable discovery through `projectReferences` you would need to add a line: - # - # -, projectReferences ? [ ] - # Libraries that need to be available at runtime should be passed through this. - # These get wrapped into `LD_LIBRARY_PATH`. -, 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 - - # 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 ? [ ] - # 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 ? "" - - # The type of build to perform. This is passed to `dotnet` with the `--configuration` flag. Possible values are `Release`, `Debug`, etc. -, buildType ? "Release" - # If set to true, builds the application as a self-contained - removing the runtime dependency on dotnet -, 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 - # Whether to explicitly enable UseAppHost when building. This is redundant if useDotnetFromEnv is enabledz -, useAppHost ? true - # The dotnet SDK to use. -, dotnet-sdk ? dotnetCorePackages.sdk_6_0 - # The dotnet runtime to use. -, 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: - -let - 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; - - localDeps = - 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."; - - # contains the actual package dependencies - dependenciesSource = mkNugetSource { - name = "${name}-dependencies-source"; - description = "A Nuget source with the dependencies for ${name}"; - deps = [ _nugetDeps ] ++ lib.optional (localDeps != null) localDeps; - }; - - # this contains all the nuget packages that are implicitly referenced by the dotnet - # build system. having them as separate deps allows us to avoid having to regenerate - # 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; - }; - - nuget-source = symlinkJoin { - name = "${name}-nuget-source"; - paths = [ dependenciesSource sdkSource ]; - }; - - nugetDepsFile = _nugetDeps.sourceFile; -in -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 - ]; - 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" - ]; - - # Stripping breaks the executable - dontStrip = args.dontStrip or true; - - # gappsWrapperArgs gets included when wrapping for dotnet, as to avoid double wrapping - dontWrapGApps = args.dontWrapGApps or true; - - inherit selfContainedBuild useAppHost useDotnetFromEnv; - - 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 - - export PATH="${lib.makeBinPath [ coreutils runtimeShellPackage dotnet-sdk (nuget-to-nix.override { inherit dotnet-sdk; }) ]}" - - 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 - - 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" - 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; }) diff --git a/pkgs/build-support/dotnet/build-dotnet-module/hooks/default.nix b/pkgs/build-support/dotnet/build-dotnet-module/hooks/default.nix deleted file mode 100644 index 7012ff3..0000000 --- a/pkgs/build-support/dotnet/build-dotnet-module/hooks/default.nix +++ /dev/null @@ -1,89 +0,0 @@ -{ 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); - -let - libraryPath = lib.makeLibraryPath runtimeDeps; -in -{ - dotnetConfigureHook = callPackage ({ }: - makeSetupHook { - name = "dotnet-configure-hook"; - propagatedBuildInputs = [ dotnet-sdk nuget-source ]; - substitutions = { - nugetSource = nuget-source; - dynamicLinker = "${stdenv.cc}/nix-support/dynamic-linker"; - libPath = lib.makeLibraryPath [ - stdenv.cc.cc.lib - stdenv.cc.libc - dotnet-sdk.passthru.icu - zlib - openssl - ]; - inherit runtimeId; - }; - } ./dotnet-configure-hook.sh) { }; - - dotnetBuildHook = callPackage ({ }: - makeSetupHook { - name = "dotnet-build-hook"; - propagatedBuildInputs = [ dotnet-sdk ]; - substitutions = { - inherit buildType runtimeId; - }; - } ./dotnet-build-hook.sh) { }; - - 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; - filters = lib.lists.map (n: "FullyQualifiedName!=${n}") escapedNames; - in - "${lib.concatStringsSep "&" filters}"); - }; - } ./dotnet-check-hook.sh) { }; - - dotnetInstallHook = callPackage ({ }: - makeSetupHook { - name = "dotnet-install-hook"; - propagatedBuildInputs = [ dotnet-sdk ]; - substitutions = { - inherit buildType runtimeId; - }; - } ./dotnet-install-hook.sh) { }; - - dotnetFixupHook = callPackage ({ }: - makeSetupHook { - name = "dotnet-fixup-hook"; - propagatedBuildInputs = [ dotnet-runtime ]; - substitutions = { - dotnetRuntime = dotnet-runtime; - runtimeDeps = libraryPath; - shell = stdenv.shell; - which = "${which}/bin/which"; - dirname = "${coreutils}/bin/dirname"; - realpath = "${coreutils}/bin/realpath"; - }; - } ./dotnet-fixup-hook.sh) { }; -} diff --git a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-build-hook.sh b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-build-hook.sh deleted file mode 100644 index 0acfece..0000000 --- a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-build-hook.sh +++ /dev/null @@ -1,70 +0,0 @@ -# inherit arguments from derivation -dotnetBuildFlags=( ${dotnetBuildFlags[@]-} ) - -dotnetBuildHook() { - echo "Executing dotnetBuildHook" - - runHook preBuild - - if [ "${enableParallelBuilding-}" ]; then - local -r maxCpuFlag="$NIX_BUILD_CORES" - local -r parallelBuildFlag="true" - else - local -r maxCpuFlag="1" - local -r parallelBuildFlag="false" - fi - - if [ "${selfContainedBuild-}" ]; then - dotnetBuildFlags+=("-p:SelfContained=true") - else - dotnetBuildFlags+=("-p:SelfContained=false") - fi - - if [ "${useAppHost-}" ]; then - dotnetBuildFlags+=("-p:UseAppHost=true") - fi - - local versionFlags=() - if [ "${version-}" ]; then - versionFlags+=("-p:InformationalVersion=${version-}") - fi - - if [ "${versionForDotnet-}" ]; then - versionFlags+=("-p:Version=${versionForDotnet-}") - fi - - dotnetBuild() { - local -r project="${1-}" - - runtimeIdFlags=() - if [[ "$project" == *.csproj ]] || [ "${selfContainedBuild-}" ]; then - runtimeIdFlags+=("--runtime @runtimeId@") - fi - - env dotnet build ${project-} \ - -maxcpucount:$maxCpuFlag \ - -p:BuildInParallel=$parallelBuildFlag \ - -p:ContinuousIntegrationBuild=true \ - -p:Deterministic=true \ - --configuration "@buildType@" \ - --no-restore \ - ${versionFlags[@]} \ - ${runtimeIdFlags[@]} \ - ${dotnetBuildFlags[@]} \ - ${dotnetFlags[@]} - } - - (( "${#projectFile[@]}" == 0 )) && dotnetBuild - - for project in ${projectFile[@]} ${testProjectFile[@]-}; do - dotnetBuild "$project" - done - - runHook postBuild - - echo "Finished dotnetBuildHook" -} - -if [[ -z "${dontDotnetBuild-}" && -z "${buildPhase-}" ]]; then - buildPhase=dotnetBuildHook -fi diff --git a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-check-hook.sh b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-check-hook.sh deleted file mode 100644 index 507721e..0000000 --- a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-check-hook.sh +++ /dev/null @@ -1,46 +0,0 @@ -# inherit arguments from derivation -dotnetTestFlags=( ${dotnetTestFlags[@]-} ) - -dotnetCheckHook() { - echo "Executing dotnetCheckHook" - - runHook preCheck - - if [ "${disabledTests-}" ]; then - local -r disabledTestsFlag="--filter @disabledTests@" - fi - - if [ "${enableParallelBuilding-}" ]; then - local -r maxCpuFlag="$NIX_BUILD_CORES" - else - local -r maxCpuFlag="1" - fi - - for project in ${testProjectFile[@]-${projectFile[@]}}; do - runtimeIdFlags=() - if [[ "$project" == *.csproj ]]; then - runtimeIdFlags=("--runtime @runtimeId@") - fi - - env "LD_LIBRARY_PATH=@libraryPath@" \ - dotnet test "$project" \ - -maxcpucount:$maxCpuFlag \ - -p:ContinuousIntegrationBuild=true \ - -p:Deterministic=true \ - --configuration "@buildType@" \ - --no-build \ - --logger "console;verbosity=normal" \ - ${disabledTestsFlag-} \ - ${runtimeIdFlags[@]} \ - "${dotnetTestFlags[@]}" \ - "${dotnetFlags[@]}" - done - - runHook postCheck - - echo "Finished dotnetCheckHook" -} - -if [[ -z "${dontDotnetCheck-}" && -z "${checkPhase-}" ]]; then - checkPhase=dotnetCheckHook -fi diff --git a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-configure-hook.sh b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-configure-hook.sh deleted file mode 100644 index c046fc3..0000000 --- a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-configure-hook.sh +++ /dev/null @@ -1,82 +0,0 @@ -declare -a projectFile testProjectFile - -# Inherit arguments from derivation -dotnetFlags=( ${dotnetFlags[@]-} ) -dotnetRestoreFlags=( ${dotnetRestoreFlags[@]-} ) - -dotnetConfigureHook() { - echo "Executing dotnetConfigureHook" - - runHook preConfigure - - if [ -z "${enableParallelBuilding-}" ]; then - local -r parallelFlag="--disable-parallel" - fi - - dotnetRestore() { - local -r project="${1-}" - env dotnet restore ${project-} \ - -p:ContinuousIntegrationBuild=true \ - -p:Deterministic=true \ - --runtime "@runtimeId@" \ - --source "@nugetSource@/lib" \ - ${parallelFlag-} \ - ${dotnetRestoreFlags[@]} \ - ${dotnetFlags[@]} - } - - # Generate a NuGet.config file to make sure everything, - # including things like dependencies, is restored from the proper source -cat < "./NuGet.config" - - - - - - - -EOF - - # Patch paket.dependencies and paket.lock (if found) to use the proper source. This ensures - # paket restore works correctly - # We use + instead of / in sed to avoid problems with slashes - find -name paket.dependencies -exec sed -i 's+source .*+source @nugetSource@/lib+g' {} \; - find -name paket.lock -exec sed -i 's+remote:.*+remote: @nugetSource@/lib+g' {} \; - - env dotnet tool restore --add-source "@nugetSource@/lib" - - (( "${#projectFile[@]}" == 0 )) && dotnetRestore - - for project in ${projectFile[@]} ${testProjectFile[@]-}; do - dotnetRestore "$project" - done - - echo "Fixing up native binaries..." - # Find all native binaries and nuget libraries, and fix them up, - # by setting the proper interpreter and rpath to some commonly used libraries - for binary in $(find "$HOME/.nuget/packages/" -type f -executable); do - if patchelf --print-interpreter "$binary" >/dev/null 2>/dev/null; then - echo "Found binary: $binary, fixing it up..." - patchelf --set-interpreter "$(cat "@dynamicLinker@")" "$binary" - - # This makes sure that if the binary requires some specific runtime dependencies, it can find it. - # This fixes dotnet-built binaries like crossgen2 - patchelf \ - --add-needed libicui18n.so \ - --add-needed libicuuc.so \ - --add-needed libz.so \ - --add-needed libssl.so \ - "$binary" - - patchelf --set-rpath "@libPath@" "$binary" - fi - done - - runHook postConfigure - - echo "Finished dotnetConfigureHook" -} - -if [[ -z "${dontDotnetConfigure-}" && -z "${configurePhase-}" ]]; then - configurePhase=dotnetConfigureHook -fi diff --git a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-fixup-hook.sh b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-fixup-hook.sh deleted file mode 100644 index e367172..0000000 --- a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-fixup-hook.sh +++ /dev/null @@ -1,57 +0,0 @@ -# Inherit arguments from the derivation -declare -a derivationMakeWrapperArgs="( ${makeWrapperArgs-} )" -makeWrapperArgs=( "${derivationMakeWrapperArgs[@]}" ) - -# First argument is the executable you want to wrap, -# the second is the destination for the wrapper. -wrapDotnetProgram() { - local dotnetRootFlags=() - - if [ ! "${selfContainedBuild-}" ]; then - if [ "${useDotnetFromEnv-}" ]; then - # if dotnet CLI is available, set DOTNET_ROOT based on it. Otherwise set to default .NET runtime - dotnetRootFlags+=("--run" 'command -v dotnet &>/dev/null && export DOTNET_ROOT="$(@dirname@ "$(@realpath@ "$(@which@ dotnet)")")" || export DOTNET_ROOT="@dotnetRuntime@"') - dotnetRootFlags+=("--suffix" "PATH" ":" "@dotnetRuntime@/bin") - else - dotnetRootFlags+=("--set" "DOTNET_ROOT" "@dotnetRuntime@") - dotnetRootFlags+=("--prefix" "PATH" ":" "@dotnetRuntime@/bin") - fi - fi - - makeWrapper "$1" "$2" \ - --suffix "LD_LIBRARY_PATH" : "@runtimeDeps@" \ - "${dotnetRootFlags[@]}" \ - "${gappsWrapperArgs[@]}" \ - "${makeWrapperArgs[@]}" - - echo "installed wrapper to "$2"" -} - -dotnetFixupHook() { - echo "Executing dotnetFixupPhase" - - # check if executables is declared (including empty values, in which case we generate no executables) - if declare -p executables &>/dev/null; then - for executable in ${executables[@]}; do - path="${installPath-$out/lib/$pname}/$executable" - - if test -x "$path"; then - wrapDotnetProgram "$path" "$out/bin/$(basename "$executable")" - else - echo "Specified binary \"$executable\" is either not an executable or does not exist!" - echo "Looked in $path" - exit 1 - fi - done - else - while IFS= read -d '' executable; do - wrapDotnetProgram "$executable" "$out/bin/$(basename "$executable")" \; - done < <(find "${installPath-$out/lib/$pname}" ! -name "*.dll" -executable -type f -print0) - fi - - echo "Finished dotnetFixupPhase" -} - -if [[ -z "${dontDotnetFixup-}" ]]; then - preFixupPhases+=" dotnetFixupHook" -fi diff --git a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-install-hook.sh b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-install-hook.sh deleted file mode 100644 index d832eac..0000000 --- a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-install-hook.sh +++ /dev/null @@ -1,79 +0,0 @@ -# inherit arguments from derivation -dotnetInstallFlags=( ${dotnetInstallFlags[@]-} ) - -dotnetInstallHook() { - echo "Executing dotnetInstallHook" - - runHook preInstall - - if [ "${selfContainedBuild-}" ]; then - dotnetInstallFlags+=("--self-contained") - else - dotnetInstallFlags+=("--no-self-contained") - # https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/trim-self-contained - # Trimming is only available for self-contained build, so force disable it here - dotnetInstallFlags+=("-p:PublishTrimmed=false") - fi - - if [ "${useAppHost-}" ]; then - dotnetInstallFlags+=("-p:UseAppHost=true") - fi - - dotnetPublish() { - local -r project="${1-}" - - runtimeIdFlags=() - if [[ "$project" == *.csproj ]] || [ "${selfContainedBuild-}" ]; then - runtimeIdFlags+=("--runtime @runtimeId@") - fi - - env dotnet publish ${project-} \ - -p:ContinuousIntegrationBuild=true \ - -p:Deterministic=true \ - --output "${installPath-$out/lib/$pname}" \ - --configuration "@buildType@" \ - --no-build \ - ${runtimeIdFlags[@]} \ - ${dotnetInstallFlags[@]} \ - ${dotnetFlags[@]} - } - - dotnetPack() { - local -r project="${1-}" - env dotnet pack ${project-} \ - -p:ContinuousIntegrationBuild=true \ - -p:Deterministic=true \ - --output "$out/share" \ - --configuration "@buildType@" \ - --no-build \ - --runtime "@runtimeId@" \ - ${dotnetPackFlags[@]} \ - ${dotnetFlags[@]} - } - - if (( "${#projectFile[@]}" == 0 )); then - dotnetPublish - else - for project in ${projectFile[@]}; do - dotnetPublish "$project" - done - fi - - if [[ "${packNupkg-}" ]]; then - if (( "${#projectFile[@]}" == 0 )); then - dotnetPack - else - for project in ${projectFile[@]}; do - dotnetPack "$project" - done - fi - fi - - runHook postInstall - - echo "Finished dotnetInstallHook" -} - -if [[ -z "${dontDotnetInstall-}" && -z "${installPhase-}" ]]; then - installPhase=dotnetInstallHook -fi diff --git a/pkgs/build-support/dotnet/build-dotnet-package/default.nix b/pkgs/build-support/dotnet/build-dotnet-package/default.nix deleted file mode 100644 index 14446ef..0000000 --- a/pkgs/build-support/dotnet/build-dotnet-package/default.nix +++ /dev/null @@ -1,116 +0,0 @@ -{ 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)); - - attrs = { - inherit pname version; - - nativeBuildInputs = [ - pkg-config - makeWrapper - dotnetbuildhelpers - mono - ] ++ nativeBuildInputs; - - configurePhase = '' - runHook preConfigure - - [ -z "''${dontPlacateNuget-}" ] && placate-nuget.sh - [ -z "''${dontPlacatePaket-}" ] && placate-paket.sh - [ -z "''${dontPatchFSharpTargets-}" ] && patch-fsharp-targets.sh - - runHook postConfigure - ''; - - buildPhase = '' - runHook preBuild - - 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 - - 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 - [ -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 - - 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" ] )) diff --git a/pkgs/build-support/dotnet/dotnetbuildhelpers/create-pkg-config-for-dll.sh b/pkgs/build-support/dotnet/dotnetbuildhelpers/create-pkg-config-for-dll.sh deleted file mode 100644 index 3791417..0000000 --- a/pkgs/build-support/dotnet/dotnetbuildhelpers/create-pkg-config-for-dll.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -targetDir="$1" -dllFullPath="$2" - -dllVersion="$(monodis --assembly "$dllFullPath" | grep ^Version: | cut -f 2 -d : | xargs)" -[ -z "$dllVersion" ] && echo "Defaulting dllVersion to 0.0.0" && dllVersion="0.0.0" -dllFileName="$(basename $dllFullPath)" -dllRootName="$(basename -s .dll $dllFileName)" -targetPcFile="$targetDir"/"$dllRootName".pc - -mkdir -p "$targetDir" - -cat > $targetPcFile << EOF -Libraries=$dllFullPath - -Name: $dllRootName -Description: $dllRootName -Version: $dllVersion -Libs: -r:$dllFileName -EOF - -echo "Created $targetPcFile" diff --git a/pkgs/build-support/dotnet/dotnetbuildhelpers/default.nix b/pkgs/build-support/dotnet/dotnetbuildhelpers/default.nix deleted file mode 100644 index 4348832..0000000 --- a/pkgs/build-support/dotnet/dotnetbuildhelpers/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ 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 - '' diff --git a/pkgs/build-support/dotnet/dotnetbuildhelpers/patch-fsharp-targets.sh b/pkgs/build-support/dotnet/dotnetbuildhelpers/patch-fsharp-targets.sh deleted file mode 100755 index 3f81cc7..0000000 --- a/pkgs/build-support/dotnet/dotnetbuildhelpers/patch-fsharp-targets.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -# Some project files look for F# targets in $(FSharpTargetsPath) -# so it's a good idea to add something like this to your ~/.bash_profile: - -# export FSharpTargetsPath=$(dirname $(which fsharpc))/../lib/mono/4.0/Microsoft.FSharp.Targets - -# In build scripts, you would add somehting like this: - -# export FSharpTargetsPath="${fsharp}/lib/mono/4.0/Microsoft.FSharp.Targets" - -# However, some project files look for F# targets in the main Mono directory. When that happens -# patch the project files using this script so they will look in $(FSharpTargetsPath) instead. - -echo "Patching F# targets in fsproj files..." - -find -iname \*.fsproj -print -exec \ - sed --in-place=.bak \ - -e 's,\([^<]*\),\1,'g \ - {} \; diff --git a/pkgs/build-support/dotnet/dotnetbuildhelpers/placate-nuget.sh b/pkgs/build-support/dotnet/dotnetbuildhelpers/placate-nuget.sh deleted file mode 100644 index 8a7f365..0000000 --- a/pkgs/build-support/dotnet/dotnetbuildhelpers/placate-nuget.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -echo Placating Nuget in nuget.targets -find -iname nuget.targets -print -exec sed --in-place=bak -e 's,mono --runtime[^<]*,true NUGET PLACATED BY buildDotnetPackage,g' {} \; - -echo Just to be sure, replacing Nuget executables by empty files. -find . -iname nuget.exe \! -size 0 -exec mv -v {} {}.bak \; -exec touch {} \; diff --git a/pkgs/build-support/dotnet/dotnetbuildhelpers/placate-paket.sh b/pkgs/build-support/dotnet/dotnetbuildhelpers/placate-paket.sh deleted file mode 100644 index 0dbf1ee..0000000 --- a/pkgs/build-support/dotnet/dotnetbuildhelpers/placate-paket.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -echo Placating Paket in paket.targets -find -iname paket.targets -print -exec sed --in-place=bak -e 's,mono --runtime[^<]*,true PAKET PLACATED BY buildDotnetPackage,g' {} \; - -echo Just to be sure, replacing Paket executables by empty files. -find . -iname paket\*.exe \! -size 0 -exec mv -v {} {}.bak \; -exec touch {} \; diff --git a/pkgs/build-support/dotnet/dotnetbuildhelpers/remove-duplicated-dlls.sh b/pkgs/build-support/dotnet/dotnetbuildhelpers/remove-duplicated-dlls.sh deleted file mode 100644 index d8d2991..0000000 --- a/pkgs/build-support/dotnet/dotnetbuildhelpers/remove-duplicated-dlls.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env bash - -IFS=" -" - -for dll in $(find -iname \*.dll) -do - baseName="$(basename "$dll" | sed "s/.dll$//i")" - if pkg-config "$baseName" - then - candidateDll="$(pkg-config "$baseName" --variable=Libraries)" - - if diff "$dll" "$candidateDll" >/dev/null - then - echo "$dll is identical to $candidateDll. Substituting..." - rm -vf "$dll" - ln -sv "$candidateDll" "$dll" - else - echo "$dll and $candidateDll share the same name but have different contents, leaving alone." - fi - fi -done diff --git a/pkgs/build-support/dotnet/dotnetenv/Wrapper/Wrapper.sln b/pkgs/build-support/dotnet/dotnetenv/Wrapper/Wrapper.sln deleted file mode 100644 index 7e4c934..0000000 --- a/pkgs/build-support/dotnet/dotnetenv/Wrapper/Wrapper.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wrapper", "Wrapper\Wrapper.csproj", "{D01B3597-E85E-42F4-940A-EF5AE712942F}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x86 = Debug|x86 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D01B3597-E85E-42F4-940A-EF5AE712942F}.Debug|x86.ActiveCfg = Debug|x86 - {D01B3597-E85E-42F4-940A-EF5AE712942F}.Debug|x86.Build.0 = Debug|x86 - {D01B3597-E85E-42F4-940A-EF5AE712942F}.Release|x86.ActiveCfg = Release|x86 - {D01B3597-E85E-42F4-940A-EF5AE712942F}.Release|x86.Build.0 = Release|x86 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/pkgs/build-support/dotnet/dotnetenv/Wrapper/Wrapper/Properties/AssemblyInfo.cs b/pkgs/build-support/dotnet/dotnetenv/Wrapper/Wrapper/Properties/AssemblyInfo.cs deleted file mode 100644 index 633d23c..0000000 --- a/pkgs/build-support/dotnet/dotnetenv/Wrapper/Wrapper/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Wrapper")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Philips Healthcare")] -[assembly: AssemblyProduct("Wrapper")] -[assembly: AssemblyCopyright("Copyright © Philips Healthcare 2011")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("2045ce22-78c7-4cd6-ad0a-9367f8a49738")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/pkgs/build-support/dotnet/dotnetenv/Wrapper/Wrapper/Wrapper.cs.in b/pkgs/build-support/dotnet/dotnetenv/Wrapper/Wrapper/Wrapper.cs.in deleted file mode 100644 index abad090..0000000 --- a/pkgs/build-support/dotnet/dotnetenv/Wrapper/Wrapper/Wrapper.cs.in +++ /dev/null @@ -1,66 +0,0 @@ -using System; -using System.Reflection; -using System.IO; - -namespace @NAMESPACE@Wrapper -{ - class @MAINCLASSNAME@Wrapper - { - private String[] AssemblySearchPaths = { @ASSEMBLYSEARCHPATH@ }; - - private String ExePath = @"@EXEPATH@"; - - private String MainClassName = "@NAMESPACE@.@MAINCLASSNAME@"; - - private Assembly exeAssembly; - - public @MAINCLASSNAME@Wrapper(string[] args) - { - // Attach the resolve event handler to the AppDomain so that missing library assemblies will be searched - AppDomain currentDomain = AppDomain.CurrentDomain; - currentDomain.AssemblyResolve += new ResolveEventHandler(MyResolveEventHandler); - - // Dynamically load the executable assembly - exeAssembly = Assembly.LoadFrom(ExePath); - - // Lookup the main class - Type mainClass = exeAssembly.GetType(MainClassName); - - // Lookup the main method - MethodInfo mainMethod = mainClass.GetMethod("Main"); - - // Invoke the main method - mainMethod.Invoke(this, new Object[] {args}); - } - - static void Main(string[] args) - { - new @MAINCLASSNAME@Wrapper(args); - } - - private Assembly MyResolveEventHandler(object sender, ResolveEventArgs args) - { - // This handler is called only when the common language runtime tries to bind to the assembly and fails. - - Assembly MyAssembly; - String assemblyPath = ""; - String requestedAssemblyName = args.Name.Substring(0, args.Name.IndexOf(",")); - - // Search for the right path of the library assembly - foreach (String currentAssemblyPath in AssemblySearchPaths) - { - assemblyPath = currentAssemblyPath + "/" + requestedAssemblyName + ".dll"; - - if (File.Exists(assemblyPath)) - break; - } - - // Load the assembly from the specified path. - MyAssembly = Assembly.LoadFrom(assemblyPath); - - // Return the loaded assembly. - return MyAssembly; - } - - } -} diff --git a/pkgs/build-support/dotnet/dotnetenv/Wrapper/Wrapper/Wrapper.csproj.in b/pkgs/build-support/dotnet/dotnetenv/Wrapper/Wrapper/Wrapper.csproj.in deleted file mode 100644 index a991bcb..0000000 --- a/pkgs/build-support/dotnet/dotnetenv/Wrapper/Wrapper/Wrapper.csproj.in +++ /dev/null @@ -1,57 +0,0 @@ - - - - Debug - x86 - 8.0.30703 - 2.0 - {D01B3597-E85E-42F4-940A-EF5AE712942F} - Exe - Properties - @ROOTNAMESPACE@ - @ASSEMBLYNAME@ - v4.0 - Client - 512 - - - x86 - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - x86 - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/pkgs/build-support/dotnet/dotnetenv/build-solution.nix b/pkgs/build-support/dotnet/dotnetenv/build-solution.nix deleted file mode 100644 index b3372b9..0000000 --- a/pkgs/build-support/dotnet/dotnetenv/build-solution.nix +++ /dev/null @@ -1,85 +0,0 @@ -{ 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; - -stdenv.mkDerivation { - inherit name src; - - buildInputs = [ dotnetfx ]; - - preConfigure = '' - cd ${baseDir} - ''; - - preBuild = '' - ${lib.optionalString modifyPublicMain '' - sed -i -e "s|static void Main|public static void Main|" ${mainClassFile} - ''} - ${preBuild} - ''; - - 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 $i - done - fi - } - - 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 - - addDeps $i - done - - echo "Assembly search paths are: $assemblySearchPaths" - - 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} - - # 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 - - 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 deleted file mode 100644 index 3015db4..0000000 --- a/pkgs/build-support/dotnet/dotnetenv/default.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ lib, stdenv, dotnetfx }: - -let dotnetenv = -{ - buildSolution = import ./build-solution.nix { - inherit lib stdenv; - dotnetfx = dotnetfx.pkg; - }; - - 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 deleted file mode 100644 index 423303c..0000000 --- a/pkgs/build-support/dotnet/dotnetenv/wrapper.nix +++ /dev/null @@ -1,64 +0,0 @@ -{dotnetenv}: - -{ 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 options assemblyInputs preBuild; - inherit modifyPublicMain mainClassFile; - }; -in -dotnetenv.buildSolution { - name = "${name}-wrapper"; - src = ./Wrapper; - 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 $i - done - fi - } - - 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 - - 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 - ''; -} diff --git a/pkgs/build-support/dotnet/fetchnuget/default.nix b/pkgs/build-support/dotnet/fetchnuget/default.nix deleted file mode 100644 index 061da74..0000000 --- a/pkgs/build-support/dotnet/fetchnuget/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ fetchurl, buildDotnetPackage, unzip }: - -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"; - }; - - sourceRoot = "."; - - nativeBuildInputs = [ unzip ]; - - 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 - } - - traverseRename - ''; - } // attrs) diff --git a/pkgs/build-support/dotnet/make-nuget-deps/default.nix b/pkgs/build-support/dotnet/make-nuget-deps/default.nix deleted file mode 100644 index fcd3f9f..0000000 --- a/pkgs/build-support/dotnet/make-nuget-deps/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ linkFarmFromDrvs, fetchurl }: -{ 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}" }: - 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 deleted file mode 100644 index 4cf9c1a..0000000 --- a/pkgs/build-support/dotnet/make-nuget-source/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib, python3, stdenvNoCC }: - -{ name -, description ? "" -, deps ? [] -, ... -}@args: - -stdenvNoCC.mkDerivation (lib.recursiveUpdate { - inherit name; - - nativeBuildInputs = [ python3 ]; - - 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 ';' - - # 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" ])) diff --git a/pkgs/build-support/dotnet/make-nuget-source/extract-licenses-from-nupkgs.py b/pkgs/build-support/dotnet/make-nuget-source/extract-licenses-from-nupkgs.py deleted file mode 100644 index 22564b0..0000000 --- a/pkgs/build-support/dotnet/make-nuget-source/extract-licenses-from-nupkgs.py +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env python3 -""" -Opens each .nupkg file in a directory, and extracts the SPDX license identifiers -from them if they exist. The SPDX license identifier is stored in the -'...' tag in the .nuspec file. -All found license identifiers will be printed to stdout. -""" - -from glob import glob -from pathlib import Path -import sys -import xml.etree.ElementTree as ET -import zipfile - -all_licenses = set() - -if len(sys.argv) < 2: - print(f"Usage: {sys.argv[0]} DIRECTORY") - sys.exit(1) - -nupkg_dir = Path(sys.argv[1]) -for nupkg_name in glob("*.nupkg", root_dir=nupkg_dir): - with zipfile.ZipFile(nupkg_dir / nupkg_name) as nupkg: - for nuspec_name in [name for name in nupkg.namelist() if name.endswith(".nuspec")]: - with nupkg.open(nuspec_name) as nuspec_stream: - nuspec = ET.parse(nuspec_stream) - licenses = nuspec.findall(".//{*}license[@type='expression']") - all_licenses.update([license.text for license in licenses]) - -print("\n".join(sorted(all_licenses))) diff --git a/pkgs/build-support/dotnet/nuget-to-nix/default.nix b/pkgs/build-support/dotnet/nuget-to-nix/default.nix deleted file mode 100644 index 3fdda4a..0000000 --- a/pkgs/build-support/dotnet/nuget-to-nix/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ 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; - - 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 -'' diff --git a/pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh b/pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh deleted file mode 100755 index 2754bfc..0000000 --- a/pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh +++ /dev/null @@ -1,104 +0,0 @@ -#!@runtimeShell@ - -set -euo pipefail -shopt -s nullglob - -export PATH="@binPath@" -# used for glob ordering of package names -export LC_ALL=C - -if [ $# -eq 0 ]; then - >&2 echo "Usage: $0 [path to a file with a list of excluded packages] > deps.nix" - exit 1 -fi - -pkgs=$1 -tmp=$(realpath "$(mktemp -td nuget-to-nix.XXXXXX)") -trap 'rm -r "$tmp"' EXIT - -excluded_list=$(realpath "${2:-/dev/null}") - -export DOTNET_NOLOGO=1 -export DOTNET_CLI_TELEMETRY_OPTOUT=1 - -mapfile -t sources < <(dotnet nuget list source --format short | awk '/^E / { print $2 }') - -declare -a remote_sources -declare -A base_addresses - -for index in "${sources[@]}"; do - if [[ -d "$index" ]]; then - continue - fi - - remote_sources+=($index) - - base_address=$( - curl --compressed --netrc -fsL "$index" | \ - jq -r '.resources[] | select(."@type" == "PackageBaseAddress/3.0.0")."@id"') - if [[ ! "$base_address" == */ ]]; then - base_address="$base_address/" - fi - base_addresses[$index]="$base_address" -done - -echo "{ fetchNuGet }: [" - -cd "$pkgs" -for package in *; do - [[ -d "$package" ]] || continue - cd "$package" - for version in *; do - id=$(xq -r .package.metadata.id "$version"/*.nuspec) - - if grep -qxF "$id.$version.nupkg" "$excluded_list"; then - continue - fi - - used_source="$(jq -r '.source' "$version"/.nupkg.metadata)" - found=false - - if [[ -d "$used_source" ]]; then - continue - fi - - for source in "${remote_sources[@]}"; do - url="${base_addresses[$source]}$package/$version/$package.$version.nupkg" - if [[ "$source" == "$used_source" ]]; then - sha256="$(nix-hash --type sha256 --flat --base32 "$version/$package.$version".nupkg)" - found=true - break - else - if sha256=$(nix-prefetch-url "$url" 2>"$tmp"/error); then - # If multiple remote sources are enabled, nuget will try them all - # concurrently and use the one that responds first. We always use the - # first source that has the package. - echo "$package $version is available at $url, but was restored from $used_source" 1>&2 - found=true - break - else - if ! grep -q 'HTTP error 404' "$tmp/error"; then - cat "$tmp/error" 1>&2 - exit 1 - fi - fi - fi - done - - if [[ $found = false ]]; then - echo "couldn't find $package $version" >&2 - exit 1 - fi - - if [[ "$source" != https://api.nuget.org/v3/index.json ]]; then - echo " (fetchNuGet { pname = \"$id\"; version = \"$version\"; sha256 = \"$sha256\"; url = \"$url\"; })" - else - echo " (fetchNuGet { pname = \"$id\"; version = \"$version\"; sha256 = \"$sha256\"; })" - fi - done - cd .. -done - -cat << EOL -] -EOL diff --git a/pkgs/build-support/emacs/buffer.nix b/pkgs/build-support/emacs/buffer.nix deleted file mode 100644 index 48a7996..0000000 --- a/pkgs/build-support/emacs/buffer.nix +++ /dev/null @@ -1,77 +0,0 @@ -# Functions to build elisp files to locally configure emcas buffers. -# See https://github.com/shlevy/nix-buffer - -{ lib, writeText, inherit-local }: - -rec { - 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" '' - (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 - (defvar nixpkgs--buffer-count 0) - (when (eq nixpkgs--buffer-count 0) - (make-variable-buffer-local 'nixpkgs--is-nixpkgs-buffer) - ; When generating a new temporary buffer (one whose name starts with a space), do inherit-local inheritance and make it a nixpkgs buffer - (defun nixpkgs--around-generate (orig name &optional ibh) - (if (and nixpkgs--is-nixpkgs-buffer (eq (aref name 0) ?\s)) - (let ((buf (funcall orig name ibh))) - (progn - (inherit-local-inherit-child buf) - (with-current-buffer buf - (setq nixpkgs--buffer-count (1+ nixpkgs--buffer-count)) - (add-hook 'kill-buffer-hook 'nixpkgs--decrement-buffer-count nil t))) - buf) - (funcall orig name ibh))) - (advice-add 'generate-new-buffer :around #'nixpkgs--around-generate) - ; When we have no more nixpkgs buffers, tear down the buffer handling - (defun nixpkgs--decrement-buffer-count () - (setq nixpkgs--buffer-count (1- nixpkgs--buffer-count)) - (when (eq nixpkgs--buffer-count 0) - (advice-remove 'generate-new-buffer #'nixpkgs--around-generate) - (fmakunbound 'nixpkgs--around-generate) - (fmakunbound 'nixpkgs--decrement-buffer-count)))) - (setq nixpkgs--buffer-count (1+ nixpkgs--buffer-count)) - (add-hook 'kill-buffer-hook 'nixpkgs--decrement-buffer-count nil t) - - ; Add packages to PATH and exec-path - (make-local-variable 'process-environment) - (put 'process-environment 'permanent-local t) - (inherit-local 'process-environment) - ; 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 eshell-path-env (concat "${lib.makeSearchPath "bin" pkgs}:" (if (boundp 'eshell-path-env) eshell-path-env (getenv "PATH")))) - - (setq nixpkgs--is-nixpkgs-buffer t) - (inherit-local 'nixpkgs--is-nixpkgs-buffer) - - ${lib.concatStringsSep "\n" extras} - ''; - # 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) - ) (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 - 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 deleted file mode 100644 index a43578f..0000000 --- a/pkgs/build-support/emacs/elpa.nix +++ /dev/null @@ -1,37 +0,0 @@ -# builder for Emacs packages built for packages.el - -{ lib, stdenv, emacs, texinfo, writeText, gcc }: - -let - handledArgs = [ "files" "fileSpecs" "meta" ]; - genericBuild = import ./generic.nix { inherit lib stdenv emacs texinfo writeText gcc; }; - -in - -{ pname -, version -, src -, meta ? {} -, ... -}@args: - -genericBuild ({ - - dontUnpack = true; - - installPhase = '' - runHook preInstall - - emacs --batch -Q -l ${./elpa2nix.el} \ - -f elpa2nix-install-package \ - "$src" "$out/share/emacs/site-lisp/elpa" - - runHook postInstall - ''; - - meta = { - homepage = args.src.meta.homepage or "https://elpa.gnu.org/packages/${pname}.html"; - } // meta; -} - -// removeAttrs args handledArgs) diff --git a/pkgs/build-support/emacs/elpa2nix.el b/pkgs/build-support/emacs/elpa2nix.el deleted file mode 100644 index 64587c0..0000000 --- a/pkgs/build-support/emacs/elpa2nix.el +++ /dev/null @@ -1,33 +0,0 @@ -(require 'package) -(package-initialize) - -(defun elpa2nix-install-package () - (if (not noninteractive) - (error "`elpa2nix-install-package' is to be used only with -batch")) - (pcase command-line-args-left - (`(,archive ,elpa) - (progn (setq package-user-dir elpa) - (elpa2nix-install-file archive))))) - -(defun elpa2nix-install-from-buffer () - "Install a package from the current buffer." - (let ((pkg-desc (if (derived-mode-p 'tar-mode) - (package-tar-file-info) - (package-buffer-info)))) - ;; Install the package itself. - (package-unpack pkg-desc) - pkg-desc)) - -(defun elpa2nix-install-file (file) - "Install a package from a file. -The file can either be a tar file or an Emacs Lisp file." - (let ((is-tar (string-match "\\.tar\\'" file))) - (with-temp-buffer - (if is-tar - (insert-file-contents-literally file) - (insert-file-contents file)) - (when is-tar (tar-mode)) - (elpa2nix-install-from-buffer)))) - -;; Allow installing package tarfiles larger than 10MB -(setq large-file-warning-threshold nil) diff --git a/pkgs/build-support/emacs/emacs-funcs.sh b/pkgs/build-support/emacs/emacs-funcs.sh deleted file mode 100644 index e1e6a3b..0000000 --- a/pkgs/build-support/emacs/emacs-funcs.sh +++ /dev/null @@ -1,34 +0,0 @@ -addToEmacsLoadPath() { - local lispDir="$1" - if [[ -d $lispDir && ${EMACSLOADPATH-} != *"$lispDir":* ]] ; then - # It turns out, that the trailing : is actually required - # see https://www.gnu.org/software/emacs/manual/html_node/elisp/Library-Search.html - export EMACSLOADPATH="$lispDir:${EMACSLOADPATH-}" - fi -} - -addToEmacsNativeLoadPath() { - local nativeDir="$1" - if [[ -d $nativeDir && ${EMACSNATIVELOADPATH-} != *"$nativeDir":* ]]; then - export EMACSNATIVELOADPATH="$nativeDir:${EMACSNATIVELOADPATH-}" - fi -} - -addEmacsVars () { - addToEmacsLoadPath "$1/share/emacs/site-lisp" - - if [ -n "${addEmacsNativeLoadPath:-}" ]; then - addToEmacsNativeLoadPath "$1/share/emacs/native-lisp" - fi - - # Add sub paths to the Emacs load path if it is a directory - # containing .el files. This is necessary to build some packages, - # e.g., using trivialBuild. - for lispDir in \ - "$1/share/emacs/site-lisp/"* \ - "$1/share/emacs/site-lisp/elpa/"*; do - if [[ -d $lispDir && "$(echo "$lispDir"/*.el)" ]] ; then - addToEmacsLoadPath "$lispDir" - fi - done -} diff --git a/pkgs/build-support/emacs/generic.nix b/pkgs/build-support/emacs/generic.nix deleted file mode 100644 index bdf1cd4..0000000 --- a/pkgs/build-support/emacs/generic.nix +++ /dev/null @@ -1,90 +0,0 @@ -# generic builder for Emacs packages - -{ lib, stdenv, emacs, texinfo, writeText, gcc, ... }: - -let - inherit (lib) optionalAttrs getLib; - handledArgs = [ "buildInputs" "packageRequires" "meta" ]; - - setupHook = writeText "setup-hook.sh" '' - source ${./emacs-funcs.sh} - - if [[ ! -v emacsHookDone ]]; then - emacsHookDone=1 - - # If this is for a wrapper derivation, emacs and the dependencies are all - # run-time dependencies. If this is for precompiling packages into bytecode, - # emacs is a compile-time dependency of the package. - addEnvHooks "$hostOffset" addEmacsVars - addEnvHooks "$targetOffset" addEmacsVars - fi - ''; - -in - -{ pname -, version -, buildInputs ? [] -, packageRequires ? [] -, meta ? {} -, ... -}@args: - -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 - ''; - - buildInputs = [emacs texinfo] ++ packageRequires ++ buildInputs; - propagatedBuildInputs = packageRequires; - propagatedUserEnvPkgs = packageRequires; - - inherit setupHook; - - doCheck = false; - - meta = { - broken = false; - platforms = emacs.meta.platforms; - } // optionalAttrs ((args.src.meta.homepage or "") != "") { - homepage = args.src.meta.homepage; - } // meta; -} - -// optionalAttrs (emacs.withNativeCompilation or false) { - - LIBRARY_PATH = "${getLib stdenv.cc.libc}/lib"; - - nativeBuildInputs = [ gcc ]; - - 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" - - 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)) diff --git a/pkgs/build-support/emacs/melpa.nix b/pkgs/build-support/emacs/melpa.nix deleted file mode 100644 index 323c6e6..0000000 --- a/pkgs/build-support/emacs/melpa.nix +++ /dev/null @@ -1,109 +0,0 @@ -# builder for Emacs packages built for packages.el -# using MELPA package-build.el - -{ lib, stdenv, fetchFromGitHub, emacs, texinfo, writeText, gcc }: - -let - genericBuild = import ./generic.nix { inherit lib stdenv emacs texinfo writeText gcc; }; - - packageBuild = stdenv.mkDerivation { - name = "package-build"; - src = fetchFromGitHub { - owner = "melpa"; - repo = "package-build"; - rev = "c48aa078c01b4f07b804270c4583a0a58ffea1c0"; - sha256 = "sha256-MzPj375upIiYXdQR+wWXv3A1zMqbSrZlH0taLuxx/1M="; - }; - - patches = [ ./package-build-dont-use-mtime.patch ]; - - dontConfigure = true; - dontBuild = true; - - installPhase = " - mkdir -p $out - cp -r * $out - "; - }; - -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 ? {} -, ... -}@args: - -genericBuild ({ - - ename = - if ename == null - then pname - else ename; - - elpa2nix = ./elpa2nix.el; - melpa2nix = ./melpa2nix.el; - - inherit packageBuild; - - 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" - - 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 - ''; - - 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/melpa2nix.el b/pkgs/build-support/emacs/melpa2nix.el deleted file mode 100644 index 3de77db..0000000 --- a/pkgs/build-support/emacs/melpa2nix.el +++ /dev/null @@ -1,32 +0,0 @@ -(require 'package) -(package-initialize) - -(require 'package-recipe) -(require 'package-build) - -(setq package-build-working-dir (expand-file-name "working/")) -(setq package-build-archive-dir (expand-file-name "packages/")) -(setq package-build-recipes-dir (expand-file-name "recipes/")) - -;; Allow installing package tarfiles larger than 10MB -(setq large-file-warning-threshold nil) - -(defun melpa2nix-build-package-1 (rcp) - (let* ((default-directory (package-recipe--working-tree rcp))) - (unwind-protect - (let ((files (package-build-expand-files-spec rcp t))) - (unless files - (error "Unable to find files matching recipe patterns")) - (if (> (length files) 1) - (package-build--build-multi-file-package rcp files) - (package-build--build-single-file-package rcp files)))))) - -(defun melpa2nix-build-package () - (unless noninteractive - (error "`melpa2nix-build-package' is to be used only with -batch")) - (pcase command-line-args-left - (`(,package ,version ,commit) - (let ((recipe (package-recipe-lookup package))) - (setf (oref recipe commit) commit) - (setf (oref recipe version) version) - (melpa2nix-build-package-1 recipe))))) diff --git a/pkgs/build-support/emacs/mk-wrapper-subdirs.el b/pkgs/build-support/emacs/mk-wrapper-subdirs.el deleted file mode 100644 index 7d30400..0000000 --- a/pkgs/build-support/emacs/mk-wrapper-subdirs.el +++ /dev/null @@ -1,6 +0,0 @@ -(defmacro mk-subdirs-expr (path) - `(setq load-path - (delete-dups (append '(,path) - ',(let ((default-directory path)) - (normal-top-level-add-subdirs-to-load-path)) - load-path)))) diff --git a/pkgs/build-support/emacs/package-build-dont-use-mtime.patch b/pkgs/build-support/emacs/package-build-dont-use-mtime.patch deleted file mode 100644 index 1ace777..0000000 --- a/pkgs/build-support/emacs/package-build-dont-use-mtime.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/package-build.el b/package-build.el -index 29cdb61..c19be1b 100644 ---- a/package-build.el -+++ b/package-build.el -@@ -923,7 +923,6 @@ DIRECTORY is a temporary directory that contains the directory - that is put in the tarball." - (let* ((name (oref rcp name)) - (version (oref rcp version)) -- (time (oref rcp time)) - (tar (expand-file-name (concat name "-" version ".tar") - package-build-archive-dir)) - (dir (concat name "-" version))) -@@ -939,7 +938,7 @@ that is put in the tarball." - ;; prevent a reproducible tarball as described at - ;; https://reproducible-builds.org/docs/archives. - "--sort=name" -- (format "--mtime=@%d" time) -+ "--mtime=@0" - "--owner=0" "--group=0" "--numeric-owner" - "--pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime")) - (when (and package-build-verbose noninteractive) diff --git a/pkgs/build-support/emacs/trivial.nix b/pkgs/build-support/emacs/trivial.nix deleted file mode 100644 index 11c28c0..0000000 --- a/pkgs/build-support/emacs/trivial.nix +++ /dev/null @@ -1,28 +0,0 @@ -# trivial builder for Emacs packages - -{ callPackage, lib, ... }@envargs: - -args: - -callPackage ./generic.nix envargs ({ - buildPhase = '' - runHook preBuild - - emacs -L . --batch -f batch-byte-compile *.el - - runHook postBuild - ''; - - 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\")" - - runHook postInstall - ''; -} - -// args) diff --git a/pkgs/build-support/emacs/wrapper.nix b/pkgs/build-support/emacs/wrapper.nix deleted file mode 100644 index 59a6942..0000000 --- a/pkgs/build-support/emacs/wrapper.nix +++ /dev/null @@ -1,236 +0,0 @@ -/* - -# 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. - -# 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 }: -self: -let - inherit (self) emacs; - withNativeCompilation = emacs.withNativeCompilation or false; - withTreeSitter = emacs.withTreeSitter or false; -in -packagesFun: # packages explicitly requested by the user -let - explicitRequires = - if lib.isFunction packagesFun - then packagesFun self - else packagesFun; -in -runCommand - (lib.appendToName "with-packages" emacs).name - { - inherit emacs explicitRequires; - 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=("$@") - - # 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")' - - 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 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" - ${lib.optionalString withNativeCompilation '' - linkPath "$1" "share/emacs/native-lisp" "share/emacs/native-lisp" - ''} - ${lib.optionalString withTreeSitter '' - linkPath "$1" "lib" "lib" - ''} - } - - # Iterate over the array of inputs (avoiding nix's own interpolation) - for pkg in "''${requires[@]}"; do - linkEmacsPackage $pkg - done - - 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; - } - '' - mkdir -p "$out/bin" - - # Wrap emacs and friends so they find our site-start.el before the original. - for prog in $emacs/bin/*; do # */ - local progname=$(basename "$prog") - rm -f "$out/bin/$progname" - - substitute ${./wrapper.sh} $out/bin/$progname \ - --subst-var-by bash ${emacs.stdenv.shell} \ - --subst-var-by wrapperSiteLisp "$deps/share/emacs/site-lisp" \ - --subst-var-by wrapperSiteLispNative "$deps/share/emacs/native-lisp" \ - --subst-var prog - chmod +x $out/bin/$progname - # Create a “NOP” binary wrapper for the pure sake of it becoming a - # non-shebang, actual binary. See the makeBinaryWrapper docs for rationale - # (summary: it allows you to use emacs as a shebang itself on Darwin, - # e.g. #!$ {emacs}/bin/emacs --script) - wrapProgramBinary $out/bin/$progname - done - - # Wrap MacOS app - # this has to pick up resources and metadata - # to recognize it as an "app" - if [ -d "$emacs/Applications/Emacs.app" ]; then - mkdir -p $out/Applications/Emacs.app/Contents/MacOS - cp -r $emacs/Applications/Emacs.app/Contents/Info.plist \ - $emacs/Applications/Emacs.app/Contents/PkgInfo \ - $emacs/Applications/Emacs.app/Contents/Resources \ - $out/Applications/Emacs.app/Contents - - - substitute ${./wrapper.sh} $out/Applications/Emacs.app/Contents/MacOS/Emacs \ - --subst-var-by bash ${emacs.stdenv.shell} \ - --subst-var-by wrapperSiteLisp "$deps/share/emacs/site-lisp" \ - --subst-var-by wrapperSiteLispNative "$deps/share/emacs/native-lisp" \ - --subst-var-by prog "$emacs/Applications/Emacs.app/Contents/MacOS/Emacs" - chmod +x $out/Applications/Emacs.app/Contents/MacOS/Emacs - wrapProgramBinary $out/Applications/Emacs.app/Contents/MacOS/Emacs - fi - - mkdir -p $out/share - # Link icons and desktop files into place - for dir in applications icons info man; do - ln -s $emacs/share/$dir $out/share/$dir - done - '' diff --git a/pkgs/build-support/emacs/wrapper.sh b/pkgs/build-support/emacs/wrapper.sh deleted file mode 100644 index 44762bd..0000000 --- a/pkgs/build-support/emacs/wrapper.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!@bash@ - -IFS=: - -newLoadPath=() -newNativeLoadPath=() -addedNewLoadPath= -addedNewNativeLoadPath= - -if [[ -n $EMACSLOADPATH ]] -then - while read -rd: entry - do - if [[ -z $entry && -z $addedNewLoadPath ]] - then - newLoadPath+=(@wrapperSiteLisp@) - addedNewLoadPath=1 - fi - newLoadPath+=("$entry") - done <<< "$EMACSLOADPATH:" -else - newLoadPath+=(@wrapperSiteLisp@) - newLoadPath+=("") -fi - -# NOTE: Even though we treat EMACSNATIVELOADPATH like EMACSLOADPATH in -# this wrapper, empty elements in EMACSNATIVELOADPATH have no special -# meaning for Emacs. Only non-empty elements in EMACSNATIVELOADPATH -# will be prepended to native-comp-eln-load-path. -# https://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/startup.el?id=3685387e609753293c4518be75e77c659c3b2d8d#n599 -if [[ -n $EMACSNATIVELOADPATH ]] -then - while read -rd: entry - do - if [[ -z $entry && -z $addedNewNativeLoadPath ]] - then - newNativeLoadPath+=(@wrapperSiteLispNative@) - addedNewNativeLoadPath=1 - fi - newNativeLoadPath+=("$entry") - done <<< "$EMACSNATIVELOADPATH:" -else - newNativeLoadPath+=(@wrapperSiteLispNative@) - newNativeLoadPath+=("") -fi - -export EMACSLOADPATH="${newLoadPath[*]}" -export emacsWithPackages_siteLisp=@wrapperSiteLisp@ - -export EMACSNATIVELOADPATH="${newNativeLoadPath[*]}" -export emacsWithPackages_siteLispNative=@wrapperSiteLispNative@ - -exec @prog@ "$@" diff --git a/pkgs/build-support/expand-response-params/default.nix b/pkgs/build-support/expand-response-params/default.nix deleted file mode 100644 index 6868ab9..0000000 --- a/pkgs/build-support/expand-response-params/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ stdenv, lib }: - -# A "response file" is a sequence of arguments that is passed via a -# file, rather than via argv[]. - -# For more information see: -# https://gcc.gnu.org/wiki/Response_Files -# https://www.intel.com/content/www/us/en/docs/dpcpp-cpp-compiler/developer-guide-reference/2023-0/use-response-files.html - -stdenv.mkDerivation { - name = "expand-response-params"; - src = ./expand-response-params.c; - strictDeps = true; - enableParallelBuilding = true; - # Work around "stdenv-darwin-boot-2 is not allowed to refer to path - # /nix/store/...-expand-response-params.c" - unpackPhase = '' - cp "$src" expand-response-params.c - src=$PWD - ''; - buildPhase = '' - NIX_CC_USE_RESPONSE_FILE=0 "$CC" -std=c99 -O3 -o "expand-response-params" expand-response-params.c - ''; - installPhase = '' - mkdir -p $prefix/bin - mv expand-response-params $prefix/bin/ - ''; - - meta = { - description = "Internal tool used by the nixpkgs wrapper scripts for processing response files"; - longDescription = '' - expand-response-params is a tool that allows for obtaining a full list of all - arguments passed in a given compiler command line including those passed via - so-called response files. The nixpkgs wrapper scripts for bintools and C - compilers use it for processing compiler flags. As it is developed in - conjunction with the nixpkgs wrapper scripts, it should be considered as - unstable and subject to change. - ''; - license = lib.licenses.mit; - platforms = lib.platforms.all; - }; -} diff --git a/pkgs/build-support/expand-response-params/expand-response-params.c b/pkgs/build-support/expand-response-params/expand-response-params.c deleted file mode 100644 index 05b9c62..0000000 --- a/pkgs/build-support/expand-response-params/expand-response-params.c +++ /dev/null @@ -1,84 +0,0 @@ -#include -#include -#include -#include -#include - -typedef struct { char *data; size_t len, cap; } String; - -void resize(String *s, size_t len) { - s->len = len; - if (s->cap < s->len) { - s->cap = s->len * 2; - s->data = (char *)realloc(s->data, s->cap); - assert(s->data); - } -} - -void append(String *s, const char *data, size_t len) { - resize(s, s->len + len); - memcpy(s->data + s->len - len, data, len); -} - -typedef enum { space = 0, other = 1, backslash = 2, apostrophe = 3, quotation_mark = 4 } CharClass; -typedef enum { outside, unq, unq_esc, sq, sq_esc, dq, dq_esc } State; - -// current State -> CharClass -> next State -const State transitions[][5] = { - [outside] = {outside, unq, unq_esc, sq, dq}, - [unq] = {outside, unq, unq_esc, sq, dq}, - [unq_esc] = {unq, unq, unq, unq, unq}, - [sq] = {sq, sq, sq_esc, unq, sq}, - [sq_esc] = {sq, sq, sq, sq, sq}, - [dq] = {dq, dq, dq_esc, dq, unq}, - [dq_esc] = {dq, dq, dq, dq, dq}, -}; - -CharClass charClass(int c) { - return c == '\\' ? backslash : c == '\'' ? apostrophe : c == '"' ? quotation_mark : - isspace(c) ? space : other; -} - -// expandArg writes NULL-terminated expansions of `arg', a NULL-terminated -// string, to stdout. If arg does not begin with `@' or does not refer to a -// file, it is written as is. Otherwise the contents of the file are -// recursively expanded. On unexpected EOF in malformed response files an -// incomplete final argument is written, even if it is empty, to parse like GCC. -void expandArg(String *arg) { - FILE *f; - if (arg->data[0] != '@' || !(f = fopen(&arg->data[1], "r"))) { - fwrite(arg->data, 1, arg->len, stdout); - return; - } - - resize(arg, 0); - State cur = outside; - int c; - do { - c = fgetc(f); - State next = transitions[cur][charClass(c)]; - if ((cur == unq && next == outside) || (cur != outside && c == EOF)) { - append(arg, "", 1); - expandArg(arg); - resize(arg, 0); - } else if (cur == unq_esc || cur == sq_esc || cur == dq_esc || - (cur == outside ? next == unq : cur == next)) { - char s = c; - append(arg, &s, 1); - } - cur = next; - } while (c != EOF); - - fclose(f); -} - -int main(int argc, char **argv) { - String arg = { 0 }; - while (*++argv) { - resize(&arg, 0); - append(&arg, *argv, strlen(*argv) + 1); - expandArg(&arg); - } - free(arg.data); - return EXIT_SUCCESS; -} diff --git a/pkgs/build-support/fake-nss/default.nix b/pkgs/build-support/fake-nss/default.nix deleted file mode 100644 index 7d85ec5..0000000 --- a/pkgs/build-support/fake-nss/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -# Provide a /etc/passwd and /etc/group that contain root and nobody. -# 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 ? [] }: -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 - '') - (writeTextDir "etc/group" '' - root:x:0: - ${lib.concatStrings (map (line: line + "\n") extraGroupLines)}nobody:x:65534: - '') - (writeTextDir "etc/nsswitch.conf" '' - hosts: files dns - '') - (runCommand "var-empty" { } '' - mkdir -p $out/var/empty - '') - ]; -} diff --git a/pkgs/build-support/fetch9front/default.nix b/pkgs/build-support/fetch9front/default.nix deleted file mode 100644 index 677fee1..0000000 --- a/pkgs/build-support/fetch9front/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ fetchgit, fetchzip, lib }: - -lib.makeOverridable ( - { 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" ]; - - 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"; - - passthru = { - inherit gitRepoUrl; - }; - }) // passthruAttrs // { inherit name; }; - in - - fetcher fetcherArgs // { inherit rev; } -) diff --git a/pkgs/build-support/fetchbitbucket/default.nix b/pkgs/build-support/fetchbitbucket/default.nix deleted file mode 100644 index 2f9103f..0000000 --- a/pkgs/build-support/fetchbitbucket/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ 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; } -) diff --git a/pkgs/build-support/fetchbower/default.nix b/pkgs/build-support/fetchbower/default.nix deleted file mode 100644 index fd971d4..0000000 --- a/pkgs/build-support/fetchbower/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ stdenvNoCC, lib, bower2nix, cacert }: -let - bowerVersion = version: - let - components = lib.splitString "#" version; - hash = lib.last components; - ver = if builtins.length components == 1 then (cleanName version) else hash; - in ver; - - 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 ]; - }; - -in fetchbower diff --git a/pkgs/build-support/fetchbzr/builder.sh b/pkgs/build-support/fetchbzr/builder.sh deleted file mode 100644 index 4515e0e..0000000 --- a/pkgs/build-support/fetchbzr/builder.sh +++ /dev/null @@ -1,8 +0,0 @@ -if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi -source "$stdenv/setup" - -echo "exporting \`$url' (revision $rev) into \`$out'" - -# Perform a lightweight checkout so that we don't end up importing -# all the repository's history. -XDG_CACHE_HOME="$TMPDIR" BRZ_LOG=/dev/null bzr -Ossl.cert_reqs=none export -r "$rev" --format=dir "$out" "$url" diff --git a/pkgs/build-support/fetchbzr/default.nix b/pkgs/build-support/fetchbzr/default.nix deleted file mode 100644 index b7db9e9..0000000 --- a/pkgs/build-support/fetchbzr/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ stdenvNoCC, breezy }: -{ url, rev, sha256 }: - -stdenvNoCC.mkDerivation { - name = "bzr-export"; - - builder = ./builder.sh; - nativeBuildInputs = [ breezy ]; - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = sha256; - - inherit url rev; -} diff --git a/pkgs/build-support/fetchbzr/nix-prefetch-bzr b/pkgs/build-support/fetchbzr/nix-prefetch-bzr deleted file mode 100755 index dbe8a7e..0000000 --- a/pkgs/build-support/fetchbzr/nix-prefetch-bzr +++ /dev/null @@ -1,74 +0,0 @@ -#! /bin/sh -e - -url=$1 -rev=$2 -expHash=$3 - -hashType=$NIX_HASH_ALGO -if test -z "$hashType"; then - hashType=sha256 -fi -if test -z "$hashFormat"; then - hashFormat=--base32 -fi - -if test -z "$url"; then - echo "syntax: nix-prefetch-bzr URL [REVISION [EXPECTED-HASH]]" >&2 - exit 1 -fi - -revarg="-r $rev" -test -n "$rev" || revarg="" - -repoName=$(echo $url | sed ' - s,.*/\([^/]\+\)/trunk/*$,\1,;t - s,.*/\([^/]\+\)/branches/\([^/]\+\)/*$,\1-\2,;t - s,.*/\([^/]\+\)/tags/\([^/]\+\)/*$,\1-\2,;t - s,.*/\([^/]\+\)/*$,\1,;t -') -dstFile="bzr-export" - -# If the hash was given, a file with that hash may already be in the -# store. -if test -n "$expHash"; then - finalPath=$(nix-store --print-fixed-path --recursive "$hashType" "$expHash" $dstFile) - if ! nix-store --check-validity "$finalPath" 2> /dev/null; then - finalPath= - fi - hash=$expHash -fi - - -# If we don't know the hash or a path with that hash doesn't exist, -# download the file and add it to the store. -if test -z "$finalPath"; then - tmpPath="$(mktemp -d "${TMPDIR:-/tmp}/bzr-checkout-tmp-XXXXXXXX")" - trap "rm -rf \"$tmpPath\"" EXIT - - tmpFile="$tmpPath/$dstFile" - - # Perform the checkout. - bzr -Ossl.cert_reqs=none export $revarg --format=dir "$tmpFile" "$url" - - echo "bzr revision is $(bzr revno $revarg "$url")" - - # Compute the hash. - hash=$(nix-hash --type $hashType $hashFormat $tmpFile) - if ! test -n "$QUIET"; then echo "hash is $hash" >&2; fi - - # Add the downloaded file to the Nix store. - finalPath=$(nix-store --add-fixed --recursive "$hashType" $tmpFile) - - if test -n "$expHash" -a "$expHash" != "$hash"; then - echo "hash mismatch for URL \`$url'" - exit 1 - fi -fi - -if ! test -n "$QUIET"; then echo "path is $finalPath" >&2; fi - -echo $hash - -if test -n "$PRINT_PATH"; then - echo $finalPath -fi diff --git a/pkgs/build-support/fetchcvs/builder.sh b/pkgs/build-support/fetchcvs/builder.sh deleted file mode 100644 index 7e4dde4..0000000 --- a/pkgs/build-support/fetchcvs/builder.sh +++ /dev/null @@ -1,26 +0,0 @@ -if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi -source $stdenv/setup - -(echo "#!$SHELL"; \ - echo 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "$@"') > ssh -chmod +x ssh -export CVS_RSH=$PWD/ssh - -# creating the export drictory and checking out there only to be able to -# move the content without the root directory into $out ... -# cvs -f -d "$url" export $tag -d "$out" "$module" -# should work (but didn't - got no response on #cvs) -# See als man Page for those options - -mkdir -p export -if [ -n "$tag" ]; then - tag="-r $tag" -else - if [ -n "$date" ]; then - tag="-D $date" - else - tag="-D NOW" - fi -fi -(cd export && cvs -f -z0 -d "$cvsRoot" export $tag "$module") -mv export/* $out diff --git a/pkgs/build-support/fetchcvs/default.nix b/pkgs/build-support/fetchcvs/default.nix deleted file mode 100644 index 43a10c3..0000000 --- a/pkgs/build-support/fetchcvs/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -# example tags: -# date="2007-20-10"; (get the last version before given date) -# tag="" (get version by tag name) -# If you don't specify neither one date="NOW" will be used (get latest) - -{stdenvNoCC, cvs, openssh, lib}: - -lib.makeOverridable ( -{cvsRoot, module, tag ? null, date ? null, sha256}: - -stdenvNoCC.mkDerivation { - name = "cvs-export"; - builder = ./builder.sh; - nativeBuildInputs = [cvs openssh]; - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = sha256; - - inherit cvsRoot module sha256 tag date; -} -) diff --git a/pkgs/build-support/fetchcvs/nix-prefetch-cvs b/pkgs/build-support/fetchcvs/nix-prefetch-cvs deleted file mode 100755 index b6a169f..0000000 --- a/pkgs/build-support/fetchcvs/nix-prefetch-cvs +++ /dev/null @@ -1,80 +0,0 @@ -#! /bin/sh -e - -cvsRoot=$1 -module=$2 -tag=$3 -expHash=$4 - -hashType=$NIX_HASH_ALGO -if test -z "$hashType"; then - hashType=sha256 -fi - -if test -z "$cvsRoot"; then - echo "syntax: nix-prefetch-cvs CVSROOT MODULE [TAG [HASH]]" >&2 - exit 1 -elif test -z "$module"; then - echo "syntax: nix-prefetch-cvs CVSROOT MODULE [TAG [HASH]]" >&2 - exit 1 -fi - - -mkTempDir() { - tmpPath="$(mktemp -d "${TMPDIR:-/tmp}/nix-prefetch-cvs-XXXXXXXX")" - trap removeTempDir EXIT -} - -removeTempDir() { - rm -rf "$tmpPath" -} - - -# If the hash was given, a file with that hash may already be in the -# store. -if test -n "$expHash"; then - finalPath=$(nix-store --print-fixed-path --recursive "$hashType" "$expHash" cvs-export) - if ! nix-store --check-validity "$finalPath" 2> /dev/null; then - finalPath= - fi - hash=$expHash -fi - - -# If we don't know the hash or a path with that hash doesn't exist, -# download the file and add it to the store. -if test -z "$finalPath"; then - - mkTempDir - tmpFile=$tmpPath/cvs-export - #mkdir $tmpPath - - # Perform the checkout. - if test -z "$tag"; then - args=(-D "now") - elif test "$USE_DATE" = "1"; then - args=(-D "$tag") - else - args=(-r "$tag") - fi - (cd "$tmpPath" && cvs -f -z0 -d $cvsRoot export "${args[*]}" -d cvs-export $module >&2) - - # Compute the hash. - hash=$(nix-hash --type $hashType $hashFormat $tmpFile) - if ! test -n "$QUIET"; then echo "hash is $hash" >&2; fi - - # Add the downloaded file to the Nix store. - finalPath=$(nix-store --add-fixed --recursive "$hashType" $tmpFile) - - if test -n "$expHash" -a "$expHash" != "$hash"; then - echo "hash mismatch for CVS root \`$cvsRoot'" - exit 1 - fi -fi - -if ! test -n "$QUIET"; then echo "path is $finalPath" >&2; fi - -echo $hash - -if test -n "$PRINT_PATH"; then - echo $finalPath -fi diff --git a/pkgs/build-support/fetchdarcs/builder.sh b/pkgs/build-support/fetchdarcs/builder.sh deleted file mode 100644 index 39838db..0000000 --- a/pkgs/build-support/fetchdarcs/builder.sh +++ /dev/null @@ -1,22 +0,0 @@ -if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi -source $stdenv/setup - -tagtext="" -tagflags="" -# Darcs hashes are sha1 (120 bits, 40-character hex) -if [[ "$rev" =~ [a-fA-F0-9]{40} ]]; then - tagtext="(hash $rev)" - tagflags="--to-hash=$rev" -elif test -n "$rev"; then - tagtext="(tag $rev)" - tagflags="--tag=$rev" -elif test -n "$context"; then - tagtext="(context)" - tagflags="--context=$context" -fi - -echo "getting $url $partial ${tagtext} into $out" - -darcs get --lazy $tagflags "$url" "$out" -# remove metadata, because it can change -rm -rf "$out/_darcs" diff --git a/pkgs/build-support/fetchdarcs/default.nix b/pkgs/build-support/fetchdarcs/default.nix deleted file mode 100644 index 6073efe..0000000 --- a/pkgs/build-support/fetchdarcs/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{stdenvNoCC, darcs, cacert, lib}: - -lib.makeOverridable ( -{ url -, rev ? null -, context ? null -, sha256 ? "" -, name ? "fetchdarcs" -}: - -stdenvNoCC.mkDerivation { - builder = ./builder.sh; - nativeBuildInputs = [cacert darcs]; - - 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 deleted file mode 100644 index 8d8076b..0000000 --- a/pkgs/build-support/fetchdebianpatch/default.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ lib, fetchpatch }: - -lib.makeOverridable ( - { 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 { - inherit name hash; - url = - "https://sources.debian.org/data/${area}/${prefix}/" - + "${pname}/${versionString}/debian/patches/${patch}"; - } -) diff --git a/pkgs/build-support/fetchdebianpatch/tests.nix b/pkgs/build-support/fetchdebianpatch/tests.nix deleted file mode 100644 index 58f3b39..0000000 --- a/pkgs/build-support/fetchdebianpatch/tests.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ testers, fetchDebianPatch, ... }: - -{ - simple = testers.invalidateFetcherByDrvHash fetchDebianPatch { - pname = "pysimplesoap"; - version = "1.16.2"; - debianRevision = "5"; - patch = "Add-quotes-to-SOAPAction-header-in-SoapClient"; - hash = "sha256-xA8Wnrpr31H8wy3zHSNfezFNjUJt1HbSXn3qUMzeKc0="; - }; - - libPackage = testers.invalidateFetcherByDrvHash fetchDebianPatch { - pname = "libfile-pid-perl"; - version = "1.01"; - debianRevision = "2"; - patch = "missing-pidfile"; - hash = "sha256-VBsIYyCnjcZLYQ2Uq2MKPK3kF2wiMKvnq0m727DoavM="; - }; -} diff --git a/pkgs/build-support/fetchdocker/credentials.nix b/pkgs/build-support/fetchdocker/credentials.nix deleted file mode 100644 index f8a229c..0000000 --- a/pkgs/build-support/fetchdocker/credentials.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ lib }: -# We provide three paths to get the credentials into the builder's -# environment: -# -# 1. Via impureEnvVars. This method is difficult for multi-user Nix -# installations (but works very well for single-user Nix -# installations!) because it requires setting the environment -# variables on the nix-daemon which is either complicated or unsafe -# (i.e: configuring via Nix means the secrets will be persisted -# into the store) -# -# 2. If the DOCKER_CREDENTIALS key with a path to a credentials file -# is added to the NIX_PATH (usually via the '-I ' argument to most -# Nix tools) then an attempt will be made to read credentials from -# it. The semantics are simple, the file should contain two lines -# for the username and password based authentication: -# -# $ cat ./credentials-file.txt -# DOCKER_USER=myusername -# DOCKER_PASS=mypassword -# -# ... and a single line for the token based authentication: -# -# $ cat ./credentials-file.txt -# DOCKER_TOKEN=mytoken -# -# 3. A credential file at /etc/nix-docker-credentials.txt with the -# same format as the file described in #2 can also be used to -# communicate credentials to the builder. This is necessary for -# situations (like Hydra) where you cannot customize the NIX_PATH -# 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); -in - lib.optionalString (pathParts != []) ((builtins.head pathParts).path) diff --git a/pkgs/build-support/fetchdocker/default.nix b/pkgs/build-support/fetchdocker/default.nix deleted file mode 100644 index ef6132b..0000000 --- a/pkgs/build-support/fetchdocker/default.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ stdenv, lib, coreutils, bash, gnutar, writeText }: -let - stripScheme = - 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}" -}: - -# 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); - -let - # Abuse paths to collapse possible double slashes - repoTag0 = builtins.toString (/. + "/${stripScheme registry}/${repository}/${imageName}"); - repoTag1 = lib.removePrefix "/" repoTag0; - - layers = builtins.map stripNixStore imageLayers; - - manifest = - writeText "manifest.json" (builtins.toJSON [ - { Config = stripNixStore imageConfig; - Layers = layers; - RepoTags = [ "${repoTag1}:${tag}" ]; - }]); - - repositories = - writeText "repositories" (builtins.toJSON { - ${repoTag1} = { - ${tag} = lib.last layers; - }; - }); - - imageFileStorePaths = - writeText "imageFileStorePaths.txt" - (lib.concatStringsSep "\n" ((lib.unique imageLayers) ++ [imageConfig])); -in -stdenv.mkDerivation { - builder = ./fetchdocker-builder.sh; - buildInputs = [ coreutils ]; - preferLocalBuild = true; - - inherit name imageName repository tag; - inherit bash gnutar manifest repositories; - inherit imageFileStorePaths; - - passthru = { - inherit image; - }; -} diff --git a/pkgs/build-support/fetchdocker/fetchDockerConfig.nix b/pkgs/build-support/fetchdocker/fetchDockerConfig.nix deleted file mode 100644 index 9fd813b..0000000 --- a/pkgs/build-support/fetchdocker/fetchDockerConfig.nix +++ /dev/null @@ -1,13 +0,0 @@ -pkgargs@{ stdenv, lib, haskellPackages, writeText, gawk }: -let - generic-fetcher = - import ./generic-fetcher.nix pkgargs; -in - -args@{ repository ? "library", imageName, tag, ... }: - -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 deleted file mode 100644 index 869ba63..0000000 --- a/pkgs/build-support/fetchdocker/fetchDockerLayer.nix +++ /dev/null @@ -1,13 +0,0 @@ -pkgargs@{ stdenv, lib, haskellPackages, writeText, gawk }: -let - generic-fetcher = - import ./generic-fetcher.nix pkgargs; -in - -args@{ layerDigest, ... }: - -generic-fetcher ({ - fetcher = "hocker-layer"; - name = "docker-layer-${layerDigest}.tar.gz"; - tag = "unused"; -} // args) diff --git a/pkgs/build-support/fetchdocker/fetchdocker-builder.sh b/pkgs/build-support/fetchdocker/fetchdocker-builder.sh deleted file mode 100644 index 489914a..0000000 --- a/pkgs/build-support/fetchdocker/fetchdocker-builder.sh +++ /dev/null @@ -1,28 +0,0 @@ -if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi -source "${stdenv}/setup" -echo "exporting ${repository}/${imageName} (tag: ${tag}) into ${out}" -mkdir -p "${out}" - -cat < "${out}/compositeImage.sh" -#! ${bash}/bin/bash -# -# Create a tar archive of a docker image's layers, docker image config -# json, manifest.json, and repositories json; this streams directly to -# stdout and is intended to be used in concert with docker load, i.e: -# -# ${out}/compositeImage.sh | docker load - -# The first character follow the 's' command for sed becomes the -# delimiter sed will use; this makes the transformation regex easy to -# read. We feed tar a file listing the files we want in the archive, -# because the paths are absolute and docker load wants them flattened in -# the archive, we need to transform all of the paths going in by -# stripping everything *including* the last solidus so that we end up -# with the basename of the path. -${gnutar}/bin/tar \ - --transform='s=.*/==' \ - --transform="s=.*-manifest.json=manifest.json=" \ - --transform="s=.*-repositories=repositories=" \ - -c "${manifest}" "${repositories}" -T "${imageFileStorePaths}" -EOF -chmod +x "${out}/compositeImage.sh" diff --git a/pkgs/build-support/fetchdocker/generic-fetcher.nix b/pkgs/build-support/fetchdocker/generic-fetcher.nix deleted file mode 100644 index 95b1934..0000000 --- a/pkgs/build-support/fetchdocker/generic-fetcher.nix +++ /dev/null @@ -1,93 +0,0 @@ -{ stdenv, lib, haskellPackages, writeText, gawk }: -let - 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 ? "" -}: - -# 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); - -# Only allow hocker-config and hocker-layer as fetchers for now -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); - -let - layerDigestFlag = - lib.optionalString (layerDigest != "") "--layer ${layerDigest}"; -in -stdenv.mkDerivation { - inherit name; - builder = writeText "${fetcher}-builder.sh" '' - source "$stdenv/setup" - echo "${fetcher} exporting to $out" - - declare -A creds - - # This is a hack for Hydra since we have no way of adding values - # to the NIX_PATH for Hydra jobsets!! - staticCredentialsFile="/etc/nix-docker-credentials.txt" - if [ ! -f "$dockerCredentialsFile" -a -f "$staticCredentialsFile" ]; then - echo "credentials file not set, falling back on static credentials file at: $staticCredentialsFile" - dockerCredentialsFile=$staticCredentialsFile - fi - - if [ -f "$dockerCredentialsFile" ]; then - echo "using credentials from $dockerCredentialsFile" - - CREDSFILE=$(cat "$dockerCredentialsFile") - creds[token]=$(${awk} -F'=' '/DOCKER_TOKEN/ {print $2}' <<< "$CREDSFILE" | head -n1) - - # Prefer DOCKER_TOKEN over the username and password - # authentication method - if [ -z "''${creds[token]}" ]; then - creds[user]=$(${awk} -F'=' '/DOCKER_USER/ {print $2}' <<< "$CREDSFILE" | head -n1) - creds[pass]=$(${awk} -F'=' '/DOCKER_PASS/ {print $2}' <<< "$CREDSFILE" | head -n1) - fi - fi - - # These variables will be filled in first by the impureEnvVars, if - # those variables are empty then they will default to the - # credentials that may have been read in from the 'DOCKER_CREDENTIALS' - DOCKER_USER="''${DOCKER_USER:-''${creds[user]}}" - DOCKER_PASS="''${DOCKER_PASS:-''${creds[pass]}}" - DOCKER_TOKEN="''${DOCKER_TOKEN:-''${creds[token]}}" - - ${fetcher} --out="$out" \ - ''${registry:+--registry "$registry"} \ - ''${DOCKER_USER:+--username "$DOCKER_USER"} \ - ''${DOCKER_PASS:+--password "$DOCKER_PASS"} \ - ''${DOCKER_TOKEN:+--token "$DOCKER_TOKEN"} \ - ${layerDigestFlag} \ - "${repository}/${imageName}" \ - "${tag}" - ''; - - buildInputs = [ haskellPackages.hocker ]; - - outputHashAlgo = "sha256"; - outputHashMode = "flat"; - outputHash = sha256; - - preferLocalBuild = true; - - 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 deleted file mode 100644 index e07a6a1..0000000 --- a/pkgs/build-support/fetchfirefoxaddon/default.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ stdenv -, fetchurl -, jq -, strip-nondeterminism -, unzip -, writeScript -, zip -}: - -{ 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; - }; -in -stdenv.mkDerivation { - inherit name; - - passthru = { - inherit extid; - }; - - builder = writeScript "xpibuilder" '' - source $stdenv/setup - - echo "firefox addon $name into $out" - - UUID="${extid}" - mkdir -p "$out/$UUID" - unzip -q ${source} -d "$out/$UUID" - NEW_MANIFEST=$(jq '. + {"applications": { "gecko": { "id": "${extid}" }}, "browser_specific_settings":{"gecko":{"id": "${extid}"}}}' "$out/$UUID/manifest.json") - echo "$NEW_MANIFEST" > "$out/$UUID/manifest.json" - cd "$out/$UUID" - zip -r -q -FS "$out/$UUID.xpi" * - strip-nondeterminism "$out/$UUID.xpi" - rm -r "$out/$UUID" - ''; - - nativeBuildInputs = [ - jq - strip-nondeterminism - unzip - zip - ]; -} diff --git a/pkgs/build-support/fetchfirefoxaddon/tests.nix b/pkgs/build-support/fetchfirefoxaddon/tests.nix deleted file mode 100644 index a29f65c..0000000 --- a/pkgs/build-support/fetchfirefoxaddon/tests.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ testers, fetchFirefoxAddon, fetchurl, ... }: - -{ - simple = testers.invalidateFetcherByDrvHash fetchFirefoxAddon { - name = "image-search-options"; - # Chosen because its only 147KB - url = "https://addons.mozilla.org/firefox/downloads/file/3059971/image_search_options-3.0.12-fx.xpi"; - sha256 = "sha256-H73YWX/DKxvhEwKpWOo7orAQ7c/rQywpljeyxYxv0Gg="; - }; - overridden-source = - let - image-search-options = fetchurl { - url = "https://addons.mozilla.org/firefox/downloads/file/3059971/image_search_options-3.0.12-fx.xpi"; - sha256 = "sha256-H73YWX/DKxvhEwKpWOo7orAQ7c/rQywpljeyxYxv0Gg="; - }; - in - testers.invalidateFetcherByDrvHash fetchFirefoxAddon { - name = "image-search-options"; - src = image-search-options; - }; -} diff --git a/pkgs/build-support/fetchfossil/builder.sh b/pkgs/build-support/fetchfossil/builder.sh deleted file mode 100644 index fe828d0..0000000 --- a/pkgs/build-support/fetchfossil/builder.sh +++ /dev/null @@ -1,21 +0,0 @@ -if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi -source $stdenv/setup -echo "Cloning Fossil $url [$rev] into $out" - -# Fossil, bless its adorable little heart, wants to write global configuration -# to $HOME/.fossil. AFAICT, there is no way to disable this functionality. -# Instead, we'll let it write to the build directory. -export HOME=$(pwd) - -# We must explicitly set the admin user for the clone to something reasonable. -fossil clone -A nobody "$url" fossil-clone.fossil - -mkdir fossil-clone -WORKDIR=$(pwd) -mkdir $out -pushd $out -fossil open "$WORKDIR/fossil-clone.fossil" "$rev" -popd - -# Just nuke the checkout file. -rm $out/.fslckout diff --git a/pkgs/build-support/fetchfossil/default.nix b/pkgs/build-support/fetchfossil/default.nix deleted file mode 100644 index 3f3bf69..0000000 --- a/pkgs/build-support/fetchfossil/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{stdenv, lib, fossil, cacert}: - -{ 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]; - - # 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; - - inherit url rev; - preferLocalBuild = true; -} diff --git a/pkgs/build-support/fetchgit/builder.sh b/pkgs/build-support/fetchgit/builder.sh deleted file mode 100644 index 95176be..0000000 --- a/pkgs/build-support/fetchgit/builder.sh +++ /dev/null @@ -1,20 +0,0 @@ -# tested so far with: -# - no revision specified and remote has a HEAD which is used -# - revision specified and remote has a HEAD -# - revision specified and remote without HEAD -# -if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi -source $stdenv/setup - -echo "exporting $url (rev $rev) into $out" - -$SHELL $fetcher --builder --url "$url" --out "$out" --rev "$rev" \ - ${leaveDotGit:+--leave-dotGit} \ - ${fetchLFS:+--fetch-lfs} \ - ${deepClone:+--deepClone} \ - ${fetchSubmodules:+--fetch-submodules} \ - ${sparseCheckout:+--sparse-checkout "$sparseCheckout"} \ - ${nonConeMode:+--non-cone-mode} \ - ${branchName:+--branch-name "$branchName"} - -runHook postFetch diff --git a/pkgs/build-support/fetchgit/default.nix b/pkgs/build-support/fetchgit/default.nix deleted file mode 100644 index 83811e8..0000000 --- a/pkgs/build-support/fetchgit/default.nix +++ /dev/null @@ -1,111 +0,0 @@ -{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; - - 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}"; -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 -}: - -/* 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. - - 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? -*/ - -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 - else - lib.fakeSha256; - - # 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; - - inherit url rev leaveDotGit fetchLFS fetchSubmodules deepClone branchName nonConeMode postFetch; - - 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"; - - impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ netrcImpureEnvVars ++ [ - "GIT_PROXY_COMMAND" "NIX_GIT_SSL_CAINFO" "SOCKS_SERVER" - ]; - - - inherit preferLocalBuild meta allowedRequisites; - - passthru = passthru // { - gitRepoUrl = url; - }; -} -) diff --git a/pkgs/build-support/fetchgit/deterministic-git b/pkgs/build-support/fetchgit/deterministic-git deleted file mode 100755 index 67f5855..0000000 --- a/pkgs/build-support/fetchgit/deterministic-git +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/sh - -# some git commands print to stdout, which would contaminate our JSON output -clean_git(){ - git "$@" >&2 -} - -# Remove all remote branches, remove tags not reachable from HEAD, do a full -# repack and then garbage collect unreferenced objects. -make_deterministic_repo(){ - local repo="$1" - - # run in sub-shell to not touch current working directory - ( - cd "$repo" - # Remove files that contain timestamps or otherwise have non-deterministic - # properties. - rm -rf .git/logs/ .git/hooks/ .git/index .git/FETCH_HEAD .git/ORIG_HEAD \ - .git/refs/remotes/origin/HEAD .git/config - - # Remove all remote branches. - git branch -r | while read -r branch; do - clean_git branch -rD "$branch" - done - - # Remove tags not reachable from HEAD. If we're exactly on a tag, don't - # delete it. - maybe_tag=$(git tag --points-at HEAD) - git tag --contains HEAD | while read -r tag; do - if [ "$tag" != "$maybe_tag" ]; then - clean_git tag -d "$tag" - fi - done - - # Do a full repack. Must run single-threaded, or else we lose determinism. - clean_git config pack.threads 1 - clean_git repack -A -d -f - rm -f .git/config - - # Garbage collect unreferenced objects. - # Note: --keep-largest-pack prevents non-deterministic ordering of packs - # listed in .git/objects/info/packs by only using a single pack - clean_git gc --prune=all --keep-largest-pack - ) -} diff --git a/pkgs/build-support/fetchgit/nix-prefetch-git b/pkgs/build-support/fetchgit/nix-prefetch-git deleted file mode 100755 index 7ac3dec..0000000 --- a/pkgs/build-support/fetchgit/nix-prefetch-git +++ /dev/null @@ -1,482 +0,0 @@ -#! /usr/bin/env bash - -set -e -o pipefail - -url= -rev= -expHash= -hashType=$NIX_HASH_ALGO -deepClone=$NIX_PREFETCH_GIT_DEEP_CLONE -leaveDotGit=$NIX_PREFETCH_GIT_LEAVE_DOT_GIT -fetchSubmodules= -fetchLFS= -builder= -branchName=$NIX_PREFETCH_GIT_BRANCH_NAME - -# ENV params -out=${out:-} -http_proxy=${http_proxy:-} - -# allow overwriting cacert's ca-bundle.crt with a custom one -# this can be done by setting NIX_GIT_SSL_CAINFO and NIX_SSL_CERT_FILE environment variables for the nix-daemon -GIT_SSL_CAINFO=${NIX_GIT_SSL_CAINFO:-$GIT_SSL_CAINFO} - -# populated by clone_user_rev() -fullRev= -humanReadableRev= -commitDate= -commitDateStrict8601= - -if test -n "$deepClone"; then - deepClone=true -else - deepClone= -fi - -if test "$leaveDotGit" != 1; then - leaveDotGit= -else - leaveDotGit=true -fi - -usage(){ - echo >&2 "syntax: nix-prefetch-git [options] [URL [REVISION [EXPECTED-HASH]]] - -Options: - --out path Path where the output would be stored. - --url url Any url understood by 'git clone'. - --rev ref Any sha1 or references (such as refs/heads/master) - --hash h Expected hash. - --branch-name Branch name to check out into - --sparse-checkout Only fetch and checkout part of the repository. - --non-cone-mode Use non-cone mode for sparse checkouts. - --deepClone Clone the entire repository. - --no-deepClone Make a shallow clone of just the required ref. - --leave-dotGit Keep the .git directories. - --fetch-lfs Fetch git Large File Storage (LFS) files. - --fetch-submodules Fetch submodules. - --builder Clone as fetchgit does, but url, rev, and out option are mandatory. - --quiet Only print the final json summary. -" - exit 1 -} - -# some git commands print to stdout, which would contaminate our JSON output -clean_git(){ - git "$@" >&2 -} - -argi=0 -argfun="" -for arg; do - if test -z "$argfun"; then - case $arg in - --out) argfun=set_out;; - --url) argfun=set_url;; - --rev) argfun=set_rev;; - --hash) argfun=set_hashType;; - --branch-name) argfun=set_branchName;; - --deepClone) deepClone=true;; - --sparse-checkout) argfun=set_sparseCheckout;; - --non-cone-mode) nonConeMode=true;; - --quiet) QUIET=true;; - --no-deepClone) deepClone=;; - --leave-dotGit) leaveDotGit=true;; - --fetch-lfs) fetchLFS=true;; - --fetch-submodules) fetchSubmodules=true;; - --builder) builder=true;; - -h|--help) usage; exit;; - *) - : $((++argi)) - case $argi in - 1) url=$arg;; - 2) rev=$arg;; - 3) expHash=$arg;; - *) exit 1;; - esac - ;; - esac - else - case $argfun in - set_*) - var=${argfun#set_} - eval "$var=$(printf %q "$arg")" - ;; - esac - argfun="" - fi -done - -if test -z "$url"; then - usage -fi - - -init_remote(){ - local url=$1 - clean_git init --initial-branch=master - clean_git remote add origin "$url" - if [ -n "$sparseCheckout" ]; then - git config remote.origin.partialclonefilter "blob:none" - echo "$sparseCheckout" | git sparse-checkout set --stdin ${nonConeMode:+--no-cone} - fi - ( [ -n "$http_proxy" ] && clean_git config --global http.proxy "$http_proxy" ) || true -} - -# Return the reference of an hash if it exists on the remote repository. -ref_from_hash(){ - local hash=$1 - git ls-remote origin | sed -n "\,$hash\t, { s,\(.*\)\t\(.*\),\2,; p; q}" -} - -# Return the hash of a reference if it exists on the remote repository. -hash_from_ref(){ - local ref=$1 - git ls-remote origin | sed -n "\,\t$ref, { s,\(.*\)\t\(.*\),\1,; p; q}" -} - -# Returns a name based on the url and reference -# -# This function needs to be in sync with nix's fetchgit implementation -# of urlToName() to re-use the same nix store paths. -url_to_name(){ - local url=$1 - local ref=$2 - local base - base=$(basename "$url" .git | cut -d: -f2) - - if [[ $ref =~ ^[a-z0-9]+$ ]]; then - echo "$base-${ref:0:7}" - else - echo "$base" - fi -} - -# Fetch and checkout the right sha1 -checkout_hash(){ - local hash="$1" - local ref="$2" - - if test -z "$hash"; then - hash=$(hash_from_ref "$ref") - fi - - [[ -z "$deepClone" ]] && \ - clean_git fetch ${builder:+--progress} --depth=1 origin "$hash" || \ - clean_git fetch -t ${builder:+--progress} origin || return 1 - - local object_type=$(git cat-file -t "$hash") - if [[ "$object_type" == "commit" ]]; then - clean_git checkout -b "$branchName" "$hash" || return 1 - elif [[ "$object_type" == "tree" ]]; then - clean_git config user.email "nix-prefetch-git@localhost" - clean_git config user.name "nix-prefetch-git" - local commit_id=$(git commit-tree "$hash" -m "Commit created from tree hash $hash") - clean_git checkout -b "$branchName" "$commit_id" || return 1 - else - echo "Unrecognized git object type: $object_type" - return 1 - fi -} - -# Fetch only a branch/tag and checkout it. -checkout_ref(){ - local hash="$1" - local ref="$2" - - if [[ -n "$deepClone" ]]; then - # The caller explicitly asked for a deep clone. Deep clones - # allow "git describe" and similar tools to work. See - # https://marc.info/?l=nix-dev&m=139641582514772 - # for a discussion. - return 1 - fi - - if test -z "$ref"; then - ref=$(ref_from_hash "$hash") - fi - - if test -n "$ref"; then - # --depth option is ignored on http repository. - clean_git fetch ${builder:+--progress} --depth 1 origin +"$ref" || return 1 - clean_git checkout -b "$branchName" FETCH_HEAD || return 1 - else - return 1 - fi -} - -# Update submodules -init_submodules(){ - # shallow with leaveDotGit will change hashes - [[ -z "$deepClone" ]] && [[ -z "$leaveDotGit" ]] && \ - clean_git submodule update --init --recursive -j ${NIX_BUILD_CORES:-1} --progress --depth 1 || \ - clean_git submodule update --init --recursive -j ${NIX_BUILD_CORES:-1} --progress -} - -clone(){ - local top=$PWD - local dir="$1" - local url="$2" - local hash="$3" - local ref="$4" - - cd "$dir" - - # Initialize the repository. - init_remote "$url" - - # Download data from the repository. - checkout_ref "$hash" "$ref" || - checkout_hash "$hash" "$ref" || ( - echo 1>&2 "Unable to checkout $hash$ref from $url." - exit 1 - ) - - # Checkout linked sources. - if test -n "$fetchSubmodules"; then - init_submodules - fi - - if [ -z "$builder" ] && [ -f .topdeps ]; then - if tg help &>/dev/null; then - echo "populating TopGit branches..." - tg remote --populate origin - else - echo "WARNING: would populate TopGit branches but TopGit is not available" >&2 - echo "WARNING: install TopGit to fix the problem" >&2 - fi - fi - - cd "$top" -} - -# Remove all remote branches, remove tags not reachable from HEAD, do a full -# repack and then garbage collect unreferenced objects. -make_deterministic_repo(){ - local repo="$1" - - # run in sub-shell to not touch current working directory - ( - cd "$repo" - # Remove files that contain timestamps or otherwise have non-deterministic - # properties. - if [ -f .git ]; then - local dotgit_content=$(<.git) - local dotgit_dir="${dotgit_content#gitdir: }" - else - local dotgit_dir=".git" - fi - pushd "$dotgit_dir" >/dev/null - rm -rf logs/ hooks/ index FETCH_HEAD ORIG_HEAD refs/remotes/origin/HEAD config - popd >/dev/null - # Remove all remote branches. - git branch -r | while read -r branch; do - clean_git branch -rD "$branch" - done - - # Remove tags not reachable from HEAD. If we're exactly on a tag, don't - # delete it. - maybe_tag=$(git tag --points-at HEAD) - git tag --contains HEAD | while read -r tag; do - if [ "$tag" != "$maybe_tag" ]; then - clean_git tag -d "$tag" - fi - done - - # Do a full repack. Must run single-threaded, or else we lose determinism. - clean_git config pack.threads 1 - clean_git repack -A -d -f - rm -f "$dotgit_dir/config" - - # Garbage collect unreferenced objects. - # Note: --keep-largest-pack prevents non-deterministic ordering of packs - # listed in .git/objects/info/packs by only using a single pack - clean_git gc --prune=all --keep-largest-pack - ) -} - - -clone_user_rev() { - local dir="$1" - local url="$2" - local rev="${3:-HEAD}" - - if [ -n "$fetchLFS" ]; then - clean_git lfs install - fi - - # Perform the checkout. - case "$rev" in - HEAD|refs/*) - clone "$dir" "$url" "" "$rev" 1>&2;; - *) - if test -z "$(echo "$rev" | tr -d 0123456789abcdef)"; then - clone "$dir" "$url" "$rev" "" 1>&2 - else - # if revision is not hexadecimal it might be a tag - clone "$dir" "$url" "" "refs/tags/$rev" 1>&2 - fi;; - esac - - pushd "$dir" >/dev/null - fullRev=$( (git rev-parse "$rev" 2>/dev/null || git rev-parse "refs/heads/$branchName") | tail -n1) - humanReadableRev=$(git describe "$fullRev" 2> /dev/null || git describe --tags "$fullRev" 2> /dev/null || echo -- none --) - commitDate=$(git show -1 --no-patch --pretty=%ci "$fullRev") - commitDateStrict8601=$(git show -1 --no-patch --pretty=%cI "$fullRev") - popd >/dev/null - - # Allow doing additional processing before .git removal - eval "$NIX_PREFETCH_GIT_CHECKOUT_HOOK" - if test -z "$leaveDotGit"; then - echo "removing \`.git'..." >&2 - find "$dir" -name .git -print0 | xargs -0 rm -rf - else - find "$dir" -name .git | while read -r gitdir; do - make_deterministic_repo "$(readlink -f "$(dirname "$gitdir")")" - done - fi -} - -exit_handlers=() - -run_exit_handlers() { - exit_status=$? - for handler in "${exit_handlers[@]}"; do - eval "$handler $exit_status" - done -} - -trap run_exit_handlers EXIT - -quiet_exit_handler() { - exec 2>&3 3>&- - if [ $1 -ne 0 ]; then - cat "$errfile" >&2 - fi - rm -f "$errfile" -} - -quiet_mode() { - errfile="$(mktemp "${TMPDIR:-/tmp}/git-checkout-err-XXXXXXXX")" - exit_handlers+=(quiet_exit_handler) - exec 3>&2 2>"$errfile" -} - -json_escape() { - local s="$1" - s="${s//\\/\\\\}" # \ - s="${s//\"/\\\"}" # " - s="${s//^H/\\\b}" # \b (backspace) - s="${s//^L/\\\f}" # \f (form feed) - s="${s// -/\\\n}" # \n (newline) - s="${s//^M/\\\r}" # \r (carriage return) - s="${s// /\\t}" # \t (tab) - echo "$s" -} - -print_results() { - hash="$1" - if ! test -n "$QUIET"; then - echo "" >&2 - echo "git revision is $fullRev" >&2 - if test -n "$finalPath"; then - echo "path is $finalPath" >&2 - fi - echo "git human-readable version is $humanReadableRev" >&2 - echo "Commit date is $commitDate" >&2 - if test -n "$hash"; then - echo "hash is $hash" >&2 - fi - fi - if test -n "$hash"; then - cat < /dev/null; then - finalPath= - fi - hash=$expHash - fi - - # If we don't know the hash or a path with that hash doesn't exist, - # download the file and add it to the store. - if test -z "$finalPath"; then - - tmpPath="$(mktemp -d "${TMPDIR:-/tmp}/git-checkout-tmp-XXXXXXXX")" - exit_handlers+=(remove_tmpPath) - - tmpFile="$tmpPath/$(url_to_name "$url" "$rev")" - mkdir -p "$tmpFile" - - # Perform the checkout. - clone_user_rev "$tmpFile" "$url" "$rev" - - # Compute the hash. - hash=$(nix-hash --type $hashType --base32 "$tmpFile") - - # Add the downloaded file to the Nix store. - finalPath=$(nix-store --add-fixed --recursive "$hashType" "$tmpFile") - - if test -n "$expHash" -a "$expHash" != "$hash"; then - echo "hash mismatch for URL \`$url'. Got \`$hash'; expected \`$expHash'." >&2 - exit 1 - fi - fi - - print_results "$hash" - - if test -n "$PRINT_PATH"; then - echo "$finalPath" - fi -fi diff --git a/pkgs/build-support/fetchgit/tests.nix b/pkgs/build-support/fetchgit/tests.nix deleted file mode 100644 index 23e5fa2..0000000 --- a/pkgs/build-support/fetchgit/tests.nix +++ /dev/null @@ -1,75 +0,0 @@ -{ testers, fetchgit, ... }: { - simple = testers.invalidateFetcherByDrvHash fetchgit { - name = "simple-nix-source"; - url = "https://github.com/NixOS/nix"; - rev = "9d9dbe6ed05854e03811c361a3380e09183f4f4a"; - sha256 = "sha256-7DszvbCNTjpzGRmpIVAWXk20P0/XTrWZ79KSOGLrUWY="; - }; - - sparseCheckout = testers.invalidateFetcherByDrvHash fetchgit { - name = "sparse-checkout-nix-source"; - url = "https://github.com/NixOS/nix"; - rev = "9d9dbe6ed05854e03811c361a3380e09183f4f4a"; - sparseCheckout = [ - "src" - "tests" - ]; - sha256 = "sha256-g1PHGTWgAcd/+sXHo1o6AjVWCvC6HiocOfMbMh873LQ="; - }; - - sparseCheckoutNonConeMode = testers.invalidateFetcherByDrvHash fetchgit { - name = "sparse-checkout-non-cone-nix-source"; - url = "https://github.com/NixOS/nix"; - rev = "9d9dbe6ed05854e03811c361a3380e09183f4f4a"; - sparseCheckout = [ - "src" - "tests" - ]; - nonConeMode = true; - sha256 = "sha256-FknO6C/PSnMPfhUqObD4vsW4PhkwdmPa9blNzcNvJQ4="; - }; - - leave-git = testers.invalidateFetcherByDrvHash fetchgit { - name = "leave-git-nix-source"; - url = "https://github.com/NixOS/nix"; - rev = "9d9dbe6ed05854e03811c361a3380e09183f4f4a"; - sha256 = "sha256-zZxDxqaeWvuWuzwPizBLR7d59zP24+zqnWllNICenko="; - leaveDotGit = true; - }; - - submodule-simple = testers.invalidateFetcherByDrvHash fetchgit { - name = "submodule-simple-source"; - url = "https://github.com/pineapplehunter/nix-test-repo-with-submodule"; - rev = "26473335b84ead88ee0a3b649b1c7fa4a91cfd4a"; - sha256 = "sha256-rmP8PQT0wJBopdtr/hsB7Y/L1G+ZPdHC2r9LB05Qrj4="; - fetchSubmodules = true; - }; - - submodule-leave-git = testers.invalidateFetcherByDrvHash fetchgit { - name = "submodule-leave-git-source"; - url = "https://github.com/pineapplehunter/nix-test-repo-with-submodule"; - rev = "26473335b84ead88ee0a3b649b1c7fa4a91cfd4a"; - sha256 = "sha256-+uXIClcRJ4S1rdgx2Oyww+Jv4h1VXp8tfeh9lb07Fhk="; - leaveDotGit = true; - fetchSubmodules = true; - }; - - submodule-deep = testers.invalidateFetcherByDrvHash fetchgit { - name = "submodule-deep-source"; - url = "https://github.com/pineapplehunter/nix-test-repo-with-submodule"; - rev = "26473335b84ead88ee0a3b649b1c7fa4a91cfd4a"; - sha256 = "sha256-LL7uhXQk3N3DcvBBxwjmfVx55tTXCGQ19T91tknopzw="; - deepClone = true; - fetchSubmodules = true; - }; - - submodule-leave-git-deep = testers.invalidateFetcherByDrvHash fetchgit { - name = "submodule-leave-git-deep-source"; - url = "https://github.com/pineapplehunter/nix-test-repo-with-submodule"; - rev = "26473335b84ead88ee0a3b649b1c7fa4a91cfd4a"; - sha256 = "sha256-LL7uhXQk3N3DcvBBxwjmfVx55tTXCGQ19T91tknopzw="; - deepClone = true; - leaveDotGit = true; - fetchSubmodules = true; - }; -} diff --git a/pkgs/build-support/fetchgitea/default.nix b/pkgs/build-support/fetchgitea/default.nix deleted file mode 100644 index 513ceba..0000000 --- a/pkgs/build-support/fetchgitea/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -# Gitea's URLs are compatible with GitHub - -{ lib, fetchFromGitHub }: - -lib.makeOverridable ( -{ domain, ... }@args: - -fetchFromGitHub ((removeAttrs args [ "domain" ]) // { githubBase = domain; }) -) diff --git a/pkgs/build-support/fetchgithub/default.nix b/pkgs/build-support/fetchgithub/default.nix deleted file mode 100644 index 66da4d6..0000000 --- a/pkgs/build-support/fetchgithub/default.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ 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: - -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 < $out - - mv $DOT_GIT/index-user $DOT_GIT/index # restore index - ''; - - gitHash = builtins.readFile gitHashFile; # cache against git hash - - 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 - ''; - -in nixPath -) diff --git a/pkgs/build-support/fetchgx/default.nix b/pkgs/build-support/fetchgx/default.nix deleted file mode 100644 index 93f60c0..0000000 --- a/pkgs/build-support/fetchgx/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ stdenvNoCC, gx, gx-go, go, cacert }: - -{ name, src, sha256 }: - -stdenvNoCC.mkDerivation { - name = "${name}-gxdeps"; - inherit src; - - nativeBuildInputs = [ cacert go gx gx-go ]; - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = sha256; - - dontConfigure = true; - doCheck = false; - doInstallCheck = false; - - buildPhase = '' - export GOPATH=$(pwd)/vendor - mkdir -p vendor - gx install - ''; - - installPhase = '' - mv vendor $out - ''; - - preferLocalBuild = true; -} diff --git a/pkgs/build-support/fetchhg/builder.sh b/pkgs/build-support/fetchhg/builder.sh deleted file mode 100644 index 20dfde4..0000000 --- a/pkgs/build-support/fetchhg/builder.sh +++ /dev/null @@ -1,8 +0,0 @@ -if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi -source $stdenv/setup -echo "getting $url${rev:+ ($rev)} into $out" - -hg clone --insecure "$url" hg-clone - -hg archive -q$subrepoClause -y ${rev:+-r "$rev"} --cwd hg-clone $out -rm -f $out/.hg_archival.txt diff --git a/pkgs/build-support/fetchhg/default.nix b/pkgs/build-support/fetchhg/default.nix deleted file mode 100644 index 6af886b..0000000 --- a/pkgs/build-support/fetchhg/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ 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]; - - impureEnvVars = lib.fetchers.proxyImpureEnvVars; - - 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; - - inherit url rev; - inherit preferLocalBuild; -} diff --git a/pkgs/build-support/fetchhg/nix-prefetch-hg b/pkgs/build-support/fetchhg/nix-prefetch-hg deleted file mode 100755 index 94c6b1e..0000000 --- a/pkgs/build-support/fetchhg/nix-prefetch-hg +++ /dev/null @@ -1,83 +0,0 @@ -#! /usr/bin/env bash -set -e - -url=$1 -rev=$2 -expHash=$3 - -hashType="${NIX_HASH_ALGO:-sha256}" -hashFormat=${hashFormat:-"--base32"} -rev="${rev:-tip}" - -LOG() { - echo "$@" >&2 -} - -die() { - LOG "$@" - exit 1 -} - -if [[ -z "$url" || "$url" == "--help" ]]; then - die "Usage: nix-prefetch-hg URL [rev [EXPECTED-HASH]]" -fi - -if [[ "${fetchSubrepos:-0}" == 1 ]]; then - subrepoClause=S -else - subrepoClause= -fi - -# If the hash was given, a file with that hash may already be in the -# store. -if [[ -n "$expHash" ]]; then - finalPath=$(nix-store --print-fixed-path --recursive "$hashType" "$expHash" hg-archive) - if ! nix-store --check-validity "$finalPath" 2> /dev/null; then - finalPath= - fi - hash="$expHash" -fi - - -# If we don't know the hash or a path with that hash doesn't exist, -# download the file and add it to the store. -if [[ -z "$finalPath" ]]; then - - tmpPath="$(mktemp -d "${TMPDIR:-/tmp}/hg-checkout-tmp-XXXXXXXX")" - cleanup() { x=$?; rm -rf "$tmpPath"; exit $x; }; trap cleanup EXIT - - tmpArchive="$tmpPath/hg-archive" - - # Perform the checkout. - if [[ "$url" != /* ]]; then - tmpClone="$tmpPath/hg-clone" - hg clone -q -y -U "$url" "$tmpClone" >&2 - else - tmpClone=$url - fi - hg archive -q$subrepoClause -y -r "$rev" --cwd "$tmpClone" "$tmpArchive" - rm -f "$tmpArchive/.hg_archival.txt" - - LOG "hg revision is $(cd "$tmpClone"; hg id -r "$rev" -i)" - - # Compute the hash. - hash=$(nix-hash --type "$hashType" "$hashFormat" "$tmpArchive") - if [[ -z "$QUIET" ]]; then LOG "hash is $hash"; fi - - # Add the downloaded file to the Nix store. - finalPath=$(nix-store --add-fixed --recursive "$hashType" "$tmpArchive") - - if [[ -n "$expHash" && "$expHash" != "$hash" ]]; then - die "ERROR: hash mismatch for URL \`$url'" - fi - - -fi - -if [[ -z "$QUIET" ]]; then LOG "path is $finalPath"; fi - -echo "$hash" - -if [[ -n "$PRINT_PATH" ]]; then - echo "$finalPath" -fi diff --git a/pkgs/build-support/fetchipfs/builder.sh b/pkgs/build-support/fetchipfs/builder.sh deleted file mode 100644 index 1ddd111..0000000 --- a/pkgs/build-support/fetchipfs/builder.sh +++ /dev/null @@ -1,88 +0,0 @@ -if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi -source $stdenv/setup - -# Curl flags to handle redirects, not use EPSV, handle cookies for -# servers to need them during redirects, and work on SSL without a -# certificate (this isn't a security problem because we check the -# cryptographic hash of the output anyway). - -set -o noglob - -curl="curl \ - --location \ - --max-redirs 20 \ - --retry 2 \ - --disable-epsv \ - --cookie-jar cookies \ - --insecure \ - --speed-time 5 \ - -# \ - --fail \ - $curlOpts \ - $NIX_CURL_FLAGS" - -finish() { - runHook postFetch - set +o noglob - exit 0 -} - -ipfs_add() { - if curl --retry 0 --head --silent "localhost:5001" > /dev/null; then - echo "=IPFS= add $ipfs" - tar --owner=root --group=root -cWf "source.tar" $(echo *) - res=$(curl -# -F "file=@source.tar" "localhost:5001/api/v0/tar/add" | sed 's/.*"Hash":"\(.*\)".*/\1/') - if [ $ipfs != $res ]; then - echo "\`ipfs tar add' results in $res when $ipfs is expected" - exit 1 - fi - rm "source.tar" - fi -} - -echo - -mkdir download -cd download - -if curl --retry 0 --head --silent "localhost:5001" > /dev/null; then - curlexit=18; - echo "=IPFS= get $ipfs" - # if we get error code 18, resume partial download - while [ $curlexit -eq 18 ]; do - # keep this inside an if statement, since on failure it doesn't abort the script - if $curl -C - "http://localhost:5001/api/v0/tar/cat?arg=$ipfs" --output "$ipfs.tar"; then - unpackFile "$ipfs.tar" - rm "$ipfs.tar" - set +o noglob - mv $(echo *) "$out" - finish - else - curlexit=$?; - fi - done -fi - -if test -n "$url"; then - curlexit=18; - echo "Downloading $url" - while [ $curlexit -eq 18 ]; do - # keep this inside an if statement, since on failure it doesn't abort the script - if $curl "$url" -O; then - set +o noglob - tmpfile=$(echo *) - unpackFile $tmpfile - rm $tmpfile - ipfs_add - mv $(echo *) "$out" - finish - else - curlexit=$?; - fi - done -fi - -echo "error: cannot download $ipfs from ipfs or the given url" -echo -set +o noglob -exit 1 diff --git a/pkgs/build-support/fetchipfs/default.nix b/pkgs/build-support/fetchipfs/default.nix deleted file mode 100644 index 0cbb094..0000000 --- a/pkgs/build-support/fetchipfs/default.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ stdenv -, curl -}: - -{ ipfs -, url ? "" -, curlOpts ? "" -, outputHash ? "" -, outputHashAlgo ? "" -, md5 ? "" -, sha1 ? "" -, sha256 ? "" -, sha512 ? "" -, meta ? {} -, port ? "8080" -, postFetch ? "" -, preferLocalBuild ? true -}: - -let - - 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 ]; - - # 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"; - - 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; -} diff --git a/pkgs/build-support/fetchmavenartifact/default.nix b/pkgs/build-support/fetchmavenartifact/default.nix deleted file mode 100644 index 0f3cd4e..0000000 --- a/pkgs/build-support/fetchmavenartifact/default.nix +++ /dev/null @@ -1,73 +0,0 @@ -# Adaptation of the MIT-licensed work on `sbt2nix` done by Charles O'Farrell - -{ lib, fetchurl, stdenv }: -let - defaultRepos = [ - "https://repo1.maven.org/maven2" - "https://oss.sonatype.org/content/repositories/releases" - "https://oss.sonatype.org/content/repositories/public" - "https://repo.typesafe.com/typesafe/releases" - ]; -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. - # Example: [ http://oss.sonatype.org/content/repositories/public ]. - 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`. - ... -}: - -# only one of url and urls can be specified at a time. -assert (url == "") || (urls == []); -# if repos is empty, then url or urls must be specified. -assert (repos != []) || (url != "") || (urls != []); - -let - pname = (lib.replaceStrings [ "." ] [ "_" ] groupId) + "_" + (lib.replaceStrings [ "." ] [ "_" ] artifactId); - suffix = lib.optionalString (classifier != null) "-${classifier}"; - filename = "${artifactId}-${version}${suffix}.jar"; - mkJarUrl = repoUrl: - lib.concatStringsSep "/" [ - (lib.removeSuffix "/" repoUrl) - (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"; } - ); -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; - } diff --git a/pkgs/build-support/fetchmtn/builder.sh b/pkgs/build-support/fetchmtn/builder.sh deleted file mode 100644 index de929fa..0000000 --- a/pkgs/build-support/fetchmtn/builder.sh +++ /dev/null @@ -1,46 +0,0 @@ -if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi -source $stdenv/setup - -set -x - -if ! [ -f "$cacheDB" ]; then - echo "Creating cache DB $cacheDB" - mtn --db "$cacheDB" db init -fi - -echo "getting revision $selector"; - -done=; -for source in $dbs; do - if mtn pull --db "$cacheDB" "$source" "${branch}"; then - revision="$(mtn --db "$cacheDB" au toposort $(mtn --db "$cacheDB" au select "$selector") | tail -1)"; - if [ -n "$revision" ]; then - if mtn --db "$cacheDB" au get_revision "$revision"; then - echo "found revision $revision" - done=1; - else - echo "revision $revision does not exist"; - fi - else - echo "selector $selector does not match any revision"; - fi - else - echo "pulling branch $branch wasn't successful"; - fi; - if test -n "$done"; then - break; - fi; -done; - -echo "checking out the revision $revision"; - -if test -n "$done"; then - mtn checkout --db "$cacheDB" -r "$revision" "$out" -b "${branch}" -else - echo "Needed revision still not found. Exiting"; - exit 1; -fi; - -echo "clearing _MTN in the output" - -rm -rf "$out/_MTN" diff --git a/pkgs/build-support/fetchmtn/default.nix b/pkgs/build-support/fetchmtn/default.nix deleted file mode 100644 index 4aa1342..0000000 --- a/pkgs/build-support/fetchmtn/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -# You can specify some extra mirrors and a cache DB via options -{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}: - -stdenvNoCC.mkDerivation { - builder = ./builder.sh; - nativeBuildInputs = [monotone]; - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = sha256; - - dbs = defaultDBMirrors ++ dbs; - 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 deleted file mode 100644 index 059003d..0000000 --- a/pkgs/build-support/fetchnextcloudapp/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ stdenv, fetchzip, applyPatches, lib, ... }: -{ 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}"; -}) diff --git a/pkgs/build-support/fetchpatch/default.nix b/pkgs/build-support/fetchpatch/default.nix deleted file mode 100644 index a3ca668..0000000 --- a/pkgs/build-support/fetchpatch/default.nix +++ /dev/null @@ -1,93 +0,0 @@ -# This function downloads and normalizes a patch/diff file. -# This is primarily useful for dynamically generated patches, -# such as GitHub's or cgit's, where the non-significant content parts -# often change with updating of git or cgit. -# stripLen acts as the -p parameter when applying a patch. - -{ 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 ? "" -, ... -}@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 - inherit (args') stripLen extraPrefix; -in -lib.throwIfNot (excludes == [] || includes == []) - "fetchpatch: cannot use excludes and includes simultaneously" -fetchurl ({ - postFetch = '' - tmpfile="$TMPDIR/patch" - - 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" - - "${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 - - ${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" -]) diff --git a/pkgs/build-support/fetchpatch/tests.nix b/pkgs/build-support/fetchpatch/tests.nix deleted file mode 100644 index 0a27f1b..0000000 --- a/pkgs/build-support/fetchpatch/tests.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ testers, fetchpatch, ... }: - -let - isFetchpatch2 = fetchpatch.version == 2; -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="; - }; - - 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="; - }; - - full = testers.invalidateFetcherByDrvHash fetchpatch { - url = "https://github.com/boostorg/math/commit/7d482f6ebc356e6ec455ccb5f51a23971bf6ce5b.patch"; - relative = "test"; - stripLen = 1; - 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="; - }; - - 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="; - }; -} diff --git a/pkgs/build-support/fetchpijul/default.nix b/pkgs/build-support/fetchpijul/default.nix deleted file mode 100644 index fd41cfa..0000000 --- a/pkgs/build-support/fetchpijul/default.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ 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. - # 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; - - dontUnpack = true; - dontConfigure = true; - dontBuild = true; - - installPhase = '' - runHook preInstall - - pijul clone \ - ''${change:+--change "$change"} \ - ''${state:+--state "$state"} \ - --channel "$channel" \ - "$url" \ - "$out" - - runHook postInstall - ''; - - fixupPhase = '' - runHook preFixup - - rm -rf "$out/.pijul" - - runHook postFixup - ''; - - outputHashAlgo = if hash != "" then null else "sha256"; - outputHashMode = "recursive"; - outputHash = if hash != "" then - hash - else - lib.fakeSha256; - - inherit url change state channel; - - impureEnvVars = lib.fetchers.proxyImpureEnvVars; - } -) diff --git a/pkgs/build-support/fetchpypi/default.nix b/pkgs/build-support/fetchpypi/default.nix deleted file mode 100644 index ebd277c..0000000 --- a/pkgs/build-support/fetchpypi/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -# `fetchPypi` function for fetching artifacts from PyPI. -{ 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"; - - 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}"); - - in compute (builtins.removeAttrs attrs ["format"]); - -in makeOverridable( {format ? "setuptools", sha256 ? "", hash ? "", ... } @attrs: - let - 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 deleted file mode 100644 index bcd5604..0000000 --- a/pkgs/build-support/fetchpypilegacy/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -# Fetch from PyPi legacy API as documented in https://warehouse.pypa.io/api-reference/legacy.html -{ runCommand -, lib -, python3 -}: -{ - # package name - pname, - # Package index - url ? null, - # Multiple package indices to consider - urls ? [ ], - # filename including extension - file, - # SRI hash - hash, - # allow overriding the derivation name - name ? null, -}: -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 ""; - -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;})) - '' - 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/fetch-legacy.py b/pkgs/build-support/fetchpypilegacy/fetch-legacy.py deleted file mode 100644 index e031f24..0000000 --- a/pkgs/build-support/fetchpypilegacy/fetch-legacy.py +++ /dev/null @@ -1,162 +0,0 @@ -# Some repositories (such as Devpi) expose the Pypi legacy API -# (https://warehouse.pypa.io/api-reference/legacy.html). -# -# Note it is not possible to use pip -# https://discuss.python.org/t/pip-download-just-the-source-packages-no-building-no-metadata-etc/4651/12 - -import base64 -import argparse -import netrc -import os -import shutil -import ssl -import sys -import urllib.request -from html.parser import HTMLParser -from os.path import normpath -from typing import Optional -from urllib.parse import urlparse, urlunparse - - -# Parse the legacy index page to extract the href and package names -class Pep503(HTMLParser): - def __init__(self) -> None: - super().__init__() - self.sources: dict[str, str] = {} - self.url: Optional[str] = None - self.name: Optional[str] = None - - def handle_data(self, data: str) -> None: - if self.url is not None: - self.name = data - - def handle_starttag(self, tag: str, attrs: list[tuple[str, Optional[str]]]) -> None: - if tag == "a": - for name, value in attrs: - if name == "href": - self.url = value - - def handle_endtag(self, tag: str) -> None: - if self.url is not None: - if not self.name: - raise ValueError("Name not set") - - self.sources[self.name] = self.url - self.url = None - - -def try_fetch(url: str, package_name: str, package_filename: str) -> None: - index_url = url + "/" + package_name + "/" - - # Parse username and password for this host from the netrc file if given. - username: Optional[str] = None - password: Optional[str] = None - if os.environ.get("NETRC", "") != "": - netrc_obj = netrc.netrc(os.environ["NETRC"]) - host = urlparse(index_url).netloc - # Strip port number if present - if ":" in host: - host = host.split(":")[0] - authenticators = netrc_obj.authenticators(host) - if authenticators: - username, _, password = authenticators - - print("Reading index %s" % index_url) - - context = ssl.create_default_context() - - # Extract out username/password from index_url, if present. - parsed_url = urlparse(index_url) - username = parsed_url.username or username - password = parsed_url.password or password - index_url = parsed_url._replace(netloc=parsed_url.netloc.rpartition("@")[-1]).geturl() - - req = urllib.request.Request(index_url) - - if username and password: # Add authentication - password_b64 = base64.b64encode(":".join((username, password)).encode()).decode("utf-8") - req.add_header("Authorization", "Basic {}".format(password_b64)) - else: # If we are not using authentication disable TLS verification for long term reproducibility - context.check_hostname = False - context.verify_mode = ssl.CERT_NONE - - response = urllib.request.urlopen(req, context=context) - index = response.read() - - parser = Pep503() - parser.feed(str(index, "utf-8")) - if package_filename not in parser.sources: - print("The file %s has not be found in the index %s" % (package_filename, index_url)) - exit(1) - - package_file = open(package_filename, "wb") - # Sometimes the href is a relative or absolute path within the index's domain. - indicated_url = urlparse(parser.sources[package_filename]) - if indicated_url.netloc == "": - parsed_url = urlparse(index_url) - - if indicated_url.path.startswith("/"): - # An absolute path within the index's domain. - path = parser.sources[package_filename] - else: - # A relative path. - path = parsed_url.path + "/" + parser.sources[package_filename] - - package_url = urlunparse( - ( - parsed_url.scheme, - parsed_url.netloc, - path, - None, - None, - None, - ) - ) - else: - package_url = parser.sources[package_filename] - - # Handle urls containing "../" - parsed_url = urlparse(package_url) - real_package_url = urlunparse( - ( - parsed_url.scheme, - parsed_url.netloc, - normpath(parsed_url.path), - parsed_url.params, - parsed_url.query, - parsed_url.fragment, - ) - ) - print("Downloading %s" % real_package_url) - - req = urllib.request.Request(real_package_url) - if username and password: - req.add_unredirected_header("Authorization", "Basic {}".format(password_b64)) - response = urllib.request.urlopen(req, context=context) - - with response as r: - shutil.copyfileobj(r, package_file) - - -argparser = argparse.ArgumentParser(description="Fetch file from legacy pypi API") -argparser.add_argument("--url", action="append", required=True) -argparser.add_argument("--pname", action="store", required=True) -argparser.add_argument("--filename", action="store", required=True) - - -if __name__ == "__main__": - args = argparser.parse_args() - for url in args.url: - try: - try_fetch(url, args.pname, args.filename) - except urllib.error.HTTPError as e: - print("Got exception'", e, "', trying next package index", file=sys.stderr) - continue - else: - break - else: - print( - f"Could not fetch package '{args.pname}' file '{args.filename}' from any mirrors: {args.url}", - file=sys.stderr, - ) - exit(1) diff --git a/pkgs/build-support/fetchpypilegacy/tests.nix b/pkgs/build-support/fetchpypilegacy/tests.nix deleted file mode 100644 index b16325b..0000000 --- a/pkgs/build-support/fetchpypilegacy/tests.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ testers, fetchPypiLegacy, ... }: { - # Tests that we can send custom headers with spaces in them - fetchSimple = testers.invalidateFetcherByDrvHash fetchPypiLegacy { - pname = "requests"; - file = "requests-2.31.0.tar.gz"; - url = "https://pypi.org/simple"; - hash = "sha256-lCxadY+Y15Dq7Ropy27vx/+w0c968Fw9J5Flbb1q0eE="; - }; -} diff --git a/pkgs/build-support/fetchrepoorcz/default.nix b/pkgs/build-support/fetchrepoorcz/default.nix deleted file mode 100644 index 3ac7cac..0000000 --- a/pkgs/build-support/fetchrepoorcz/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ 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; } diff --git a/pkgs/build-support/fetchrepoproject/default.nix b/pkgs/build-support/fetchrepoproject/default.nix deleted file mode 100644 index a5e79c8..0000000 --- a/pkgs/build-support/fetchrepoproject/default.nix +++ /dev/null @@ -1,83 +0,0 @@ -{ lib, stdenvNoCC, gitRepo, cacert, copyPathsToStore }: - -{ name, manifest, rev ? "HEAD", sha256 -# Optional parameters: -, repoRepoURL ? "", repoRepoRev ? "", referenceDir ? "", manifestName ? "" -, localManifests ? [], createMirror ? false, useArchive ? false -}: - -assert repoRepoRev != "" -> repoRepoURL != ""; -assert createMirror -> !useArchive; - -let - inherit (lib) - concatMapStringsSep - concatStringsSep - fetchers - optionalString - ; - - extraRepoInitFlags = [ - (optionalString (repoRepoURL != "") "--repo-url=${repoRepoURL}") - (optionalString (repoRepoRev != "") "--repo-branch=${repoRepoRev}") - (optionalString (referenceDir != "") "--reference=${referenceDir}") - (optionalString (manifestName != "") "--manifest-name=${manifestName}") - ]; - - repoInitFlags = [ - "--manifest-url=${manifest}" - "--manifest-branch=${rev}" - "--depth=1" - (optionalString createMirror "--mirror") - (optionalString useArchive "--archive") - ] ++ extraRepoInitFlags; - - local_manifests = copyPathsToStore localManifests; - -in stdenvNoCC.mkDerivation { - inherit name; - - inherit cacert manifest rev repoRepoURL repoRepoRev referenceDir; # TODO - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = sha256; - - preferLocalBuild = true; - enableParallelBuilding = true; - - impureEnvVars = fetchers.proxyImpureEnvVars ++ [ - "GIT_PROXY_COMMAND" "SOCKS_SERVER" - ]; - - nativeBuildInputs = [ gitRepo cacert ]; - - GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; - - buildCommand = '' - # Path must be absolute (e.g. for GnuPG: ~/.repoconfig/gnupg/pubring.kbx) - export HOME="$(pwd)" - - mkdir $out - cd $out - - mkdir .repo - ${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) - done - ''} - - repo init ${concatStringsSep " " repoInitFlags} - repo sync --jobs=$NIX_BUILD_CORES --current-branch - - # TODO: The git-index files (and probably the files in .repo as well) have - # different contents each time and will therefore change the final hash - # (i.e. creating a mirror probably won't work). - ${optionalString (!createMirror) '' - rm -rf .repo - find -type d -name '.git' -prune -exec rm -rf {} + - ''} - ''; -} diff --git a/pkgs/build-support/fetchs3/default.nix b/pkgs/build-support/fetchs3/default.nix deleted file mode 100644 index acad074..0000000 --- a/pkgs/build-support/fetchs3/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ 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 -}: - -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; - }; - - credentialAttrs = lib.optionalAttrs (credentials != null) (mkCredentials credentials); -in runCommand name ({ - nativeBuildInputs = [ awscli ]; - - outputHashAlgo = "sha256"; - outputHash = sha256; - outputHashMode = if recursiveHash then "recursive" else "flat"; - - 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 -'') diff --git a/pkgs/build-support/fetchsavannah/default.nix b/pkgs/build-support/fetchsavannah/default.nix deleted file mode 100644 index e75e25f..0000000 --- a/pkgs/build-support/fetchsavannah/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ fetchzip, lib }: - -lib.makeOverridable ( -# cgit example, snapshot support is optional in cgit -{ repo, rev, name ? "source" -, ... # 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 deleted file mode 100644 index 42d437b..0000000 --- a/pkgs/build-support/fetchsourcehut/default.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ fetchgit, fetchhg, fetchzip, lib }: - -let - inherit (lib) - assertOneOf - makeOverridable - optionalString - ; -in - -makeOverridable ( -{ owner -, repo, rev -, domain ? "sr.ht" -, vc ? "git" -, name ? "source" -, fetchSubmodules ? false -, ... # For hash agility -} @ args: - -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; }; - }; - 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}"; -} -) diff --git a/pkgs/build-support/fetchsvn/builder.sh b/pkgs/build-support/fetchsvn/builder.sh deleted file mode 100644 index e187747..0000000 --- a/pkgs/build-support/fetchsvn/builder.sh +++ /dev/null @@ -1,24 +0,0 @@ -if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi -source $stdenv/setup - -echo "exporting $url (r$rev) into $out" - -if test -n "$http_proxy"; then - # Configure proxy - mkdir .subversion - proxy="${http_proxy#*://}" - - echo '[global]' > .subversion/servers - echo "http-proxy-host = ${proxy%:*}" >> .subversion/servers - echo "http-proxy-port = ${proxy##*:}" >> .subversion/servers - - export HOME="$PWD" -fi; - -if test -z "$LC_ALL"; then - export LC_ALL="en_US.UTF-8" -fi; - -svn export --trust-server-cert --non-interactive \ - ${ignoreExternals:+--ignore-externals} ${ignoreKeywords:+--ignore-keywords} \ - -r "$rev" "$url" "$out" diff --git a/pkgs/build-support/fetchsvn/default.nix b/pkgs/build-support/fetchsvn/default.nix deleted file mode 100644 index 41752eb..0000000 --- a/pkgs/build-support/fetchsvn/default.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ lib, stdenvNoCC, buildPackages -, subversion, glibcLocales, sshSupport ? true, openssh ? null -}: - -{ url, rev ? "HEAD", sha256 ? "", hash ? "" -, ignoreExternals ? false, ignoreKeywords ? false, name ? null -, preferLocalBuild ? true -}: - -assert sshSupport -> openssh != null; - -let - 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)); - 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; - - name_ = if name == null then "${repoName}-r${toString rev}" else name; -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; - - 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; - - inherit url rev ignoreExternals ignoreKeywords; - - impureEnvVars = lib.fetchers.proxyImpureEnvVars; - inherit preferLocalBuild; -} diff --git a/pkgs/build-support/fetchsvn/nix-prefetch-svn b/pkgs/build-support/fetchsvn/nix-prefetch-svn deleted file mode 100755 index 03b9eb9..0000000 --- a/pkgs/build-support/fetchsvn/nix-prefetch-svn +++ /dev/null @@ -1,79 +0,0 @@ -#! /bin/sh -e - -url=$1 -rev=$2 -expHash=$3 - -hashType=$NIX_HASH_ALGO -if test -z "$hashType"; then - hashType=sha256 -fi -if test -z "$hashFormat"; then - hashFormat=--base32 -fi - -if test -z "$url"; then - echo "syntax: nix-prefetch-svn URL [REVISION [EXPECTED-HASH]]" >&2 - exit 1 -fi - -test -n "$rev" || rev="HEAD" - -repoName=$(echo $url | sed ' - s,.*/\([^/]\+\)/trunk/*$,\1,;t - s,.*/\([^/]\+\)/branches/\([^/]\+\)/*$,\1-\2,;t - s,.*/\([^/]\+\)/tags/\([^/]\+\)/*$,\1-\2,;t - s,.*/\([^/]\+\)/*$,\1,;t -') -dstFile=$repoName-r$rev - -# If the hash was given, a file with that hash may already be in the -# store. -if test -n "$expHash"; then - finalPath=$(nix-store --print-fixed-path --recursive "$hashType" "$expHash" $dstFile) - if ! nix-store --check-validity "$finalPath" 2> /dev/null; then - finalPath= - fi - hash=$expHash -fi - - -# If we don't know the hash or a path with that hash doesn't exist, -# download the file and add it to the store. -if test -z "$finalPath"; then - tmpPath="$(mktemp -d "${TMPDIR:-/tmp}/svn-checkout-tmp-XXXXXXXX")" - trap "rm -rf \"$tmpPath\"" EXIT - - tmpFile="$tmpPath/$dstFile" - - # Perform the checkout. - if test "$NIX_PREFETCH_SVN_LEAVE_DOT_SVN" != 1 - then - command="export" - else - command="checkout" - fi - - echo p | svn "$command" --quiet -r "$rev" "$url" "$tmpFile" >&2 - echo "svn revision is $(svn info -r "$rev" "$url" | grep "Revision: " | cut -d' ' -f2)" - - # Compute the hash. - hash=$(nix-hash --type $hashType $hashFormat $tmpFile) - if ! test -n "$QUIET"; then echo "hash is $hash" >&2; fi - - # Add the downloaded file to the Nix store. - finalPath=$(nix-store --add-fixed --recursive "$hashType" $tmpFile) - - if test -n "$expHash" -a "$expHash" != "$hash"; then - echo "hash mismatch for URL \`$url'" - exit 1 - fi -fi - -if ! test -n "$QUIET"; then echo "path is $finalPath" >&2; fi - -echo $hash - -if test -n "$PRINT_PATH"; then - echo $finalPath -fi diff --git a/pkgs/build-support/fetchsvnrevision/default.nix b/pkgs/build-support/fetchsvnrevision/default.nix deleted file mode 100644 index f2e2a11..0000000 --- a/pkgs/build-support/fetchsvnrevision/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -runCommand: subversion: repository: - 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/builder.sh b/pkgs/build-support/fetchsvnssh/builder.sh deleted file mode 100644 index e553446..0000000 --- a/pkgs/build-support/fetchsvnssh/builder.sh +++ /dev/null @@ -1,14 +0,0 @@ -if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi -source $stdenv/setup - -echo "exporting $url (r$rev) into $out" - -if test "$sshSupport"; then - export SVN_SSH="$openssh/bin/ssh" -fi - -# Pipe the "p" character into Subversion to force it to accept the -# server's certificate. This is perfectly safe: we don't care -# whether the server is being spoofed --- only the cryptographic -# hash of the output matters. -expect -f $sshSubversion "$username" "$password" "$rev" "$url" $out diff --git a/pkgs/build-support/fetchsvnssh/default.nix b/pkgs/build-support/fetchsvnssh/default.nix deleted file mode 100644 index ef72de6..0000000 --- a/pkgs/build-support/fetchsvnssh/default.nix +++ /dev/null @@ -1,17 +0,0 @@ -{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]; - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = sha256; - - sshSubversion = ./sshsubversion.exp; - - inherit username password url rev sshSupport openssh; -} diff --git a/pkgs/build-support/fetchsvnssh/sshsubversion.exp b/pkgs/build-support/fetchsvnssh/sshsubversion.exp deleted file mode 100755 index c00f397..0000000 --- a/pkgs/build-support/fetchsvnssh/sshsubversion.exp +++ /dev/null @@ -1,22 +0,0 @@ -#!/nix/var/nix/profiles/default/bin/expect -f - -# Set variables -set username [lindex $argv 0] -set password [lindex $argv 1] -set rev [lindex $argv 2] -set url [lindex $argv 3] -set out [lindex $argv 4] -set timeout -1 - -spawn svn export -r$rev svn+ssh://$username@$url $out -match_max 100000 - -expect "*continue connecting*" { send -- "yes\r"; expect "*?assword:*"; send -- "$password\r" } \ - "*?assword:*" { send -- "$password\r" } - -expect "*?assword:*" -send -- "$password\r" - -# Send blank line -send -- "\r" -expect eof diff --git a/pkgs/build-support/fetchtorrent/default.nix b/pkgs/build-support/fetchtorrent/default.nix deleted file mode 100644 index 1267486..0000000 --- a/pkgs/build-support/fetchtorrent/default.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ 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 ? {} -}: -let - afterSuccess = writeShellScript "fetch-bittorrent-done.sh" '' - ${postUnpack} - # Flatten the directory, so that only the torrent contents are in $out, not - # the folder name - shopt -s dotglob - mv -v $downloadedDirectory/*/* $out - rm -v -rf $downloadedDirectory - unset downloadedDirectory - ${postFetch} - kill $PPID - ''; - 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"; - - # 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 - } - 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 deleted file mode 100644 index e8cc3f3..0000000 --- a/pkgs/build-support/fetchtorrent/tests.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ testers, fetchtorrent, lib, ... }: - -let - wired-cd.meta.license = [ - # track 1, 4 and 11 - { - spdxID = "CC NC-SAMPLING+ 1.0 Deed"; - fullName = "NonCommercial Sampling Plus 1.0 Generic"; - url = "https://creativecommons.org/licenses/nc-sampling+/1.0/"; - free = false; # for noncommercial purposes only - } - # the rest - { - spdxID = "CC SAMPLING+ 1.0 Deed"; - fullName = "Sampling Plus 1.0 Generic"; - url = "https://creativecommons.org/licenses/sampling+/1.0/"; - free = true; # no use in advertisement - } - ]; -in - -{ - http-link = testers.invalidateFetcherByDrvHash fetchtorrent { - url = "https://webtorrent.io/torrents/wired-cd.torrent"; - hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo="; - backend = "transmission"; - inherit (wired-cd) meta; - }; - magnet-link = testers.invalidateFetcherByDrvHash fetchtorrent { - url = "magnet:?xt=urn:btih:a88fda5954e89178c372716a6a78b8180ed4dad3&dn=The+WIRED+CD+-+Rip.+Sample.+Mash.+Share&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fwired-cd.torrent"; - hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo="; - backend = "transmission"; - inherit (wired-cd) meta; - }; - http-link-rqbit = testers.invalidateFetcherByDrvHash fetchtorrent { - url = "https://webtorrent.io/torrents/wired-cd.torrent"; - hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo="; - backend = "rqbit"; - inherit (wired-cd) meta; - }; - magnet-link-rqbit = testers.invalidateFetcherByDrvHash fetchtorrent { - url = "magnet:?xt=urn:btih:a88fda5954e89178c372716a6a78b8180ed4dad3&dn=The+WIRED+CD+-+Rip.+Sample.+Mash.+Share&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fwired-cd.torrent"; - hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo="; - backend = "rqbit"; - inherit (wired-cd) meta; - }; -} diff --git a/pkgs/build-support/fetchurl/boot.nix b/pkgs/build-support/fetchurl/boot.nix deleted file mode 100644 index 8f8c78b..0000000 --- a/pkgs/build-support/fetchurl/boot.nix +++ /dev/null @@ -1,25 +0,0 @@ -let mirrors = import ./mirrors.nix; in - -{ system }: - -{ url ? builtins.head urls -, urls ? [] -, sha256 ? "" -, hash ? "" -, name ? baseNameOf (toString url) -}: - -# assert exactly one hash is set -assert hash != "" || sha256 != ""; -assert hash != "" -> sha256 == ""; - -import { - 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); -} diff --git a/pkgs/build-support/fetchurl/builder.sh b/pkgs/build-support/fetchurl/builder.sh deleted file mode 100644 index a82728e..0000000 --- a/pkgs/build-support/fetchurl/builder.sh +++ /dev/null @@ -1,173 +0,0 @@ -if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi -source $stdenv/setup - -source $mirrorsFile - -curlVersion=$(curl -V | head -1 | cut -d' ' -f2) - -# Curl flags to handle redirects, not use EPSV, handle cookies for -# servers to need them during redirects, and work on SSL without a -# certificate (this isn't a security problem because we check the -# cryptographic hash of the output anyway). -curl=( - curl - --location - --max-redirs 20 - --retry 3 - --disable-epsv - --cookie-jar cookies - --user-agent "curl/$curlVersion Nixpkgs/$nixpkgsVersion" -) - -if ! [ -f "$SSL_CERT_FILE" ]; then - curl+=(--insecure) -fi - -eval "curl+=($curlOptsList)" - -curl+=( - $curlOpts - $NIX_CURL_FLAGS -) - -downloadedFile="$out" -if [ -n "$downloadToTemp" ]; then downloadedFile="$TMPDIR/file"; fi - - -tryDownload() { - local url="$1" - echo - echo "trying $url" - local curlexit=18; - - success= - - # if we get error code 18, resume partial download - while [ $curlexit -eq 18 ]; do - # keep this inside an if statement, since on failure it doesn't abort the script - if "${curl[@]}" -C - --fail "$url" --output "$downloadedFile"; then - success=1 - break - else - curlexit=$?; - fi - done -} - - -finish() { - local skipPostFetch="$1" - - set +o noglob - - if [[ $executable == "1" ]]; then - chmod +x $downloadedFile - fi - - if [ -z "$skipPostFetch" ]; then - runHook postFetch - fi - - exit 0 -} - - -tryHashedMirrors() { - if test -n "$NIX_HASHED_MIRRORS"; then - hashedMirrors="$NIX_HASHED_MIRRORS" - fi - - for mirror in $hashedMirrors; do - url="$mirror/$outputHashAlgo/$outputHash" - if "${curl[@]}" --retry 0 --connect-timeout "${NIX_CONNECT_TIMEOUT:-15}" \ - --fail --silent --show-error --head "$url" \ - --write-out "%{http_code}" --output /dev/null > code 2> log; then - tryDownload "$url" - - # We skip postFetch here, because hashed-mirrors are - # already content addressed. So if $outputHash is in the - # hashed-mirror, changes from ‘postFetch’ would already be - # made. So, running postFetch will end up applying the - # change /again/, which we don’t want. - if test -n "$success"; then finish skipPostFetch; fi - else - # Be quiet about 404 errors, which we interpret as the file - # not being present on this particular mirror. - if test "$(cat code)" != 404; then - echo "error checking the existence of $url:" - cat log - fi - fi - done -} - - -# URL list may contain ?. No glob expansion for that, please -set -o noglob - -urls2= -for url in $urls; do - if test "${url:0:9}" != "mirror://"; then - urls2="$urls2 $url" - else - url2="${url:9}"; echo "${url2/\// }" > split; read site fileName < split - #varName="mirror_$site" - varName="$site" # !!! danger of name clash, fix this - if test -z "${!varName}"; then - echo "warning: unknown mirror:// site \`$site'" - else - mirrors=${!varName} - - # Allow command-line override by setting NIX_MIRRORS_$site. - varName="NIX_MIRRORS_$site" - if test -n "${!varName}"; then mirrors="${!varName}"; fi - - for url3 in $mirrors; do - urls2="$urls2 $url3$fileName"; - done - fi - fi -done -urls="$urls2" - -# Restore globbing settings -set +o noglob - -if test -n "$showURLs"; then - echo "$urls" > $out - exit 0 -fi - -if test -n "$preferHashedMirrors"; then - tryHashedMirrors -fi - -# URL list may contain ?. No glob expansion for that, please -set -o noglob - -success= -for url in $urls; do - if [ -z "$postFetch" ]; then - case "$url" in - https://github.com/*/archive/*) - echo "warning: archives from GitHub revisions should use fetchFromGitHub" - ;; - https://gitlab.com/*/-/archive/*) - echo "warning: archives from GitLab revisions should use fetchFromGitLab" - ;; - esac - fi - tryDownload "$url" - if test -n "$success"; then finish; fi -done - -# Restore globbing settings -set +o noglob - -if test -z "$preferHashedMirrors"; then - tryHashedMirrors -fi - - -echo "error: cannot download $name from any mirror" -exit 1 diff --git a/pkgs/build-support/fetchurl/default.nix b/pkgs/build-support/fetchurl/default.nix deleted file mode 100644 index a9c2c7c..0000000 --- a/pkgs/build-support/fetchurl/default.nix +++ /dev/null @@ -1,190 +0,0 @@ -{ lib, buildPackages ? { inherit stdenvNoCC; }, stdenvNoCC -, curl # Note that `curl' may be `null', in case of the native stdenvNoCC. -, cacert ? null }: - -let - - mirrors = import ./mirrors.nix; - - # Write the list of mirrors to a file that we can reuse between - # fetchurl instantiations, instead of passing the mirrors to - # 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 ({ - name = "mirrors-list"; - strictDeps = true; - builder = ./write-mirror-list.sh; - preferLocalBuild = true; - } // 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" - - # 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); - -in - -{ # URL to fetch. - url ? "" - -, # Alternatively, a list of URLs specifying alternative download - # locations. They are tried in order. - urls ? [] - -, # 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 ? "" - -, # Additional curl options needed for the download to succeed. - curlOptsList ? [] - -, # Name of the file. If empty, use the basename of `url' (or of the - # first element of `urls'). - name ? "" - - # for versioned downloads optionally take pname + version. -, pname ? "" -, version ? "" - -, # SRI hash. - hash ? "" - -, # Legacy ways of specifying the hash. - outputHash ? "" -, outputHashAlgo ? "" -, sha1 ? "" -, sha256 ? "" -, sha512 ? "" - -, recursiveHash ? 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 ? [] - -, # Shell code executed after the file has been fetched - # successfully. This can do things like check or transform the file. - postFetch ? "" - -, # 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 - -, # If true, set executable bit on downloaded file - executable ? false - -, # If set, don't download the file, but write a list of all possible - # URLs (resulting from resolving mirror:// URLs) to $out. - showURLs ? false - -, # Meta information, if any. - meta ? {} - - # Passthru information, if any. -, passthru ? {} - # Doing the download on a remote machine just duplicates network - # traffic, so don't do that by default -, preferLocalBuild ? true - - # Additional packages needed as part of a fetch -, 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"; - - hash_ = - 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; } - 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_}"; -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. - - 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; - - nativeBuildInputs = [ curl ] ++ nativeBuildInputs; - - urls = urls_; - - # 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; - - 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"; - - inherit curlOpts; - curlOptsList = lib.escapeShellArgs curlOptsList; - inherit showURLs mirrorsFile postFetch downloadToTemp executable; - - impureEnvVars = impureEnvVars ++ netrcImpureEnvVars; - - nixpkgsVersion = lib.trivial.release; - - inherit preferLocalBuild; - - postHook = if netrcPhase == null then null else '' - ${netrcPhase} - curlOpts="$curlOpts --netrc-file $PWD/netrc" - ''; - - inherit meta; - passthru = { inherit url; } // passthru; -}) diff --git a/pkgs/build-support/fetchurl/mirrors.nix b/pkgs/build-support/fetchurl/mirrors.nix deleted file mode 100644 index e192c65..0000000 --- a/pkgs/build-support/fetchurl/mirrors.nix +++ /dev/null @@ -1,422 +0,0 @@ -{ - - # Content-addressable Nix mirrors - hashedMirrors = [ - "https://tarballs.nixos.org" - ]; - - # Mirrors for mirror://site/filename URIs, where "site" is - # "sourceforge", "gnu", etc. - - # Alsa Project - alsa = [ - "https://www.alsa-project.org/files/pub/" - "ftp://ftp.alsa-project.org/pub/" - "http://alsa.cybermirror.org/" - "http://www.mirrorservice.org/sites/ftp.alsa-project.org/pub/" - ]; - - # Apache - apache = [ - "https://dlcdn.apache.org/" - "https://www-eu.apache.org/dist/" - "https://ftp.wayne.edu/apache/" - "https://www.apache.org/dist/" - "https://archive.apache.org/dist/" # fallback for old releases - "https://apache.cs.uu.nl/" - "https://apache.cs.utah.edu/" - "http://ftp.tudelft.nl/apache/" - "ftp://ftp.funet.fi/pub/mirrors/apache.org/" - ]; - - # Bioconductor mirrors (from https://bioconductor.org/about/mirrors/) - # The commented-out ones don't seem to allow direct package downloads; - # they serve error messages that result in hash mismatches instead - bioc = [ - # http://bioc.ism.ac.jp/ - # http://bioc.openanalytics.eu/ - # http://bioconductor.fmrp.usp.br/ - # http://mirror.aarnet.edu.au/pub/bioconductor/ - # http://watson.nci.nih.gov/bioc_mirror/ - "https://bioconductor.statistik.tu-dortmund.de/packages/" - "https://mirrors.ustc.edu.cn/bioc/" - "http://bioconductor.jp/packages/" - ]; - - # CRAN mirrors - cran = [ - "https://cran.r-project.org/src/contrib/" - ]; - - # BitlBee mirrors, see https://www.bitlbee.org/main.php/mirrors.html - bitlbee = [ - "https://get.bitlbee.org/" - "https://ftp.snt.utwente.nl/pub/software/bitlbee/" - "http://bitlbee.intergenia.de/" - ]; - - # GCC - gcc = [ - "https://mirror.koddos.net/gcc/" - "https://bigsearcher.com/mirrors/gcc/" - "ftp://ftp.nluug.nl/mirror/languages/gcc/" - "ftp://ftp.fu-berlin.de/unix/languages/gcc/" - "ftp://ftp.irisa.fr/pub/mirrors/gcc.gnu.org/gcc/" - "ftp://gcc.gnu.org/pub/gcc/" - ]; - - # GNOME - gnome = [ - # This one redirects to some mirror closeby, so it should be all you need - "https://download.gnome.org/" - - "https://fr2.rpmfind.net/linux/gnome.org/" - "https://ftp.acc.umu.se/pub/GNOME/" - "https://ftp.belnet.be/mirror/ftp.gnome.org/" - "ftp://ftp.cse.buffalo.edu/pub/Gnome/" - "ftp://ftp.nara.wide.ad.jp/pub/X11/GNOME/" - ]; - - # GNU (https://www.gnu.org/prep/ftp.html) - gnu = [ - # This one redirects to a (supposedly) nearby and (supposedly) up-to-date - # mirror - "https://ftpmirror.gnu.org/" - - "https://ftp.nluug.nl/pub/gnu/" - "https://mirrors.kernel.org/gnu/" - "https://mirror.ibcp.fr/pub/gnu/" - "https://mirror.dogado.de/gnu/" - "https://mirror.tochlab.net/pub/gnu/" - - # This one is the master repository, and thus it's always up-to-date - "https://ftp.gnu.org/pub/gnu/" - - "ftp://ftp.funet.fi/pub/mirrors/ftp.gnu.org/gnu/" - ]; - - # GnuPG - gnupg = [ - "https://gnupg.org/ftp/gcrypt/" - "https://mirrors.dotsrc.org/gcrypt/" - "https://ftp.heanet.ie/mirrors/ftp.gnupg.org/gcrypt/" - "https://www.mirrorservice.org/sites/ftp.gnupg.org/gcrypt/" - "http://www.ring.gr.jp/pub/net/" - ]; - - # IBiblio (former metalab/sunsite) - # Most of the time the expressions refer to the /pub/Linux/ subdirectory; - # however there are other useful files outside it - ibiblioPubLinux = [ - "https://www.ibiblio.org/pub/Linux/" - "ftp://ftp.ibiblio.org/pub/linux/" - "ftp://ftp.gwdg.de/pub/linux/metalab/" - "ftp://ftp.metalab.unc.edu/pub/linux/" - ]; - - # ImageMagick mirrors, see https://www.imagemagick.org/script/mirror.php - imagemagick = [ - "https://www.imagemagick.org/download/" - "https://mirror.checkdomain.de/imagemagick/" - "https://ftp.nluug.nl/ImageMagick/" - "https://ftp.sunet.se/mirror/imagemagick.org/ftp/" - "ftp://ftp.sunet.se/mirror/imagemagick.org/ftp/" # also contains older versions removed from most mirrors - ]; - - # Mirrors from https://download.kde.org/ls-lR.mirrorlist - kde = [ - "https://cdn.download.kde.org/" - "https://download.kde.org/download.php?url=" - "https://ftp.gwdg.de/pub/linux/kde/" - "https://mirrors.ocf.berkeley.edu/kde/" - "https://mirrors.mit.edu/kde/" - "https://mirrors.ustc.edu.cn/kde/" - "https://ftp.funet.fi/pub/mirrors/ftp.kde.org/pub/kde/" - ]; - - # kernel.org's /pub (/pub/{linux,software}) tree - kernel = [ - "https://cdn.kernel.org/pub/" - "http://linux-kernel.uio.no/pub/" - "ftp://ftp.funet.fi/pub/mirrors/ftp.kernel.org/pub/" - ]; - - # MySQL - mysql = [ - "https://cdn.mysql.com/Downloads/" - ]; - - # Maven Central - maven = [ - "https://repo1.maven.org/maven2/" - ]; - - # Mozilla projects - mozilla = [ - "https://download.cdn.mozilla.net/pub/mozilla.org/" - "https://archive.mozilla.org/pub/" - ]; - - # OSDN (formerly SourceForge.jp) - osdn = [ - "https://osdn.dl.osdn.jp/" - "https://osdn.mirror.constant.com/" - "https://mirrors.gigenet.com/OSDN/" - "https://osdn.dl.sourceforge.jp/" - "https://jaist.dl.sourceforge.jp/" - ]; - - # PostgreSQL - postgresql = [ - "https://ftp.postgresql.org/pub/" - ]; - - # Qt - qt = [ - "https://download.qt.io/" - ]; - - # Sage mirrors (https://www.sagemath.org/mirrors.html) - sageupstream = [ - # Africa (HTTPS) - "https://sagemath.mirror.ac.za/spkg/upstream/" - "https://mirror.ufs.ac.za/sagemath/spkg/upstream/" - - # America, North (HTTPS) - "https://mirrors.mit.edu/sage/spkg/upstream/" - "https://mirrors.xmission.com/sage/spkg/upstream/" - - # Asia (HTTPS) - "https://mirrors.tuna.tsinghua.edu.cn/sagemath/spkg/upstream/" - "https://mirrors.ustc.edu.cn/sagemath/spkg/upstream/" - "http://ftp.tsukuba.wide.ad.jp/software/sage/spkg/upstream/" - "https://ftp.yz.yamagata-u.ac.jp/pub/math/sage/spkg/upstream/" - "https://mirror.yandex.ru/mirrors/sage.math.washington.edu/spkg/upstream/" - - # Australia (HTTPS) - "https://mirror.aarnet.edu.au/pub/sage/spkg/upstream/" - - # Europe (HTTPS) - "https://sage.mirror.garr.it/mirrors/sage/spkg/upstream/" - "https://www-ftp.lip6.fr/pub/math/sagemath/spkg/upstream/" - - # Africa (non-HTTPS) - "ftp://ftp.sun.ac.za/pub/mirrors/www.sagemath.org/spkg/upstream/" - - # America, North (non-HTTPS) - "http://www.cecm.sfu.ca/sage/spkg/upstream/" - - # America, South (non-HTTPS) - "http://sagemath.c3sl.ufpr.br/spkg/upstream/" - "http://linorg.usp.br/sage/spkg/upstream" - - # Asia (non-HTTPS) - "http://ftp.kaist.ac.kr/sage/spkg/upstream/" - "http://ftp.riken.jp/sagemath/spkg/upstream/" - - # Europe (non-HTTPS) - "http://mirrors.fe.up.pt/pub/sage/spkg/upstream/" - "http://ftp.ntua.gr/pub/sagemath/spkg/upstream/" - ]; - - # SAMBA - samba = [ - "https://www.samba.org/ftp/" - "http://www.samba.org/ftp/" - ]; - - # GNU Savannah - savannah = [ - # Mirrors from https://download-mirror.savannah.gnu.org/releases/00_MIRRORS.html - "https://mirror.easyname.at/nongnu/" - "https://savannah.c3sl.ufpr.br/" - "https://mirror.csclub.uwaterloo.ca/nongnu/" - "https://mirror.cedia.org.ec/nongnu/" - "https://ftp.igh.cnrs.fr/pub/nongnu/" - "https://mirror6.layerjet.com/nongnu" - "https://mirror.netcologne.de/savannah/" - "https://ftp.cc.uoc.gr/mirrors/nongnu.org/" - "https://nongnu.uib.no/" - "https://ftp.acc.umu.se/mirror/gnu.org/savannah/" - "http://mirror2.klaus-uwe.me/nongnu/" - "http://mirrors.fe.up.pt/pub/nongnu/" - "http://ftp.twaren.net/Unix/NonGNU/" - "http://savannah-nongnu-org.ip-connect.vn.ua/" - "http://www.mirrorservice.org/sites/download.savannah.gnu.org/releases/" - "http://gnu.mirrors.pair.com/savannah/savannah/" - "ftp://mirror.easyname.at/nongnu/" - "ftp://mirror2.klaus-uwe.me/nongnu/" - "ftp://mirror.csclub.uwaterloo.ca/nongnu/" - "ftp://ftp.igh.cnrs.fr/pub/nongnu/" - "ftp://mirror.netcologne.de/savannah/" - "ftp://nongnu.uib.no/pub/nongnu/" - "ftp://mirrors.fe.up.pt/pub/nongnu/" - "ftp://ftp.twaren.net/Unix/NonGNU/" - "ftp://savannah-nongnu-org.ip-connect.vn.ua/mirror/savannah.nongnu.org/" - "ftp://ftp.mirrorservice.org/sites/download.savannah.gnu.org/releases/" - ]; - - # SourceForge - sourceforge = [ - "https://downloads.sourceforge.net/" - "https://prdownloads.sourceforge.net/" - "https://netcologne.dl.sourceforge.net/sourceforge/" - "https://versaweb.dl.sourceforge.net/sourceforge/" - "https://freefr.dl.sourceforge.net/sourceforge/" - "https://osdn.dl.sourceforge.net/sourceforge/" - ]; - - # Steam Runtime - steamrt = [ - "https://repo.steampowered.com/steamrt/" - "https://public.abbradar.moe/steamrt/" - ]; - - # TCSH shell - tcsh = [ - "https://astron.com/pub/tcsh/" - "https://astron.com/pub/tcsh/old/" - "http://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/" - "http://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/old/" - "ftp://ftp.astron.com/pub/tcsh/" - "ftp://ftp.astron.com/pub/tcsh/old/" - "ftp://ftp.funet.fi/pub/unix/shells/tcsh/" - "ftp://ftp.funet.fi/pub/unix/shells/tcsh/old/" - ]; - - # XFCE - xfce = [ - "https://archive.xfce.org/" - "https://mirror.netcologne.de/xfce/" - "https://archive.be.xfce.org/xfce/" - "https://archive.al-us.xfce.org/" - "http://archive.se.xfce.org/xfce/" - "http://mirror.perldude.de/archive.xfce.org/" - "http://archive.be2.xfce.org/" - "http://ftp.udc.es/xfce/" - ]; - - # X.org - xorg = [ - "https://xorg.freedesktop.org/releases/" - "https://ftp.x.org/archive/" - ]; - - ### Programming languages' package repos - - # Perl CPAN - cpan = [ - "https://cpan.metacpan.org/" - "https://cpan.perl.org/" - "https://mirrors.kernel.org/CPAN/" - "https://backpan.perl.org/" # for old releases - ]; - - # D DUB - dub = [ - "https://code.dlang.org/packages/" - "https://codemirror.dlang.org/packages/" - ]; - - # Haskell Hackage - hackage = [ - "https://hackage.haskell.org/package/" - ]; - - # Lua Rocks - luarocks = [ - "https://luarocks.org/" - "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/" - "https://luafr.org/moonrocks/" - ]; - - # Python PyPI - pypi = [ - "https://files.pythonhosted.org/packages/source/" - # pypi.io is a more semantic link, but atm it’s referencing - # files.pythonhosted.org over two redirects - "https://pypi.io/packages/source/" - ]; - - # Python Test-PyPI - testpypi = [ - "https://test.pypi.io/packages/source/" - ]; - - ### Linux distros - - # CentOS - centos = [ - # For old releases - "https://vault.centos.org/" - "https://archive.kernel.org/centos-vault/" - "https://ftp.jaist.ac.jp/pub/Linux/CentOS-vault/" - "https://mirrors.aliyun.com/centos-vault/" - "https://mirror.chpc.utah.edu/pub/vault.centos.org/" - "https://mirror.math.princeton.edu/pub/centos-vault/" - "https://mirrors.tripadvisor.com/centos-vault/" - "http://mirror.centos.org/centos/" - ]; - - # Debian - debian = [ - "https://httpredir.debian.org/debian/" - "https://ftp.debian.org/debian/" - "https://mirrors.edge.kernel.org/debian/" - "ftp://ftp.de.debian.org/debian/" - "ftp://ftp.fr.debian.org/debian/" - "ftp://ftp.nl.debian.org/debian/" - "ftp://ftp.ru.debian.org/debian/" - "http://archive.debian.org/debian-archive/debian/" - "ftp://ftp.funet.fi/pub/mirrors/ftp.debian.org/debian/" - ]; - - # Fedora - # Please add only full mirrors that carry old Fedora distributions as well - # See: https://mirrors.fedoraproject.org/publiclist (but not all carry old content) - fedora = [ - "https://archives.fedoraproject.org/pub/fedora/" - "https://fedora.osuosl.org/" - "https://ftp.funet.fi/pub/mirrors/ftp.redhat.com/pub/fedora/" - "https://ftp.linux.cz/pub/linux/fedora/" - "https://archives.fedoraproject.org/pub/archive/fedora/" - "http://ftp.nluug.nl/pub/os/Linux/distr/fedora/" - "http://mirror.csclub.uwaterloo.ca/fedora/" - "http://mirror.1000mbps.com/fedora/" - ]; - - # Gentoo - gentoo = [ - "https://ftp.snt.utwente.nl/pub/os/linux/gentoo/" - "https://distfiles.gentoo.org/" - "https://mirrors.kernel.org/gentoo/" - ]; - - # openSUSE - opensuse = [ - "https://opensuse.hro.nl/opensuse/distribution/" - "https://ftp.funet.fi/pub/linux/mirrors/opensuse/distribution/" - "https://ftp.opensuse.org/pub/opensuse/distribution/" - "https://ftp5.gwdg.de/pub/opensuse/discontinued/distribution/" - "https://mirrors.edge.kernel.org/opensuse/distribution/" - "http://ftp.hosteurope.de/mirror/ftp.opensuse.org/discontinued/" - ]; - - # Ubuntu - ubuntu = [ - "https://nl.archive.ubuntu.com/ubuntu/" - "https://old-releases.ubuntu.com/ubuntu/" - "https://mirrors.edge.kernel.org/ubuntu/" - "http://de.archive.ubuntu.com/ubuntu/" - "http://archive.ubuntu.com/ubuntu/" - ]; - - # ... and other OSes in general - - # OpenBSD - openbsd = [ - "https://ftp.openbsd.org/pub/OpenBSD/" - "ftp://ftp.nluug.nl/pub/OpenBSD/" - "ftp://ftp-stud.fht-esslingen.de/pub/OpenBSD/" - ]; -} diff --git a/pkgs/build-support/fetchurl/tests.nix b/pkgs/build-support/fetchurl/tests.nix deleted file mode 100644 index e348d77..0000000 --- a/pkgs/build-support/fetchurl/tests.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ 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 { - url = "https://httpbin.org/headers"; - sha256 = builtins.hashString "sha256" (headerValue + "\n"); - curlOptsList = [ "-H" "Hello: ${headerValue}" ]; - postFetch = '' - ${jq}/bin/jq -r '.headers.Hello' $out | ${moreutils}/bin/sponge $out - ''; - }; -} diff --git a/pkgs/build-support/fetchurl/write-mirror-list.sh b/pkgs/build-support/fetchurl/write-mirror-list.sh deleted file mode 100644 index 2dabd2e..0000000 --- a/pkgs/build-support/fetchurl/write-mirror-list.sh +++ /dev/null @@ -1,4 +0,0 @@ -source $stdenv/setup - -# !!! this is kinda hacky. -set | grep -E '^[a-zA-Z]+=.*://' > $out diff --git a/pkgs/build-support/fetchzip/default.nix b/pkgs/build-support/fetchzip/default.nix deleted file mode 100644 index dd04ccb..0000000 --- a/pkgs/build-support/fetchzip/default.nix +++ /dev/null @@ -1,77 +0,0 @@ -# This function downloads and unpacks an archive file, such as a zip -# or tar file. This is primarily useful for dynamically generated -# archives, such as GitHub's /archive URLs, where the unpacked content -# of the zip file doesn't change, but the zip file itself may -# (e.g. due to minor changes in the compression algorithm, or changes -# in timestamps). - -{ lib, fetchurl, withUnzip ? true, unzip, glibcLocalesUtf8 }: - -{ 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 - -# 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; - -let - tmpFilename = - if extension != null - then "download.${extension}" - else baseNameOf (if url != "" then url else builtins.head urls); -in - -fetchurl ({ - inherit name; - recursiveHash = 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; - - 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" - ''; - # ^ Remove non-owner write permissions - # Fixes https://github.com/NixOS/nixpkgs/issues/38649 -} // removeAttrs args [ "stripRoot" "extraPostFetch" "postFetch" "extension" "nativeBuildInputs" ]) diff --git a/pkgs/build-support/fetchzip/tests.nix b/pkgs/build-support/fetchzip/tests.nix deleted file mode 100644 index 13175d5..0000000 --- a/pkgs/build-support/fetchzip/tests.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ testers, fetchzip, runCommand, ... }: - -let - url = "https://gist.github.com/glandium/01d54cefdb70561b5f6675e08f2990f2/archive/2f430f0c136a69b0886281d0c76708997d8878af.zip"; -in -{ - simple = testers.invalidateFetcherByDrvHash fetchzip { - inherit url; - sha256 = "sha256-0ecwgL8qUavSj1+WkaxpmRBmu7cvj53V5eXQV71fddU="; - }; - - postFetch = testers.invalidateFetcherByDrvHash fetchzip { - inherit url; - sha256 = "sha256-7sAOzKa+9vYx5XyndHxeY2ffWAjOsgCkXC9anK6cuV0="; - postFetch = "touch $out/filee"; - }; - - hiddenDir = testers.invalidateFetcherByDrvHash fetchzip { - 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 deleted file mode 100644 index 5d7cd7d..0000000 --- a/pkgs/build-support/flutter/default.nix +++ /dev/null @@ -1,179 +0,0 @@ -{ 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 ? "" -, ... -}@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" - - export HOME="$NIX_BUILD_TOP" - flutter config --no-analytics &>/dev/null # mute first-run - flutter config --enable-linux-desktop >/dev/null - ''; - - 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 - - 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 - ''; - }; - - linux = universal // { - outputs = universal.outputs or [ ] ++ [ "debug" ]; - - 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 - ]; - - buildInputs = (universal.buildInputs or [ ]) ++ [ glib ]; - - dontDartBuild = true; - buildPhase = universal.buildPhase or '' - runHook preBuild - - mkdir -p build/flutter_assets/fonts - - flutter build linux -v --release --split-debug-info="$debug" ${builtins.concatStringsSep " " (map (flag: "\"${flag}\"") flutterBuildFlags)} - - runHook postBuild - ''; - - dontDartInstall = true; - installPhase = universal.installPhase or '' - runHook preInstall - - built=build/linux/*/release/bundle - - 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 -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 {} + - - # 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 - ''; - - dontWrapGApps = true; - extraWrapProgramArgs = '' - ''${gappsWrapperArgs[@]} \ - ${extraWrapProgramArgs} - ''; - }; - - web = universal // { - dontDartBuild = true; - buildPhase = universal.buildPhase or '' - runHook preBuild - - mkdir -p build/flutter_assets/fonts - - flutter build web -v --release ${builtins.concatStringsSep " " (map (flag: "\"${flag}\"") flutterBuildFlags)} - - runHook postBuild - ''; - - dontDartInstall = true; - installPhase = universal.installPhase or '' - runHook preInstall - - cp -r build/web "$out" - - runHook postInstall - ''; - }; - }.${targetFlutterPlatform} or (throw "Unsupported Flutter host platform: ${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; }; }) diff --git a/pkgs/build-support/go/module.nix b/pkgs/build-support/go/module.nix deleted file mode 100644 index 6f568c0..0000000 --- a/pkgs/build-support/go/module.nix +++ /dev/null @@ -1,321 +0,0 @@ -{ go, cacert, git, lib, stdenv }: - -{ name ? "${args'.pname}-${args'.version}" -, src -, nativeBuildInputs ? [ ] -, passthru ? { } -, patches ? [ ] - - # A function to override the goModules derivation -, overrideModAttrs ? (_oldAttrs: { }) - - # path to go.mod and go.sum directory -, 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 - "buildGoModule: Expect vendorHash instead of vendorSha256" - else - "buildGoModule: vendorHash is missing" - ) - # Whether to delete the vendor folder supplied with the source. -, 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 - - # We want parallel builds by default -, enableParallelBuilding ? true - - # Do not enable this without good reason - # IE: programs coupled with the compiler -, allowGoReference ? false - -, CGO_ENABLED ? go.CGO_ENABLED - -, meta ? { } - - # Not needed with buildGoModule -, goPackagePath ? "" - -, ldflags ? [ ] - -, GOFLAGS ? [ ] - - # needed for buildFlags{,Array} warning -, buildFlags ? "" -, buildFlagsArray ? "" - -, ... -}@args': - -assert goPackagePath != "" -> throw "`goPackagePath` is not needed with `buildGoModule`"; - -let - args = removeAttrs args' [ "overrideModAttrs" "vendorSha256" "vendorHash" ]; - - GO111MODULE = "on"; - GOTOOLCHAIN = "local"; - - goModules = if (vendorHash == null) then "" else - (stdenv.mkDerivation { - name = "${name}-go-modules"; - - nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ go git cacert ]; - - 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 { }; - - 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 - ''; - - 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[@]}" - ''} - - mkdir -p vendor - - runHook postBuild - ''); - - 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 ! [ "$(ls -A $out)" ]; then - echo "vendor folder is empty, please set 'vendorHash = null;' in your expression" - exit 10 - fi - - runHook postInstall - ''; - - 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; - - package = stdenv.mkDerivation (args // { - nativeBuildInputs = [ go ] ++ nativeBuildInputs; - - inherit (go) GOOS GOARCH; - - 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="; - - 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 - ''} - '' + '' - - # 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 - ''); - - 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+='\)' - - buildGoDir() { - local cmd="$1" dir="$2" - - . $TMPDIR/buildFlagsArray - - 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 - - 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 - } - - 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 - ''); - - 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 - - runHook postCheck - ''; - - installPhase = args.installPhase or '' - runHook preInstall - - mkdir -p $out - dir="$GOPATH/bin" - [ -e "$dir" ] && cp -r $dir $out - - runHook postInstall - ''; - - strictDeps = true; - - disallowedReferences = lib.optional (!allowGoReference) go; - - passthru = passthru // { inherit go goModules vendorHash; }; - - 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" - package diff --git a/pkgs/build-support/go/package.nix b/pkgs/build-support/go/package.nix deleted file mode 100644 index 94a459c..0000000 --- a/pkgs/build-support/go/package.nix +++ /dev/null @@ -1,292 +0,0 @@ -{ go, govers, lib, fetchgit, fetchhg, fetchbzr, rsync -, fetchFromGitHub, stdenv }: - -{ buildInputs ? [] -, nativeBuildInputs ? [] -, passthru ? {} -, preFixup ? "" -, shellHook ? "" - -# We want parallel builds by default -, enableParallelBuilding ? true - -# Go import path of the package -, goPackagePath - -# Go package aliases -, goPackageAliases ? [ ] - -# Extra sources to include in the gopath -, extraSrcs ? [ ] - -# Extra gopaths containing src subfolder -# with sources to include in the gopath -, extraSrcPaths ? [ ] - -# go2nix dependency file -, goDeps ? null - -# Whether to delete the vendor folder supplied with the source. -, deleteVendor ? false - -, dontRenameImports ? false - -# Do not enable this without good reason -# IE: programs coupled with the compiler -, allowGoReference ? false - -, CGO_ENABLED ? go.CGO_ENABLED - -, ldflags ? [ ] - -, GOFLAGS ? [ ] - -# needed for buildFlags{,Array} warning -, buildFlags ? "" -, buildFlagsArray ? "" - -, meta ? {}, ... } @ args: - -let - 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; - } - else if goDep.fetch.type == "bzr" then - fetchbzr { - inherit (goDep.fetch) url rev sha256; - } - else if goDep.fetch.type == "FromGitHub" then - fetchFromGitHub { - inherit (goDep.fetch) owner repo rev sha256; - } - else abort "Unrecognized package fetch type: ${goDep.fetch.type}"; - }; - - importGodeps = { depsFile }: - map dep2src (import depsFile); - - goPath = if goDeps != null then importGodeps { depsFile = goDeps; } ++ extraSrcs - else extraSrcs; - package = stdenv.mkDerivation ( - (builtins.removeAttrs args [ "goPackageAliases" "disabled" "extraSrcs"]) // { - - nativeBuildInputs = [ go ] - ++ (lib.optional (!dontRenameImports) govers) ++ nativeBuildInputs; - buildInputs = buildInputs; - - inherit (go) GOOS GOARCH GO386; - - GOHOSTARCH = go.GOHOSTARCH or null; - GOHOSTOS = go.GOHOSTOS or null; - - inherit CGO_ENABLED enableParallelBuilding; - - GO111MODULE = "off"; - GOTOOLCHAIN = "local"; - GOFLAGS = GOFLAGS ++ lib.optional (!allowGoReference) "-trimpath" ; - - 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="; - - configurePhase = args.configurePhase or ('' - runHook preConfigure - - # 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 (extraSrcPaths != []) '' - ${rsync}/bin/rsync -a ${lib.concatMapStringsSep " " (p: "${p}/src") extraSrcPaths} go - - '') + '' - 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 - - 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); - - buildPhase = args.buildPhase or ('' - runHook preBuild - - 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+='\)' - - buildGoDir() { - local cmd="$1" dir="$2" - - . $TMPDIR/buildFlagsArray - - 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 - - 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 - } - - 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 - ''); - - 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 - - runHook postCheck - ''; - - installPhase = args.installPhase or '' - runHook preInstall - - mkdir -p $out - dir="$NIX_BUILD_TOP/go/bin" - [ -e "$dir" ] && cp -r $dir $out - - runHook postInstall - ''; - - 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; - - disallowedReferences = lib.optional (!allowGoReference) go - ++ lib.optional (!dontRenameImports) govers; - - 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; - }); -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" - package diff --git a/pkgs/build-support/icon-conv-tools/bin/extractWinRscIconsToStdFreeDesktopDir.sh b/pkgs/build-support/icon-conv-tools/bin/extractWinRscIconsToStdFreeDesktopDir.sh deleted file mode 100755 index 994adbd..0000000 --- a/pkgs/build-support/icon-conv-tools/bin/extractWinRscIconsToStdFreeDesktopDir.sh +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/sh - -# The file from which to extract *.ico files or a particular *.ico file. -# (e.g.: './KeePass.exe', './myLibrary.dll', './my/path/to/app.ico'). -# As you notived, the utility can extract icons from a windows executable or -# dll. -rscFile=$1 - -# A regexp that can extract the image size from the file name. Because we -# use 'icotool', this value should usually be set to something like -# '[^\.]+\.exe_[0-9]+_[0-9]+_[0-9]+_[0-9]+_([0-9]+x[0-9]+)x[0-9]+\.png'. -# A reg expression may be written at some point that relegate this to -# an implementation detail. -sizeRegex=$2 - -# A regexp replace expression that will be used with 'sizeRegex' to create -# a proper size directory (e.g.: '48x48'). Usually this is left to '\1'. -sizeReplaceExp=$3 - -# A regexp that can extract the name of the target image from the file name -# of the image (usually png) extracted from the *.ico file(s). A good -# default is '([^\.]+).+' which gets the basename without extension. -nameRegex=$4 - -# A regexp replace expression that will be used alongside 'nameRegex' to create -# a icon file name. Note that you usually put directly you icon name here -# without any extension (e.g.: 'my-app'). But in case you've got something -# fancy, it will usually be '\1'. -nameReplaceExp=$5 - -# The -# out=./myOut -out=$6 - -# An optional temp dir. -if [ "" != "$7" ]; then - tmp=$7 - isOwnerOfTmpDir=false -else - tmp=`mktemp -d` - isOwnerOfTmpDir=true -fi - -rm -rf $tmp/png $tmp/ico -mkdir -p $tmp/png $tmp/ico - -# Extract the ressource file's extension. -rscFileExt=`echo "$rscFile" | sed -re 's/.+\.(.+)$/\1/'` - -if [ "ico" = "$rscFileExt" ]; then - cp -p $rscFile $tmp/ico -else - wrestool -x --output=$tmp/ico -t14 $rscFile -fi - -icotool --icon -x --palette-size=0 -o $tmp/png $tmp/ico/*.ico - -mkdir -p $out - -for i in $tmp/png/*.png; do - fn=`basename "$i"` - size=$(echo $fn | sed -re 's/'${sizeRegex}'/'${sizeReplaceExp}'/') - name=$(echo $fn | sed -re 's/'${nameRegex}'/'${nameReplaceExp}'/') - targetDir=$out/share/icons/hicolor/$size/apps - targetFile=$targetDir/$name.png - mkdir -p $targetDir - mv $i $targetFile -done - -rm -rf "$tmp/png" "$tmp/ico" - -if $isOwnerOfTmpDir; then - rm -rf "$tmp" -fi diff --git a/pkgs/build-support/icon-conv-tools/bin/icoFileToHiColorTheme b/pkgs/build-support/icon-conv-tools/bin/icoFileToHiColorTheme deleted file mode 100755 index 192f3bb..0000000 --- a/pkgs/build-support/icon-conv-tools/bin/icoFileToHiColorTheme +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - -SCRIPT_DIR=`cd "$(dirname $0)" && pwd` - -# The '*.ico' file that needs to be converted (e.g.: "./my/path/to/file.ico"). -icoFile="$1" - -# The desired name of created icon files without extension. (e.g.: "my-app"). -targetIconName="$2" - -# The output directory where the free desktop hierarchy will be created. -# (e.g.: "./path/to/my/out" or usually in nix "$out"). Note that the -# whole directory hierarchy to the icon will be created in the specified -# output directory (e.g.: "$out/share/icons/hicolor/48x48/apps/my-app.png"). -out="$3" - -# An optional temp directory location (e.g.: ./tmp). If not specified -# a random '/tmp' directory will be created. -tmp="$4" - -$SCRIPT_DIR/extractWinRscIconsToStdFreeDesktopDir.sh \ - "$icoFile" \ - '[^\.]+_[0-9]+_([0-9]+x[0-9]+)x[0-9]+\.png' \ - '\1' \ - '([^\.]+).+' \ - "$targetIconName" \ - "$out" \ - "$tmp" diff --git a/pkgs/build-support/icon-conv-tools/default.nix b/pkgs/build-support/icon-conv-tools/default.nix deleted file mode 100644 index 442f1f2..0000000 --- a/pkgs/build-support/icon-conv-tools/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib, stdenv, icoutils }: - -stdenv.mkDerivation { - pname = "icon-conv-tools"; - version = "0.0.0"; - - src = ./bin; - - buildInputs = [ icoutils ]; - - patchPhase = '' - substituteInPlace extractWinRscIconsToStdFreeDesktopDir.sh \ - --replace "icotool" "${icoutils}/bin/icotool" \ - --replace "wrestool" "${icoutils}/bin/wrestool" - ''; - - buildPhase = '' - mkdir -p "$out/bin" - cp -p * "$out/bin" - ''; - - installPhase = "true"; - - dontPatchELF = true; - dontStrip = true; - - meta = with lib; { - description = "Tools for icon conversion specific to nix package manager"; - maintainers = with maintainers; [ jraygauthier ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/build-support/install-shell-files/default.nix b/pkgs/build-support/install-shell-files/default.nix deleted file mode 100644 index d50661d..0000000 --- a/pkgs/build-support/install-shell-files/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ makeSetupHook, tests }: - -# See the header comment in ../setup-hooks/install-shell-files.sh for example usage. -let - setupHook = makeSetupHook { name = "install-shell-files"; } ../setup-hooks/install-shell-files.sh; -in - -setupHook.overrideAttrs (oldAttrs: { - 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 deleted file mode 100644 index cb9ce7a..0000000 --- a/pkgs/build-support/kernel/compress-firmware-xz.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ runCommand, lib }: - -firmware: - -let - args = { - allowedRequisites = []; - } // lib.optionalAttrs (firmware ? meta) { inherit (firmware) meta; }; -in - -runCommand "${firmware.name}-xz" args '' - mkdir -p $out/lib - (cd ${firmware} && find lib/firmware -type d -print0) | - (cd $out && xargs -0 mkdir -v --) - (cd ${firmware} && find lib/firmware -type f -print0) | - (cd $out && xargs -0rtP "$NIX_BUILD_CORES" -n1 \ - sh -c 'xz -9c -T1 -C crc32 --lzma2=dict=2MiB "${firmware}/$1" > "$1.xz"' --) - (cd ${firmware} && find lib/firmware -type l) | while read link; do - target="$(readlink "${firmware}/$link")" - if [ -f "${firmware}/$link" ]; then - ln -vs -- "''${target/^${firmware}/$out}.xz" "$out/$link.xz" - else - ln -vs -- "''${target/^${firmware}/$out}" "$out/$link" - fi - done - - echo "Checking for broken symlinks:" - find -L $out -type l -print -execdir false -- '{}' '+' -'' diff --git a/pkgs/build-support/kernel/initrd-compressor-meta.nix b/pkgs/build-support/kernel/initrd-compressor-meta.nix deleted file mode 100644 index 443e599..0000000 --- a/pkgs/build-support/kernel/initrd-compressor-meta.nix +++ /dev/null @@ -1,53 +0,0 @@ -rec { - cat = { - executable = pkgs: "cat"; - ubootName = "none"; - extension = ".cpio"; - }; - gzip = { - executable = pkgs: "${pkgs.gzip}/bin/gzip"; - defaultArgs = ["-9n"]; - ubootName = "gzip"; - extension = ".gz"; - }; - bzip2 = { - executable = pkgs: "${pkgs.bzip2}/bin/bzip2"; - ubootName = "bzip2"; - extension = ".bz2"; - }; - xz = { - executable = pkgs: "${pkgs.xz}/bin/xz"; - defaultArgs = ["--check=crc32" "--lzma2=dict=512KiB"]; - extension = ".xz"; - }; - lzma = { - executable = pkgs: "${pkgs.xz}/bin/lzma"; - defaultArgs = ["--check=crc32" "--lzma1=dict=512KiB"]; - ubootName = "lzma"; - extension = ".lzma"; - }; - lz4 = { - executable = pkgs: "${pkgs.lz4}/bin/lz4"; - defaultArgs = ["-l"]; - ubootName = "lz4"; - extension = ".lz4"; - }; - lzop = { - executable = pkgs: "${pkgs.lzop}/bin/lzop"; - ubootName = "lzo"; - extension = ".lzo"; - }; - zstd = { - executable = pkgs: "${pkgs.zstd}/bin/zstd"; - defaultArgs = ["-10"]; - ubootName = "zstd"; - extension = ".zst"; - }; - pigz = gzip // { - executable = pkgs: "${pkgs.pigz}/bin/pigz"; - }; - pixz = xz // { - executable = pkgs: "${pkgs.pixz}/bin/pixz"; - defaultArgs = []; - }; -} diff --git a/pkgs/build-support/kernel/make-initrd-ng-tool.nix b/pkgs/build-support/kernel/make-initrd-ng-tool.nix deleted file mode 100644 index 5e08c09..0000000 --- a/pkgs/build-support/kernel/make-initrd-ng-tool.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ rustPlatform, lib, makeWrapper, patchelf, glibc, binutils }: - -rustPlatform.buildRustPackage { - pname = "make-initrd-ng"; - version = "0.1.0"; - - src = ./make-initrd-ng; - cargoLock.lockFile = ./make-initrd-ng/Cargo.lock; - - passthru.updateScript = ./make-initrd-ng/update.sh; - - meta = { - description = "Tool for copying binaries and their dependencies"; - mainProgram = "make-initrd-ng"; - 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 deleted file mode 100644 index 65e143c..0000000 --- a/pkgs/build-support/kernel/make-initrd-ng.nix +++ /dev/null @@ -1,97 +0,0 @@ -let - # Some metadata on various compression programs, relevant to naming - # the initramfs file and, if applicable, generating a u-boot image - # from it. - compressors = import ./initrd-compressor-meta.nix; - # Get the basename of the actual compression program from the whole - # compression command, for the purpose of guessing the u-boot - # 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" - -, 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 {} - -# 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") - -# 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 ? [] - -# 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 - -# 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; - - 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; - - 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 -'' diff --git a/pkgs/build-support/kernel/make-initrd-ng/Cargo.lock b/pkgs/build-support/kernel/make-initrd-ng/Cargo.lock deleted file mode 100644 index 61f71f6..0000000 --- a/pkgs/build-support/kernel/make-initrd-ng/Cargo.lock +++ /dev/null @@ -1,111 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "eyre" -version = "0.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" -dependencies = [ - "indenter", - "once_cell", -] - -[[package]] -name = "goblin" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7666983ed0dd8d21a6f6576ee00053ca0926fb281a5522577a4dbd0f1b54143" -dependencies = [ - "log", - "plain", - "scroll", -] - -[[package]] -name = "indenter" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" - -[[package]] -name = "log" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" - -[[package]] -name = "make-initrd-ng" -version = "0.1.0" -dependencies = [ - "eyre", - "goblin", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "plain" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" - -[[package]] -name = "proc-macro2" -version = "1.0.78" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "scroll" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04c565b551bafbef4157586fa379538366e4385d42082f255bfd96e4fe8519da" -dependencies = [ - "scroll_derive", -] - -[[package]] -name = "scroll_derive" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "syn" -version = "2.0.48" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" diff --git a/pkgs/build-support/kernel/make-initrd-ng/Cargo.toml b/pkgs/build-support/kernel/make-initrd-ng/Cargo.toml deleted file mode 100644 index 028833c..0000000 --- a/pkgs/build-support/kernel/make-initrd-ng/Cargo.toml +++ /dev/null @@ -1,11 +0,0 @@ -[package] -name = "make-initrd-ng" -version = "0.1.0" -authors = ["Will Fancher "] -edition = "2018" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -eyre = "0.6.8" -goblin = "0.5.0" diff --git a/pkgs/build-support/kernel/make-initrd-ng/README.md b/pkgs/build-support/kernel/make-initrd-ng/README.md deleted file mode 100644 index d92b7ea..0000000 --- a/pkgs/build-support/kernel/make-initrd-ng/README.md +++ /dev/null @@ -1,82 +0,0 @@ -# What is this for? - -NixOS's traditional initrd is generated by listing the paths that -should be included in initrd and copying the full runtime closure of -those paths into the archive. For most things, like almost any -executable, this involves copying the entirety of huge packages like -glibc, when only things like the shared library files are needed. To -solve this, NixOS does a variety of patchwork to edit the files being -copied in so they only refer to small, patched up paths. For instance, -executables and their shared library dependencies are copied into an -`extraUtils` derivation, and every ELF file is patched to refer to -files in that output. - -The problem with this is that it is often difficult to correctly patch -some things. For instance, systemd bakes the path to the `mount` -command into the binary, so patchelf is no help. Instead, it's very -often easier to simply copy the desired files to their original store -locations in initrd and not copy their entire runtime closure. This -does mean that it is the burden of the developer to ensure that all -necessary dependencies are copied in, as closures won't be -consulted. However, it is rare that full closures are actually -desirable, so in the traditional initrd, the developer was likely to -do manual work on patching the dependencies explicitly anyway. - -# How it works - -This program is similar to its inspiration (`find-libs` from the -traditional initrd), except that it also handles symlinks and -directories according to certain rules. As input, it receives a -sequence of pairs of paths. The first path is an object to copy into -initrd. The second path (if not empty) is the path to a symlink that -should be placed in the initrd, pointing to that object. How that -object is copied depends on its type. - -1. A regular file is copied directly to the same absolute path in the - initrd. - - - If it is *also* an ELF file, then all of its direct shared - library dependencies are also listed as objects to be copied. - - - If an unwrapped file exists as `.[filename]-wrapped`, then it is - also listed as an object to be copied. - -2. A directory's direct children are listed as objects to be copied, - and a directory at the same absolute path in the initrd is created. - -3. A symlink's target is listed as an object to be copied. - -There are a couple of quirks to mention here. First, the term "object" -refers to the final file path that the developer intends to have -copied into initrd. This means any parent directory is not considered -an object just because its child was listed as an object in the -program input; instead those intermediate directories are simply -created in support of the target object. Second, shared libraries, -directory children, and symlink targets aren't immediately recursed, -because they simply get listed as objects themselves, and are -therefore traversed when they themselves are processed. Finally, -symlinks in the intermediate directories leading to an object are -preserved, meaning an input object `/a/symlink/b` will just result in -initrd containing `/a/symlink -> /target/b` and `/target/b`, even if -`/target` has other children. Preserving symlinks in this manner is -important for things like systemd. - -These rules automate the most important and obviously necessary -copying that needs to be done in most cases, allowing programs and -configuration files to go unpatched, while keeping the content of the -initrd to a minimum. - -# Why Rust? - -- A prototype of this logic was written in Bash, in an attempt to keep - with its `find-libs` ancestor, but that program was difficult to - write, and ended up taking several minutes to run. This program runs - in less than a second, and the code is substantially easier to work - with. - -- This will not require end users to install a rust toolchain to use - NixOS, as long as this tool is cached by Hydra. And if you're - bootstrapping NixOS from source, rustc is already required anyway. - -- Rust was favored over Python for its type system, and because if you - want to go fast, why not go *really fast*? diff --git a/pkgs/build-support/kernel/make-initrd-ng/src/main.rs b/pkgs/build-support/kernel/make-initrd-ng/src/main.rs deleted file mode 100644 index daa6889..0000000 --- a/pkgs/build-support/kernel/make-initrd-ng/src/main.rs +++ /dev/null @@ -1,268 +0,0 @@ -use std::collections::{HashSet, VecDeque}; -use std::env; -use std::ffi::{OsStr, OsString}; -use std::fs; -use std::hash::Hash; -use std::io::{BufRead, BufReader}; -use std::iter::FromIterator; -use std::os::unix; -use std::path::{Component, Path, PathBuf}; -use std::process::Command; - -use eyre::Context; -use goblin::{elf::Elf, Object}; - -struct NonRepeatingQueue { - queue: VecDeque, - seen: HashSet, -} - -impl NonRepeatingQueue { - fn new() -> NonRepeatingQueue { - NonRepeatingQueue { - queue: VecDeque::new(), - seen: HashSet::new(), - } - } -} - -impl NonRepeatingQueue { - fn push_back(&mut self, value: T) -> bool { - if self.seen.contains(&value) { - false - } else { - self.seen.insert(value.clone()); - self.queue.push_back(value); - true - } - } - - fn pop_front(&mut self) -> Option { - self.queue.pop_front() - } -} - -fn add_dependencies + AsRef>( - source: P, - elf: Elf, - queue: &mut NonRepeatingQueue>, -) { - if let Some(interp) = elf.interpreter { - queue.push_back(Box::from(Path::new(interp))); - } - - let rpaths = if elf.runpaths.len() > 0 { - elf.runpaths - } else if elf.rpaths.len() > 0 { - elf.rpaths - } else { - vec![] - }; - - let rpaths_as_path = rpaths - .into_iter() - .flat_map(|p| p.split(":")) - .map(|p| Box::::from(Path::new(p))) - .collect::>(); - - for line in elf.libraries { - let mut found = false; - for path in &rpaths_as_path { - let lib = path.join(line); - if lib.exists() { - // No need to recurse. The queue will bring it back round. - queue.push_back(Box::from(lib.as_path())); - found = true; - break; - } - } - if !found { - // glibc makes it tricky to make this an error because - // none of the files have a useful rpath. - println!( - "Warning: Couldn't satisfy dependency {} for {:?}", - line, - OsStr::new(&source) - ); - } - } -} - -fn copy_file< - P: AsRef + AsRef + std::fmt::Debug, - S: AsRef + AsRef + std::fmt::Debug, ->( - source: P, - target: S, - queue: &mut NonRepeatingQueue>, -) -> eyre::Result<()> { - fs::copy(&source, &target) - .wrap_err_with(|| format!("failed to copy {:?} to {:?}", source, target))?; - - let contents = - fs::read(&source).wrap_err_with(|| format!("failed to read from {:?}", source))?; - - if let Ok(Object::Elf(e)) = Object::parse(&contents) { - add_dependencies(source, e, queue); - - // Make file writable to strip it - let mut permissions = fs::metadata(&target) - .wrap_err_with(|| format!("failed to get metadata for {:?}", target))? - .permissions(); - permissions.set_readonly(false); - fs::set_permissions(&target, permissions) - .wrap_err_with(|| format!("failed to set readonly flag to false for {:?}", target))?; - - // Strip further than normal - if let Ok(strip) = env::var("STRIP") { - if !Command::new(strip) - .arg("--strip-all") - .arg(OsStr::new(&target)) - .output()? - .status - .success() - { - println!("{:?} was not successfully stripped.", OsStr::new(&target)); - } - } - }; - - Ok(()) -} - -fn queue_dir + std::fmt::Debug>( - source: P, - queue: &mut NonRepeatingQueue>, -) -> eyre::Result<()> { - for entry in - fs::read_dir(&source).wrap_err_with(|| format!("failed to read dir {:?}", source))? - { - let entry = entry?; - // No need to recurse. The queue will bring us back round here on its own. - queue.push_back(Box::from(entry.path().as_path())); - } - - Ok(()) -} - -fn handle_path( - root: &Path, - p: &Path, - queue: &mut NonRepeatingQueue>, -) -> eyre::Result<()> { - let mut source = PathBuf::new(); - let mut target = Path::new(root).to_path_buf(); - let mut iter = p.components().peekable(); - while let Some(comp) = iter.next() { - match comp { - Component::Prefix(_) => panic!("This tool is not meant for Windows"), - Component::RootDir => { - target.clear(); - target.push(root); - source.clear(); - source.push("/"); - } - Component::CurDir => {} - Component::ParentDir => { - // Don't over-pop the target if the path has too many ParentDirs - if source.pop() { - target.pop(); - } - } - Component::Normal(name) => { - target.push(name); - source.push(name); - let typ = fs::symlink_metadata(&source) - .wrap_err_with(|| format!("failed to get symlink metadata for {:?}", source))? - .file_type(); - if typ.is_file() && !target.exists() { - copy_file(&source, &target, queue)?; - - if let Some(filename) = source.file_name() { - source.set_file_name(OsString::from_iter([ - OsStr::new("."), - filename, - OsStr::new("-wrapped"), - ])); - - let wrapped_path = source.as_path(); - if wrapped_path.exists() { - queue.push_back(Box::from(wrapped_path)); - } - } - } else if typ.is_symlink() { - let link_target = fs::read_link(&source) - .wrap_err_with(|| format!("failed to resolve symlink of {:?}", source))?; - - // Create the link, then push its target to the queue - if !target.exists() && !target.is_symlink() { - unix::fs::symlink(&link_target, &target).wrap_err_with(|| { - format!("failed to symlink {:?} to {:?}", link_target, target) - })?; - } - source.pop(); - source.push(link_target); - while let Some(c) = iter.next() { - source.push(c); - } - let link_target_path = source.as_path(); - if link_target_path.exists() { - queue.push_back(Box::from(link_target_path)); - } - break; - } else if typ.is_dir() { - if !target.exists() { - fs::create_dir(&target) - .wrap_err_with(|| format!("failed to create dir {:?}", target))?; - } - - // Only recursively copy if the directory is the target object - if iter.peek().is_none() { - queue_dir(&source, queue) - .wrap_err_with(|| format!("failed to queue dir {:?}", source))?; - } - } - } - } - } - - Ok(()) -} - -fn main() -> eyre::Result<()> { - let args: Vec = env::args().collect(); - let input = - fs::File::open(&args[1]).wrap_err_with(|| format!("failed to open file {:?}", &args[1]))?; - let output = &args[2]; - let out_path = Path::new(output); - - let mut queue = NonRepeatingQueue::>::new(); - - let mut lines = BufReader::new(input).lines(); - while let Some(obj) = lines.next() { - // Lines should always come in pairs - let obj = obj?; - let sym = lines.next().unwrap()?; - - let obj_path = Path::new(&obj); - queue.push_back(Box::from(obj_path)); - if !sym.is_empty() { - println!("{} -> {}", &sym, &obj); - // We don't care about preserving symlink structure here - // nearly as much as for the actual objects. - let link_string = format!("{}/{}", output, sym); - let link_path = Path::new(&link_string); - let mut link_parent = link_path.to_path_buf(); - link_parent.pop(); - fs::create_dir_all(&link_parent) - .wrap_err_with(|| format!("failed to create directories to {:?}", link_parent))?; - unix::fs::symlink(obj_path, link_path) - .wrap_err_with(|| format!("failed to symlink {:?} to {:?}", obj_path, link_path))?; - } - } - while let Some(obj) = queue.pop_front() { - handle_path(out_path, &*obj, &mut queue)?; - } - - Ok(()) -} diff --git a/pkgs/build-support/kernel/make-initrd-ng/update.sh b/pkgs/build-support/kernel/make-initrd-ng/update.sh deleted file mode 100755 index ffc5ad3..0000000 --- a/pkgs/build-support/kernel/make-initrd-ng/update.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell -p cargo -i bash -cd "$(dirname "$0")" -cargo update diff --git a/pkgs/build-support/kernel/make-initrd.nix b/pkgs/build-support/kernel/make-initrd.nix deleted file mode 100644 index 9c27a14..0000000 --- a/pkgs/build-support/kernel/make-initrd.nix +++ /dev/null @@ -1,113 +0,0 @@ -# Create an initramfs containing the closure of the specified -# file system objects. An initramfs is used during the initial -# stages of booting a Linux system. It is loaded by the boot loader -# along with the kernel image. It's supposed to contain everything -# (such as kernel modules) necessary to allow us to mount the root -# file system. Once the root file system is mounted, the `real' boot -# script can be called. -# -# An initramfs is a cpio archive, and may be compressed with a number -# of algorithms. -let - # Some metadata on various compression programs, relevant to naming - # the initramfs file and, if applicable, generating a u-boot image - # from it. - compressors = import ./initrd-compressor-meta.nix; - # Get the basename of the actual compression program from the whole - # compression command, for the purpose of guessing the u-boot - # 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" - -# 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 - -# 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 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" - -# 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") -}: -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)); - -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; - - compress = "${_compressorExecutable} ${lib.escapeShellArgs _compressorArgsReal}"; - - # Pass the function through, for reuse in append-initrd-secrets. The - # function is used instead of the string, in order to support - # cross-compilation (append-initrd-secrets running on a different - # architecture than what the main initramfs is built on). - passthru = { - compressorExecutableFunction = _compressorFunction; - compressorArgs = _compressorArgsReal; - }; - - # !!! should use XML. - objects = map (x: x.object) contents; - symlinks = map (x: x.symlink) contents; - suffices = map (x: if x ? suffix then x.suffix else "none") contents; - - # 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)); - pathsFromGraph = ./paths-from-graph.pl; -} diff --git a/pkgs/build-support/kernel/make-initrd.sh b/pkgs/build-support/kernel/make-initrd.sh deleted file mode 100644 index 8f64114..0000000 --- a/pkgs/build-support/kernel/make-initrd.sh +++ /dev/null @@ -1,51 +0,0 @@ -source $stdenv/setup - -set -o pipefail - -objects=($objects) -symlinks=($symlinks) -suffices=($suffices) - -mkdir root - -# Needed for splash_helper, which gets run before init. -mkdir root/dev -mkdir root/sys -mkdir root/proc - - -for ((n = 0; n < ${#objects[*]}; n++)); do - object=${objects[$n]} - symlink=${symlinks[$n]} - suffix=${suffices[$n]} - if test "$suffix" = none; then suffix=; fi - - mkdir -p $(dirname root/$symlink) - ln -s $object$suffix root/$symlink -done - - -# Get the paths in the closure of `object'. -storePaths=$(perl $pathsFromGraph closure-*) - - -# Paths in cpio archives *must* be relative, otherwise the kernel -# won't unpack 'em. -(cd root && cp -prP --parents $storePaths .) - - -# Put the closure in a gzipped cpio archive. -mkdir -p $out -for PREP in $prepend; do - cat $PREP >> $out/initrd -done -(cd root && find * .[^.*] -exec touch -h -d '@1' '{}' +) -(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 diff --git a/pkgs/build-support/kernel/modules-closure.nix b/pkgs/build-support/kernel/modules-closure.nix deleted file mode 100644 index d82e279..0000000 --- a/pkgs/build-support/kernel/modules-closure.nix +++ /dev/null @@ -1,15 +0,0 @@ -# Given a kernel build (with modules in $kernel/lib/modules/VERSION), -# produce a module tree in $out/lib/modules/VERSION that contains only -# the modules identified by `rootModules', plus their dependencies. -# Also generate an appropriate modules.dep. - -{ 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"]; -} diff --git a/pkgs/build-support/kernel/modules-closure.sh b/pkgs/build-support/kernel/modules-closure.sh deleted file mode 100644 index 5f61bac..0000000 --- a/pkgs/build-support/kernel/modules-closure.sh +++ /dev/null @@ -1,100 +0,0 @@ -source $stdenv/setup - -# When no modules are built, the $out/lib/modules directory will not -# exist. Because the rest of the script assumes it does exist, we -# handle this special case first. -if ! test -d "$kernel/lib/modules"; then - if test -z "$rootModules" || test -n "$allowMissing"; then - mkdir -p "$out" - exit 0 - else - echo "Required modules: $rootModules" - echo "Can not derive a closure of kernel modules because no modules were provided." - exit 1 - fi -fi - -version=$(cd $kernel/lib/modules && ls -d *) - -echo "kernel version is $version" - -# Determine the dependencies of each root module. -mkdir -p $out/lib/modules/"$version" -touch closure -for module in $rootModules; do - echo "root module: $module" - modprobe --config no-config -d $kernel --set-version "$version" --show-depends "$module" \ - | while read cmd module args; do - case "$cmd" in - builtin) - touch found - echo "$module" >>closure - echo " builtin dependency: $module";; - insmod) - touch found - if ! test -e "$module"; then - echo " dependency not found: $module" - exit 1 - fi - target=$(echo "$module" | sed "s^$NIX_STORE.*/lib/modules/^$out/lib/modules/^") - if test -e "$target"; then - echo " dependency already copied: $module" - continue - fi - echo "$module" >>closure - echo " copying dependency: $module" - mkdir -p $(dirname $target) - cp "$module" "$target" - # If the kernel is compiled with coverage instrumentation, it - # contains the paths of the *.gcda coverage data output files - # (which it doesn't actually use...). Get rid of them to prevent - # the whole kernel from being included in the initrd. - nuke-refs "$target" - echo "$target" >> $out/insmod-list;; - *) - echo " unexpected modprobe output: $cmd $module" - exit 1;; - esac - done || test -n "$allowMissing" - if ! test -e found; then - echo " not found" - if test -z "$allowMissing"; then - exit 1 - fi - else - rm found - fi -done - -cd "$firmware" -for module in $(< ~-/closure); do - # for builtin modules, modinfo will reply with a wrong output looking like: - # $ modinfo -F firmware unix - # name: unix - # - # There is a pending attempt to fix this: - # https://github.com/NixOS/nixpkgs/pull/96153 - # https://lore.kernel.org/linux-modules/20200823215433.j5gc5rnsmahpf43v@blumerang/T/#u - # - # For now, the workaround is just to filter out the extraneous lines out - # of its output. - modinfo -b $kernel --set-version "$version" -F firmware $module | grep -v '^name:' | while read -r i; do - echo "firmware for $module: $i" - for name in "$i" "$i.xz" ""; do - [ -z "$name" ] && echo "WARNING: missing firmware $i for module $module" - if cp -v --parents --no-preserve=mode lib/firmware/$name "$out" 2>/dev/null; then - break - fi - done - done || : -done - -# copy module ordering hints for depmod -cp $kernel/lib/modules/"$version"/modules.order $out/lib/modules/"$version"/. -cp $kernel/lib/modules/"$version"/modules.builtin $out/lib/modules/"$version"/. - -depmod -b $out -a $version - -# remove original hints from final derivation -rm $out/lib/modules/"$version"/modules.order -rm $out/lib/modules/"$version"/modules.builtin diff --git a/pkgs/build-support/kernel/paths-from-graph.pl b/pkgs/build-support/kernel/paths-from-graph.pl deleted file mode 100644 index 1465b73..0000000 --- a/pkgs/build-support/kernel/paths-from-graph.pl +++ /dev/null @@ -1,68 +0,0 @@ -# NOTE: this script is deprecated. Use closureInfo instead. - -# Parses a /nix/store/*-closure file and prints -# various information. -# By default, the nodes in the graph are printed to stdout. -# If printRegistration is set, then the graph is written -# as a registration file for a manifest is written -# in the `nix-store --load-db' format. - -use strict; -use File::Basename; - -my %storePaths; -my %refs; - -# Each argument on the command line is a graph file. -# The graph file contains line-triples and a variable -# number of references: -# -# -# -# -# ... -# -foreach my $graph (@ARGV) { - open GRAPH, "<$graph" or die; - - while () { - chomp; - my $storePath = "$_"; - $storePaths{$storePath} = 1; - - my $deriver = ; chomp $deriver; - my $count = ; chomp $count; - - my @refs = (); - for (my $i = 0; $i < $count; ++$i) { - my $ref = ; chomp $ref; - push @refs, $ref; - } - $refs{$storePath} = \@refs; - - } - - close GRAPH; -} - - -if ($ENV{"printRegistration"} eq "1") { - # This is the format used by `nix-store --register-validity - # --hash-given' / `nix-store --load-db'. - foreach my $storePath (sort (keys %storePaths)) { - print "$storePath\n"; - print "0000000000000000000000000000000000000000000000000000000000000000\n"; # !!! fix - print "0\n"; # !!! fix - print "\n"; # don't care about preserving the deriver - print scalar(@{$refs{$storePath}}), "\n"; - foreach my $ref (@{$refs{$storePath}}) { - print "$ref\n"; - } - } -} - -else { - foreach my $storePath (sort (keys %storePaths)) { - print "$storePath\n"; - } -} diff --git a/pkgs/build-support/lib/cmake.nix b/pkgs/build-support/lib/cmake.nix deleted file mode 100644 index 57fa586..0000000 --- a/pkgs/build-support/lib/cmake.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ stdenv, lib }: - -let - 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) [ - "-DCMAKE_SYSTEM_PROCESSOR=${stdenv.hostPlatform.uname.processor}" - ] ++ optionals (stdenv.hostPlatform.uname.release != null) [ - "-DCMAKE_SYSTEM_VERSION=${stdenv.hostPlatform.uname.release}" - ] ++ optionals (stdenv.hostPlatform.isDarwin) [ - "-DCMAKE_OSX_ARCHITECTURES=${stdenv.hostPlatform.darwinArch}" - ] ++ optionals (stdenv.buildPlatform.uname.system != null) [ - "-DCMAKE_HOST_SYSTEM_NAME=${stdenv.buildPlatform.uname.system}" - ] ++ optionals (stdenv.buildPlatform.uname.processor != null) [ - "-DCMAKE_HOST_SYSTEM_PROCESSOR=${stdenv.buildPlatform.uname.processor}" - ] ++ optionals (stdenv.buildPlatform.uname.release != null) [ - "-DCMAKE_HOST_SYSTEM_VERSION=${stdenv.buildPlatform.uname.release}" - ] ++ optionals (stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ - "-DCMAKE_CROSSCOMPILING_EMULATOR=env" - ] ++ optionals stdenv.hostPlatform.isStatic [ - "-DCMAKE_LINK_SEARCH_START_STATIC=ON" - ]); - - makeCMakeFlags = { cmakeFlags ? [], ... }: cmakeFlags ++ cmakeFlags'; - -in -{ - inherit makeCMakeFlags; -} diff --git a/pkgs/build-support/lib/meson.nix b/pkgs/build-support/lib/meson.nix deleted file mode 100644 index 456c10f..0000000 --- a/pkgs/build-support/lib/meson.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ stdenv, lib }: - -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; - - crossFile = builtins.toFile "cross-file.conf" '' - [properties] - bindgen_clang_arguments = ['-target', '${stdenv.targetPlatform.config}'] - needs_exe_wrapper = ${boolToString (!stdenv.buildPlatform.canExecute stdenv.hostPlatform)} - - [host_machine] - system = '${stdenv.targetPlatform.parsed.kernel.name}' - cpu_family = '${cpuFamily stdenv.targetPlatform}' - cpu = '${stdenv.targetPlatform.parsed.cpu.name}' - endian = ${if stdenv.targetPlatform.isLittleEndian then "'little'" else "'big'"} - - [binaries] - llvm-config = 'llvm-config-native' - rust = ['rustc', '--target', '${stdenv.targetPlatform.rust.rustcTargetSpec}'] - ''; - - crossFlags = optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "--cross-file=${crossFile}" ]; - - makeMesonFlags = { mesonFlags ? [], ... }: crossFlags ++ mesonFlags; - -in -{ - inherit makeMesonFlags; -} diff --git a/pkgs/build-support/libredirect/default.nix b/pkgs/build-support/libredirect/default.nix deleted file mode 100644 index 1ab4a0d..0000000 --- a/pkgs/build-support/libredirect/default.nix +++ /dev/null @@ -1,122 +0,0 @@ -{ 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. - - Please fix your derivation to not depend on libredirect on static - builds, using something like following: - - nativeBuildInputs = - lib.optional (!stdenv.buildPlatform.isStatic) libredirect; - - 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. - '' -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/". - ''; - }; -} diff --git a/pkgs/build-support/libredirect/libredirect.c b/pkgs/build-support/libredirect/libredirect.c deleted file mode 100644 index fdbdcb6..0000000 --- a/pkgs/build-support/libredirect/libredirect.c +++ /dev/null @@ -1,530 +0,0 @@ -#define _GNU_SOURCE -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define MAX_REDIRECTS 128 - -#ifdef __APPLE__ - struct dyld_interpose { - const void * replacement; - const void * replacee; - }; - #define WRAPPER(ret, name) static ret _libredirect_wrapper_##name - #define LOOKUP_REAL(name) &name - #define WRAPPER_DEF(name) \ - __attribute__((used)) static struct dyld_interpose _libredirect_interpose_##name \ - __attribute__((section("__DATA,__interpose"))) = { &_libredirect_wrapper_##name, &name }; -#else - #define WRAPPER(ret, name) ret name - #define LOOKUP_REAL(name) dlsym(RTLD_NEXT, #name) - #define WRAPPER_DEF(name) -#endif - -static int nrRedirects = 0; -static char * from[MAX_REDIRECTS]; -static char * to[MAX_REDIRECTS]; - -static int isInitialized = 0; - -// FIXME: might run too late. -static void init() __attribute__((constructor)); - -static void init() -{ - if (isInitialized) return; - - char * spec = getenv("NIX_REDIRECTS"); - if (!spec) return; - - // Ensure we only run this code once. - // We do not do `unsetenv("NIX_REDIRECTS")` to ensure that redirects - // also get initialized for subprocesses. - isInitialized = 1; - - char * spec2 = malloc(strlen(spec) + 1); - strcpy(spec2, spec); - - char * pos = spec2, * eq; - while ((eq = strchr(pos, '='))) { - *eq = 0; - from[nrRedirects] = pos; - pos = eq + 1; - to[nrRedirects] = pos; - nrRedirects++; - if (nrRedirects == MAX_REDIRECTS) break; - char * end = strchr(pos, ':'); - if (!end) break; - *end = 0; - pos = end + 1; - } - -} - -static const char * rewrite(const char * volatile path, char * buf) -{ - // Marking the path volatile is needed so the the following check isn't - // optimized away by the compiler. - if (path == NULL) return path; - - for (int n = 0; n < nrRedirects; ++n) { - int len = strlen(from[n]); - if (strncmp(path, from[n], len) != 0) continue; - if (snprintf(buf, PATH_MAX, "%s%s", to[n], path + len) >= PATH_MAX) - abort(); - return buf; - } - - return path; -} - -static char * rewrite_non_const(char * path, char * buf) -{ - // as long as the argument `path` is non-const, we can consider discarding - // the const qualifier of the return value to be safe. - return (char *)rewrite(path, buf); -} - -static int open_needs_mode(int flags) -{ -#ifdef O_TMPFILE - return (flags & O_CREAT) || (flags & O_TMPFILE) == O_TMPFILE; -#else - return flags & O_CREAT; -#endif -} - -/* The following set of Glibc library functions is very incomplete - - it contains only what we needed for programs in Nixpkgs. Just add - more functions as needed. */ - -WRAPPER(int, open)(const char * path, int flags, ...) -{ - int (*open_real) (const char *, int, ...) = LOOKUP_REAL(open); - mode_t mode = 0; - if (open_needs_mode(flags)) { - va_list ap; - va_start(ap, flags); - mode = va_arg(ap, mode_t); - va_end(ap); - } - char buf[PATH_MAX]; - return open_real(rewrite(path, buf), flags, mode); -} -WRAPPER_DEF(open) - -// In musl libc, open64 is simply a macro for open -#if !defined(__APPLE__) && !defined(open64) -WRAPPER(int, open64)(const char * path, int flags, ...) -{ - int (*open64_real) (const char *, int, mode_t) = LOOKUP_REAL(open64); - mode_t mode = 0; - if (open_needs_mode(flags)) { - va_list ap; - va_start(ap, flags); - mode = va_arg(ap, mode_t); - va_end(ap); - } - char buf[PATH_MAX]; - return open64_real(rewrite(path, buf), flags, mode); -} -WRAPPER_DEF(open64) -#endif - -WRAPPER(int, openat)(int dirfd, const char * path, int flags, ...) -{ - int (*openat_real) (int, const char *, int, ...) = LOOKUP_REAL(openat); - mode_t mode = 0; - if (open_needs_mode(flags)) { - va_list ap; - va_start(ap, flags); - mode = va_arg(ap, mode_t); - va_end(ap); - } - char buf[PATH_MAX]; - return openat_real(dirfd, rewrite(path, buf), flags, mode); -} -WRAPPER_DEF(openat) - -WRAPPER(FILE *, fopen)(const char * path, const char * mode) -{ - FILE * (*fopen_real) (const char *, const char *) = LOOKUP_REAL(fopen); - char buf[PATH_MAX]; - return fopen_real(rewrite(path, buf), mode); -} -WRAPPER_DEF(fopen) - -#ifdef __GLIBC__ -WRAPPER(FILE *, __nss_files_fopen)(const char * path) -{ - FILE * (*__nss_files_fopen_real) (const char *) = LOOKUP_REAL(__nss_files_fopen); - char buf[PATH_MAX]; - return __nss_files_fopen_real(rewrite(path, buf)); -} -WRAPPER_DEF(__nss_files_fopen) -#endif - -// In musl libc, fopen64 is simply a macro for fopen -#if !defined(__APPLE__) && !defined(fopen64) -WRAPPER(FILE *, fopen64)(const char * path, const char * mode) -{ - FILE * (*fopen64_real) (const char *, const char *) = LOOKUP_REAL(fopen64); - char buf[PATH_MAX]; - return fopen64_real(rewrite(path, buf), mode); -} -WRAPPER_DEF(fopen64) -#endif - -#ifdef __linux__ -WRAPPER(int, __xstat)(int ver, const char * path, struct stat * st) -{ - int (*__xstat_real) (int ver, const char *, struct stat *) = LOOKUP_REAL(__xstat); - char buf[PATH_MAX]; - return __xstat_real(ver, rewrite(path, buf), st); -} -WRAPPER_DEF(__xstat) -#endif - -#ifdef __linux__ -WRAPPER(int, __xstat64)(int ver, const char * path, struct stat64 * st) -{ - int (*__xstat64_real) (int ver, const char *, struct stat64 *) = LOOKUP_REAL(__xstat64); - char buf[PATH_MAX]; - return __xstat64_real(ver, rewrite(path, buf), st); -} -WRAPPER_DEF(__xstat64) -#endif - -#if defined(__linux__) && defined(STATX_TYPE) -WRAPPER(int, statx)(int dirfd, const char * restrict pathname, int flags, - unsigned int mask, struct statx * restrict statxbuf) -{ - int (*statx_real) (int, const char * restrict, int, - unsigned int, struct statx * restrict) = LOOKUP_REAL(statx); - char buf[PATH_MAX]; - return statx_real(dirfd, rewrite(pathname, buf), flags, mask, statxbuf); -} -WRAPPER_DEF(statx) -#endif - -WRAPPER(int, fstatat)(int dirfd, const char * pathname, struct stat * statbuf, int flags) -{ - int (*fstatat_real) (int, const char *, struct stat *, int) = LOOKUP_REAL(fstatat); - char buf[PATH_MAX]; - return fstatat_real(dirfd, rewrite(pathname, buf), statbuf, flags); -} -WRAPPER_DEF(fstatat); - -// In musl libc, fstatat64 is simply a macro for fstatat -#if !defined(__APPLE__) && !defined(fstatat64) -WRAPPER(int, fstatat64)(int dirfd, const char * pathname, struct stat64 * statbuf, int flags) -{ - int (*fstatat64_real) (int, const char *, struct stat64 *, int) = LOOKUP_REAL(fstatat64); - char buf[PATH_MAX]; - return fstatat64_real(dirfd, rewrite(pathname, buf), statbuf, flags); -} -WRAPPER_DEF(fstatat64); -#endif - -WRAPPER(int, stat)(const char * path, struct stat * st) -{ - int (*__stat_real) (const char *, struct stat *) = LOOKUP_REAL(stat); - char buf[PATH_MAX]; - return __stat_real(rewrite(path, buf), st); -} -WRAPPER_DEF(stat) - -// In musl libc, stat64 is simply a macro for stat -#if !defined(__APPLE__) && !defined(stat64) -WRAPPER(int, stat64)(const char * path, struct stat64 * st) -{ - int (*stat64_real) (const char *, struct stat64 *) = LOOKUP_REAL(stat64); - char buf[PATH_MAX]; - return stat64_real(rewrite(path, buf), st); -} -WRAPPER_DEF(stat64) -#endif - -WRAPPER(int, access)(const char * path, int mode) -{ - int (*access_real) (const char *, int mode) = LOOKUP_REAL(access); - char buf[PATH_MAX]; - return access_real(rewrite(path, buf), mode); -} -WRAPPER_DEF(access) - -WRAPPER(int, posix_spawn)(pid_t * pid, const char * path, - const posix_spawn_file_actions_t * file_actions, - const posix_spawnattr_t * attrp, - char * const argv[], char * const envp[]) -{ - int (*posix_spawn_real) (pid_t *, const char *, - const posix_spawn_file_actions_t *, - const posix_spawnattr_t *, - char * const argv[], char * const envp[]) = LOOKUP_REAL(posix_spawn); - char buf[PATH_MAX]; - return posix_spawn_real(pid, rewrite(path, buf), file_actions, attrp, argv, envp); -} -WRAPPER_DEF(posix_spawn) - -WRAPPER(int, posix_spawnp)(pid_t * pid, const char * file, - const posix_spawn_file_actions_t * file_actions, - const posix_spawnattr_t * attrp, - char * const argv[], char * const envp[]) -{ - int (*posix_spawnp_real) (pid_t *, const char *, - const posix_spawn_file_actions_t *, - const posix_spawnattr_t *, - char * const argv[], char * const envp[]) = LOOKUP_REAL(posix_spawnp); - char buf[PATH_MAX]; - return posix_spawnp_real(pid, rewrite(file, buf), file_actions, attrp, argv, envp); -} -WRAPPER_DEF(posix_spawnp) - -WRAPPER(int, execv)(const char * path, char * const argv[]) -{ - int (*execv_real) (const char * path, char * const argv[]) = LOOKUP_REAL(execv); - char buf[PATH_MAX]; - return execv_real(rewrite(path, buf), argv); -} -WRAPPER_DEF(execv) - -WRAPPER(int, execvp)(const char * path, char * const argv[]) -{ - int (*_execvp) (const char *, char * const argv[]) = LOOKUP_REAL(execvp); - char buf[PATH_MAX]; - return _execvp(rewrite(path, buf), argv); -} -WRAPPER_DEF(execvp) - -WRAPPER(int, execve)(const char * path, char * const argv[], char * const envp[]) -{ - int (*_execve) (const char *, char * const argv[], char * const envp[]) = LOOKUP_REAL(execve); - char buf[PATH_MAX]; - return _execve(rewrite(path, buf), argv, envp); -} -WRAPPER_DEF(execve) - -WRAPPER(DIR *, opendir)(const char * path) -{ - char buf[PATH_MAX]; - DIR * (*_opendir) (const char*) = LOOKUP_REAL(opendir); - - return _opendir(rewrite(path, buf)); -} -WRAPPER_DEF(opendir) - -#define SYSTEM_CMD_MAX 512 - -static char * replace_substring(char * source, char * buf, char * replace_string, char * start_ptr, char * suffix_ptr) { - char head[SYSTEM_CMD_MAX] = {0}; - strncpy(head, source, start_ptr - source); - - char tail[SYSTEM_CMD_MAX] = {0}; - if(suffix_ptr < source + strlen(source)) { - strcpy(tail, suffix_ptr); - } - - sprintf(buf, "%s%s%s", head, replace_string, tail); - return buf; -} - -static char * replace_string(char * buf, char * from, char * to) { - int num_matches = 0; - char * matches[SYSTEM_CMD_MAX]; - int from_len = strlen(from); - for(int i=0; i= 0 && rewritten != template) { - copy_temp_wildcard(template, rewritten, 0); - } - return retval; -} -WRAPPER_DEF(mkstemp) - -WRAPPER(int, mkostemp)(char *template, int flags) -{ - int (*mkostemp_real) (char *template, int flags) = LOOKUP_REAL(mkostemp); - char buf[PATH_MAX]; - char * rewritten = rewrite_non_const(template, buf); - int retval = mkostemp_real(rewritten, flags); - if (retval >= 0 && rewritten != template) { - copy_temp_wildcard(template, rewritten, 0); - } - return retval; -} -WRAPPER_DEF(mkostemp) - -WRAPPER(int, mkstemps)(char *template, int suffixlen) -{ - int (*mkstemps_real) (char *template, int suffixlen) = LOOKUP_REAL(mkstemps); - char buf[PATH_MAX]; - char * rewritten = rewrite_non_const(template, buf); - int retval = mkstemps_real(rewritten, suffixlen); - if (retval >= 0 && rewritten != template) { - copy_temp_wildcard(template, rewritten, suffixlen); - } - return retval; -} -WRAPPER_DEF(mkstemps) - -WRAPPER(int, mkostemps)(char *template, int suffixlen, int flags) -{ - int (*mkostemps_real) (char *template, int suffixlen, int flags) = LOOKUP_REAL(mkostemps); - char buf[PATH_MAX]; - char * rewritten = rewrite_non_const(template, buf); - int retval = mkostemps_real(rewritten, suffixlen, flags); - if (retval >= 0 && rewritten != template) { - copy_temp_wildcard(template, rewritten, suffixlen); - } - return retval; -} -WRAPPER_DEF(mkostemps) - -WRAPPER(char *, mkdtemp)(char *template) -{ - char * (*mkdtemp_real) (char *template) = LOOKUP_REAL(mkdtemp); - char buf[PATH_MAX]; - char * rewritten = rewrite_non_const(template, buf); - char * retval = mkdtemp_real(rewritten); - if (retval == NULL) { - return retval; - }; - if (rewritten != template) { - copy_temp_wildcard(template, rewritten, 0); - } - return template; -} -WRAPPER_DEF(mkdtemp) - -WRAPPER(char *, mktemp)(char *template) -{ - char * (*mktemp_real) (char *template) = LOOKUP_REAL(mktemp); - char buf[PATH_MAX]; - char * rewritten = rewrite_non_const(template, buf); - char * retval = mktemp_real(rewritten); - if (retval == NULL) { - return retval; - }; - if (rewritten != template) { - copy_temp_wildcard(template, rewritten, 0); - } - return template; -} -WRAPPER_DEF(mktemp) diff --git a/pkgs/build-support/libredirect/test.c b/pkgs/build-support/libredirect/test.c deleted file mode 100644 index e5685fc..0000000 --- a/pkgs/build-support/libredirect/test.c +++ /dev/null @@ -1,176 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#define TESTDIR "/bar/baz" -#define TESTPATH "/foo/bar/test" -#define SUBTEST "./test sub" - -extern char **environ; - -void test_spawn(void) { - pid_t pid; - int ret; - posix_spawn_file_actions_t file_actions; - char *argv[] = {"true", NULL}; - - assert(posix_spawn_file_actions_init(&file_actions) == 0); - - ret = posix_spawn(&pid, TESTPATH, &file_actions, NULL, argv, environ); - - assert(ret == 0); - assert(waitpid(pid, NULL, 0) != -1); -} - -void test_execv(void) { - char *argv[] = {"true", NULL}; - assert(execv(TESTPATH, argv) == 0); -} - -void test_system(void) { - assert(system(TESTPATH) == 0); -} - -void test_subprocess(void) { - assert(system(SUBTEST) == 0); -} - -void test_stat_with_null_path(void) { - // This checks whether the compiler optimizes away the null pointer check - // on the path passed to stat(). If that's the case, the following code - // should segfault. - struct stat buf; -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wnonnull" - stat(NULL, &buf); -#pragma GCC diagnostic pop -} - -void assert_mktemp_path( - const char * orig_prefix, - const char * orig_suffix, - const char * updated -) { - // prefix unchanged - assert(strncmp(updated, orig_prefix, strlen(orig_prefix)) == 0); - // wildcards replaced - assert(strcmp(updated + strlen(orig_prefix), "XXXXXX") != 0); - // suffix unchanged - assert(strcmp(updated + strlen(orig_prefix) + 6, orig_suffix) == 0); -} - -int main(int argc, char *argv[]) -{ - FILE *testfp; - int testfd; - struct stat testsb; -#ifdef __GLIBC__ - struct stat64 testsb64; -#endif -#if defined(__linux__) && defined(STATX_TYPE) - struct statx testsbx; -#endif - char buf[PATH_MAX]; - - testfp = fopen(TESTPATH, "r"); - assert(testfp != NULL); - fclose(testfp); - - testfd = open(TESTPATH, O_RDONLY); - assert(testfd != -1); - close(testfd); - - assert(access(TESTPATH, X_OK) == 0); - - assert(stat(TESTPATH, &testsb) != -1); -#ifdef __GLIBC__ - assert(stat64(TESTPATH, &testsb64) != -1); -#endif - assert(fstatat(123, TESTPATH, &testsb, 0) != -1); -#ifdef __GLIBC__ - assert(fstatat64(123, TESTPATH, &testsb64, 0) != -1); -#endif -#if defined(__linux__) && defined(STATX_TYPE) - assert(statx(123, TESTPATH, 0, STATX_ALL, &testsbx) != -1); -#endif - - assert(getcwd(buf, PATH_MAX) != NULL); - assert(chdir(TESTDIR) == 0); - assert(chdir(buf) == 0); - - assert(mkdir(TESTDIR "/dir-mkdir", 0777) == 0); - assert(unlink(TESTDIR "/dir-mkdir") == -1); // it's a directory! -#ifndef __APPLE__ - assert(errno == EISDIR); -#endif - assert(rmdir(TESTDIR "/dir-mkdir") == 0); - assert(unlink(TESTDIR "/dir-mkdir") == -1); - assert(errno == ENOENT); - - assert(mkdirat(123, TESTDIR "/dir-mkdirat", 0777) == 0); - assert(unlinkat(123, TESTDIR "/dir-mkdirat", 0) == -1); // it's a directory! -#ifndef __APPLE__ - assert(errno == EISDIR); -#endif - assert(unlinkat(123, TESTDIR "/dir-mkdirat", AT_REMOVEDIR) == 0); - - strncpy(buf, TESTDIR "/tempXXXXXX", PATH_MAX); - testfd = mkstemp(buf); - assert(testfd > 0); - assert_mktemp_path(TESTDIR "/temp", "", buf); - close(testfd); - - strncpy(buf, TESTDIR "/tempXXXXXX", PATH_MAX); - testfd = mkostemp(buf, 0); - assert(testfd > 0); - assert_mktemp_path(TESTDIR "/temp", "", buf); - close(testfd); - - strncpy(buf, TESTDIR "/tempXXXXXX.test", PATH_MAX); - testfd = mkstemps(buf, strlen(".test")); - assert(testfd > 0); - assert_mktemp_path(TESTDIR "/temp", ".test", buf); - close(testfd); - - strncpy(buf, TESTDIR "/tempXXXXXX.test", PATH_MAX); - testfd = mkostemps(buf, strlen(".test"), 0); - assert(testfd > 0); - assert_mktemp_path(TESTDIR "/temp", ".test", buf); - close(testfd); - - strncpy(buf, TESTDIR "/tempXXXXXX", PATH_MAX); - assert(mkdtemp(buf) == buf); - assert_mktemp_path(TESTDIR "/temp", "", buf); - - strncpy(buf, TESTDIR "/tempXXXXXX", PATH_MAX); - assert(mktemp(buf) == buf); - assert_mktemp_path(TESTDIR "/temp", "", buf); - - test_spawn(); - test_system(); - test_stat_with_null_path(); - - // Only run subprocess if no arguments are given - // as the subprocess will be called without argument - // otherwise we will have infinite recursion - if (argc == 1) { - test_subprocess(); - } - - test_execv(); - - /* If all goes well, this is never reached because test_execv() replaces - * the current process. - */ - return 0; -} diff --git a/pkgs/build-support/make-darwin-bundle/default.nix b/pkgs/build-support/make-darwin-bundle/default.nix deleted file mode 100644 index 52dd54b..0000000 --- a/pkgs/build-support/make-darwin-bundle/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -# given a package with an executable and an icon, make a darwin bundle for -# it. This package should be used when generating launchers for native Darwin -# applications. If the package conatins a .desktop file use -# `desktopToDarwinLauncher` instead. - -{ lib, writeShellScript, writeDarwinBundle }: - -{ name # The name of the Application file. -, exec # Executable file. -, icon ? "" # Optional icon file. -}: - -writeShellScript "make-darwin-bundle-${name}" ('' - function makeDarwinBundlePhase() { - mkdir -p "''${!outputBin}/Applications/${name}.app/Contents/MacOS" - mkdir -p "''${!outputBin}/Applications/${name}.app/Contents/Resources" - - if [ -n "${icon}" ]; then - ln -s "${icon}" "''${!outputBin}/Applications/${name}.app/Contents/Resources" - fi - - ${writeDarwinBundle}/bin/write-darwin-bundle "''${!outputBin}" "${name}" "${exec}" - } - - preDistPhases+=" makeDarwinBundlePhase" -'') diff --git a/pkgs/build-support/make-darwin-bundle/write-darwin-bundle.nix b/pkgs/build-support/make-darwin-bundle/write-darwin-bundle.nix deleted file mode 100644 index 752cbbd..0000000 --- a/pkgs/build-support/make-darwin-bundle/write-darwin-bundle.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ writeScriptBin, lib, makeBinaryWrapper }: - -let - pListText = lib.generators.toPlist { } { - CFBundleDevelopmentRegion = "English"; - CFBundleExecutable = "$name"; - CFBundleIconFile = "$icon"; - CFBundleIconFiles = [ "$icon" ]; - CFBundleIdentifier = "org.nixos.$name"; - CFBundleInfoDictionaryVersion = "6.0"; - CFBundleName = "$name"; - CFBundlePackageType = "APPL"; - CFBundleSignature = "???"; - }; -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 - - cat > "$plist" <|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 -'' diff --git a/pkgs/build-support/make-desktopitem/default.nix b/pkgs/build-support/make-desktopitem/default.nix deleted file mode 100644 index ccceb23..0000000 --- a/pkgs/build-support/make-desktopitem/default.nix +++ /dev/null @@ -1,118 +0,0 @@ -{ 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!"; - - # 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; - - # 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} - '') - ]; - - 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; - - 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 deleted file mode 100644 index 820b003..0000000 --- a/pkgs/build-support/make-hardcode-gsettings-patch/default.nix +++ /dev/null @@ -1,80 +0,0 @@ -{ - runCommand, - git, - coccinelle, - python3, -}: - -/* - Creates a patch that replaces every instantiation of GSettings in a C project - with a code that loads a GSettings schema from a hardcoded path. - - This is useful so that libraries can find schemas even though Nix lacks - a standard location like /usr/share, where GSettings system could look for schemas. - The derivation is is somewhat dependency-heavy so it is best used as part of an update script. - - For each schema id referenced in the source code (e.g. org.gnome.evolution), - a variable name such as `EVOLUTION` must be provided. - 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. - - - `schemaIdToVariableMapping`: attrset assigning schema ids to variable names. - All used schemas must be listed. - - For example, `{ "org.gnome.evolution" = "EVOLUTION_SCHEMA_PATH"; }` - hardcodes looking for `org.gnome.evolution` into `@EVOLUTION_SCHEMA_PATH@`. - - - `patches`: A list of patches to apply before generating the patch. - - Example: - passthru = { - hardcodeGsettingsPatch = makeHardcodeGsettingsPatch { - inherit (finalAttrs) src; - schemaIdToVariableMapping = { - ... - }; - }; - - updateScript = - let - updateSource = ...; - updatePatch = _experimental-update-script-combinators.copyAttrOutputToFile "evolution-ews.hardcodeGsettingsPatch" ./hardcode-gsettings.patch; - in - _experimental-update-script-combinators.sequence [ - updateSource - updatePatch - ]; - }; - } -*/ -{ - src, - patches ? [ ], - schemaIdToVariableMapping, -}: - -runCommand - "hardcode-gsettings.patch" - { - inherit src patches; - nativeBuildInputs = [ - git - coccinelle - python3 # For patch script - ]; - } - '' - unpackPhase - cd "''${sourceRoot:-.}" - patchPhase - set -x - cp ${builtins.toFile "glib-schema-to-var.json" (builtins.toJSON schemaIdToVariableMapping)} ./glib-schema-to-var.json - git init - git add -A - spatch --sp-file "${./hardcode-gsettings.cocci}" --dir . --in-place - git diff > "$out" - '' diff --git a/pkgs/build-support/make-hardcode-gsettings-patch/hardcode-gsettings.cocci b/pkgs/build-support/make-hardcode-gsettings-patch/hardcode-gsettings.cocci deleted file mode 100644 index e916d74..0000000 --- a/pkgs/build-support/make-hardcode-gsettings-patch/hardcode-gsettings.cocci +++ /dev/null @@ -1,145 +0,0 @@ -/** - * Since Nix does not have a standard location like /usr/share where GSettings system - * could look for schemas, we need to point the software to a correct location somehow. - * For executables, we handle this using wrappers but this is not an option for libraries like e-d-s. - * Instead, we patch the source code to look for the schema in a schema source - * through a hardcoded path to the schema. - * - * For each schema id referenced in the source code (e.g. org.gnome.evolution), - * a variable name such as `EVOLUTION` must be provided in the ./glib-schema-to-var.json JSON file. - * It will end up in the resulting 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. - */ - -@initialize:python@ -@@ -import json - -cpp_constants = {} - -def register_cpp_constant(const_name, val): - cpp_constants[const_name] = val.strip() - -def resolve_cpp_constant(const_name): - return cpp_constants.get(const_name, const_name) - -with open("./glib-schema-to-var.json") as mapping_file: - schema_to_var = json.load(mapping_file); - -def get_schema_directory(schema_id): - # Sometimes the schema id is referenced using C preprocessor #define constant in the same file - # let’s try to resolve it first. - schema_id = resolve_cpp_constant(schema_id.strip()).strip('"') - if schema_id in schema_to_var: - return f'"@{schema_to_var[schema_id]}@"' - raise Exception(f"Unknown schema path {schema_id!r}, please add it to ./glib-schema-to-var.json") - -@find_cpp_constants@ -identifier const_name; -expression val; -@@ - -#define const_name val - -@script:python record_cpp_constants depends on find_cpp_constants@ -const_name << find_cpp_constants.const_name; -val << find_cpp_constants.val; -@@ - -register_cpp_constant(const_name, val) - - -@depends on ever record_cpp_constants || never record_cpp_constants@ -// We want to run after #define constants have been collected but even if there are no #defines. -expression SCHEMA_ID; -expression settings; -// Coccinelle does not like autocleanup macros in + sections, -// let’s use fresh id with concatenation to produce the code as a string. -fresh identifier schema_source_decl = "g_autoptr(GSettingsSchemaSource) " ## "schema_source"; -fresh identifier schema_decl = "g_autoptr(GSettingsSchema) " ## "schema"; -fresh identifier SCHEMA_DIRECTORY = script:python(SCHEMA_ID) { get_schema_directory(SCHEMA_ID) }; -@@ --settings = g_settings_new(SCHEMA_ID); -+{ -+ schema_source_decl; -+ schema_decl; -+ schema_source = g_settings_schema_source_new_from_directory(SCHEMA_DIRECTORY, -+ g_settings_schema_source_get_default(), -+ TRUE, -+ NULL); -+ schema = g_settings_schema_source_lookup(schema_source, SCHEMA_ID, FALSE); -+ settings = g_settings_new_full(schema, NULL, NULL); -+} - - -@depends on ever record_cpp_constants || never record_cpp_constants@ -// We want to run after #define constants have been collected but even if there are no #defines. -expression SCHEMA_ID; -expression settings; -expression BACKEND; -// Coccinelle does not like autocleanup macros in + sections, -// let’s use fresh id with concatenation to produce the code as a string. -fresh identifier schema_source_decl = "g_autoptr(GSettingsSchemaSource) " ## "schema_source"; -fresh identifier schema_decl = "g_autoptr(GSettingsSchema) " ## "schema"; -fresh identifier SCHEMA_DIRECTORY = script:python(SCHEMA_ID) { get_schema_directory(SCHEMA_ID) }; -@@ --settings = g_settings_new_with_backend(SCHEMA_ID, BACKEND); -+{ -+ schema_source_decl; -+ schema_decl; -+ schema_source = g_settings_schema_source_new_from_directory(SCHEMA_DIRECTORY, -+ g_settings_schema_source_get_default(), -+ TRUE, -+ NULL); -+ schema = g_settings_schema_source_lookup(schema_source, SCHEMA_ID, FALSE); -+ settings = g_settings_new_full(schema, BACKEND, NULL); -+} - - -@depends on ever record_cpp_constants || never record_cpp_constants@ -// We want to run after #define constants have been collected but even if there are no #defines. -expression SCHEMA_ID; -expression settings; -expression BACKEND; -expression PATH; -// Coccinelle does not like autocleanup macros in + sections, -// let’s use fresh id with concatenation to produce the code as a string. -fresh identifier schema_source_decl = "g_autoptr(GSettingsSchemaSource) " ## "schema_source"; -fresh identifier schema_decl = "g_autoptr(GSettingsSchema) " ## "schema"; -fresh identifier SCHEMA_DIRECTORY = script:python(SCHEMA_ID) { get_schema_directory(SCHEMA_ID) }; -@@ --settings = g_settings_new_with_backend_and_path(SCHEMA_ID, BACKEND, PATH); -+{ -+ schema_source_decl; -+ schema_decl; -+ schema_source = g_settings_schema_source_new_from_directory(SCHEMA_DIRECTORY, -+ g_settings_schema_source_get_default(), -+ TRUE, -+ NULL); -+ schema = g_settings_schema_source_lookup(schema_source, SCHEMA_ID, FALSE); -+ settings = g_settings_new_full(schema, BACKEND, PATH); -+} - - -@depends on ever record_cpp_constants || never record_cpp_constants@ -// We want to run after #define constants have been collected but even if there are no #defines. -expression SCHEMA_ID; -expression settings; -expression PATH; -// Coccinelle does not like autocleanup macros in + sections, -// let’s use fresh id with concatenation to produce the code as a string. -fresh identifier schema_source_decl = "g_autoptr(GSettingsSchemaSource) " ## "schema_source"; -fresh identifier schema_decl = "g_autoptr(GSettingsSchema) " ## "schema"; -fresh identifier SCHEMA_DIRECTORY = script:python(SCHEMA_ID) { get_schema_directory(SCHEMA_ID) }; -@@ --settings = g_settings_new_with_path(SCHEMA_ID, PATH); -+{ -+ schema_source_decl; -+ schema_decl; -+ schema_source = g_settings_schema_source_new_from_directory(SCHEMA_DIRECTORY, -+ g_settings_schema_source_get_default(), -+ TRUE, -+ NULL); -+ schema = g_settings_schema_source_lookup(schema_source, SCHEMA_ID, FALSE); -+ settings = g_settings_new_full(schema, NULL, PATH); -+} diff --git a/pkgs/build-support/make-impure-test.nix b/pkgs/build-support/make-impure-test.nix deleted file mode 100644 index 84d0b30..0000000 --- a/pkgs/build-support/make-impure-test.nix +++ /dev/null @@ -1,96 +0,0 @@ -/* 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. - - The following example shows a test that accesses the GPU: - - Example: - makeImpureTest { - name = "opencl"; - testedPackage = "mypackage"; # Or testPath = "mypackage.impureTests.opencl.testDerivation" - - sandboxPaths = [ "/sys" "/dev/dri" ]; # Defaults to ["/sys"] - prepareRunCommands = ""; # (Optional) Setup for the runScript - nixFlags = []; # (Optional) nix-build options for the runScript - - testScript = "..."; - } - - Save as `test.nix` next to a package and reference it from the package: - passthru.impureTests = { opencl = callPackage ./test.nix {}; }; - - `makeImpureTest` will return here a script that contains the actual nix-build command including all necessary sandbox flags. - - It can be executed like this: - $(nix-build -A mypackage.impureTests) - - Rerun an already cached test: - $(nix-build -A mypackage.impureTests) --check -*/ -{ lib -, stdenv -, writeShellScript - -, 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}"; - - requiredSystemFeatures = [ "nixos-test" ]; - - buildCommand = '' - mkdir -p $out - - if ${sandboxPathsTest}; then - echo 'Run this test as *root* with `--option extra-sandbox-paths '"'${sandboxPathsList}'"'`' - exit 1 - fi - - # Run test - ${testScript} - ''; - - passthru.runScript = runScript; - } - (builtins.removeAttrs args [ - "lib" - "stdenv" - "writeShellScript" - - "name" - "testedPackage" - "testPath" - "sandboxPaths" - "prepareRunCommands" - "nixFlags" - "testScript" - ]) - ); - - runScript = writeShellScript "run-script-${name}" '' - set -euo pipefail - - ${prepareRunCommands} - - sudo nix-build --option extra-sandbox-paths '${sandboxPathsList}' ${lib.escapeShellArgs nixFlags} -A ${testPath} "$@" - ''; -in -# The main output is the run script, inject the derivation for the actual test -runScript.overrideAttrs (old: { - passthru = { inherit testDerivation; }; -}) diff --git a/pkgs/build-support/make-pkgconfigitem/default.nix b/pkgs/build-support/make-pkgconfigitem/default.nix deleted file mode 100644 index d3bcabb..0000000 --- a/pkgs/build-support/make-pkgconfigitem/default.nix +++ /dev/null @@ -1,69 +0,0 @@ -{ lib, writeTextFile, buildPackages }: - -# See https://people.freedesktop.org/~dbn/pkg-config-guide.html#concepts -{ 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 ? { } -}: - -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; - - keywordsSection = - let - mustBeAList = attr: attrName: lib.throwIfNot (lib.isList attr) "'${attrName}' must be a list" attr; - in - { - "Name" = name; - "Description" = description; - "URL" = url; - "Version" = version; - "Requires" = mustBeAList requires "requires"; - "Requires.private" = mustBeAList requiresPrivate "requiresPrivate"; - "Conflicts" = mustBeAList conflicts "conflicts"; - "Cflags" = mustBeAList cflags "cflags"; - "Libs" = mustBeAList libs "libs"; - "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}"; - - renderSomething = renderFunc: attrs: - lib.pipe attrs [ - (lib.mapAttrsToList renderFunc) - (builtins.filter (v: v != "")) - (builtins.concatStringsSep "\n") - (section: ''${section} - '') - ]; - - variablesSectionRendered = renderSomething renderVariable variables; - keywordsSectionRendered = renderSomething renderKeyword keywordsSection; - - content = [ variablesSectionRendered keywordsSectionRendered ]; -in -writeTextFile { - name = "${name}.pc"; - destination = "/lib/pkgconfig/${name}.pc"; - text = builtins.concatStringsSep "\n" content; - checkPhase = ''${buildPackages.pkg-config}/bin/${buildPackages.pkg-config.targetPrefix}pkg-config --validate "$target"''; -} diff --git a/pkgs/build-support/make-startupitem/default.nix b/pkgs/build-support/make-startupitem/default.nix deleted file mode 100644 index 94bf07c..0000000 --- a/pkgs/build-support/make-startupitem/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -# 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" -}: - -# the builder requires that -# $package/share/applications/$name.desktop -# exists as file. - -stdenv.mkDerivation { - name = "autostart-${name}"; - priority = 5; - - buildCommand = '' - mkdir -p $out/etc/xdg/autostart - target=${name}.desktop - cp ${package}/share/applications/${srcPrefix}${name}.desktop $target - chmod +rw $target - echo "X-KDE-autostart-phase=${phase}" >> $target - ${lib.optionalString (after != null) ''echo "${after}" >> $target''} - ${lib.optionalString (condition != null) ''echo "${condition}" >> $target''} - cp $target $out/etc/xdg/autostart - ''; - - # this will automatically put 'package' in the environment when you - # put its startup item in there. - propagatedBuildInputs = [ package ]; -} diff --git a/pkgs/build-support/mkshell/default.nix b/pkgs/build-support/mkshell/default.nix deleted file mode 100644 index 5369301..0000000 --- a/pkgs/build-support/mkshell/default.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ 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 ? [ ] -, ... -}@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))); - - rest = builtins.removeAttrs attrs [ - "name" - "packages" - "inputsFrom" - "buildInputs" - "nativeBuildInputs" - "propagatedBuildInputs" - "propagatedNativeBuildInputs" - "shellHook" - ]; -in - -stdenv.mkDerivation ({ - inherit name; - - buildInputs = mergeInputs "buildInputs"; - nativeBuildInputs = packages ++ (mergeInputs "nativeBuildInputs"); - propagatedBuildInputs = mergeInputs "propagatedBuildInputs"; - propagatedNativeBuildInputs = mergeInputs "propagatedNativeBuildInputs"; - - shellHook = lib.concatStringsSep "\n" (lib.catAttrs "shellHook" - (lib.reverseList inputsFrom ++ [ attrs ])); - - 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" - ''; - - preferLocalBuild = true; -} // rest) diff --git a/pkgs/build-support/mono-dll-fixer/default.nix b/pkgs/build-support/mono-dll-fixer/default.nix deleted file mode 100644 index 09a9860..0000000 --- a/pkgs/build-support/mono-dll-fixer/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -{stdenv, perl}: -stdenv.mkDerivation { - name = "mono-dll-fixer"; - dllFixer = ./dll-fixer.pl; - dontUnpack = true; - installPhase = '' - substitute $dllFixer $out --subst-var-by perl $perl/bin/perl - chmod +x $out - ''; - inherit perl; -} diff --git a/pkgs/build-support/mono-dll-fixer/dll-fixer.pl b/pkgs/build-support/mono-dll-fixer/dll-fixer.pl deleted file mode 100644 index 4a8b468..0000000 --- a/pkgs/build-support/mono-dll-fixer/dll-fixer.pl +++ /dev/null @@ -1,32 +0,0 @@ -#! @perl@ -w - -use strict; - -my @paths = split ' ', $ENV{"ALL_INPUTS"}; - -open IN, "<$ARGV[0]" or die; -open OUT, ">$ARGV[0].tmp" or die; - -while () { - # !!! should use a real XML library here. - if (!//) { - print OUT; - next; - } - my $dll = $1; - my $target = $2; - - foreach my $path (@paths) { - my $fullPath = "$path/lib/$target"; - if (-e "$fullPath") { - $target = $fullPath; - last; - } - } - - print OUT " \n"; -} - -close IN; - -rename "$ARGV[0].tmp", "$ARGV[0]" or die "cannot rename $ARGV[0]"; diff --git a/pkgs/build-support/nix-gitignore/default.nix b/pkgs/build-support/nix-gitignore/default.nix deleted file mode 100644 index 8497206..0000000 --- a/pkgs/build-support/nix-gitignore/default.nix +++ /dev/null @@ -1,198 +0,0 @@ -# https://github.com/siers/nix-gitignore/ - -{ lib, runCommand }: - -# An interesting bit from the gitignore(5): -# - A slash followed by two consecutive asterisks then a slash matches -# - zero or more directories. For example, "a/**/b" matches "a/b", -# - "a/x/b", "a/x/y/b" and so on. - -let - inherit (builtins) filterSource; - - inherit (lib) - concatStringsSep - elemAt - filter - head - isList - length - optionals - optionalString - pathExists - readFile - removePrefix - replaceStrings - stringLength - sub - substring - toList - trace - ; - - - inherit (lib.strings) match split typeOf; - - debug = a: trace a a; - last = l: elemAt l ((length l) - 1); -in rec { - # [["good/relative/source/file" true] ["bad.tmpfile" false]] -> root -> path - 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; - in - last (last ([[true true]] ++ (filter head matched))) - ); - - # string -> [[regex bool]] - 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 == "!")]; - - # regex -> regex - handleHashesBangs = replaceStrings ["\\#" "\\!"] ["#" "!"]; - - # ignore -> regex - substWildcards = - let - special = "^$.+{}()"; - escs = "\\*?"; - splitString = - 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) ++ ["(.*/)?" ".*" "[^/]*" "[^/]"]); - - # (regex -> regex) -> regex -> regex - 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)); - - # regex -> regex - 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); - - # regex -> regex - 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)]; - 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)); - - gitignoreFilter = ign: root: filterPattern (gitignoreToPatterns ign) root; - - # string|[string|file] (→ [string|file] → [string]) -> string - 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; - - 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: - let - dirOrIgnore = file: type: baseNameOf file == ".gitignore" || type == "directory"; - ignores = builtins.filterSource dirOrIgnore root; - in readFile ( - runCommand "${baseNameOf root}-recursive-gitignore" {} '' - cd ${ignores} - - find -type f -exec sh -c ' - rel="$(realpath --relative-to=. "$(dirname "$1")")/" - if [ "$rel" = "./" ]; then rel=""; fi - - awk -v prefix="$rel" -v root="$1" -v top="$(test -z "$rel" && echo 1)" " - BEGIN { print \"# \"root } - - /^!?[^\\/]+\/?$/ { - match(\$0, /^!?/, negation) - sub(/^!?/, \"\") - - if (top) { middle = \"\" } else { middle = \"**/\" } - - print negation[0] prefix middle \$0 - } - - /^!?(\\/|.*\\/.+$)/ { - match(\$0, /^!?/, negation) - sub(/^!?/, \"\") - - if (!top) sub(/^\//, \"\") - - print negation[0] prefix \$0 - } - - END { print \"\" } - " "$1" - ' sh {} \; > $out - ''); - - withGitignoreFile = patterns: root: - toList patterns ++ [ ".git" ] ++ [(root + "/.gitignore")]; - - withRecursiveGitignoreFile = patterns: root: - toList patterns ++ [ ".git" ] ++ [(compileRecursiveGitignore root)]; - - # filterSource derivatives - - gitignoreFilterSourcePure = predicate: patterns: root: - filterSource (gitignoreFilterPure predicate patterns root) root; - - gitignoreFilterSource = predicate: patterns: root: - gitignoreFilterSourcePure predicate (withGitignoreFile patterns root) 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; - - 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 deleted file mode 100644 index 1c7bf63..0000000 --- a/pkgs/build-support/node/build-npm-package/default.nix +++ /dev/null @@ -1,88 +0,0 @@ -{ lib -, stdenv -, fetchNpmDeps -, buildPackages -, nodejs -, darwin -} @ topLevelArgs: - -{ 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 ? "" - # Whether to force the usage of Git dependencies that have install scripts, but not a lockfile. - # Use with care. -, 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 - # 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 - # The script to run to build the project. -, npmBuildScript ? "build" - # Flags to pass to all npm commands. -, npmFlags ? [ ] - # Flags to pass to `npm ci`. -, npmInstallFlags ? [ ] - # Flags to pass to `npm rebuild`. -, npmRebuildFlags ? [ ] - # Flags to pass to `npm run ${npmBuildScript}`. -, npmBuildFlags ? [ ] - # Flags to pass to `npm pack`. -, npmPackFlags ? [ ] - # Flags to pass to `npm prune`. -, 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; -} - # Custom npmConfigHook -, npmConfigHook ? null - # Custom npmBuildHook -, npmBuildHook ? null - # Custom npmInstallHook -, npmInstallHook ? null -, ... -} @ args: - -let - # .override {} negates splicing, so we need to use buildPackages explicitly - npmHooks = buildPackages.npmHooks.override { - inherit nodejs; - }; -in -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 ]; - - strictDeps = 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; }; -}) diff --git a/pkgs/build-support/node/build-npm-package/hooks/default.nix b/pkgs/build-support/node/build-npm-package/hooks/default.nix deleted file mode 100644 index 36f0319..0000000 --- a/pkgs/build-support/node/build-npm-package/hooks/default.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ 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"; - - # 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; - - 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; -} diff --git a/pkgs/build-support/node/build-npm-package/hooks/npm-build-hook.sh b/pkgs/build-support/node/build-npm-package/hooks/npm-build-hook.sh deleted file mode 100644 index c341f67..0000000 --- a/pkgs/build-support/node/build-npm-package/hooks/npm-build-hook.sh +++ /dev/null @@ -1,38 +0,0 @@ -# shellcheck shell=bash - -npmBuildHook() { - echo "Executing npmBuildHook" - - runHook preBuild - - if [ -z "${npmBuildScript-}" ]; then - echo - echo "ERROR: no build script was specified" - echo 'Hint: set `npmBuildScript`, override `buildPhase`, or set `dontNpmBuild = true`.' - echo - - exit 1 - fi - - if ! npm run ${npmWorkspace+--workspace=$npmWorkspace} "$npmBuildScript" $npmBuildFlags "${npmBuildFlagsArray[@]}" $npmFlags "${npmFlagsArray[@]}"; then - echo - echo 'ERROR: `npm build` failed' - echo - echo "Here are a few things you can try, depending on the error:" - echo "1. Make sure your build script ($npmBuildScript) exists" - echo ' If there is none, set `dontNpmBuild = true`.' - echo '2. If the error being thrown is something similar to "error:0308010C:digital envelope routines::unsupported", add `NODE_OPTIONS = "--openssl-legacy-provider"` to your derivation' - echo " See https://github.com/webpack/webpack/issues/14532 for more information." - echo - - exit 1 - fi - - runHook postBuild - - echo "Finished npmBuildHook" -} - -if [ -z "${dontNpmBuild-}" ] && [ -z "${buildPhase-}" ]; then - buildPhase=npmBuildHook -fi diff --git a/pkgs/build-support/node/build-npm-package/hooks/npm-config-hook.sh b/pkgs/build-support/node/build-npm-package/hooks/npm-config-hook.sh deleted file mode 100644 index 486b0c2..0000000 --- a/pkgs/build-support/node/build-npm-package/hooks/npm-config-hook.sh +++ /dev/null @@ -1,119 +0,0 @@ -# shellcheck shell=bash - -npmConfigHook() { - echo "Executing npmConfigHook" - - # Use npm patches in the nodejs package - export NIX_NODEJS_BUILDNPMPACKAGE=1 - export prefetchNpmDeps="@prefetchNpmDeps@" - - if [ -n "${npmRoot-}" ]; then - pushd "$npmRoot" - fi - - echo "Configuring npm" - - export HOME="$TMPDIR" - export npm_config_nodedir="@nodeSrc@" - export npm_config_node_gyp="@nodeGyp@" - - if [ -z "${npmDeps-}" ]; then - echo - echo "ERROR: no dependencies were specified" - echo 'Hint: set `npmDeps` if using these hooks individually. If this is happening with `buildNpmPackage`, please open an issue.' - echo - - exit 1 - fi - - local -r cacheLockfile="$npmDeps/package-lock.json" - local -r srcLockfile="$PWD/package-lock.json" - - echo "Validating consistency between $srcLockfile and $cacheLockfile" - - if ! @diff@ "$srcLockfile" "$cacheLockfile"; then - # If the diff failed, first double-check that the file exists, so we can - # give a friendlier error msg. - if ! [ -e "$srcLockfile" ]; then - echo - echo "ERROR: Missing package-lock.json from src. Expected to find it at: $srcLockfile" - echo "Hint: You can copy a vendored package-lock.json file via postPatch." - echo - - exit 1 - fi - - if ! [ -e "$cacheLockfile" ]; then - echo - echo "ERROR: Missing lockfile from cache. Expected to find it at: $cacheLockfile" - echo - - exit 1 - fi - - echo - echo "ERROR: npmDepsHash is out of date" - echo - echo "The package-lock.json in src is not the same as the in $npmDeps." - echo - echo "To fix the issue:" - echo '1. Use `lib.fakeHash` as the npmDepsHash value' - echo "2. Build the derivation and wait for it to fail with a hash mismatch" - echo "3. Copy the 'got: sha256-' value back into the npmDepsHash field" - echo - - exit 1 - fi - - export CACHE_MAP_PATH="$TMP/MEOW" - @prefetchNpmDeps@ --map-cache - - @prefetchNpmDeps@ --fixup-lockfile "$srcLockfile" - - local cachePath - - if [ -z "${makeCacheWritable-}" ]; then - cachePath="$npmDeps" - else - echo "Making cache writable" - cp -r "$npmDeps" "$TMPDIR/cache" - chmod -R 700 "$TMPDIR/cache" - cachePath="$TMPDIR/cache" - fi - - npm config set cache "$cachePath" - npm config set offline true - npm config set progress false - - echo "Installing dependencies" - - if ! npm ci --ignore-scripts $npmInstallFlags "${npmInstallFlagsArray[@]}" $npmFlags "${npmFlagsArray[@]}"; then - echo - echo "ERROR: npm failed to install dependencies" - echo - echo "Here are a few things you can try, depending on the error:" - echo '1. Set `makeCacheWritable = true`' - echo " Note that this won't help if npm is complaining about not being able to write to the logs directory -- look above that for the actual error." - echo '2. Set `npmFlags = [ "--legacy-peer-deps" ]`' - echo - - exit 1 - fi - - patchShebangs node_modules - - npm rebuild $npmRebuildFlags "${npmRebuildFlagsArray[@]}" $npmFlags "${npmFlagsArray[@]}" - - patchShebangs node_modules - - rm "$CACHE_MAP_PATH" - unset CACHE_MAP_PATH - - if [ -n "${npmRoot-}" ]; then - popd - fi - - echo "Finished npmConfigHook" -} - -postPatchHooks+=(npmConfigHook) diff --git a/pkgs/build-support/node/build-npm-package/hooks/npm-install-hook.sh b/pkgs/build-support/node/build-npm-package/hooks/npm-install-hook.sh deleted file mode 100644 index 750ed42..0000000 --- a/pkgs/build-support/node/build-npm-package/hooks/npm-install-hook.sh +++ /dev/null @@ -1,71 +0,0 @@ -# shellcheck shell=bash - -npmInstallHook() { - echo "Executing npmInstallHook" - - runHook preInstall - - local -r packageOut="$out/lib/node_modules/$(@jq@ --raw-output '.name' package.json)" - - # `npm pack` writes to cache so temporarily override it - while IFS= read -r file; do - local dest="$packageOut/$(dirname "$file")" - mkdir -p "$dest" - cp "${npmWorkspace-.}/$file" "$dest" - done < <(@jq@ --raw-output '.[0].files | map(.path | select(. | startswith("node_modules/") | not)) | join("\n")' <<< "$(npm_config_cache="$HOME/.npm" npm pack --json --dry-run --loglevel=warn --no-foreground-scripts ${npmWorkspace+--workspace=$npmWorkspace} $npmPackFlags "${npmPackFlagsArray[@]}" $npmFlags "${npmFlagsArray[@]}")") - - # Based on code from Python's buildPythonPackage wrap.sh script, for - # supporting both the case when makeWrapperArgs is an array and a - # IFS-separated string. - # - # TODO: remove the string branch when __structuredAttrs are used. - if [[ "${makeWrapperArgs+defined}" == "defined" && "$(declare -p makeWrapperArgs)" =~ ^'declare -a makeWrapperArgs=' ]]; then - local -a user_args=("${makeWrapperArgs[@]}") - else - local -a user_args="(${makeWrapperArgs:-})" - fi - while IFS=" " read -ra bin; do - mkdir -p "$out/bin" - makeWrapper @hostNode@ "$out/bin/${bin[0]}" --add-flags "$packageOut/${bin[1]}" "${user_args[@]}" - done < <(@jq@ --raw-output '(.bin | type) as $typ | if $typ == "string" then - .name + " " + .bin - elif $typ == "object" then .bin | to_entries | map(.key + " " + .value) | join("\n") - elif $typ == "null" then empty - else "invalid type " + $typ | halt_error end' "${npmWorkspace-.}/package.json") - - while IFS= read -r man; do - installManPage "$packageOut/$man" - done < <(@jq@ --raw-output '(.man | type) as $typ | if $typ == "string" then .man - elif $typ == "list" then .man | join("\n") - elif $typ == "null" then empty - else "invalid type " + $typ | halt_error end' "${npmWorkspace-.}/package.json") - - local -r nodeModulesPath="$packageOut/node_modules" - - if [ ! -d "$nodeModulesPath" ]; then - if [ -z "${dontNpmPrune-}" ]; then - if ! npm prune --omit=dev --no-save ${npmWorkspace+--workspace=$npmWorkspace} $npmPruneFlags "${npmPruneFlagsArray[@]}" $npmFlags "${npmFlagsArray[@]}"; then - echo - echo - echo "ERROR: npm prune step failed" - echo - echo 'If npm tried to download additional dependencies above, try setting `dontNpmPrune = true`.' - echo - - exit 1 - fi - fi - - find node_modules -maxdepth 1 -type d -empty -delete - - cp -r node_modules "$nodeModulesPath" - fi - - runHook postInstall - - echo "Finished npmInstallHook" -} - -if [ -z "${dontNpmInstall-}" ] && [ -z "${installPhase-}" ]; then - installPhase=npmInstallHook -fi diff --git a/pkgs/build-support/node/fetch-npm-deps/.gitignore b/pkgs/build-support/node/fetch-npm-deps/.gitignore deleted file mode 100644 index ea8c4bf..0000000 --- a/pkgs/build-support/node/fetch-npm-deps/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/target diff --git a/pkgs/build-support/node/fetch-npm-deps/Cargo.lock b/pkgs/build-support/node/fetch-npm-deps/Cargo.lock deleted file mode 100644 index dcabca0..0000000 --- a/pkgs/build-support/node/fetch-npm-deps/Cargo.lock +++ /dev/null @@ -1,1181 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "aho-corasick" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" -dependencies = [ - "memchr", -] - -[[package]] -name = "anstream" -version = "0.6.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" - -[[package]] -name = "anstyle-parse" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" -dependencies = [ - "anstyle", - "windows-sys 0.52.0", -] - -[[package]] -name = "anyhow" -version = "1.0.82" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519" - -[[package]] -name = "async-channel" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" -dependencies = [ - "concurrent-queue", - "event-listener", - "futures-core", -] - -[[package]] -name = "autocfg" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" - -[[package]] -name = "backoff" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" -dependencies = [ - "getrandom", - "instant", - "rand", -] - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "bytes" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" - -[[package]] -name = "camino" -version = "1.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" - -[[package]] -name = "castaway" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6" - -[[package]] -name = "cc" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "colorchoice" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" - -[[package]] -name = "concurrent-queue" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "cpufeatures" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" -dependencies = [ - "libc", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "curl" -version = "0.4.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e2161dd6eba090ff1594084e95fd67aeccf04382ffea77999ea94ed42ec67b6" -dependencies = [ - "curl-sys", - "libc", - "openssl-probe", - "openssl-sys", - "schannel", - "socket2", - "windows-sys 0.52.0", -] - -[[package]] -name = "curl-sys" -version = "0.4.72+curl-8.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29cbdc8314c447d11e8fd156dcdd031d9e02a7a976163e396b548c03153bc9ea" -dependencies = [ - "cc", - "libc", - "libz-sys", - "openssl-sys", - "pkg-config", - "vcpkg", - "windows-sys 0.52.0", -] - -[[package]] -name = "data-encoding" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", -] - -[[package]] -name = "either" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2" - -[[package]] -name = "env_filter" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea" -dependencies = [ - "log", - "regex", -] - -[[package]] -name = "env_logger" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9" -dependencies = [ - "anstream", - "anstyle", - "env_filter", - "humantime", - "log", -] - -[[package]] -name = "errno" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - -[[package]] -name = "fastrand" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures-core" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" - -[[package]] -name = "futures-io" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" - -[[package]] -name = "futures-lite" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand 1.9.0", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - -[[package]] -name = "idna" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "is_executable" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa9acdc6d67b75e626ad644734e8bc6df893d9cd2a834129065d3dd6158ea9c8" -dependencies = [ - "winapi", -] - -[[package]] -name = "isahc" -version = "1.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "334e04b4d781f436dc315cb1e7515bd96826426345d498149e4bde36b67f8ee9" -dependencies = [ - "async-channel", - "castaway", - "crossbeam-utils", - "curl", - "curl-sys", - "event-listener", - "futures-lite", - "http", - "log", - "once_cell", - "polling", - "slab", - "sluice", - "tracing", - "tracing-futures", - "url", - "waker-fn", -] - -[[package]] -name = "itoa" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" - -[[package]] -name = "libc" -version = "0.2.153" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" - -[[package]] -name = "libz-sys" -version = "1.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "linux-raw-sys" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" - -[[package]] -name = "log" -version = "0.4.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" - -[[package]] -name = "memchr" -version = "2.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" - -[[package]] -name = "nix-nar" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5549158a8b179c4fcd06a19f4bcc557db60c9cbd6771add9563f46c8d0325b5" -dependencies = [ - "camino", - "is_executable", - "symlink", - "thiserror", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.102" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "parking" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pin-project" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" - -[[package]] -name = "pkg-config" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" - -[[package]] -name = "polling" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" -dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if", - "concurrent-queue", - "libc", - "log", - "pin-project-lite", - "windows-sys 0.48.0", -] - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "prefetch-npm-deps" -version = "0.1.0" -dependencies = [ - "anyhow", - "backoff", - "data-encoding", - "digest", - "env_logger", - "isahc", - "log", - "nix-nar", - "rayon", - "serde", - "serde_json", - "sha1", - "sha2", - "tempfile", - "url", - "walkdir", -] - -[[package]] -name = "proc-macro2" -version = "1.0.81" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rayon" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "regex" -version = "1.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" - -[[package]] -name = "rustix" -version = "0.38.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" -dependencies = [ - "bitflags 2.5.0", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.52.0", -] - -[[package]] -name = "ryu" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "schannel" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "serde" -version = "1.0.198" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.198" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.116" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "sluice" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5" -dependencies = [ - "async-channel", - "futures-core", - "futures-io", -] - -[[package]] -name = "socket2" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "symlink" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7973cce6668464ea31f176d85b13c7ab3bba2cb3b77a2ed26abd7801688010a" - -[[package]] -name = "syn" -version = "2.0.59" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a6531ffc7b071655e4ce2e04bd464c4830bb585a61cabb96cf808f05172615a" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "tempfile" -version = "3.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" -dependencies = [ - "cfg-if", - "fastrand 2.0.2", - "rustix", - "windows-sys 0.52.0", -] - -[[package]] -name = "thiserror" -version = "1.0.58" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.58" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tracing" -version = "0.1.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" -dependencies = [ - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tracing-core" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" -dependencies = [ - "once_cell", -] - -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "unicode-bidi" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-normalization" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "url" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", -] - -[[package]] -name = "utf8parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "waker-fn" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" - -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.5", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" -dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" diff --git a/pkgs/build-support/node/fetch-npm-deps/Cargo.toml b/pkgs/build-support/node/fetch-npm-deps/Cargo.toml deleted file mode 100644 index dcb7e28..0000000 --- a/pkgs/build-support/node/fetch-npm-deps/Cargo.toml +++ /dev/null @@ -1,24 +0,0 @@ -[package] -name = "prefetch-npm-deps" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -anyhow = "1.0.82" -backoff = "0.4.0" -data-encoding = "2.5.0" -digest = "0.10.7" -env_logger = "0.11.3" -isahc = { version = "1.7.2", default_features = false } -log = "0.4.21" -nix-nar = "0.3.0" -rayon = "1.10.0" -serde = { version = "1.0.198", features = ["derive"] } -serde_json = "1.0.116" -sha1 = "0.10.6" -sha2 = "0.10.8" -tempfile = "3.10.1" -url = { version = "2.5.0", features = ["serde"] } -walkdir = "2.5.0" diff --git a/pkgs/build-support/node/fetch-npm-deps/default.nix b/pkgs/build-support/node/fetch-npm-deps/default.nix deleted file mode 100644 index d86fc90..0000000 --- a/pkgs/build-support/node/fetch-npm-deps/default.nix +++ /dev/null @@ -1,207 +0,0 @@ -{ lib, stdenvNoCC, rustPlatform, makeWrapper, pkg-config, curl, gnutar, gzip, testers, fetchurl, cacert, prefetch-npm-deps, fetchNpmDeps }: - -{ - prefetch-npm-deps = rustPlatform.buildRustPackage { - pname = "prefetch-npm-deps"; - version = (lib.importTOML ./Cargo.toml).package.version; - - src = lib.cleanSourceWith { - src = ./.; - filter = name: type: - let - name' = builtins.baseNameOf name; - in - name' != "default.nix" && name' != "target"; - }; - - cargoLock.lockFile = ./Cargo.lock; - - nativeBuildInputs = [ makeWrapper pkg-config ]; - buildInputs = [ curl ]; - - postInstall = '' - wrapProgram "$out/bin/prefetch-npm-deps" --prefix PATH : ${lib.makeBinPath [ gnutar gzip ]} - ''; - - passthru.tests = - let - makeTestSrc = { name, src }: stdenvNoCC.mkDerivation { - name = "${name}-src"; - - inherit src; - - 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; - - src = makeTestSrc { inherit name src; }; - }; - in - { - lockfileV1 = makeTest { - name = "lockfile-v1"; - - src = fetchurl { - url = "https://raw.githubusercontent.com/jellyfin/jellyfin-web/v10.8.4/package-lock.json"; - hash = "sha256-uQmc+S+V1co1Rfc4d82PpeXjmd1UqdsG492ADQFcZGA="; - }; - - hash = "sha256-wca1QvxUw3OrLStfYN9Co6oVBR1LbfcNUKlDqvObps4="; - }; - - lockfileV2 = makeTest { - name = "lockfile-v2"; - - src = fetchurl { - url = "https://raw.githubusercontent.com/jesec/flood/v4.7.0/package-lock.json"; - hash = "sha256-qS29tq5QPnGxV+PU40VgMAtdwVLtLyyhG2z9GMeYtC4="; - }; - - hash = "sha256-tuEfyePwlOy2/mOPdXbqJskO6IowvAP4DWg8xSZwbJw="; - }; - - hashPrecedence = makeTest { - name = "hash-precedence"; - - src = fetchurl { - url = "https://raw.githubusercontent.com/matrix-org/matrix-appservice-irc/0.34.0/package-lock.json"; - hash = "sha256-1+0AQw9EmbHiMPA/H8OP8XenhrkhLRYBRhmd1cNPFjk="; - }; - - hash = "sha256-oItUls7AXcCECuyA+crQO6B0kv4toIr8pBubNwB7kAM="; - }; - - hostedGitDeps = makeTest { - name = "hosted-git-deps"; - - src = fetchurl { - url = "https://cyberchaos.dev/yuka/trainsearch/-/raw/e3cba6427e8ecfd843d0f697251ddaf5e53c2327/package-lock.json"; - hash = "sha256-X9mCwPqV5yP0S2GonNvpYnLSLJMd/SUIked+hMRxDpA="; - }; - - hash = "sha256-tEdElWJ+KBTxBobzXBpPopQSwK2usGW/it1+yfbVzBw="; - }; - - linkDependencies = makeTest { - name = "link-dependencies"; - - src = fetchurl { - url = "https://raw.githubusercontent.com/evcc-io/evcc/0.106.3/package-lock.json"; - hash = "sha256-6ZTBMyuyPP/63gpQugggHhKVup6OB4hZ2rmSvPJ0yEs="; - }; - - hash = "sha256-VzQhArHoznYSXUT7l9HkJV4yoSOmoP8eYTLel1QwmB4="; - }; - - # This package has no resolved deps whatsoever, which will not actually work but does test the forceEmptyCache option. - emptyCache = makeTest { - name = "empty-cache"; - - src = fetchurl { - url = "https://raw.githubusercontent.com/bufbuild/protobuf-es/v1.2.1/package-lock.json"; - hash = "sha256-UdBUEb4YRHsbvyjymIyjemJEiaI9KQRirqt+SFSK0wA="; - }; - - hash = "sha256-Cdv40lQjRszzJtJydZt25uYfcJVeJGwH54A+agdH9wI="; - - forceEmptyCache = true; - }; - - # This package contains both hosted Git shorthand, and a bundled dependency that happens to override an existing one. - etherpadLite1818 = makeTest { - name = "etherpad-lite-1.8.18"; - - src = fetchurl { - url = "https://raw.githubusercontent.com/ether/etherpad-lite/1.8.18/src/package-lock.json"; - hash = "sha256-1fGNxYJi1I4cXK/jinNG+Y6tPEOhP3QAqWOBEQttS9E="; - }; - - hash = "sha256-+KA8/orSBJ4EhuSyQO8IKSxsN/FAsYU3lOzq+awuxNQ="; - - forceGitDeps = true; - }; - - # This package has a lockfile v1 git dependency with no `dependencies` attribute, since it sementically has no dependencies. - jitsiMeet9111 = makeTest { - name = "jitsi-meet-9111"; - - src = fetchurl { - url = "https://raw.githubusercontent.com/jitsi/jitsi-meet/stable/jitsi-meet_9111/package-lock.json"; - hash = "sha256-NU+eQD4WZ4BMur8uX79uk8wUPsZvIT02KhPWHTmaihk="; - }; - - hash = "sha256-FhxlJ0HdJMPiWe7+n1HaGLWOr/2HJEPwiS65uqXZM8Y="; - }; - }; - - meta = with lib; { - description = "Prefetch dependencies from npm (for use with `fetchNpmDeps`)"; - mainProgram = "prefetch-npm-deps"; - maintainers = with maintainers; [ lilyinstarlight winter ]; - license = licenses.mit; - }; - }; - - fetchNpmDeps = - { name ? "npm-deps" - , hash ? "" - , forceGitDeps ? false - , forceEmptyCache ? false - , ... - } @ args: - let - hash_ = - 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; - - nativeBuildInputs = [ prefetch-npm-deps ]; - - 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 - - exit 1 - fi - - prefetch-npm-deps package-lock.json $out - - runHook postBuild - ''; - - 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" ]; - - 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_); -} diff --git a/pkgs/build-support/node/fetch-npm-deps/src/cacache.rs b/pkgs/build-support/node/fetch-npm-deps/src/cacache.rs deleted file mode 100644 index 403c909..0000000 --- a/pkgs/build-support/node/fetch-npm-deps/src/cacache.rs +++ /dev/null @@ -1,128 +0,0 @@ -use data_encoding::BASE64; -use digest::{Digest, Update}; -use serde::{Deserialize, Serialize}; -use sha1::Sha1; -use sha2::{Sha256, Sha512}; -use std::{ - fmt::Write as FmtWrite, - fs::{self, File}, - io::Write, - path::PathBuf, -}; -use url::Url; - -#[allow(clippy::struct_field_names)] -#[derive(Serialize, Deserialize)] -pub(super) struct Key { - pub(super) key: String, - pub(super) integrity: String, - pub(super) time: u8, - pub(super) size: usize, - pub(super) metadata: Metadata, -} - -#[derive(Serialize, Deserialize)] -pub(super) struct Metadata { - pub(super) url: Url, - pub(super) options: Options, -} - -#[derive(Serialize, Deserialize)] -pub(super) struct Options { - pub(super) compress: bool, -} - -pub struct Cache(PathBuf); - -fn push_hash_segments(path: &mut PathBuf, hash: &str) { - path.push(&hash[0..2]); - path.push(&hash[2..4]); - path.push(&hash[4..]); -} - -impl Cache { - pub fn new(path: PathBuf) -> Cache { - Cache(path) - } - - pub fn init(&self) -> anyhow::Result<()> { - fs::create_dir_all(self.0.join("content-v2"))?; - fs::create_dir_all(self.0.join("index-v5"))?; - - Ok(()) - } - - pub fn put( - &self, - key: String, - url: Url, - data: &[u8], - integrity: Option, - ) -> anyhow::Result<()> { - let (algo, hash, integrity) = if let Some(integrity) = integrity { - let (algo, hash) = integrity - .split_once('-') - .expect("hash should be SRI format"); - - (algo.to_string(), BASE64.decode(hash.as_bytes())?, integrity) - } else { - let hash = Sha512::new().chain(data).finalize(); - - ( - String::from("sha512"), - hash.to_vec(), - format!("sha512-{}", BASE64.encode(&hash)), - ) - }; - - let content_path = { - let mut p = self.0.join("content-v2"); - - p.push(algo); - - push_hash_segments( - &mut p, - &hash.into_iter().fold(String::new(), |mut out, n| { - let _ = write!(out, "{n:02x}"); - out - }), - ); - - p - }; - - fs::create_dir_all(content_path.parent().unwrap())?; - - fs::write(content_path, data)?; - - let index_path = { - let mut p = self.0.join("index-v5"); - - push_hash_segments( - &mut p, - &format!("{:x}", Sha256::new().chain(&key).finalize()), - ); - - p - }; - - fs::create_dir_all(index_path.parent().unwrap())?; - - let data = serde_json::to_string(&Key { - key, - integrity, - time: 0, - size: data.len(), - metadata: Metadata { - url, - options: Options { compress: true }, - }, - })?; - - let mut file = File::options().append(true).create(true).open(index_path)?; - - write!(file, "{:x}\t{data}", Sha1::new().chain(&data).finalize())?; - - Ok(()) - } -} diff --git a/pkgs/build-support/node/fetch-npm-deps/src/main.rs b/pkgs/build-support/node/fetch-npm-deps/src/main.rs deleted file mode 100644 index cb06d32..0000000 --- a/pkgs/build-support/node/fetch-npm-deps/src/main.rs +++ /dev/null @@ -1,429 +0,0 @@ -#![warn(clippy::pedantic)] - -use crate::cacache::{Cache, Key}; -use anyhow::{anyhow, bail}; -use rayon::prelude::*; -use serde_json::{Map, Value}; -use std::{ - collections::HashMap, - env, fs, - path::{Path, PathBuf}, - process, -}; -use tempfile::tempdir; -use url::Url; -use walkdir::WalkDir; - -mod cacache; -mod parse; -mod util; - -fn cache_map_path() -> Option { - env::var_os("CACHE_MAP_PATH").map(PathBuf::from) -} - -/// `fixup_lockfile` rewrites `integrity` hashes to match cache and removes the `integrity` field from Git dependencies. -/// -/// Sometimes npm has multiple instances of a given `resolved` URL that have different types of `integrity` hashes (e.g. SHA-1 -/// and SHA-512) in the lockfile. Given we only cache one version of these, the `integrity` field must be normalized to the hash -/// we cache as (which is the strongest available one). -/// -/// Git dependencies from specific providers can be retrieved from those providers' automatic tarball features. -/// When these dependencies are specified with a commit identifier, npm generates a tarball, and inserts the integrity hash of that -/// tarball into the lockfile. -/// -/// Thus, we remove this hash, to replace it with our own determinstic copies of dependencies from hosted Git providers. -/// -/// If no fixups were performed, `None` is returned and the lockfile structure should be left as-is. If fixups were performed, the -/// `dependencies` key in v2 lockfiles designed for backwards compatibility with v1 parsers is removed because of inconsistent data. -fn fixup_lockfile( - mut lock: Map, - cache: &Option>, -) -> anyhow::Result>> { - let mut fixed = false; - - match lock - .get("lockfileVersion") - .ok_or_else(|| anyhow!("couldn't get lockfile version"))? - .as_i64() - .ok_or_else(|| anyhow!("lockfile version isn't an int"))? - { - 1 => fixup_v1_deps( - lock.get_mut("dependencies") - .unwrap() - .as_object_mut() - .unwrap(), - cache, - &mut fixed, - ), - 2 | 3 => { - for package in lock - .get_mut("packages") - .ok_or_else(|| anyhow!("couldn't get packages"))? - .as_object_mut() - .ok_or_else(|| anyhow!("packages isn't a map"))? - .values_mut() - { - if let Some(Value::String(resolved)) = package.get("resolved") { - if let Some(Value::String(integrity)) = package.get("integrity") { - if resolved.starts_with("git+ssh://") { - fixed = true; - - package - .as_object_mut() - .ok_or_else(|| anyhow!("package isn't a map"))? - .remove("integrity"); - } else if let Some(cache_hashes) = cache { - let cache_hash = cache_hashes - .get(resolved) - .expect("dependency should have a hash"); - - if integrity != cache_hash { - fixed = true; - - *package - .as_object_mut() - .ok_or_else(|| anyhow!("package isn't a map"))? - .get_mut("integrity") - .unwrap() = Value::String(cache_hash.clone()); - } - } - } - } - } - - if fixed { - lock.remove("dependencies"); - } - } - v => bail!("unsupported lockfile version {v}"), - } - - if fixed { - Ok(Some(lock)) - } else { - Ok(None) - } -} - -// Recursive helper to fixup v1 lockfile deps -fn fixup_v1_deps( - dependencies: &mut Map, - cache: &Option>, - fixed: &mut bool, -) { - for dep in dependencies.values_mut() { - if let Some(Value::String(resolved)) = dep - .as_object() - .expect("v1 dep must be object") - .get("resolved") - { - if let Some(Value::String(integrity)) = dep - .as_object() - .expect("v1 dep must be object") - .get("integrity") - { - if resolved.starts_with("git+ssh://") { - *fixed = true; - - dep.as_object_mut() - .expect("v1 dep must be object") - .remove("integrity"); - } else if let Some(cache_hashes) = cache { - let cache_hash = cache_hashes - .get(resolved) - .expect("dependency should have a hash"); - - if integrity != cache_hash { - *fixed = true; - - *dep.as_object_mut() - .expect("v1 dep must be object") - .get_mut("integrity") - .unwrap() = Value::String(cache_hash.clone()); - } - } - } - } - - if let Some(Value::Object(more_deps)) = dep.as_object_mut().unwrap().get_mut("dependencies") - { - fixup_v1_deps(more_deps, cache, fixed); - } - } -} - -fn map_cache() -> anyhow::Result> { - let mut hashes = HashMap::new(); - - let content_path = Path::new(&env::var_os("npmDeps").unwrap()).join("_cacache/index-v5"); - - for entry in WalkDir::new(content_path) { - let entry = entry?; - - if entry.file_type().is_file() { - let content = fs::read_to_string(entry.path())?; - let key: Key = serde_json::from_str(content.split_ascii_whitespace().nth(1).unwrap())?; - - hashes.insert(key.metadata.url, key.integrity); - } - } - - Ok(hashes) -} - -fn main() -> anyhow::Result<()> { - env_logger::init(); - - let args = env::args().collect::>(); - - if args.len() < 2 { - println!("usage: {} ", args[0]); - println!(); - println!("Prefetches npm dependencies for usage by fetchNpmDeps."); - - process::exit(1); - } - - if let Ok(jobs) = env::var("NIX_BUILD_CORES") { - if !jobs.is_empty() { - rayon::ThreadPoolBuilder::new() - .num_threads( - jobs.parse() - .expect("NIX_BUILD_CORES must be a whole number"), - ) - .build_global() - .unwrap(); - } - } - - if args[1] == "--fixup-lockfile" { - let lock = serde_json::from_str(&fs::read_to_string(&args[2])?)?; - - let cache = cache_map_path() - .map(|map_path| Ok::<_, anyhow::Error>(serde_json::from_slice(&fs::read(map_path)?)?)) - .transpose()?; - - if let Some(fixed) = fixup_lockfile(lock, &cache)? { - println!("Fixing lockfile"); - - fs::write(&args[2], serde_json::to_string(&fixed)?)?; - } - - return Ok(()); - } else if args[1] == "--map-cache" { - let map = map_cache()?; - - fs::write( - cache_map_path().expect("CACHE_MAP_PATH environment variable must be set"), - serde_json::to_string(&map)?, - )?; - - return Ok(()); - } - - let lock_content = fs::read_to_string(&args[1])?; - - let out_tempdir; - - let (out, print_hash) = if let Some(path) = args.get(2) { - (Path::new(path), false) - } else { - out_tempdir = tempdir()?; - - (out_tempdir.path(), true) - }; - - let packages = parse::lockfile( - &lock_content, - env::var("FORCE_GIT_DEPS").is_ok(), - env::var("FORCE_EMPTY_CACHE").is_ok(), - )?; - - let cache = Cache::new(out.join("_cacache")); - cache.init()?; - - packages.into_par_iter().try_for_each(|package| { - eprintln!("{}", package.name); - - let tarball = package - .tarball() - .map_err(|e| anyhow!("couldn't fetch {} at {}: {e:?}", package.name, package.url))?; - let integrity = package.integrity().map(ToString::to_string); - - cache - .put( - format!("make-fetch-happen:request-cache:{}", package.url), - package.url, - &tarball, - integrity, - ) - .map_err(|e| anyhow!("couldn't insert cache entry for {}: {e:?}", package.name))?; - - Ok::<_, anyhow::Error>(()) - })?; - - fs::write(out.join("package-lock.json"), lock_content)?; - - if print_hash { - println!("{}", util::make_sri_hash(out)?); - } - - Ok(()) -} - -#[cfg(test)] -mod tests { - use std::collections::HashMap; - - use super::fixup_lockfile; - use serde_json::json; - - #[test] - fn lockfile_fixup() -> anyhow::Result<()> { - let input = json!({ - "lockfileVersion": 2, - "name": "foo", - "packages": { - "": { - - }, - "foo": { - "resolved": "https://github.com/NixOS/nixpkgs", - "integrity": "sha1-aaa" - }, - "bar": { - "resolved": "git+ssh://git@github.com/NixOS/nixpkgs.git", - "integrity": "sha512-aaa" - }, - "foo-bad": { - "resolved": "foo", - "integrity": "sha1-foo" - }, - "foo-good": { - "resolved": "foo", - "integrity": "sha512-foo" - }, - } - }); - - let expected = json!({ - "lockfileVersion": 2, - "name": "foo", - "packages": { - "": { - - }, - "foo": { - "resolved": "https://github.com/NixOS/nixpkgs", - "integrity": "" - }, - "bar": { - "resolved": "git+ssh://git@github.com/NixOS/nixpkgs.git", - }, - "foo-bad": { - "resolved": "foo", - "integrity": "sha512-foo" - }, - "foo-good": { - "resolved": "foo", - "integrity": "sha512-foo" - }, - } - }); - - let mut hashes = HashMap::new(); - - hashes.insert( - String::from("https://github.com/NixOS/nixpkgs"), - String::new(), - ); - - hashes.insert( - String::from("git+ssh://git@github.com/NixOS/nixpkgs.git"), - String::new(), - ); - - hashes.insert(String::from("foo"), String::from("sha512-foo")); - - assert_eq!( - fixup_lockfile(input.as_object().unwrap().clone(), &Some(hashes))?, - Some(expected.as_object().unwrap().clone()) - ); - - Ok(()) - } - - #[test] - fn lockfile_v1_fixup() -> anyhow::Result<()> { - let input = json!({ - "lockfileVersion": 1, - "name": "foo", - "dependencies": { - "foo": { - "resolved": "https://github.com/NixOS/nixpkgs", - "integrity": "sha512-aaa" - }, - "foo-good": { - "resolved": "foo", - "integrity": "sha512-foo" - }, - "bar": { - "resolved": "git+ssh://git@github.com/NixOS/nixpkgs.git", - "integrity": "sha512-bbb", - "dependencies": { - "foo-bad": { - "resolved": "foo", - "integrity": "sha1-foo" - }, - }, - }, - } - }); - - let expected = json!({ - "lockfileVersion": 1, - "name": "foo", - "dependencies": { - "foo": { - "resolved": "https://github.com/NixOS/nixpkgs", - "integrity": "" - }, - "foo-good": { - "resolved": "foo", - "integrity": "sha512-foo" - }, - "bar": { - "resolved": "git+ssh://git@github.com/NixOS/nixpkgs.git", - "dependencies": { - "foo-bad": { - "resolved": "foo", - "integrity": "sha512-foo" - }, - }, - }, - } - }); - - let mut hashes = HashMap::new(); - - hashes.insert( - String::from("https://github.com/NixOS/nixpkgs"), - String::new(), - ); - - hashes.insert( - String::from("git+ssh://git@github.com/NixOS/nixpkgs.git"), - String::new(), - ); - - hashes.insert(String::from("foo"), String::from("sha512-foo")); - - assert_eq!( - fixup_lockfile(input.as_object().unwrap().clone(), &Some(hashes))?, - Some(expected.as_object().unwrap().clone()) - ); - - Ok(()) - } -} diff --git a/pkgs/build-support/node/fetch-npm-deps/src/parse/lock.rs b/pkgs/build-support/node/fetch-npm-deps/src/parse/lock.rs deleted file mode 100644 index 49bba87..0000000 --- a/pkgs/build-support/node/fetch-npm-deps/src/parse/lock.rs +++ /dev/null @@ -1,370 +0,0 @@ -use anyhow::{anyhow, bail, Context}; -use rayon::slice::ParallelSliceMut; -use serde::{ - de::{self, Visitor}, - Deserialize, Deserializer, -}; -use std::{ - cmp::Ordering, - collections::{HashMap, HashSet}, - fmt, -}; -use url::Url; - -pub(super) fn packages(content: &str) -> anyhow::Result> { - let lockfile: Lockfile = serde_json::from_str(content)?; - - let mut packages = match lockfile.version { - 1 => { - let initial_url = get_initial_url()?; - - to_new_packages(lockfile.dependencies.unwrap_or_default(), &initial_url)? - } - 2 | 3 => lockfile - .packages - .unwrap_or_default() - .into_iter() - .filter(|(n, p)| !n.is_empty() && matches!(p.resolved, Some(UrlOrString::Url(_)))) - .map(|(n, p)| Package { name: Some(n), ..p }) - .collect(), - _ => bail!( - "We don't support lockfile version {}, please file an issue.", - lockfile.version - ), - }; - - packages.par_sort_by(|x, y| { - x.resolved - .partial_cmp(&y.resolved) - .expect("resolved should be comparable") - .then( - // v1 lockfiles can contain multiple references to the same version of a package, with - // different integrity values (e.g. a SHA-1 and a SHA-512 in one, but just a SHA-512 in another) - y.integrity - .partial_cmp(&x.integrity) - .expect("integrity should be comparable"), - ) - }); - - packages.dedup_by(|x, y| x.resolved == y.resolved); - - Ok(packages) -} - -#[derive(Deserialize)] -struct Lockfile { - #[serde(rename = "lockfileVersion")] - version: u8, - dependencies: Option>, - packages: Option>, -} - -#[derive(Deserialize)] -struct OldPackage { - version: UrlOrString, - #[serde(default)] - bundled: bool, - resolved: Option, - integrity: Option, - dependencies: Option>, -} - -#[derive(Debug, Deserialize, PartialEq, Eq)] -pub(super) struct Package { - #[serde(default)] - pub(super) name: Option, - pub(super) resolved: Option, - pub(super) integrity: Option, -} - -#[derive(Debug, Deserialize, PartialEq, Eq, PartialOrd, Ord)] -#[serde(untagged)] -pub(super) enum UrlOrString { - Url(Url), - String(String), -} - -impl fmt::Display for UrlOrString { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - match self { - UrlOrString::Url(url) => url.fmt(f), - UrlOrString::String(string) => string.fmt(f), - } - } -} - -#[derive(Debug, PartialEq, Eq)] -pub struct HashCollection(HashSet); - -impl HashCollection { - pub fn from_str(s: impl AsRef) -> anyhow::Result { - let hashes = s - .as_ref() - .split_ascii_whitespace() - .map(Hash::new) - .collect::>()?; - - Ok(HashCollection(hashes)) - } - - pub fn into_best(self) -> Option { - self.0.into_iter().max() - } -} - -impl PartialOrd for HashCollection { - fn partial_cmp(&self, other: &Self) -> Option { - let lhs = self.0.iter().max()?; - let rhs = other.0.iter().max()?; - - lhs.partial_cmp(rhs) - } -} - -impl<'de> Deserialize<'de> for HashCollection { - fn deserialize(deserializer: D) -> Result - where - D: Deserializer<'de>, - { - deserializer.deserialize_string(HashCollectionVisitor) - } -} - -struct HashCollectionVisitor; - -impl<'de> Visitor<'de> for HashCollectionVisitor { - type Value = HashCollection; - - fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { - formatter.write_str("a single SRI hash or a collection of them (separated by spaces)") - } - - fn visit_str(self, value: &str) -> Result - where - E: de::Error, - { - HashCollection::from_str(value).map_err(E::custom) - } -} - -#[derive(Clone, Debug, Deserialize, PartialEq, Eq, Hash)] -pub struct Hash(String); - -// Hash algorithms, in ascending preference. -const ALGOS: &[&str] = &["sha1", "sha512"]; - -impl Hash { - fn new(s: impl AsRef) -> anyhow::Result { - let algo = s - .as_ref() - .split_once('-') - .ok_or_else(|| anyhow!("expected SRI hash, got {:?}", s.as_ref()))? - .0; - - if ALGOS.iter().any(|&a| algo == a) { - Ok(Hash(s.as_ref().to_string())) - } else { - Err(anyhow!("unknown hash algorithm {algo:?}")) - } - } - - pub fn as_str(&self) -> &str { - &self.0 - } -} - -impl fmt::Display for Hash { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - self.as_str().fmt(f) - } -} - -#[allow(clippy::non_canonical_partial_ord_impl)] -impl PartialOrd for Hash { - fn partial_cmp(&self, other: &Hash) -> Option { - let lhs = self.0.split_once('-')?.0; - let rhs = other.0.split_once('-')?.0; - - ALGOS - .iter() - .position(|&s| lhs == s)? - .partial_cmp(&ALGOS.iter().position(|&s| rhs == s)?) - } -} - -impl Ord for Hash { - fn cmp(&self, other: &Hash) -> Ordering { - self.partial_cmp(other).unwrap() - } -} - -#[allow(clippy::case_sensitive_file_extension_comparisons)] -fn to_new_packages( - old_packages: HashMap, - initial_url: &Url, -) -> anyhow::Result> { - let mut new = Vec::new(); - - for (name, mut package) in old_packages { - // In some cases, a bundled dependency happens to have the same version as a non-bundled one, causing - // the bundled one without a URL to override the entry for the non-bundled instance, which prevents the - // dependency from being downloaded. - if package.bundled { - continue; - } - - if let UrlOrString::Url(v) = &package.version { - if v.scheme() == "npm" { - if let Some(UrlOrString::Url(ref url)) = &package.resolved { - package.version = UrlOrString::Url(url.clone()); - } - } else { - for (scheme, host) in [ - ("github", "github.com"), - ("bitbucket", "bitbucket.org"), - ("gitlab", "gitlab.com"), - ] { - if v.scheme() == scheme { - package.version = { - let mut new_url = initial_url.clone(); - - new_url.set_host(Some(host))?; - - if v.path().ends_with(".git") { - new_url.set_path(v.path()); - } else { - new_url.set_path(&format!("{}.git", v.path())); - } - - new_url.set_fragment(v.fragment()); - - UrlOrString::Url(new_url) - }; - - break; - } - } - } - } - - new.push(Package { - name: Some(name), - resolved: if matches!(package.version, UrlOrString::Url(_)) { - Some(package.version) - } else { - package.resolved - }, - integrity: package.integrity, - }); - - if let Some(dependencies) = package.dependencies { - new.append(&mut to_new_packages(dependencies, initial_url)?); - } - } - - Ok(new) -} - -fn get_initial_url() -> anyhow::Result { - Url::parse("git+ssh://git@a.b").context("initial url should be valid") -} - -#[cfg(test)] -mod tests { - use super::{ - get_initial_url, packages, to_new_packages, Hash, HashCollection, OldPackage, Package, - UrlOrString, - }; - use std::{ - cmp::Ordering, - collections::{HashMap, HashSet}, - }; - use url::Url; - - #[test] - fn git_shorthand_v1() -> anyhow::Result<()> { - let old = { - let mut o = HashMap::new(); - o.insert( - String::from("sqlite3"), - OldPackage { - version: UrlOrString::Url( - Url::parse( - "github:mapbox/node-sqlite3#593c9d498be2510d286349134537e3bf89401c4a", - ) - .unwrap(), - ), - bundled: false, - resolved: None, - integrity: None, - dependencies: None, - }, - ); - o - }; - - let initial_url = get_initial_url()?; - - let new = to_new_packages(old, &initial_url)?; - - assert_eq!(new.len(), 1, "new packages map should contain 1 value"); - assert_eq!(new[0], Package { - name: Some(String::from("sqlite3")), - resolved: Some(UrlOrString::Url(Url::parse("git+ssh://git@github.com/mapbox/node-sqlite3.git#593c9d498be2510d286349134537e3bf89401c4a").unwrap())), - integrity: None - }); - - Ok(()) - } - - #[test] - fn hash_preference() { - assert_eq!( - Hash(String::from("sha1-foo")).partial_cmp(&Hash(String::from("sha512-foo"))), - Some(Ordering::Less) - ); - - assert_eq!( - HashCollection({ - let mut set = HashSet::new(); - set.insert(Hash(String::from("sha512-foo"))); - set.insert(Hash(String::from("sha1-bar"))); - set - }) - .into_best(), - Some(Hash(String::from("sha512-foo"))) - ); - } - - #[test] - fn parse_lockfile_correctly() { - let packages = packages( - r#"{ - "name": "node-ddr", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "string-width-cjs": { - "version": "npm:string-width@4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } - } - }"#).unwrap(); - - assert_eq!(packages.len(), 1); - assert_eq!( - packages[0].resolved, - Some(UrlOrString::Url( - Url::parse("https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz") - .unwrap() - )) - ); - } -} diff --git a/pkgs/build-support/node/fetch-npm-deps/src/parse/mod.rs b/pkgs/build-support/node/fetch-npm-deps/src/parse/mod.rs deleted file mode 100644 index 0bca33f..0000000 --- a/pkgs/build-support/node/fetch-npm-deps/src/parse/mod.rs +++ /dev/null @@ -1,353 +0,0 @@ -use anyhow::{anyhow, bail, Context}; -use lock::UrlOrString; -use log::{debug, info}; -use rayon::prelude::*; -use serde_json::{Map, Value}; -use std::{ - fs, - io::Write, - process::{Command, Stdio}, -}; -use tempfile::{tempdir, TempDir}; -use url::Url; - -use crate::util; - -pub mod lock; - -pub fn lockfile( - content: &str, - force_git_deps: bool, - force_empty_cache: bool, -) -> anyhow::Result> { - debug!("parsing lockfile with contents:\n{content}"); - - let mut packages = lock::packages(content) - .context("failed to extract packages from lockfile")? - .into_par_iter() - .map(|p| { - let n = p.name.clone().unwrap(); - - Package::from_lock(p).with_context(|| format!("failed to parse data for {n}")) - }) - .collect::>>()?; - - if packages.is_empty() && !force_empty_cache { - bail!("No cacheable dependencies were found. Please inspect the upstream `package-lock.json` file and ensure that remote dependencies have `resolved` URLs and `integrity` hashes. If the lockfile is missing this data, attempt to get upstream to fix it via a tool like . If generating an empty cache is intentional and you would like to do it anyways, set `forceEmptyCache = true`."); - } - - let mut new = Vec::new(); - - for pkg in packages - .iter() - .filter(|p| matches!(p.specifics, Specifics::Git { .. })) - { - let dir = match &pkg.specifics { - Specifics::Git { workdir } => workdir, - Specifics::Registry { .. } => unimplemented!(), - }; - - let path = dir.path().join("package"); - - info!("recursively parsing lockfile for {} at {path:?}", pkg.name); - - let lockfile_contents = fs::read_to_string(path.join("package-lock.json")); - - let package_json_path = path.join("package.json"); - let mut package_json: Map = - serde_json::from_str(&fs::read_to_string(package_json_path)?)?; - - if let Some(scripts) = package_json - .get_mut("scripts") - .and_then(Value::as_object_mut) - { - // https://github.com/npm/pacote/blob/272edc1bac06991fc5f95d06342334bbacfbaa4b/lib/git.js#L166-L172 - for typ in [ - "postinstall", - "build", - "preinstall", - "install", - "prepack", - "prepare", - ] { - if scripts.contains_key(typ) && lockfile_contents.is_err() && !force_git_deps { - bail!("Git dependency {} contains install scripts, but has no lockfile, which is something that will probably break. Open an issue if you can't feasibly patch this dependency out, and we'll come up with a workaround.\nIf you'd like to attempt to try to use this dependency anyways, set `forceGitDeps = true`.", pkg.name); - } - } - } - - if let Ok(lockfile_contents) = lockfile_contents { - new.append(&mut lockfile( - &lockfile_contents, - force_git_deps, - // force_empty_cache is turned on here since recursively parsed lockfiles should be - // allowed to have an empty cache without erroring by default - true, - )?); - } - } - - packages.append(&mut new); - - packages.par_sort_by(|x, y| { - x.url - .partial_cmp(&y.url) - .expect("resolved should be comparable") - }); - - packages.dedup_by(|x, y| x.url == y.url); - - Ok(packages) -} - -#[derive(Debug)] -pub struct Package { - pub name: String, - pub url: Url, - specifics: Specifics, -} - -#[derive(Debug)] -enum Specifics { - Registry { integrity: lock::Hash }, - Git { workdir: TempDir }, -} - -impl Package { - fn from_lock(pkg: lock::Package) -> anyhow::Result { - let mut resolved = match pkg - .resolved - .expect("at this point, packages should have URLs") - { - UrlOrString::Url(u) => u, - UrlOrString::String(_) => panic!("at this point, all packages should have URLs"), - }; - - let specifics = match get_hosted_git_url(&resolved)? { - Some(hosted) => { - let body = util::get_url_body_with_retry(&hosted)?; - - let workdir = tempdir()?; - - let tar_path = workdir.path().join("package"); - - fs::create_dir(&tar_path)?; - - let mut cmd = Command::new("tar") - .args(["--extract", "--gzip", "--strip-components=1", "-C"]) - .arg(&tar_path) - .stdin(Stdio::piped()) - .spawn()?; - - cmd.stdin.take().unwrap().write_all(&body)?; - - let exit = cmd.wait()?; - - if !exit.success() { - bail!( - "failed to extract tarball for {}: tar exited with status code {}", - pkg.name.unwrap(), - exit.code().unwrap() - ); - } - - resolved = hosted; - - Specifics::Git { workdir } - } - None => Specifics::Registry { - integrity: pkg - .integrity - .expect("non-git dependencies should have associated integrity") - .into_best() - .expect("non-git dependencies should have non-empty associated integrity"), - }, - }; - - Ok(Package { - name: pkg.name.unwrap(), - url: resolved, - specifics, - }) - } - - pub fn tarball(&self) -> anyhow::Result> { - match &self.specifics { - Specifics::Registry { .. } => Ok(util::get_url_body_with_retry(&self.url)?), - Specifics::Git { workdir } => Ok(Command::new("tar") - .args([ - "--sort=name", - "--mtime=@0", - "--owner=0", - "--group=0", - "--numeric-owner", - "--format=gnu", - "-I", - "gzip -n -9", - "--create", - "-C", - ]) - .arg(workdir.path()) - .arg("package") - .output()? - .stdout), - } - } - - pub fn integrity(&self) -> Option<&lock::Hash> { - match &self.specifics { - Specifics::Registry { integrity } => Some(integrity), - Specifics::Git { .. } => None, - } - } -} - -#[allow(clippy::case_sensitive_file_extension_comparisons)] -fn get_hosted_git_url(url: &Url) -> anyhow::Result> { - if ["git", "git+ssh", "git+https", "ssh"].contains(&url.scheme()) { - let mut s = url - .path_segments() - .ok_or_else(|| anyhow!("bad URL: {url}"))?; - - let mut get_url = || match url.host_str()? { - "github.com" => { - let user = s.next()?; - let mut project = s.next()?; - let typ = s.next(); - let mut commit = s.next(); - - if typ.is_none() { - commit = url.fragment(); - } else if typ.is_some() && typ != Some("tree") { - return None; - } - - if project.ends_with(".git") { - project = project.strip_suffix(".git")?; - } - - let commit = commit.unwrap(); - - Some( - Url::parse(&format!( - "https://codeload.github.com/{user}/{project}/tar.gz/{commit}" - )) - .ok()?, - ) - } - "bitbucket.org" => { - let user = s.next()?; - let mut project = s.next()?; - let aux = s.next(); - - if aux == Some("get") { - return None; - } - - if project.ends_with(".git") { - project = project.strip_suffix(".git")?; - } - - let commit = url.fragment()?; - - Some( - Url::parse(&format!( - "https://bitbucket.org/{user}/{project}/get/{commit}.tar.gz" - )) - .ok()?, - ) - } - "gitlab.com" => { - /* let path = &url.path()[1..]; - - if path.contains("/~/") || path.contains("/archive.tar.gz") { - return None; - } - - let user = s.next()?; - let mut project = s.next()?; - - if project.ends_with(".git") { - project = project.strip_suffix(".git")?; - } - - let commit = url.fragment()?; - - Some( - Url::parse(&format!( - "https://gitlab.com/{user}/{project}/repository/archive.tar.gz?ref={commit}" - )) - .ok()?, - ) */ - - // lmao: https://github.com/npm/hosted-git-info/pull/109 - None - } - "git.sr.ht" => { - let user = s.next()?; - let mut project = s.next()?; - let aux = s.next(); - - if aux == Some("archive") { - return None; - } - - if project.ends_with(".git") { - project = project.strip_suffix(".git")?; - } - - let commit = url.fragment()?; - - Some( - Url::parse(&format!( - "https://git.sr.ht/{user}/{project}/archive/{commit}.tar.gz" - )) - .ok()?, - ) - } - _ => None, - }; - - match get_url() { - Some(u) => Ok(Some(u)), - None => Err(anyhow!("This lockfile either contains a Git dependency with an unsupported host, or a malformed URL in the lockfile: {url}")) - } - } else { - Ok(None) - } -} - -#[cfg(test)] -mod tests { - use super::get_hosted_git_url; - use url::Url; - - #[test] - fn hosted_git_urls() { - for (input, expected) in [ - ( - "git+ssh://git@github.com/castlabs/electron-releases.git#fc5f78d046e8d7cdeb66345a2633c383ab41f525", - Some("https://codeload.github.com/castlabs/electron-releases/tar.gz/fc5f78d046e8d7cdeb66345a2633c383ab41f525"), - ), - ( - "git+ssh://bitbucket.org/foo/bar#branch", - Some("https://bitbucket.org/foo/bar/get/branch.tar.gz") - ), - ( - "git+ssh://git.sr.ht/~foo/bar#branch", - Some("https://git.sr.ht/~foo/bar/archive/branch.tar.gz") - ), - ] { - assert_eq!( - get_hosted_git_url(&Url::parse(input).unwrap()).unwrap(), - expected.map(|u| Url::parse(u).unwrap()) - ); - } - - assert!( - get_hosted_git_url(&Url::parse("ssh://git@gitlab.com/foo/bar.git#fix/bug").unwrap()) - .is_err(), - "GitLab URLs should be marked as invalid (lol)" - ); - } -} diff --git a/pkgs/build-support/node/fetch-npm-deps/src/util.rs b/pkgs/build-support/node/fetch-npm-deps/src/util.rs deleted file mode 100644 index 023ba56..0000000 --- a/pkgs/build-support/node/fetch-npm-deps/src/util.rs +++ /dev/null @@ -1,83 +0,0 @@ -use backoff::{retry, ExponentialBackoff}; -use data_encoding::BASE64; -use digest::Digest; -use isahc::{ - config::{CaCertificate, Configurable, RedirectPolicy, SslOption}, - Body, Request, RequestExt, -}; -use nix_nar::{Encoder, NarError}; -use serde_json::{Map, Value}; -use sha2::Sha256; -use std::{ - env, - io::{self, Read}, - path::Path, -}; -use url::Url; - -pub fn get_url(url: &Url) -> Result { - let mut request = Request::get(url.as_str()).redirect_policy(RedirectPolicy::Limit(10)); - - // Respect SSL_CERT_FILE if environment variable exists - if let Ok(ssl_cert_file) = env::var("SSL_CERT_FILE") { - if Path::new(&ssl_cert_file).exists() { - // When file exists, use it. NIX_SSL_CERT_FILE will still override. - request = request.ssl_ca_certificate(CaCertificate::file(ssl_cert_file)); - } else if env::var("outputHash").is_ok() { - // When file does not exist, assume we are downloading in a FOD and - // therefore do not need to check certificates, since the output is - // already hashed. - request = request.ssl_options(SslOption::DANGER_ACCEPT_INVALID_CERTS); - } - } - - // Respect NIX_NPM_TOKENS environment variable, which should be a JSON mapping in the shape of: - // `{ "registry.example.com": "example-registry-bearer-token", ... }` - if let Some(host) = url.host_str() { - if let Ok(npm_tokens) = env::var("NIX_NPM_TOKENS") { - if let Ok(tokens) = serde_json::from_str::>(&npm_tokens) { - if let Some(token) = tokens.get(host).and_then(serde_json::Value::as_str) { - request = request.header("Authorization", format!("Bearer {token}")); - } - } - } - } - - Ok(request.body(())?.send()?.into_body()) -} - -pub fn get_url_body_with_retry(url: &Url) -> Result, isahc::Error> { - retry(ExponentialBackoff::default(), || { - get_url(url) - .and_then(|mut body| { - let mut buf = Vec::new(); - - body.read_to_end(&mut buf)?; - - Ok(buf) - }) - .map_err(|err| { - if err.is_network() || err.is_timeout() { - backoff::Error::transient(err) - } else { - backoff::Error::permanent(err) - } - }) - }) - .map_err(|backoff_err| match backoff_err { - backoff::Error::Permanent(err) - | backoff::Error::Transient { - err, - retry_after: _, - } => err, - }) -} - -pub fn make_sri_hash(path: &Path) -> Result { - let mut encoder = Encoder::new(path)?; - let mut hasher = Sha256::new(); - - io::copy(&mut encoder, &mut hasher)?; - - Ok(format!("sha256-{}", BASE64.encode(&hasher.finalize()))) -} diff --git a/pkgs/build-support/node/fetch-yarn-deps/common.js b/pkgs/build-support/node/fetch-yarn-deps/common.js deleted file mode 100644 index 8e0d1b0..0000000 --- a/pkgs/build-support/node/fetch-yarn-deps/common.js +++ /dev/null @@ -1,17 +0,0 @@ -const path = require('path') - -// This has to match the logic in pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/urlToName.js -// so that fixup_yarn_lock produces the same paths -const urlToName = url => { - const isCodeloadGitTarballUrl = url.startsWith('https://codeload.github.com/') && url.includes('/tar.gz/') - - if (url.startsWith('git+') || isCodeloadGitTarballUrl) { - return path.basename(url) - } else { - return url - .replace(/https:\/\/(.)*(.com)\//g, '') // prevents having long directory names - .replace(/[@/%:-]/g, '_') // replace @ and : and - and % characters with underscore - } -} - -module.exports = { urlToName }; diff --git a/pkgs/build-support/node/fetch-yarn-deps/default.nix b/pkgs/build-support/node/fetch-yarn-deps/default.nix deleted file mode 100644 index 7f0e069..0000000 --- a/pkgs/build-support/node/fetch-yarn-deps/default.nix +++ /dev/null @@ -1,105 +0,0 @@ -{ stdenv, lib, makeWrapper, coreutils, nix-prefetch-git, fetchurl, nodejs-slim, prefetch-yarn-deps, cacert, callPackage, nix }: - -let - yarnpkg-lockfile-tar = fetchurl { - url = "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz"; - hash = "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ=="; - }; - - tests = callPackage ./tests {}; - -in { - prefetch-yarn-deps = stdenv.mkDerivation { - name = "prefetch-yarn-deps"; - - dontUnpack = true; - dontBuild = true; - - nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ nodejs-slim ]; - - installPhase = '' - runHook preInstall - - mkdir -p $out/bin $out/libexec - - tar --strip-components=1 -xf ${yarnpkg-lockfile-tar} package/index.js - mv index.js $out/libexec/yarnpkg-lockfile.js - cp ${./.}/common.js ${./.}/index.js $out/libexec/ - - patchShebangs $out/libexec - makeWrapper $out/libexec/index.js $out/bin/prefetch-yarn-deps \ - --prefix PATH : ${lib.makeBinPath [ coreutils nix-prefetch-git nix ]} - - runHook postInstall - ''; - - passthru = { inherit tests; }; - }; - - fixup-yarn-lock = stdenv.mkDerivation { - name = "fixup-yarn-lock"; - - dontUnpack = true; - dontBuild = true; - - nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ nodejs-slim ]; - - installPhase = '' - runHook preInstall - - mkdir -p $out/bin $out/libexec - - tar --strip-components=1 -xf ${yarnpkg-lockfile-tar} package/index.js - mv index.js $out/libexec/yarnpkg-lockfile.js - cp ${./.}/common.js ${./.}/fixup.js $out/libexec/ - - patchShebangs $out/libexec - makeWrapper $out/libexec/fixup.js $out/bin/fixup-yarn-lock - - runHook postInstall - ''; - - 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; - - 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"; - - buildPhase = '' - runHook preBuild - - yarnLock=''${yarnLock:=$PWD/yarn.lock} - mkdir -p $out - (cd $out; prefetch-yarn-deps --verbose --builder $yarnLock) - - runHook postBuild - ''; - - outputHashMode = "recursive"; - } // hash_ // (removeAttrs args ["src" "name" "hash" "sha256"])); - - in lib.setFunctionArgs f (lib.functionArgs f) // { - inherit tests; - }; -} diff --git a/pkgs/build-support/node/fetch-yarn-deps/fixup.js b/pkgs/build-support/node/fetch-yarn-deps/fixup.js deleted file mode 100755 index 732e569..0000000 --- a/pkgs/build-support/node/fetch-yarn-deps/fixup.js +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/env node -'use strict' - -const fs = require('fs') -const process = require('process') -const lockfile = require('./yarnpkg-lockfile.js') -const { urlToName } = require('./common.js') - -const fixupYarnLock = async (lockContents, verbose) => { - const lockData = lockfile.parse(lockContents) - - const fixedData = Object.fromEntries( - Object.entries(lockData.object) - .map(([dep, pkg]) => { - const [ url, hash ] = pkg.resolved.split("#", 2) - - if (hash || url.startsWith("https://codeload.github.com")) { - if (verbose) console.log(`Removing integrity for git dependency ${dep}`) - delete pkg.integrity - } - - if (verbose) console.log(`Rewriting URL ${url} for dependency ${dep}`) - pkg.resolved = urlToName(url) - if (hash) - pkg.resolved += `#${hash}` - - return [dep, pkg] - }) - ) - - if (verbose) console.log('Done') - - return fixedData -} - -const showUsage = async () => { - process.stderr.write(` -syntax: fixup-yarn-lock [path to yarn.lock] [options] - -Options: - -h --help Show this help - -v --verbose Verbose output -`) - process.exit(1) -} - -const main = async () => { - const args = process.argv.slice(2) - let next, lockFile, verbose - while (next = args.shift()) { - if (next == '--verbose' || next == '-v') { - verbose = true - } else if (next == '--help' || next == '-h') { - showUsage() - } else if (!lockFile) { - lockFile = next - } else { - showUsage() - } - } - let lockContents - try { - lockContents = await fs.promises.readFile(lockFile || 'yarn.lock', 'utf-8') - } catch { - showUsage() - } - - const fixedData = await fixupYarnLock(lockContents, verbose) - await fs.promises.writeFile(lockFile || 'yarn.lock', lockfile.stringify(fixedData)) -} - -main() - .catch(e => { - console.error(e) - process.exit(1) - }) diff --git a/pkgs/build-support/node/fetch-yarn-deps/index.js b/pkgs/build-support/node/fetch-yarn-deps/index.js deleted file mode 100755 index e60fdeb..0000000 --- a/pkgs/build-support/node/fetch-yarn-deps/index.js +++ /dev/null @@ -1,206 +0,0 @@ -#!/usr/bin/env node -'use strict' - -const fs = require('fs') -const crypto = require('crypto') -const process = require('process') -const https = require('https') -const child_process = require('child_process') -const path = require('path') -const lockfile = require('./yarnpkg-lockfile.js') -const { promisify } = require('util') -const url = require('url') -const { urlToName } = require('./common.js') - -const execFile = promisify(child_process.execFile) - -const exec = async (...args) => { - const res = await execFile(...args) - if (res.error) throw new Error(res.stderr) - return res -} - -const downloadFileHttps = (fileName, url, expectedHash, hashType = 'sha1') => { - return new Promise((resolve, reject) => { - const get = (url, redirects = 0) => https.get(url, (res) => { - if(redirects > 10) { - reject('Too many redirects!'); - return; - } - if(res.statusCode === 301 || res.statusCode === 302) { - return get(res.headers.location, redirects + 1) - } - const file = fs.createWriteStream(fileName) - const hash = crypto.createHash(hashType) - res.pipe(file) - res.pipe(hash).setEncoding('hex') - res.on('end', () => { - file.close() - const h = hash.read() - if (expectedHash === undefined){ - console.log(`Warning: lockfile url ${url} doesn't end in "#" to validate against. Downloaded file had hash ${h}.`); - } else if (h != expectedHash) return reject(new Error(`hash mismatch, expected ${expectedHash}, got ${h}`)) - resolve() - }) - res.on('error', e => reject(e)) - }) - get(url) - }) -} - -const downloadGit = async (fileName, url, rev) => { - await exec('nix-prefetch-git', [ - '--out', fileName + '.tmp', - '--url', url, - '--rev', rev, - '--builder' - ]) - - await exec('tar', [ - // hopefully make it reproducible across runs and systems - '--owner=0', '--group=0', '--numeric-owner', '--format=gnu', '--sort=name', '--mtime=@1', - - // Set u+w because tar-fs can't unpack archives with read-only dirs: https://github.com/mafintosh/tar-fs/issues/79 - '--mode', 'u+w', - - '-C', fileName + '.tmp', - '-cf', fileName, '.' - ]) - - await exec('rm', [ '-rf', fileName + '.tmp', ]) -} - -const isGitUrl = pattern => { - // https://github.com/yarnpkg/yarn/blob/3119382885ea373d3c13d6a846de743eca8c914b/src/resolvers/exotics/git-resolver.js#L15-L47 - const GIT_HOSTS = ['github.com', 'gitlab.com', 'bitbucket.com', 'bitbucket.org'] - const GIT_PATTERN_MATCHERS = [/^git:/, /^git\+.+:/, /^ssh:/, /^https?:.+\.git$/, /^https?:.+\.git#.+/] - - for (const matcher of GIT_PATTERN_MATCHERS) if (matcher.test(pattern)) return true - - const {hostname, path} = url.parse(pattern) - if (hostname && path && GIT_HOSTS.indexOf(hostname) >= 0 - // only if dependency is pointing to a git repo, - // e.g. facebook/flow and not file in a git repo facebook/flow/archive/v1.0.0.tar.gz - && path.split('/').filter(p => !!p).length === 2 - ) return true - - return false -} - -const downloadPkg = (pkg, verbose) => { - const fileMarker = '@file:' - const split = pkg.key.split(fileMarker) - if (split.length == 2) { - console.info(`ignoring lockfile entry "${split[0]}" which points at path "${split[1]}"`) - return - } else if (split.length > 2) { - throw new Error(`The lockfile entry key "${pkg.key}" contains "${fileMarker}" more than once. Processing is not implemented.`) - } - - if (pkg.resolved === undefined) { - throw new Error(`The lockfile entry with key "${pkg.key}" cannot be downloaded because it is missing the "resolved" attribute, which should contain the URL to download from. The lockfile might be invalid.`) - } - - const [ url, hash ] = pkg.resolved.split('#') - if (verbose) console.log('downloading ' + url) - const fileName = urlToName(url) - if (url.startsWith('https://codeload.github.com/') && url.includes('/tar.gz/')) { - const s = url.split('/') - return downloadGit(fileName, `https://github.com/${s[3]}/${s[4]}.git`, s[s.length-1]) - } else if (url.startsWith('https://github.com/') && url.endsWith('.tar.gz')) { - const s = url.split('/') - return downloadGit(fileName, `https://github.com/${s[3]}/${s[4]}.git`, s[s.length-1].replace(/.tar.gz$/, '')) - } else if (isGitUrl(url)) { - return downloadGit(fileName, url.replace(/^git\+/, ''), hash) - } else if (url.startsWith('https://')) { - if (typeof pkg.integrity === 'string' || pkg.integrity instanceof String) { - const [ type, checksum ] = pkg.integrity.split('-') - return downloadFileHttps(fileName, url, Buffer.from(checksum, 'base64').toString('hex'), type) - } - return downloadFileHttps(fileName, url, hash) - } else if (url.startsWith('file:')) { - console.warn(`ignoring unsupported file:path url "${url}"`) - } else { - throw new Error('don\'t know how to download "' + url + '"') - } -} - -const performParallel = tasks => { - const worker = async () => { - while (tasks.length > 0) await tasks.shift()() - } - - const workers = [] - for (let i = 0; i < 4; i++) { - workers.push(worker()) - } - - return Promise.all(workers) -} - -const prefetchYarnDeps = async (lockContents, verbose) => { - const lockData = lockfile.parse(lockContents) - await performParallel( - Object.entries(lockData.object) - .map(([key, value]) => () => downloadPkg({ key, ...value }, verbose)) - ) - await fs.promises.writeFile('yarn.lock', lockContents) - if (verbose) console.log('Done') -} - -const showUsage = async () => { - process.stderr.write(` -syntax: prefetch-yarn-deps [path to yarn.lock] [options] - -Options: - -h --help Show this help - -v --verbose Verbose output - --builder Only perform the download to current directory, then exit -`) - process.exit(1) -} - -const main = async () => { - const args = process.argv.slice(2) - let next, lockFile, verbose, isBuilder - while (next = args.shift()) { - if (next == '--builder') { - isBuilder = true - } else if (next == '--verbose' || next == '-v') { - verbose = true - } else if (next == '--help' || next == '-h') { - showUsage() - } else if (!lockFile) { - lockFile = next - } else { - showUsage() - } - } - let lockContents - try { - lockContents = await fs.promises.readFile(lockFile || 'yarn.lock', 'utf-8') - } catch { - showUsage() - } - - if (isBuilder) { - await prefetchYarnDeps(lockContents, verbose) - } else { - const { stdout: tmpDir } = await exec('mktemp', [ '-d' ]) - - try { - process.chdir(tmpDir.trim()) - await prefetchYarnDeps(lockContents, verbose) - const { stdout: hash } = await exec('nix-hash', [ '--type', 'sha256', '--base32', tmpDir.trim() ]) - console.log(hash) - } finally { - await exec('rm', [ '-rf', tmpDir.trim() ]) - } - } -} - -main() - .catch(e => { - console.error(e) - process.exit(1) - }) diff --git a/pkgs/build-support/node/fetch-yarn-deps/tests/default.nix b/pkgs/build-support/node/fetch-yarn-deps/tests/default.nix deleted file mode 100644 index 8057d05..0000000 --- a/pkgs/build-support/node/fetch-yarn-deps/tests/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ testers, fetchYarnDeps, ... }: - -{ - file = testers.invalidateFetcherByDrvHash fetchYarnDeps { - yarnLock = ./file.lock; - sha256 = "sha256-BPuyQVCbdpFL/iRhmarwWAmWO2NodlVCOY9JU+4pfa4="; - }; - simple = testers.invalidateFetcherByDrvHash fetchYarnDeps { - yarnLock = ./simple.lock; - sha256 = "sha256-FRrt8BixleILmFB2ZV8RgPNLqgS+dlH5nWoPgeaaNQ8="; - }; - gitDep = testers.invalidateFetcherByDrvHash fetchYarnDeps { - yarnLock = ./git.lock; - sha256 = "sha256-f90IiEzHDiBdswWewRBHcJfqqpPipaMg8N0DVLq2e8Q="; - }; - githubDep = testers.invalidateFetcherByDrvHash fetchYarnDeps { - yarnLock = ./github.lock; - sha256 = "sha256-DIKrhDKoqm7tHZmcuh9eK9VTqp6BxeW0zqDUpY4F57A="; - }; - gitUrlDep = testers.invalidateFetcherByDrvHash fetchYarnDeps { - yarnLock = ./giturl.lock; - sha256 = "sha256-VPnyqN6lePQZGXwR7VhbFnP7/0/LB621RZwT1F+KzVQ="; - }; -} diff --git a/pkgs/build-support/node/fetch-yarn-deps/tests/file.lock b/pkgs/build-support/node/fetch-yarn-deps/tests/file.lock deleted file mode 100644 index 4881d83..0000000 --- a/pkgs/build-support/node/fetch-yarn-deps/tests/file.lock +++ /dev/null @@ -1,9 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@org/somepack@file:vendor/orgpacks/somepack/assets": - version "1.0.0" - -"otherpack@file:vendor/otherpack": - version "1.0.0" diff --git a/pkgs/build-support/node/fetch-yarn-deps/tests/git.lock b/pkgs/build-support/node/fetch-yarn-deps/tests/git.lock deleted file mode 100644 index 9eda5b2..0000000 --- a/pkgs/build-support/node/fetch-yarn-deps/tests/git.lock +++ /dev/null @@ -1,7 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"async@git+https://github.com/caolan/async": - version "3.2.1" - resolved "git+https://github.com/caolan/async#fc9ba651341af5ab974aade6b1640e345912be83" diff --git a/pkgs/build-support/node/fetch-yarn-deps/tests/github.lock b/pkgs/build-support/node/fetch-yarn-deps/tests/github.lock deleted file mode 100644 index 057e043..0000000 --- a/pkgs/build-support/node/fetch-yarn-deps/tests/github.lock +++ /dev/null @@ -1,7 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"async@github:caolan/async": - version "3.2.1" - resolved "https://codeload.github.com/caolan/async/tar.gz/fc9ba651341af5ab974aade6b1640e345912be83" diff --git a/pkgs/build-support/node/fetch-yarn-deps/tests/giturl.lock b/pkgs/build-support/node/fetch-yarn-deps/tests/giturl.lock deleted file mode 100644 index 154030a..0000000 --- a/pkgs/build-support/node/fetch-yarn-deps/tests/giturl.lock +++ /dev/null @@ -1,11 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"autocomplete-atom-api@https://codeload.github.com/atom/autocomplete-atom-api/legacy.tar.gz/refs/tags/v0.10.7": - version "0.10.7" - resolved "https://codeload.github.com/atom/autocomplete-atom-api/legacy.tar.gz/refs/tags/v0.10.7#c9d51fa721d543ccfc1b2189101155e81db6b97d" - -"find-and-replace@https://github.com/atom-community/find-and-replace/archive/refs/tags/v0.220.1.tar.gz": - version "0.220.1" - resolved "https://github.com/atom-community/find-and-replace/archive/refs/tags/v0.220.1.tar.gz#d7a0f56511e38ee72a89895a795bbbcab4a1a405" diff --git a/pkgs/build-support/node/fetch-yarn-deps/tests/simple.lock b/pkgs/build-support/node/fetch-yarn-deps/tests/simple.lock deleted file mode 100644 index db2f4b2..0000000 --- a/pkgs/build-support/node/fetch-yarn-deps/tests/simple.lock +++ /dev/null @@ -1,8 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -lit-html@1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-1.4.1.tgz#0c6f3ee4ad4eb610a49831787f0478ad8e9ae5e0" - integrity sha512-B9btcSgPYb1q4oSOb/PrOT6Z/H+r6xuNzfH4lFli/AWhYwdtrgQkQWBbIc6mdnf6E2IL3gDXdkkqNktpU0OZQA== diff --git a/pkgs/build-support/node/import-npm-lock/default.nix b/pkgs/build-support/node/import-npm-lock/default.nix deleted file mode 100644 index d530b8e..0000000 --- a/pkgs/build-support/node/import-npm-lock/default.nix +++ /dev/null @@ -1,134 +0,0 @@ -{ lib -, fetchurl -, stdenv -, callPackages -, runCommand -}: - -let - inherit (builtins) match elemAt toJSON removeAttrs; - inherit (lib) importJSON mapAttrs; - - matchGitHubReference = match "github(.com)?:.+"; - getName = package: package.name or "unknown"; - getVersion = package: package.version or "0.0.0"; - - # Fetch a module from package-lock.json -> packages - fetchModule = - { module - , npmRoot ? null - }: ( - if module ? "resolved" then - ( - let - # Parse scheme from URL - mUrl = match "(.+)://(.+)" module.resolved; - scheme = elemAt mUrl 0; - in - ( - if mUrl == null then - ( - assert npmRoot != null; { - outPath = npmRoot + "/${module.resolved}"; - } - ) - else if (scheme == "http" || scheme == "https") then - ( - 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}" - ) - ) - else null - ); - - # Manage node_modules outside of the store with hooks - hooks = callPackages ./hooks { }; - -in -{ - importNpmLock = - { 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 ( - # 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 - )); - - 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; - }; - - 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; - }; - - pname = package.name or "unknown"; - - in - runCommand "${pname}-${version}-sources" - { - inherit pname version; - - passAsFile = [ "package" "packageLock" ]; - - package = toJSON packageJSON'; - packageLock = toJSON packageLock'; - } '' - mkdir $out - cp "$packagePath" $out/package.json - cp "$packageLockPath" $out/package-lock.json - ''; - - inherit hooks; - inherit (hooks) npmConfigHook; - - __functor = self: self.importNpmLock; -} diff --git a/pkgs/build-support/node/import-npm-lock/hooks/canonicalize-symlinks.js b/pkgs/build-support/node/import-npm-lock/hooks/canonicalize-symlinks.js deleted file mode 100644 index 81cd259..0000000 --- a/pkgs/build-support/node/import-npm-lock/hooks/canonicalize-symlinks.js +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env node -const fs = require("fs"); -const path = require("path"); - -// When installing files rewritten to the Nix store with npm -// npm writes the symlinks relative to the build directory. -// -// This makes relocating node_modules tricky when refering to the store. -// This script walks node_modules and canonicalizes symlinks. - -async function canonicalize(storePrefix, root) { - console.log(storePrefix, root) - const entries = await fs.promises.readdir(root); - const paths = entries.map((entry) => path.join(root, entry)); - - const stats = await Promise.all( - paths.map(async (path) => { - return { - path: path, - stat: await fs.promises.lstat(path), - }; - }) - ); - - const symlinks = stats.filter((stat) => stat.stat.isSymbolicLink()); - const dirs = stats.filter((stat) => stat.stat.isDirectory()); - - // Canonicalize symlinks to their real path - await Promise.all( - symlinks.map(async (stat) => { - const target = await fs.promises.realpath(stat.path); - if (target.startsWith(storePrefix)) { - await fs.promises.unlink(stat.path); - await fs.promises.symlink(target, stat.path); - } - }) - ); - - // Recurse into directories - await Promise.all(dirs.map((dir) => canonicalize(storePrefix, dir.path))); -} - -async function main() { - const args = process.argv.slice(2); - const storePrefix = args[0]; - - if (fs.existsSync("node_modules")) { - await canonicalize(storePrefix, "node_modules"); - } -} - -main(); diff --git a/pkgs/build-support/node/import-npm-lock/hooks/default.nix b/pkgs/build-support/node/import-npm-lock/hooks/default.nix deleted file mode 100644 index 5990371..0000000 --- a/pkgs/build-support/node/import-npm-lock/hooks/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ 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/node/import-npm-lock/hooks/npm-config-hook.sh b/pkgs/build-support/node/import-npm-lock/hooks/npm-config-hook.sh deleted file mode 100644 index 35c3a20..0000000 --- a/pkgs/build-support/node/import-npm-lock/hooks/npm-config-hook.sh +++ /dev/null @@ -1,70 +0,0 @@ -# shellcheck shell=bash - -npmConfigHook() { - echo "Executing npmConfigHook" - - if [ -n "${npmRoot-}" ]; then - pushd "$npmRoot" - fi - - if [ -z "${npmDeps-}" ]; then - echo "Error: 'npmDeps' should be set when using npmConfigHook." - exit 1 - fi - - echo "Configuring npm" - - export HOME="$TMPDIR" - export npm_config_nodedir="@nodeSrc@" - export npm_config_node_gyp="@nodeGyp@" - npm config set offline true - npm config set progress false - npm config set fund false - - echo "Installing patched package.json/package-lock.json" - - # Save original package.json/package-lock.json for closure size reductions. - # The patched one contains store paths we don't want at runtime. - mv package.json .package.json.orig - if test -f package-lock.json; then # Not all packages have package-lock.json. - mv package-lock.json .package-lock.json.orig - fi - cp --no-preserve=mode "${npmDeps}/package.json" package.json - cp --no-preserve=mode "${npmDeps}/package-lock.json" package-lock.json - - echo "Installing dependencies" - - if ! npm install --ignore-scripts $npmInstallFlags "${npmInstallFlagsArray[@]}" $npmFlags "${npmFlagsArray[@]}"; then - echo - echo "ERROR: npm failed to install dependencies" - echo - echo "Here are a few things you can try, depending on the error:" - echo '1. Set `npmFlags = [ "--legacy-peer-deps" ]`' - echo - - exit 1 - fi - - patchShebangs node_modules - - npm rebuild $npmRebuildFlags "${npmRebuildFlagsArray[@]}" $npmFlags "${npmFlagsArray[@]}" - - patchShebangs node_modules - - # Canonicalize symlinks from relative paths to the Nix store. - node @canonicalizeSymlinksScript@ @storePrefix@ - - # Revert to pre-patched package.json/package-lock.json for closure size reductions - mv .package.json.orig package.json - if test -f ".package-lock.json.orig"; then - mv .package-lock.json.orig package-lock.json - fi - - if [ -n "${npmRoot-}" ]; then - popd - fi - - echo "Finished npmConfigHook" -} - -postConfigureHooks+=(npmConfigHook) diff --git a/pkgs/build-support/nuke-references/darwin-sign-fixup.sh b/pkgs/build-support/nuke-references/darwin-sign-fixup.sh deleted file mode 100644 index 940c18e..0000000 --- a/pkgs/build-support/nuke-references/darwin-sign-fixup.sh +++ /dev/null @@ -1,5 +0,0 @@ -# Fixup hook for nukeReferences, not stdenv - -source @signingUtils@ - -fixupHooks+=(signIfRequired) diff --git a/pkgs/build-support/nuke-references/default.nix b/pkgs/build-support/nuke-references/default.nix deleted file mode 100644 index 4472d6e..0000000 --- a/pkgs/build-support/nuke-references/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -# The program `nuke-refs' created by this derivation replaces all -# references to the Nix store in the specified files by a non-existant -# 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 }: - -let - stdenv = stdenvNoCC; - - darwinCodeSign = stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64; -in - -stdenvNoCC.mkDerivation { - name = "nuke-references"; - - strictDeps = true; - enableParallelBuilding = true; - dontUnpack = true; - dontConfigure = true; - dontBuild = true; - - installPhase = '' - mkdir -p $out/bin - substituteAll ${./nuke-refs.sh} $out/bin/nuke-refs - chmod a+x $out/bin/nuke-refs - ''; - - postFixup = lib.optionalString darwinCodeSign '' - mkdir -p $out/nix-support - substituteAll ${./darwin-sign-fixup.sh} $out/nix-support/setup-hooks.sh - ''; - - # FIXME: get rid of perl dependency. - env = { - inherit perl; - inherit (builtins) storeDir; - shell = lib.getBin shell + (shell.shellPath or ""); - signingUtils = lib.optionalString darwinCodeSign signingUtils; - }; - - meta.mainProgram = "nuke-refs"; -} diff --git a/pkgs/build-support/nuke-references/nuke-refs.sh b/pkgs/build-support/nuke-references/nuke-refs.sh deleted file mode 100644 index 21eb855..0000000 --- a/pkgs/build-support/nuke-references/nuke-refs.sh +++ /dev/null @@ -1,33 +0,0 @@ -#! @shell@ - -fixupHooks=() - -if [ -e @out@/nix-support/setup-hooks.sh ]; then - source @out@/nix-support/setup-hooks.sh -fi - -excludes="" -while getopts e: o; do - case "$o" in - e) storeId=$(echo "$OPTARG" | @perl@/bin/perl -ne "print \"\$1\" if m|^\Q@storeDir@\E/([a-z0-9]{32})-.*|") - if [ -z "$storeId" ]; then - echo "-e argument must be a Nix store path" - exit 1 - fi - excludes="$excludes(?!$storeId)" - ;; - esac -done -shift $(($OPTIND-1)) - -for i in "$@"; do - if test ! -L "$i" -a -f "$i"; then - cat "$i" | @perl@/bin/perl -pe "s|\Q@storeDir@\E/$excludes[a-z0-9]{32}-|@storeDir@/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" > "$i.tmp" - if test -x "$i"; then chmod +x "$i.tmp"; fi - mv "$i.tmp" "$i" - - for hook in "${fixupHooks[@]}"; do - eval "$hook" "$i" - done - fi -done diff --git a/pkgs/build-support/ocaml/dune.nix b/pkgs/build-support/ocaml/dune.nix deleted file mode 100644 index 972244f..0000000 --- a/pkgs/build-support/ocaml/dune.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ lib, stdenv, ocaml, findlib, dune_1, dune_2, dune_3 }: - -{ 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 - -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 ({ - - 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 - ''; - - strictDeps = true; - -} // (builtins.removeAttrs args [ "minimalOCamlVersion" "duneVersion" ]) // { - - name = "ocaml${ocaml.version}-${pname}-${version}"; - - nativeBuildInputs = [ ocaml Dune findlib ] ++ nativeBuildInputs; - - 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 deleted file mode 100644 index 91daad5..0000000 --- a/pkgs/build-support/ocaml/oasis.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ lib, stdenv, ocaml_oasis, ocaml, findlib, ocamlbuild }: - -{ 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}" -else - -stdenv.mkDerivation (args // { - name = "ocaml${ocaml.version}-${pname}-${version}"; - - nativeBuildInputs = [ ocaml findlib ocamlbuild ocaml_oasis ] ++ nativeBuildInputs; - - inherit createFindlibDestdir; - inherit dontStrip; - - strictDeps = true; - - 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 - ''; - - 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 deleted file mode 100644 index 73be581..0000000 --- a/pkgs/build-support/ocaml/topkg.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib, stdenv, fetchurl, ocaml, findlib, topkg, ocamlbuild, cmdliner, odoc, b0 -}: - -{ pname, version, nativeBuildInputs ? [ ], buildInputs ? [ ], ... }@args: - -lib.throwIf (args ? minimalOCamlVersion - && lib.versionOlder ocaml.version args.minimalOCamlVersion) -"${pname}-${version} is not available for OCaml ${ocaml.version}" - -stdenv.mkDerivation ({ - - dontAddStaticConfigureFlags = true; - configurePlatforms = [ ]; - strictDeps = true; - inherit (topkg) buildPhase installPhase; - -} // (builtins.removeAttrs args [ "minimalOCamlVersion" ]) // { - - name = "ocaml${ocaml.version}-${pname}-${version}"; - - nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ] ++ nativeBuildInputs; - buildInputs = [ topkg ] ++ buildInputs; - - 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 deleted file mode 100644 index 1f5507f..0000000 --- a/pkgs/build-support/oci-tools/default.nix +++ /dev/null @@ -1,78 +0,0 @@ -{ lib, writeText, runCommand, writeClosure }: - -{ - buildContainer = - { 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; - }; - - linux = { - namespaces = map (type: { inherit type; }) [ "pid" "network" "mount" "ipc" "uts" ]; - }; - - root = { path = "rootfs"; inherit readonly; }; - - 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" {} '' - 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 deleted file mode 100644 index 10c1b25..0000000 --- a/pkgs/build-support/packages.nix +++ /dev/null @@ -1,608 +0,0 @@ -{ ... }: -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 - ) - { }; - - autoreconfHook264 = autoreconfHook.override { - autoconf = autoconf264; - automake = automake111x; - }; - - 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; - - # tomato-c = callPackage ../applications/misc/tomato-c { }; - - # appflowy = callPackage ../applications/office/appflowy { }; - - # appimageTools = callPackage ./appimage { }; - - # appindicator-sharp = callPackage ../development/libraries/appindicator-sharp { }; - - # bindle = callPackage ../servers/bindle { - # inherit (darwin.apple_sdk.frameworks) Security; - # }; - - 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' '{}' '+' - } - ''); - - # Zip file format only allows times after year 1980, which makes e.g. Python - # wheel building fail with: - # ValueError: ZIP does not support timestamps before 1980 - ensureNewerSourcesForZipFilesHook = ensureNewerSourcesHook { year = "1980"; }; - - # addDriverRunpath is the preferred package name, as this enables - # many more scenarios than just opengl now. - addDriverRunpath = callPackage ./add-driver-runpath { }; - - # addOpenGLRunpath should be added to aliases.nix after the 24.05 branch-off. - # 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; - - # gogUnpackHook = makeSetupHook - # { - # name = "gog-unpack-hook"; - # propagatedBuildInputs = [ innoextract file-rename ]; - # } - # ./setup-hooks/gog-unpack.sh; - - buildEnv = callPackage ./buildenv { }; # not actually a package - - buildFHSEnv = buildFHSEnvBubblewrap; - buildFHSEnvChroot = callPackage ./build-fhsenv-chroot { }; # Deprecated; use buildFHSEnv/buildFHSEnvBubblewrap - buildFHSEnvBubblewrap = callPackage ./build-fhsenv-bubblewrap { }; - - # buildMaven = callPackage ./build-maven.nix { }; - - checkpointBuildTools = callPackage ./checkpoint-build.nix { }; - - dhallDirectoryToNix = callPackage ./dhall/directory-to-nix.nix { }; - - dhallPackageToNix = callPackage ./dhall/package-to-nix.nix { }; - - dhallToNix = callPackage ./dhall/to-nix.nix { }; - - expand-response-params = callPackage ./expand-response-params { }; - - diffPlugins = (callPackage ./plugins.nix { }).diffPlugins; - - dieHook = makeSetupHook - { - name = "die-hook"; - } ./setup-hooks/die.sh; - - - # dockerTools = callPackage ./docker - # { - # writePython3 = buildPackages.writers.writePython3; - # } // { __attrsFailEvaluation = true; }; - - fakeNss = callPackage ./fake-nss { }; - - tarsum = callPackage ./docker/tarsum.nix { }; - - # nix-prefetch-docker = callPackage ./docker/nix-prefetch-docker.nix { }; - - # buildDotnetModule = callPackage ./dotnet/build-dotnet-module { }; - # nuget-to-nix = callPackage ./dotnet/nuget-to-nix { }; - # mkNugetSource = callPackage ./dotnet/make-nuget-source { }; - # mkNugetDeps = callPackage ./dotnet/make-nuget-deps { }; - - # buildDotnetGlobalTool = callPackage ./dotnet/build-dotnet-global-tool { }; - - # dotnetenv = callPackage ./dotnet/dotnetenv { - # dotnetfx = dotnetfx40; - # }; - - # buildDotnetPackage = callPackage ./dotnet/build-dotnet-package { }; - # fetchNuGet = callPackage ./dotnet/fetchnuget { }; - # dotnetbuildhelpers = callPackage ./dotnet/dotnetbuildhelpers { }; - - # fetchbower = callPackage ./fetchbower { - # inherit (nodePackages) bower2nix; - # }; - - # fetchbzr = callPackage ./fetchbzr { }; - - fetchcvs = - if stdenv.buildPlatform != stdenv.hostPlatform - # hack around splicing being crummy with things that (correctly) don't eval. - then buildPackages.fetchcvs - else callPackage ./fetchcvs { }; - - fetchdarcs = callPackage ./fetchdarcs { }; - - fetchdocker = callPackage ./fetchdocker { }; - - fetchDockerConfig = callPackage ./fetchdocker/fetchDockerConfig.nix { }; - - fetchDockerLayer = callPackage ./fetchdocker/fetchDockerLayer.nix { }; - - 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; - }; - - fetchgitLocal = callPackage ./fetchgitlocal { }; - - fetchmtn = callPackage ./fetchmtn (config.fetchmtn or { }); - - fetchMavenArtifact = callPackage ./fetchmavenartifact { }; - - fetchpijul = callPackage ./fetchpijul { }; - - inherit (callPackages ./node/fetch-yarn-deps { }) - fixup-yarn-lock - prefetch-yarn-deps - fetchYarnDeps; - - prefer-remote-fetch = import ./prefer-remote-fetch; - - 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; - }; - - fetchpatch2 = callPackage ./fetchpatch - { - patchutils = buildPackages.patchutils_0_4_2; - } // { - tests = pkgs.tests.fetchpatch2; - version = 2; - }; - - fetchs3 = callPackage ./fetchs3 { }; - - fetchtorrent = callPackage ./fetchtorrent { }; - - fetchsvn = - if stdenv.buildPlatform != stdenv.hostPlatform - # hack around splicing being crummy with things that (correctly) don't eval. - then buildPackages.fetchsvn - else callPackage ./fetchsvn { }; - - fetchsvnrevision = import ./fetchsvnrevision runCommand subversion; - - fetchsvnssh = callPackage ./fetchsvnssh { }; - - fetchhg = callPackage ./fetchhg { }; - - fetchFirefoxAddon = callPackage ./fetchfirefoxaddon { } - // { - tests = pkgs.tests.fetchFirefoxAddon; - }; - - fetchNextcloudApp = callPackage ./fetchnextcloudapp { }; - - # `fetchurl' downloads a file from the network. - fetchurl = - if stdenv.buildPlatform != stdenv.hostPlatform - then buildPackages.fetchurl # No need to do special overrides twice, - else - makeOverridable (import ./fetchurl) { - inherit lib stdenvNoCC buildPackages; - inherit cacert; - curl = buildPackages.curlMinimal.override (old: rec { - # break dependency cycles - 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; - }; - }); - perl = buildPackages.perl.override { fetchurl = stdenv.fetchurlBoot; }; - openssl = buildPackages.openssl.override { - fetchurl = stdenv.fetchurlBoot; - buildPackages = { - coreutils = buildPackages.coreutils.override { - fetchurl = stdenv.fetchurlBoot; - inherit perl; - xz = buildPackages.xz.override { fetchurl = stdenv.fetchurlBoot; }; - gmp = null; - aclSupport = false; - attrSupport = false; - }; - inherit perl; - }; - inherit perl; - }; - libssh2 = buildPackages.libssh2.override { - fetchurl = stdenv.fetchurlBoot; - inherit zlib openssl; - }; - # On darwin, libkrb5 needs bootstrap_cmds which would require - # converting many packages to fetchurl_boot to avoid evaluation cycles. - # 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 - libkrb5 = buildPackages.libkrb5.override { - fetchurl = stdenv.fetchurlBoot; - inherit pkg-config perl openssl; - keyutils = buildPackages.keyutils.override { fetchurl = stdenv.fetchurlBoot; }; - }; - nghttp2 = buildPackages.nghttp2.override { - fetchurl = stdenv.fetchurlBoot; - inherit pkg-config; - enableApp = false; # curl just needs libnghttp2 - enableTests = false; # avoids bringing `cunit` and `tzdata` into scope - }; - }); - }; - - # fetchRepoProject = callPackage ./fetchrepoproject { }; - - # fetchipfs = import ./fetchipfs { - # inherit curl stdenv; - # }; - - fetchzip = callPackage ./fetchzip { } - // { - tests = pkgs.tests.fetchzip; - }; - - # fetchDebianPatch = callPackage ./fetchdebianpatch { } - # // { - # tests = pkgs.tests.fetchDebianPatch; - # }; - - fetchCrate = callPackage ./rust/fetchcrate.nix { }; - - # fetchFromGitea = callPackage ./fetchgitea { }; - - fetchFromGitHub = callPackage ./fetchgithub { }; - - # fetchFromBitbucket = callPackage ./fetchbitbucket { }; - - fetchFromSavannah = callPackage ./fetchsavannah { }; - - # fetchFromSourcehut = callPackage ./fetchsourcehut { }; - - fetchFromGitLab = callPackage ./fetchgitlab { }; - - # fetchFromGitiles = callPackage ./fetchgitiles { }; - - # fetchFrom9Front = callPackage ./fetch9front { }; - - # fetchFromRepoOrCz = callPackage ./fetchrepoorcz { }; - - # fetchgx = callPackage ./fetchgx { }; - - fetchPypi = callPackage ./fetchpypi { }; - - # fetchPypiLegacy = callPackage ./fetchpypilegacy { }; - - # resolveMirrorURLs = {url}: fetchurl { - # showURLs = true; - # inherit url; - # }; - - installShellFiles = callPackage ./install-shell-files { }; - - # ld-is-cc-hook = makeSetupHook { name = "ld-is-cc-hook"; } - # ./setup-hooks/ld-is-cc-hook.sh; - - libredirect = callPackage ./libredirect { }; - - # copyDesktopItems = makeSetupHook { - # name = "copy-desktop-items-hook"; - # } ./setup-hooks/copy-desktop-items.sh; - - # makeDesktopItem = callPackage ./make-desktopitem { }; - - # copyPkgconfigItems = makeSetupHook { - # name = "copy-pkg-config-items-hook"; - # } ./setup-hooks/copy-pkgconfig-items.sh; - - # makePkgconfigItem = callPackage ./make-pkgconfigitem { }; - - # makeDarwinBundle = callPackage ./make-darwin-bundle { }; - - # makeAutostartItem = callPackage ./make-startupitem { }; - - # makeImpureTest = callPackage ./make-impure-test.nix; - - # makeInitrd = callPackage ./kernel/make-initrd.nix; # Args intentionally left out - - # makeInitrdNG = callPackage ./kernel/make-initrd-ng.nix; - # makeInitrdNGTool = callPackage ./kernel/make-initrd-ng-tool.nix { }; - - 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; - - makeBinaryWrapper = callPackage ./setup-hooks/make-binary-wrapper { }; - - # compressFirmwareXz = callPackage ./kernel/compress-firmware-xz.nix { }; - - # makeModulesClosure = { kernel, firmware, rootModules, allowMissing ? false }: - # callPackage ./kernel/modules-closure.nix { - # inherit kernel firmware rootModules allowMissing; - # }; - - # mkBinaryCache = callPackage ./binary-cache { }; - - # mkShell = callPackage ./mkshell { }; - # mkShellNoCC = mkShell.override { stdenv = stdenvNoCC; }; - - # nixBufferBuilders = import ./emacs/buffer.nix { inherit lib writeText; inherit (emacs.pkgs) inherit-local; }; - - # nix-gitignore = callPackage ./nix-gitignore { }; - - # ociTools = callPackage ./oci-tools { }; - - # inherit ( - # callPackages ./setup-hooks/patch-rc-path-hooks { } - # ) patchRcPathBash patchRcPathCsh patchRcPathFish patchRcPathPosix; - - # pathsFromGraph = ./kernel/paths-from-graph.pl; - - 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; - - # singularity-tools = callPackage ./singularity-tools { }; - - # srcOnly = callPackage ./src-only { }; - - substitute = callPackage ./substitute/substitute.nix { }; - - substituteAll = callPackage ./substitute/substitute-all.nix { }; - - # substituteAllFiles = callPackage ./substitute-files/substitute-all-files.nix { }; - - # replaceDependency = callPackage ./replace-dependency.nix { }; - - nukeReferences = callPackage ./nuke-references { - inherit (darwin) signingUtils; - }; - - # referencesByPopularity = callPackage ./references-by-popularity { }; - - 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; }; - - # releaseTools = callPackage ./release { }; - - # inherit (lib.systems) platforms; - - # setJavaClassPath = makeSetupHook { - # 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; - - # writeDarwinBundle = callPackage ./make-darwin-bundle/write-darwin-bundle.nix { }; - - # desktopToDarwinBundle = makeSetupHook { - # name = "desktop-to-darwin-bundle-hook"; - # propagatedBuildInputs = [ writeDarwinBundle librsvg imagemagick python3Packages.icnsutil ]; - # } ./setup-hooks/desktop-to-darwin-bundle.sh; - - # keepBuildTree = makeSetupHook { - # name = "keep-build-tree-hook"; - # } ./setup-hooks/keep-build-tree.sh; - - # moveBuildTree = makeSetupHook { - # name = "move-build-tree-hook"; - # } ./setup-hooks/move-build-tree.sh; - - # enableGCOVInstrumentation = makeSetupHook { - # name = "enable-gcov-instrumentation-hook"; - # } ./setup-hooks/enable-coverage-instrumentation.sh; - - # makeGCOVReport = makeSetupHook { - # name = "make-gcov-report-hook"; - # propagatedBuildInputs = [ lcov enableGCOVInstrumentation ]; - # } ./setup-hooks/make-coverage-analysis-report.sh; - - # makeHardcodeGsettingsPatch = callPackage ./make-hardcode-gsettings-patch { }; - - # # 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; - - # wrapGAppsHook = callPackage ./setup-hooks/wrap-gapps-hook { - # makeWrapper = makeBinaryWrapper; - # }; - - # wrapGAppsHook4 = wrapGAppsHook.override { gtk3 = __splicedPackages.gtk4; }; - - # wrapGAppsNoGuiHook = wrapGAppsHook.override { isGraphical = false; }; - - # separateDebugInfo = makeSetupHook { - # 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; - - # useOldCXXAbi = makeSetupHook { - # name = "use-old-cxx-abi-hook"; - # } ./setup-hooks/use-old-cxx-abi.sh; - - # iconConvTools = callPackage ./icon-conv-tools { }; - - # validatePkgConfig = makeSetupHook - # { name = "validate-pkg-config"; propagatedBuildInputs = [ findutils pkg-config ]; } - # ./setup-hooks/validate-pkg-config.sh; - - # patchPpdFilesHook = callPackage ./setup-hooks/patch-ppd-files { }; - - #package writers - writers = callPackage ./writers { }; - - # # lib functions depending on pkgs - # inherit (import ../pkgs-lib { - # # The `lib` variable in this scope doesn't include any applied lib overlays, - # # `pkgs.lib` does. - # inherit (pkgs) lib; - # inherit pkgs; - # }) formats; - - testers = callPackage ./testers { }; - - # deterministic-uname = callPackage ./deterministic-uname { }; - - wrapCCWith = - { 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. - # See the bintools attribute for the logic and reasoning. We need to provide - # 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 - # 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: - callPackage ./cc-wrapper ( - let - self = { - nativeTools = stdenv.targetPlatform == stdenv.hostPlatform && stdenv.cc.nativeTools or false; - nativeLibc = stdenv.targetPlatform == stdenv.hostPlatform && stdenv.cc.nativeLibc or false; - nativePrefix = stdenv.cc.nativePrefix or ""; - noLibc = !self.nativeLibc && (self.libc == null); - - isGNU = cc.isGNU or false; - isClang = cc.isClang or false; - - inherit cc bintools libc libcxx extraPackages nixSupport zlib; - } // extraArgs; - in - self - ); - - wrapCC = cc: wrapCCWith { - inherit cc; - }; - - wrapBintoolsWith = - { bintools - , libc ? if stdenv.targetPlatform != stdenv.hostPlatform then libcCross else stdenv.cc.libc - , ... - } @ extraArgs: - callPackage ./bintools-wrapper ( - let - self = { - nativeTools = stdenv.targetPlatform == stdenv.hostPlatform && stdenv.cc.nativeTools or false; - nativeLibc = stdenv.targetPlatform == stdenv.hostPlatform && stdenv.cc.nativeLibc or false; - nativePrefix = stdenv.cc.nativePrefix or ""; - - noLibc = (self.libc == null); - - inherit bintools libc; - inherit (darwin) postLinkSignHook signingUtils; - } // extraArgs; - in - self - ); - - # sourceFromHead = callPackage ./source-from-head-fun.nix { }; - - 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 deleted file mode 100644 index 80c63bc..0000000 --- a/pkgs/build-support/php/build-composer-project.nix +++ /dev/null @@ -1,85 +0,0 @@ -{ callPackage, stdenvNoCC, lib, writeTextDir, php, makeBinaryWrapper, fetchFromGitHub, fetchurl }: - -let - buildComposerProjectOverride = finalAttrs: previousAttrs: - - let - phpDrv = finalAttrs.php or php; - composer = finalAttrs.composer or phpDrv.packages.composer; - composer-local-repo-plugin = callPackage ./pkgs/composer-local-repo-plugin.nix { }; - in - { - composerLock = previousAttrs.composerLock or null; - composerNoDev = previousAttrs.composerNoDev or true; - composerNoPlugins = previousAttrs.composerNoPlugins or true; - composerNoScripts = previousAttrs.composerNoScripts or true; - composerStrictValidation = previousAttrs.composerStrictValidation or true; - - nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [ - composer - composer-local-repo-plugin - phpDrv - phpDrv.composerHooks.composerInstallHook - ]; - - 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 - - runHook postConfigure - ''; - - buildPhase = previousAttrs.buildPhase or '' - runHook preBuild - - runHook postBuild - ''; - - doCheck = previousAttrs.doCheck or true; - checkPhase = previousAttrs.checkPhase or '' - runHook preCheck - - runHook postCheck - ''; - - installPhase = previousAttrs.installPhase or '' - runHook preInstall - - runHook postInstall - ''; - - doInstallCheck = previousAttrs.doInstallCheck or false; - installCheckPhase = previousAttrs.installCheckPhase or '' - runHook preInstallCheck - - runHook postInstallCheck - ''; - - composerRepository = phpDrv.mkComposerRepository { - inherit composer composer-local-repo-plugin; - inherit (finalAttrs) patches pname src vendorHash version; - - composerLock = previousAttrs.composerLock or null; - composerNoDev = previousAttrs.composerNoDev or true; - composerNoPlugins = previousAttrs.composerNoPlugins or true; - composerNoScripts = previousAttrs.composerNoScripts or true; - composerStrictValidation = previousAttrs.composerStrictValidation or true; - }; - - COMPOSER_CACHE_DIR="/dev/null"; - COMPOSER_DISABLE_NETWORK="1"; - COMPOSER_MIRROR_PATH_REPOS="1"; - - meta = previousAttrs.meta or { } // { - platforms = lib.platforms.all; - }; - }; -in -args: (stdenvNoCC.mkDerivation args).overrideAttrs buildComposerProjectOverride diff --git a/pkgs/build-support/php/build-composer-repository.nix b/pkgs/build-support/php/build-composer-repository.nix deleted file mode 100644 index e359c08..0000000 --- a/pkgs/build-support/php/build-composer-repository.nix +++ /dev/null @@ -1,96 +0,0 @@ -{ callPackage, stdenvNoCC, lib, writeTextDir, fetchFromGitHub, php }: - -let - mkComposerRepositoryOverride = - /* - We cannot destruct finalAttrs since the attrset below is used to construct it - and Nix currently does not support lazy attribute names. - { - php ? null, - composer ? null, - composerLock ? "composer.lock", - src, - vendorHash, - ... - }@finalAttrs: - */ - finalAttrs: previousAttrs: - - let - phpDrv = finalAttrs.php or php; - composer = finalAttrs.composer or phpDrv.packages.composer; - 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 ? 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."); - { - composerNoDev = previousAttrs.composerNoDev or true; - composerNoPlugins = previousAttrs.composerNoPlugins or true; - composerNoScripts = previousAttrs.composerNoScripts or true; - composerStrictValidation = previousAttrs.composerStrictValidation or true; - - name = "${previousAttrs.pname}-${previousAttrs.version}-composer-repository"; - - # See https://github.com/NixOS/nix/issues/6660 - dontPatchShebangs = previousAttrs.dontPatchShebangs or true; - - nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [ - composer - composer-local-repo-plugin - phpDrv - phpDrv.composerHooks.composerRepositoryHook - ]; - - buildInputs = previousAttrs.buildInputs or [ ]; - - strictDeps = previousAttrs.strictDeps or true; - - # Should we keep these empty phases? - configurePhase = previousAttrs.configurePhase or '' - runHook preConfigure - - runHook postConfigure - ''; - - buildPhase = previousAttrs.buildPhase or '' - runHook preBuild - - runHook postBuild - ''; - - doCheck = previousAttrs.doCheck or true; - checkPhase = previousAttrs.checkPhase or '' - runHook preCheck - - runHook postCheck - ''; - - installPhase = previousAttrs.installPhase or '' - runHook preInstall - - runHook postInstall - ''; - - doInstallCheck = previousAttrs.doInstallCheck or false; - installCheckPhase = previousAttrs.installCheckPhase or '' - runHook preInstallCheck - - runHook postInstallCheck - ''; - - COMPOSER_CACHE_DIR = "/dev/null"; - COMPOSER_MIRROR_PATH_REPOS = "1"; - COMPOSER_HTACCESS_PROTECT = "0"; - COMPOSER_DISABLE_NETWORK = "0"; - - outputHashMode = "recursive"; - outputHashAlgo = if (finalAttrs ? vendorHash && finalAttrs.vendorHash != "") then null else "sha256"; - outputHash = finalAttrs.vendorHash or ""; - }; -in -args: (stdenvNoCC.mkDerivation args).overrideAttrs mkComposerRepositoryOverride diff --git a/pkgs/build-support/php/build-pecl.nix b/pkgs/build-support/php/build-pecl.nix deleted file mode 100644 index 6f38a66..0000000 --- a/pkgs/build-support/php/build-pecl.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ 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 ? { } -, ... -}@args: - -stdenv.mkDerivation (args // { - name = "php-${pname}-${version}"; - extensionName = pname; - - inherit src; - - nativeBuildInputs = [ autoreconfHook re2c ] ++ nativeBuildInputs; - buildInputs = [ php ] ++ peclDeps ++ buildInputs; - - 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"; - - 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/composer-install-hook.sh b/pkgs/build-support/php/hooks/composer-install-hook.sh deleted file mode 100644 index edba0e5..0000000 --- a/pkgs/build-support/php/hooks/composer-install-hook.sh +++ /dev/null @@ -1,125 +0,0 @@ -declare composerRepository -declare version -declare composerNoDev -declare composerNoPlugins -declare composerNoScripts - -preConfigureHooks+=(composerInstallConfigureHook) -preBuildHooks+=(composerInstallBuildHook) -preCheckHooks+=(composerInstallCheckHook) -preInstallHooks+=(composerInstallInstallHook) - -source @phpScriptUtils@ - -composerInstallConfigureHook() { - echo "Executing composerInstallConfigureHook" - - if [[ ! -e "${composerRepository}" ]]; then - echo "No local composer repository found." - exit 1 - fi - - if [[ -e "$composerLock" ]]; then - cp "$composerLock" composer.lock - fi - - if [[ ! -f "composer.lock" ]]; then - setComposeRootVersion - - composer \ - --no-ansi \ - --no-install \ - --no-interaction \ - ${composerNoDev:+--no-dev} \ - ${composerNoPlugins:+--no-plugins} \ - ${composerNoScripts:+--no-scripts} \ - update - - mkdir -p $out - cp composer.lock $out/ - - echo - echo -e "\e[31mERROR: No composer.lock found\e[0m" - echo - echo -e '\e[31mNo composer.lock file found, consider adding one to your repository to ensure reproducible builds.\e[0m' - echo -e "\e[31mIn the meantime, a composer.lock file has been generated for you in $out/composer.lock\e[0m" - echo - echo -e '\e[31mTo fix the issue:\e[0m' - echo -e "\e[31m1. Copy the composer.lock file from $out/composer.lock to the project's source:\e[0m" - echo -e "\e[31m cp $out/composer.lock \e[0m" - echo -e '\e[31m2. Add the composerLock attribute, pointing to the copied composer.lock file:\e[0m' - echo -e '\e[31m composerLock = ./composer.lock;\e[0m' - echo - - exit 1 - fi - - echo "Validating consistency between composer.lock and ${composerRepository}/composer.lock" - if ! @cmp@ -s "composer.lock" "${composerRepository}/composer.lock"; then - echo - echo -e "\e[31mERROR: vendorHash is out of date\e[0m" - echo - echo -e "\e[31mcomposer.lock is not the same in $composerRepository\e[0m" - echo - echo -e "\e[31mTo fix the issue:\e[0m" - echo -e '\e[31m1. Set vendorHash to an empty string: `vendorHash = "";`\e[0m' - echo -e '\e[31m2. Build the derivation and wait for it to fail with a hash mismatch\e[0m' - echo -e '\e[31m3. Copy the "got: sha256-..." value back into the vendorHash field\e[0m' - echo -e '\e[31m You should have: vendorHash = "sha256-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=";\e[0m' - echo - - exit 1 - fi - - chmod +w composer.json composer.lock - - echo "Finished composerInstallConfigureHook" -} - -composerInstallBuildHook() { - echo "Executing composerInstallBuildHook" - - setComposeRootVersion - - # Since this file cannot be generated in the composer-repository-hook.sh - # because the file contains hardcoded nix store paths, we generate it here. - composer-local-repo-plugin --no-ansi build-local-repo-lock -m "${composerRepository}" . - - echo "Finished composerInstallBuildHook" -} - -composerInstallCheckHook() { - echo "Executing composerInstallCheckHook" - - checkComposerValidate - - echo "Finished composerInstallCheckHook" -} - -composerInstallInstallHook() { - echo "Executing composerInstallInstallHook" - - setComposeRootVersion - - # Finally, run `composer install` to install the dependencies and generate - # the autoloader. - composer \ - --no-ansi \ - --no-interaction \ - ${composerNoDev:+--no-dev} \ - ${composerNoPlugins:+--no-plugins} \ - ${composerNoScripts:+--no-scripts} \ - install - - # Copy the relevant files only in the store. - mkdir -p "$out"/share/php/"${pname}" - cp -r . "$out"/share/php/"${pname}"/ - - # Create symlinks for the binaries. - jq -r -c 'try (.bin[] | select(test(".bat$")? | not) )' composer.json | while read -r bin; do - mkdir -p "$out"/share/php/"${pname}" "$out"/bin - makeWrapper "$out"/share/php/"${pname}"/"$bin" "$out"/bin/"$(basename "$bin")" - done - - echo "Finished composerInstallInstallHook" -} diff --git a/pkgs/build-support/php/hooks/composer-repository-hook.sh b/pkgs/build-support/php/hooks/composer-repository-hook.sh deleted file mode 100644 index 762e762..0000000 --- a/pkgs/build-support/php/hooks/composer-repository-hook.sh +++ /dev/null @@ -1,91 +0,0 @@ -declare composerLock -declare version -declare composerNoDev -declare composerNoPlugins -declare composerNoScripts -declare composerStrictValidation - -preConfigureHooks+=(composerRepositoryConfigureHook) -preBuildHooks+=(composerRepositoryBuildHook) -preCheckHooks+=(composerRepositoryCheckHook) -preInstallHooks+=(composerRepositoryInstallHook) - -source @phpScriptUtils@ - -composerRepositoryConfigureHook() { - echo "Executing composerRepositoryConfigureHook" - - if [[ -e "$composerLock" ]]; then - cp $composerLock composer.lock - fi - - if [[ ! -f "composer.lock" ]]; then - setComposeRootVersion - - composer \ - --no-ansi \ - --no-install \ - --no-interaction \ - ${composerNoDev:+--no-dev} \ - ${composerNoPlugins:+--no-plugins} \ - ${composerNoScripts:+--no-scripts} \ - update - - mkdir -p $out - cp composer.lock $out/ - - echo - echo -e "\e[31mERROR: No composer.lock found\e[0m" - echo - echo -e '\e[31mNo composer.lock file found, consider adding one to your repository to ensure reproducible builds.\e[0m' - echo -e "\e[31mIn the meantime, a composer.lock file has been generated for you in $out/composer.lock\e[0m" - echo - echo -e '\e[31mTo fix the issue:\e[0m' - echo -e "\e[31m1. Copy the composer.lock file from $out/composer.lock to the project's source:\e[0m" - echo -e "\e[31m cp $out/composer.lock \e[0m" - echo -e '\e[31m2. Add the composerLock attribute, pointing to the copied composer.lock file:\e[0m' - echo -e '\e[31m composerLock = ./composer.lock;\e[0m' - echo - - exit 1 - fi - - echo "Finished composerRepositoryConfigureHook" -} - -composerRepositoryBuildHook() { - echo "Executing composerRepositoryBuildHook" - - mkdir -p repository - - setComposeRootVersion - - # Build the local composer repository - # The command 'build-local-repo' is provided by the Composer plugin - # nix-community/composer-local-repo-plugin. - composer-local-repo-plugin --no-ansi build-local-repo-lock ${composerNoDev:+--no-dev} -r repository - - echo "Finished composerRepositoryBuildHook" -} - -composerRepositoryCheckHook() { - echo "Executing composerRepositoryCheckHook" - - checkComposerValidate - - echo "Finished composerRepositoryCheckHook" -} - -composerRepositoryInstallHook() { - echo "Executing composerRepositoryInstallHook" - - mkdir -p $out - - cp -ar repository/. $out/ - - # Copy the composer.lock files to the output directory, to be able to validate consistency with - # the src composer.lock file where this fixed-output derivation is used - cp composer.lock $out/ - - echo "Finished composerRepositoryInstallHook" -} diff --git a/pkgs/build-support/php/hooks/default.nix b/pkgs/build-support/php/hooks/default.nix deleted file mode 100644 index 98e81c8..0000000 --- a/pkgs/build-support/php/hooks/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ lib -, makeSetupHook -, diffutils -, jq -, writeShellApplication -, moreutils -, makeBinaryWrapper -, cacert -, buildPackages -}: - -let - php-script-utils = writeShellApplication { - name = "php-script-utils"; - runtimeInputs = [ jq ]; - text = builtins.readFile ./php-script-utils.bash; - }; -in -{ - 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; -} diff --git a/pkgs/build-support/php/hooks/php-script-utils.bash b/pkgs/build-support/php/hooks/php-script-utils.bash deleted file mode 100644 index bba0242..0000000 --- a/pkgs/build-support/php/hooks/php-script-utils.bash +++ /dev/null @@ -1,77 +0,0 @@ -declare version -declare composerStrictValidation - -setComposeRootVersion() { - set +e # Disable exit on error - - if [[ -v version ]]; then - echo -e "\e[32mSetting COMPOSER_ROOT_VERSION to $version\e[0m" - export COMPOSER_ROOT_VERSION=$version - fi - - set -e -} - -checkComposerValidate() { - if ! composer validate --strict --no-ansi --no-interaction --quiet --no-check-all --no-check-lock; then - if [ "1" == "${composerStrictValidation-}" ]; then - echo - echo -e "\e[31mERROR: composer files validation failed\e[0m" - echo - echo -e '\e[31mThe validation of the composer.json failed.\e[0m' - echo -e '\e[31mMake sure that the file composer.json is valid.\e[0m' - echo - echo -e '\e[31mTo address the issue efficiently, follow one of these steps:\e[0m' - echo -e '\e[31m 1. File an issue in the project'\''s issue tracker with detailed information, and apply any available remote patches as a temporary solution '\('with fetchpatch'\)'.\e[0m' - echo -e '\e[31m 2. If an immediate fix is needed or if reporting upstream isn'\''t suitable, develop a temporary local patch.\e[0m' - echo - exit 1 - else - echo - echo -e "\e[33mWARNING: composer files validation failed\e[0m" - echo - echo -e '\e[33mThe validation of the composer.json failed.\e[0m' - echo -e '\e[33mMake sure that the file composer.json is valid.\e[0m' - echo - echo -e '\e[33mTo address the issue efficiently, follow one of these steps:\e[0m' - echo -e '\e[33m 1. File an issue in the project'\''s issue tracker with detailed information, and apply any available remote patches as a temporary solution with '\('with fetchpatch'\)'.\e[0m' - echo -e '\e[33m 2. If an immediate fix is needed or if reporting upstream isn'\''t suitable, develop a temporary local patch.\e[0m' - echo - echo -e '\e[33mThis check is not blocking, but it is recommended to fix the issue.\e[0m' - echo - fi - fi - - if ! composer validate --strict --no-ansi --no-interaction --quiet --no-check-all --check-lock; then - if [ "1" == "${composerStrictValidation-}" ]; then - echo - echo -e "\e[31mERROR: composer files validation failed\e[0m" - echo - echo -e '\e[31mThe validation of the composer.json and composer.lock failed.\e[0m' - echo -e '\e[31mMake sure that the file composer.lock is consistent with composer.json.\e[0m' - echo - echo -e '\e[31mThis often indicates an issue with the upstream project, which can typically be resolved by reporting the issue to the relevant project maintainers.\e[0m' - echo - echo -e '\e[31mTo address the issue efficiently, follow one of these steps:\e[0m' - echo -e '\e[31m 1. File an issue in the project'\''s issue tracker with detailed information '\('run '\''composer update --lock --no-install'\'' to fix the issue'\)', and apply any available remote patches as a temporary solution with '\('with fetchpatch'\)'.\e[0m' - echo -e '\e[31m 2. If an immediate fix is needed or if reporting upstream isn'\''t suitable, develop a temporary local patch.\e[0m' - echo - exit 1 - else - echo - echo -e "\e[33mWARNING: composer files validation failed\e[0m" - echo - echo -e '\e[33mThe validation of the composer.json and composer.lock failed.\e[0m' - echo -e '\e[33mMake sure that the file composer.lock is consistent with composer.json.\e[0m' - echo - echo -e '\e[33mThis often indicates an issue with the upstream project, which can typically be resolved by reporting the issue to the relevant project maintainers.\e[0m' - echo - echo -e '\e[33mTo address the issue efficiently, follow one of these steps:\e[0m' - echo -e '\e[33m 1. File an issue in the project'\''s issue tracker with detailed information '\('run '\''composer update --lock --no-install'\'' to fix the issue'\)', and apply any available remote patches as a temporary solution with '\('with fetchpatch'\)'.\e[0m' - echo -e '\e[33m 2. If an immediate fix is needed or if reporting upstream isn'\''t suitable, develop a temporary local patch.\e[0m' - echo - echo -e '\e[33mThis check is not blocking, but it is recommended to fix the issue.\e[0m' - echo - fi - fi -} diff --git a/pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix b/pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix deleted file mode 100644 index bfdc3d4..0000000 --- a/pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix +++ /dev/null @@ -1,113 +0,0 @@ -{ php, callPackage, stdenvNoCC, lib, fetchFromGitHub, makeBinaryWrapper }: - -let - composer = callPackage ./composer-phar.nix { - inherit (php.packages.composer) version pharHash; - }; - - composerKeys = stdenvNoCC.mkDerivation (finalComposerKeysAttrs: { - pname = "composer-keys"; - version = "fa5a62092f33e094073fbda23bbfc7188df3cbc5"; - - src = fetchFromGitHub { - owner = "composer"; - repo = "composer.github.io"; - rev = "${finalComposerKeysAttrs.version}"; - hash = "sha256-3Sfn71LDG1jHwuEIU8iEnV3k6D6QTX7KVIKVaNSuCVE="; - }; - - installPhase = '' - runHook preInstall - - mkdir -p $out - install releases.pub $out/keys.tags.pub - install snapshots.pub $out/keys.dev.pub - - runHook postInstall - ''; - }); -in -stdenvNoCC.mkDerivation (finalAttrs: { - pname = "composer-local-repo-plugin"; - version = "1.1.0"; - - src = fetchFromGitHub { - owner = "nix-community"; - repo = "composer-local-repo-plugin"; - rev = finalAttrs.version; - hash = "sha256-edbn07r/Uc1g0qOuVBZBs6N1bMN5kIfA1b4FCufdw5M="; - }; - - COMPOSER_CACHE_DIR = "/dev/null"; - COMPOSER_MIRROR_PATH_REPOS = "1"; - COMPOSER_HTACCESS_PROTECT = "0"; - COMPOSER_DISABLE_NETWORK = "1"; - - nativeBuildInputs = [ - makeBinaryWrapper - ]; - - buildInputs = [ - composer - ]; - - configurePhase = '' - runHook preConfigure - - export COMPOSER_HOME=${placeholder "out"} - - runHook postConfigure - ''; - - buildPhase = '' - runHook preBuild - - # Configure composer globally - composer global init --quiet --no-interaction --no-ansi \ - --name="nixos/composer" \ - --homepage "https://nixos.org/" \ - --description "Composer with nix-community/composer-local-repo-plugin" \ - --license "MIT" - - composer global config --quiet minimum-stability dev - composer global config --quiet prefer-stable true - composer global config --quiet apcu-autoloader false - composer global config --quiet allow-plugins.nix-community/composer-local-repo-plugin true - composer global config --quiet repo.packagist false - composer global config --quiet repo.plugin path $src - - # Install the local repository plugin - composer global require --quiet --no-ansi --no-interaction nix-community/composer-local-repo-plugin - - runHook postBuild - ''; - - checkPhase = '' - runHook preCheck - - composer global validate --no-ansi - composer global show --no-ansi nix-community/composer-local-repo-plugin - - runHook postCheck - ''; - - installPhase = '' - runHook preInstall - - mkdir -p $out - cp -ar ${composerKeys}/* $out/ - - makeWrapper ${composer}/bin/composer $out/bin/composer-local-repo-plugin \ - --prefix COMPOSER_HOME : $out - - runHook postInstall - ''; - - meta = { - description = "Composer local repo plugin for Composer"; - homepage = "https://github.com/nix-community/composer-local-repo-plugin"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ drupol ]; - platforms = lib.platforms.all; - }; -}) diff --git a/pkgs/build-support/php/pkgs/composer-phar.nix b/pkgs/build-support/php/pkgs/composer-phar.nix deleted file mode 100644 index f281334..0000000 --- a/pkgs/build-support/php/pkgs/composer-phar.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ - _7zz - , cacert - , curl - , fetchurl - , git - , lib - , makeBinaryWrapper - , php - , stdenvNoCC - , unzip - , xz - , version - , pharHash -}: - -stdenvNoCC.mkDerivation (finalAttrs: { - pname = "composer-phar"; - inherit version; - - src = fetchurl { - url = "https://github.com/composer/composer/releases/download/${finalAttrs.version}/composer.phar"; - hash = pharHash; - }; - - dontUnpack = true; - - nativeBuildInputs = [ makeBinaryWrapper ]; - - installPhase = '' - runHook preInstall - - mkdir -p $out/bin - 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 ]} - - runHook postInstall - ''; - - meta = { - changelog = "https://github.com/composer/composer/releases/tag/${finalAttrs.version}"; - description = "Dependency Manager for PHP, shipped from the PHAR file"; - homepage = "https://getcomposer.org/"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ drupol ]; - platforms = lib.platforms.all; - }; -}) diff --git a/pkgs/build-support/pkg-config-wrapper/add-flags.sh b/pkgs/build-support/pkg-config-wrapper/add-flags.sh deleted file mode 100644 index 90aee71..0000000 --- a/pkgs/build-support/pkg-config-wrapper/add-flags.sh +++ /dev/null @@ -1,12 +0,0 @@ -# See cc-wrapper for comments. -var_templates_list=( - PKG_CONFIG_PATH -) - -accumulateRoles - -for var in "${var_templates_list[@]}"; do - mangleVarListGeneric ":" "$var" ${role_suffixes[@]+"${role_suffixes[@]}"} -done - -export NIX_PKG_CONFIG_WRAPPER_FLAGS_SET_@suffixSalt@=1 diff --git a/pkgs/build-support/pkg-config-wrapper/default.nix b/pkgs/build-support/pkg-config-wrapper/default.nix deleted file mode 100644 index 4a6c189..0000000 --- a/pkgs/build-support/pkg-config-wrapper/default.nix +++ /dev/null @@ -1,139 +0,0 @@ -# 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 ? "" -}: - -let - inherit (lib) - attrByPath - getBin - optional - optionalAttrs - optionals - optionalString - replaceStrings - ; - - stdenv = stdenvNoCC; - inherit (stdenv) hostPlatform targetPlatform; - - # Prefix for binaries. Customarily ends with a dash separator. - # - # TODO(@Ericson2314) Make unconditional, or optional but always true by - # default. - targetPrefix = optionalString (targetPlatform != hostPlatform) - (targetPlatform.config + "-"); - - # See description in cc-wrapper. - suffixSalt = replaceStrings ["-" "."] ["_" "_"] targetPlatform.config; - - wrapperBinName = "${targetPrefix}${baseBinName}"; -in - -stdenv.mkDerivation { - pname = targetPrefix + pkg-config.pname + "-wrapper"; - inherit (pkg-config) version; - - enableParallelBuilding = true; - - preferLocalBuild = true; - - outputs = [ "out" ] ++ optionals propagateDoc ([ "man" ] ++ optional (pkg-config ? doc) "doc"); - - passthru = { - inherit targetPrefix suffixSalt; - inherit pkg-config; - }; - - strictDeps = true; - dontBuild = true; - dontConfigure = true; - dontUnpack = true; - - # Additional flags passed to pkg-config. - addFlags = optional stdenv.targetPlatform.isStatic "--static"; - - installPhase = - '' - mkdir -p $out/bin $out/nix-support - - wrap() { - local dst="$1" - local wrapper="$2" - export prog="$3" - substituteAll "$wrapper" "$out/bin/$dst" - chmod +x "$out/bin/$dst" - } - - echo $pkg-config > $out/nix-support/orig-pkg-config - - wrap ${wrapperBinName} ${./pkg-config-wrapper.sh} "${getBin pkg-config}/bin/${baseBinName}" - '' - # symlink in share for autoconf to find macros - - # TODO(@Ericson2314): in the future just make the unwrapped pkg-config a - # propagated dep once we can rely on downstream deps comming first in - # search paths. (https://github.com/NixOS/nixpkgs/pull/31414 took a crack - # at this.) - + '' - ln -s ${pkg-config}/share $out/share - ''; - - setupHooks = [ - ../setup-hooks/role.bash - ./setup-hook.sh - ]; - - postFixup = - ## - ## User env support - ## - - # Propagate the underling unwrapped pkg-config so that if you - # install the wrapper, you get anything else it might provide. - '' - printWords ${pkg-config} > $out/nix-support/propagated-user-env-packages - '' - - ## - ## Man page and doc support - ## - + 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 - substituteAll ${../wrapper-common/utils.bash} $out/nix-support/utils.bash - '' - - ## - ## Extra custom steps - ## - + extraBuildCommands; - - env = { - shell = getBin stdenvNoCC.shell + stdenvNoCC.shell.shellPath or ""; - wrapperName = "PKG_CONFIG_WRAPPER"; - inherit targetPrefix suffixSalt baseBinName; - }; - - 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_ - + " (wrapper script)"; - priority = 10; - mainProgram = wrapperBinName; - }; -} diff --git a/pkgs/build-support/pkg-config-wrapper/pkg-config-wrapper.sh b/pkgs/build-support/pkg-config-wrapper/pkg-config-wrapper.sh deleted file mode 100644 index 1d43c8e..0000000 --- a/pkgs/build-support/pkg-config-wrapper/pkg-config-wrapper.sh +++ /dev/null @@ -1,23 +0,0 @@ -#! @shell@ -set -eu -o pipefail +o posix -shopt -s nullglob - -if (( "${NIX_DEBUG:-0}" >= 7 )); then - set -x -fi - -source @out@/nix-support/utils.bash - -if [ -z "${NIX_PKG_CONFIG_WRAPPER_FLAGS_SET_@suffixSalt@:-}" ]; then - source @out@/nix-support/add-flags.sh -fi - -set -- @addFlags@ "$@" - -if (( ${#role_suffixes[@]} > 0 )); then - # replace env var with nix-modified one - PKG_CONFIG_PATH=$PKG_CONFIG_PATH_@suffixSalt@ exec @prog@ "$@" -else - # pkg-config isn't a real dependency so ignore setup hook entirely - exec @prog@ "$@" -fi diff --git a/pkgs/build-support/pkg-config-wrapper/setup-hook.sh b/pkgs/build-support/pkg-config-wrapper/setup-hook.sh deleted file mode 100644 index 34f1a99..0000000 --- a/pkgs/build-support/pkg-config-wrapper/setup-hook.sh +++ /dev/null @@ -1,29 +0,0 @@ -# pkg-config Wrapper hygiene -# -# See comments in cc-wrapper's setup hook. This works exactly the same way. - -# Skip setup hook if we're neither a build-time dep, nor, temporarily, doing a -# native compile. -# -# TODO(@Ericson2314): No native exception -[[ -z ${strictDeps-} ]] || (( "$hostOffset" < 0 )) || return 0 - -pkgConfigWrapper_addPkgConfigPath () { - # See ../setup-hooks/role.bash - local role_post - getHostRoleEnvHook - - addToSearchPath "PKG_CONFIG_PATH${role_post}" "$1/lib/pkgconfig" - addToSearchPath "PKG_CONFIG_PATH${role_post}" "$1/share/pkgconfig" -} - -# See ../setup-hooks/role.bash -getTargetRole -getTargetRoleWrapper - -addEnvHooks "$targetOffset" pkgConfigWrapper_addPkgConfigPath - -export PKG_CONFIG${role_post}=@targetPrefix@@baseBinName@ - -# No local scope in sourced file -unset -v role_post diff --git a/pkgs/build-support/plugins.nix b/pkgs/build-support/plugins.nix deleted file mode 100644 index 31b478c..0000000 --- a/pkgs/build-support/plugins.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib }: -# 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" - - 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 deleted file mode 100644 index 6389e8d..0000000 --- a/pkgs/build-support/portable-service/default.nix +++ /dev/null @@ -1,111 +0,0 @@ -{ pkgs, lib, stdenv }: -/* - Create a systemd portable service image - https://systemd.io/PORTABLE_SERVICES/ - - Example: - pkgs.portableService { - pname = "demo"; - version = "1.0"; - units = [ demo-service demo-socket ]; - } -*/ -{ - # The name and version of the portable service. The resulting image will be - # created in result/$pname_$version.raw - 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 - - # Basic info about the portable service image, used for the generated - # /etc/os-release -, 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 ? [ ] - - # A list of additional derivations to be included in the image as-is. -, contents ? [ ] - - # mksquashfs options -, squashfsTools ? pkgs.squashfsTools -, squash-compression ? "xz -Xdict-size 100%" -, squash-block-size ? "1M" -}: - -let - filterNull = lib.filterAttrs (_: v: v != null); - envFileGenerator = lib.generators.toKeyValue { }; - - rootFsScaffold = - let - os-release-params = { - PORTABLE_ID = pname; - PORTABLE_PRETTY_NAME = description; - HOME_URL = homepage; - ID = "nixos"; - PRETTY_NAME = "NixOS"; - BUILD_ID = "rolling"; - }; - 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 - - # 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) - ; - }; -in - -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"; - inherit version; - - nativeBuildInputs = [ squashfsTools ]; - closureInfo = pkgs.closureInfo { rootPaths = [ rootFsScaffold ] ++ contents; }; - - buildCommand = '' - mkdir -p nix/store - for i in $(< $closureInfo/store-paths); do - cp -a "$i" "''${i:1}" - done - - mkdir -p $out - # the '.raw' suffix is mandatory by the portable service spec - mksquashfs nix ${rootFsScaffold}/* $out/"${pname}_${version}.raw" \ - -quiet -noappend \ - -exit-on-error \ - -keep-as-directory \ - -all-root -root-mode 755 \ - -b ${squash-block-size} -comp ${squash-compression} - ''; -} diff --git a/pkgs/build-support/prefer-remote-fetch/default.nix b/pkgs/build-support/prefer-remote-fetch/default.nix deleted file mode 100644 index 3257e70..0000000 --- a/pkgs/build-support/prefer-remote-fetch/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -# An overlay that download sources on remote builder. -# This is useful when the evaluating machine has a slow -# upload while the builder can fetch faster directly from the source. -# Usage: Put the following snippet in your usual overlay definition: -# -# self: super: -# (super.prefer-remote-fetch self super) -# Full configuration example for your own account: -# -# $ mkdir ~/.config/nixpkgs/overlays/ -# $ echo 'self: super: super.prefer-remote-fetch self super' > ~/.config/nixpkgs/overlays/prefer-remote-fetch.nix -# -self: super: { - binary-cache = args: super.binary-cache ({ preferLocalBuild = false; } // args); - buildenv = args: super.buildenv ({ preferLocalBuild = false; } // args); - fetchfossil = args: super.fetchfossil ({ preferLocalBuild = false; } // args); - fetchdocker = args: super.fetchdocker ({ preferLocalBuild = false; } // args); - fetchgit = args: super.fetchgit ({ preferLocalBuild = false; } // args); - fetchgx = args: super.fetchgx ({ preferLocalBuild = false; } // args); - fetchhg = args: super.fetchhg ({ preferLocalBuild = false; } // args); - fetchipfs = args: super.fetchipfs ({ preferLocalBuild = false; } // args); - fetchrepoproject = args: super.fetchrepoproject ({ preferLocalBuild = false; } // args); - fetchs3 = args: super.fetchs3 ({ preferLocalBuild = false; } // args); - fetchsvn = args: super.fetchsvn ({ preferLocalBuild = false; } // args); - fetchurl = args: super.fetchurl ({ preferLocalBuild = false; } // args); -} diff --git a/pkgs/build-support/references-by-popularity/closure-graph.py b/pkgs/build-support/references-by-popularity/closure-graph.py deleted file mode 100644 index 4f8efd4..0000000 --- a/pkgs/build-support/references-by-popularity/closure-graph.py +++ /dev/null @@ -1,567 +0,0 @@ -# IMPORTANT: Making changes? -# -# Validate your changes with python3 ./closure-graph.py --test - - -# Using a simple algorithm, convert the references to a path in to a -# sorted list of dependent paths based on how often they're referenced -# and how deep in the tree they live. Equally-"popular" paths are then -# sorted by name. -# -# The existing writeClosure prints the paths in a simple ascii-based -# sorting of the paths. -# -# Sorting the paths by graph improves the chances that the difference -# between two builds appear near the end of the list, instead of near -# the beginning. This makes a difference for Nix builds which export a -# closure for another program to consume, if that program implements its -# own level of binary diffing. -# -# For an example, Docker Images. If each store path is a separate layer -# then Docker Images can be very efficiently transfered between systems, -# and we get very good cache reuse between images built with the same -# version of Nixpkgs. However, since Docker only reliably supports a -# small number of layers (42) it is important to pick the individual -# layers carefully. By storing very popular store paths in the first 40 -# layers, we improve the chances that the next Docker image will share -# many of those layers.* -# -# Given the dependency tree: -# -# A - B - C - D -\ -# \ \ \ \ -# \ \ \ \ -# \ \ - E ---- F -# \- G -# -# Nodes which have multiple references are duplicated: -# -# A - B - C - D - F -# \ \ \ -# \ \ \- E - F -# \ \ -# \ \- E - F -# \ -# \- G -# -# Each leaf node is now replaced by a counter defaulted to 1: -# -# A - B - C - D - (F:1) -# \ \ \ -# \ \ \- E - (F:1) -# \ \ -# \ \- E - (F:1) -# \ -# \- (G:1) -# -# Then each leaf counter is merged with its parent node, replacing the -# parent node with a counter of 1, and each existing counter being -# incremented by 1. That is to say `- D - (F:1)` becomes `- (D:1, F:2)`: -# -# A - B - C - (D:1, F:2) -# \ \ \ -# \ \ \- (E:1, F:2) -# \ \ -# \ \- (E:1, F:2) -# \ -# \- (G:1) -# -# Then each leaf counter is merged with its parent node again, merging -# any counters, then incrementing each: -# -# A - B - (C:1, D:2, E:2, F:5) -# \ \ -# \ \- (E:1, F:2) -# \ -# \- (G:1) -# -# And again: -# -# A - (B:1, C:2, D:3, E:4, F:8) -# \ -# \- (G:1) -# -# And again: -# -# (A:1, B:2, C:3, D:4, E:5, F:9, G:2) -# -# and then paths have the following "popularity": -# -# A 1 -# B 2 -# C 3 -# D 4 -# E 5 -# F 9 -# G 2 -# -# and the popularity contest would result in the paths being printed as: -# -# F -# E -# D -# C -# B -# G -# A -# -# * Note: People who have used a Dockerfile before assume Docker's -# Layers are inherently ordered. However, this is not true -- Docker -# layers are content-addressable and are not explicitly layered until -# they are composed in to an Image. - -import sys -import json -import unittest - -from pprint import pprint -from collections import defaultdict - - -def debug(msg, *args, **kwargs): - if False: - print( - "DEBUG: {}".format( - msg.format(*args, **kwargs) - ), - file=sys.stderr - ) - - -# Find paths in the original dataset which are never referenced by -# any other paths -def find_roots(closures): - roots = []; - - for closure in closures: - path = closure['path'] - if not any_refer_to(path, closures): - roots.append(path) - - return roots - -class TestFindRoots(unittest.TestCase): - def test_find_roots(self): - self.assertCountEqual( - find_roots([ - { - "path": "/nix/store/foo", - "references": [ - "/nix/store/foo", - "/nix/store/bar" - ] - }, - { - "path": "/nix/store/bar", - "references": [ - "/nix/store/bar", - "/nix/store/tux" - ] - }, - { - "path": "/nix/store/hello", - "references": [ - ] - } - ]), - ["/nix/store/foo", "/nix/store/hello"] - ) - - -def any_refer_to(path, closures): - for closure in closures: - if path != closure['path']: - if path in closure['references']: - return True - return False - -class TestAnyReferTo(unittest.TestCase): - def test_has_references(self): - self.assertTrue( - any_refer_to( - "/nix/store/bar", - [ - { - "path": "/nix/store/foo", - "references": [ - "/nix/store/bar" - ] - }, - ] - ), - ) - def test_no_references(self): - self.assertFalse( - any_refer_to( - "/nix/store/foo", - [ - { - "path": "/nix/store/foo", - "references": [ - "/nix/store/foo", - "/nix/store/bar" - ] - }, - ] - ), - ) - -def all_paths(closures): - paths = [] - for closure in closures: - paths.append(closure['path']) - paths.extend(closure['references']) - paths.sort() - return list(set(paths)) - - -class TestAllPaths(unittest.TestCase): - def test_returns_all_paths(self): - self.assertCountEqual( - all_paths([ - { - "path": "/nix/store/foo", - "references": [ - "/nix/store/foo", - "/nix/store/bar" - ] - }, - { - "path": "/nix/store/bar", - "references": [ - "/nix/store/bar", - "/nix/store/tux" - ] - }, - { - "path": "/nix/store/hello", - "references": [ - ] - } - ]), - ["/nix/store/foo", "/nix/store/bar", "/nix/store/hello", "/nix/store/tux",] - ) - def test_no_references(self): - self.assertFalse( - any_refer_to( - "/nix/store/foo", - [ - { - "path": "/nix/store/foo", - "references": [ - "/nix/store/foo", - "/nix/store/bar" - ] - }, - ] - ), - ) - -# Convert: -# -# [ -# { path: /nix/store/foo, references: [ /nix/store/foo, /nix/store/bar, /nix/store/baz ] }, -# { path: /nix/store/bar, references: [ /nix/store/bar, /nix/store/baz ] }, -# { path: /nix/store/baz, references: [ /nix/store/baz, /nix/store/tux ] }, -# { path: /nix/store/tux, references: [ /nix/store/tux ] } -# ] -# -# To: -# { -# /nix/store/foo: [ /nix/store/bar, /nix/store/baz ], -# /nix/store/bar: [ /nix/store/baz ], -# /nix/store/baz: [ /nix/store/tux ] }, -# /nix/store/tux: [ ] -# } -# -# Note that it drops self-references to avoid loops. -def make_lookup(closures): - lookup = {} - - for closure in closures: - # paths often self-refer - nonreferential_paths = [ref for ref in closure['references'] if ref != closure['path']] - lookup[closure['path']] = nonreferential_paths - - return lookup - -class TestMakeLookup(unittest.TestCase): - def test_returns_lookp(self): - self.assertDictEqual( - make_lookup([ - { - "path": "/nix/store/foo", - "references": [ - "/nix/store/foo", - "/nix/store/bar" - ] - }, - { - "path": "/nix/store/bar", - "references": [ - "/nix/store/bar", - "/nix/store/tux" - ] - }, - { - "path": "/nix/store/hello", - "references": [ - ] - } - ]), - { - "/nix/store/foo": [ "/nix/store/bar" ], - "/nix/store/bar": [ "/nix/store/tux" ], - "/nix/store/hello": [ ], - } - ) - -# Convert: -# -# /nix/store/foo with -# { -# /nix/store/foo: [ /nix/store/bar, /nix/store/baz ], -# /nix/store/bar: [ /nix/store/baz ], -# /nix/store/baz: [ /nix/store/tux ] }, -# /nix/store/tux: [ ] -# } -# -# To: -# -# { -# /nix/store/bar: { -# /nix/store/baz: { -# /nix/store/tux: {} -# } -# }, -# /nix/store/baz: { -# /nix/store/tux: {} -# } -# } -subgraphs_cache = {} -def make_graph_segment_from_root(root, lookup): - global subgraphs_cache - children = {} - for ref in lookup[root]: - # make_graph_segment_from_root is a pure function, and will - # always return the same result based on a given input. Thus, - # cache computation. - # - # Python's assignment will use a pointer, preventing memory - # bloat for large graphs. - if ref not in subgraphs_cache: - debug("Subgraph Cache miss on {}".format(ref)) - subgraphs_cache[ref] = make_graph_segment_from_root(ref, lookup) - else: - debug("Subgraph Cache hit on {}".format(ref)) - children[ref] = subgraphs_cache[ref] - return children - -class TestMakeGraphSegmentFromRoot(unittest.TestCase): - def test_returns_graph(self): - self.assertDictEqual( - make_graph_segment_from_root("/nix/store/foo", { - "/nix/store/foo": [ "/nix/store/bar" ], - "/nix/store/bar": [ "/nix/store/tux" ], - "/nix/store/tux": [ ], - "/nix/store/hello": [ ], - }), - { - "/nix/store/bar": { - "/nix/store/tux": {} - } - } - ) - def test_returns_graph_tiny(self): - self.assertDictEqual( - make_graph_segment_from_root("/nix/store/tux", { - "/nix/store/foo": [ "/nix/store/bar" ], - "/nix/store/bar": [ "/nix/store/tux" ], - "/nix/store/tux": [ ], - }), - {} - ) - -# Convert a graph segment in to a popularity-counted dictionary: -# -# From: -# { -# /nix/store/foo: { -# /nix/store/bar: { -# /nix/store/baz: { -# /nix/store/tux: {} -# } -# } -# /nix/store/baz: { -# /nix/store/tux: {} -# } -# } -# } -# -# to: -# [ -# /nix/store/foo: 1 -# /nix/store/bar: 2 -# /nix/store/baz: 4 -# /nix/store/tux: 6 -# ] -popularity_cache = {} -def graph_popularity_contest(full_graph): - global popularity_cache - popularity = defaultdict(int) - for path, subgraph in full_graph.items(): - popularity[path] += 1 - # graph_popularity_contest is a pure function, and will - # always return the same result based on a given input. Thus, - # cache computation. - # - # Python's assignment will use a pointer, preventing memory - # bloat for large graphs. - if path not in popularity_cache: - debug("Popularity Cache miss on {}", path) - popularity_cache[path] = graph_popularity_contest(subgraph) - else: - debug("Popularity Cache hit on {}", path) - - subcontest = popularity_cache[path] - for subpath, subpopularity in subcontest.items(): - debug("Calculating popularity for {}", subpath) - popularity[subpath] += subpopularity + 1 - - return popularity - -class TestGraphPopularityContest(unittest.TestCase): - def test_counts_popularity(self): - self.assertDictEqual( - graph_popularity_contest({ - "/nix/store/foo": { - "/nix/store/bar": { - "/nix/store/baz": { - "/nix/store/tux": {} - } - }, - "/nix/store/baz": { - "/nix/store/tux": {} - } - } - }), - { - "/nix/store/foo": 1, - "/nix/store/bar": 2, - "/nix/store/baz": 4, - "/nix/store/tux": 6, - } - ) - -# Emit a list of packages by popularity, most first: -# -# From: -# [ -# /nix/store/foo: 1 -# /nix/store/bar: 1 -# /nix/store/baz: 2 -# /nix/store/tux: 2 -# ] -# -# To: -# [ /nix/store/baz /nix/store/tux /nix/store/bar /nix/store/foo ] -def order_by_popularity(paths): - paths_by_popularity = defaultdict(list) - popularities = [] - for path, popularity in paths.items(): - popularities.append(popularity) - paths_by_popularity[popularity].append(path) - - popularities = list(set(popularities)) - popularities.sort() - - flat_ordered = [] - for popularity in popularities: - paths = paths_by_popularity[popularity] - paths.sort(key=package_name) - - flat_ordered.extend(reversed(paths)) - return list(reversed(flat_ordered)) - - -class TestOrderByPopularity(unittest.TestCase): - def test_returns_in_order(self): - self.assertEqual( - order_by_popularity({ - "/nix/store/foo": 1, - "/nix/store/bar": 1, - "/nix/store/baz": 2, - "/nix/store/tux": 2, - }), - [ - "/nix/store/baz", - "/nix/store/tux", - "/nix/store/bar", - "/nix/store/foo" - ] - ) - -def package_name(path): - parts = path.split('-') - start = parts.pop(0) - # don't throw away any data, so the order is always the same. - # even in cases where only the hash at the start has changed. - parts.append(start) - return '-'.join(parts) - -def main(): - filename = sys.argv[1] - key = sys.argv[2] - - debug("Loading from {}", filename) - with open(filename) as f: - data = json.load(f) - - # Data comes in as: - # [ - # { path: /nix/store/foo, references: [ /nix/store/foo, /nix/store/bar, /nix/store/baz ] }, - # { path: /nix/store/bar, references: [ /nix/store/bar, /nix/store/baz ] }, - # { path: /nix/store/baz, references: [ /nix/store/baz, /nix/store/tux ] }, - # { path: /nix/store/tux, references: [ /nix/store/tux ] } - # ] - # - # and we want to get out a list of paths ordered by how universally, - # important they are, ie: tux is referenced by every path, transitively - # so it should be #1 - # - # [ - # /nix/store/tux, - # /nix/store/baz, - # /nix/store/bar, - # /nix/store/foo, - # ] - graph = data[key] - - debug("Finding roots from {}", key) - roots = find_roots(graph); - debug("Making lookup for {}", key) - lookup = make_lookup(graph) - - full_graph = {} - for root in roots: - debug("Making full graph for {}", root) - full_graph[root] = make_graph_segment_from_root(root, lookup) - - debug("Running contest") - contest = graph_popularity_contest(full_graph) - debug("Ordering by popularity") - ordered = order_by_popularity(contest) - debug("Checking for missing paths") - missing = [] - for path in all_paths(graph): - if path not in ordered: - missing.append(path) - - ordered.extend(missing) - print("\n".join(ordered)) - -if "--test" in sys.argv: - # Don't pass --test otherwise unittest gets mad - unittest.main(argv = [f for f in sys.argv if f != "--test" ]) -else: - main() diff --git a/pkgs/build-support/references-by-popularity/default.nix b/pkgs/build-support/references-by-popularity/default.nix deleted file mode 100644 index 2171c62..0000000 --- a/pkgs/build-support/references-by-popularity/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ 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]} -'' diff --git a/pkgs/build-support/release/binary-tarball.nix b/pkgs/build-support/release/binary-tarball.nix deleted file mode 100644 index 37c5f8c..0000000 --- a/pkgs/build-support/release/binary-tarball.nix +++ /dev/null @@ -1,78 +0,0 @@ -/* 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. -*/ - -{ src, lib, stdenv -, name ? "binary-tarball" -, ... } @ args: - -stdenv.mkDerivation ( - - { - # Also run a `make check'. - doCheck = true; - - showBuildStats = true; - - prefix = "/usr/local"; - - postPhases = "finalPhase"; - } - - // args // - - { - name = name + (lib.optionalString (src ? version) "-${src.version}"); - - postHook = '' - mkdir -p $out/nix-support - echo "$system" > $out/nix-support/system - . ${./functions.sh} - - origSrc=$src - src=$(findTarball $src) - - if test -e $origSrc/nix-support/hydra-release-name; then - releaseName=$(cat $origSrc/nix-support/hydra-release-name) - fi - - 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 - ''; - - doDist = true; - - 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 - - # 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"; - }; - - } -) diff --git a/pkgs/build-support/release/debian-build.nix b/pkgs/build-support/release/debian-build.nix deleted file mode 100644 index ab84a50..0000000 --- a/pkgs/build-support/release/debian-build.nix +++ /dev/null @@ -1,94 +0,0 @@ -# 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: - -vmTools.runInLinuxImage (stdenv.mkDerivation ( - - { - doCheck = true; - - prefix = "/usr"; - - prePhases = "installExtraDebsPhase sysInfoPhase"; - } - - // removeAttrs args ["vmTools" "lib"] // - - { - name = name + "-" + diskImage.name + (lib.optionalString (src ? version) "-${src.version}"); - - # !!! 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 - ''; - - 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 - - # 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 \; - - [ "$(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 $extraDebs; do - echo "file deb-extra $(ls $i/debs/*.deb | sort | head -1)" >> $out/nix-support/hydra-build-products - done - - eval "$postInstall" - ''; - - 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 deleted file mode 100644 index f5ab2db..0000000 --- a/pkgs/build-support/release/default.nix +++ /dev/null @@ -1,139 +0,0 @@ -{ lib, pkgs }: - -let - inherit (lib) optionalString; - - inherit (pkgs) - autoconf - automake - checkinstall - clang-analyzer - cov-build - enableGCOVInstrumentation - lcov - libtool - makeGCOVReport - runCommand - stdenv - vmTools - xz - ; -in - -rec { - - 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); - - mvnBuild = args: import ./maven-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); - - clangAnalysis = args: nixBuild ( - { inherit clang-analyzer; - doClangAnalysis = true; - } // args); - - coverityAnalysis = args: nixBuild ( - { inherit cov-build xz; - doCoverityAnalysis = true; - } // args); - - rpmBuild = args: import ./rpm-build.nix ( - { inherit lib vmTools; - } // args); - - debBuild = args: import ./debian-build.nix ( - { inherit lib stdenv vmTools checkinstall; - } // args); - - aggregate = - { name, constituents, meta ? { } }: - pkgs.runCommand name - { inherit constituents meta; - preferLocalBuild = true; - _hydraAggregate = true; - } - '' - mkdir -p $out/nix-support - touch $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 - ''; - - /* 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 = ./.; - }; - - */ - channel = - { name, src, constituents ? [], meta ? {}, isNixOS ? true, ... }@args: - stdenv.mkDerivation ({ - preferLocalBuild = true; - _hydraAggregate = true; - - dontConfigure = true; - dontBuild = true; - - patchPhase = optionalString isNixOS '' - touch .update-on-nixos-rebuild - ''; - - 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}!' . - - 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 - ''; - - meta = meta // { - isHydraChannel = true; - }; - } // removeAttrs args [ "meta" ]); - -} diff --git a/pkgs/build-support/release/functions.sh b/pkgs/build-support/release/functions.sh deleted file mode 100644 index 0c4b81e..0000000 --- a/pkgs/build-support/release/functions.sh +++ /dev/null @@ -1,17 +0,0 @@ -findTarball() { - local suffix i - if [ -d "$1/tarballs/" ]; then - for suffix in tar.gz tgz tar.bz2 tbz2 tbz tar.xz txz tar.lzma; do - for i in $1/tarballs/*.$suffix; do echo $i; break; done - done | sort | head -1 - return - else - echo "$1" - return - fi -} - -propagateImageName() { - mkdir -p $out/nix-support - cat "$diskImage"/nix-support/full-name > $out/nix-support/full-name -} diff --git a/pkgs/build-support/release/maven-build.nix b/pkgs/build-support/release/maven-build.nix deleted file mode 100644 index f618032..0000000 --- a/pkgs/build-support/release/maven-build.nix +++ /dev/null @@ -1,103 +0,0 @@ -{ stdenv -, lib -, name -, src -, doTest ? true -, doTestCompile ? true -, doJavadoc ? false -, doCheckstyle ? false -, doRelease ? false -, includeTestClasses ? true -, extraMvnFlags ? "" -, ... -} @ args : - -let - mvnFlags = lib.escapeShellArgs [ - "-Dmaven.repo.local=$M2_REPO" - (lib.optionalString (!doTest) "-Dmaven.test.skip.exec=true") - "${extraMvnFlags}" - ]; -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"; - - 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 - - runHook postSetupPhase - ''; - - mvnCompile = '' - mvn compile ${mvnFlags} - ''; - - mvnTestCompile = '' - mvn test-compile ${mvnFlags} - ''; - - mvnTestJar = '' - mvn jar:test-jar ${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/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 - ''; - - mvnCheckstyle = '' - mvn checkstyle:checkstyle ${mvnFlags} - echo "report checkstyle $out/site/checkstyle.html" >> $out/nix-support/hydra-build-products - ''; - - mvnJar = '' - mvn jar:jar ${mvnFlags} - ''; - - mvnAssembly = '' - mvn assembly:assembly -Dmaven.test.skip=true ${mvnFlags} - ''; - - 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 - - echo "$releaseName" > $out/nix-support/hydra-release-name - - ${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 -) diff --git a/pkgs/build-support/release/nix-build.nix b/pkgs/build-support/release/nix-build.nix deleted file mode 100644 index 348cd5b..0000000 --- a/pkgs/build-support/release/nix-build.nix +++ /dev/null @@ -1,174 +0,0 @@ -# This function builds and tests an Autoconf-style source tarball. -# The result can be installed normally in an environment (e.g., after -# making it available through a channel). If `doCoverageAnalysis' is -# true, it does an ordinary build from a source tarball, except that -# 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: - -let - doingAnalysis = doCoverageAnalysis || doClangAnalysis || doCoverityAnalysis; -in -stdenv.mkDerivation ( - - { - # Also run a `make check'. - doCheck = true; - - # When doing coverage analysis, we don't care about the result. - dontInstall = doingAnalysis; - useTempPrefix = doingAnalysis; - - 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 - 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 - fi - ''; - } - - // removeAttrs args [ "lib" ] # Propagating lib causes the evaluation to fail, because lib is a function that can't be converted to a string - - // { - name = name + (lib.optionalString (src ? version) "-${src.version}"); - - postHook = '' - . ${./functions.sh} - origSrc=$src - src=$(findTarball $src) - ${postHook} - ''; - - preHook = '' - # Perform Coverity Analysis - if [ ! -z "${toString doCoverityAnalysis}" ]; then - shopt -s expand_aliases - mkdir _coverity_$name - alias make="cov-build --dir _coverity_$name/cov-int make" - fi - - # Perform Clang Analysis - if [ ! -z "${toString doClangAnalysis}" ]; then - shopt -s expand_aliases - alias make="scan-build -o _clang_analyze_$name --html-title='Scan results for $name' make" - fi - - ${preHook} - ''; - - # Clean up after analysis - postBuild = '' - if [ ! -z "${toString (doCoverityAnalysis || doClangAnalysis)}" ]; then - unalias make - fi - ''; - - initPhase = '' - mkdir -p $out/nix-support - echo "$system" > $out/nix-support/system - - if [ -z "${toString doingAnalysis}" ]; then - for i in $(getAllOutputNames); do - if [ "$i" = out ]; then j=none; else j="$i"; fi - mkdir -p ''${!i}/nix-support - echo "nix-build $j ''${!i}" >> ''${!i}/nix-support/hydra-build-products - done - fi - ''; - - 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); - - lcovFilter = ["${builtins.storeDir}/*"] ++ lcovFilter; - - inherit lcovExtraTraceFiles; - - postPhases = postPhases ++ ["finalPhase"]; - - meta = (lib.optionalAttrs (args ? meta) args.meta) // { - 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" - - echo "building out of source tree, from \`$PWD'..." - - ${lib.optionalString (preConfigure != null) preConfigure} - ''; - } - ) -) diff --git a/pkgs/build-support/release/rpm-build.nix b/pkgs/build-support/release/rpm-build.nix deleted file mode 100644 index ccbbd57..0000000 --- a/pkgs/build-support/release/rpm-build.nix +++ /dev/null @@ -1,54 +0,0 @@ -# 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: - -vmTools.buildRPM ( - - removeAttrs args ["vmTools"] // - - { - name = name + "-" + diskImage.name + (lib.optionalString (src ? version) "-${src.version}"); - - 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 - - echo "installing ''${rpms[*]}..." - rpm -Up ''${rpms[*]} --excludepath /nix/store - - eval "$postRPMInstall" - - 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 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}"; - }; - } - -) diff --git a/pkgs/build-support/release/source-tarball.nix b/pkgs/build-support/release/source-tarball.nix deleted file mode 100644 index fbc8bc6..0000000 --- a/pkgs/build-support/release/source-tarball.nix +++ /dev/null @@ -1,129 +0,0 @@ -# This function converts an un-Autoconfed source tarball (typically a -# 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: - -stdenv.mkDerivation ( - - # First, attributes that can be overridden by the caller (via args): - { - # By default, only configure and build a source distribution. - # Some packages can only build a distribution after a general - # `make' (or even `make install'). - dontBuild = true; - dontInstall = true; - doDist = true; - - # If we do install, install to a dummy location. - useTempPrefix = true; - - showBuildStats = true; - - preConfigurePhases = "autoconfPhase"; - postPhases = "finalPhase"; - - # Autoconfiscate the sources. - autoconfPhase = '' - export VERSION=${version} - export VERSION_SUFFIX=${versionSuffix} - - # `svn-revision' is set for backwards compatibility with the old - # Nix buildfarm. (Stratego/XT's autoxt uses it. We should - # update it eventually.) - echo ${versionSuffix} | sed -e s/pre// > svn-revision - - eval "$preAutoconf" - - if test -x ./bootstrap && test -f ./bootstrap; then ./bootstrap - elif test -x ./bootstrap.sh; then ./bootstrap.sh - elif test -x ./autogen.sh; then ./autogen.sh - elif test -x ./autogen ; then ./autogen - elif test -x ./reconf; then ./reconf - elif test -f ./configure.in || test -f ./configure.ac; then - autoreconf --install --force --verbose - else - echo "No bootstrap, bootstrap.sh, configure.in or configure.ac. Assuming this is not an GNU Autotools package." - fi - - eval "$postAutoconf" - ''; - - 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 - ''; - } - - # Then, the caller-supplied attributes. - // (builtins.removeAttrs args [ "lib" ]) // - - # And finally, our own stuff. - { - name = name + "-" + version + versionSuffix; - - buildInputs = buildInputs ++ bootstrapBuildInputs; - - 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" - ''; - - 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"; - - 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) - ''; - - passthru = { - inherit src; - version = version + versionSuffix; - }; - - meta = (lib.optionalAttrs (args ? meta) args.meta) // { - description = "Source distribution"; - - # Tarball builds are generally important, so give them a high - # default priority. - schedulingPriority = 200; - }; - } - -) diff --git a/pkgs/build-support/remove-references-to/darwin-sign-fixup.sh b/pkgs/build-support/remove-references-to/darwin-sign-fixup.sh deleted file mode 100644 index 940c18e..0000000 --- a/pkgs/build-support/remove-references-to/darwin-sign-fixup.sh +++ /dev/null @@ -1,5 +0,0 @@ -# Fixup hook for nukeReferences, not stdenv - -source @signingUtils@ - -fixupHooks+=(signIfRequired) diff --git a/pkgs/build-support/remove-references-to/default.nix b/pkgs/build-support/remove-references-to/default.nix deleted file mode 100644 index 1277cdb..0000000 --- a/pkgs/build-support/remove-references-to/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -# The program `remove-references-to' created by this derivation replaces all -# references to the given Nix store paths in the specified files by a -# 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 }: - -let - stdenv = stdenvNoCC; - - darwinCodeSign = stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64; -in - -stdenv.mkDerivation { - name = "remove-references-to"; - - dontUnpack = true; - dontConfigure = true; - dontBuild = true; - - installPhase = '' - mkdir -p $out/bin - substituteAll ${./remove-references-to.sh} $out/bin/remove-references-to - chmod a+x $out/bin/remove-references-to - ''; - - postFixup = lib.optionalString darwinCodeSign '' - mkdir -p $out/nix-support - substituteAll ${./darwin-sign-fixup.sh} $out/nix-support/setup-hooks.sh - ''; - - inherit (builtins) storeDir; - shell = lib.getBin shell + (shell.shellPath or ""); - signingUtils = if darwinCodeSign then signingUtils else null; - meta.mainProgram = "remove-references-to"; -} diff --git a/pkgs/build-support/remove-references-to/remove-references-to.sh b/pkgs/build-support/remove-references-to/remove-references-to.sh deleted file mode 100755 index a4d068e..0000000 --- a/pkgs/build-support/remove-references-to/remove-references-to.sh +++ /dev/null @@ -1,37 +0,0 @@ -#! @shell@ -e - -fixupHooks=() - -if [ -e @out@/nix-support/setup-hooks.sh ]; then - source @out@/nix-support/setup-hooks.sh -fi - -# References to remove -targets=() -while getopts t: o; do - case "$o" in - t) storeId=$(echo "$OPTARG" | sed -n "s|^@storeDir@/\\([a-z0-9]\{32\}\\)-.*|\1|p") - if [ -z "$storeId" ]; then - echo "-t argument must be a Nix store path" - exit 1 - fi - targets+=("$storeId") - esac -done -shift $(($OPTIND-1)) - -# Files to remove the references from -regions=() -for i in "$@"; do - test ! -L "$i" -a -f "$i" && regions+=("$i") -done - -for target in "${targets[@]}" ; do - sed -i -e "s|$target|eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee|g" "${regions[@]}" -done - -for region in "${regions[@]}"; do - for hook in "${fixupHooks[@]}"; do - eval "$hook" "$region" - done -done diff --git a/pkgs/build-support/replace-dependency.nix b/pkgs/build-support/replace-dependency.nix deleted file mode 100644 index 7912d21..0000000 --- a/pkgs/build-support/replace-dependency.nix +++ /dev/null @@ -1,94 +0,0 @@ -{ 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 -# useful, for example, to patch a security hole in libc and still use your -# system safely without rebuilding the world. This should be a short term -# solution, as soon as a rebuild can be done the properly rebuild derivation -# should be used. The old dependency and new dependency MUST have the same-length -# name, and ideally should have close-to-identical directory layout. -# -# Example: safeFirefox = replaceDependency { -# drv = firefox; -# oldDependency = glibc; -# newDependency = overrideDerivation glibc (attrs: { -# patches = attrs.patches ++ [ ./fix-glibc-hole.patch ]; -# }); -# }; -# 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 }: - -let - inherit (lib) - any - attrNames - concatStringsSep - elem - filter - filterAttrs - listToAttrs - mapAttrsToList - stringLength - substring - ; - - 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; - - discard = builtins.unsafeDiscardStringContext; - - oldStorepath = builtins.storePath (discard (toString oldDependency)); - - 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)); - - dependsOnOld = drv: dependsOnOldMemo.${discard (toString 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 - ''; - - 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; - - 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) diff --git a/pkgs/build-support/replace-secret/replace-secret.nix b/pkgs/build-support/replace-secret/replace-secret.nix deleted file mode 100644 index 41f5cb0..0000000 --- a/pkgs/build-support/replace-secret/replace-secret.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ stdenv, lib, python3 }: - -stdenv.mkDerivation { - name = "replace-secret"; - buildInputs = [ python3 ]; - dontUnpack = true; - installPhase = '' - runHook preInstall - install -D ${./replace-secret.py} $out/bin/replace-secret - patchShebangs $out - runHook postInstall - ''; - installCheckPhase = '' - install -m 0600 ${./test/input_file} long_test - $out/bin/replace-secret "replace this" ${./test/passwd} long_test - $out/bin/replace-secret "and this" ${./test/rsa} long_test - diff ${./test/expected_long_output} long_test - - install -m 0600 ${./test/input_file} short_test - $out/bin/replace-secret "replace this" <(echo "a") short_test - $out/bin/replace-secret "and this" <(echo "b") short_test - diff ${./test/expected_short_output} short_test - ''; - meta = with lib; { - platforms = platforms.all; - maintainers = with maintainers; [ talyz ]; - license = licenses.mit; - description = "Replace a string in one file with a secret from a second file"; - longDescription = '' - Replace a string in one file with a secret from a second file. - - Since the secret is read from a file, it won't be leaked through - '/proc//cmdline', unlike when 'sed' or 'replace' is used. - ''; - mainProgram = "replace-secret"; - }; -} diff --git a/pkgs/build-support/replace-secret/replace-secret.py b/pkgs/build-support/replace-secret/replace-secret.py deleted file mode 100755 index 30ff41d..0000000 --- a/pkgs/build-support/replace-secret/replace-secret.py +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env python - -import argparse -from argparse import RawDescriptionHelpFormatter - -description = """ -Replace a string in one file with a secret from a second file. - -Since the secret is read from a file, it won't be leaked through -'/proc//cmdline', unlike when 'sed' or 'replace' is used. -""" - -parser = argparse.ArgumentParser( - description=description, - formatter_class=RawDescriptionHelpFormatter -) -parser.add_argument("string_to_replace", help="the string to replace") -parser.add_argument("secret_file", help="the file containing the secret") -parser.add_argument("file", help="the file to perform the replacement on") -args = parser.parse_args() - -with open(args.secret_file) as sf, open(args.file, 'r+') as f: - old = f.read() - secret = sf.read().strip("\n") - new_content = old.replace(args.string_to_replace, secret) - f.seek(0) - f.write(new_content) - f.truncate() diff --git a/pkgs/build-support/replace-secret/test/expected_long_output b/pkgs/build-support/replace-secret/test/expected_long_output deleted file mode 100644 index 37bd66b..0000000 --- a/pkgs/build-support/replace-secret/test/expected_long_output +++ /dev/null @@ -1,30 +0,0 @@ -beginning -middle $6$UcbJUl5g$HRMfKNKsLTfVbcQb.P5o0bmZUfHDYkWseMSuZ8F5jSIGZZcI3Jnit23f8ZeZOGi4KL86HVM9RYqrpYySOu/fl0 not this ------BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEAzrru6v5tfwQl6L+rOUjtLo8kbhMUlCLXP7TYngSGrkzPMWe+ -0gB04UAmiPZXfBmvj5fPqYiFjIaEDHE/SD41vJB/RJKKtId2gCAIHhBLkbr+4+60 -yEbLkJci5i4kJC1dt8OKFEzXkaVnwOSgjH+0NwO3bstZ+E70zMXS9+NS71qGsIEb -5J1TnacwW/u6CdFyakLljWOXOR14rLIpiPBBFLf+oZiepjIhlWXWHqsxZOb7zMI0 -T4W5WJ2dwGFsJ8rkYaGZ+A5qzYbi/KmHqaSPaNDsyoi7yJhAhKPByALJU916+8QO -xOnqZxWGki3PDzCslRwW4i3mGbZlBQMnlfbN3QIDAQABAoIBAHDn1W7QkFrLmCy6 -6bf6pVdFZF8d2qJhOPAZRClhTXFKj+pqv+QPzcXr9F/fMr6bhK/G+Oqdnlq2aM4m -16oMF+spe+impEyeo1CsreJFghBQcb9o8qFjUPBiKvROBP0hLcscZ4BYy29HSBgo -harWYEWfqQJA251q+fYQoP0z0WrZKddOZbRRnJ0ICRxAE7IEtDT6EYt8R9oGi2j4 -/rpdW+rYGjW3TcmzdR7lpVMJRLlbMbSdR8n6cI6rnfySygcoE5tFX5t/YZSNbBPg -GebKCbEHYNTTG8bC1qjUyzlbEQ6XYWvFO7HTKU7105XpjYTQFByeo0IVkin0o5KW -t7eQWb0CgYEA6zZUWsYoQ13nXEU6Ky89Q9uhesMfaJ/F2X5ikQSRqRvrR3QR+ULe -eNnCl10O9SiFpR4b5gSbLSHMffxGN60P1nEO4CiIKE+gOii8Kdk5htIJFy/dcZUc -PuPM+zD9/6Is5sAWUZo45bnT6685h6EjM2+6zNZtx/XMjSfWbHaY+HMCgYEA4QAy -6ZEgd6FHnNfM/q2o8XU3d6OCdhcu26u6ydnCalbSpPSKWOi6gnHK4ZnGdryXgIYw -hRkvYINfiONkShYytotIh4YxUbgpwdvJRyKa2ZdWhcMmtFzZOcEVzQTKBasFT74C -Wo0iybZ++XZh3M0+n7oyyx39aR7diZ+/zq6PnG8CgYB8B1QH4cHNdDDRqPd5WhmW -NLQ7xbREOSvc+hYDnkMoxz4TmZL4u1gQpdNEeZ+visSeQvg3HGqvK8lnDaYBKdLW -IxvS+8yAZSx6PoyqDI+XFh4RCf5dLGGOkBTAyB7Hs761lsiuEwK5sHmdJ/LQIBot -v1bjOJb/AA/yxvT8kLUtHQKBgGIA9iwqXJv/EfRNQytDdS0HQ4vHGtJZMr3YRVoa -kcZD3yieo4wqguLCsf4mPv4FE3CWAphW6f39+yTi9xIWLSy56nOtjdnsf7PDCh8E -AbL5amSFJly1fKDda6OLjHt/jKa5Osk6ZIa8CP6cA/BrLfXg4rL6cyDQouqJPMDH -5CHdAoGBAIChjbTyoYvANkoANCK4SuqLUYeiYREfiM3sqHe1xirK1PPHw03ZLITl -ltjo9qE6kPXWcTBVckTKGFlntyCT283FC0/vMmHo8dTdtxF4/wSbkqs3ORuJ3p5J -cNtLYGD3vgwLmg6tTur4U60XN+tYDzWGteez8J9GwTMfKJmuS9af ------END RSA PRIVATE KEY----- -end diff --git a/pkgs/build-support/replace-secret/test/expected_short_output b/pkgs/build-support/replace-secret/test/expected_short_output deleted file mode 100644 index 3c81b2e..0000000 --- a/pkgs/build-support/replace-secret/test/expected_short_output +++ /dev/null @@ -1,4 +0,0 @@ -beginning -middle a not this -b -end diff --git a/pkgs/build-support/replace-secret/test/input_file b/pkgs/build-support/replace-secret/test/input_file deleted file mode 100644 index 1e7eadf..0000000 --- a/pkgs/build-support/replace-secret/test/input_file +++ /dev/null @@ -1,4 +0,0 @@ -beginning -middle replace this not this -and this -end diff --git a/pkgs/build-support/replace-secret/test/passwd b/pkgs/build-support/replace-secret/test/passwd deleted file mode 100644 index 68f2662..0000000 --- a/pkgs/build-support/replace-secret/test/passwd +++ /dev/null @@ -1 +0,0 @@ -$6$UcbJUl5g$HRMfKNKsLTfVbcQb.P5o0bmZUfHDYkWseMSuZ8F5jSIGZZcI3Jnit23f8ZeZOGi4KL86HVM9RYqrpYySOu/fl0 diff --git a/pkgs/build-support/replace-secret/test/rsa b/pkgs/build-support/replace-secret/test/rsa deleted file mode 100644 index 138cc99..0000000 --- a/pkgs/build-support/replace-secret/test/rsa +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEAzrru6v5tfwQl6L+rOUjtLo8kbhMUlCLXP7TYngSGrkzPMWe+ -0gB04UAmiPZXfBmvj5fPqYiFjIaEDHE/SD41vJB/RJKKtId2gCAIHhBLkbr+4+60 -yEbLkJci5i4kJC1dt8OKFEzXkaVnwOSgjH+0NwO3bstZ+E70zMXS9+NS71qGsIEb -5J1TnacwW/u6CdFyakLljWOXOR14rLIpiPBBFLf+oZiepjIhlWXWHqsxZOb7zMI0 -T4W5WJ2dwGFsJ8rkYaGZ+A5qzYbi/KmHqaSPaNDsyoi7yJhAhKPByALJU916+8QO -xOnqZxWGki3PDzCslRwW4i3mGbZlBQMnlfbN3QIDAQABAoIBAHDn1W7QkFrLmCy6 -6bf6pVdFZF8d2qJhOPAZRClhTXFKj+pqv+QPzcXr9F/fMr6bhK/G+Oqdnlq2aM4m -16oMF+spe+impEyeo1CsreJFghBQcb9o8qFjUPBiKvROBP0hLcscZ4BYy29HSBgo -harWYEWfqQJA251q+fYQoP0z0WrZKddOZbRRnJ0ICRxAE7IEtDT6EYt8R9oGi2j4 -/rpdW+rYGjW3TcmzdR7lpVMJRLlbMbSdR8n6cI6rnfySygcoE5tFX5t/YZSNbBPg -GebKCbEHYNTTG8bC1qjUyzlbEQ6XYWvFO7HTKU7105XpjYTQFByeo0IVkin0o5KW -t7eQWb0CgYEA6zZUWsYoQ13nXEU6Ky89Q9uhesMfaJ/F2X5ikQSRqRvrR3QR+ULe -eNnCl10O9SiFpR4b5gSbLSHMffxGN60P1nEO4CiIKE+gOii8Kdk5htIJFy/dcZUc -PuPM+zD9/6Is5sAWUZo45bnT6685h6EjM2+6zNZtx/XMjSfWbHaY+HMCgYEA4QAy -6ZEgd6FHnNfM/q2o8XU3d6OCdhcu26u6ydnCalbSpPSKWOi6gnHK4ZnGdryXgIYw -hRkvYINfiONkShYytotIh4YxUbgpwdvJRyKa2ZdWhcMmtFzZOcEVzQTKBasFT74C -Wo0iybZ++XZh3M0+n7oyyx39aR7diZ+/zq6PnG8CgYB8B1QH4cHNdDDRqPd5WhmW -NLQ7xbREOSvc+hYDnkMoxz4TmZL4u1gQpdNEeZ+visSeQvg3HGqvK8lnDaYBKdLW -IxvS+8yAZSx6PoyqDI+XFh4RCf5dLGGOkBTAyB7Hs761lsiuEwK5sHmdJ/LQIBot -v1bjOJb/AA/yxvT8kLUtHQKBgGIA9iwqXJv/EfRNQytDdS0HQ4vHGtJZMr3YRVoa -kcZD3yieo4wqguLCsf4mPv4FE3CWAphW6f39+yTi9xIWLSy56nOtjdnsf7PDCh8E -AbL5amSFJly1fKDda6OLjHt/jKa5Osk6ZIa8CP6cA/BrLfXg4rL6cyDQouqJPMDH -5CHdAoGBAIChjbTyoYvANkoANCK4SuqLUYeiYREfiM3sqHe1xirK1PPHw03ZLITl -ltjo9qE6kPXWcTBVckTKGFlntyCT283FC0/vMmHo8dTdtxF4/wSbkqs3ORuJ3p5J -cNtLYGD3vgwLmg6tTur4U60XN+tYDzWGteez8J9GwTMfKJmuS9af ------END RSA PRIVATE KEY----- diff --git a/pkgs/build-support/rust/build-rust-crate/build-crate.nix b/pkgs/build-support/rust/build-rust-crate/build-crate.nix deleted file mode 100644 index bbb2660..0000000 --- a/pkgs/build-support/rust/build-rust-crate/build-crate.nix +++ /dev/null @@ -1,129 +0,0 @@ -{ lib, stdenv -, mkRustcDepArgs, mkRustcFeatureArgs, needUnstableCLI -}: - -{ crateName, - dependencies, - crateFeatures, crateRenames, libName, release, libPath, - crateType, metadata, crateBin, hasCrateBin, - extraRustcOpts, verbose, colors, - buildTests, - 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}"; - - - # 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 - ); - - 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}" - - CRATE_NAME='${lib.replaceStrings ["-"] ["_"] libName}' - - 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 - - - - ${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 '' - 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 '' - # When tests are enabled build all the files in the `tests` directory as - # test binaries. - if [ -d tests ]; then - # find all the .rs files (or symlinks to those) in the tests directory, no subdirectories - find tests -maxdepth 1 \( -type f -o -type l \) -a -name '*.rs' -print0 | while IFS= read -r -d ''' file; do - mkdir -p target/bin - build_bin_test_file "$file" - done - - # find all the subdirectories of tests/ that contain a main.rs file as - # that is also a test according to cargo - find tests/ -mindepth 1 -maxdepth 2 \( -type f -o -type l \) -a -name 'main.rs' -print0 | while IFS= read -r -d ''' file; do - mkdir -p target/bin - build_bin_test_file "$file" - 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 - '' diff --git a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix deleted file mode 100644 index 6b88271..0000000 --- a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix +++ /dev/null @@ -1,231 +0,0 @@ -{ 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}" -''} - ${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" -''} - - runHook preConfigure - - symlink_dependency() { - # $1 is the nix-store path of a dependency - # $2 is the target path - i=$1 - ln -s -f $i/lib/*.rlib $2 #*/ - ln -s -f $i/lib/*.so $i/lib/*.dylib $2 #*/ - if [ -e $i/env ]; then - source $i/env - fi - } - - # The following steps set up the dependencies of the crate. Two - # kinds of dependencies are distinguished: build dependencies - # (used by the build script) and crate dependencies. For each - # dependency we have to: - # - # - Make its Rust library available to rustc. This is done by - # symlinking all library dependencies into a directory that - # can be provided to rustc. - # - Accumulate linking flags. These flags are largely used for - # linking native libraries. - # - # The crate link flags are added to the `link` and `link.final` - # files. The `link` file is used for linkage in the current - # crate. The `link.final` file will be copied to the output and can - # be used by downstream crates to get the linker flags of this - # crate. - - mkdir -p target/{deps,lib,build,buildDeps} - chmod uga+w target -R - echo ${extraLinkFlags} > target/link - echo ${extraLinkFlags} > target/link.final - - # Prepare crate dependencies - for i in ${completeDepsDir}; do - symlink_dependency $i target/deps - if [ -e "$i/lib/link" ]; then - cat $i/lib/link >> target/link - cat $i/lib/link >> target/link.final - fi - done - - # Prepare crate build dependencies that are used for the build script. - for i in ${completeBuildDepsDir}; do - symlink_dependency $i target/buildDeps - if [ -e "$i/lib/link" ]; then - cat $i/lib/link >> target/link.build - fi - done - - # Remove duplicate linker flags from the build dependencies. - if [[ -e target/link.build ]]; then - sort -uo target/link.build target/link.build - fi - - # Remove duplicate linker flags from the dependencies. - sort -uo target/link target/link - tr '\n' ' ' < target/link > target/link_ - - # Remove duplicate linker flags from the that are written - # to the derivation's output. - sort -uo target/link.final target/link.final - - EXTRA_BUILD="" - BUILD_OUT_DIR="" - - # Set up Cargo Environment variables: https://doc.rust-lang.org/cargo/reference/environment-variables.html - export CARGO_PKG_NAME=${crateName} - export CARGO_PKG_VERSION=${crateVersion} - export CARGO_PKG_AUTHORS="${authors}" - export CARGO_PKG_DESCRIPTION="${crateDescription}" - - export CARGO_CFG_TARGET_ARCH=${stdenv.hostPlatform.rust.platform.arch} - export CARGO_CFG_TARGET_OS=${stdenv.hostPlatform.rust.platform.os} - 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_VENDOR=${stdenv.hostPlatform.parsed.vendor.name} - - export CARGO_MANIFEST_DIR=$(pwd) - export CARGO_MANIFEST_LINKS=${crateLinks} - export DEBUG="${toString (!release)}" - export OPT_LEVEL="${toString optLevel}" - export TARGET="${stdenv.hostPlatform.rust.rustcTargetSpec}" - export HOST="${stdenv.buildPlatform.rust.rustcTargetSpec}" - export PROFILE=${if release then "release" else "debug"} - export OUT_DIR=$(pwd)/target/build/${crateName}.out - export CARGO_PKG_VERSION_MAJOR=${lib.elemAt version 0} - export CARGO_PKG_VERSION_MINOR=${lib.elemAt version 1} - export CARGO_PKG_VERSION_PATCH=${lib.elemAt version 2} - export CARGO_PKG_VERSION_PRE="${versionPre}" - export CARGO_PKG_HOMEPAGE="${crateHomepage}" - export CARGO_PKG_LICENSE="${crateLicense}" - export CARGO_PKG_LICENSE_FILE="${crateLicenseFile}" - export CARGO_PKG_README="${crateReadme}" - export CARGO_PKG_REPOSITORY="${crateRepository}" - export CARGO_PKG_RUST_VERSION="${crateRustVersion}" - export NUM_JOBS=$NIX_BUILD_CORES - export RUSTC="rustc" - export RUSTDOC="rustdoc" - - BUILD="" - if [[ ! -z "${build}" ]] ; then - BUILD=${build} - elif [[ -e "build.rs" ]]; then - BUILD="build.rs" - fi - - # Compile and run the build script, when available. - if [[ ! -z "$BUILD" ]] ; then - echo_build_heading "$BUILD" ${libName} - mkdir -p target/build/${crateName} - EXTRA_BUILD_FLAGS="" - if [ -e target/link.build ]; then - EXTRA_BUILD_FLAGS="$EXTRA_BUILD_FLAGS $(tr '\n' ' ' < target/link.build)" - fi - noisily rustc --crate-name build_script_build $BUILD --crate-type bin ${rustcOpts} \ - ${mkRustcFeatureArgs crateFeatures} --out-dir target/build/${crateName} --emit=dep-info,link \ - -L dependency=target/buildDeps ${buildDeps} --cap-lints allow $EXTRA_BUILD_FLAGS --color ${colors} - - mkdir -p target/build/${crateName}.out - export RUST_BACKTRACE=1 - BUILD_OUT_DIR="-L $OUT_DIR" - mkdir -p $OUT_DIR - - ( - # Features should be set as environment variable for build scripts: - # https://doc.rust-lang.org/cargo/reference/environment-variables.html#environment-variables-cargo-sets-for-build-scripts - for feature in ${envFeatures}; do - export CARGO_FEATURE_$feature=1 - done - - target/build/${crateName}/build_script_build > target/build/${crateName}.opt - ) - - set +e - EXTRA_BUILD=$(sed -n "s/^cargo:rustc-flags=\(.*\)/\1/p" target/build/${crateName}.opt | tr '\n' ' ' | sort -u) - EXTRA_FEATURES=$(sed -n "s/^cargo:rustc-cfg=\(.*\)/--cfg \1/p" target/build/${crateName}.opt | tr '\n' ' ') - EXTRA_LINK_ARGS=$(sed -n "s/^cargo:rustc-link-arg=\(.*\)/-C link-arg=\1/p" target/build/${crateName}.opt | tr '\n' ' ') - EXTRA_LINK_ARGS_BINS=$(sed -n "s/^cargo:rustc-link-arg-bins=\(.*\)/-C link-arg=\1/p" target/build/${crateName}.opt | tr '\n' ' ') - EXTRA_LINK_ARGS_LIB=$(sed -n "s/^cargo:rustc-link-arg-lib=\(.*\)/-C link-arg=\1/p" target/build/${crateName}.opt | tr '\n' ' ') - EXTRA_LINK_LIBS=$(sed -n "s/^cargo:rustc-link-lib=\(.*\)/\1/p" target/build/${crateName}.opt | tr '\n' ' ') - EXTRA_LINK_SEARCH=$(sed -n "s/^cargo:rustc-link-search=\(.*\)/\1/p" target/build/${crateName}.opt | tr '\n' ' ' | sort -u) - - # We want to read part of every line that has cargo:rustc-env= prefix and - # export it as environment variables. This turns out tricky if the lines - # have spaces: we can't wrap the command in double quotes as that captures - # all the lines in single output. We can't use while read loop because - # exporting from inside of it doesn't make it to the outside scope. We - # can't use xargs as export is a built-in and does not work from it. As a - # last resort then, we change the IFS so that the for loop does not split - # on spaces and reset it after we are done. See ticket #199298. - # - _OLDIFS="$IFS" - IFS=$'\n' - for env in $(sed -n "s/^cargo:rustc-env=\(.*\)/\1/p" target/build/${crateName}.opt); do - export "$env" - done - IFS="$_OLDIFS" - - CRATENAME=$(echo ${crateName} | sed -e "s/\(.*\)-sys$/\U\1/" -e "s/-/_/g") - grep -P "^cargo:(?!(rustc-|warning=|rerun-if-changed=|rerun-if-env-changed))" target/build/${crateName}.opt \ - | awk -F= "/^cargo:/ { sub(/^cargo:/, \"\", \$1); gsub(/-/, \"_\", \$1); print \"export \" toupper(\"DEP_$(echo $CRATENAME)_\" \$1) \"=\" \$2 }" > target/env - set -e - fi - runHook postConfigure -'' diff --git a/pkgs/build-support/rust/build-rust-crate/default.nix b/pkgs/build-support/rust/build-rust-crate/default.nix deleted file mode 100644 index 4a7fd11..0000000 --- a/pkgs/build-support/rust/build-rust-crate/default.nix +++ /dev/null @@ -1,405 +0,0 @@ -# Code for buildRustCrate, a Nix function that builds Rust code, just -# like Cargo, but using Nix instead. -# -# 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 -}: - -let - # Create rustc arguments to link against the given list of dependencies - # 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; - - # Create feature arguments for rustc. - mkRustcFeatureArgs = lib.concatMapStringsSep " " (f: ''--cfg feature=\"${f}\"''); - - # Whether we need to use unstable command line flags - # - # Currently just needed for standard library dependencies, which have a - # 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; - - inherit (import ./log.nix { inherit lib; }) noisily echo_colored; - - configureCrate = import ./configure-crate.nix { - inherit lib stdenv echo_colored noisily mkRustcDepArgs mkRustcFeatureArgs; - }; - - buildCrate = import ./build-crate.nix { - 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 rust compiler to use. - # - # Default: pkgs.rustc - { 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 - # Whether to print rustc invocations etc. - # - # Example: false - # Default: true - , verbose - # A list of rust/cargo features to enable while building the crate. - # Example: [ "std" "async" ] - , features - # Additional native build inputs for building this crate. - , nativeBuildInputs - # Additional build inputs for building this crate. - # - # Example: [ pkgs.openssl ] - , buildInputs - # Allows to override the parameters to buildRustCrate - # for any rust dependency in the transitive build tree. - # - # Default: pkgs.defaultCrateOverrides - # - # Example: - # - # pkgs.defaultCrateOverrides // { - # hello = attrs: { buildInputs = [ openssl ]; }; - # } - , crateOverrides - # Rust library dependencies, i.e. other libraries that were built - # with buildRustCrate. - , dependencies - # Rust build dependencies, i.e. other libraries that were built - # with buildRustCrate and are used by a build script. - , buildDependencies - # Specify the "extern" name of a library if it differs from the library target. - # See above for an extended explanation. - # - # Default: no renames. - # - # Example: - # - # `crateRenames` supports two formats. - # - # The simple version is an attrset that maps the - # `crateName`s of the dependencies to their alternative - # names. - # - # ```nix - # { - # my_crate_name = "my_alternative_name"; - # # ... - # } - # ``` - # - # The extended version is also keyed by the `crateName`s but allows - # different names for different crate versions: - # - # ```nix - # { - # my_crate_name = [ - # { version = "1.2.3"; rename = "my_alternative_name01"; } - # { version = "3.2.3"; rename = "my_alternative_name03"; } - # ] - # # ... - # } - # ``` - # - # This roughly corresponds to the following snippet in Cargo.toml: - # - # ```toml - # [dependencies] - # my_alternative_name01 = { package = "my_crate_name", version = "0.1" } - # my_alternative_name03 = { package = "my_crate_name", version = "0.3" } - # ``` - # - # Dependencies which use the lib target name as extern name, do not need - # to be specified in the crateRenames, even if their crate name differs. - # - # Including multiple versions of a crate is very popular during - # ecosystem transitions, e.g. from futures 0.1 to futures 0.3. - , crateRenames - # A list of extra options to pass to rustc. - # - # Example: [ "-Z debuginfo=2" ] - # Default: [] - , extraRustcOpts - # A list of extra options to pass to rustc when building a build.rs. - # - # Example: [ "-Z debuginfo=2" ] - # Default: [] - , extraRustcOptsForBuildRs - # Whether to enable building tests. - # Use true to enable. - # Default: false - , buildTests - # Passed to stdenv.mkDerivation. - , preUnpack - # Passed to stdenv.mkDerivation. - , postUnpack - # Passed to stdenv.mkDerivation. - , prePatch - # Passed to stdenv.mkDerivation. - , patches - # Passed to stdenv.mkDerivation. - , postPatch - # Passed to stdenv.mkDerivation. - , preConfigure - # Passed to stdenv.mkDerivation. - , postConfigure - # Passed to stdenv.mkDerivation. - , preBuild - # Passed to stdenv.mkDerivation. - , postBuild - # Passed to stdenv.mkDerivation. - , preInstall - # Passed to stdenv.mkDerivation. - , postInstall - }: - - let - crate = crate_ // (lib.attrByPath [ crate_.crateName ] (attr: { }) crateOverrides crate_); - dependencies_ = dependencies; - buildDependencies_ = buildDependencies; - processedAttrs = [ - "src" - "nativeBuildInputs" - "buildInputs" - "crateBin" - "crateLib" - "libName" - "libPath" - "buildDependencies" - "dependencies" - "features" - "crateRenames" - "crateName" - "version" - "build" - "authors" - "colors" - "edition" - "buildTests" - "codegenUnits" - "links" - ]; - extraDerivationAttrs = builtins.removeAttrs crate processedAttrs; - nativeBuildInputs_ = nativeBuildInputs; - buildInputs_ = buildInputs; - extraRustcOpts_ = extraRustcOpts; - extraRustcOptsForBuildRs_ = extraRustcOptsForBuildRs; - buildTests_ = buildTests; - - # crate2nix has a hack for the old bash based build script that did split - # entries at `,`. No we have to work around that hack. - # https://github.com/kolloch/crate2nix/blame/5b19c1b14e1b0e5522c3e44e300d0b332dc939e7/crate2nix/templates/build.nix.tera#L89 - crateBin = lib.filter (bin: !(bin ? name && bin.name == ",")) (crate.crateBin or [ ]); - hasCrateBin = crate ? crateBin; - in - stdenv.mkDerivation (rec { - - 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_; - - 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; - - # 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}"); - - - 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" ]; - - 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" ]; - - 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; -} diff --git a/pkgs/build-support/rust/build-rust-crate/helpers.nix b/pkgs/build-support/rust/build-rust-crate/helpers.nix deleted file mode 100644 index 386d0ce..0000000 --- a/pkgs/build-support/rust/build-rust-crate/helpers.nix +++ /dev/null @@ -1,26 +0,0 @@ -{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; -} diff --git a/pkgs/build-support/rust/build-rust-crate/install-crate.nix b/pkgs/build-support/rust/build-rust-crate/install-crate.nix deleted file mode 100644 index f4a4dcd..0000000 --- a/pkgs/build-support/rust/build-rust-crate/install-crate.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ 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 # */ - 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 - - runHook postInstall -'' diff --git a/pkgs/build-support/rust/build-rust-crate/lib.sh b/pkgs/build-support/rust/build-rust-crate/lib.sh deleted file mode 100644 index 0181ae4..0000000 --- a/pkgs/build-support/rust/build-rust-crate/lib.sh +++ /dev/null @@ -1,182 +0,0 @@ -echo_build_heading() { - if (( $# == 1 )); then - echo_colored "Building $1" - else - echo_colored "Building $1 ($2)" - fi -} - -build_lib() { - lib_src=$1 - echo_build_heading $lib_src ${libName} - - noisily rustc \ - --crate-name $CRATE_NAME \ - $lib_src \ - --out-dir target/lib \ - -L dependency=target/deps \ - --cap-lints allow \ - $LINK \ - $EXTRA_LINK_ARGS \ - $EXTRA_LINK_ARGS_LIB \ - $LIB_RUSTC_OPTS \ - $BUILD_OUT_DIR \ - $EXTRA_BUILD \ - $EXTRA_FEATURES \ - $EXTRA_RUSTC_FLAGS \ - --color $colors - - EXTRA_LIB=" --extern $CRATE_NAME=target/lib/lib$CRATE_NAME-$metadata.rlib" - if [ -e target/deps/lib$CRATE_NAME-$metadata$LIB_EXT ]; then - EXTRA_LIB="$EXTRA_LIB --extern $CRATE_NAME=target/lib/lib$CRATE_NAME-$metadata$LIB_EXT" - fi -} - -build_bin() { - local crate_name=$1 - local crate_name_=$(echo $crate_name | tr '-' '_') - local main_file="" - - if [[ ! -z $2 ]]; then - main_file=$2 - fi - echo_build_heading $@ - noisily rustc \ - --crate-name $crate_name_ \ - $main_file \ - --crate-type bin \ - $BIN_RUSTC_OPTS \ - --out-dir target/bin \ - -L dependency=target/deps \ - $LINK \ - $EXTRA_LINK_ARGS \ - $EXTRA_LINK_ARGS_BINS \ - $EXTRA_LIB \ - --cap-lints allow \ - $BUILD_OUT_DIR \ - $EXTRA_BUILD \ - $EXTRA_FEATURES \ - $EXTRA_RUSTC_FLAGS \ - --color ${colors} \ - - if [ "$crate_name_" != "$crate_name" ]; then - mv target/bin/$crate_name_ target/bin/$crate_name - fi -} - -build_lib_test() { - local file="$1" - EXTRA_RUSTC_FLAGS="--test $EXTRA_RUSTC_FLAGS" build_lib "$1" "$2" -} - -build_bin_test() { - local crate="$1" - local file="$2" - EXTRA_RUSTC_FLAGS="--test $EXTRA_RUSTC_FLAGS" build_bin "$1" "$2" -} - -build_bin_test_file() { - local file="$1" - local derived_crate_name="${file//\//_}" - # Make sure to strip the top level `tests` directory: see #204051. Note that - # a forward slash has now become an underscore due to the substitution - # above. - derived_crate_name=${derived_crate_name#"tests_"} - derived_crate_name="${derived_crate_name%.rs}" - build_bin_test "$derived_crate_name" "$file" -} - -# Add additional link options that were provided by the build script. -setup_link_paths() { - EXTRA_LIB="" - if [[ -e target/link_ ]]; then - EXTRA_BUILD="$(cat target/link_) $EXTRA_BUILD" - fi - - echo "$EXTRA_LINK_SEARCH" | while read i; do - if [[ ! -z "$i" ]]; then - for library in $i; do - echo "-L $library" >> target/link - L=$(echo $library | sed -e "s#$(pwd)/target/build#$lib/lib#") - echo "-L $L" >> target/link.final - done - fi - done - echo "$EXTRA_LINK_LIBS" | while read i; do - if [[ ! -z "$i" ]]; then - for library in $i; do - echo "-l $library" >> target/link - done - fi - done - - if [[ -e target/link ]]; then - tr '\n' ' ' < target/link > target/link_ - LINK=$(cat target/link_) - fi -} - -search_for_bin_path() { - # heuristic to "guess" the correct source file as found in cargo: - # https://github.com/rust-lang/cargo/blob/90fc9f620190d5fa3c80b0c8c65a1e1361e6b8ae/src/cargo/util/toml/targets.rs#L308-L325 - - BIN_NAME=$1 - BIN_NAME_=$(echo $BIN_NAME | tr '-' '_') - - # the first two cases are the "new" default IIRC - FILES=( "src/bin/$BIN_NAME.rs" "src/bin/$BIN_NAME/main.rs" "src/bin/$BIN_NAME_.rs" "src/bin/$BIN_NAME_/main.rs" "src/bin/main.rs" "src/main.rs" ) - - if ! [ -e "$LIB_PATH" -o -e src/lib.rs -o -e "src/$LIB_NAME.rs" ]; then - # if this is not a library the following path is also valid - FILES=( "src/$BIN_NAME.rs" "src/$BIN_NAME_.rs" "${FILES[@]}" ) - fi - - for file in "${FILES[@]}"; - do - echo "checking file $file" - # first file that exists wins - if [[ -e "$file" ]]; then - BIN_PATH="$file" - break - fi - done - - if [[ -z "$BIN_PATH" ]]; then - echo_error "ERROR: failed to find file for binary target: $BIN_NAME" >&2 - exit 1 - fi -} - -# Extracts cargo_toml_path of the matching crate. -matching_cargo_toml_path() { - local manifest_path="$1" - local expected_crate_name="$2" - - # If the Cargo.toml is not a workspace root, - # it will only contain one package in ".packages" - # because "--no-deps" suppressed dependency resolution. - # - # But to make it more general, we search for a matching - # crate in all packages and use the manifest path that - # is referenced there. - cargo metadata --no-deps --format-version 1 \ - --manifest-path "$manifest_path" \ - | jq -r '.packages[] - | select( .name == "'$expected_crate_name'") - | .manifest_path' -} - -# Find a Cargo.toml in the current or any sub directory -# with a matching crate name. -matching_cargo_toml_dir() { - local expected_crate_name="$1" - - find -L -name Cargo.toml | sort | while read manifest_path; do - echo "...checking manifest_path $manifest_path" >&2 - local matching_path="$(matching_cargo_toml_path "$manifest_path" "$expected_crate_name")" - if [ -n "${matching_path}" ]; then - echo "$(dirname $matching_path)" - break - fi - done -} diff --git a/pkgs/build-support/rust/build-rust-crate/log.nix b/pkgs/build-support/rust/build-rust-crate/log.nix deleted file mode 100644 index 9054815..0000000 --- a/pkgs/build-support/rust/build-rust-crate/log.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ 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- ]]`. - '' - local echo_args=""; - while [[ "x$1" =~ ^x- ]]; do - echo_args+=" $1" - shift - done - - 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_colored = colors: '' - echo_colored() { - ${echo_conditional_colored_body colors ''\033[0;1;32m''} - } - - echo_error() { - ${echo_conditional_colored_body colors ''\033[0;1;31m''} - } - ''; - - noisily = colors: verbose: '' - 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 deleted file mode 100644 index 4831c10..0000000 --- a/pkgs/build-support/rust/build-rust-crate/test/brotli-crates.nix +++ /dev/null @@ -1,95 +0,0 @@ -{ 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); -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 ]; -} diff --git a/pkgs/build-support/rust/build-rust-crate/test/default.nix b/pkgs/build-support/rust/build-rust-crate/test/default.nix deleted file mode 100644 index 1ecef4c..0000000 --- a/pkgs/build-support/rust/build-rust-crate/test/default.nix +++ /dev/null @@ -1,671 +0,0 @@ -{ 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; - mkHostCrate = mkCrate buildRustCrate; - - mkCargoToml = - { 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; - }; - - 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); - } - ''; - - 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; - - 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; - - 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} - ''} - touch $out - '' 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 '' - 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. - - `name` is used as part of the derivation name that performs the checking. - - `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" ]`. - - `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 - '') - ; - - 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") ]; - }; - }; - 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" '' - 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"); - } - '') - ]; - }; - }; - # 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" - ]; - }; - - 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; - '') - ]; - }; - }; - }; - 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" - ]; - }; - - 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 = { - description = "Test cases for buildRustCrate"; - maintainers = [ ]; - }; - constituents = builtins.attrValues tests; - }; -} 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 deleted file mode 100644 index ed273c0..0000000 --- a/pkgs/build-support/rust/build-rust-crate/test/rcgen-crates.nix +++ /dev/null @@ -1,3494 +0,0 @@ - -# 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 - # Deprecated -, buildRustCrate ? null - # This is used as the `crateOverrides` argument for `buildRustCrate`. -, defaultCrateOverrides ? pkgs.defaultCrateOverrides - # The features to enable for the root_crate or the workspace_members. -, rootFeatures ? [ "default" ] - # If true, throw errors instead of issueing deprecation warnings. -, strictDeprecation ? false - # Used for conditional compilation based on CPU feature detection. -, targetFeatures ? [] - # Whether to perform release builds: longer compile times, faster binaries. -, release ? true - # Additional crate2nix configuration if it exists. -, crateConfig - ? lib.optionalAttrs (builtins.pathExists ./crate-config.nix) (pkgs.callPackage ./crate-config.nix {}) -}: - -rec { - # - # "public" attributes that we attempt to keep stable with new versions of crate2nix. - # - - rootCrate = rec { - packageId = "rcgen"; - - # 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; - }; - - # Debug support which might change between releases. - # File a bug if you depend on any for non-debug work! - debug = internal.debugCrate { inherit packageId; }; - }; - # Refer your crate build derivation by name here. - # You can override the features with - # workspaceMembers."${crateName}".build.override { features = [ "default" "feature1" ... ]; }. - workspaceMembers = { - "rcgen" = rec { - 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! - debug = internal.debugCrate { inherit packageId; }; - }; - }; - - # 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; - }; - - # - # "internal" ("private") attributes that may change in every new version of crate2nix. - # - - internal = rec { - # Build and dependency information for crates. - # Many of the fields are passed one-to-one to buildRustCrate. - # - # Noteworthy: - # * `dependencies`/`buildDependencies`: similar to the corresponding fields for buildRustCrate. - # but with additional information which is used during dependency/feature resolution. - # * `resolvedDependencies`: the selected default features reported by cargo - only included for debugging. - # * `devDependencies` as of now not used by `buildRustCrate` but used to - # inject test dependencies into the build - - crates = { - "asn1-rs" = rec { - crateName = "asn1-rs"; - version = "0.3.1"; - edition = "2018"; - sha256 = "0czsk1nd4dx2k83f7jzkn8klx05wbmblkx1jh51i4c170akhbzrh"; - authors = [ - "Pierre Chifflier " - ]; - dependencies = [ - { - name = "asn1-rs-derive"; - packageId = "asn1-rs-derive"; - } - { - name = "asn1-rs-impl"; - packageId = "asn1-rs-impl"; - } - { - name = "displaydoc"; - packageId = "displaydoc"; - } - { - name = "nom"; - packageId = "nom"; - usesDefaultFeatures = false; - features = [ "std" ]; - } - { - name = "num-traits"; - packageId = "num-traits"; - } - { - name = "rusticata-macros"; - packageId = "rusticata-macros"; - } - { - name = "thiserror"; - packageId = "thiserror"; - } - { - name = "time"; - packageId = "time"; - optional = true; - features = [ "macros" "parsing" "formatting" ]; - } - ]; - features = { - "bigint" = [ "num-bigint" ]; - "bits" = [ "bitvec" ]; - "bitvec" = [ "dep:bitvec" ]; - "cookie-factory" = [ "dep:cookie-factory" ]; - "datetime" = [ "time" ]; - "default" = [ "std" ]; - "num-bigint" = [ "dep:num-bigint" ]; - "serialize" = [ "cookie-factory" ]; - "time" = [ "dep:time" ]; - }; - resolvedDefaultFeatures = [ "datetime" "default" "std" "time" ]; - }; - "asn1-rs-derive" = rec { - crateName = "asn1-rs-derive"; - version = "0.1.0"; - edition = "2018"; - sha256 = "1gzf9vab06lk0zjvbr07axx64fndkng2s28bnj27fnwd548pb2yv"; - procMacro = true; - authors = [ - "Pierre Chifflier " - ]; - dependencies = [ - { - name = "proc-macro2"; - packageId = "proc-macro2"; - } - { - name = "quote"; - packageId = "quote"; - } - { - name = "syn"; - packageId = "syn"; - } - { - name = "synstructure"; - packageId = "synstructure"; - } - ]; - - }; - "asn1-rs-impl" = rec { - crateName = "asn1-rs-impl"; - version = "0.1.0"; - edition = "2018"; - sha256 = "1va27bn7qxqp4wanzjlkagnynv6jnrhnwmcky2ahzb1r405p6xr7"; - procMacro = true; - authors = [ - "Pierre Chifflier " - ]; - dependencies = [ - { - name = "proc-macro2"; - packageId = "proc-macro2"; - } - { - name = "quote"; - packageId = "quote"; - } - { - name = "syn"; - packageId = "syn"; - } - ]; - - }; - "autocfg 0.1.7" = rec { - crateName = "autocfg"; - version = "0.1.7"; - edition = "2015"; - sha256 = "1chwgimpx5z7xbag7krr9d8asxfqbh683qhgl9kn3hxk2l0djj8x"; - authors = [ - "Josh Stone " - ]; - - }; - "autocfg 1.0.1" = rec { - crateName = "autocfg"; - version = "1.0.1"; - edition = "2015"; - sha256 = "0jj6i9zn4gjl03kjvziqdji6rwx8ykz8zk2ngpc331z2g3fk3c6d"; - authors = [ - "Josh Stone " - ]; - - }; - "base64" = rec { - crateName = "base64"; - version = "0.13.0"; - edition = "2018"; - sha256 = "1z82g23mbzjgijkpcrilc7nljpxpvpf7zxf6iyiapkgka2ngwkch"; - authors = [ - "Alice Maz " - "Marshall Pierce " - ]; - features = { - "default" = [ "std" ]; - }; - resolvedDefaultFeatures = [ "default" "std" ]; - }; - "base64ct" = rec { - crateName = "base64ct"; - version = "1.1.1"; - edition = "2018"; - sha256 = "0p4was874qc90q2chm2i14m9mn8zmxjis8vaxihd6a2x4aqxkd76"; - authors = [ - "RustCrypto Developers" - ]; - features = { - "std" = [ "alloc" ]; - }; - }; - "bitflags" = rec { - crateName = "bitflags"; - version = "1.3.2"; - edition = "2018"; - sha256 = "12ki6w8gn1ldq7yz9y680llwk5gmrhrzszaa17g1sbrw2r2qvwxy"; - authors = [ - "The Rust Project Developers" - ]; - features = { - "compiler_builtins" = [ "dep:compiler_builtins" ]; - "core" = [ "dep:core" ]; - "rustc-dep-of-std" = [ "core" "compiler_builtins" ]; - }; - resolvedDefaultFeatures = [ "default" ]; - }; - "botan" = rec { - crateName = "botan"; - version = "0.8.1"; - edition = "2018"; - sha256 = "08bmiyn7c3b0dgx20w6hr28d9jcq7cj78cchr84pc686sb2s41ik"; - authors = [ - "Jack Lloyd " - ]; - dependencies = [ - { - name = "botan-sys"; - packageId = "botan-sys"; - } - { - name = "cty"; - packageId = "cty"; - } - ]; - features = { - "cstr_core" = [ "dep:cstr_core" ]; - "no-std" = [ "cstr_core/alloc" ]; - "vendored" = [ "botan-sys/vendored" ]; - }; - resolvedDefaultFeatures = [ "default" "vendored" ]; - }; - "botan-src" = rec { - crateName = "botan-src"; - version = "0.21703.0"; - edition = "2018"; - sha256 = "0s2ad9q84qsrllfsbj7hjhn7gr3hab9ng6lwzwqmimia6yvja8y8"; - authors = [ - "Rodolphe Breard " - "Jack Lloyd " - ]; - - }; - "botan-sys" = rec { - crateName = "botan-sys"; - version = "0.8.1"; - edition = "2015"; - sha256 = "1m11zblxfanrhl97j7z3ap7n17rr8j0rg91sr7f9j6y2bsniaz1x"; - authors = [ - "Jack Lloyd " - ]; - dependencies = [ - { - name = "cty"; - packageId = "cty"; - } - ]; - buildDependencies = [ - { - name = "botan-src"; - packageId = "botan-src"; - optional = true; - } - ]; - features = { - "botan-src" = [ "dep:botan-src" ]; - "vendored" = [ "botan-src" ]; - }; - resolvedDefaultFeatures = [ "botan-src" "default" "vendored" ]; - }; - "bumpalo" = rec { - crateName = "bumpalo"; - version = "3.9.1"; - edition = "2018"; - sha256 = "1688dv6s0cbj72p9lmll8a02a85dzxvdw2is7pji490zmd35m954"; - authors = [ - "Nick Fitzgerald " - ]; - features = { - }; - resolvedDefaultFeatures = [ "default" ]; - }; - "byteorder" = rec { - crateName = "byteorder"; - version = "1.4.3"; - edition = "2018"; - sha256 = "0456lv9xi1a5bcm32arknf33ikv76p3fr9yzki4lb2897p2qkh8l"; - authors = [ - "Andrew Gallant " - ]; - features = { - "default" = [ "std" ]; - }; - }; - "cc" = rec { - crateName = "cc"; - version = "1.0.72"; - edition = "2018"; - crateBin = []; - sha256 = "1vl50h2qh0nh0iddzj6gd1pnxnxpvwmbfxc30578c1pajmxi7a92"; - authors = [ - "Alex Crichton " - ]; - features = { - "jobserver" = [ "dep:jobserver" ]; - "parallel" = [ "jobserver" ]; - }; - }; - "cfg-if" = rec { - crateName = "cfg-if"; - version = "1.0.0"; - edition = "2018"; - sha256 = "1za0vb97n4brpzpv8lsbnzmq5r8f2b0cpqqr0sy8h5bn751xxwds"; - authors = [ - "Alex Crichton " - ]; - features = { - "compiler_builtins" = [ "dep:compiler_builtins" ]; - "core" = [ "dep:core" ]; - "rustc-dep-of-std" = [ "core" "compiler_builtins" ]; - }; - }; - "const-oid" = rec { - crateName = "const-oid"; - version = "0.6.2"; - edition = "2018"; - sha256 = "12vv7csqqjj0x1l5mf51lgqiw76k5c3mb1yzfhfcqysks2j2lvwx"; - authors = [ - "RustCrypto Developers" - ]; - features = { - }; - }; - "crypto-bigint" = rec { - crateName = "crypto-bigint"; - version = "0.2.11"; - edition = "2018"; - sha256 = "00qckh65nzb7s7vd60wylw6alxf9g37xh31lirb1qw0l8fxx6fzq"; - authors = [ - "RustCrypto Developers" - ]; - dependencies = [ - { - name = "generic-array"; - packageId = "generic-array"; - optional = true; - } - { - name = "rand_core"; - packageId = "rand_core"; - optional = true; - } - { - name = "subtle"; - packageId = "subtle"; - usesDefaultFeatures = false; - } - ]; - features = { - "default" = [ "rand" ]; - "generic-array" = [ "dep:generic-array" ]; - "rand" = [ "rand_core" ]; - "rand_core" = [ "dep:rand_core" ]; - "rlp" = [ "dep:rlp" ]; - "zeroize" = [ "dep:zeroize" ]; - }; - resolvedDefaultFeatures = [ "default" "generic-array" "rand" "rand_core" ]; - }; - "cty" = rec { - crateName = "cty"; - version = "0.2.2"; - edition = "2015"; - sha256 = "0d8z0pbr87wgzqqb2jk5pvj0afzc6d3rb772ach6fijhg6yglrdk"; - authors = [ - "Jorge Aparicio " - ]; - - }; - "data-encoding" = rec { - crateName = "data-encoding"; - version = "2.3.2"; - edition = "2018"; - sha256 = "0mvd8bjq5mq50fcf931cff57vwmbsvs1kpxynkzrshli98y3kqiy"; - authors = [ - "Julien Cretin " - ]; - features = { - "default" = [ "std" ]; - "std" = [ "alloc" ]; - }; - resolvedDefaultFeatures = [ "alloc" "default" "std" ]; - }; - "der" = rec { - crateName = "der"; - version = "0.4.5"; - edition = "2018"; - sha256 = "1x4k0jln8va1657cghl40l6p7hyvr1ixz71v9cd6imwmgp51rdvr"; - authors = [ - "RustCrypto Developers" - ]; - dependencies = [ - { - name = "const-oid"; - packageId = "const-oid"; - optional = true; - } - { - name = "crypto-bigint"; - packageId = "crypto-bigint"; - optional = true; - features = [ "generic-array" ]; - } - ]; - features = { - "bigint" = [ "crypto-bigint" ]; - "const-oid" = [ "dep:const-oid" ]; - "crypto-bigint" = [ "dep:crypto-bigint" ]; - "der_derive" = [ "dep:der_derive" ]; - "derive" = [ "der_derive" ]; - "oid" = [ "const-oid" ]; - "std" = [ "alloc" ]; - }; - 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 " - ]; - dependencies = [ - { - name = "asn1-rs"; - packageId = "asn1-rs"; - } - { - name = "displaydoc"; - packageId = "displaydoc"; - usesDefaultFeatures = false; - } - { - name = "nom"; - packageId = "nom"; - } - { - name = "num-bigint"; - packageId = "num-bigint"; - optional = true; - } - { - name = "num-traits"; - packageId = "num-traits"; - } - { - name = "rusticata-macros"; - packageId = "rusticata-macros"; - } - ]; - features = { - "bigint" = [ "num-bigint" ]; - "cookie-factory" = [ "dep:cookie-factory" ]; - "default" = [ "std" ]; - "num-bigint" = [ "dep:num-bigint" ]; - "serialize" = [ "std" "cookie-factory" ]; - }; - resolvedDefaultFeatures = [ "bigint" "default" "num-bigint" "std" ]; - }; - "digest" = rec { - crateName = "digest"; - version = "0.9.0"; - edition = "2018"; - sha256 = "0rmhvk33rgvd6ll71z8sng91a52rw14p0drjn1da0mqa138n1pfk"; - authors = [ - "RustCrypto Developers" - ]; - dependencies = [ - { - name = "generic-array"; - packageId = "generic-array"; - } - ]; - features = { - "blobby" = [ "dep:blobby" ]; - "dev" = [ "blobby" ]; - "std" = [ "alloc" ]; - }; - resolvedDefaultFeatures = [ "alloc" "std" ]; - }; - "displaydoc" = rec { - crateName = "displaydoc"; - version = "0.2.3"; - edition = "2018"; - sha256 = "11i8p5snlc1hs4g5q3wiyr75dn276l6kr0si5m7xmfa6y31mvy9v"; - procMacro = true; - authors = [ - "Jane Lusby " - ]; - dependencies = [ - { - name = "proc-macro2"; - packageId = "proc-macro2"; - } - { - name = "quote"; - packageId = "quote"; - } - { - name = "syn"; - packageId = "syn"; - } - ]; - features = { - "default" = [ "std" ]; - }; - resolvedDefaultFeatures = [ "default" "std" ]; - }; - "foreign-types" = rec { - crateName = "foreign-types"; - version = "0.3.2"; - edition = "2015"; - sha256 = "1cgk0vyd7r45cj769jym4a6s7vwshvd0z4bqrb92q1fwibmkkwzn"; - authors = [ - "Steven Fackler " - ]; - dependencies = [ - { - name = "foreign-types-shared"; - packageId = "foreign-types-shared"; - } - ]; - - }; - "foreign-types-shared" = rec { - crateName = "foreign-types-shared"; - version = "0.1.1"; - edition = "2015"; - sha256 = "0jxgzd04ra4imjv8jgkmdq59kj8fsz6w4zxsbmlai34h26225c00"; - authors = [ - "Steven Fackler " - ]; - - }; - "generic-array" = rec { - crateName = "generic-array"; - version = "0.14.5"; - edition = "2015"; - sha256 = "00qqhls43bzvyb7s26iw6knvsz3mckbxl3rhaahvypzhqwzd6j7x"; - libName = "generic_array"; - authors = [ - "Bartłomiej Kamiński " - "Aaron Trent " - ]; - dependencies = [ - { - name = "typenum"; - packageId = "typenum"; - } - ]; - buildDependencies = [ - { - name = "version_check"; - packageId = "version_check"; - } - ]; - features = { - "serde" = [ "dep:serde" ]; - }; - }; - "getrandom" = rec { - crateName = "getrandom"; - version = "0.2.4"; - edition = "2018"; - sha256 = "0k0bdr1dyf4n9fvnkx4fmwxhv4hgnyf55gj86v4m69fln743g3a1"; - authors = [ - "The Rand Project Developers" - ]; - dependencies = [ - { - name = "cfg-if"; - packageId = "cfg-if"; - } - { - name = "libc"; - packageId = "libc"; - usesDefaultFeatures = false; - target = { target, features }: (target."unix" or false); - } - { - name = "wasi"; - packageId = "wasi"; - target = { target, features }: (target."os" == "wasi"); - } - ]; - features = { - "compiler_builtins" = [ "dep:compiler_builtins" ]; - "core" = [ "dep:core" ]; - "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" ]; - "wasm-bindgen" = [ "dep:wasm-bindgen" ]; - }; - resolvedDefaultFeatures = [ "std" ]; - }; - "itoa" = rec { - crateName = "itoa"; - version = "1.0.1"; - edition = "2018"; - sha256 = "0d8wr2qf5b25a04xf10rz9r0pdbjdgb0zaw3xvf8k2sqcz1qzaqs"; - authors = [ - "David Tolnay " - ]; - - }; - "js-sys" = rec { - crateName = "js-sys"; - version = "0.3.56"; - edition = "2018"; - sha256 = "010g8jkj5avy3xd77i3cprjzzpfa6z9z2ay0fkllqmpx617c53x3"; - authors = [ - "The wasm-bindgen Developers" - ]; - dependencies = [ - { - name = "wasm-bindgen"; - packageId = "wasm-bindgen"; - } - ]; - - }; - "lazy_static" = rec { - crateName = "lazy_static"; - version = "1.4.0"; - edition = "2015"; - sha256 = "0in6ikhw8mgl33wjv6q6xfrb5b9jr16q8ygjy803fay4zcisvaz2"; - authors = [ - "Marvin Löbel " - ]; - dependencies = [ - { - name = "spin"; - packageId = "spin"; - optional = true; - } - ]; - features = { - "spin" = [ "dep:spin" ]; - "spin_no_std" = [ "spin" ]; - }; - resolvedDefaultFeatures = [ "spin" "spin_no_std" ]; - }; - "libc" = rec { - crateName = "libc"; - version = "0.2.116"; - edition = "2015"; - sha256 = "0x6sk17kv2fdsqxlm23bz9x1y79w90k7ylkflk44rgidhy4bspan"; - authors = [ - "The Rust Project Developers" - ]; - features = { - "default" = [ "std" ]; - "rustc-dep-of-std" = [ "align" "rustc-std-workspace-core" ]; - "rustc-std-workspace-core" = [ "dep:rustc-std-workspace-core" ]; - "use_std" = [ "std" ]; - }; - resolvedDefaultFeatures = [ "default" "std" ]; - }; - "libm" = rec { - crateName = "libm"; - version = "0.2.1"; - edition = "2018"; - sha256 = "0akh56sh51adhagmk9l84dyrlz60gv8ri05xhr13i1b18czkpmy7"; - authors = [ - "Jorge Aparicio " - ]; - features = { - "musl-reference-tests" = [ "rand" ]; - "rand" = [ "dep:rand" ]; - }; - resolvedDefaultFeatures = [ "default" ]; - }; - "log" = rec { - crateName = "log"; - version = "0.4.14"; - edition = "2015"; - sha256 = "04175hv0v62shd82qydq58a48k3bjijmk54v38zgqlbxqkkbpfai"; - authors = [ - "The Rust Project Developers" - ]; - dependencies = [ - { - name = "cfg-if"; - packageId = "cfg-if"; - } - ]; - 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" ]; - "serde" = [ "dep:serde" ]; - "sval" = [ "dep:sval" ]; - "value-bag" = [ "dep:value-bag" ]; - }; - }; - "memchr" = rec { - crateName = "memchr"; - version = "2.4.1"; - edition = "2018"; - sha256 = "0smq8xzd40njqpfzv5mghigj91fzlfrfg842iz8x0wqvw2dw731h"; - authors = [ - "Andrew Gallant " - "bluss" - ]; - features = { - "compiler_builtins" = [ "dep:compiler_builtins" ]; - "core" = [ "dep:core" ]; - "default" = [ "std" ]; - "libc" = [ "dep:libc" ]; - "rustc-dep-of-std" = [ "core" "compiler_builtins" ]; - "use_std" = [ "std" ]; - }; - resolvedDefaultFeatures = [ "std" ]; - }; - "minimal-lexical" = rec { - crateName = "minimal-lexical"; - version = "0.2.1"; - edition = "2018"; - sha256 = "16ppc5g84aijpri4jzv14rvcnslvlpphbszc7zzp6vfkddf4qdb8"; - authors = [ - "Alex Huszagh " - ]; - features = { - "default" = [ "std" ]; - }; - resolvedDefaultFeatures = [ "std" ]; - }; - "nom" = rec { - crateName = "nom"; - version = "7.1.0"; - edition = "2018"; - sha256 = "0281jdx0xcyhjgs1jkj9pii8py1clcpazg41bgz7d71qxzhi278v"; - authors = [ - "contact@geoffroycouprie.com" - ]; - dependencies = [ - { - name = "memchr"; - packageId = "memchr"; - usesDefaultFeatures = false; - } - { - name = "minimal-lexical"; - packageId = "minimal-lexical"; - usesDefaultFeatures = false; - } - ]; - buildDependencies = [ - { - name = "version_check"; - packageId = "version_check"; - } - ]; - features = { - "default" = [ "std" ]; - "std" = [ "alloc" "memchr/std" "minimal-lexical/std" ]; - }; - resolvedDefaultFeatures = [ "alloc" "default" "std" ]; - }; - "num-bigint" = rec { - crateName = "num-bigint"; - version = "0.4.3"; - edition = "2018"; - sha256 = "0py73wsa5j4izhd39nkqzqv260r0ma08vy30ky54ld3vkhlbcfpr"; - authors = [ - "The Rust Project Developers" - ]; - dependencies = [ - { - name = "num-integer"; - packageId = "num-integer"; - usesDefaultFeatures = false; - features = [ "i128" ]; - } - { - name = "num-traits"; - packageId = "num-traits"; - usesDefaultFeatures = false; - features = [ "i128" ]; - } - ]; - buildDependencies = [ - { - name = "autocfg"; - packageId = "autocfg 1.0.1"; - } - ]; - features = { - "arbitrary" = [ "dep:arbitrary" ]; - "default" = [ "std" ]; - "quickcheck" = [ "dep:quickcheck" ]; - "rand" = [ "dep:rand" ]; - "serde" = [ "dep:serde" ]; - "std" = [ "num-integer/std" "num-traits/std" ]; - }; - resolvedDefaultFeatures = [ "default" "std" ]; - }; - "num-bigint-dig" = rec { - crateName = "num-bigint-dig"; - version = "0.7.0"; - edition = "2015"; - sha256 = "1004mmipvc7pvaf3kf13i1nqh3vxf789bj72d8wl51y185aywis5"; - authors = [ - "dignifiedquire " - "The Rust Project Developers" - ]; - dependencies = [ - { - name = "byteorder"; - packageId = "byteorder"; - usesDefaultFeatures = false; - } - { - name = "lazy_static"; - packageId = "lazy_static"; - usesDefaultFeatures = false; - features = [ "spin_no_std" ]; - } - { - name = "libm"; - packageId = "libm"; - } - { - name = "num-integer"; - packageId = "num-integer"; - usesDefaultFeatures = false; - } - { - name = "num-iter"; - packageId = "num-iter"; - usesDefaultFeatures = false; - } - { - name = "num-traits"; - packageId = "num-traits"; - usesDefaultFeatures = false; - } - { - name = "rand"; - packageId = "rand"; - optional = true; - usesDefaultFeatures = false; - } - { - name = "smallvec"; - packageId = "smallvec"; - usesDefaultFeatures = false; - } - { - name = "zeroize"; - packageId = "zeroize"; - optional = true; - usesDefaultFeatures = false; - features = [ "zeroize_derive" ]; - } - ]; - buildDependencies = [ - { - name = "autocfg"; - packageId = "autocfg 0.1.7"; - } - ]; - devDependencies = [ - { - name = "rand"; - packageId = "rand"; - features = [ "small_rng" ]; - } - ]; - features = { - "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" ]; - "zeroize" = [ "dep: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" - ]; - dependencies = [ - { - name = "num-traits"; - packageId = "num-traits"; - usesDefaultFeatures = false; - } - ]; - buildDependencies = [ - { - name = "autocfg"; - packageId = "autocfg 1.0.1"; - } - ]; - features = { - "default" = [ "std" ]; - "i128" = [ "num-traits/i128" ]; - "std" = [ "num-traits/std" ]; - }; - resolvedDefaultFeatures = [ "i128" "std" ]; - }; - "num-iter" = rec { - crateName = "num-iter"; - version = "0.1.42"; - edition = "2015"; - sha256 = "0ndd9wb9qar50fdr16xm3i1zk6h2g9br56nml2n22kd56y1iq0mj"; - authors = [ - "The Rust Project Developers" - ]; - dependencies = [ - { - name = "num-integer"; - packageId = "num-integer"; - usesDefaultFeatures = false; - } - { - name = "num-traits"; - packageId = "num-traits"; - usesDefaultFeatures = false; - } - ]; - buildDependencies = [ - { - name = "autocfg"; - packageId = "autocfg 1.0.1"; - } - ]; - features = { - "default" = [ "std" ]; - "i128" = [ "num-integer/i128" "num-traits/i128" ]; - "std" = [ "num-integer/std" "num-traits/std" ]; - }; - }; - "num-traits" = rec { - crateName = "num-traits"; - version = "0.2.14"; - edition = "2015"; - sha256 = "144j176s2p76azy2ngk2vkdzgwdc0bc8c93jhki8c9fsbknb2r4s"; - authors = [ - "The Rust Project Developers" - ]; - dependencies = [ - { - name = "libm"; - packageId = "libm"; - optional = true; - } - ]; - buildDependencies = [ - { - name = "autocfg"; - packageId = "autocfg 1.0.1"; - } - ]; - features = { - "default" = [ "std" ]; - "libm" = [ "dep:libm" ]; - }; - resolvedDefaultFeatures = [ "default" "i128" "libm" "std" ]; - }; - "num_threads" = rec { - crateName = "num_threads"; - version = "0.1.3"; - edition = "2015"; - sha256 = "05gvsnv4k6d69iksz47i7fq1r61dj1k1nh4i8xrw7qlkcfx9kflp"; - authors = [ - "Jacob Pratt " - ]; - dependencies = [ - { - name = "libc"; - packageId = "libc"; - target = { target, features }: ((target."os" == "macos") || (target."os" == "freebsd")); - } - ]; - - }; - "oid-registry" = rec { - crateName = "oid-registry"; - version = "0.4.0"; - edition = "2018"; - sha256 = "0akbah3j8231ayrp2l1y5d9zmvbvqcsj0sa6s6dz6h85z8bhgqiq"; - authors = [ - "Pierre Chifflier " - ]; - dependencies = [ - { - name = "asn1-rs"; - packageId = "asn1-rs"; - } - ]; - features = { - "crypto" = [ "kdf" "pkcs1" "pkcs7" "pkcs9" "pkcs12" "nist_algs" "x962" ]; - "default" = [ "registry" ]; - }; - 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 " - ]; - features = { - "alloc" = [ "race" ]; - "atomic-polyfill" = [ "dep:atomic-polyfill" ]; - "default" = [ "std" ]; - "parking_lot" = [ "dep:parking_lot" ]; - "std" = [ "alloc" ]; - }; - resolvedDefaultFeatures = [ "alloc" "default" "race" "std" ]; - }; - "openssl" = rec { - crateName = "openssl"; - version = "0.10.38"; - edition = "2018"; - sha256 = "15baqlphisr1f7ddq11jnrrzz4shdh35kwal24adyc2c4cif4yhc"; - authors = [ - "Steven Fackler " - ]; - dependencies = [ - { - name = "bitflags"; - packageId = "bitflags"; - } - { - name = "cfg-if"; - packageId = "cfg-if"; - } - { - name = "foreign-types"; - packageId = "foreign-types"; - } - { - name = "libc"; - packageId = "libc"; - } - { - name = "once_cell"; - packageId = "once_cell"; - } - { - name = "openssl-sys"; - packageId = "openssl-sys"; - rename = "ffi"; - } - ]; - features = { - "vendored" = [ "ffi/vendored" ]; - }; - }; - "openssl-sys" = rec { - crateName = "openssl-sys"; - version = "0.9.72"; - edition = "2015"; - sha256 = "1jq3qbcvf16qn71yasdzw54b14n8nz98vr52l1gp60in72f10iky"; - build = "build/main.rs"; - authors = [ - "Alex Crichton " - "Steven Fackler " - ]; - dependencies = [ - { - name = "libc"; - packageId = "libc"; - } - ]; - buildDependencies = [ - { - name = "autocfg"; - packageId = "autocfg 1.0.1"; - } - { - name = "cc"; - packageId = "cc"; - } - { - name = "pkg-config"; - packageId = "pkg-config"; - } - { - name = "vcpkg"; - packageId = "vcpkg"; - target = {target, features}: (target."env" == "msvc"); - } - ]; - features = { - "openssl-src" = [ "dep:openssl-src" ]; - "vendored" = [ "openssl-src" ]; - }; - }; - "pem" = rec { - crateName = "pem"; - version = "1.0.2"; - edition = "2018"; - sha256 = "0iqrvfnm71x9pvff39d5ajwn3gc9glxlv4d4h22max7342db18z9"; - authors = [ - "Jonathan Creekmore " - ]; - dependencies = [ - { - name = "base64"; - packageId = "base64"; - } - ]; - - }; - "pem-rfc7468" = rec { - crateName = "pem-rfc7468"; - version = "0.2.4"; - edition = "2018"; - sha256 = "1m1c9jypydzabg4yscplmvff7pdcc8gg4cqg081hnlf03hxkmsc4"; - authors = [ - "RustCrypto Developers" - ]; - dependencies = [ - { - name = "base64ct"; - packageId = "base64ct"; - } - ]; - features = { - "std" = [ "alloc" ]; - }; - resolvedDefaultFeatures = [ "alloc" ]; - }; - "pkcs1" = rec { - crateName = "pkcs1"; - version = "0.2.4"; - edition = "2018"; - sha256 = "0b2f1a0lf5h53zrjvcqbxzjhh89gcfa1myhf6z7w10ypg61fwsqi"; - authors = [ - "RustCrypto Developers" - ]; - dependencies = [ - { - name = "der"; - packageId = "der"; - features = [ "bigint" "oid" ]; - } - { - name = "pem-rfc7468"; - packageId = "pem-rfc7468"; - optional = true; - } - { - name = "zeroize"; - packageId = "zeroize"; - optional = true; - usesDefaultFeatures = false; - features = [ "alloc" ]; - } - ]; - features = { - "alloc" = [ "der/alloc" "zeroize" ]; - "pem" = [ "alloc" "pem-rfc7468/alloc" ]; - "pem-rfc7468" = [ "dep:pem-rfc7468" ]; - "zeroize" = [ "dep:zeroize" ]; - }; - resolvedDefaultFeatures = [ "alloc" "pem" "pem-rfc7468" "std" "zeroize" ]; - }; - "pkcs8" = rec { - crateName = "pkcs8"; - version = "0.7.6"; - edition = "2018"; - sha256 = "0iq46p6fa2b8xy6pj52zpmdy8ya3fg31dj4rc19x1fi69nvgjgpf"; - authors = [ - "RustCrypto Developers" - ]; - dependencies = [ - { - name = "der"; - packageId = "der"; - features = [ "oid" ]; - } - { - name = "pem-rfc7468"; - packageId = "pem-rfc7468"; - optional = true; - } - { - name = "pkcs1"; - packageId = "pkcs1"; - optional = true; - features = [ "alloc" ]; - } - { - name = "spki"; - packageId = "spki"; - } - { - name = "zeroize"; - packageId = "zeroize"; - optional = true; - usesDefaultFeatures = false; - features = [ "alloc" ]; - } - ]; - 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" ]; - "pem-rfc7468" = [ "dep:pem-rfc7468" ]; - "pkcs1" = [ "dep:pkcs1" ]; - "pkcs5" = [ "dep:pkcs5" ]; - "rand_core" = [ "dep:rand_core" ]; - "sha1" = [ "encryption" "pkcs5/sha1" ]; - "std" = [ "alloc" "der/std" ]; - "zeroize" = [ "dep: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 " - ]; - - }; - "ppv-lite86" = rec { - crateName = "ppv-lite86"; - version = "0.2.16"; - edition = "2018"; - sha256 = "0wkqwnvnfcgqlrahphl45vdlgi2f1bs7nqcsalsllp1y4dp9x7zb"; - authors = [ - "The CryptoCorrosion Contributors" - ]; - features = { - "default" = [ "std" ]; - }; - resolvedDefaultFeatures = [ "simd" "std" ]; - }; - "proc-macro2" = rec { - crateName = "proc-macro2"; - version = "1.0.36"; - edition = "2018"; - sha256 = "0adh6gvs31x6pfwmygypmzrv1jc7kjq568vsqcfaxk7vhdc2sd67"; - authors = [ - "David Tolnay " - "Alex Crichton " - ]; - dependencies = [ - { - name = "unicode-xid"; - packageId = "unicode-xid"; - } - ]; - features = { - "default" = [ "proc-macro" ]; - }; - resolvedDefaultFeatures = [ "default" "proc-macro" ]; - }; - "quote" = rec { - crateName = "quote"; - version = "1.0.15"; - edition = "2018"; - sha256 = "0id1q0875pvhkg0mlb5z8gzdm2g2rbbz76bfzhv331lrm2b3wkc6"; - authors = [ - "David Tolnay " - ]; - dependencies = [ - { - name = "proc-macro2"; - packageId = "proc-macro2"; - usesDefaultFeatures = false; - } - ]; - features = { - "default" = [ "proc-macro" ]; - "proc-macro" = [ "proc-macro2/proc-macro" ]; - }; - resolvedDefaultFeatures = [ "default" "proc-macro" ]; - }; - "rand" = rec { - crateName = "rand"; - version = "0.8.4"; - edition = "2018"; - sha256 = "1n5wska2fbfj4dsfz8mc0pd0dgjlrb6c9anpk5mwym345rip6x9f"; - authors = [ - "The Rand Project Developers" - "The Rust Project Developers" - ]; - dependencies = [ - { - name = "libc"; - packageId = "libc"; - optional = true; - usesDefaultFeatures = false; - target = { target, features }: (target."unix" or false); - } - { - name = "rand_chacha"; - packageId = "rand_chacha"; - optional = true; - usesDefaultFeatures = false; - target = { target, features }: (!(target."os" == "emscripten")); - } - { - name = "rand_core"; - packageId = "rand_core"; - } - { - name = "rand_hc"; - packageId = "rand_hc"; - optional = true; - target = { target, features }: (target."os" == "emscripten"); - } - ]; - devDependencies = [ - { - name = "rand_hc"; - packageId = "rand_hc"; - } - ]; - features = { - "alloc" = [ "rand_core/alloc" ]; - "default" = [ "std" "std_rng" ]; - "getrandom" = [ "rand_core/getrandom" ]; - "libc" = [ "dep:libc" ]; - "log" = [ "dep:log" ]; - "packed_simd" = [ "dep:packed_simd" ]; - "rand_chacha" = [ "dep:rand_chacha" ]; - "rand_hc" = [ "dep:rand_hc" ]; - "serde" = [ "dep:serde" ]; - "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" ]; - }; - resolvedDefaultFeatures = [ "alloc" "default" "getrandom" "libc" "rand_chacha" "rand_hc" "std" "std_rng" ]; - }; - "rand_chacha" = rec { - crateName = "rand_chacha"; - version = "0.3.1"; - edition = "2018"; - sha256 = "123x2adin558xbhvqb8w4f6syjsdkmqff8cxwhmjacpsl1ihmhg6"; - authors = [ - "The Rand Project Developers" - "The Rust Project Developers" - "The CryptoCorrosion Contributors" - ]; - dependencies = [ - { - name = "ppv-lite86"; - packageId = "ppv-lite86"; - usesDefaultFeatures = false; - features = [ "simd" ]; - } - { - name = "rand_core"; - packageId = "rand_core"; - } - ]; - features = { - "default" = [ "std" ]; - "serde" = [ "dep:serde" ]; - "serde1" = [ "serde" ]; - "std" = [ "ppv-lite86/std" ]; - }; - resolvedDefaultFeatures = [ "std" ]; - }; - "rand_core" = rec { - crateName = "rand_core"; - version = "0.6.3"; - edition = "2018"; - sha256 = "1rxlxc3bpzgwphcg9c9yasvv9idipcg2z2y4j0vlb52jyl418kyk"; - authors = [ - "The Rand Project Developers" - "The Rust Project Developers" - ]; - dependencies = [ - { - name = "getrandom"; - packageId = "getrandom"; - optional = true; - } - ]; - features = { - "getrandom" = [ "dep:getrandom" ]; - "serde" = [ "dep:serde" ]; - "serde1" = [ "serde" ]; - "std" = [ "alloc" "getrandom" "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" - ]; - dependencies = [ - { - name = "rand_core"; - packageId = "rand_core"; - } - ]; - - }; - "rcgen" = rec { - crateName = "rcgen"; - version = "0.9.2"; - edition = "2018"; - crateBin = [ - { name = "rcgen"; path = "src/main.rs"; } - ]; - sha256 = "0ppwfl9g504x2qwk7m7mag8c3l70w9mcfha93013nlzqdlw2vynp"; - authors = [ - "est31 " - ]; - dependencies = [ - { - name = "pem"; - packageId = "pem"; - optional = true; - } - { - name = "ring"; - packageId = "ring"; - } - { - name = "time"; - packageId = "time"; - usesDefaultFeatures = false; - } - { - name = "x509-parser"; - packageId = "x509-parser"; - optional = true; - features = [ "verify" ]; - } - { - name = "yasna"; - packageId = "yasna"; - features = [ "time" "std" ]; - } - { - name = "zeroize"; - packageId = "zeroize"; - optional = true; - } - ]; - devDependencies = [ - { - name = "botan"; - packageId = "botan"; - features = [ "vendored" ]; - } - { - name = "openssl"; - packageId = "openssl"; - } - { - name = "rand"; - packageId = "rand"; - } - { - name = "rsa"; - packageId = "rsa"; - } - { - name = "webpki"; - packageId = "webpki"; - features = [ "std" ]; - } - { - name = "x509-parser"; - packageId = "x509-parser"; - features = [ "verify" ]; - } - ]; - features = { - "default" = [ "pem" ]; - "pem" = [ "dep:pem" ]; - "x509-parser" = [ "dep:x509-parser" ]; - "zeroize" = [ "dep:zeroize" ]; - }; - resolvedDefaultFeatures = [ "default" "pem" "x509-parser" "zeroize" ]; - }; - "ring" = rec { - crateName = "ring"; - version = "0.16.20"; - edition = "2018"; - sha256 = "1z682xp7v38ayq9g9nkbhhfpj6ygralmlx7wdmsfv8rnw99cylrh"; - authors = [ - "Brian Smith " - ]; - dependencies = [ - { - name = "libc"; - packageId = "libc"; - usesDefaultFeatures = false; - target = { target, features }: ((target."os" == "android") || (target."os" == "linux")); - } - { - name = "once_cell"; - packageId = "once_cell"; - optional = true; - usesDefaultFeatures = false; - target = { target, features }: ((target."os" == "android") || (target."os" == "linux")); - features = [ "std" ]; - } - { - 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")); - 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")))); - } - { - name = "untrusted"; - packageId = "untrusted"; - } - { - 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" ]; - } - { - name = "winapi"; - packageId = "winapi"; - usesDefaultFeatures = false; - target = { target, features }: (target."os" == "windows"); - features = [ "ntsecapi" "wtypesbase" ]; - } - ]; - buildDependencies = [ - { - name = "cc"; - packageId = "cc"; - usesDefaultFeatures = false; - } - ]; - devDependencies = [ - { - name = "libc"; - packageId = "libc"; - usesDefaultFeatures = false; - target = {target, features}: ((target."unix" or false) || (target."windows" or false)); - } - ]; - features = { - "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" ]; - }; - "rsa" = rec { - crateName = "rsa"; - version = "0.5.0"; - edition = "2018"; - sha256 = "039676a4mj0875phdi7vc0bd37hv84dh0dql6fmk8dl2w81jcp70"; - authors = [ - "RustCrypto Developers" - "dignifiedquire " - ]; - dependencies = [ - { - name = "byteorder"; - packageId = "byteorder"; - usesDefaultFeatures = false; - } - { - name = "digest"; - packageId = "digest"; - usesDefaultFeatures = false; - } - { - name = "lazy_static"; - packageId = "lazy_static"; - features = [ "spin_no_std" ]; - } - { - name = "num-bigint-dig"; - packageId = "num-bigint-dig"; - rename = "num-bigint"; - usesDefaultFeatures = false; - features = [ "i128" "u64_digit" "prime" "zeroize" ]; - } - { - name = "num-integer"; - packageId = "num-integer"; - usesDefaultFeatures = false; - } - { - name = "num-iter"; - packageId = "num-iter"; - usesDefaultFeatures = false; - } - { - name = "num-traits"; - packageId = "num-traits"; - usesDefaultFeatures = false; - features = [ "libm" ]; - } - { - name = "pkcs1"; - packageId = "pkcs1"; - usesDefaultFeatures = false; - } - { - name = "pkcs8"; - packageId = "pkcs8"; - usesDefaultFeatures = false; - } - { - name = "rand"; - packageId = "rand"; - usesDefaultFeatures = false; - features = [ "std_rng" ]; - } - { - name = "subtle"; - packageId = "subtle"; - usesDefaultFeatures = false; - } - { - name = "zeroize"; - packageId = "zeroize"; - 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" ]; - "pkcs5" = [ "pkcs8/encryption" ]; - "serde" = [ "num-bigint/serde" "serde_crate" ]; - "serde_crate" = [ "dep:serde_crate" ]; - "std" = [ "alloc" "digest/std" "pkcs1/std" "pkcs8/std" "rand/std" ]; - }; - resolvedDefaultFeatures = [ "alloc" "default" "pem" "std" ]; - }; - "rusticata-macros" = rec { - crateName = "rusticata-macros"; - version = "4.0.0"; - edition = "2018"; - sha256 = "03dmfxhgwzpm1360iwcpcg3y18ddgya0i0hc599am212pdvj7ib5"; - authors = [ - "Pierre Chifflier " - ]; - dependencies = [ - { - name = "nom"; - packageId = "nom"; - usesDefaultFeatures = false; - features = [ "std" ]; - } - ]; - - }; - "smallvec" = rec { - crateName = "smallvec"; - version = "1.8.0"; - edition = "2018"; - sha256 = "10zf4fn63p2d6sx8qap3jvyarcfw563308x3431hd4c34r35gpgj"; - authors = [ - "The Servo Project Developers" - ]; - features = { - "arbitrary" = [ "dep:arbitrary" ]; - "const_new" = [ "const_generics" ]; - "serde" = [ "dep:serde" ]; - }; - }; - "spin" = rec { - crateName = "spin"; - version = "0.5.2"; - edition = "2015"; - sha256 = "0b84m6dbzrwf2kxylnw82d3dr8w06av7rfkr8s85fb5f43rwyqvf"; - authors = [ - "Mathijs van de Nes " - "John Ericson " - ]; - - }; - "spki" = rec { - crateName = "spki"; - version = "0.4.1"; - edition = "2018"; - sha256 = "0ckgkcg6db5y94dqhmyikgn8yrsah6pyf4j197hv1c51bp0s00aw"; - authors = [ - "RustCrypto Developers" - ]; - dependencies = [ - { - name = "der"; - packageId = "der"; - features = [ "oid" ]; - } - ]; - features = { - "std" = [ "der/std" ]; - }; - }; - "subtle" = rec { - crateName = "subtle"; - version = "2.4.1"; - edition = "2015"; - sha256 = "00b6jzh9gzb0h9n25g06nqr90z3xzqppfhhb260s1hjhh4pg7pkb"; - authors = [ - "Isis Lovecruft " - "Henry de Valence " - ]; - features = { - "default" = [ "std" "i128" ]; - }; - }; - "syn" = rec { - crateName = "syn"; - version = "1.0.86"; - edition = "2018"; - sha256 = "0sqwa4nqxzm89nj8xd8sk4iz0hbrw3mb17b6hyc2w2d0zzsb6rca"; - authors = [ - "David Tolnay " - ]; - dependencies = [ - { - name = "proc-macro2"; - packageId = "proc-macro2"; - usesDefaultFeatures = false; - } - { - name = "quote"; - packageId = "quote"; - optional = true; - usesDefaultFeatures = false; - } - { - name = "unicode-xid"; - packageId = "unicode-xid"; - } - ]; - features = { - "default" = [ "derive" "parsing" "printing" "clone-impls" "proc-macro" ]; - "printing" = [ "quote" ]; - "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" ]; - }; - "synstructure" = rec { - crateName = "synstructure"; - version = "0.12.6"; - edition = "2018"; - sha256 = "03r1lydbf3japnlpc4wka7y90pmz1i0danaj3f9a7b431akdlszk"; - authors = [ - "Nika Layzell " - ]; - dependencies = [ - { - name = "proc-macro2"; - packageId = "proc-macro2"; - usesDefaultFeatures = false; - } - { - name = "quote"; - packageId = "quote"; - usesDefaultFeatures = false; - } - { - name = "syn"; - packageId = "syn"; - usesDefaultFeatures = false; - features = [ "derive" "parsing" "printing" "clone-impls" "visit" "extra-traits" ]; - } - { - name = "unicode-xid"; - packageId = "unicode-xid"; - } - ]; - features = { - "default" = [ "proc-macro" ]; - "proc-macro" = [ "proc-macro2/proc-macro" "syn/proc-macro" "quote/proc-macro" ]; - }; - resolvedDefaultFeatures = [ "default" "proc-macro" ]; - }; - "thiserror" = rec { - crateName = "thiserror"; - version = "1.0.30"; - edition = "2018"; - sha256 = "05y4wm29ck8flwq5k1q6nhwh00a3b30cz3xr0qvnbwad5vjsnjw5"; - authors = [ - "David Tolnay " - ]; - dependencies = [ - { - name = "thiserror-impl"; - packageId = "thiserror-impl"; - } - ]; - - }; - "thiserror-impl" = rec { - crateName = "thiserror-impl"; - version = "1.0.30"; - edition = "2018"; - sha256 = "0jviwmvx6wzawsj6c9msic7h419wmsbjagl9dzhpydkzc8zzscma"; - procMacro = true; - authors = [ - "David Tolnay " - ]; - dependencies = [ - { - name = "proc-macro2"; - packageId = "proc-macro2"; - } - { - name = "quote"; - packageId = "quote"; - } - { - name = "syn"; - packageId = "syn"; - } - ]; - - }; - "time" = rec { - crateName = "time"; - version = "0.3.7"; - edition = "2018"; - sha256 = "0gbmwlkj15dfhbqvxlzji1ffc1lidblpgg1q3b3378hgyfcbqk00"; - authors = [ - "Jacob Pratt " - "Time contributors" - ]; - dependencies = [ - { - name = "itoa"; - packageId = "itoa"; - optional = true; - } - { - name = "libc"; - packageId = "libc"; - target = { target, features }: (target."family" == "unix"); - } - { - name = "num_threads"; - packageId = "num_threads"; - target = { target, features }: (target."family" == "unix"); - } - { - name = "time-macros"; - packageId = "time-macros"; - optional = true; - } - ]; - features = { - "default" = [ "std" ]; - "formatting" = [ "itoa" "std" ]; - "itoa" = [ "dep:itoa" ]; - "large-dates" = [ "time-macros/large-dates" ]; - "local-offset" = [ "std" ]; - "macros" = [ "time-macros" ]; - "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" ]; - "std" = [ "alloc" ]; - "time-macros" = [ "dep:time-macros" ]; - }; - resolvedDefaultFeatures = [ "alloc" "default" "formatting" "itoa" "macros" "parsing" "std" "time-macros" ]; - }; - "time-macros" = rec { - crateName = "time-macros"; - version = "0.2.3"; - edition = "2018"; - sha256 = "1mj7pv8y9j2csrh1l8aabras36pgysbnfy18330srh4g8sihrsr5"; - procMacro = true; - authors = [ - "Jacob Pratt " - "Time contributors" - ]; - features = { - }; - }; - "typenum" = rec { - crateName = "typenum"; - version = "1.15.0"; - edition = "2018"; - sha256 = "11yrvz1vd43gqv738yw1v75rzngjbs7iwcgzjy3cq5ywkv2imy6w"; - build = "build/main.rs"; - authors = [ - "Paho Lurie-Gregg " - "Andre Bogus " - ]; - features = { - "scale-info" = [ "dep:scale-info" ]; - "scale_info" = [ "scale-info/derive" ]; - }; - }; - "unicode-xid" = rec { - crateName = "unicode-xid"; - version = "0.2.2"; - edition = "2015"; - sha256 = "1wrkgcw557v311dkdb6n2hrix9dm2qdsb1zpw7pn79l03zb85jwc"; - authors = [ - "erick.tryzelaar " - "kwantam " - "Manish Goregaokar " - ]; - features = { - }; - resolvedDefaultFeatures = [ "default" ]; - }; - "untrusted" = rec { - crateName = "untrusted"; - version = "0.7.1"; - edition = "2018"; - sha256 = "0jkbqaj9d3v5a91pp3wp9mffvng1nhycx6sh4qkdd9qyr62ccmm1"; - libPath = "src/untrusted.rs"; - authors = [ - "Brian Smith " - ]; - - }; - "vcpkg" = rec { - crateName = "vcpkg"; - version = "0.2.15"; - edition = "2015"; - sha256 = "09i4nf5y8lig6xgj3f7fyrvzd3nlaw4znrihw8psidvv5yk4xkdc"; - authors = [ - "Jim McGrath " - ]; - - }; - "version_check" = rec { - crateName = "version_check"; - version = "0.9.4"; - edition = "2015"; - sha256 = "0gs8grwdlgh0xq660d7wr80x14vxbizmd8dbp29p2pdncx8lp1s9"; - authors = [ - "Sergio Benitez " - ]; - - }; - "wasi" = rec { - crateName = "wasi"; - version = "0.10.2+wasi-snapshot-preview1"; - edition = "2018"; - sha256 = "1ii7nff4y1mpcrxzzvbpgxm7a1nn3szjf1n21jnx37c2g6dbsvzx"; - 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-std-workspace-alloc" = [ "dep:rustc-std-workspace-alloc" ]; - }; - resolvedDefaultFeatures = [ "default" "std" ]; - }; - "wasm-bindgen" = rec { - crateName = "wasm-bindgen"; - version = "0.2.79"; - edition = "2018"; - sha256 = "01kc4lj2vlf0ra2w63izrgdlv8p6f8p15086hhyqln6q4dsazw95"; - authors = [ - "The wasm-bindgen Developers" - ]; - dependencies = [ - { - name = "cfg-if"; - packageId = "cfg-if"; - } - { - name = "wasm-bindgen-macro"; - packageId = "wasm-bindgen-macro"; - } - ]; - features = { - "default" = [ "spans" "std" ]; - "enable-interning" = [ "std" ]; - "serde" = [ "dep:serde" ]; - "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" ]; - }; - 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" - ]; - dependencies = [ - { - name = "bumpalo"; - packageId = "bumpalo"; - } - { - name = "lazy_static"; - packageId = "lazy_static"; - } - { - name = "log"; - packageId = "log"; - } - { - name = "proc-macro2"; - packageId = "proc-macro2"; - } - { - name = "quote"; - packageId = "quote"; - } - { - name = "syn"; - packageId = "syn"; - features = [ "full" ]; - } - { - name = "wasm-bindgen-shared"; - packageId = "wasm-bindgen-shared"; - } - ]; - features = { - "extra-traits" = [ "syn/extra-traits" ]; - }; - resolvedDefaultFeatures = [ "spans" ]; - }; - "wasm-bindgen-macro" = rec { - crateName = "wasm-bindgen-macro"; - version = "0.2.79"; - edition = "2018"; - sha256 = "00gdh0dlf2r77mxwh08q0z01vz2z7mvrllmj4gjjx9a0kvb06hig"; - procMacro = true; - authors = [ - "The wasm-bindgen Developers" - ]; - dependencies = [ - { - name = "quote"; - packageId = "quote"; - } - { - name = "wasm-bindgen-macro-support"; - packageId = "wasm-bindgen-macro-support"; - } - ]; - features = { - "spans" = [ "wasm-bindgen-macro-support/spans" ]; - "strict-macro" = [ "wasm-bindgen-macro-support/strict-macro" ]; - }; - resolvedDefaultFeatures = [ "spans" ]; - }; - "wasm-bindgen-macro-support" = rec { - crateName = "wasm-bindgen-macro-support"; - version = "0.2.79"; - edition = "2018"; - sha256 = "1g1fjqvrkrf3j20z8nxsf60cypxg9dfvpbachl2b53908q6s7a5z"; - authors = [ - "The wasm-bindgen Developers" - ]; - dependencies = [ - { - name = "proc-macro2"; - packageId = "proc-macro2"; - } - { - name = "quote"; - packageId = "quote"; - } - { - name = "syn"; - packageId = "syn"; - features = [ "visit" "full" ]; - } - { - name = "wasm-bindgen-backend"; - packageId = "wasm-bindgen-backend"; - } - { - name = "wasm-bindgen-shared"; - packageId = "wasm-bindgen-shared"; - } - ]; - features = { - "extra-traits" = [ "syn/extra-traits" ]; - "spans" = [ "wasm-bindgen-backend/spans" ]; - }; - resolvedDefaultFeatures = [ "spans" ]; - }; - "wasm-bindgen-shared" = rec { - crateName = "wasm-bindgen-shared"; - version = "0.2.79"; - edition = "2018"; - sha256 = "18h67l9b9jn06iw9r2p7bh9i0brh24lilcp4f26f4f24bh1qv59x"; - authors = [ - "The wasm-bindgen Developers" - ]; - - }; - "web-sys" = rec { - crateName = "web-sys"; - version = "0.3.56"; - edition = "2018"; - sha256 = "1sxqmwq773ss5m6vz7z95fdm6bqlix0s2awsy0j5gllxy8cv6q60"; - authors = [ - "The wasm-bindgen Developers" - ]; - dependencies = [ - { - name = "js-sys"; - packageId = "js-sys"; - } - { - name = "wasm-bindgen"; - packageId = "wasm-bindgen"; - } - ]; - features = { - "AbortSignal" = [ "EventTarget" ]; - "AnalyserNode" = [ "AudioNode" "EventTarget" ]; - "Animation" = [ "EventTarget" ]; - "AnimationEvent" = [ "Event" ]; - "AnimationPlaybackEvent" = [ "Event" ]; - "Attr" = [ "EventTarget" "Node" ]; - "AudioBufferSourceNode" = [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ]; - "AudioContext" = [ "BaseAudioContext" "EventTarget" ]; - "AudioDestinationNode" = [ "AudioNode" "EventTarget" ]; - "AudioNode" = [ "EventTarget" ]; - "AudioProcessingEvent" = [ "Event" ]; - "AudioScheduledSourceNode" = [ "AudioNode" "EventTarget" ]; - "AudioStreamTrack" = [ "EventTarget" "MediaStreamTrack" ]; - "AudioTrackList" = [ "EventTarget" ]; - "AudioWorklet" = [ "Worklet" ]; - "AudioWorkletGlobalScope" = [ "WorkletGlobalScope" ]; - "AudioWorkletNode" = [ "AudioNode" "EventTarget" ]; - "AuthenticatorAssertionResponse" = [ "AuthenticatorResponse" ]; - "AuthenticatorAttestationResponse" = [ "AuthenticatorResponse" ]; - "BaseAudioContext" = [ "EventTarget" ]; - "BatteryManager" = [ "EventTarget" ]; - "BeforeUnloadEvent" = [ "Event" ]; - "BiquadFilterNode" = [ "AudioNode" "EventTarget" ]; - "BlobEvent" = [ "Event" ]; - "Bluetooth" = [ "EventTarget" ]; - "BluetoothAdvertisingEvent" = [ "Event" ]; - "BluetoothDevice" = [ "EventTarget" ]; - "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" ]; - "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" ]; - "CssCounterStyleRule" = [ "CssRule" ]; - "CssFontFaceRule" = [ "CssRule" ]; - "CssFontFeatureValuesRule" = [ "CssRule" ]; - "CssGroupingRule" = [ "CssRule" ]; - "CssImportRule" = [ "CssRule" ]; - "CssKeyframeRule" = [ "CssRule" ]; - "CssKeyframesRule" = [ "CssRule" ]; - "CssMediaRule" = [ "CssConditionRule" "CssGroupingRule" "CssRule" ]; - "CssNamespaceRule" = [ "CssRule" ]; - "CssPageRule" = [ "CssRule" ]; - "CssStyleRule" = [ "CssRule" ]; - "CssStyleSheet" = [ "StyleSheet" ]; - "CssSupportsRule" = [ "CssConditionRule" "CssGroupingRule" "CssRule" ]; - "CssTransition" = [ "Animation" "EventTarget" ]; - "CustomEvent" = [ "Event" ]; - "DedicatedWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ]; - "DelayNode" = [ "AudioNode" "EventTarget" ]; - "DeviceLightEvent" = [ "Event" ]; - "DeviceMotionEvent" = [ "Event" ]; - "DeviceOrientationEvent" = [ "Event" ]; - "DeviceProximityEvent" = [ "Event" ]; - "Document" = [ "EventTarget" "Node" ]; - "DocumentFragment" = [ "EventTarget" "Node" ]; - "DocumentTimeline" = [ "AnimationTimeline" ]; - "DocumentType" = [ "EventTarget" "Node" ]; - "DomMatrix" = [ "DomMatrixReadOnly" ]; - "DomPoint" = [ "DomPointReadOnly" ]; - "DomRect" = [ "DomRectReadOnly" ]; - "DomRequest" = [ "EventTarget" ]; - "DragEvent" = [ "Event" "MouseEvent" "UiEvent" ]; - "DynamicsCompressorNode" = [ "AudioNode" "EventTarget" ]; - "Element" = [ "EventTarget" "Node" ]; - "ErrorEvent" = [ "Event" ]; - "EventSource" = [ "EventTarget" ]; - "ExtendableEvent" = [ "Event" ]; - "ExtendableMessageEvent" = [ "Event" "ExtendableEvent" ]; - "FetchEvent" = [ "Event" "ExtendableEvent" ]; - "FetchObserver" = [ "EventTarget" ]; - "File" = [ "Blob" ]; - "FileReader" = [ "EventTarget" ]; - "FileSystemDirectoryEntry" = [ "FileSystemEntry" ]; - "FileSystemFileEntry" = [ "FileSystemEntry" ]; - "FocusEvent" = [ "Event" "UiEvent" ]; - "FontFaceSet" = [ "EventTarget" ]; - "FontFaceSetLoadEvent" = [ "Event" ]; - "GainNode" = [ "AudioNode" "EventTarget" ]; - "GamepadAxisMoveEvent" = [ "Event" "GamepadEvent" ]; - "GamepadButtonEvent" = [ "Event" "GamepadEvent" ]; - "GamepadEvent" = [ "Event" ]; - "GpuDevice" = [ "EventTarget" ]; - "GpuUncapturedErrorEvent" = [ "Event" ]; - "HashChangeEvent" = [ "Event" ]; - "Hid" = [ "EventTarget" ]; - "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" ]; - "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" ]; - "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" ]; - "IdbCursorWithValue" = [ "IdbCursor" ]; - "IdbDatabase" = [ "EventTarget" ]; - "IdbFileHandle" = [ "EventTarget" ]; - "IdbFileRequest" = [ "DomRequest" "EventTarget" ]; - "IdbLocaleAwareKeyRange" = [ "IdbKeyRange" ]; - "IdbMutableFile" = [ "EventTarget" ]; - "IdbOpenDbRequest" = [ "EventTarget" "IdbRequest" ]; - "IdbRequest" = [ "EventTarget" ]; - "IdbTransaction" = [ "EventTarget" ]; - "IdbVersionChangeEvent" = [ "Event" ]; - "IirFilterNode" = [ "AudioNode" "EventTarget" ]; - "ImageCaptureErrorEvent" = [ "Event" ]; - "InputEvent" = [ "Event" "UiEvent" ]; - "KeyboardEvent" = [ "Event" "UiEvent" ]; - "KeyframeEffect" = [ "AnimationEffect" ]; - "LocalMediaStream" = [ "EventTarget" "MediaStream" ]; - "MediaDevices" = [ "EventTarget" ]; - "MediaElementAudioSourceNode" = [ "AudioNode" "EventTarget" ]; - "MediaEncryptedEvent" = [ "Event" ]; - "MediaKeyError" = [ "Event" ]; - "MediaKeyMessageEvent" = [ "Event" ]; - "MediaKeySession" = [ "EventTarget" ]; - "MediaQueryList" = [ "EventTarget" ]; - "MediaQueryListEvent" = [ "Event" ]; - "MediaRecorder" = [ "EventTarget" ]; - "MediaRecorderErrorEvent" = [ "Event" ]; - "MediaSource" = [ "EventTarget" ]; - "MediaStream" = [ "EventTarget" ]; - "MediaStreamAudioDestinationNode" = [ "AudioNode" "EventTarget" ]; - "MediaStreamAudioSourceNode" = [ "AudioNode" "EventTarget" ]; - "MediaStreamEvent" = [ "Event" ]; - "MediaStreamTrack" = [ "EventTarget" ]; - "MediaStreamTrackEvent" = [ "Event" ]; - "MessageEvent" = [ "Event" ]; - "MessagePort" = [ "EventTarget" ]; - "MidiAccess" = [ "EventTarget" ]; - "MidiConnectionEvent" = [ "Event" ]; - "MidiInput" = [ "EventTarget" "MidiPort" ]; - "MidiMessageEvent" = [ "Event" ]; - "MidiOutput" = [ "EventTarget" "MidiPort" ]; - "MidiPort" = [ "EventTarget" ]; - "MouseEvent" = [ "Event" "UiEvent" ]; - "MouseScrollEvent" = [ "Event" "MouseEvent" "UiEvent" ]; - "MutationEvent" = [ "Event" ]; - "NetworkInformation" = [ "EventTarget" ]; - "Node" = [ "EventTarget" ]; - "Notification" = [ "EventTarget" ]; - "NotificationEvent" = [ "Event" "ExtendableEvent" ]; - "OfflineAudioCompletionEvent" = [ "Event" ]; - "OfflineAudioContext" = [ "BaseAudioContext" "EventTarget" ]; - "OfflineResourceList" = [ "EventTarget" ]; - "OffscreenCanvas" = [ "EventTarget" ]; - "OscillatorNode" = [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ]; - "PageTransitionEvent" = [ "Event" ]; - "PaintWorkletGlobalScope" = [ "WorkletGlobalScope" ]; - "PannerNode" = [ "AudioNode" "EventTarget" ]; - "PaymentMethodChangeEvent" = [ "Event" "PaymentRequestUpdateEvent" ]; - "PaymentRequestUpdateEvent" = [ "Event" ]; - "Performance" = [ "EventTarget" ]; - "PerformanceMark" = [ "PerformanceEntry" ]; - "PerformanceMeasure" = [ "PerformanceEntry" ]; - "PerformanceNavigationTiming" = [ "PerformanceEntry" "PerformanceResourceTiming" ]; - "PerformanceResourceTiming" = [ "PerformanceEntry" ]; - "PermissionStatus" = [ "EventTarget" ]; - "PointerEvent" = [ "Event" "MouseEvent" "UiEvent" ]; - "PopStateEvent" = [ "Event" ]; - "PopupBlockedEvent" = [ "Event" ]; - "PresentationAvailability" = [ "EventTarget" ]; - "PresentationConnection" = [ "EventTarget" ]; - "PresentationConnectionAvailableEvent" = [ "Event" ]; - "PresentationConnectionCloseEvent" = [ "Event" ]; - "PresentationConnectionList" = [ "EventTarget" ]; - "PresentationRequest" = [ "EventTarget" ]; - "ProcessingInstruction" = [ "CharacterData" "EventTarget" "Node" ]; - "ProgressEvent" = [ "Event" ]; - "PromiseRejectionEvent" = [ "Event" ]; - "PublicKeyCredential" = [ "Credential" ]; - "PushEvent" = [ "Event" "ExtendableEvent" ]; - "RadioNodeList" = [ "NodeList" ]; - "RtcDataChannel" = [ "EventTarget" ]; - "RtcDataChannelEvent" = [ "Event" ]; - "RtcPeerConnection" = [ "EventTarget" ]; - "RtcPeerConnectionIceEvent" = [ "Event" ]; - "RtcTrackEvent" = [ "Event" ]; - "RtcdtmfSender" = [ "EventTarget" ]; - "RtcdtmfToneChangeEvent" = [ "Event" ]; - "Screen" = [ "EventTarget" ]; - "ScreenOrientation" = [ "EventTarget" ]; - "ScriptProcessorNode" = [ "AudioNode" "EventTarget" ]; - "ScrollAreaEvent" = [ "Event" "UiEvent" ]; - "SecurityPolicyViolationEvent" = [ "Event" ]; - "ServiceWorker" = [ "EventTarget" ]; - "ServiceWorkerContainer" = [ "EventTarget" ]; - "ServiceWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ]; - "ServiceWorkerRegistration" = [ "EventTarget" ]; - "ShadowRoot" = [ "DocumentFragment" "EventTarget" "Node" ]; - "SharedWorker" = [ "EventTarget" ]; - "SharedWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ]; - "SourceBuffer" = [ "EventTarget" ]; - "SourceBufferList" = [ "EventTarget" ]; - "SpeechRecognition" = [ "EventTarget" ]; - "SpeechRecognitionError" = [ "Event" ]; - "SpeechRecognitionEvent" = [ "Event" ]; - "SpeechSynthesis" = [ "EventTarget" ]; - "SpeechSynthesisErrorEvent" = [ "Event" "SpeechSynthesisEvent" ]; - "SpeechSynthesisEvent" = [ "Event" ]; - "SpeechSynthesisUtterance" = [ "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" ]; - "SvgPathSegArcAbs" = [ "SvgPathSeg" ]; - "SvgPathSegArcRel" = [ "SvgPathSeg" ]; - "SvgPathSegClosePath" = [ "SvgPathSeg" ]; - "SvgPathSegCurvetoCubicAbs" = [ "SvgPathSeg" ]; - "SvgPathSegCurvetoCubicRel" = [ "SvgPathSeg" ]; - "SvgPathSegCurvetoCubicSmoothAbs" = [ "SvgPathSeg" ]; - "SvgPathSegCurvetoCubicSmoothRel" = [ "SvgPathSeg" ]; - "SvgPathSegCurvetoQuadraticAbs" = [ "SvgPathSeg" ]; - "SvgPathSegCurvetoQuadraticRel" = [ "SvgPathSeg" ]; - "SvgPathSegCurvetoQuadraticSmoothAbs" = [ "SvgPathSeg" ]; - "SvgPathSegCurvetoQuadraticSmoothRel" = [ "SvgPathSeg" ]; - "SvgPathSegLinetoAbs" = [ "SvgPathSeg" ]; - "SvgPathSegLinetoHorizontalAbs" = [ "SvgPathSeg" ]; - "SvgPathSegLinetoHorizontalRel" = [ "SvgPathSeg" ]; - "SvgPathSegLinetoRel" = [ "SvgPathSeg" ]; - "SvgPathSegLinetoVerticalAbs" = [ "SvgPathSeg" ]; - "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" ]; - "TcpServerSocket" = [ "EventTarget" ]; - "TcpServerSocketEvent" = [ "Event" ]; - "TcpSocket" = [ "EventTarget" ]; - "TcpSocketErrorEvent" = [ "Event" ]; - "TcpSocketEvent" = [ "Event" ]; - "Text" = [ "CharacterData" "EventTarget" "Node" ]; - "TextTrack" = [ "EventTarget" ]; - "TextTrackCue" = [ "EventTarget" ]; - "TextTrackList" = [ "EventTarget" ]; - "TimeEvent" = [ "Event" ]; - "TouchEvent" = [ "Event" "UiEvent" ]; - "TrackEvent" = [ "Event" ]; - "TransitionEvent" = [ "Event" ]; - "UiEvent" = [ "Event" ]; - "Usb" = [ "EventTarget" ]; - "UsbConnectionEvent" = [ "Event" ]; - "UsbPermissionResult" = [ "EventTarget" "PermissionStatus" ]; - "UserProximityEvent" = [ "Event" ]; - "ValueEvent" = [ "Event" ]; - "VideoStreamTrack" = [ "EventTarget" "MediaStreamTrack" ]; - "VideoTrackList" = [ "EventTarget" ]; - "VrDisplay" = [ "EventTarget" ]; - "VttCue" = [ "EventTarget" "TextTrackCue" ]; - "WakeLockSentinel" = [ "EventTarget" ]; - "WaveShaperNode" = [ "AudioNode" "EventTarget" ]; - "WebGlContextEvent" = [ "Event" ]; - "WebKitCssMatrix" = [ "DomMatrix" "DomMatrixReadOnly" ]; - "WebSocket" = [ "EventTarget" ]; - "WheelEvent" = [ "Event" "MouseEvent" "UiEvent" ]; - "Window" = [ "EventTarget" ]; - "WindowClient" = [ "Client" ]; - "Worker" = [ "EventTarget" ]; - "WorkerDebuggerGlobalScope" = [ "EventTarget" ]; - "WorkerGlobalScope" = [ "EventTarget" ]; - "XmlDocument" = [ "Document" "EventTarget" "Node" ]; - "XmlHttpRequest" = [ "EventTarget" "XmlHttpRequestEventTarget" ]; - "XmlHttpRequestEventTarget" = [ "EventTarget" ]; - "XmlHttpRequestUpload" = [ "EventTarget" "XmlHttpRequestEventTarget" ]; - "Xr" = [ "EventTarget" ]; - "XrBoundedReferenceSpace" = [ "EventTarget" "XrReferenceSpace" "XrSpace" ]; - "XrInputSourceEvent" = [ "Event" ]; - "XrInputSourcesChangeEvent" = [ "Event" ]; - "XrReferenceSpace" = [ "EventTarget" "XrSpace" ]; - "XrReferenceSpaceEvent" = [ "Event" ]; - "XrSession" = [ "EventTarget" ]; - "XrSessionEvent" = [ "Event" ]; - "XrSpace" = [ "EventTarget" ]; - "XrViewerPose" = [ "XrPose" ]; - }; - resolvedDefaultFeatures = [ "Crypto" "EventTarget" "Window" ]; - }; - "webpki" = rec { - crateName = "webpki"; - version = "0.22.0"; - edition = "2018"; - sha256 = "1gd1gxip5kgdwmrvhj5gjxij2mgg2mavq1ych4q1h272ja0xg5gh"; - authors = [ - "Brian Smith " - ]; - dependencies = [ - { - name = "ring"; - packageId = "ring"; - usesDefaultFeatures = false; - } - { - name = "untrusted"; - packageId = "untrusted"; - } - ]; - features = { - "alloc" = [ "ring/alloc" ]; - "std" = [ "alloc" ]; - }; - resolvedDefaultFeatures = [ "alloc" "std" ]; - }; - "winapi" = rec { - crateName = "winapi"; - version = "0.3.9"; - edition = "2015"; - sha256 = "06gl025x418lchw1wxj64ycr7gha83m44cjr5sarhynd9xkrm0sw"; - authors = [ - "Peter Atashian " - ]; - dependencies = [ - { - name = "winapi-i686-pc-windows-gnu"; - packageId = "winapi-i686-pc-windows-gnu"; - target = { target, features }: (stdenv.hostPlatform.config == "i686-pc-windows-gnu"); - } - { - name = "winapi-x86_64-pc-windows-gnu"; - packageId = "winapi-x86_64-pc-windows-gnu"; - target = { target, features }: (stdenv.hostPlatform.config == "x86_64-pc-windows-gnu"); - } - ]; - features = { - "debug" = [ "impl-debug" ]; - }; - 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 " - ]; - - }; - "winapi-x86_64-pc-windows-gnu" = rec { - crateName = "winapi-x86_64-pc-windows-gnu"; - version = "0.4.0"; - edition = "2015"; - sha256 = "0gqq64czqb64kskjryj8isp62m2sgvx25yyj3kpc2myh85w24bki"; - authors = [ - "Peter Atashian " - ]; - - }; - "x509-parser" = rec { - crateName = "x509-parser"; - version = "0.13.0"; - edition = "2018"; - sha256 = "0f3fqbv92q3a3s51md94sw3vgzs934agl4ii5a6ym364mkdlpwg5"; - authors = [ - "Pierre Chifflier " - ]; - dependencies = [ - { - name = "asn1-rs"; - packageId = "asn1-rs"; - features = [ "datetime" ]; - } - { - name = "base64"; - packageId = "base64"; - } - { - name = "data-encoding"; - packageId = "data-encoding"; - } - { - name = "der-parser"; - packageId = "der-parser"; - features = [ "bigint" ]; - } - { - name = "lazy_static"; - packageId = "lazy_static"; - } - { - name = "nom"; - packageId = "nom"; - } - { - name = "oid-registry"; - packageId = "oid-registry"; - features = [ "crypto" "x509" ]; - } - { - name = "ring"; - packageId = "ring"; - optional = true; - } - { - name = "rusticata-macros"; - packageId = "rusticata-macros"; - } - { - name = "thiserror"; - packageId = "thiserror"; - } - { - name = "time"; - packageId = "time"; - features = [ "formatting" ]; - } - ]; - features = { - "ring" = [ "dep:ring" ]; - "verify" = [ "ring" ]; - }; - resolvedDefaultFeatures = [ "default" "ring" "verify" ]; - }; - "yasna" = rec { - crateName = "yasna"; - version = "0.5.0"; - edition = "2018"; - sha256 = "0k1gk11hq4rwlppv9f50bz8bnmgr73r66idpp7rybly96si38v9l"; - authors = [ - "Masaki Hara " - ]; - dependencies = [ - { - name = "time"; - packageId = "time"; - optional = true; - usesDefaultFeatures = false; - features = [ "std" ]; - } - ]; - features = { - "bit-vec" = [ "dep:bit-vec" ]; - "num-bigint" = [ "dep:num-bigint" ]; - "time" = [ "dep:time" ]; - }; - resolvedDefaultFeatures = [ "default" "std" "time" ]; - }; - "zeroize" = rec { - crateName = "zeroize"; - version = "1.4.3"; - edition = "2018"; - sha256 = "068nvl3n5hk6lfn5y24grf2c7anzzqfzjjccscq3md7rqp79v3fn"; - authors = [ - "The RustCrypto Project Developers" - ]; - dependencies = [ - { - name = "zeroize_derive"; - packageId = "zeroize_derive"; - optional = true; - } - ]; - features = { - "default" = [ "alloc" ]; - "zeroize_derive" = [ "dep:zeroize_derive" ]; - }; - resolvedDefaultFeatures = [ "alloc" "default" "zeroize_derive" ]; - }; - "zeroize_derive" = rec { - crateName = "zeroize_derive"; - version = "1.3.1"; - edition = "2018"; - sha256 = "1nzdqyryjnqcrqz0vhddpkd8sybhn0bd8rbd6l33rdhhxwzz3s41"; - procMacro = true; - authors = [ - "The RustCrypto Project Developers" - ]; - dependencies = [ - { - name = "proc-macro2"; - packageId = "proc-macro2"; - } - { - name = "quote"; - packageId = "quote"; - } - { - name = "syn"; - packageId = "syn"; - } - { - name = "synstructure"; - packageId = "synstructure"; - } - ]; - - }; - }; - - # -# 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; - - # 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 - ! ( - # Filter out git - baseName == ".gitignore" - || (type == "directory" && baseName == ".git") - - # Filter out build results - || ( - type == "directory" && ( - baseName == "target" - || baseName == "_site" - || baseName == ".sass-cache" - || baseName == ".jekyll-metadata" - || baseName == "build-artifacts" - ) - ) - - # Filter out nix-build result symlinks - || ( - type == "symlink" && lib.hasPrefix "result" baseName - ) - - # Filter out IDE config - || ( - type == "directory" && ( - baseName == ".idea" || baseName == ".vscode" - ) - ) || lib.hasSuffix ".iml" baseName - - # Filter out nix build files - || baseName == "Cargo.nix" - - # Filter out editor backup / swap files. - || lib.hasSuffix "~" baseName - || builtins.match "^\\.sw[a-z]$$" baseName != null - || builtins.match "^\\..*\\.sw[a-z]$$" baseName != null - || lib.hasSuffix ".tmp" baseName - || lib.hasSuffix ".bak" baseName - || baseName == "tests.nix" - ); - - /* 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" - { - 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} - ''; - - /* 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; - } - 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: - assert (builtins.isAttrs crateConfigs); - assert (builtins.isString packageId); - assert (builtins.isList features); - assert (builtins.isAttrs target); - assert (builtins.isBool runTests); - let - rootPackageId = packageId; - 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: - let - self = { - crates = lib.mapAttrs (packageId: value: buildByPackageIdForPkgsImpl self pkgs packageId) crateConfigs; - build = mkBuiltByPackageIdByPkgs pkgs.buildPackages; - }; - in - self; - 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; - }; - dependenciesWithRenames = - lib.filter (d: d ? "rename") - ( - filterEnabledDependenciesForThis - ( - (crateConfig.buildDependencies or [ ]) - ++ (crateConfig.dependencies or [ ]) - ++ devDependencies - ) - ); - # Crate renames have the form: - # - # { - # crate_name = [ - # { version = "1.2.3"; rename = "crate_name01"; } - # ]; - # # ... - # } - crateRenames = - let - grouped = - lib.groupBy - (dependency: dependency.name) - dependenciesWithRenames; - versionAndRename = dep: - let - package = crateConfigs."${dep.packageId}"; - in - { 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; - } - ); - in - builtByPackageIdByPkgs; - - /* 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; - }; - 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 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; }; - - /* 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 - }: - assert (builtins.isAttrs crateConfigs); - let - prefixValues = prefix: lib.mapAttrs (n: v: { "${prefix}" = v; }); - 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; - in - builtins.toJSON { - inherit onlyInCargo onlyInCrate2Nix differentFeatures; - }; - - /* 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: - assert (builtins.isAttrs crateConfigs); - assert (builtins.isString packageId); - assert (builtins.isString rootPackageId); - assert (builtins.isList features); - assert (builtins.isList dependencyPath); - assert (builtins.isAttrs featuresByPackageId); - assert (builtins.isAttrs target); - assert (builtins.isBool runTests); - let - crateConfig = crateConfigs."${packageId}" or (builtins.throw "Package not found: ${packageId}"); - expandedFeatures = expandFeatures (crateConfig.features or { }) features; - enabledFeatures = enableFeatures (crateConfig.dependencies or [ ]) expandedFeatures; - depWithResolvedFeatures = dependency: - let - packageId = dependency.packageId; - features = dependencyFeatures enabledFeatures dependency; - in - { inherit packageId features; }; - resolveDependencies = cache: path: dependencies: - assert (builtins.isAttrs cache); - assert (builtins.isList dependencies); - let - enabledDependencies = filterEnabledDependencies { - inherit dependencies target; - features = enabledFeatures; - }; - 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; - } - ); - 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 [ ]); - 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); - - 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; - - /* 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. - - 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 - ( - 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); - - /* - 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; - - /* 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; - - # - # 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 deleted file mode 100644 index cd90c68..0000000 --- a/pkgs/build-support/rust/build-rust-package/default.nix +++ /dev/null @@ -1,170 +0,0 @@ -{ lib -, importCargoLock -, fetchCargoTarball -, stdenv -, callPackage -, cargoBuildHook -, cargoCheckHook -, cargoInstallHook -, cargoNextestHook -, cargoSetupHook -, cargo -, cargo-auditable -, buildPackages -, rustc -, libiconv -, windows -}: - -{ name ? "${args.pname}-${args.version}" - - # Name for the vendored dependencies tarball -, 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) - -, depsExtraArgs ? {} - -# 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: - -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); - - target = stdenv.hostPlatform.rust.rustcTargetSpec; - targetIsJSON = lib.hasSuffix ".json" target; - useSysroot = targetIsJSON && !__internal_dontAddSysroot; - - sysroot = callPackage ./sysroot { } { - inherit target; - shortTarget = stdenv.hostPlatform.rust.cargoShortTarget; - RUSTFLAGS = args.RUSTFLAGS or ""; - originalCargoToml = src + /Cargo.toml; # profile info is later extracted - }; - -in - -# Tests don't currently work for `no_std`, and all custom sysroots are currently built without `std`. -# 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; - - cargoBuildType = buildType; - - cargoCheckType = checkType; - - cargoBuildNoDefaultFeatures = buildNoDefaultFeatures; - - cargoCheckNoDefaultFeatures = checkNoDefaultFeatures; - - cargoBuildFeatures = buildFeatures; - - cargoCheckFeatures = checkFeatures; - - 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 - ]; - - buildInputs = buildInputs - ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ] - ++ lib.optionals stdenv.hostPlatform.isMinGW [ windows.pthreads ]; - - patches = cargoPatches ++ patches; - - PKG_CONFIG_ALLOW_CROSS = - if stdenv.buildPlatform != stdenv.hostPlatform then 1 else 0; - - postUnpack = '' - eval "$cargoDepsHook" - - export RUST_LOG=${logLevel} - '' + (args.postUnpack or ""); - - configurePhase = args.configurePhase or '' - runHook preConfigure - runHook postConfigure - ''; - - doCheck = args.doCheck or 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; -}) diff --git a/pkgs/build-support/rust/build-rust-package/patch-registry-deps/pkg-config b/pkgs/build-support/rust/build-rust-package/patch-registry-deps/pkg-config deleted file mode 100644 index fbb0943..0000000 --- a/pkgs/build-support/rust/build-rust-package/patch-registry-deps/pkg-config +++ /dev/null @@ -1,8 +0,0 @@ -for dir in pkg-config-*; do - [ -d "$dir" ] || continue - - echo "Patching pkg-config registry dep" - - substituteInPlace "$dir/src/lib.rs" \ - --replace '"/usr"' '"'"$NIX_STORE"'/"' -done diff --git a/pkgs/build-support/rust/build-rust-package/sysroot/default.nix b/pkgs/build-support/rust/build-rust-package/sysroot/default.nix deleted file mode 100644 index bb95b7b..0000000 --- a/pkgs/build-support/rust/build-rust-package/sysroot/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib, stdenv, rustPlatform, buildPackages }: - -{ shortTarget, originalCargoToml, target, RUSTFLAGS }: - -let - cargoSrc = import ../../sysroot/src.nix { - inherit lib stdenv rustPlatform buildPackages originalCargoToml; - }; -in rustPlatform.buildRustPackage { - inherit target RUSTFLAGS; - - name = "custom-sysroot"; - src = cargoSrc; - - RUSTC_BOOTSTRAP = 1; - __internal_dontAddSysroot = true; - cargoSha256 = "sha256-zgkwevitxsu1C4OgGTsqNSc0gDxaNXYK1WPbfER48d0="; - - doCheck = false; - - installPhase = '' - export LIBS_DIR=$out/lib/rustlib/${shortTarget}/lib - mkdir -p $LIBS_DIR - for f in target/${shortTarget}/release/deps/*.{rlib,rmeta}; do - cp $f $LIBS_DIR - done - - export RUST_SYSROOT=$(rustc --print=sysroot) - host=${stdenv.buildPlatform.rust.rustcTarget} - cp -r $RUST_SYSROOT/lib/rustlib/$host $out - ''; - - # allows support for cross-compilation - meta.platforms = lib.platforms.all; -} diff --git a/pkgs/build-support/rust/default-crate-overrides.nix b/pkgs/build-support/rust/default-crate-overrides.nix deleted file mode 100644 index 92c71df..0000000 --- a/pkgs/build-support/rust/default-crate-overrides.nix +++ /dev/null @@ -1,311 +0,0 @@ -{ 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 - inherit (darwin.apple_sdk.frameworks) CoreFoundation Security; -in -{ - alsa-sys = attrs: { - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ alsa-lib ]; - }; - - cairo-rs = attrs: { - buildInputs = [ cairo ]; - }; - - cairo-sys-rs = attrs: { - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ cairo ]; - }; - - capnp-rpc = attrs: { - nativeBuildInputs = [ capnproto ]; - }; - - cargo = attrs: { - buildInputs = [ openssl zlib curl ] - ++ lib.optionals stdenv.isDarwin [ CoreFoundation Security ]; - }; - - libz-sys = attrs: { - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ zlib ]; - extraLinkFlags = [ "-L${zlib.out}/lib" ]; - }; - - curl-sys = attrs: { - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ zlib curl ]; - propagatedBuildInputs = [ curl zlib ]; - extraLinkFlags = [ "-L${zlib.out}/lib" ]; - }; - - dbus = attrs: { - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ dbus ]; - }; - - evdev-sys = attrs: { - 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 - prePatch = '' - touch libevdev/.git - ''; - }; - - expat-sys = attrs: { - nativeBuildInputs = [ cmake ]; - }; - - foundationdb-sys = attrs: { - buildInputs = [ foundationdb ]; - # needed for 0.4+ release, when the FFI bindings are auto-generated - # - # patchPhase = '' - # substituteInPlace ./foundationdb-sys/build.rs \ - # --replace /usr/local/include ${foundationdb.dev}/include - # ''; - }; - - foundationdb = attrs: { - buildInputs = [ foundationdb ]; - }; - - freetype-sys = attrs: { - nativeBuildInputs = [ cmake ]; - buildInputs = [ freetype ]; - }; - - glib-sys = attrs: { - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ glib ]; - }; - - gobject-sys = attrs: { - buildInputs = [ dbus-glib ]; - }; - - gio-sys = attrs: { - buildInputs = [ dbus-glib ]; - }; - - gdk-pixbuf-sys = attrs: { - buildInputs = [ dbus-glib ]; - }; - - gdk-pixbuf = attrs: { - buildInputs = [ gdk-pixbuf ]; - }; - - gtk-sys = attrs: { - buildInputs = [ gtk3 ]; - nativeBuildInputs = [ pkg-config ]; - }; - - gtk4-sys = attrs: { - buildInputs = [ gtk4 ]; - nativeBuildInputs = [ pkg-config ]; - }; - - gdk4-sys = attrs: { - buildInputs = [ gtk4 ]; - nativeBuildInputs = [ pkg-config ]; - }; - - gsk4-sys = attrs: { - buildInputs = [ gtk4 ]; - nativeBuildInputs = [ pkg-config ]; - }; - - libgit2-sys = attrs: { - LIBGIT2_SYS_USE_PKG_CONFIG = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ openssl zlib libgit2 ]; - }; - - libseat-sys = attrs: { - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ seatd ]; - }; - - libsqlite3-sys = attrs: { - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ sqlite ]; - }; - - libssh2-sys = attrs: { - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ openssl zlib libssh2 ]; - }; - - libdbus-sys = attrs: { - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ dbus ]; - }; - - libudev-sys = attrs: { - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ udev ]; - }; - - graphene-sys = attrs: { - nativeBuildInputs = [ pkg-config gobject-introspection ]; - buildInputs = [ graphene ]; - }; - - nettle-sys = attrs: { - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ nettle clang ]; - LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib"; - }; - - openssl = attrs: { - buildInputs = [ openssl ]; - }; - - openssl-sys = attrs: { - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ openssl ]; - }; - - pam-sys = attr: { - buildInputs = [ linux-pam ]; - }; - - pango-sys = attr: { - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ pango ]; - }; - - pq-sys = attr: { - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ postgresql ]; - }; - - prost-build = attr: { - nativeBuildInputs = [ protobuf ]; - }; - - rdkafka-sys = attr: { - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ rdkafka ]; - }; - - rink = attrs: { - buildInputs = [ gmp ]; - crateBin = [{ name = "rink"; path = "src/bin/rink.rs"; }]; - }; - - security-framework-sys = attr: { - propagatedBuildInputs = lib.optional stdenv.isDarwin Security; - }; - - sequoia-openpgp = attrs: { - buildInputs = [ gmp ]; - }; - - sequoia-openpgp-ffi = attrs: { - buildInputs = [ gmp ]; - }; - - sequoia-ipc = attrs: { - buildInputs = [ gmp ]; - }; - - sequoia-guide = attrs: { - buildInputs = [ gmp ]; - }; - - pangocairo-sys = attr: { - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ pango ]; - }; - - sequoia-store = attrs: { - nativeBuildInputs = [ capnproto ]; - buildInputs = [ sqlite gmp ]; - }; - - sequoia-sq = attrs: { - buildInputs = [ sqlite gmp ]; - }; - - sequoia-tool = attrs: { - nativeBuildInputs = [ capnproto ]; - buildInputs = [ sqlite gmp ]; - }; - - serde_derive = attrs: { - buildInputs = lib.optional stdenv.isDarwin Security; - }; - - servo-fontconfig-sys = attrs: { - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ freetype fontconfig ]; - }; - - thrussh-libsodium = attrs: { - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libsodium ]; - }; - - xcb = attrs: { - buildInputs = [ python3 ]; - }; - - atk-sys = attrs: { - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ atk ]; - }; - -} diff --git a/pkgs/build-support/rust/fetch-cargo-tarball/cargo-vendor-normalise.py b/pkgs/build-support/rust/fetch-cargo-tarball/cargo-vendor-normalise.py deleted file mode 100755 index 90933b0..0000000 --- a/pkgs/build-support/rust/fetch-cargo-tarball/cargo-vendor-normalise.py +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env python - -import sys - -import toml - - -def quote(s: str) -> str: - escaped = s.replace('"', r"\"").replace("\n", r"\n").replace("\\", "\\\\") - return '"{}"'.format(escaped) - - -def main() -> None: - data = toml.load(sys.stdin) - - # There is no dependency to vendor in this project. - if not list(data.keys()) == ["source"]: - return - - # this value is non deterministic - data["source"]["vendored-sources"]["directory"] = "@vendor@" - - lines = [] - inner = data["source"] - for source, attrs in sorted(inner.items()): - lines.append("[source.{}]".format(quote(source))) - if source == "vendored-sources": - lines.append('"directory" = "@vendor@"\n') - else: - for key, value in sorted(attrs.items()): - attr = "{} = {}".format(quote(key), quote(value)) - lines.append(attr) - lines.append("") - - result = "\n".join(lines) - real = toml.loads(result) - assert real == data, "output = {} while input = {}".format(real, data) - - print(result) - - -if __name__ == "__main__": - main() diff --git a/pkgs/build-support/rust/fetch-cargo-tarball/default.nix b/pkgs/build-support/rust/fetch-cargo-tarball/default.nix deleted file mode 100644 index adbfe98..0000000 --- a/pkgs/build-support/rust/fetch-cargo-tarball/default.nix +++ /dev/null @@ -1,116 +0,0 @@ -{ 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: - -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 - - # 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 - - exit 1 - fi - - # 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) - - if [[ -n "$NIX_CRATES_INDEX" ]]; then - cat >$CARGO_HOME/config.toml < $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 - - # 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 - ''; - - # 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; - - impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [ "NIX_CRATES_INDEX" ]; -} // (builtins.removeAttrs args [ - "name" "sha256" "cargoUpdateHook" "nativeBuildInputs" -])) diff --git a/pkgs/build-support/rust/fetchcargo-default-config.toml b/pkgs/build-support/rust/fetchcargo-default-config.toml deleted file mode 100755 index dd8ebbc..0000000 --- a/pkgs/build-support/rust/fetchcargo-default-config.toml +++ /dev/null @@ -1,7 +0,0 @@ -[source."crates-io"] -"replace-with" = "vendored-sources" - -[source."vendored-sources"] -"directory" = "@vendor@" - - diff --git a/pkgs/build-support/rust/fetchcrate.nix b/pkgs/build-support/rust/fetchcrate.nix deleted file mode 100644 index 423f4d7..0000000 --- a/pkgs/build-support/rust/fetchcrate.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ lib, fetchzip, fetchurl }: - -{ 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: - -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" ]) diff --git a/pkgs/build-support/rust/hooks/cargo-build-hook.sh b/pkgs/build-support/rust/hooks/cargo-build-hook.sh deleted file mode 100644 index ed982c7..0000000 --- a/pkgs/build-support/rust/hooks/cargo-build-hook.sh +++ /dev/null @@ -1,53 +0,0 @@ -declare -a cargoBuildFlags - -cargoBuildHook() { - echo "Executing cargoBuildHook" - - runHook preBuild - - # Let stdenv handle stripping, for consistency and to not break - # separateDebugInfo. - export "CARGO_PROFILE_${cargoBuildType@U}_STRIP"=false - - if [ ! -z "${buildAndTestSubdir-}" ]; then - # ensure the output doesn't end up in the subdirectory - export CARGO_TARGET_DIR="$(pwd)/target" - - pushd "${buildAndTestSubdir}" - fi - - if [ "${cargoBuildType}" != "debug" ]; then - cargoBuildProfileFlag="--profile ${cargoBuildType}" - fi - - if [ -n "${cargoBuildNoDefaultFeatures-}" ]; then - cargoBuildNoDefaultFeaturesFlag=--no-default-features - fi - - if [ -n "${cargoBuildFeatures-}" ]; then - cargoBuildFeaturesFlag="--features=${cargoBuildFeatures// /,}" - fi - - ( - set -x - @setEnv@ cargo build -j $NIX_BUILD_CORES \ - --target @rustHostPlatformSpec@ \ - --frozen \ - ${cargoBuildProfileFlag} \ - ${cargoBuildNoDefaultFeaturesFlag} \ - ${cargoBuildFeaturesFlag} \ - ${cargoBuildFlags} - ) - - if [ ! -z "${buildAndTestSubdir-}" ]; then - popd - fi - - runHook postBuild - - echo "Finished cargoBuildHook" -} - -if [ -z "${dontCargoBuild-}" ] && [ -z "${buildPhase-}" ]; then - buildPhase=cargoBuildHook -fi diff --git a/pkgs/build-support/rust/hooks/cargo-check-hook.sh b/pkgs/build-support/rust/hooks/cargo-check-hook.sh deleted file mode 100644 index 971a140..0000000 --- a/pkgs/build-support/rust/hooks/cargo-check-hook.sh +++ /dev/null @@ -1,55 +0,0 @@ -declare -a checkFlags -declare -a cargoTestFlags - -cargoCheckHook() { - echo "Executing cargoCheckHook" - - runHook preCheck - - if [[ -n "${buildAndTestSubdir-}" ]]; then - pushd "${buildAndTestSubdir}" - fi - - if [[ -z ${dontUseCargoParallelTests-} ]]; then - threads=$NIX_BUILD_CORES - else - threads=1 - fi - - if [ "${cargoCheckType}" != "debug" ]; then - cargoCheckProfileFlag="--profile ${cargoCheckType}" - fi - - if [ -n "${cargoCheckNoDefaultFeatures-}" ]; then - cargoCheckNoDefaultFeaturesFlag=--no-default-features - fi - - if [ -n "${cargoCheckFeatures-}" ]; then - cargoCheckFeaturesFlag="--features=${cargoCheckFeatures// /,}" - fi - - argstr="${cargoCheckProfileFlag} ${cargoCheckNoDefaultFeaturesFlag} ${cargoCheckFeaturesFlag} - --target @rustHostPlatformSpec@ --frozen ${cargoTestFlags}" - - ( - set -x - cargo test \ - -j $NIX_BUILD_CORES \ - ${argstr} -- \ - --test-threads=${threads} \ - ${checkFlags} \ - ${checkFlagsArray+"${checkFlagsArray[@]}"} - ) - - if [[ -n "${buildAndTestSubdir-}" ]]; then - popd - fi - - echo "Finished cargoCheckHook" - - runHook postCheck -} - -if [ -z "${dontCargoCheck-}" ] && [ -z "${checkPhase-}" ]; then - checkPhase=cargoCheckHook -fi diff --git a/pkgs/build-support/rust/hooks/cargo-install-hook.sh b/pkgs/build-support/rust/hooks/cargo-install-hook.sh deleted file mode 100644 index 24a6e6f..0000000 --- a/pkgs/build-support/rust/hooks/cargo-install-hook.sh +++ /dev/null @@ -1,49 +0,0 @@ -cargoInstallPostBuildHook() { - echo "Executing cargoInstallPostBuildHook" - - releaseDir=target/@targetSubdirectory@/$cargoBuildType - tmpDir="${releaseDir}-tmp"; - - mkdir -p $tmpDir - cp -r ${releaseDir}/* $tmpDir/ - bins=$(find $tmpDir \ - -maxdepth 1 \ - -type f \ - -executable ! \( -regex ".*\.\(so.[0-9.]+\|so\|a\|dylib\)" \)) - - echo "Finished cargoInstallPostBuildHook" -} - -cargoInstallHook() { - echo "Executing cargoInstallHook" - - runHook preInstall - - # rename the output dir to a architecture independent one - - releaseDir=target/@targetSubdirectory@/$cargoBuildType - tmpDir="${releaseDir}-tmp"; - - mapfile -t targets < <(find "$NIX_BUILD_TOP" -type d | grep "${tmpDir}$") - for target in "${targets[@]}"; do - rm -rf "$target/../../${cargoBuildType}" - ln -srf "$target" "$target/../../" - done - mkdir -p $out/bin $out/lib - - xargs -r cp -t $out/bin <<< $bins - find $tmpDir \ - -maxdepth 1 \ - -regex ".*\.\(so.[0-9.]+\|so\|a\|dylib\)" \ - -print0 | xargs -r -0 cp -t $out/lib - rmdir --ignore-fail-on-non-empty $out/lib $out/bin - runHook postInstall - - echo "Finished cargoInstallHook" -} - - -if [ -z "${dontCargoInstall-}" ] && [ -z "${installPhase-}" ]; then - installPhase=cargoInstallHook - postBuildHooks+=(cargoInstallPostBuildHook) -fi diff --git a/pkgs/build-support/rust/hooks/cargo-nextest-hook.sh b/pkgs/build-support/rust/hooks/cargo-nextest-hook.sh deleted file mode 100644 index 29ba18a..0000000 --- a/pkgs/build-support/rust/hooks/cargo-nextest-hook.sh +++ /dev/null @@ -1,54 +0,0 @@ -declare -a checkFlags -declare -a cargoTestFlags - -cargoNextestHook() { - echo "Executing cargoNextestHook" - - runHook preCheck - - if [[ -n "${buildAndTestSubdir-}" ]]; then - pushd "${buildAndTestSubdir}" - fi - - if [[ -z ${dontUseCargoParallelTests-} ]]; then - threads=$NIX_BUILD_CORES - else - threads=1 - fi - - if [ "${cargoCheckType}" != "debug" ]; then - cargoCheckProfileFlag="--cargo-profile ${cargoCheckType}" - fi - - if [ -n "${cargoCheckNoDefaultFeatures-}" ]; then - cargoCheckNoDefaultFeaturesFlag=--no-default-features - fi - - if [ -n "${cargoCheckFeatures-}" ]; then - cargoCheckFeaturesFlag="--features=${cargoCheckFeatures// /,}" - fi - - argstr="${cargoCheckProfileFlag} ${cargoCheckNoDefaultFeaturesFlag} ${cargoCheckFeaturesFlag} - --target @rustHostPlatformSpec@ --frozen ${cargoTestFlags}" - - ( - set -x - cargo nextest run \ - -j ${threads} \ - ${argstr} -- \ - ${checkFlags} \ - ${checkFlagsArray+"${checkFlagsArray[@]}"} - ) - - if [[ -n "${buildAndTestSubdir-}" ]]; then - popd - fi - - echo "Finished cargoNextestHook" - - runHook postCheck -} - -if [ -z "${dontCargoCheck-}" ] && [ -z "${checkPhase-}" ]; then - checkPhase=cargoNextestHook -fi diff --git a/pkgs/build-support/rust/hooks/cargo-setup-hook.sh b/pkgs/build-support/rust/hooks/cargo-setup-hook.sh deleted file mode 100644 index 693c0b0..0000000 --- a/pkgs/build-support/rust/hooks/cargo-setup-hook.sh +++ /dev/null @@ -1,93 +0,0 @@ -cargoSetupPostUnpackHook() { - echo "Executing cargoSetupPostUnpackHook" - - # Some cargo builds include build hooks that modify their own vendor - # dependencies. This copies the vendor directory into the build tree and makes - # it writable. If we're using a tarball, the unpackFile hook already handles - # this for us automatically. - if [ -z $cargoVendorDir ]; then - if [ -d "$cargoDeps" ]; then - local dest=$(stripHash "$cargoDeps") - cp -Lr --reflink=auto -- "$cargoDeps" "$dest" - chmod -R +644 -- "$dest" - else - unpackFile "$cargoDeps" - fi - export cargoDepsCopy="$(realpath "$(stripHash $cargoDeps)")" - else - cargoDepsCopy="$(realpath "$(pwd)/$sourceRoot/${cargoRoot:+$cargoRoot/}${cargoVendorDir}")" - fi - - if [ ! -d .cargo ]; then - mkdir .cargo - fi - - config="$cargoDepsCopy/.cargo/config"; - if [[ ! -e $config ]]; then - config=@defaultConfig@ - fi; - - tmp_config=$(mktemp) - substitute $config $tmp_config \ - --subst-var-by vendor "$cargoDepsCopy" - cat ${tmp_config} >> .cargo/config - - cat >> .cargo/config <<'EOF' - @cargoConfig@ -EOF - - echo "Finished cargoSetupPostUnpackHook" -} - -# After unpacking and applying patches, check that the Cargo.lock matches our -# src package. Note that we do this after the patchPhase, because the -# patchPhase may create the Cargo.lock if upstream has not shipped one. -cargoSetupPostPatchHook() { - echo "Executing cargoSetupPostPatchHook" - - cargoDepsLockfile="$cargoDepsCopy/Cargo.lock" - srcLockfile="$(pwd)/${cargoRoot:+$cargoRoot/}Cargo.lock" - - echo "Validating consistency between $srcLockfile and $cargoDepsLockfile" - if ! @diff@ $srcLockfile $cargoDepsLockfile; then - - # If the diff failed, first double-check that the file exists, so we can - # give a friendlier error msg. - if ! [ -e $srcLockfile ]; then - echo "ERROR: Missing Cargo.lock from src. Expected to find it at: $srcLockfile" - echo "Hint: You can use the cargoPatches attribute to add a Cargo.lock manually to the build." - exit 1 - fi - - if ! [ -e $cargoDepsLockfile ]; then - echo "ERROR: Missing lockfile from cargo vendor. Expected to find it at: $cargoDepsLockfile" - exit 1 - fi - - echo - echo "ERROR: cargoHash or cargoSha256 is out of date" - echo - echo "Cargo.lock is not the same in $cargoDepsCopy" - echo - echo "To fix the issue:" - echo '1. Set cargoHash/cargoSha256 to an empty string: `cargoHash = "";`' - echo '2. Build the derivation and wait for it to fail with a hash mismatch' - echo '3. Copy the "got: sha256-..." value back into the cargoHash field' - echo ' You should have: cargoHash = "sha256-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=";' - echo - - exit 1 - fi - - unset cargoDepsCopy - - echo "Finished cargoSetupPostPatchHook" -} - -if [ -z "${dontCargoSetupPostUnpack-}" ]; then - postUnpackHooks+=(cargoSetupPostUnpackHook) -fi - -if [ -z ${cargoVendorDir-} ]; then - postPatchHooks+=(cargoSetupPostPatchHook) -fi diff --git a/pkgs/build-support/rust/hooks/default.nix b/pkgs/build-support/rust/hooks/default.nix deleted file mode 100644 index 874f23f..0000000 --- a/pkgs/build-support/rust/hooks/default.nix +++ /dev/null @@ -1,100 +0,0 @@ -{ 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 -}: - -{ - cargoBuildHook = callPackage ({ }: - makeSetupHook { - name = "cargo-build-hook.sh"; - propagatedBuildInputs = [ cargo ]; - substitutions = { - inherit (rust.envVars) rustHostPlatformSpec setEnv; - }; - } ./cargo-build-hook.sh) {}; - - cargoCheckHook = callPackage ({ }: - makeSetupHook { - name = "cargo-check-hook.sh"; - propagatedBuildInputs = [ cargo ]; - substitutions = { - inherit (rust.envVars) rustHostPlatformSpec; - }; - } ./cargo-check-hook.sh) {}; - - cargoInstallHook = callPackage ({ }: - makeSetupHook { - name = "cargo-install-hook.sh"; - propagatedBuildInputs = [ ]; - substitutions = { - targetSubdirectory = target; - }; - } ./cargo-install-hook.sh) {}; - - cargoNextestHook = callPackage ({ }: - makeSetupHook { - name = "cargo-nextest-hook.sh"; - propagatedBuildInputs = [ cargo cargo-nextest ]; - substitutions = { - inherit (rust.envVars) rustHostPlatformSpec; - }; - } ./cargo-nextest-hook.sh) {}; - - cargoSetupHook = callPackage ({ }: - makeSetupHook { - name = "cargo-setup-hook.sh"; - propagatedBuildInputs = [ ]; - substitutions = { - defaultConfig = ../fetchcargo-default-config.toml; - - # Specify the stdenv's `diff` by abspath to ensure that the user's build - # inputs do not cause us to find the wrong `diff`. - diff = "${lib.getBin buildPackages.diffutils}/bin/diff"; - - cargoConfig = '' - [target."${stdenv.buildPlatform.rust.rustcTarget}"] - "linker" = "${rust.envVars.linkerForBuild}" - ${lib.optionalString (stdenv.buildPlatform.config != stdenv.hostPlatform.config) '' - [target."${stdenv.hostPlatform.rust.rustcTarget}"] - "linker" = "${rust.envVars.linkerForHost}" - ''} - "rustflags" = [ "-C", "target-feature=${if stdenv.hostPlatform.isStatic then "+" else "-"}crt-static" ] - ''; - }; - } ./cargo-setup-hook.sh) {}; - - maturinBuildHook = callPackage ({ pkgsHostTarget }: - makeSetupHook { - name = "maturin-build-hook.sh"; - propagatedBuildInputs = [ - pkgsHostTarget.maturin - pkgsHostTarget.cargo - pkgsHostTarget.rustc - ]; - substitutions = { - inherit (rust.envVars) rustTargetPlatformSpec setEnv; - }; - } ./maturin-build-hook.sh) {}; - - bindgenHook = callPackage ({}: makeSetupHook { - name = "rust-bindgen-hook"; - substitutions = { - libclang = clang.cc.lib; - inherit clang; - }; - } - ./rust-bindgen-hook.sh) {}; -} diff --git a/pkgs/build-support/rust/hooks/maturin-build-hook.sh b/pkgs/build-support/rust/hooks/maturin-build-hook.sh deleted file mode 100644 index 028441d..0000000 --- a/pkgs/build-support/rust/hooks/maturin-build-hook.sh +++ /dev/null @@ -1,36 +0,0 @@ -maturinBuildHook() { - echo "Executing maturinBuildHook" - - runHook preBuild - - if [ ! -z "${buildAndTestSubdir-}" ]; then - pushd "${buildAndTestSubdir}" - fi - - ( - set -x - @setEnv@ maturin build \ - --jobs=$NIX_BUILD_CORES \ - --frozen \ - --target @rustTargetPlatformSpec@ \ - --manylinux off \ - --strip \ - --release \ - ${maturinBuildFlags-} - ) - - if [ ! -z "${buildAndTestSubdir-}" ]; then - popd - fi - - # Move the wheel to dist/ so that regular Python tooling can find it. - mkdir -p dist - mv ${cargoRoot:+$cargoRoot/}target/wheels/*.whl dist/ - - # These are python build hooks and may depend on ./dist - runHook postBuild - - echo "Finished maturinBuildHook" -} - -buildPhase=maturinBuildHook diff --git a/pkgs/build-support/rust/hooks/rust-bindgen-hook.sh b/pkgs/build-support/rust/hooks/rust-bindgen-hook.sh deleted file mode 100644 index 53624b1..0000000 --- a/pkgs/build-support/rust/hooks/rust-bindgen-hook.sh +++ /dev/null @@ -1,13 +0,0 @@ -# populates LIBCLANG_PATH and BINDGEN_EXTRA_CLANG_ARGS for rust projects that -# depend on the bindgen crate - -# if you modify this, you probably also need to modify the wrapper for the cli -# of bindgen in pkgs/development/tools/rust/bindgen/wrapper.sh - -populateBindgenEnv () { - export LIBCLANG_PATH=@libclang@/lib - BINDGEN_EXTRA_CLANG_ARGS="$(< @clang@/nix-support/cc-cflags) $(< @clang@/nix-support/libc-cflags) $(< @clang@/nix-support/libcxx-cxxflags) $NIX_CFLAGS_COMPILE" - export BINDGEN_EXTRA_CLANG_ARGS -} - -postHook="${postHook:-}"$'\n'"populateBindgenEnv"$'\n' diff --git a/pkgs/build-support/rust/import-cargo-lock.nix b/pkgs/build-support/rust/import-cargo-lock.nix deleted file mode 100644 index e3fe57e..0000000 --- a/pkgs/build-support/rust/import-cargo-lock.nix +++ /dev/null @@ -1,262 +0,0 @@ -{ fetchgit, fetchurl, lib, writers, python3Packages, runCommand, cargo, jq }: - -{ - # Cargo lock file - lockFile ? null - - # Cargo lock file contents as string -, lockFileContents ? null - - # Allow `builtins.fetchGit` to be used to not require hashes for git dependencies -, allowBuiltinFetchGit ? false - - # Additional registries to pull sources from - # { "https://" = "https://"; } - # where: - # - "index URL" is the "index" value of the configuration entry for that registry - # 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 ? {} - - # Hashes for git dependencies. -, outputHashes ? {} -} @ args: - -assert (lockFile == null) != (lockFileContents == null); - -let - # Parse a git source into different components. - 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 { - url = builtins.elemAt parts 0; - sha = builtins.elemAt parts 4; - } // lib.optionalAttrs (type != null) { inherit type value; }; - - # shadows args.lockFileContents - lockFileContents = - if lockFile != null - then builtins.readFile lockFile - else args.lockFileContents; - - parsedLockFile = builtins.fromTOML lockFileContents; - - packages = parsedLockFile.package; - - # There is no source attribute for the source package itself. But - # since we do not want to vendor the source package anyway, we can - # safely skip it. - depPackages = builtins.filter (p: p ? "source") packages; - - # Create dependent crates from packages. - # - # Force evaluation of the git SHA -> hash mapping, so that an error is - # thrown if there are stale hashes. We cannot rely on gitShaOutputHash - # being evaluated otherwise, since there could be no git dependencies. - depCrates = builtins.deepSeq gitShaOutputHash (builtins.map mkCrate depPackages); - - # Map package name + version to git commit SHA for packages with a git source. - namesGitShas = builtins.listToAttrs ( - 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; - }; - - # Convert the attrset provided through the `outputHashes` argument to a - # a mapping from git commit SHA -> output hash. - # - # There may be multiple different packages with different names - # originating from the same git repository (typically a Cargo - # 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: - let - unusedHash = throw "A hash was specified for ${nameVer}, but there is no corresponding git dependency."; - rev = namesGitShas.${nameVer} or unusedHash; in { - name = rev; - value = hash; - }) outputHashes; - - # We can't use the existing fetchCrate function, since it uses a - # recursive hash of the unpacked crate. - fetchCrate = pkg: downloadUrl: - let - 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. - ''; - fetchurl { - name = "crate-${pkg.name}-${pkg.version}.tar.gz"; - url = "${downloadUrl}/${pkg.name}/${pkg.version}/download"; - sha256 = checksum; - }; - - registries = { - "https://github.com/rust-lang/crates.io-index" = "https://crates.io/api/v1/crates"; - } // 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); - - # Fetch and unpack a crate. - 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 - let - crateTarball = fetchCrate pkg registries.${registryIndexUrl}; - 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 - let - missingHash = throw '' - No hash was found while vendoring the git dependency ${pkg.name}-${pkg.version}. You can add - a hash through the `outputHashes` argument of `importCargoLock`: - - outputHashes = { - "${pkg.name}-${pkg.version}" = ""; - }; - - If you use `buildRustPackage`, you can add this attribute to the `cargoLock` - attribute set. - ''; - tree = - if gitShaOutputHash ? ${gitParts.sha} then - fetchgit { - inherit (gitParts) url; - rev = gitParts.sha; # The commit SHA is always available. - sha256 = gitShaOutputHash.${gitParts.sha}; - } - else if allowBuiltinFetchGit then - builtins.fetchGit { - inherit (gitParts) url; - rev = gitParts.sha; - allRefs = true; - submodules = true; - } - else - missingHash; - in runCommand "${pkg.name}-${pkg.version}" {} '' - tree=${tree} - - # If the target package is in a workspace, or if it's the top-level - # crate, we should find the crate path using `cargo metadata`. - # Some packages do not have a Cargo.toml at the top-level, - # but only in nested directories. - # Only check the top-level Cargo.toml, if it actually exists - if [[ -f $tree/Cargo.toml ]]; then - crateCargoTOML=$(${cargo}/bin/cargo metadata --format-version 1 --no-deps --manifest-path $tree/Cargo.toml | \ - ${jq}/bin/jq -r '.packages[] | select(.name == "${pkg.name}") | .manifest_path') - fi - - # If the repository is not a workspace the package might be in a subdirectory. - if [[ -z $crateCargoTOML ]]; then - for manifest in $(find $tree -name "Cargo.toml"); do - echo Looking at $manifest - crateCargoTOML=$(${cargo}/bin/cargo metadata --format-version 1 --no-deps --manifest-path "$manifest" | ${jq}/bin/jq -r '.packages[] | select(.name == "${pkg.name}") | .manifest_path' || :) - if [[ ! -z $crateCargoTOML ]]; then - break - fi - done - - if [[ -z $crateCargoTOML ]]; then - >&2 echo "Cannot find path for crate '${pkg.name}-${pkg.version}' in the tree in: $tree" - exit 1 - fi - fi - - echo Found crate ${pkg.name} at $crateCargoTOML - tree=$(dirname $crateCargoTOML) - - cp -prvL "$tree/" $out - chmod u+w $out - - if grep -q workspace "$out/Cargo.toml"; then - chmod u+w "$out/Cargo.toml" - ${replaceWorkspaceValues} "$out/Cargo.toml" "$(${cargo}/bin/cargo metadata --format-version 1 --no-deps --manifest-path $crateCargoTOML | ${jq}/bin/jq -r .workspace_root)/Cargo.toml" - fi - - # Cargo is happy with empty metadata. - printf '{"files":{},"package":null}' > "$out/.cargo-checksum.json" - - # Set up configuration for the vendor directory. - cat > $out/.cargo-config < $out/.cargo/config <> $out/.cargo/config <> $out/.cargo/config - fi - fi - done - ''; -in - vendorDir diff --git a/pkgs/build-support/rust/lib/default.nix b/pkgs/build-support/rust/lib/default.nix deleted file mode 100644 index e09f913..0000000 --- a/pkgs/build-support/rust/lib/default.nix +++ /dev/null @@ -1,96 +0,0 @@ -{ lib -, stdenv -, pkgsBuildHost -, pkgsBuildTarget -, pkgsTargetTarget -}: - -rec { - # These environment variables must be set when using `cargo-c` and - # several other tools which do not deal well with cross - # compilation. The symptom of the problem they fix is errors due - # 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 - - # 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; - - 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; - - 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" ]; -} diff --git a/pkgs/build-support/rust/replace-workspace-values.py b/pkgs/build-support/rust/replace-workspace-values.py deleted file mode 100644 index 2b88f1f..0000000 --- a/pkgs/build-support/rust/replace-workspace-values.py +++ /dev/null @@ -1,114 +0,0 @@ -# This script implements the workspace inheritance mechanism described -# here: https://doc.rust-lang.org/cargo/reference/workspaces.html#the-package-table -# -# Please run `mypy --strict`, `black`, and `isort --profile black` on this after editing, thanks! - -import sys -from typing import Any - -import tomli -import tomli_w - - -def load_file(path: str) -> dict[str, Any]: - with open(path, "rb") as f: - return tomli.load(f) - - -def replace_key( - workspace_manifest: dict[str, Any], table: dict[str, Any], section: str, key: str -) -> bool: - if ( - isinstance(table[key], dict) - and "workspace" in table[key] - and table[key]["workspace"] is True - ): - print("replacing " + key) - - replaced = table[key] - del replaced["workspace"] - - workspace_copy = workspace_manifest[section][key] - - if section == "dependencies": - crate_features = replaced.get("features") - - if type(workspace_copy) is str: - replaced["version"] = workspace_copy - else: - replaced.update(workspace_copy) - - merged_features = (crate_features or []) + ( - workspace_copy.get("features") or [] - ) - - if len(merged_features) > 0: - # Dictionaries are guaranteed to be ordered (https://stackoverflow.com/a/7961425) - replaced["features"] = list(dict.fromkeys(merged_features)) - elif section == "package": - table[key] = replaced = workspace_copy - - return True - - return False - - -def replace_dependencies( - workspace_manifest: dict[str, Any], root: dict[str, Any] -) -> bool: - changed = False - - for key in ["dependencies", "dev-dependencies", "build-dependencies"]: - if key in root: - for k in root[key].keys(): - changed |= replace_key(workspace_manifest, root[key], "dependencies", k) - - return changed - - -def main() -> None: - top_cargo_toml = load_file(sys.argv[2]) - - if "workspace" not in top_cargo_toml: - # If top_cargo_toml is not a workspace manifest, then this script was probably - # ran on something that does not actually use workspace dependencies - print(f"{sys.argv[2]} is not a workspace manifest, doing nothing.") - return - - crate_manifest = load_file(sys.argv[1]) - workspace_manifest = top_cargo_toml["workspace"] - - if "workspace" in crate_manifest: - return - - changed = False - - for key in crate_manifest["package"].keys(): - changed |= replace_key( - workspace_manifest, crate_manifest["package"], "package", key - ) - - changed |= replace_dependencies(workspace_manifest, crate_manifest) - - if "target" in crate_manifest: - for key in crate_manifest["target"].keys(): - changed |= replace_dependencies( - workspace_manifest, crate_manifest["target"][key] - ) - - if ( - "lints" in crate_manifest - and "workspace" in crate_manifest["lints"] - and crate_manifest["lints"]["workspace"] is True - ): - crate_manifest["lints"] = workspace_manifest["lints"] - - if not changed: - return - - with open(sys.argv[1], "wb") as f: - tomli_w.dump(crate_manifest, f) - - -if __name__ == "__main__": - main() diff --git a/pkgs/build-support/rust/rustc-wrapper/default.nix b/pkgs/build-support/rust/rustc-wrapper/default.nix deleted file mode 100644 index 0defa63..0000000 --- a/pkgs/build-support/rust/rustc-wrapper/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ lib, runCommand, rustc-unwrapped, sysroot ? null }: - -runCommand "${rustc-unwrapped.pname}-wrapper-${rustc-unwrapped.version}" { - preferLocalBuild = true; - strictDeps = true; - inherit (rustc-unwrapped) outputs; - - 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"; - }; - - 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)} -'' diff --git a/pkgs/build-support/rust/rustc-wrapper/rustc-wrapper.sh b/pkgs/build-support/rust/rustc-wrapper/rustc-wrapper.sh deleted file mode 100644 index e33cc3e..0000000 --- a/pkgs/build-support/rust/rustc-wrapper/rustc-wrapper.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!@shell@ - -defaultSysroot=(@sysroot@) - -for arg; do - case "$arg" in - --sysroot|--sysroot=*) - defaultSysroot=() - ;; - --) - break - ;; - esac -done - -extraBefore=(@defaultArgs@ "${defaultSysroot[@]}") -extraAfter=($@extraFlagsVar@) - -# Optionally print debug info. -if (( "${NIX_DEBUG:-0}" >= 1 )); then - echo "extra flags before to @prog@:" >&2 - printf " %q\n" "${extraBefore[@]}" >&2 - echo "original flags to @prog@:" >&2 - printf " %q\n" "$@" >&2 - echo "extra flags after to @prog@:" >&2 - printf " %q\n" "${extraAfter[@]}" >&2 -fi - -exec @prog@ "${extraBefore[@]}" "$@" "${extraAfter[@]}" diff --git a/pkgs/build-support/rust/sysroot/Cargo.lock b/pkgs/build-support/rust/sysroot/Cargo.lock deleted file mode 100644 index d9b0c25..0000000 --- a/pkgs/build-support/rust/sysroot/Cargo.lock +++ /dev/null @@ -1,44 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "alloc" -version = "0.0.0" -dependencies = [ - "compiler_builtins", - "core", -] - -[[package]] -name = "compiler_builtins" -version = "0.1.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f867ce54c09855ccd135ad4a50c777182a0c7af5ff20a8f537617bd648b10d50" -dependencies = [ - "rustc-std-workspace-core", -] - -[[package]] -name = "core" -version = "0.0.0" - -[[package]] -name = "nixpkgs-sysroot-stub-crate" -version = "0.0.0" -dependencies = [ - "alloc", - "compiler_builtins", - "core", -] - -[[package]] -name = "rustc-std-workspace-core" -version = "1.99.0" -dependencies = [ - "core", -] - -[[patch.unused]] -name = "rustc-std-workspace-alloc" -version = "1.99.0" diff --git a/pkgs/build-support/rust/sysroot/cargo.py b/pkgs/build-support/rust/sysroot/cargo.py deleted file mode 100644 index 9d970ef..0000000 --- a/pkgs/build-support/rust/sysroot/cargo.py +++ /dev/null @@ -1,47 +0,0 @@ -import os -import toml - -rust_src = os.environ['RUSTC_SRC'] -orig_cargo = os.environ['ORIG_CARGO'] if 'ORIG_CARGO' in os.environ else None - -base = { - 'package': { - 'name': 'nixpkgs-sysroot-stub-crate', - 'version': '0.0.0', - 'authors': ['The Rust Project Developers'], - 'edition': '2018', - }, - 'dependencies': { - 'compiler_builtins': { - 'version': '0.1.0', - 'features': ['rustc-dep-of-std', 'mem'], - }, - 'core': { - 'path': os.path.join(rust_src, 'core'), - }, - 'alloc': { - 'path': os.path.join(rust_src, 'alloc'), - }, - }, - 'patch': { - 'crates-io': { - 'rustc-std-workspace-core': { - 'path': os.path.join(rust_src, 'rustc-std-workspace-core'), - }, - 'rustc-std-workspace-alloc': { - 'path': os.path.join(rust_src, 'rustc-std-workspace-alloc'), - }, - }, - }, -} - -if orig_cargo is not None: - with open(orig_cargo, 'r') as f: - src = toml.loads(f.read()) - if 'profile' in src: - base['profile'] = src['profile'] - -out = toml.dumps(base) - -with open('Cargo.toml', 'x') as f: - f.write(out) diff --git a/pkgs/build-support/rust/sysroot/src.nix b/pkgs/build-support/rust/sysroot/src.nix deleted file mode 100644 index 664702e..0000000 --- a/pkgs/build-support/rust/sysroot/src.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, stdenv, rustPlatform, buildPackages -, originalCargoToml ? null -}: - -stdenv.mkDerivation { - name = "cargo-src"; - preferLocalBuild = true; - - unpackPhase = "true"; - 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 - ''; -} diff --git a/pkgs/build-support/rust/sysroot/update-lockfile.sh b/pkgs/build-support/rust/sysroot/update-lockfile.sh deleted file mode 100755 index d0596d1..0000000 --- a/pkgs/build-support/rust/sysroot/update-lockfile.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell -i bash -p python3 python3.pkgs.toml cargo - -set -eu pipefile - -HERE=$(readlink -e $(dirname "${BASH_SOURCE[0]}")) -NIXPKGS_ROOT="$HERE/../../../.." - -# https://unix.stackexchange.com/a/84980/390173 -tempdir=$(mktemp -d 2>/dev/null || mktemp -d -t 'update-lockfile') -cd "$tempdir" -mkdir -p src -touch src/lib.rs - -RUSTC_SRC=$(nix-build "${NIXPKGS_ROOT}" -A pkgs.rustPlatform.rustLibSrc --no-out-link) - -ln -s $RUSTC_SRC/{core,alloc} ./ - -export RUSTC_SRC -python3 "$HERE/cargo.py" - -export RUSTC_BOOTSTRAP=1 -cargo generate-lockfile - -cp Cargo.lock "$HERE" - -rm -rf "$tempdir" diff --git a/pkgs/build-support/rust/test/import-cargo-lock/basic-dynamic/Cargo.lock b/pkgs/build-support/rust/test/import-cargo-lock/basic-dynamic/Cargo.lock deleted file mode 100644 index 522f9c2..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/basic-dynamic/Cargo.lock +++ /dev/null @@ -1,83 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -[[package]] -name = "basic-dynamic" -version = "0.1.0" -dependencies = [ - "rand", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "getrandom" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "libc" -version = "0.2.102" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2a5ac8f984bfcf3a823267e5fde638acc3325f6496633a5da6bb6eb2171e103" - -[[package]] -name = "ppv-lite86" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" - -[[package]] -name = "rand" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", - "rand_hc", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_hc" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7" -dependencies = [ - "rand_core", -] - -[[package]] -name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" diff --git a/pkgs/build-support/rust/test/import-cargo-lock/basic-dynamic/Cargo.toml b/pkgs/build-support/rust/test/import-cargo-lock/basic-dynamic/Cargo.toml deleted file mode 100644 index 851024c..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/basic-dynamic/Cargo.toml +++ /dev/null @@ -1,8 +0,0 @@ -[package] -name = "basic-dynamic" -version = "0.1.0" -authors = ["Daniël de Kok "] -edition = "2018" - -[dependencies] -rand = "0.8" diff --git a/pkgs/build-support/rust/test/import-cargo-lock/basic-dynamic/default.nix b/pkgs/build-support/rust/test/import-cargo-lock/basic-dynamic/default.nix deleted file mode 100644 index 1053032..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/basic-dynamic/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib, rustPlatform }: -let - fs = lib.fileset; -in -rustPlatform.buildRustPackage { - pname = "basic-dynamic"; - version = "0.1.0"; - - src = fs.toSource { - root = ./.; - fileset = fs.unions [ - ./Cargo.toml - ./Cargo.lock - ./src - ]; - }; - - cargoLock.lockFileContents = builtins.readFile ./Cargo.lock; - - doInstallCheck = true; - - installCheckPhase = '' - $out/bin/basic-dynamic - ''; -} diff --git a/pkgs/build-support/rust/test/import-cargo-lock/basic-dynamic/src/main.rs b/pkgs/build-support/rust/test/import-cargo-lock/basic-dynamic/src/main.rs deleted file mode 100644 index 50b4ed7..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/basic-dynamic/src/main.rs +++ /dev/null @@ -1,9 +0,0 @@ -use rand::Rng; - -fn main() { - let mut rng = rand::thread_rng(); - - // Always draw zero :). - let roll: u8 = rng.gen_range(0..1); - assert_eq!(roll, 0); -} diff --git a/pkgs/build-support/rust/test/import-cargo-lock/basic/Cargo.lock b/pkgs/build-support/rust/test/import-cargo-lock/basic/Cargo.lock deleted file mode 100644 index fd1b5e4..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/basic/Cargo.lock +++ /dev/null @@ -1,83 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -[[package]] -name = "basic" -version = "0.1.0" -dependencies = [ - "rand", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "getrandom" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "libc" -version = "0.2.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e" - -[[package]] -name = "ppv-lite86" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" - -[[package]] -name = "rand" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", - "rand_hc", -] - -[[package]] -name = "rand_chacha" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_hc" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" -dependencies = [ - "rand_core", -] - -[[package]] -name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" diff --git a/pkgs/build-support/rust/test/import-cargo-lock/basic/Cargo.toml b/pkgs/build-support/rust/test/import-cargo-lock/basic/Cargo.toml deleted file mode 100644 index f555bb0..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/basic/Cargo.toml +++ /dev/null @@ -1,8 +0,0 @@ -[package] -name = "basic" -version = "0.1.0" -authors = ["Daniël de Kok "] -edition = "2018" - -[dependencies] -rand = "0.8" diff --git a/pkgs/build-support/rust/test/import-cargo-lock/basic/default.nix b/pkgs/build-support/rust/test/import-cargo-lock/basic/default.nix deleted file mode 100644 index 3253809..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/basic/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, rustPlatform }: -let - fs = lib.fileset; -in -rustPlatform.buildRustPackage { - pname = "basic"; - version = "0.1.0"; - - src = fs.toSource { - root = ./.; - fileset = fs.unions [ - ./Cargo.toml - ./Cargo.lock - ./src - ]; - }; - - cargoLock = { - lockFile = ./Cargo.lock; - }; - - doInstallCheck = true; - - installCheckPhase = '' - $out/bin/basic - ''; -} diff --git a/pkgs/build-support/rust/test/import-cargo-lock/basic/src/main.rs b/pkgs/build-support/rust/test/import-cargo-lock/basic/src/main.rs deleted file mode 100644 index 50b4ed7..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/basic/src/main.rs +++ /dev/null @@ -1,9 +0,0 @@ -use rand::Rng; - -fn main() { - let mut rng = rand::thread_rng(); - - // Always draw zero :). - let roll: u8 = rng.gen_range(0..1); - assert_eq!(roll, 0); -} diff --git a/pkgs/build-support/rust/test/import-cargo-lock/default.nix b/pkgs/build-support/rust/test/import-cargo-lock/default.nix deleted file mode 100644 index 26e6487..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ callPackage, maturin, writers, python3Packages }: - -# Build like this from nixpkgs root: -# $ nix-build -A tests.importCargoLock -{ - basic = callPackage ./basic { }; - basicDynamic = callPackage ./basic-dynamic { }; - gitDependency = callPackage ./git-dependency { }; - gitDependencyRev = callPackage ./git-dependency-rev { }; - 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); - }; -} diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-branch/Cargo.lock b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-branch/Cargo.lock deleted file mode 100644 index e832b2e..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-branch/Cargo.lock +++ /dev/null @@ -1,72 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "getrandom" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "git-dependency-branch" -version = "0.1.0" -dependencies = [ - "rand", -] - -[[package]] -name = "libc" -version = "0.2.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e" - -[[package]] -name = "ppv-lite86" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" - -[[package]] -name = "rand" -version = "0.8.4" -source = "git+https://github.com/rust-random/rand.git?branch=master#fcc5baf31565a94f63dce41c2e739e6f182475f4" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "git+https://github.com/rust-random/rand.git?branch=master#fcc5baf31565a94f63dce41c2e739e6f182475f4" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.3" -source = "git+https://github.com/rust-random/rand.git?branch=master#fcc5baf31565a94f63dce41c2e739e6f182475f4" -dependencies = [ - "getrandom", -] - -[[package]] -name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-branch/Cargo.toml b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-branch/Cargo.toml deleted file mode 100644 index 0702c5a..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-branch/Cargo.toml +++ /dev/null @@ -1,8 +0,0 @@ -[package] -name = "git-dependency-branch" -version = "0.1.0" -authors = ["Daniël de Kok "] -edition = "2018" - -[dependencies] -rand = { git = "https://github.com/rust-random/rand.git", branch = "master" } diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-branch/default.nix b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-branch/default.nix deleted file mode 100644 index 3111c74..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-branch/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ lib, rustPlatform }: -let - fs = lib.fileset; -in -rustPlatform.buildRustPackage { - pname = "git-dependency-branch"; - version = "0.1.0"; - - src = fs.toSource { - root = ./.; - fileset = fs.unions [ - ./Cargo.toml - ./Cargo.lock - ./src - ]; - }; - - cargoLock = { - lockFile = ./Cargo.lock; - outputHashes = { - "rand-0.8.4" = "1ilk9wvfw3mdm57g199ys8f5nrgdrh0n3a4c8b7nz6lgnqvfrv6z"; - }; - }; - - doInstallCheck = true; - - installCheckPhase = '' - $out/bin/git-dependency-branch - ''; -} diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-branch/src/main.rs b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-branch/src/main.rs deleted file mode 100644 index 50b4ed7..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-branch/src/main.rs +++ /dev/null @@ -1,9 +0,0 @@ -use rand::Rng; - -fn main() { - let mut rng = rand::thread_rng(); - - // Always draw zero :). - let roll: u8 = rng.gen_range(0..1); - assert_eq!(roll, 0); -} diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/Cargo.lock b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/Cargo.lock deleted file mode 100644 index 63ff1b3..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/Cargo.lock +++ /dev/null @@ -1,638 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "anyhow" -version = "1.0.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61604a8f862e1d5c3229fdd78f8b02c68dcf73a4c4b05fd636d12240aaa242c1" - -[[package]] -name = "autocfg" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "cargo-test-macro" -version = "0.1.0" -source = "git+https://github.com/rust-lang/cargo?branch=rust-1.53.0#4369396ce7d270972955d876eaa4954bea56bcd9" - -[[package]] -name = "cargo-test-support" -version = "0.1.0" -source = "git+https://github.com/rust-lang/cargo?branch=rust-1.53.0#4369396ce7d270972955d876eaa4954bea56bcd9" -dependencies = [ - "anyhow", - "cargo-test-macro", - "cargo-util", - "filetime", - "flate2", - "git2", - "glob", - "lazy_static", - "remove_dir_all", - "serde_json", - "tar", - "toml", - "url", -] - -[[package]] -name = "cargo-util" -version = "0.1.0" -source = "git+https://github.com/rust-lang/cargo?branch=rust-1.53.0#4369396ce7d270972955d876eaa4954bea56bcd9" -dependencies = [ - "anyhow", - "core-foundation", - "crypto-hash", - "filetime", - "hex 0.4.3", - "jobserver", - "libc", - "log", - "miow", - "same-file", - "shell-escape", - "tempfile", - "walkdir", - "winapi", -] - -[[package]] -name = "cc" -version = "1.0.71" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79c2681d6594606957bbb8631c4b90a7fcaaa72cdb714743a437b156d6a7eedd" -dependencies = [ - "jobserver", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "commoncrypto" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d056a8586ba25a1e4d61cb090900e495952c7886786fc55f909ab2f819b69007" -dependencies = [ - "commoncrypto-sys", -] - -[[package]] -name = "commoncrypto-sys" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fed34f46747aa73dfaa578069fd8279d2818ade2b55f38f22a9401c7f4083e2" -dependencies = [ - "libc", -] - -[[package]] -name = "core-foundation" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" - -[[package]] -name = "crc32fast" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crypto-hash" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a77162240fd97248d19a564a565eb563a3f592b386e4136fb300909e67dddca" -dependencies = [ - "commoncrypto", - "hex 0.3.2", - "openssl", - "winapi", -] - -[[package]] -name = "filetime" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "975ccf83d8d9d0d84682850a38c8169027be83368805971cc4f238c2b245bc98" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "winapi", -] - -[[package]] -name = "flate2" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f" -dependencies = [ - "cfg-if", - "crc32fast", - "libc", - "libz-sys", - "miniz_oxide", -] - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" -dependencies = [ - "matches", - "percent-encoding", -] - -[[package]] -name = "getrandom" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "git-dependency-rev-non-workspace-nested-crate" -version = "0.1.0" -dependencies = [ - "cargo-test-support", -] - -[[package]] -name = "git2" -version = "0.13.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a8057932925d3a9d9e4434ea016570d37420ddb1ceed45a174d577f24ed6700" -dependencies = [ - "bitflags", - "libc", - "libgit2-sys", - "log", - "openssl-probe", - "openssl-sys", - "url", -] - -[[package]] -name = "glob" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" - -[[package]] -name = "hex" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "idna" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" -dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "itoa" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" - -[[package]] -name = "jobserver" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa" -dependencies = [ - "libc", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libc" -version = "0.2.105" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "869d572136620d55835903746bcb5cdc54cb2851fd0aeec53220b4bb65ef3013" - -[[package]] -name = "libgit2-sys" -version = "0.12.24+1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddbd6021eef06fb289a8f54b3c2acfdd85ff2a585dfbb24b8576325373d2152c" -dependencies = [ - "cc", - "libc", - "libssh2-sys", - "libz-sys", - "openssl-sys", - "pkg-config", -] - -[[package]] -name = "libssh2-sys" -version = "0.2.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b094a36eb4b8b8c8a7b4b8ae43b2944502be3e59cd87687595cf6b0a71b3f4ca" -dependencies = [ - "cc", - "libc", - "libz-sys", - "openssl-sys", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "libz-sys" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "log" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "matches" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" - -[[package]] -name = "miniz_oxide" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" -dependencies = [ - "adler", - "autocfg", -] - -[[package]] -name = "miow" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" -dependencies = [ - "winapi", -] - -[[package]] -name = "once_cell" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56" - -[[package]] -name = "openssl" -version = "0.10.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d9facdb76fec0b73c406f125d44d86fdad818d66fef0531eec9233ca425ff4a" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-sys", -] - -[[package]] -name = "openssl-probe" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" - -[[package]] -name = "openssl-sys" -version = "0.9.67" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69df2d8dfc6ce3aaf44b40dec6f487d5a886516cf6879c49e98e0710f310a058" -dependencies = [ - "autocfg", - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "percent-encoding" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" - -[[package]] -name = "pkg-config" -version = "0.3.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10e2fcbb64ecbe64c8e040a386c3104d384583af58b956d870aaaf229df6e66d" - -[[package]] -name = "ppv-lite86" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ca011bd0129ff4ae15cd04c4eef202cadf6c51c21e47aba319b4e0501db741" - -[[package]] -name = "rand" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", - "rand_hc", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_hc" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7" -dependencies = [ - "rand_core", -] - -[[package]] -name = "redox_syscall" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" -dependencies = [ - "bitflags", -] - -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi", -] - -[[package]] -name = "ryu" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "serde" -version = "1.0.130" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913" - -[[package]] -name = "serde_json" -version = "1.0.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f690853975602e1bfe1ccbf50504d67174e3bcf340f23b5ea9992e0587a52d8" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "shell-escape" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f" - -[[package]] -name = "tar" -version = "0.4.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6f5515d3add52e0bbdcad7b83c388bb36ba7b754dda3b5f5bc2d38640cdba5c" -dependencies = [ - "filetime", - "libc", -] - -[[package]] -name = "tempfile" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" -dependencies = [ - "cfg-if", - "libc", - "rand", - "redox_syscall", - "remove_dir_all", - "winapi", -] - -[[package]] -name = "tinyvec" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83b2a3d4d9091d0abd7eba4dc2710b1718583bd4d8992e2190720ea38f391f7" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" - -[[package]] -name = "toml" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" -dependencies = [ - "serde", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f" - -[[package]] -name = "unicode-normalization" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "url" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" -dependencies = [ - "form_urlencoded", - "idna", - "matches", - "percent-encoding", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "walkdir" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" -dependencies = [ - "same-file", - "winapi", - "winapi-util", -] - -[[package]] -name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/Cargo.toml b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/Cargo.toml deleted file mode 100644 index 61f1a08..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/Cargo.toml +++ /dev/null @@ -1,8 +0,0 @@ -[package] -name = "git-dependency-rev-non-workspace-nested-crate" -version = "0.1.0" -authors = ["Stefan Junker "] -edition = "2018" - -[dependencies] -cargo-test-support = { git = "https://github.com/rust-lang/cargo", branch = "rust-1.53.0" } 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 deleted file mode 100644 index 63e3bea..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ rustPlatform, pkg-config, openssl, lib, darwin, stdenv }: -let - fs = lib.fileset; -in -rustPlatform.buildRustPackage { - pname = "git-dependency-rev-non-workspace-nested-crate"; - version = "0.1.0"; - - src = fs.toSource { - root = ./.; - fileset = fs.unions [ - ./Cargo.toml - ./Cargo.lock - ./src - ]; - }; - - nativeBuildInputs = [ - pkg-config - ]; - - buildInputs = [ - openssl - ] ++ lib.optionals stdenv.isDarwin [ - darwin.apple_sdk.frameworks.Security - ]; - - cargoLock = { - lockFile = ./Cargo.lock; - outputHashes = { - "cargo-test-macro-0.1.0" = "1yy1y1d523xdzwg1gc77pigbcwsbawmy4b7vw8v21m7q957sk0c4"; - }; - }; - - doInstallCheck = true; - - installCheckPhase = '' - $out/bin/git-dependency-rev-non-workspace-nested-crate - ''; -} diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/src/main.rs b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/src/main.rs deleted file mode 100644 index cb4bfb5..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/src/main.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - println!("{}", cargo_test_support::t!(Result::<&str, &str>::Ok("msg"))); -} diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev/Cargo.lock b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev/Cargo.lock deleted file mode 100644 index 684d941..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev/Cargo.lock +++ /dev/null @@ -1,81 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "getrandom" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "git-dependency-rev" -version = "0.1.0" -dependencies = [ - "rand", -] - -[[package]] -name = "libc" -version = "0.2.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e" - -[[package]] -name = "ppv-lite86" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" - -[[package]] -name = "rand" -version = "0.8.3" -source = "git+https://github.com/rust-random/rand.git?rev=0.8.3#6ecbe2626b2cc6110a25c97b1702b347574febc7" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", - "rand_hc", -] - -[[package]] -name = "rand_chacha" -version = "0.3.0" -source = "git+https://github.com/rust-random/rand.git?rev=0.8.3#6ecbe2626b2cc6110a25c97b1702b347574febc7" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.1" -source = "git+https://github.com/rust-random/rand.git?rev=0.8.3#6ecbe2626b2cc6110a25c97b1702b347574febc7" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_hc" -version = "0.3.0" -source = "git+https://github.com/rust-random/rand.git?rev=0.8.3#6ecbe2626b2cc6110a25c97b1702b347574febc7" -dependencies = [ - "rand_core", -] - -[[package]] -name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev/Cargo.toml b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev/Cargo.toml deleted file mode 100644 index 3500325..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev/Cargo.toml +++ /dev/null @@ -1,8 +0,0 @@ -[package] -name = "git-dependency-rev" -version = "0.1.0" -authors = ["Daniël de Kok "] -edition = "2018" - -[dependencies] -rand = { git = "https://github.com/rust-random/rand.git", rev = "0.8.3" } diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev/default.nix b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev/default.nix deleted file mode 100644 index d3cb0fa..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ lib, rustPlatform }: -let - fs = lib.fileset; -in -rustPlatform.buildRustPackage { - pname = "git-dependency-rev"; - version = "0.1.0"; - - src = fs.toSource { - root = ./.; - fileset = fs.unions [ - ./Cargo.toml - ./Cargo.lock - ./src - ]; - }; - - cargoLock = { - lockFile = ./Cargo.lock; - outputHashes = { - "rand-0.8.3" = "0l3p174bpwia61vcvxz5mw65a13ri3wy94z04xrnyy5lzciykz4f"; - }; - }; - - doInstallCheck = true; - - installCheckPhase = '' - $out/bin/git-dependency-rev - ''; -} diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev/src/main.rs b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev/src/main.rs deleted file mode 100644 index 50b4ed7..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev/src/main.rs +++ /dev/null @@ -1,9 +0,0 @@ -use rand::Rng; - -fn main() { - let mut rng = rand::thread_rng(); - - // Always draw zero :). - let roll: u8 = rng.gen_range(0..1); - assert_eq!(roll, 0); -} diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-tag/Cargo.lock b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-tag/Cargo.lock deleted file mode 100644 index 9f8ec19..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-tag/Cargo.lock +++ /dev/null @@ -1,81 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "getrandom" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "git-dependency-tag" -version = "0.1.0" -dependencies = [ - "rand", -] - -[[package]] -name = "libc" -version = "0.2.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e" - -[[package]] -name = "ppv-lite86" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" - -[[package]] -name = "rand" -version = "0.8.3" -source = "git+https://github.com/rust-random/rand.git?tag=0.8.3#6ecbe2626b2cc6110a25c97b1702b347574febc7" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", - "rand_hc", -] - -[[package]] -name = "rand_chacha" -version = "0.3.0" -source = "git+https://github.com/rust-random/rand.git?tag=0.8.3#6ecbe2626b2cc6110a25c97b1702b347574febc7" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.1" -source = "git+https://github.com/rust-random/rand.git?tag=0.8.3#6ecbe2626b2cc6110a25c97b1702b347574febc7" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_hc" -version = "0.3.0" -source = "git+https://github.com/rust-random/rand.git?tag=0.8.3#6ecbe2626b2cc6110a25c97b1702b347574febc7" -dependencies = [ - "rand_core", -] - -[[package]] -name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-tag/Cargo.toml b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-tag/Cargo.toml deleted file mode 100644 index 1bda733..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-tag/Cargo.toml +++ /dev/null @@ -1,8 +0,0 @@ -[package] -name = "git-dependency-tag" -version = "0.1.0" -authors = ["Daniël de Kok "] -edition = "2018" - -[dependencies] -rand = { git = "https://github.com/rust-random/rand.git", tag = "0.8.3" } diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-tag/default.nix b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-tag/default.nix deleted file mode 100644 index dfaa1e3..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-tag/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ lib, rustPlatform }: -let - fs = lib.fileset; -in -rustPlatform.buildRustPackage { - pname = "git-dependency-tag"; - version = "0.1.0"; - - src = fs.toSource { - root = ./.; - fileset = fs.unions [ - ./Cargo.toml - ./Cargo.lock - ./src - ]; - }; - - cargoLock = { - lockFile = ./Cargo.lock; - outputHashes = { - "rand-0.8.3" = "0l3p174bpwia61vcvxz5mw65a13ri3wy94z04xrnyy5lzciykz4f"; - }; - }; - - doInstallCheck = true; - - installCheckPhase = '' - $out/bin/git-dependency-tag - ''; -} diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-tag/src/main.rs b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-tag/src/main.rs deleted file mode 100644 index 50b4ed7..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-tag/src/main.rs +++ /dev/null @@ -1,9 +0,0 @@ -use rand::Rng; - -fn main() { - let mut rng = rand::thread_rng(); - - // Always draw zero :). - let roll: u8 = rng.gen_range(0..1); - assert_eq!(roll, 0); -} diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-workspace-inheritance/crate.toml b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-workspace-inheritance/crate.toml deleted file mode 100644 index f7b62ae..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-workspace-inheritance/crate.toml +++ /dev/null @@ -1,13 +0,0 @@ -[package] -name = "im_using_workspaces" -version = { workspace = true } -publish = false -keywords = [ - "workspace", - "other_thing", - "third_thing", -] - -[dependencies] -foo = { workspace = true, features = ["cat"] } -bar = "1.0.0" diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-workspace-inheritance/default.nix b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-workspace-inheritance/default.nix deleted file mode 100644 index 138b717..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-workspace-inheritance/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ replaceWorkspaceValues, runCommand }: - -runCommand "git-dependency-workspace-inheritance-test" { } '' - cp --no-preserve=mode ${./crate.toml} "$out" - ${replaceWorkspaceValues} "$out" ${./workspace.toml} - diff -u "$out" ${./want.toml} -'' diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-workspace-inheritance/want.toml b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-workspace-inheritance/want.toml deleted file mode 100644 index ec13314..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-workspace-inheritance/want.toml +++ /dev/null @@ -1,19 +0,0 @@ -[package] -name = "im_using_workspaces" -version = "1.0.0" -publish = false -keywords = [ - "workspace", - "other_thing", - "third_thing", -] - -[dependencies] -bar = "1.0.0" - -[dependencies.foo] -features = [ - "cat", - "meow", -] -version = "1.0.0" diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-workspace-inheritance/workspace.toml b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-workspace-inheritance/workspace.toml deleted file mode 100644 index c58112a..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-workspace-inheritance/workspace.toml +++ /dev/null @@ -1,5 +0,0 @@ -[workspace.package] -version = "1.0.0" - -[workspace.dependencies] -foo = { version = "1.0.0", features = ["meow"] } diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/Cargo.lock b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/Cargo.lock deleted file mode 100644 index fa71865..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/Cargo.lock +++ /dev/null @@ -1,81 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "getrandom" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "git-dependency" -version = "0.1.0" -dependencies = [ - "rand", -] - -[[package]] -name = "libc" -version = "0.2.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e" - -[[package]] -name = "ppv-lite86" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" - -[[package]] -name = "rand" -version = "0.8.3" -source = "git+https://github.com/rust-random/rand.git#f0e01ee0a7257753cc51b291f62666f4765923ef" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", - "rand_hc", -] - -[[package]] -name = "rand_chacha" -version = "0.3.0" -source = "git+https://github.com/rust-random/rand.git#f0e01ee0a7257753cc51b291f62666f4765923ef" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.2" -source = "git+https://github.com/rust-random/rand.git#f0e01ee0a7257753cc51b291f62666f4765923ef" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_hc" -version = "0.3.0" -source = "git+https://github.com/rust-random/rand.git#f0e01ee0a7257753cc51b291f62666f4765923ef" -dependencies = [ - "rand_core", -] - -[[package]] -name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/Cargo.toml b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/Cargo.toml deleted file mode 100644 index a902dea..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/Cargo.toml +++ /dev/null @@ -1,8 +0,0 @@ -[package] -name = "git-dependency" -version = "0.1.0" -authors = ["Daniël de Kok "] -edition = "2018" - -[dependencies] -rand = { git = "https://github.com/rust-random/rand.git" } diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/default.nix b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/default.nix deleted file mode 100644 index 98aa35b..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ lib, rustPlatform }: -let - fs = lib.fileset; -in -rustPlatform.buildRustPackage { - pname = "git-dependency"; - version = "0.1.0"; - - src = fs.toSource { - root = ./.; - fileset = fs.unions [ - ./Cargo.toml - ./Cargo.lock - ./src - ]; - }; - - cargoLock = { - lockFile = ./Cargo.lock; - outputHashes = { - "rand-0.8.3" = "0ya2hia3cn31qa8894s3av2s8j5bjwb6yq92k0jsnlx7jid0jwqa"; - }; - }; - - doInstallCheck = true; - - installCheckPhase = '' - $out/bin/git-dependency - ''; -} diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/src/main.rs b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/src/main.rs deleted file mode 100644 index 50b4ed7..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/src/main.rs +++ /dev/null @@ -1,9 +0,0 @@ -use rand::Rng; - -fn main() { - let mut rng = rand::thread_rng(); - - // Always draw zero :). - let roll: u8 = rng.gen_range(0..1); - assert_eq!(roll, 0); -} diff --git a/pkgs/build-support/rust/test/import-cargo-lock/v1/Cargo.lock b/pkgs/build-support/rust/test/import-cargo-lock/v1/Cargo.lock deleted file mode 100644 index fe976f0..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/v1/Cargo.lock +++ /dev/null @@ -1,85 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "getrandom" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.94 (registry+https://github.com/rust-lang/crates.io-index)", - "wasi 0.10.2+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "libc" -version = "0.2.94" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "ppv-lite86" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "rand" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.94 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_chacha 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_hc 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rand_chacha" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "ppv-lite86 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rand_core" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "getrandom 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rand_hc" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "rand_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "v1" -version = "0.1.0" -dependencies = [ - "rand 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[metadata] -"checksum cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -"checksum getrandom 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8" -"checksum libc 0.2.94 (registry+https://github.com/rust-lang/crates.io-index)" = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e" -"checksum ppv-lite86 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" -"checksum rand 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e" -"checksum rand_chacha 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" -"checksum rand_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7" -"checksum rand_hc 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" -"checksum wasi 0.10.2+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" diff --git a/pkgs/build-support/rust/test/import-cargo-lock/v1/Cargo.toml b/pkgs/build-support/rust/test/import-cargo-lock/v1/Cargo.toml deleted file mode 100644 index 4b825c4..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/v1/Cargo.toml +++ /dev/null @@ -1,8 +0,0 @@ -[package] -name = "v1" -version = "0.1.0" -authors = ["Daniël de Kok "] -edition = "2018" - -[dependencies] -rand = "0.8" diff --git a/pkgs/build-support/rust/test/import-cargo-lock/v1/default.nix b/pkgs/build-support/rust/test/import-cargo-lock/v1/default.nix deleted file mode 100644 index b53b711..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/v1/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, rustPlatform }: -let - fs = lib.fileset; -in -rustPlatform.buildRustPackage { - pname = "v1"; - version = "0.1.0"; - - src = fs.toSource { - root = ./.; - fileset = fs.unions [ - ./Cargo.toml - ./Cargo.lock - ./src - ]; - }; - - cargoLock = { - lockFile = ./Cargo.lock; - }; - - doInstallCheck = true; - - installCheckPhase = '' - $out/bin/v1 - ''; -} diff --git a/pkgs/build-support/rust/test/import-cargo-lock/v1/src/main.rs b/pkgs/build-support/rust/test/import-cargo-lock/v1/src/main.rs deleted file mode 100644 index 50b4ed7..0000000 --- a/pkgs/build-support/rust/test/import-cargo-lock/v1/src/main.rs +++ /dev/null @@ -1,9 +0,0 @@ -use rand::Rng; - -fn main() { - let mut rng = rand::thread_rng(); - - // Always draw zero :). - let roll: u8 = rng.gen_range(0..1); - assert_eq!(roll, 0); -} diff --git a/pkgs/build-support/setup-hooks/audit-tmpdir.sh b/pkgs/build-support/setup-hooks/audit-tmpdir.sh deleted file mode 100644 index 3671417..0000000 --- a/pkgs/build-support/setup-hooks/audit-tmpdir.sh +++ /dev/null @@ -1,39 +0,0 @@ -# Check whether RPATHs or wrapper scripts contain references to -# $TMPDIR. This is a serious security bug because it allows any user -# to inject files into search paths of other users' processes. -# -# It might be better to have Nix scan build output for any occurrence -# of $TMPDIR (which would also be good for reproducibility), but at -# the moment that would produce too many spurious errors (e.g. debug -# info or assertion messages that refer to $TMPDIR). - -fixupOutputHooks+=('if [[ -z "${noAuditTmpdir-}" && -e "$prefix" ]]; then auditTmpdir "$prefix"; fi') - -auditTmpdir() { - local dir="$1" - [ -e "$dir" ] || return 0 - - echo "checking for references to $TMPDIR/ in $dir..." - - local i - find "$dir" -type f -print0 | while IFS= read -r -d $'\0' i; do - if [[ "$i" =~ .build-id ]]; then continue; fi - - if isELF "$i"; then - if { printf :; patchelf --print-rpath "$i"; } | grep -q -F ":$TMPDIR/"; then - echo "RPATH of binary $i contains a forbidden reference to $TMPDIR/" - exit 1 - fi - fi - - if isScript "$i"; then - if [ -e "$(dirname "$i")/.$(basename "$i")-wrapped" ]; then - if grep -q -F "$TMPDIR/" "$i"; then - echo "wrapper script $i contains a forbidden reference to $TMPDIR/" - exit 1 - fi - fi - fi - - done -} diff --git a/pkgs/build-support/setup-hooks/auto-patchelf.py b/pkgs/build-support/setup-hooks/auto-patchelf.py deleted file mode 100644 index 4769179..0000000 --- a/pkgs/build-support/setup-hooks/auto-patchelf.py +++ /dev/null @@ -1,378 +0,0 @@ -#!/usr/bin/env python3 - -import argparse -import os -import pprint -import subprocess -import sys -from fnmatch import fnmatch -from collections import defaultdict -from contextlib import contextmanager -from dataclasses import dataclass -from itertools import chain -from pathlib import Path, PurePath -from typing import DefaultDict, Iterator, List, Optional, Set, Tuple - -from elftools.common.exceptions import ELFError # type: ignore -from elftools.elf.dynamic import DynamicSection # type: ignore -from elftools.elf.elffile import ELFFile # type: ignore -from elftools.elf.enums import ENUM_E_TYPE, ENUM_EI_OSABI # type: ignore - - -@contextmanager -def open_elf(path: Path) -> Iterator[ELFFile]: - with path.open('rb') as stream: - yield ELFFile(stream) - - -def is_static_executable(elf: ELFFile) -> bool: - # Statically linked executables have an ELF type of EXEC but no INTERP. - return (elf.header["e_type"] == 'ET_EXEC' - and not elf.get_section_by_name(".interp")) - - -def is_dynamic_executable(elf: ELFFile) -> bool: - # We do not require an ELF type of EXEC. This also catches - # position-independent executables, as they typically have an INTERP - # section but their ELF type is DYN. - return bool(elf.get_section_by_name(".interp")) - - -def get_dependencies(elf: ELFFile) -> List[str]: - dependencies = [] - # This convoluted code is here on purpose. For some reason, using - # elf.get_section_by_name(".dynamic") does not always return an - # instance of DynamicSection, but that is required to call iter_tags - for section in elf.iter_sections(): - if isinstance(section, DynamicSection): - for tag in section.iter_tags('DT_NEEDED'): - dependencies.append(tag.needed) - break # There is only one dynamic section - - return dependencies - - -def get_rpath(elf: ELFFile) -> List[str]: - # This convoluted code is here on purpose. For some reason, using - # elf.get_section_by_name(".dynamic") does not always return an - # instance of DynamicSection, but that is required to call iter_tags - for section in elf.iter_sections(): - if isinstance(section, DynamicSection): - for tag in section.iter_tags('DT_RUNPATH'): - return tag.runpath.split(':') - - for tag in section.iter_tags('DT_RPATH'): - return tag.rpath.split(':') - - break # There is only one dynamic section - - return [] - - -def get_arch(elf: ELFFile) -> str: - return elf.get_machine_arch() - - -def get_osabi(elf: ELFFile) -> str: - return elf.header["e_ident"]["EI_OSABI"] - - -def osabi_are_compatible(wanted: str, got: str) -> bool: - """ - Tests whether two OS ABIs are compatible, taking into account the - generally accepted compatibility of SVR4 ABI with other ABIs. - """ - if not wanted or not got: - # One of the types couldn't be detected, so as a fallback we'll - # assume they're compatible. - return True - - # Generally speaking, the base ABI (0x00), which is represented by - # readelf(1) as "UNIX - System V", indicates broad compatibility - # with other ABIs. - # - # TODO: This isn't always true. For example, some OSes embed ABI - # compatibility into SHT_NOTE sections like .note.tag and - # .note.ABI-tag. It would be prudent to add these to the detection - # logic to produce better ABI information. - if wanted == 'ELFOSABI_SYSV': - return True - - # Similarly here, we should be able to link against a superset of - # features, so even if the target has another ABI, this should be - # fine. - if got == 'ELFOSABI_SYSV': - return True - - # Otherwise, we simply return whether the ABIs are identical. - return wanted == got - - -def glob(path: Path, pattern: str, recursive: bool) -> Iterator[Path]: - if path.is_dir(): - return path.rglob(pattern) if recursive else path.glob(pattern) - else: - # path.glob won't return anything if the path is not a directory. - # We extend that behavior by matching the file name against the pattern. - # This allows to pass single files instead of dirs to auto_patchelf, - # for greater control on the files to consider. - return [path] if path.match(pattern) else [] - - -cached_paths: Set[Path] = set() -soname_cache: DefaultDict[Tuple[str, str], List[Tuple[Path, str]]] = defaultdict(list) - - -def populate_cache(initial: List[Path], recursive: bool =False) -> None: - lib_dirs = list(initial) - - while lib_dirs: - lib_dir = lib_dirs.pop(0) - - if lib_dir in cached_paths: - continue - - cached_paths.add(lib_dir) - - for path in glob(lib_dir, "*.so*", recursive): - if not path.is_file(): - continue - - # As an optimisation, resolve the symlinks here, as the target is unique - # XXX: (layus, 2022-07-25) is this really an optimisation in all cases ? - # It could make the rpath bigger or break the fragile precedence of $out. - resolved = path.resolve() - # Do not use resolved paths when names do not match - if resolved.name != path.name: - resolved = path - - try: - with open_elf(path) as elf: - osabi = get_osabi(elf) - arch = get_arch(elf) - rpath = [Path(p) for p in get_rpath(elf) - if p and '$ORIGIN' not in p] - lib_dirs += rpath - soname_cache[(path.name, arch)].append((resolved.parent, osabi)) - - except ELFError: - # Not an ELF file in the right format - pass - - -def find_dependency(soname: str, soarch: str, soabi: str) -> Optional[Path]: - for lib, libabi in soname_cache[(soname, soarch)]: - if osabi_are_compatible(soabi, libabi): - return lib - return None - - -@dataclass -class Dependency: - file: Path # The file that contains the dependency - name: Path # The name of the dependency - found: bool = False # Whether it was found somewhere - - -def auto_patchelf_file(path: Path, runtime_deps: list[Path], append_rpaths: List[Path] = [], extra_args: List[str] = []) -> list[Dependency]: - try: - with open_elf(path) as elf: - - if is_static_executable(elf): - # No point patching these - print(f"skipping {path} because it is statically linked") - return [] - - if elf.num_segments() == 0: - # no segment (e.g. object file) - print(f"skipping {path} because it contains no segment") - return [] - - file_arch = get_arch(elf) - if interpreter_arch != file_arch: - # Our target architecture is different than this file's - # architecture, so skip it. - print(f"skipping {path} because its architecture ({file_arch})" - f" differs from target ({interpreter_arch})") - return [] - - file_osabi = get_osabi(elf) - if not osabi_are_compatible(interpreter_osabi, file_osabi): - print(f"skipping {path} because its OS ABI ({file_osabi}) is" - f" not compatible with target ({interpreter_osabi})") - return [] - - file_is_dynamic_executable = is_dynamic_executable(elf) - - file_dependencies = map(Path, get_dependencies(elf)) - - except ELFError: - return [] - - rpath = [] - if file_is_dynamic_executable: - print("setting interpreter of", path) - subprocess.run( - ["patchelf", "--set-interpreter", interpreter_path.as_posix(), path.as_posix()] + extra_args, - check=True) - rpath += runtime_deps - - print("searching for dependencies of", path) - dependencies = [] - # Be sure to get the output of all missing dependencies instead of - # failing at the first one, because it's more useful when working - # on a new package where you don't yet know the dependencies. - for dep in file_dependencies: - if dep.is_absolute() and dep.is_file(): - # This is an absolute path. If it exists, just use it. - # Otherwise, we probably want this to produce an error when - # checked (because just updating the rpath won't satisfy - # it). - continue - elif (libc_lib / dep).is_file(): - # This library exists in libc, and will be correctly - # resolved by the linker. - continue - - if found_dependency := find_dependency(dep.name, file_arch, file_osabi): - rpath.append(found_dependency) - dependencies.append(Dependency(path, dep, True)) - print(f" {dep} -> found: {found_dependency}") - else: - dependencies.append(Dependency(path, dep, False)) - print(f" {dep} -> not found!") - - rpath.extend(append_rpaths) - - # Dedup the rpath - rpath_str = ":".join(dict.fromkeys(map(Path.as_posix, rpath))) - - if rpath: - print("setting RPATH to:", rpath_str) - subprocess.run( - ["patchelf", "--set-rpath", rpath_str, path.as_posix()] + extra_args, - check=True) - - return dependencies - - -def auto_patchelf( - paths_to_patch: List[Path], - lib_dirs: List[Path], - runtime_deps: List[Path], - recursive: bool = True, - ignore_missing: List[str] = [], - append_rpaths: List[Path] = [], - extra_args: List[str] = []) -> None: - - if not paths_to_patch: - sys.exit("No paths to patch, stopping.") - - # Add all shared objects of the current output path to the cache, - # before lib_dirs, so that they are chosen first in find_dependency. - populate_cache(paths_to_patch, recursive) - populate_cache(lib_dirs) - - dependencies = [] - for path in chain.from_iterable(glob(p, '*', recursive) for p in paths_to_patch): - if not path.is_symlink() and path.is_file(): - dependencies += auto_patchelf_file(path, runtime_deps, append_rpaths, extra_args) - - missing = [dep for dep in dependencies if not dep.found] - - # Print a summary of the missing dependencies at the end - print(f"auto-patchelf: {len(missing)} dependencies could not be satisfied") - failure = False - for dep in missing: - for pattern in ignore_missing: - if fnmatch(dep.name.name, pattern): - print(f"warn: auto-patchelf ignoring missing {dep.name} wanted by {dep.file}") - break - else: - print(f"error: auto-patchelf could not satisfy dependency {dep.name} wanted by {dep.file}") - failure = True - - if failure: - sys.exit('auto-patchelf failed to find all the required dependencies.\n' - 'Add the missing dependencies to --libs or use ' - '`--ignore-missing="foo.so.1 bar.so etc.so"`.') - - -def main() -> None: - parser = argparse.ArgumentParser( - prog="auto-patchelf", - description='auto-patchelf tries as hard as possible to patch the' - ' provided binary files by looking for compatible' - 'libraries in the provided paths.') - parser.add_argument( - "--ignore-missing", - nargs="*", - type=str, - help="Do not fail when some dependencies are not found.") - parser.add_argument( - "--no-recurse", - dest="recursive", - action="store_false", - help="Disable the recursive traversal of paths to patch.") - parser.add_argument( - "--paths", nargs="*", type=Path, - help="Paths whose content needs to be patched." - " Single files and directories are accepted." - " Directories are traversed recursively by default.") - parser.add_argument( - "--libs", nargs="*", type=Path, - help="Paths where libraries are searched for." - " Single files and directories are accepted." - " Directories are not searched recursively.") - parser.add_argument( - "--runtime-dependencies", nargs="*", type=Path, - help="Paths to prepend to the runtime path of executable binaries." - " Subject to deduplication, which may imply some reordering.") - parser.add_argument( - "--append-rpaths", - nargs="*", - type=Path, - help="Paths to append to all runtime paths unconditionally", - ) - parser.add_argument( - "--extra-args", - # Undocumented Python argparse feature: consume all remaining arguments - # as values for this one. This means this argument should always be passed - # last. - nargs="...", - type=str, - help="Extra arguments to pass to patchelf. This argument should always come last." - ) - - print("automatically fixing dependencies for ELF files") - args = parser.parse_args() - pprint.pprint(vars(args)) - - auto_patchelf( - args.paths, - args.libs, - args.runtime_dependencies, - args.recursive, - args.ignore_missing, - append_rpaths=args.append_rpaths, - extra_args=args.extra_args) - - -interpreter_path: Path = None # type: ignore -interpreter_osabi: str = None # type: ignore -interpreter_arch: str = None # type: ignore -libc_lib: Path = None # type: ignore - -if __name__ == "__main__": - nix_support = Path(os.environ['NIX_BINTOOLS']) / 'nix-support' - interpreter_path = Path((nix_support / 'dynamic-linker').read_text().strip()) - libc_lib = Path((nix_support / 'orig-libc').read_text().strip()) / 'lib' - - with open_elf(interpreter_path) as interpreter: - interpreter_osabi = get_osabi(interpreter) - interpreter_arch = get_arch(interpreter) - - if interpreter_arch and interpreter_osabi and interpreter_path and libc_lib: - main() - else: - sys.exit("Failed to parse dynamic linker (ld) properties.") diff --git a/pkgs/build-support/setup-hooks/auto-patchelf.sh b/pkgs/build-support/setup-hooks/auto-patchelf.sh deleted file mode 100644 index 783ea45..0000000 --- a/pkgs/build-support/setup-hooks/auto-patchelf.sh +++ /dev/null @@ -1,108 +0,0 @@ -# shellcheck shell=bash - -declare -a autoPatchelfLibs -declare -a extraAutoPatchelfLibs - -gatherLibraries() { - autoPatchelfLibs+=("$1/lib") -} - -# shellcheck disable=SC2154 -# (targetOffset is referenced but not assigned.) -addEnvHooks "$targetOffset" gatherLibraries - -# Can be used to manually add additional directories with shared object files -# to be included for the next autoPatchelf invocation. -addAutoPatchelfSearchPath() { - local -a findOpts=() - - while [ $# -gt 0 ]; do - case "$1" in - --) shift; break;; - --no-recurse) shift; findOpts+=("-maxdepth" 1);; - --*) - echo "addAutoPatchelfSearchPath: ERROR: Invalid command line" \ - "argument: $1" >&2 - return 1;; - *) break;; - esac - done - - local dir= - while IFS= read -r -d '' dir; do - extraAutoPatchelfLibs+=("$dir") - done < <(find "$@" "${findOpts[@]}" \! -type d \ - \( -name '*.so' -o -name '*.so.*' \) -print0 \ - | sed -z 's#/[^/]*$##' \ - | uniq -z - ) -} - - -autoPatchelf() { - local norecurse= - while [ $# -gt 0 ]; do - case "$1" in - --) shift; break;; - --no-recurse) shift; norecurse=1;; - --*) - echo "autoPatchelf: ERROR: Invalid command line" \ - "argument: $1" >&2 - return 1;; - *) break;; - esac - done - - if [ -n "$__structuredAttrs" ]; then - local ignoreMissingDepsArray=( "${autoPatchelfIgnoreMissingDeps[@]}" ) - local appendRunpathsArray=( "${appendRunpaths[@]}" ) - local runtimeDependenciesArray=( "${runtimeDependencies[@]}" ) - local patchelfFlagsArray=( "${patchelfFlags[@]}" ) - else - readarray -td' ' ignoreMissingDepsArray < <(echo -n "$autoPatchelfIgnoreMissingDeps") - local appendRunpathsArray=($appendRunpaths) - local runtimeDependenciesArray=($runtimeDependencies) - local patchelfFlagsArray=($patchelfFlags) - fi - - # Check if ignoreMissingDepsArray contains "1" and if so, replace it with - # "*", printing a deprecation warning. - for dep in "${ignoreMissingDepsArray[@]}"; do - if [ "$dep" == "1" ]; then - echo "autoPatchelf: WARNING: setting 'autoPatchelfIgnoreMissingDeps" \ - "= true;' is deprecated and will be removed in a future release." \ - "Use 'autoPatchelfIgnoreMissingDeps = [ \"*\" ];' instead." >&2 - ignoreMissingDepsArray=( "*" ) - break - fi - done - - @pythonInterpreter@ @autoPatchelfScript@ \ - ${norecurse:+--no-recurse} \ - --ignore-missing "${ignoreMissingDepsArray[@]}" \ - --paths "$@" \ - --libs "${autoPatchelfLibs[@]}" \ - "${extraAutoPatchelfLibs[@]}" \ - --runtime-dependencies "${runtimeDependenciesArray[@]/%//lib}" \ - --append-rpaths "${appendRunpathsArray[@]}" \ - --extra-args "${patchelfFlagsArray[@]}" -} - -autoPatchelfPostFixup() { - # XXX: This should ultimately use fixupOutputHooks but we currently don't have - # a way to enforce the order. If we have $runtimeDependencies set, the setup - # hook of patchelf is going to ruin everything and strip out those additional - # RPATHs. - # - # So what we do here is basically run in postFixup and emulate the same - # behaviour as fixupOutputHooks because the setup hook for patchelf is run in - # fixupOutput and the postFixup hook runs later. - if [[ -z "${dontAutoPatchelf-}" ]]; then - autoPatchelf -- $(for output in $(getAllOutputNames); do - [ -e "${!output}" ] || continue - echo "${!output}" - done) - fi -} - -postFixupHooks+=(autoPatchelfPostFixup) diff --git a/pkgs/build-support/setup-hooks/autoreconf.sh b/pkgs/build-support/setup-hooks/autoreconf.sh deleted file mode 100644 index 6ce879a..0000000 --- a/pkgs/build-support/setup-hooks/autoreconf.sh +++ /dev/null @@ -1,7 +0,0 @@ -preConfigurePhases="${preConfigurePhases:-} autoreconfPhase" - -autoreconfPhase() { - runHook preAutoreconf - autoreconf ${autoreconfFlags:---install --force --verbose} - runHook postAutoreconf -} diff --git a/pkgs/build-support/setup-hooks/breakpoint-hook.sh b/pkgs/build-support/setup-hooks/breakpoint-hook.sh deleted file mode 100644 index 6bef786..0000000 --- a/pkgs/build-support/setup-hooks/breakpoint-hook.sh +++ /dev/null @@ -1,9 +0,0 @@ -breakpointHook() { - local red='\033[0;31m' - local no_color='\033[0m' - - echo -e "${red}build failed in ${curPhase} with exit code ${exitCode}${no_color}" - printf "To attach install cntr and run the following command as root:\n\n" - sh -c "echo ' cntr attach -t command cntr-${out}'; while true; do sleep 99999999; done" -} -failureHooks+=(breakpointHook) diff --git a/pkgs/build-support/setup-hooks/compress-man-pages.sh b/pkgs/build-support/setup-hooks/compress-man-pages.sh deleted file mode 100644 index 0d8a765..0000000 --- a/pkgs/build-support/setup-hooks/compress-man-pages.sh +++ /dev/null @@ -1,33 +0,0 @@ -fixupOutputHooks+=('if [ -z "${dontGzipMan-}" ]; then compressManPages "$prefix"; fi') - -compressManPages() { - local dir="$1" - - if [ -L "$dir"/share ] || [ -L "$dir"/share/man ] || [ ! -d "$dir/share/man" ] - then return - fi - echo "gzipping man pages under $dir/share/man/" - - # Compress all uncompressed manpages. Don't follow symlinks, etc. - find "$dir"/share/man/ -type f -a '!' -regex '.*\.\(bz2\|gz\|xz\)$' -print0 \ - | while IFS= read -r -d $'\0' f - do - if gzip -c -n "$f" > "$f".gz; then - rm "$f" - else - rm "$f".gz - fi - done - - # Point symlinks to compressed manpages. - find "$dir"/share/man/ -type l -a '!' -regex '.*\.\(bz2\|gz\|xz\)$' -print0 \ - | sort -z \ - | while IFS= read -r -d $'\0' f - do - local target - target="$(readlink -f "$f")" - if [ -f "$target".gz ]; then - ln -sf "$target".gz "$f".gz && rm "$f" - fi - done -} diff --git a/pkgs/build-support/setup-hooks/copy-desktop-items.sh b/pkgs/build-support/setup-hooks/copy-desktop-items.sh deleted file mode 100644 index 313ebc9..0000000 --- a/pkgs/build-support/setup-hooks/copy-desktop-items.sh +++ /dev/null @@ -1,43 +0,0 @@ -# shellcheck shell=bash - -# Setup hook that installs specified desktop items. -# -# Example usage in a derivation: -# -# { …, makeDesktopItem, copyDesktopItems, … }: -# -# let desktopItem = makeDesktopItem { … }; in -# stdenv.mkDerivation { -# … -# nativeBuildInputs = [ copyDesktopItems ]; -# -# desktopItems = [ desktopItem ]; -# … -# } -# -# This hook will copy files which are either given by full path -# or all '*.desktop' files placed inside the 'share/applications' -# folder of each `desktopItems` argument. - -postInstallHooks+=(copyDesktopItems) - -copyDesktopItems() { - if [ "${dontCopyDesktopItems-}" = 1 ]; then return; fi - - if [ -z "$desktopItems" ]; then - return - fi - - applications="${!outputBin}/share/applications" - for desktopItem in $desktopItems; do - if [[ -f "$desktopItem" ]]; then - echo "Copying '$desktopItem' into '${applications}'" - install -D -m 444 -t "${applications}" "$desktopItem" - else - for f in "$desktopItem"/share/applications/*.desktop; do - echo "Copying '$f' into '${applications}'" - install -D -m 444 -t "${applications}" "$f" - done - fi - done -} diff --git a/pkgs/build-support/setup-hooks/copy-pkgconfig-items.sh b/pkgs/build-support/setup-hooks/copy-pkgconfig-items.sh deleted file mode 100644 index 8c04ec9..0000000 --- a/pkgs/build-support/setup-hooks/copy-pkgconfig-items.sh +++ /dev/null @@ -1,46 +0,0 @@ -# shellcheck shell=bash - -# Setup hook that installs specified pkgconfig items. -# -# Example usage in a derivation: -# -# { …, makePkgconfigItem, copyPkgconfigItems, … }: -# -# let pkgconfigItem = makePkgconfigItem { … }; in -# stdenv.mkDerivation { -# … -# nativeBuildInputs = [ copyPkgconfigItems ]; -# -# pkgconfigItems = [ pkgconfigItem ]; -# … -# } -# -# This hook will copy files which are either given by full path -# or all '*.pc' files placed inside the 'lib/pkgconfig' -# folder of each `pkgconfigItems` argument. - -postInstallHooks+=(copyPkgconfigItems) - -copyPkgconfigItems() { - if [ "${dontCopyPkgconfigItems-}" = 1 ]; then return; fi - - if [ -z "$pkgconfigItems" ]; then - return - fi - - pkgconfigdir="${!outputDev}/lib/pkgconfig" - for pkgconfigItem in $pkgconfigItems; do - if [[ -f "$pkgconfigItem" ]]; then - substituteAllInPlace "$pkgconfigItem" - echo "Copying '$pkgconfigItem' into '${pkgconfigdir}'" - install -D -m 444 -t "${pkgconfigdir}" "$pkgconfigItem" - substituteAllInPlace "${pkgconfigdir}"/* - else - for f in "$pkgconfigItem"/lib/pkgconfig/*.pc; do - echo "Copying '$f' into '${pkgconfigdir}'" - install -D -m 444 -t "${pkgconfigdir}" "$f" - substituteAllInPlace "${pkgconfigdir}"/* - done - fi - done -} diff --git a/pkgs/build-support/setup-hooks/desktop-to-darwin-bundle.sh b/pkgs/build-support/setup-hooks/desktop-to-darwin-bundle.sh deleted file mode 100644 index 5b38f43..0000000 --- a/pkgs/build-support/setup-hooks/desktop-to-darwin-bundle.sh +++ /dev/null @@ -1,245 +0,0 @@ -# shellcheck shell=bash -fixupOutputHooks+=('convertDesktopFiles $prefix') - -# Get a param out of a desktop file. First parameter is the file and the second -# is the key who's value we should fetch. -getDesktopParam() { - local file="$1" - local key="$2" - local line k v - - while read -r line; do - if [[ "$line" = *=* ]]; then - k="${line%%=*}" - v="${line#*=}" - - if [[ "$k" = "$key" ]]; then - echo "$v" - return - fi - fi - done < "$file" - - return 1 -} - -# Convert a freedesktop.org icon theme for a given app to a .icns file. When possible, missing -# icons are synthesized from SVG or rescaled from existing ones (when within the size threshold). -convertIconTheme() { - local -r out=$1 - local -r sharePath=$2 - local -r iconName=$3 - local -r theme=${4:-hicolor} - - # Sizes based on archived Apple documentation: - # https://developer.apple.com/design/human-interface-guidelines/macos/icons-and-images/app-icon#app-icon-sizes - local -ra iconSizes=(16 32 128 256 512) - local -ra scales=([1]="" [2]="@2") - - # Based loosely on the algorithm at: - # https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html#icon_lookup - # Assumes threshold = 2 for ease of implementation. - function findIcon() { - local -r iconSize=$1 - local -r scale=$2 - - local scaleSuffix=${scales[$scale]} - local exactSize=${iconSize}x${iconSize}${scaleSuffix} - - local -a validSizes=( - ${exactSize} - $((iconSize + 1))x$((iconSize + 1))${scaleSuffix} - $((iconSize + 2))x$((iconSize + 2))${scaleSuffix} - $((iconSize - 1))x$((iconSize - 1))${scaleSuffix} - $((iconSize - 2))x$((iconSize - 2))${scaleSuffix} - ) - - local fallbackIcon= - - for iconIndex in "${!candidateIcons[@]}"; do - for maybeSize in "${validSizes[@]}"; do - icon=${candidateIcons[$iconIndex]} - if [[ $icon = */$maybeSize/* ]]; then - if [[ $maybeSize = $exactSize ]]; then - echo "fixed $icon" - return 0 - else - echo "threshold $icon" - return 0 - fi - elif [[ -a $icon && -z "$fallbackIcon" ]]; then - fallbackIcon="$icon" - fi - done - done - - if [[ -n "$fallbackIcon" ]]; then - echo "fallback $fallbackIcon" - return 0 - fi - - echo "scalable" - } - - function resizeIcon() { - local -r in=$1 - local -r out=$2 - local -r iconSize=$3 - local -r scale=$4 - - local density=$((72 * scale))x$((72 * scale)) - local dim=$((iconSize * scale)) - - echo "desktopToDarwinBundle: resizing icon $in to $out, size $dim" >&2 - magick convert -scale "${dim}x${dim}" -density "$density" -units PixelsPerInch "$in" "$out" - } - - function synthesizeIcon() { - local -r in=$1 - local -r out=$2 - local -r iconSize=$3 - local -r scale=$4 - - if [[ $in != '-' ]]; then - local density=$((72 * scale))x$((72 * scale)) - local dim=$((iconSize * scale)) - - echo "desktopToDarwinBundle: rasterizing svg $in to $out, size $dim" >&2 - rsvg-convert --keep-aspect-ratio --width "$dim" --height "$dim" "$in" --output "$out" - magick convert -density "$density" -units PixelsPerInch "$out" "$out" - else - return 1 - fi - } - - function getIcons() { - local -r sharePath=$1 - local -r iconname=$2 - local -r theme=$3 - local -r resultdir=$(mktemp -d) - - local -ar candidateIcons=( - "${sharePath}/icons/${theme}/"*"/${iconname}.png" - "${sharePath}/icons/${theme}/"*"/${iconname}.xpm" - ) - - local -a scalableIcon=("${sharePath}/icons/${theme}/scalable/${iconname}.svg"*) - if [[ ${#scalableIcon[@]} = 0 ]]; then - scalableIcon=('-') - fi - - # Tri-state variable, NONE means no icons have been found, an empty - # icns file will be generated, not sure that's necessary because macOS - # will default to a generic icon if no icon can be found. - # - # OTHER means an appropriate icon was found. - # - # Any other value is a path to an icon file that isn't scalable or - # within the threshold. This is used as a fallback in case no better - # icon can be found and will be scaled as much as - # necessary to result in appropriate icon sizes. - local foundIcon=NONE - for iconSize in "${iconSizes[@]}"; do - for scale in "${!scales[@]}"; do - local iconResult=$(findIcon $iconSize $scale) - local type=${iconResult%% *} - local icon=${iconResult#* } - local scaleSuffix=${scales[$scale]} - local result=${resultdir}/${iconSize}x${iconSize}${scales[$scale]}${scaleSuffix:+x}.png - echo "desktopToDarwinBundle: using $type icon $icon for size $iconSize$scaleSuffix" >&2 - case $type in - fixed) - local density=$((72 * scale))x$((72 * scale)) - magick convert -density "$density" -units PixelsPerInch "$icon" "$result" - foundIcon=OTHER - ;; - threshold) - # Synthesize an icon of the exact size if a scalable icon is available - # instead of scaling one and ending up with a fuzzy icon. - if ! synthesizeIcon "${scalableIcon[0]}" "$result" "$iconSize" "$scale"; then - resizeIcon "$icon" "$result" "$iconSize" "$scale" - fi - foundIcon=OTHER - ;; - scalable) - synthesizeIcon "${scalableIcon[0]}" "$result" "$iconSize" "$scale" || true - foundIcon=OTHER - ;; - fallback) - # Use the largest size available to scale to - # appropriate sizes. - if [[ $foundIcon != OTHER ]]; then - foundIcon=$icon - fi - ;; - *) - ;; - esac - done - done - if [[ $foundIcon != NONE && $foundIcon != OTHER ]]; then - # Ideally we'd only resize to whatever the closest sizes are, - # starting from whatever icon sizes are available. - for iconSize in 16 32 128 256 512; do - local result=${resultdir}/${iconSize}x${iconSize}.png - resizeIcon "$foundIcon" "$result" "$iconSize" 1 - done - fi - echo "$resultdir" - } - - iconsdir=$(getIcons "$sharePath" "apps/${iconName}" "$theme") - if [[ -n "$(ls -A1 "$iconsdir")" ]]; then - icnsutil compose --toc "$out/${iconName}.icns" "$iconsdir/"* - else - echo "Warning: no icons were found. Creating an empty icon for ${iconName}.icns." - touch "$out/${iconName}.icns" - fi -} - -processExecFieldCodes() { - local -r file=$1 - local -r execRaw=$(getDesktopParam "${file}" "Exec") - local -r execNoK="${execRaw/\%k/${file}}" - local -r execNoKC="${execNoK/\%c/$(getDesktopParam "${file}" "Name")}" - local -r icon=$(getDesktopParam "${file}" "Icon") - local -r execNoKCI="${execNoKC/\%i/${icon:+--icon }${icon}}" - local -r execNoKCIfu="${execNoKCI/ \%[fu]/}" - local -r exec="${execNoKCIfu/ \%[FU]/}" - if [[ "$exec" != "$execRaw" ]]; then - echo 1>&2 "desktopToDarwinBundle: Application bundles do not understand desktop entry field codes. Changed '$execRaw' to '$exec'." - fi - echo "$exec" -} - -# For a given .desktop file, generate a darwin '.app' bundle for it. -convertDesktopFile() { - local -r file=$1 - local -r sharePath=$(dirname "$(dirname "$file")") - local -r name=$(getDesktopParam "${file}" "Name") - local -r macOSExec=$(getDesktopParam "${file}" "X-macOS-Exec") - if [[ "$macOSExec" ]]; then - local -r exec="$macOSExec" - else - local -r exec=$(processExecFieldCodes "${file}") - fi - local -r iconName=$(getDesktopParam "${file}" "Icon") - local -r squircle=$(getDesktopParam "${file}" "X-macOS-SquircleIcon") - - mkdir -p "${!outputBin}/Applications/${name}.app/Contents/MacOS" - mkdir -p "${!outputBin}/Applications/${name}.app/Contents/Resources" - - convertIconTheme "${!outputBin}/Applications/${name}.app/Contents/Resources" "$sharePath" "$iconName" - - write-darwin-bundle "${!outputBin}" "$name" "$exec" "$iconName" "$squircle" -} - -convertDesktopFiles() { - local dir="$1/share/applications/" - - if [ -d "${dir}" ]; then - for desktopFile in $(find "$dir" -iname "*.desktop"); do - convertDesktopFile "$desktopFile"; - done - fi -} diff --git a/pkgs/build-support/setup-hooks/die.sh b/pkgs/build-support/setup-hooks/die.sh deleted file mode 100644 index 0db41e0..0000000 --- a/pkgs/build-support/setup-hooks/die.sh +++ /dev/null @@ -1,21 +0,0 @@ -# Exit with backtrace and error message -# -# Usage: die "Error message" -die() { - # Let us be a little sloppy with errors, because otherwise the final - # invocation of `caller` below will cause the script to exit. - set +e - - # Print our error message - printf "\nBuilder called die: %b\n" "$*" - printf "Backtrace:\n" - - # Print a backtrace. - local frame=0 - while caller $frame; do - ((frame++)); - done - printf "\n" - - exit 1 -} diff --git a/pkgs/build-support/setup-hooks/enable-coverage-instrumentation.sh b/pkgs/build-support/setup-hooks/enable-coverage-instrumentation.sh deleted file mode 100644 index 2b48fea..0000000 --- a/pkgs/build-support/setup-hooks/enable-coverage-instrumentation.sh +++ /dev/null @@ -1,20 +0,0 @@ -postPhases+=" cleanupBuildDir" - -# Force GCC to build with coverage instrumentation. Also disable -# optimisation, since it may confuse things. -export NIX_CFLAGS_COMPILE="${NIX_CFLAGS_COMPILE:-} -O0 --coverage" - -# Get rid of everything that isn't a gcno file or a C source file. -# Also strip the `.tmp_' prefix from gcno files. (The Linux kernel -# creates these.) -cleanupBuildDir() { - if ! [ -e $out/.build ]; then return; fi - - find $out/.build/ -type f -a ! \ - \( -name "*.c" -o -name "*.cc" -o -name "*.cpp" -o -name "*.h" -o -name "*.hh" -o -name "*.y" -o -name "*.l" -o -name "*.gcno" \) \ - | xargs rm -f -- - - for i in $(find $out/.build/ -name ".tmp_*.gcno"); do - mv "$i" "$(echo $i | sed s/.tmp_//)" - done -} diff --git a/pkgs/build-support/setup-hooks/find-xml-catalogs.sh b/pkgs/build-support/setup-hooks/find-xml-catalogs.sh deleted file mode 100644 index f446a6f..0000000 --- a/pkgs/build-support/setup-hooks/find-xml-catalogs.sh +++ /dev/null @@ -1,22 +0,0 @@ -addXMLCatalogs () { - local d i - # ‘xml/dtd’ and ‘xml/xsl’ are deprecated. Catalogs should be - # installed underneath ‘share/xml’. - for d in $1/share/xml $1/xml/dtd $1/xml/xsl; do - if [ -d $d ]; then - for i in $(find $d -name catalog.xml); do - XML_CATALOG_FILES+=" $i" - done - fi - done -} - -if [ -z "${libxmlHookDone-}" ]; then - libxmlHookDone=1 - - # Set up XML_CATALOG_FILES. An empty initial value prevents - # xmllint and xsltproc from looking in /etc/xml/catalog. - export XML_CATALOG_FILES='' - if [ -z "$XML_CATALOG_FILES" ]; then XML_CATALOG_FILES=" "; fi - addEnvHooks "$hostOffset" addXMLCatalogs -fi diff --git a/pkgs/build-support/setup-hooks/fix-darwin-dylib-names.sh b/pkgs/build-support/setup-hooks/fix-darwin-dylib-names.sh deleted file mode 100644 index e103fe7..0000000 --- a/pkgs/build-support/setup-hooks/fix-darwin-dylib-names.sh +++ /dev/null @@ -1,40 +0,0 @@ -# On macOS, binaries refer to dynamic library dependencies using -# either relative paths (e.g. "libicudata.dylib", searched relative to -# $DYLD_LIBRARY_PATH) or absolute paths -# (e.g. "/nix/store/.../lib/libicudata.dylib"). In Nix, the latter is -# preferred since it allows programs to just work. When linking -# against a library (e.g. "-licudata"), the linker uses the install -# name embedded in the dylib (which can be shown using "otool -D"). -# Most packages create dylibs with absolute install names, but some do -# not. This setup hook fixes dylibs by setting their install names to -# their absolute path (using "install_name_tool -id"). It also -# rewrites references in other dylibs to absolute paths. - -fixupOutputHooks+=('fixDarwinDylibNamesIn $prefix') - -fixDarwinDylibNames() { - local flags=() - local old_id - - for fn in "$@"; do - flags+=(-change "$(basename "$fn")" "$fn") - done - - for fn in "$@"; do - if [ -L "$fn" ]; then continue; fi - echo "$fn: fixing dylib" - int_out=$(@targetPrefix@install_name_tool -id "$fn" "${flags[@]}" "$fn" 2>&1) - result=$? - if [ "$result" -ne 0 ] && - ! grep "shared library stub file and can't be changed" <<< "$out" - then - echo "$int_out" >&2 - exit "$result" - fi - done -} - -fixDarwinDylibNamesIn() { - local dir="$1" - fixDarwinDylibNames $(find "$dir" -name "*.dylib" -o -name "*.so" -o -name "*.so.*") -} diff --git a/pkgs/build-support/setup-hooks/gog-unpack.sh b/pkgs/build-support/setup-hooks/gog-unpack.sh deleted file mode 100644 index 559b543..0000000 --- a/pkgs/build-support/setup-hooks/gog-unpack.sh +++ /dev/null @@ -1,11 +0,0 @@ -unpackPhase="unpackGog" - -unpackGog() { - runHook preUnpackGog - - innoextract --silent --extract --exclude-temp "${src}" - - find . -depth -print -execdir rename -f 'y/A-Z/a-z/' '{}' \; - - runHook postUnpackGog -} diff --git a/pkgs/build-support/setup-hooks/install-shell-files.sh b/pkgs/build-support/setup-hooks/install-shell-files.sh deleted file mode 100644 index 194b408..0000000 --- a/pkgs/build-support/setup-hooks/install-shell-files.sh +++ /dev/null @@ -1,230 +0,0 @@ -# shellcheck shell=bash -# Setup hook for the `installShellFiles` package. -# -# Example usage in a derivation: -# -# { …, installShellFiles, … }: -# stdenv.mkDerivation { -# … -# nativeBuildInputs = [ installShellFiles ]; -# postInstall = '' -# installManPage share/doc/foobar.1 -# installShellCompletion share/completions/foobar.{bash,fish,zsh} -# ''; -# … -# } -# -# See comments on each function for more details. - -# installManPage [...] -# -# Each argument is checked for its man section suffix and installed into the appropriate -# share/man/man/ directory. The function returns an error if any paths don't have the man -# section suffix (with optional .gz compression). -installManPage() { - local path - for path in "$@"; do - if (( "${NIX_DEBUG:-0}" >= 1 )); then - echo "installManPage: installing $path" - fi - if test -z "$path"; then - echo "installManPage: error: path cannot be empty" >&2 - return 1 - fi - local basename - basename=$(stripHash "$path") # use stripHash in case it's a nix store path - local trimmed=${basename%.gz} # don't get fooled by compressed manpages - local suffix=${trimmed##*.} - if test -z "$suffix" -o "$suffix" = "$trimmed"; then - echo "installManPage: error: path missing manpage section suffix: $path" >&2 - return 1 - fi - local outRoot - if test "$suffix" = 3; then - outRoot=${!outputDevman:?} - else - outRoot=${!outputMan:?} - fi - install -Dm644 -T "$path" "${outRoot}/share/man/man$suffix/$basename" || return - done -} - -# installShellCompletion [--cmd ] ([--bash|--fish|--zsh] [--name ] )... -# -# Each path is installed into the appropriate directory for shell completions for the given shell. -# If one of `--bash`, `--fish`, or `--zsh` is given the path is assumed to belong to that shell. -# Otherwise the file extension will be examined to pick a shell. If the shell is unknown a warning -# will be logged and the command will return a non-zero status code after processing any remaining -# paths. Any of the shell flags will affect all subsequent paths (unless another shell flag is -# given). -# -# If the shell completion needs to be renamed before installing the optional `--name ` flag -# may be given. Any name provided with this flag only applies to the next path. -# -# If all shell completions need to be renamed before installing the optional `--cmd ` flag -# may be given. This will synthesize a name for each file, unless overridden with an explicit -# `--name` flag. For example, `--cmd foobar` will synthesize the name `_foobar` for zsh and -# `foobar.bash` for bash. -# -# For zsh completions, if the `--name` flag is not given, the path will be automatically renamed -# such that `foobar.zsh` becomes `_foobar`. -# -# A path may be a named fd, such as produced by the bash construct `<(cmd)`. When using a named fd, -# the shell type flag must be provided, and either the `--name` or `--cmd` flag must be provided. -# This might look something like: -# -# installShellCompletion --zsh --name _foobar <($out/bin/foobar --zsh-completion) -# -# This command accepts multiple shell flags in conjunction with multiple paths if you wish to -# install them all in one command: -# -# installShellCompletion share/completions/foobar.{bash,fish} --zsh share/completions/_foobar -# -# However it may be easier to read if each shell is split into its own invocation, especially when -# renaming is involved: -# -# installShellCompletion --bash --name foobar.bash share/completions.bash -# installShellCompletion --fish --name foobar.fish share/completions.fish -# installShellCompletion --zsh --name _foobar share/completions.zsh -# -# Or to use shell newline escaping to split a single invocation across multiple lines: -# -# installShellCompletion --cmd foobar \ -# --bash <($out/bin/foobar --bash-completion) \ -# --fish <($out/bin/foobar --fish-completion) \ -# --zsh <($out/bin/foobar --zsh-completion) -# -# If any argument is `--` the remaining arguments will be treated as paths. -installShellCompletion() { - local shell='' name='' cmdname='' retval=0 parseArgs=1 arg - while { arg=$1; shift; }; do - # Parse arguments - if (( parseArgs )); then - case "$arg" in - --bash|--fish|--zsh) - shell=${arg#--} - continue;; - --name) - name=$1 - shift || { - echo 'installShellCompletion: error: --name flag expected an argument' >&2 - return 1 - } - continue;; - --name=*) - # treat `--name=foo` the same as `--name foo` - name=${arg#--name=} - continue;; - --cmd) - cmdname=$1 - shift || { - echo 'installShellCompletion: error: --cmd flag expected an argument' >&2 - return 1 - } - continue;; - --cmd=*) - # treat `--cmd=foo` the same as `--cmd foo` - cmdname=${arg#--cmd=} - continue;; - --?*) - echo "installShellCompletion: warning: unknown flag ${arg%%=*}" >&2 - retval=2 - continue;; - --) - # treat remaining args as paths - parseArgs=0 - continue;; - esac - fi - if (( "${NIX_DEBUG:-0}" >= 1 )); then - echo "installShellCompletion: installing $arg${name:+ as $name}" - fi - # if we get here, this is a path or named pipe - # Identify shell and output name - local curShell=$shell - local outName='' - if [[ -z "$arg" ]]; then - echo "installShellCompletion: error: empty path is not allowed" >&2 - return 1 - elif [[ -p "$arg" ]]; then - # this is a named fd or fifo - if [[ -z "$curShell" ]]; then - echo "installShellCompletion: error: named pipe requires one of --bash, --fish, or --zsh" >&2 - return 1 - elif [[ -z "$name" && -z "$cmdname" ]]; then - echo "installShellCompletion: error: named pipe requires one of --cmd or --name" >&2 - return 1 - fi - else - # this is a path - local argbase - argbase=$(stripHash "$arg") - if [[ -z "$curShell" ]]; then - # auto-detect the shell - case "$argbase" in - ?*.bash) curShell=bash;; - ?*.fish) curShell=fish;; - ?*.zsh) curShell=zsh;; - *) - if [[ "$argbase" = _* && "$argbase" != *.* ]]; then - # probably zsh - echo "installShellCompletion: warning: assuming path \`$arg' is zsh; please specify with --zsh" >&2 - curShell=zsh - else - echo "installShellCompletion: warning: unknown shell for path: $arg" >&2 - retval=2 - continue - fi;; - esac - fi - outName=$argbase - fi - # Identify output path - if [[ -n "$name" ]]; then - outName=$name - elif [[ -n "$cmdname" ]]; then - case "$curShell" in - bash|fish) outName=$cmdname.$curShell;; - zsh) outName=_$cmdname;; - *) - # Our list of shells is out of sync with the flags we accept or extensions we detect. - echo 'installShellCompletion: internal error' >&2 - return 1;; - esac - fi - local sharePath - case "$curShell" in - bash) sharePath=bash-completion/completions;; - fish) sharePath=fish/vendor_completions.d;; - zsh) - sharePath=zsh/site-functions - # only apply automatic renaming if we didn't have a manual rename - if [[ -z "$name" && -z "$cmdname" ]]; then - # convert a name like `foo.zsh` into `_foo` - outName=${outName%.zsh} - outName=_${outName#_} - fi;; - *) - # Our list of shells is out of sync with the flags we accept or extensions we detect. - echo 'installShellCompletion: internal error' >&2 - return 1;; - esac - # Install file - local outDir="${!outputBin:?}/share/$sharePath" - local outPath="$outDir/$outName" - if [[ -p "$arg" ]]; then - # install handles named pipes on NixOS but not on macOS - mkdir -p "$outDir" \ - && cat "$arg" > "$outPath" - else - install -Dm644 -T "$arg" "$outPath" - fi || return - # Clear the per-path flags - name= - done - if [[ -n "$name" ]]; then - echo 'installShellCompletion: error: --name flag given with no path' >&2 - return 1 - fi - return $retval -} diff --git a/pkgs/build-support/setup-hooks/keep-build-tree.sh b/pkgs/build-support/setup-hooks/keep-build-tree.sh deleted file mode 100644 index 754900b..0000000 --- a/pkgs/build-support/setup-hooks/keep-build-tree.sh +++ /dev/null @@ -1,6 +0,0 @@ -prePhases+=" moveBuildDir" - -moveBuildDir() { - mkdir -p $out/.build - cd $out/.build -} diff --git a/pkgs/build-support/setup-hooks/ld-is-cc-hook.sh b/pkgs/build-support/setup-hooks/ld-is-cc-hook.sh deleted file mode 100644 index b53e184..0000000 --- a/pkgs/build-support/setup-hooks/ld-is-cc-hook.sh +++ /dev/null @@ -1,5 +0,0 @@ -ld-is-cc-hook() { - LD=$CC -} - -preConfigureHooks+=(ld-is-cc-hook) diff --git a/pkgs/build-support/setup-hooks/make-binary-wrapper/default.nix b/pkgs/build-support/setup-hooks/make-binary-wrapper/default.nix deleted file mode 100644 index f364dd5..0000000 --- a/pkgs/build-support/setup-hooks/make-binary-wrapper/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ targetPackages -, lib -, makeSetupHook -, dieHook -, writeShellScript -, tests -, cc ? targetPackages.stdenv.cc -, sanitizers ? [] -}: - -makeSetupHook { - name = "make-binary-wrapper-hook"; - propagatedBuildInputs = [ dieHook ]; - - substitutions = { - cc = "${cc}/bin/${cc.targetPrefix}cc ${lib.escapeShellArgs (map (s: "-fsanitize=${s}") sanitizers)}"; - }; - - passthru = { - # Extract the function call used to create a binary wrapper from its embedded docstring - extractCmd = writeShellScript "extract-binary-wrapper-cmd" '' - ${cc.bintools.targetPrefix}strings -dw "$1" | sed -n '/^makeCWrapper/,/^$/ p' - ''; - - tests = tests.makeBinaryWrapper; - }; -} ./make-binary-wrapper.sh diff --git a/pkgs/build-support/setup-hooks/make-binary-wrapper/make-binary-wrapper.sh b/pkgs/build-support/setup-hooks/make-binary-wrapper/make-binary-wrapper.sh deleted file mode 100644 index 3948342..0000000 --- a/pkgs/build-support/setup-hooks/make-binary-wrapper/make-binary-wrapper.sh +++ /dev/null @@ -1,471 +0,0 @@ - -set -euo pipefail - -# Assert that FILE exists and is executable -# -# assertExecutable FILE -assertExecutable() { - local file="$1" - [[ -f "$file" && -x "$file" ]] || \ - die "Cannot wrap '$file' because it is not an executable file" -} - -# Generate a binary executable wrapper for wrapping an executable. -# The binary is compiled from generated C-code using gcc. -# makeWrapper EXECUTABLE OUT_PATH ARGS - -# ARGS: -# --argv0 NAME : set the name of the executed process to NAME -# (if unset or empty, defaults to EXECUTABLE) -# --inherit-argv0 : the executable inherits argv0 from the wrapper. -# (use instead of --argv0 '$0') -# --resolve-argv0 : if argv0 doesn't include a / character, resolve it against PATH -# --set VAR VAL : add VAR with value VAL to the executable's environment -# --set-default VAR VAL : like --set, but only adds VAR if not already set in -# the environment -# --unset VAR : remove VAR from the environment -# --chdir DIR : change working directory (use instead of --run "cd DIR") -# --add-flags ARGS : prepend ARGS to the invocation of the executable -# (that is, *before* any arguments passed on the command line) -# --append-flags ARGS : append ARGS to the invocation of the executable -# (that is, *after* any arguments passed on the command line) - -# --prefix ENV SEP VAL : suffix/prefix ENV with VAL, separated by SEP -# --suffix - -# To troubleshoot a binary wrapper after you compiled it, -# use the `strings` command or open the binary file in a text editor. -makeWrapper() { makeBinaryWrapper "$@"; } -makeBinaryWrapper() { - local NIX_CFLAGS_COMPILE= NIX_CFLAGS_LINK= - local original="$1" - local wrapper="$2" - shift 2 - - assertExecutable "$original" - - mkdir -p "$(dirname "$wrapper")" - - makeDocumentedCWrapper "$original" "$@" | \ - @cc@ \ - -Wall -Werror -Wpedantic \ - -Wno-overlength-strings \ - -Os \ - -x c \ - -o "$wrapper" - -} - -# Syntax: wrapProgram -wrapProgram() { wrapProgramBinary "$@"; } -wrapProgramBinary() { - local prog="$1" - local hidden - - assertExecutable "$prog" - - hidden="$(dirname "$prog")/.$(basename "$prog")"-wrapped - while [ -e "$hidden" ]; do - hidden="${hidden}_" - done - mv "$prog" "$hidden" - makeBinaryWrapper "$hidden" "$prog" --inherit-argv0 "${@:2}" -} - -# Generate source code for the wrapper in such a way that the wrapper inputs -# will still be readable even after compilation -# makeDocumentedCWrapper EXECUTABLE ARGS -# ARGS: same as makeWrapper -makeDocumentedCWrapper() { - local src docs - src=$(makeCWrapper "$@") - docs=$(docstring "$@") - printf '%s\n\n' "$src" - printf '%s\n' "$docs" -} - -# makeCWrapper EXECUTABLE ARGS -# ARGS: same as makeWrapper -makeCWrapper() { - local argv0 inherit_argv0 n params cmd main flagsBefore flagsAfter flags executable length - local uses_prefix uses_suffix uses_assert uses_assert_success uses_stdio uses_asprintf - local resolve_path - executable=$(escapeStringLiteral "$1") - params=("$@") - length=${#params[*]} - for ((n = 1; n < length; n += 1)); do - p="${params[n]}" - case $p in - --set) - cmd=$(setEnv "${params[n + 1]}" "${params[n + 2]}") - main="$main$cmd"$'\n' - n=$((n + 2)) - [ $n -ge "$length" ] && main="$main#error makeCWrapper: $p takes 2 arguments"$'\n' - ;; - --set-default) - cmd=$(setDefaultEnv "${params[n + 1]}" "${params[n + 2]}") - main="$main$cmd"$'\n' - uses_stdio=1 - uses_assert_success=1 - n=$((n + 2)) - [ $n -ge "$length" ] && main="$main#error makeCWrapper: $p takes 2 arguments"$'\n' - ;; - --unset) - cmd=$(unsetEnv "${params[n + 1]}") - main="$main$cmd"$'\n' - uses_stdio=1 - uses_assert_success=1 - n=$((n + 1)) - [ $n -ge "$length" ] && main="$main#error makeCWrapper: $p takes 1 argument"$'\n' - ;; - --prefix) - cmd=$(setEnvPrefix "${params[n + 1]}" "${params[n + 2]}" "${params[n + 3]}") - main="$main$cmd"$'\n' - uses_prefix=1 - uses_asprintf=1 - uses_stdio=1 - uses_assert_success=1 - uses_assert=1 - n=$((n + 3)) - [ $n -ge "$length" ] && main="$main#error makeCWrapper: $p takes 3 arguments"$'\n' - ;; - --suffix) - cmd=$(setEnvSuffix "${params[n + 1]}" "${params[n + 2]}" "${params[n + 3]}") - main="$main$cmd"$'\n' - uses_suffix=1 - uses_asprintf=1 - uses_stdio=1 - uses_assert_success=1 - uses_assert=1 - n=$((n + 3)) - [ $n -ge "$length" ] && main="$main#error makeCWrapper: $p takes 3 arguments"$'\n' - ;; - --chdir) - cmd=$(changeDir "${params[n + 1]}") - main="$main$cmd"$'\n' - uses_stdio=1 - uses_assert_success=1 - n=$((n + 1)) - [ $n -ge "$length" ] && main="$main#error makeCWrapper: $p takes 1 argument"$'\n' - ;; - --add-flags) - flags="${params[n + 1]}" - flagsBefore="$flagsBefore $flags" - uses_assert=1 - n=$((n + 1)) - [ $n -ge "$length" ] && main="$main#error makeCWrapper: $p takes 1 argument"$'\n' - ;; - --append-flags) - flags="${params[n + 1]}" - flagsAfter="$flagsAfter $flags" - uses_assert=1 - n=$((n + 1)) - [ $n -ge "$length" ] && main="$main#error makeCWrapper: $p takes 1 argument"$'\n' - ;; - --argv0) - argv0=$(escapeStringLiteral "${params[n + 1]}") - inherit_argv0= - n=$((n + 1)) - [ $n -ge "$length" ] && main="$main#error makeCWrapper: $p takes 1 argument"$'\n' - ;; - --inherit-argv0) - # Whichever comes last of --argv0 and --inherit-argv0 wins - inherit_argv0=1 - ;; - --resolve-argv0) - # this gets processed after other argv0 flags - uses_stdio=1 - uses_string=1 - resolve_argv0=1 - ;; - *) # Using an error macro, we will make sure the compiler gives an understandable error message - main="$main#error makeCWrapper: Unknown argument ${p}"$'\n' - ;; - esac - done - [[ -z "$flagsBefore" && -z "$flagsAfter" ]] || main="$main"${main:+$'\n'}$(addFlags "$flagsBefore" "$flagsAfter")$'\n'$'\n' - [ -z "$inherit_argv0" ] && main="${main}argv[0] = \"${argv0:-${executable}}\";"$'\n' - [ -z "$resolve_argv0" ] || main="${main}argv[0] = resolve_argv0(argv[0]);"$'\n' - main="${main}return execv(\"${executable}\", argv);"$'\n' - - [ -z "$uses_asprintf" ] || printf '%s\n' "#define _GNU_SOURCE /* See feature_test_macros(7) */" - printf '%s\n' "#include " - printf '%s\n' "#include " - [ -z "$uses_assert" ] || printf '%s\n' "#include " - [ -z "$uses_stdio" ] || printf '%s\n' "#include " - [ -z "$uses_string" ] || printf '%s\n' "#include " - [ -z "$uses_assert_success" ] || printf '\n%s\n' "#define assert_success(e) do { if ((e) < 0) { perror(#e); abort(); } } while (0)" - [ -z "$uses_prefix" ] || printf '\n%s\n' "$(setEnvPrefixFn)" - [ -z "$uses_suffix" ] || printf '\n%s\n' "$(setEnvSuffixFn)" - [ -z "$resolve_argv0" ] || printf '\n%s\n' "$(resolveArgv0Fn)" - printf '\n%s' "int main(int argc, char **argv) {" - printf '\n%s' "$(indent4 "$main")" - printf '\n%s\n' "}" -} - -addFlags() { - local n flag before after var - - # Disable file globbing, since bash will otherwise try to find - # filenames matching the the value to be prefixed/suffixed if - # it contains characters considered wildcards, such as `?` and - # `*`. We want the value as is, except we also want to split - # it on on the separator; hence we can't quote it. - local reenableGlob=0 - if [[ ! -o noglob ]]; then - reenableGlob=1 - fi - set -o noglob - # shellcheck disable=SC2086 - before=($1) after=($2) - if (( reenableGlob )); then - set +o noglob - fi - - var="argv_tmp" - printf '%s\n' "char **$var = calloc(${#before[@]} + argc + ${#after[@]} + 1, sizeof(*$var));" - printf '%s\n' "assert($var != NULL);" - printf '%s\n' "${var}[0] = argv[0];" - for ((n = 0; n < ${#before[@]}; n += 1)); do - flag=$(escapeStringLiteral "${before[n]}") - printf '%s\n' "${var}[$((n + 1))] = \"$flag\";" - done - printf '%s\n' "for (int i = 1; i < argc; ++i) {" - printf '%s\n' " ${var}[${#before[@]} + i] = argv[i];" - printf '%s\n' "}" - for ((n = 0; n < ${#after[@]}; n += 1)); do - flag=$(escapeStringLiteral "${after[n]}") - printf '%s\n' "${var}[${#before[@]} + argc + $n] = \"$flag\";" - done - printf '%s\n' "${var}[${#before[@]} + argc + ${#after[@]}] = NULL;" - printf '%s\n' "argv = $var;" -} - -# chdir DIR -changeDir() { - local dir - dir=$(escapeStringLiteral "$1") - printf '%s' "assert_success(chdir(\"$dir\"));" -} - -# prefix ENV SEP VAL -setEnvPrefix() { - local env sep val - env=$(escapeStringLiteral "$1") - sep=$(escapeStringLiteral "$2") - val=$(escapeStringLiteral "$3") - printf '%s' "set_env_prefix(\"$env\", \"$sep\", \"$val\");" - assertValidEnvName "$1" -} - -# suffix ENV SEP VAL -setEnvSuffix() { - local env sep val - env=$(escapeStringLiteral "$1") - sep=$(escapeStringLiteral "$2") - val=$(escapeStringLiteral "$3") - printf '%s' "set_env_suffix(\"$env\", \"$sep\", \"$val\");" - assertValidEnvName "$1" -} - -# setEnv KEY VALUE -setEnv() { - local key value - key=$(escapeStringLiteral "$1") - value=$(escapeStringLiteral "$2") - printf '%s' "putenv(\"$key=$value\");" - assertValidEnvName "$1" -} - -# setDefaultEnv KEY VALUE -setDefaultEnv() { - local key value - key=$(escapeStringLiteral "$1") - value=$(escapeStringLiteral "$2") - printf '%s' "assert_success(setenv(\"$key\", \"$value\", 0));" - assertValidEnvName "$1" -} - -# unsetEnv KEY -unsetEnv() { - local key - key=$(escapeStringLiteral "$1") - printf '%s' "assert_success(unsetenv(\"$key\"));" - assertValidEnvName "$1" -} - -# Makes it safe to insert STRING within quotes in a C String Literal. -# escapeStringLiteral STRING -escapeStringLiteral() { - local result - result=${1//$'\\'/$'\\\\'} - result=${result//\"/'\"'} - result=${result//$'\n'/"\n"} - result=${result//$'\r'/"\r"} - printf '%s' "$result" -} - -# Indents every non-empty line by 4 spaces. To avoid trailing whitespace, we don't indent empty lines -# indent4 TEXT_BLOCK -indent4() { - printf '%s' "$1" | awk '{ if ($0 != "") { print " "$0 } else { print $0 }}' -} - -assertValidEnvName() { - case "$1" in - *=*) printf '\n%s\n' "#error Illegal environment variable name \`$1\` (cannot contain \`=\`)";; - "") printf '\n%s\n' "#error Environment variable name can't be empty.";; - esac -} - -setEnvPrefixFn() { - printf '%s' "\ -void set_env_prefix(char *env, char *sep, char *prefix) { - char *existing = getenv(env); - if (existing) { - char *val; - assert_success(asprintf(&val, \"%s%s%s\", prefix, sep, existing)); - assert_success(setenv(env, val, 1)); - free(val); - } else { - assert_success(setenv(env, prefix, 1)); - } -} -" -} - -setEnvSuffixFn() { - printf '%s' "\ -void set_env_suffix(char *env, char *sep, char *suffix) { - char *existing = getenv(env); - if (existing) { - char *val; - assert_success(asprintf(&val, \"%s%s%s\", existing, sep, suffix)); - assert_success(setenv(env, val, 1)); - free(val); - } else { - assert_success(setenv(env, suffix, 1)); - } -} -" -} - -resolveArgv0Fn() { - printf '%s' "\ -char *resolve_argv0(char *argv0) { - if (strchr(argv0, '/') != NULL) { - return argv0; - } - char *path = getenv(\"PATH\"); - if (path == NULL) { - return argv0; - } - char *path_copy = strdup(path); - if (path_copy == NULL) { - return argv0; - } - char *dir = strtok(path_copy, \":\"); - while (dir != NULL) { - char *candidate = malloc(strlen(dir) + strlen(argv0) + 2); - if (candidate == NULL) { - free(path_copy); - return argv0; - } - sprintf(candidate, \"%s/%s\", dir, argv0); - if (access(candidate, X_OK) == 0) { - free(path_copy); - return candidate; - } - free(candidate); - dir = strtok(NULL, \":\"); - } - free(path_copy); - return argv0; -} -" -} - -# Embed a C string which shows up as readable text in the compiled binary wrapper, -# giving instructions for recreating the wrapper. -# Keep in sync with makeBinaryWrapper.extractCmd -docstring() { - printf '%s' "const char * DOCSTRING = \"$(escapeStringLiteral " - - -# ------------------------------------------------------------------------------------ -# The C-code for this binary wrapper has been generated using the following command: - - -makeCWrapper $(formatArgs "$@") - - -# (Use \`nix-shell -p makeBinaryWrapper\` to get access to makeCWrapper in your shell) -# ------------------------------------------------------------------------------------ - - -")\";" -} - -# formatArgs EXECUTABLE ARGS -formatArgs() { - printf '%s' "${1@Q}" - shift - while [ $# -gt 0 ]; do - case "$1" in - --set) - formatArgsLine 2 "$@" - shift 2 - ;; - --set-default) - formatArgsLine 2 "$@" - shift 2 - ;; - --unset) - formatArgsLine 1 "$@" - shift 1 - ;; - --prefix) - formatArgsLine 3 "$@" - shift 3 - ;; - --suffix) - formatArgsLine 3 "$@" - shift 3 - ;; - --chdir) - formatArgsLine 1 "$@" - shift 1 - ;; - --add-flags) - formatArgsLine 1 "$@" - shift 1 - ;; - --append-flags) - formatArgsLine 1 "$@" - shift 1 - ;; - --argv0) - formatArgsLine 1 "$@" - shift 1 - ;; - --inherit-argv0) - formatArgsLine 0 "$@" - ;; - esac - shift - done - printf '%s\n' "" -} - -# formatArgsLine ARG_COUNT ARGS -formatArgsLine() { - local ARG_COUNT LENGTH - ARG_COUNT=$1 - LENGTH=$# - shift - printf '%s' $' \\\n '"$1" - shift - while [ "$ARG_COUNT" -gt $((LENGTH - $# - 2)) ]; do - printf ' %s' "${1@Q}" - shift - done -} diff --git a/pkgs/build-support/setup-hooks/make-coverage-analysis-report.sh b/pkgs/build-support/setup-hooks/make-coverage-analysis-report.sh deleted file mode 100644 index 9108b4c..0000000 --- a/pkgs/build-support/setup-hooks/make-coverage-analysis-report.sh +++ /dev/null @@ -1,25 +0,0 @@ -postPhases+=" coverageReportPhase" - -coverageReportPhase() { - lcov --directory . --capture --output-file app.info - set -o noglob - lcov --remove app.info ${lcovFilter:-"/nix/store/*"} > app2.info - set +o noglob - mv app2.info app.info - - mkdir -p $out/coverage - genhtml app.info $lcovExtraTraceFiles -o $out/coverage > log - - # Grab the overall coverage percentage so that Hydra can plot it over time. - mkdir -p $out/nix-support - lineCoverage="$(sed 's/.*lines\.*: \([0-9\.]\+\)%.*/\1/; t ; d' log)" - functionCoverage="$(sed 's/.*functions\.*: \([0-9\.]\+\)%.*/\1/; t ; d' log)" - if [ -z "$lineCoverage" -o -z "$functionCoverage" ]; then - echo "failed to get coverage statistics" - exit 1 - fi - echo "lineCoverage $lineCoverage %" >> $out/nix-support/hydra-metrics - echo "functionCoverage $functionCoverage %" >> $out/nix-support/hydra-metrics - - echo "report coverage $out/coverage" >> $out/nix-support/hydra-build-products -} diff --git a/pkgs/build-support/setup-hooks/make-symlinks-relative.sh b/pkgs/build-support/setup-hooks/make-symlinks-relative.sh deleted file mode 100644 index b07b0c5..0000000 --- a/pkgs/build-support/setup-hooks/make-symlinks-relative.sh +++ /dev/null @@ -1,37 +0,0 @@ -# symlinks are often created in postFixup -# don't use fixupOutputHooks, it is before postFixup -postFixupHooks+=(_makeSymlinksRelativeInAllOutputs) - -# For every symlink in $output that refers to another file in $output -# ensure that the symlink is relative. This removes references to the output -# has from the resulting store paths and thus the NAR files. -_makeSymlinksRelative() { - local symlinkTarget - - if [ "${dontRewriteSymlinks-}" ] || [ ! -e "$prefix" ]; then - return - fi - - while IFS= read -r -d $'\0' f; do - symlinkTarget=$(readlink "$f") - if [[ "$symlinkTarget"/ != "$prefix"/* ]]; then - # skip this symlink as it doesn't point to $prefix - continue - fi - - if [ ! -e "$symlinkTarget" ]; then - echo "the symlink $f is broken, it points to $symlinkTarget (which is missing)" - fi - - echo "rewriting symlink $f to be relative to $prefix" - ln -snrf "$symlinkTarget" "$f" - - done < <(find $prefix -type l -print0) -} - -_makeSymlinksRelativeInAllOutputs() { - local output - for output in $(getAllOutputNames); do - prefix="${!output}" _makeSymlinksRelative - done -} diff --git a/pkgs/build-support/setup-hooks/make-wrapper.sh b/pkgs/build-support/setup-hooks/make-wrapper.sh deleted file mode 100644 index cba158b..0000000 --- a/pkgs/build-support/setup-hooks/make-wrapper.sh +++ /dev/null @@ -1,225 +0,0 @@ -# Assert that FILE exists and is executable -# -# assertExecutable FILE -assertExecutable() { - local file="$1" - [[ -f "$file" && -x "$file" ]] || \ - die "Cannot wrap '$file' because it is not an executable file" -} - -# construct an executable file that wraps the actual executable -# makeWrapper EXECUTABLE OUT_PATH ARGS - -# ARGS: -# --argv0 NAME : set the name of the executed process to NAME -# (if unset or empty, defaults to EXECUTABLE) -# --inherit-argv0 : the executable inherits argv0 from the wrapper. -# (use instead of --argv0 '$0') -# --resolve-argv0 : if argv0 doesn't include a / character, resolve it against PATH -# --set VAR VAL : add VAR with value VAL to the executable's environment -# --set-default VAR VAL : like --set, but only adds VAR if not already set in -# the environment -# --unset VAR : remove VAR from the environment -# --chdir DIR : change working directory (use instead of --run "cd DIR") -# --run COMMAND : run command before the executable -# --add-flags ARGS : prepend ARGS to the invocation of the executable -# (that is, *before* any arguments passed on the command line) -# --append-flags ARGS : append ARGS to the invocation of the executable -# (that is, *after* any arguments passed on the command line) - -# --prefix ENV SEP VAL : suffix/prefix ENV with VAL, separated by SEP -# --suffix -# --prefix-each ENV SEP VALS : like --prefix, but VALS is a list -# --suffix-each ENV SEP VALS : like --suffix, but VALS is a list -# --prefix-contents ENV SEP FILES : like --suffix-each, but contents of FILES -# are read first and used as VALS -# --suffix-contents -makeWrapper() { makeShellWrapper "$@"; } -makeShellWrapper() { - local original="$1" - local wrapper="$2" - local params varName value command separator n fileNames - local argv0 flagsBefore flagsAfter flags - - assertExecutable "$original" - - # Write wrapper code which adds `value` to the beginning or end of - # the list variable named by `varName`, depending on the `mode` - # specified. - # - # A value which is already part of the list will not be added - # again. If this is the case and the `suffix` mode is used, the - # list won't be touched at all. The `prefix` mode will however - # move the last matching instance of the value to the beginning - # of the list. Any remaining duplicates of the value will be left - # as-is. - addValue() { - local mode="$1" # `prefix` or `suffix` to add to the beginning or end respectively - local varName="$2" # name of list variable to add to - local separator="$3" # character used to separate elements of list - local value="$4" # one value, or multiple values separated by `separator`, to add to list - - # Disable file globbing, since bash will otherwise try to find - # filenames matching the the value to be prefixed/suffixed if - # it contains characters considered wildcards, such as `?` and - # `*`. We want the value as is, except we also want to split - # it on on the separator; hence we can't quote it. - local reenableGlob=0 - if [[ ! -o noglob ]]; then - reenableGlob=1 - fi - set -o noglob - - if [[ -n "$value" ]]; then - local old_ifs=$IFS - IFS=$separator - - if [[ "$mode" == '--prefix'* ]]; then - # Keep the order of the components as written when - # prefixing; normally, they would be added in the - # reverse order. - local tmp= - for v in $value; do - tmp=$v${tmp:+$separator}$tmp - done - value="$tmp" - fi - for v in $value; do - { - echo "$varName=\${$varName:+${separator@Q}\$$varName${separator@Q}}" # add separators on both ends unless empty - if [[ "$mode" == '--prefix'* ]]; then # -- in prefix mode -- - echo "$varName=\${$varName/${separator@Q}${v@Q}${separator@Q}/${separator@Q}}" # remove the first instance of the value (if any) - echo "$varName=${v@Q}\$$varName" # prepend the value - elif [[ "$mode" == '--suffix'* ]]; then # -- in suffix mode -- - echo "if [[ \$$varName != *${separator@Q}${v@Q}${separator@Q}* ]]; then" # if the value isn't already in the list - echo " $varName=\$$varName${v@Q}" # append the value - echo "fi" - else - echo "unknown mode $mode!" 1>&2 - exit 1 - fi - echo "$varName=\${$varName#${separator@Q}}" # remove leading separator - echo "$varName=\${$varName%${separator@Q}}" # remove trailing separator - echo "export $varName" - } >> "$wrapper" - done - IFS=$old_ifs - fi - - if (( reenableGlob )); then - set +o noglob - fi - } - - mkdir -p "$(dirname "$wrapper")" - - echo "#! @shell@ -e" > "$wrapper" - - params=("$@") - for ((n = 2; n < ${#params[*]}; n += 1)); do - p="${params[$n]}" - - if [[ "$p" == "--set" ]]; then - varName="${params[$((n + 1))]}" - value="${params[$((n + 2))]}" - n=$((n + 2)) - echo "export $varName=${value@Q}" >> "$wrapper" - elif [[ "$p" == "--set-default" ]]; then - varName="${params[$((n + 1))]}" - value="${params[$((n + 2))]}" - n=$((n + 2)) - echo "export $varName=\${$varName-${value@Q}}" >> "$wrapper" - elif [[ "$p" == "--unset" ]]; then - varName="${params[$((n + 1))]}" - n=$((n + 1)) - echo "unset $varName" >> "$wrapper" - elif [[ "$p" == "--chdir" ]]; then - dir="${params[$((n + 1))]}" - n=$((n + 1)) - echo "cd ${dir@Q}" >> "$wrapper" - elif [[ "$p" == "--run" ]]; then - command="${params[$((n + 1))]}" - n=$((n + 1)) - echo "$command" >> "$wrapper" - elif [[ ("$p" == "--suffix") || ("$p" == "--prefix") ]]; then - varName="${params[$((n + 1))]}" - separator="${params[$((n + 2))]}" - value="${params[$((n + 3))]}" - n=$((n + 3)) - addValue "$p" "$varName" "$separator" "$value" - elif [[ ("$p" == "--suffix-each") || ("$p" == "--prefix-each") ]]; then - varName="${params[$((n + 1))]}" - separator="${params[$((n + 2))]}" - values="${params[$((n + 3))]}" - n=$((n + 3)) - for value in $values; do - addValue "$p" "$varName" "$separator" "$value" - done - elif [[ ("$p" == "--suffix-contents") || ("$p" == "--prefix-contents") ]]; then - varName="${params[$((n + 1))]}" - separator="${params[$((n + 2))]}" - fileNames="${params[$((n + 3))]}" - n=$((n + 3)) - for fileName in $fileNames; do - contents="$(cat "$fileName")" - addValue "$p" "$varName" "$separator" "$contents" - done - elif [[ "$p" == "--add-flags" ]]; then - flags="${params[$((n + 1))]}" - n=$((n + 1)) - flagsBefore="${flagsBefore-} $flags" - elif [[ "$p" == "--append-flags" ]]; then - flags="${params[$((n + 1))]}" - n=$((n + 1)) - flagsAfter="${flagsAfter-} $flags" - elif [[ "$p" == "--argv0" ]]; then - argv0="${params[$((n + 1))]}" - n=$((n + 1)) - elif [[ "$p" == "--inherit-argv0" ]]; then - # Whichever comes last of --argv0 and --inherit-argv0 wins - argv0='$0' - elif [[ "$p" == "--resolve-argv0" ]]; then - # this is noop in shell wrappers, since bash will always resolve $0 - resolve_argv0=1 - else - die "makeWrapper doesn't understand the arg $p" - fi - done - - echo exec ${argv0:+-a \"$argv0\"} \""$original"\" \ - "${flagsBefore-}" '"$@"' "${flagsAfter-}" >> "$wrapper" - - chmod +x "$wrapper" -} - -addSuffix() { - suffix="$1" - shift - for name in "$@"; do - echo "$name$suffix" - done -} - -filterExisting() { - for fn in "$@"; do - if test -e "$fn"; then - echo "$fn" - fi - done -} - -# Syntax: wrapProgram -wrapProgram() { wrapProgramShell "$@"; } -wrapProgramShell() { - local prog="$1" - local hidden - - assertExecutable "$prog" - - hidden="$(dirname "$prog")/.$(basename "$prog")"-wrapped - while [ -e "$hidden" ]; do - hidden="${hidden}_" - done - mv "$prog" "$hidden" - makeShellWrapper "$hidden" "$prog" --inherit-argv0 "${@:2}" -} diff --git a/pkgs/build-support/setup-hooks/move-build-tree.sh b/pkgs/build-support/setup-hooks/move-build-tree.sh deleted file mode 100644 index 2718070..0000000 --- a/pkgs/build-support/setup-hooks/move-build-tree.sh +++ /dev/null @@ -1,12 +0,0 @@ -prePhases+=" moveBuildDir" - -moveBuildDir() { - mkdir -p $out/.build - cd $out/.build -} - -postPhases+=" removeBuildDir" - -removeBuildDir() { - rm -rf $out/.build -} diff --git a/pkgs/build-support/setup-hooks/move-docs.sh b/pkgs/build-support/setup-hooks/move-docs.sh deleted file mode 100644 index 3f96115..0000000 --- a/pkgs/build-support/setup-hooks/move-docs.sh +++ /dev/null @@ -1,27 +0,0 @@ -# This setup hook moves $out/{man,doc,info} to $out/share. - -preFixupHooks+=(_moveToShare) - -_moveToShare() { - if [ -n "$__structuredAttrs" ]; then - if [ -z "${forceShare-}" ]; then - forceShare=( man doc info ) - fi - else - forceShare=( ${forceShare:-man doc info} ) - fi - - if [[ -z "$out" ]]; then return; fi - - for d in "${forceShare[@]}"; do - if [ -d "$out/$d" ]; then - if [ -d "$out/share/$d" ]; then - echo "both $d/ and share/$d/ exist!" - else - echo "moving $out/$d to $out/share/$d" - mkdir -p $out/share - mv $out/$d $out/share/ - fi - fi - done -} diff --git a/pkgs/build-support/setup-hooks/move-lib64.sh b/pkgs/build-support/setup-hooks/move-lib64.sh deleted file mode 100644 index 9517af7..0000000 --- a/pkgs/build-support/setup-hooks/move-lib64.sh +++ /dev/null @@ -1,22 +0,0 @@ -# This setup hook, for each output, moves everything in $output/lib64 -# to $output/lib, and replaces $output/lib64 with a symlink to -# $output/lib. The rationale is that lib64 directories are unnecessary -# in Nix (since 32-bit and 64-bit builds of a package are in different -# store paths anyway). -# If the move would overwrite anything, it should fail on rmdir. - -fixupOutputHooks+=(_moveLib64) - -_moveLib64() { - if [ "${dontMoveLib64-}" = 1 ]; then return; fi - if [ ! -e "$prefix/lib64" -o -L "$prefix/lib64" ]; then return; fi - echo "moving $prefix/lib64/* to $prefix/lib" - mkdir -p $prefix/lib - shopt -s dotglob - for i in $prefix/lib64/*; do - mv --no-clobber "$i" $prefix/lib - done - shopt -u dotglob - rmdir $prefix/lib64 - ln -s lib $prefix/lib64 -} diff --git a/pkgs/build-support/setup-hooks/move-sbin.sh b/pkgs/build-support/setup-hooks/move-sbin.sh deleted file mode 100644 index 1c0c4dc..0000000 --- a/pkgs/build-support/setup-hooks/move-sbin.sh +++ /dev/null @@ -1,19 +0,0 @@ -# This setup hook, for each output, moves everything in $output/sbin -# to $output/bin, and replaces $output/sbin with a symlink to -# $output/bin. - -fixupOutputHooks+=(_moveSbin) - -_moveSbin() { - if [ "${dontMoveSbin-}" = 1 ]; then return; fi - if [ ! -e "$prefix/sbin" -o -L "$prefix/sbin" ]; then return; fi - echo "moving $prefix/sbin/* to $prefix/bin" - mkdir -p $prefix/bin - shopt -s dotglob - for i in $prefix/sbin/*; do - mv "$i" $prefix/bin - done - shopt -u dotglob - rmdir $prefix/sbin - ln -s bin $prefix/sbin -} diff --git a/pkgs/build-support/setup-hooks/move-systemd-user-units.sh b/pkgs/build-support/setup-hooks/move-systemd-user-units.sh deleted file mode 100755 index 33e8989..0000000 --- a/pkgs/build-support/setup-hooks/move-systemd-user-units.sh +++ /dev/null @@ -1,25 +0,0 @@ -# shellcheck shell=bash - -# This setup hook, for each output, moves everything in -# $output/lib/systemd/user to $output/share/systemd/user, and replaces -# $output/lib/systemd/user with a symlink to -# $output/share/systemd/user. - -fixupOutputHooks+=(_moveSystemdUserUnits) - -_moveSystemdUserUnits() { - if [ "${dontMoveSystemdUserUnits:-0}" = 1 ]; then return; fi - if [ ! -e "${prefix:?}/lib/systemd/user" ]; then return; fi - local source="$prefix/lib/systemd/user" - local target="$prefix/share/systemd/user" - echo "moving $source/* to $target" - mkdir -p "$target" - ( - shopt -s dotglob - for i in "$source"/*; do - mv "$i" "$target" - done - ) - rmdir "$source" - ln -s "$target" "$source" -} diff --git a/pkgs/build-support/setup-hooks/mpi-check-hook/default.nix b/pkgs/build-support/setup-hooks/mpi-check-hook/default.nix deleted file mode 100644 index 2834cfc..0000000 --- a/pkgs/build-support/setup-hooks/mpi-check-hook/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ callPackage, makeSetupHook }: - -makeSetupHook { - name = "mpi-checkPhase-hook"; -} ./mpi-check-hook.sh diff --git a/pkgs/build-support/setup-hooks/mpi-check-hook/mpi-check-hook.sh b/pkgs/build-support/setup-hooks/mpi-check-hook/mpi-check-hook.sh deleted file mode 100644 index fca1f7b..0000000 --- a/pkgs/build-support/setup-hooks/mpi-check-hook/mpi-check-hook.sh +++ /dev/null @@ -1,54 +0,0 @@ -preCheckHooks+=('setupMpiCheck') -preInstallCheckHooks+=('setupMpiCheck') - - -setupMpiCheck() { - # Find out which MPI implementation we are using - # and set safe defaults that are guaranteed to run - # on any build machine - - mpiType="NONE" - - # OpenMPI signature - if command ompi_info &> /dev/null; then - mpiType="openmpi" - fi - - # MPICH based implementations - if command mpichversion &> /dev/null; then - if [ "$mpiType" != "NONE" ]; then - echo "WARNING: found OpenMPI and MPICH/MVAPICH executables" - fi - - version=$(mpichversion) - if [[ "$version" == *"MPICH"* ]]; then - mpiType="MPICH" - fi - if [[ "$version" == *"MVAPICH"* ]]; then - mpiType="MVAPICH" - fi - fi - - echo "Found MPI implementation: $mpiType" - - case $mpiType in - openmpi) - # make sure the test starts even if we have less than the requested amount of cores - export OMPI_MCA_rmaps_base_oversubscribe=1 - # Disable CPU pinning - export OMPI_MCA_hwloc_base_binding_policy=none - ;; - MPICH) - # Fix to make mpich run in a sandbox - export HYDRA_IFACE=lo - ;; - MVAPICH) - # Disable CPU pinning - export MV2_ENABLE_AFFINITY=0 - ;; - esac - - # Limit number of OpenMP threads. Default is "all cores". - export OMP_NUM_THREADS=1 -} - diff --git a/pkgs/build-support/setup-hooks/multiple-outputs.sh b/pkgs/build-support/setup-hooks/multiple-outputs.sh deleted file mode 100644 index 45096d8..0000000 --- a/pkgs/build-support/setup-hooks/multiple-outputs.sh +++ /dev/null @@ -1,214 +0,0 @@ -# The base package for automatic multiple-output splitting. Used in stdenv as well. -preConfigureHooks+=(_multioutConfig) -preFixupHooks+=(_multioutDocs) -preFixupHooks+=(_multioutDevs) -postFixupHooks+=(_multioutPropagateDev) - -# _assignFirst varName otherVarNames* -# -# Set the value of the variable named $varName to the first of otherVarNames -# that refers to a non-empty variable name. -# -# If none of otherVarNames refers to a non-empty variable, the error message is -# specific to this function's use case, which is setting up the output variables. -_assignFirst() { - local varName="$1" - local _var - local REMOVE=REMOVE # slightly hacky - we allow REMOVE (i.e. not a variable name) - shift - for _var in "$@"; do - if [ -n "${!_var-}" ]; then eval "${varName}"="${_var}"; return; fi - done - echo - echo "error: _assignFirst: could not find a non-empty variable whose name to assign to ${varName}." - echo " The following variables were all unset or empty:" - echo " $*" - if [ -z "${out:-}" ]; then - echo ' If you do not want an "out" output in your derivation, make sure to define' - echo ' the other specific required outputs. This can be achieved by picking one' - echo " of the above as an output." - echo ' You do not have to remove "out" if you want to have a different default' - echo ' output, because the first output is taken as a default.' - echo - fi - return 1 # none found -} - -# Same as _assignFirst, but only if "$1" = "" -_overrideFirst() { - if [ -z "${!1-}" ]; then - _assignFirst "$@" - fi -} - - -# Setup chains of sane default values with easy overridability. -# The variables are global to be usable anywhere during the build. -# Typical usage in package is defining outputBin = "dev"; - -_overrideFirst outputDev "dev" "out" -_overrideFirst outputBin "bin" "out" - -_overrideFirst outputInclude "$outputDev" - -# so-libs are often among the main things to keep, and so go to $out -_overrideFirst outputLib "lib" "out" - -_overrideFirst outputDoc "doc" "out" -_overrideFirst outputDevdoc "devdoc" REMOVE # documentation for developers -# man and info pages are small and often useful to distribute with binaries -_overrideFirst outputMan "man" "$outputBin" -_overrideFirst outputDevman "devman" "devdoc" "$outputMan" -_overrideFirst outputInfo "info" "$outputBin" - - -# Add standard flags to put files into the desired outputs. -_multioutConfig() { - if [ "$(getAllOutputNames)" = "out" ] || [ -z "${setOutputFlags-1}" ]; then return; fi; - - # try to detect share/doc/${shareDocName} - # Note: sadly, $configureScript detection comes later in configurePhase, - # and reordering would cause more trouble than worth. - if [ -z "${shareDocName:-}" ]; then - local confScript="${configureScript:-}" - if [ -z "$confScript" ] && [ -x ./configure ]; then - confScript=./configure - fi - if [ -f "$confScript" ]; then - local shareDocName="$(sed -n "s/^PACKAGE_TARNAME='\(.*\)'$/\1/p" < "$confScript")" - fi - # PACKAGE_TARNAME sometimes contains garbage. - if [ -z "$shareDocName" ] || echo "$shareDocName" | grep -q '[^a-zA-Z0-9_-]'; then - shareDocName="$(echo "$name" | sed 's/-[^a-zA-Z].*//')" - fi - fi - - prependToVar configureFlags \ - --bindir="${!outputBin}"/bin --sbindir="${!outputBin}"/sbin \ - --includedir="${!outputInclude}"/include --oldincludedir="${!outputInclude}"/include \ - --mandir="${!outputMan}"/share/man --infodir="${!outputInfo}"/share/info \ - --docdir="${!outputDoc}"/share/doc/"${shareDocName}" \ - --libdir="${!outputLib}"/lib --libexecdir="${!outputLib}"/libexec \ - --localedir="${!outputLib}"/share/locale - - prependToVar installFlags \ - pkgconfigdir="${!outputDev}"/lib/pkgconfig \ - m4datadir="${!outputDev}"/share/aclocal aclocaldir="${!outputDev}"/share/aclocal -} - - -# Add rpath prefixes to library paths, and avoid stdenv doing it for $out. -_addRpathPrefix "${!outputLib}" -NIX_NO_SELF_RPATH=1 - - -# Move subpaths that match pattern $1 from under any output/ to the $2 output/ -# Beware: only globbing patterns are accepted, e.g.: * ? [abc] -# A special target "REMOVE" is allowed: moveToOutput foo REMOVE -moveToOutput() { - local patt="$1" - local dstOut="$2" - local output - for output in $(getAllOutputNames); do - if [ "${!output}" = "$dstOut" ]; then continue; fi - local srcPath - for srcPath in "${!output}"/$patt; do - # apply to existing files/dirs, *including* broken symlinks - if [ ! -e "$srcPath" ] && [ ! -L "$srcPath" ]; then continue; fi - - if [ "$dstOut" = REMOVE ]; then - echo "Removing $srcPath" - rm -r "$srcPath" - else - local dstPath="$dstOut${srcPath#${!output}}" - echo "Moving $srcPath to $dstPath" - - if [ -d "$dstPath" ] && [ -d "$srcPath" ] - then # attempt directory merge - # check the case of trying to move an empty directory - rmdir "$srcPath" --ignore-fail-on-non-empty - if [ -d "$srcPath" ]; then - mv -t "$dstPath" "$srcPath"/* - rmdir "$srcPath" - fi - else # usual move - mkdir -p "$(readlink -m "$dstPath/..")" - mv "$srcPath" "$dstPath" - fi - fi - - # remove empty directories, printing iff at least one gets removed - local srcParent="$(readlink -m "$srcPath/..")" - if [ -n "$(find "$srcParent" -maxdepth 0 -type d -empty 2>/dev/null)" ]; then - echo "Removing empty $srcParent/ and (possibly) its parents" - rmdir -p --ignore-fail-on-non-empty "$srcParent" \ - 2> /dev/null || true # doesn't ignore failure for some reason - fi - done - done -} - -# Move documentation to the desired outputs. -_multioutDocs() { - local REMOVE=REMOVE # slightly hacky - we expand ${!outputFoo} - - moveToOutput share/info "${!outputInfo}" - moveToOutput share/doc "${!outputDoc}" - moveToOutput share/gtk-doc "${!outputDevdoc}" - moveToOutput share/devhelp/books "${!outputDevdoc}" - - # the default outputMan is in $bin - moveToOutput share/man "${!outputMan}" - moveToOutput share/man/man3 "${!outputDevman}" -} - -# Move development-only stuff to the desired outputs. -_multioutDevs() { - if [ "$(getAllOutputNames)" = "out" ] || [ -z "${moveToDev-1}" ]; then return; fi; - moveToOutput include "${!outputInclude}" - # these files are sometimes provided even without using the corresponding tool - moveToOutput lib/pkgconfig "${!outputDev}" - moveToOutput share/pkgconfig "${!outputDev}" - moveToOutput lib/cmake "${!outputDev}" - moveToOutput share/aclocal "${!outputDev}" - # don't move *.la, as libtool needs them in the directory of the library - - for f in "${!outputDev}"/{lib,share}/pkgconfig/*.pc; do - echo "Patching '$f' includedir to output ${!outputInclude}" - sed -i "/^includedir=/s,=\${prefix},=${!outputInclude}," "$f" - done -} - -# Make the "dev" propagate other outputs needed for development. -_multioutPropagateDev() { - if [ "$(getAllOutputNames)" = "out" ]; then return; fi; - - local outputFirst - for outputFirst in $(getAllOutputNames); do - break - done - local propagaterOutput="$outputDev" - if [ -z "$propagaterOutput" ]; then - propagaterOutput="$outputFirst" - fi - - # Default value: propagate binaries, includes and libraries - if [ -z "${propagatedBuildOutputs+1}" ]; then - local po_dirty="$outputBin $outputInclude $outputLib" - set +o pipefail - propagatedBuildOutputs=`echo "$po_dirty" \ - | tr -s ' ' '\n' | grep -v -F "$propagaterOutput" \ - | sort -u | tr '\n' ' ' ` - set -o pipefail - fi - - # The variable was explicitly set to empty or we resolved it so - if [ -z "$propagatedBuildOutputs" ]; then - return - fi - - mkdir -p "${!propagaterOutput}"/nix-support - for output in $propagatedBuildOutputs; do - echo -n " ${!output}" >> "${!propagaterOutput}"/nix-support/propagated-build-inputs - done -} diff --git a/pkgs/build-support/setup-hooks/patch-ppd-files/default.nix b/pkgs/build-support/setup-hooks/patch-ppd-files/default.nix deleted file mode 100644 index 854f857..0000000 --- a/pkgs/build-support/setup-hooks/patch-ppd-files/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ lib -, makeSetupHook -, which -, callPackage -}: - -makeSetupHook { - name = "patch-ppd-files"; - substitutions = { - which = lib.getBin which; - awkscript = ./patch-ppd-lines.awk; - }; - passthru.tests.test = callPackage ./test.nix {}; - meta = { - description = "setup hook to patch executable paths in ppd files"; - maintainers = [ lib.maintainers.yarny ]; - }; -} ./patch-ppd-hook.sh diff --git a/pkgs/build-support/setup-hooks/patch-ppd-files/patch-ppd-hook.sh b/pkgs/build-support/setup-hooks/patch-ppd-files/patch-ppd-hook.sh deleted file mode 100644 index 77322b2..0000000 --- a/pkgs/build-support/setup-hooks/patch-ppd-files/patch-ppd-hook.sh +++ /dev/null @@ -1,183 +0,0 @@ -fixupOutputHooks+=(_patchPpdFileCommands4fixupOutputHooks) - - - -# Install a hook for the `fixupPhase`: -# If the variable `ppdFileCommands` contains a list of -# executable names, the hook calls `patchPpdFileCommands` -# on each output's `/share/cups/model` and `/share/ppds` -# directories in order to replace calls to those executables. - -_patchPpdFileCommands4fixupOutputHooks () { - [[ -n $ppdFileCommands ]] || return 0 - if [[ -d $prefix/share/cups/model ]]; then - patchPpdFileCommands "$prefix/share/cups/model" $ppdFileCommands - fi - if [[ -d $prefix/share/ppds ]]; then - patchPpdFileCommands "$prefix/share/ppds" $ppdFileCommands - fi -} - - - -# patchPpdFileCommands PPD-ROOT PROGNAME... -# -# Look for ppd files in the directory PPD-ROOT. -# Descend into subdirectories, even if they are symlinks. -# However, ignore ppd files that don't belong to the same -# prefix ($NIX_STORE/$package_name) as PPD-ROOT-DIR does, -# to avoid stepping into other package's directories. -# ppd files may be gzipped; if the are, -# uncompress them, later recompress them. -# Skip symlinks to ppd files. -# PPD-ROOT may also be a single ppd file. -# -# Look for the PROGNAME executable in outputs and `buildInputs`, -# then look for PROGNAME invocations in the ppd files, -# without path or with common paths like `/usr/bin/$PROGNAME`. -# Replace those invocations with an absolute path to the -# corresponding executable from the outputs or `buildInputs`. -# Executables are searched where CUPS would search them, -# i.e., in `/bin` and `/lib/cups/filter`. -# -# As soon as an executable's path is replaced as -# described above, the package containing the binary -# is added to the list of propagated build inputs. -# This ensures the executable's package is still -# recognized as runtime dependency of the ppd file -# even if the ppd file is compressed lateron. -# -# PROGNAME may not contain spaces or tabs. -# The function will also likely fail or produce -# broken results if PROGNAME contains characters that -# require shell or regex escaping (e.g. a backslash). - -patchPpdFileCommands () { - - local bin binnew binold binoldgrep cupspath path ppdroot ppdrootprefix - - # we will store some temporary data here - pushd "$(mktemp -d --tmpdir patch-ppd-file-commands.XXXX)" - - # remember the ppd root path - [[ "$1" == $NIX_STORE/* ]] # ensure it's a store directory - ppdroot=$1 - shift # now "$@" is the list of binaries - ppdrootprefix=${ppdroot%"/${ppdroot#"$NIX_STORE"/*/}"} - - # create `cupspath` (where we should look for binaries), - # with these priorities - # * outputs of current build before buildInputs - # * `/lib/cups/filter' before `/bin` - # * add HOST_PATH at end, so we don't miss anything - for path in $(getAllOutputNames); do - addToSearchPath cupspath "${!path}/lib/cups/filter" - addToSearchPath cupspath "${!path}/bin" - done - for path in ${pkgsHostTarget+"${pkgsHostTarget[@]}"}; do - addToSearchPath cupspath "$path/lib/cups/filter" - addToSearchPath cupspath "$path/bin" - done - while read -r -d : path; do - addToSearchPath cupspath "$path" - done <<< "${HOST_PATH:+"${HOST_PATH}:"}" - - # create list of compressed ppd files - # so we can recompress them later - find -L "$ppdroot" -type f -iname '*.ppd.gz' '!' -xtype l -print0 > gzipped - - # decompress gzipped ppd files - echo "patchPpdFileCommands: decompressing $(grep -cz '^' < gzipped) gzipped ppd file(s) in $ppdroot" - xargs -0r -n 64 -P "$NIX_BUILD_CORES" gunzip < gzipped - - # create list of all ppd files to be checked - find -L "$ppdroot" -type f -iname '*.ppd' '!' -xtype l -print0 > ppds - - for bin in "$@"; do - - # discover new path - binnew=$(PATH=$cupspath '@which@/bin/which' "$bin") - echo "patchPpdFileCommands: located binary $binnew" - - # for each binary, we look for the name itself, but - # also for a couple of common paths that might be used - for binold in {/usr,}/{lib/cups/filter,sbin,bin}/"$bin" "$bin"; do - - # escape regex characters in the old command string - binoldgrep=$(sed 's,[]$.*[\^],\\&,g' <<< "$binold") - # ...and surround old command with some regex - # that singles out shell command invocations - # to avoid replacing other strings that might contain the - # command name by accident (like "perl" in "perl-script") - binoldgrep='\(^\|[;&| '$'\t''"`(]\)'"$binoldgrep"'\($\|[);&| '$'\t''"`<>]\)' - # this string is used to *quickly* filter out - # unaffected files before the (slower) awk script runs; - # note that a similar regex is build in the awk script; - # if `binoldgrep` is changed, the awk script should also be checked - - # create list of likely affected files - # (might yield exit status != 0 if there are no matches) - xargs -0r grep -lZ "$binoldgrep" < ppds > ppds-to-patch || true - - echo "patchPpdFileCommands: $(grep -cz '^' < ppds-to-patch) ppd file(s) contain $binold" - - # actually patch affected ppd files with awk; - # this takes some time but can be parallelized; - # speed up with LC_ALL=C, https://stackoverflow.com/a/33850386 - LC_ALL=C xargs -0r -n 64 -P "$NIX_BUILD_CORES" \ - awk -i inplace -v old="${binold//\\/\\\\}" -v new="${binnew//\\/\\\\}" -f "@awkscript@" \ - < ppds-to-patch - - done - - # create list of affected files - xargs -0r grep -lZF "$binnew" < ppds > patched-ppds || true - - echo "patchPpdFileCommands: $(grep -cz '^' < patched-ppds) ppd file(s) patched with $binnew" - - # if the new command is contained in a file, - # remember the new path so we can add it to - # the list of propagated dependencies later - if [[ -s patched-ppds ]]; then - printf '%s\0' "${binnew%"/${binnew#"${NIX_STORE}"/*/}"}" >> dependencies - fi - - done - - # recompress ppd files that have been decompressed before - echo "patchPpdFileCommands: recompressing $(grep -cz '^' < gzipped) gzipped ppd file(s)" - # we can't just hand over the paths of the uncompressed files - # to gzip as it would add the lower-cased extension ".gz" - # even for files where the original was named ".GZ" - xargs -0r -n 1 -P "$NIX_BUILD_CORES" \ - "$SHELL" -c 'gzip -9nS ".${0##*.}" "${0%.*}"' \ - < gzipped - - # enlist dependencies for propagation; - # this is needed in case ppd files are compressed later - # (Nix won't find dependency paths in compressed files) - if [[ -s dependencies ]]; then - - # weed out duplicates from the dependency list first - sort -zu dependencies > sorted-dependencies - - mkdir -p "$ppdrootprefix/nix-support" - while IFS= read -r -d '' path; do - printWords "$path" >> "$ppdrootprefix/nix-support/propagated-build-inputs" - # stdenv writes it's own `propagated-build-inputs`, - # based on the variable `propagatedBuildInputs`, - # but only to one output (`outputDev`). - # So we also add our dependencies to that variable. - # If our file survives as written above, great! - # If stdenv overwrits it, - # our dependencies will still be added to the file. - # The end result might contain too many - # propagated dependencies for multi-output packages, - # but never a broken package. - propagatedBuildInputs+=("$path") - done < sorted-dependencies - fi - - popd - -} diff --git a/pkgs/build-support/setup-hooks/patch-ppd-files/patch-ppd-lines.awk b/pkgs/build-support/setup-hooks/patch-ppd-files/patch-ppd-lines.awk deleted file mode 100644 index ddb9171..0000000 --- a/pkgs/build-support/setup-hooks/patch-ppd-files/patch-ppd-lines.awk +++ /dev/null @@ -1,50 +0,0 @@ -BEGIN { - - # ppd file keys are separated from their values by a colon, - # but "options" may reside between the key name and the colon; - # options are separated from the key by spaces - # (we also permit tabs to be on the safe side) - FS = "[: \t]"; - - # escape regex characters in the old and new command strings - gsub(/[]\\.^$(){}|*+?[]/, "\\\\&", old); - gsub(/\\/, "\\\\&", new); - # ...and surround old command with some regex - # that singles out shell command invocations - # to avoid replacing other strings that might contain the - # command name by accident (like "perl" in "perl-script") - new = "\\1" new "\\2"; - old = "(^|[;&| \\t\"`(])" old "($|[);&| \\t\"`<>])"; - # note that a similar regex is build in the shell script to - # filter out unaffected files before this awk script is called; - # if the regex here is changed, the shell script should also be checked - - # list of PPD keys that contain executable names or scripts, see - # https://refspecs.linuxfoundation.org/LSB_4.0.0/LSB-Printing/LSB-Printing/ppdext.html - # https://www.cups.org/doc/spec-ppd.html - cmds["*APAutoSetupTool"] = ""; - cmds["*APPrinterLowInkTool"] = ""; - cmds["*FoomaticRIPCommandLine"] = ""; - cmds["*FoomaticRIPPostPipe"] = ""; - cmds["*cupsFilter"] = ""; - cmds["*cupsFilter2"] = ""; - cmds["*cupsPreFilter"] = ""; - -} - -# since comments always start with "*%", -# this mechanism also properly recognizes (and ignores) them - -{ - - # if the current line starts a new key, - # check if it is a command-containing key; - # also reset the `isCmd` flag if a new file begins - if ($0 ~ /^\*/ || FNR == 1) { isCmd = ($1 in cmds) } - - # replace commands if the current keys might contain commands - if (isCmd) { $0 = gensub(old, new, "g") } - - print - -} diff --git a/pkgs/build-support/setup-hooks/patch-ppd-files/test.nix b/pkgs/build-support/setup-hooks/patch-ppd-files/test.nix deleted file mode 100644 index 4f2996b..0000000 --- a/pkgs/build-support/setup-hooks/patch-ppd-files/test.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ substituteAll -, diffutils -, stdenv -, patchPpdFilesHook -}: - -let - input = substituteAll { - src = ./test.ppd; - keep = "cmp"; - patch = "cmp"; - pathkeep = "/bin/cmp"; - pathpatch = "/bin/cmp"; - }; - - output = substituteAll { - src = ./test.ppd; - keep = "cmp"; - patch = "${diffutils}/bin/cmp"; - pathkeep = "/bin/cmp"; - pathpatch = "${diffutils}/bin/cmp"; - }; -in - -stdenv.mkDerivation { - name = "${patchPpdFilesHook.name}-test"; - buildInputs = [ diffutils ]; - nativeBuildInputs = [ diffutils patchPpdFilesHook ]; - dontUnpack = true; - dontInstall = true; - ppdFileCommands = [ "cmp" ]; - preFixup = '' - install -D "${input}" "${placeholder "out"}/share/cups/model/test.ppd" - install -D "${input}" "${placeholder "out"}/share/ppds/test.ppd" - ''; - postFixup = '' - diff --color --report-identical-files "${output}" "${placeholder "out"}/share/cups/model/test.ppd" - diff --color --report-identical-files "${output}" "${placeholder "out"}/share/ppds/test.ppd" - ''; -} diff --git a/pkgs/build-support/setup-hooks/patch-ppd-files/test.ppd b/pkgs/build-support/setup-hooks/patch-ppd-files/test.ppd deleted file mode 100644 index d0ca11c..0000000 --- a/pkgs/build-support/setup-hooks/patch-ppd-files/test.ppd +++ /dev/null @@ -1,22 +0,0 @@ -*% This comment: might look like a command @keep@ -*% but it should be left untouched -*SomeKey: do not replace this @keep@ -*APAutoSetupTool: do replace this @patch@ -*FoomaticRIPCommandLine: "patch also @patch@ -in a multi-line command @patch@ -and another line @patch@ -*SomeKey: "stop patching on new non-command key @keep@ -and remember the key in the next line @keep@" -*cupsFilter option: recognize keys with options @patch@ -*cupsFilter : handle strange spacing;@patch@ -*cupsFilter : handle tabulator @patch@ -*cupsFilter: patch common paths @pathpatch@ -*cupsFilter: patch quoted commands "@patch@" -*cupsFilter: patch commands in subshell (@patch@) -*cupsFilter: patch commands in subshell `@pathpatch@` -*cupsFilter: keep uncommon paths /fancy/@pathkeep@ -*cupsFilter: keep entangled commands-@keep@ -*cupsFilter: keep entangled commands\@keep@ -*cupsFilter: keep entangled commands @keep@() -*cupsFilter: keep entangled commands @pathkeep@-cmd -*%cupsFilter: This comment should also be left as is @pathkeep@ 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 deleted file mode 100644 index f166445..0000000 --- a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ 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; -} diff --git a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/patch-rc-path-bash.sh b/pkgs/build-support/setup-hooks/patch-rc-path-hooks/patch-rc-path-bash.sh deleted file mode 100644 index b98b983..0000000 --- a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/patch-rc-path-bash.sh +++ /dev/null @@ -1,50 +0,0 @@ -patchRcPathBash(){ - local FILE_TO_PATCH="$1" - local SOURCETIME_PATH="$2" - local FILE_TO_WORK_ON="$(mktemp "$(basename "$FILE_TO_PATCH").XXXXXX.tmp")" - cat <> "$FILE_TO_WORK_ON" -# Lines to add to PATH the source-time utilities for Nixpkgs packaging -if [[ -n "\${NIXPKGS_SOURCETIME_PATH-}" ]]; then - NIXPKGS_SOURCETIME_PATH_OLD="\$NIXPKGS_SOURCETIME_PATH;\${NIXPKGS_SOURCETIME_PATH_OLD-}" -fi -NIXPKGS_SOURCETIME_PATH="$SOURCETIME_PATH" -if [[ -n "\$PATH" ]]; then - PATH="\$NIXPKGS_SOURCETIME_PATH:\$PATH" -else - PATH="\$NIXPKGS_SOURCETIME_PATH" -fi -export PATH -# End of lines to add to PATH source-time utilities for Nixpkgs packaging -EOF - cat "$FILE_TO_PATCH" >> "$FILE_TO_WORK_ON" - cat <> "$FILE_TO_WORK_ON" -# Lines to clean up inside PATH the source-time utilities for Nixpkgs packaging -if [[ -n "\${PATH-}" ]]; then - # Remove the inserted section - PATH="\${PATH/\$NIXPKGS_SOURCETIME_PATH}" - # Remove the duplicated colons - PATH="\${PATH//::/:}" - # Remove the prefixing colon - if [[ -n "\$PATH" && "\${PATH:0:1}" == ":" ]]; then - PATH="\${PATH:1}" - fi - # Remove the trailing colon - if [[ -n "\$PATH" && "\${PATH:\${#PATH}-1}" == ":" ]]; then - PATH="\${PATH::}" - fi - export PATH -fi -if [[ -n "\${NIXPKGS_SOURCETIME_PATH_OLD-}" ]]; then - IFS="" read -r -d ";" NIXPKGS_SOURCETIME_PATH <<< "\$NIXPKGS_SOURCETIME_PATH_OLD" - NIXPKGS_SOURCETIME_PATH_OLD="\${NIXPKGS_SOURCETIME_PATH_OLD:\${#NIXPKGS_SOURCETIME_PATH}+1}" -else - unset NIXPKGS_SOURCETIME_PATH -fi -if [[ -z "\${NIXPKGS_SOURCETIME_PATH_OLD-}" ]]; then - unset NIXPKGS_SOURCETIME_PATH_OLD -fi -# End of lines to clean up inside PATH the source-time utilities for Nixpkgs packaging -EOF - cat "$FILE_TO_WORK_ON" > "$FILE_TO_PATCH" - rm "$FILE_TO_WORK_ON" -} diff --git a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/patch-rc-path-csh.sh b/pkgs/build-support/setup-hooks/patch-rc-path-hooks/patch-rc-path-csh.sh deleted file mode 100644 index 5e23670..0000000 --- a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/patch-rc-path-csh.sh +++ /dev/null @@ -1,57 +0,0 @@ -patchRcPathCsh(){ - local FILE_TO_PATCH="$1" - local SOURCETIME_PATH="$2" - local FILE_TO_WORK_ON="$(mktemp "$(basename "$FILE_TO_PATCH").XXXXXX.tmp")" - cat <> "$FILE_TO_WORK_ON" -# Lines to add to PATH the source-time utilities for Nixpkgs packaging -if (\$?NIXPKGS_SOURCETIME_PATH) then - if ("\$NIXPKGS_SOURCETIME_PATH" != "") then - if (\$?NIXPKGS_SOURCETIME_PATH_OLD) then - if ("\$NIXPKGS_SOURCETIME_PATH_OLD" != "") - set NIXPKGS_SOURCETIME_PATH_OLD = (\$NIXPKGS_SOURCETIME_PATH \$NIXPKGS_SOURCETIME_PATH_OLD) - else - set NIXPKGS_SOURCETIME_PATH_OLD = \$NIXPKGS_SOURCETIME_PATH - endif - else - set NIXPKGS_SOURCETIME_PATH_OLD = \$NIXPKGS_SOURCETIME_PATH - endif - endif -endif -set NIXPKGS_SOURCETIME_PATH = "$SOURCETIME_PATH" -if (! \$?PATH) then - setenv PATH "" -endif -if ("\$PATH" != "") then - setenv PATH "\${NIXPKGS_SOURCETIME_PATH}:\$PATH" -else - setenv PATH "\$NIXPKGS_SOURCETIME_PATH" -endif -# End of lines to add to PATH source-time utilities for Nixpkgs packaging -EOF - cat "$FILE_TO_PATCH" >> "$FILE_TO_WORK_ON" - cat <> "$FILE_TO_WORK_ON" -# Lines to clean up inside PATH the source-time utilities for Nixpkgs packaging -if (\$?PATH) then - if ("\$PATH" != "") then - # Remove the inserted section, the duplicated colons, and the leading and trailing colon - setenv PATH \`echo "\$PATH" | @sed@ "s#\${NIXPKGS_SOURCETIME_PATH}##" | @sed@ "s#::#:#g" | @sed@ "s#^:##" | @sed@ 's#:\$##'\` - endif -endif -if (\$?NIXPKGS_SOURCETIME_PATH_OLD) then - if ("\$NIXPKGS_SOURCETIME_PATH_OLD" != "") then - set NIXPKGS_SOURCETIME_PATH = \$NIXPKGS_SOURCETIME_PATH_OLD[1] - set NIXPKGS_SOURCETIME_PATH_OLD = \$NIXPKGS_SOURCETIME_PATH_OLD[2-] - else - unset NIXPKGS_SOURCETIME_PATH - endif - if (NIXPKGS_SOURCETIME_PATH_OLD == "") then - unset NIXPKGS_SOURCETIME_PATH_OLD - endif -else - unset NIXPKGS_SOURCETIME_PATH -endif -# End of lines to clean up inside PATH the source-time utilities for Nixpkgs packaging -EOF - cat "$FILE_TO_WORK_ON" > "$FILE_TO_PATCH" - rm "$FILE_TO_WORK_ON" -} diff --git a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/patch-rc-path-fish.sh b/pkgs/build-support/setup-hooks/patch-rc-path-hooks/patch-rc-path-fish.sh deleted file mode 100644 index 3d3e08c..0000000 --- a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/patch-rc-path-fish.sh +++ /dev/null @@ -1,50 +0,0 @@ -patchRcPathFish(){ - local FILE_TO_PATCH="$1" - local SOURCETIME_PATH="$2" - local FILE_TO_WORK_ON="$(mktemp "$(basename "$FILE_TO_PATCH").XXXXXX.tmp")" - cat <> "$FILE_TO_WORK_ON" -# Lines to add to PATH the source-time utilities for Nixpkgs packaging -if set -q NIXPKGS_SOURCETIME_PATH && test (count \$NIXPKGS_SOURCETIME_PATH) -gt 0 - set --unpath NIXPKGS_SOURCETIME_PATH_OLD "\$NIXPKGS_SOURCETIME_PATH" \$NIXPKGS_SOURCETIME_PATH_OLD -end -set --path NIXPKGS_SOURCETIME_PATH $SOURCETIME_PATH -set -g --path PATH \$NIXPKGS_SOURCETIME_PATH \$PATH -# End of lines to add to PATH source-time utilities for Nixpkgs packaging -EOF - cat "$FILE_TO_PATCH" >> "$FILE_TO_WORK_ON" - cat <> "$FILE_TO_WORK_ON" -# Lines to clean up inside PATH the source-time utilities for Nixpkgs packaging -if set -q PATH && test "\$PATH" != "" && test (count \$PATH) -ge (count \$NIXPKGS_SOURCETIME_PATH) - # Remove the inserted section - for i in (seq 0 (math (count \$PATH) - (count \$NIXPKGS_SOURCETIME_PATH))) - for j in (seq 1 (count \$NIXPKGS_SOURCETIME_PATH)) - if test \$PATH[(math \$i + \$j)] != \$NIXPKGS_SOURCETIME_PATH[\$j] - set i -1 - break - end - end - if test \$i -eq -1 - continue - end - if test \$i -eq 0 - set -g --path PATH \$PATH[(math (count \$NIXPKGS_SOURCETIME_PATH) + 1)..] - else - set -g --path PATH \$PATH[..\$i] \$PATH[(math (count \$NIXPKGS_SOURCETIME_PATH) + 1 + \$i)..] - end - break - end -end -if set -q NIXPKGS_SOURCETIME_PATH_OLD && test (count \$NIXPKGS_SOURCETIME_PATH_OLD) -gt 0 - set --path NIXPKGS_SOURCETIME_PATH \$NIXPKGS_SOURCETIME_PATH_OLD[1] - set --unpath NIXPKGS_SOURCETIME_PATH_OLD \$NIXPKGS_SOURCETIME_PATH_OLD[2..] -else - set -e NIXPKGS_SOURCETIME_PATH -end -if set -q NIXPKGS_SOURCETIME_PATH_OLD && test (count \$NIXPKGS_SOURCETIME_PATH_OLD) -eq 0 - set -e NIXPKGS_SOURCETIME_PATH_OLD -end -# End of lines to clean up inside PATH the source-time utilities for Nixpkgs packaging -EOF - cat "$FILE_TO_WORK_ON" > "$FILE_TO_PATCH" - rm "$FILE_TO_WORK_ON" -} diff --git a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/patch-rc-path-posix.sh b/pkgs/build-support/setup-hooks/patch-rc-path-hooks/patch-rc-path-posix.sh deleted file mode 100644 index a3740d4..0000000 --- a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/patch-rc-path-posix.sh +++ /dev/null @@ -1,39 +0,0 @@ -patchRcPathPosix(){ - local FILE_TO_PATCH="$1" - local SOURCETIME_PATH="$2" - local FILE_TO_WORK_ON="$(mktemp "$(basename "$FILE_TO_PATCH").XXXXXX.tmp")" - cat <> "$FILE_TO_WORK_ON" -# Lines to add to PATH the source-time utilities for Nixpkgs packaging -if [ -n "\${NIXPKGS_SOURCETIME_PATH-}" ]; then - NIXPKGS_SOURCETIME_PATH_OLD="\$NIXPKGS_SOURCETIME_PATH;\${NIXPKGS_SOURCETIME_PATH_OLD-}" -fi -NIXPKGS_SOURCETIME_PATH="$SOURCETIME_PATH" -if [ -n "\$PATH" ]; then - PATH="\$NIXPKGS_SOURCETIME_PATH:\$PATH"; -else - PATH="\$NIXPKGS_SOURCETIME_PATH" -fi -export PATH -# End of lines to add to PATH source-time utilities for Nixpkgs packaging -EOF - cat "$FILE_TO_PATCH" >> "$FILE_TO_WORK_ON" - cat <> "$FILE_TO_WORK_ON" -# Lines to clean up inside PATH the source-time utilities for Nixpkgs packaging -if [ -n "\${PATH-}" ]; then - PATH="\$(echo "\$PATH" | @sed@ "s#\$NIXPKGS_SOURCETIME_PATH##" | @sed@ "s#::#:#g" | @sed@ "s#^:##" | @sed@ "s#:\\\$##")" - export PATH -fi -if [ -n "\${NIXPKGS_SOURCETIME_PATH_OLD-}" ]; then - NIXPKGS_SOURCETIME_PATH="\$(echo "\$NIXPKGS_SOURCETIME_PATH_OLD" | @sed@ "s#\\([^;]\\);.*#\\1#")" - NIXPKGS_SOURCETIME_PATH_OLD="\$(echo "\$NIXPKGS_SOURCETIME_PATH_OLD" | @sed@ "s#[^;];\\(.*\\)#\\1#")" -else - unset NIXPKGS_SOURCETIME_PATH -fi -if [ -z "\${NIXPKGS_SOURCETIME_PATH_OLD-}" ]; then - unset NIXPKGS_SOURCETIME_PATH_OLD -fi -# End of lines to clean up inside PATH the source-time utilities for Nixpkgs packaging -EOF - cat "$FILE_TO_WORK_ON" > "$FILE_TO_PATCH" - rm "$FILE_TO_WORK_ON" -} 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 deleted file mode 100644 index 82bc160..0000000 --- a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/default.nix +++ /dev/null @@ -1,442 +0,0 @@ -{ 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 - - - # 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} - - - # Test patching a blank file - - 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 "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 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 - - - # Test patching silent_hello - - 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 "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 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" - - - # Check the sample source - - echo "Running shellcheck against sample_source.bash" - shellcheck -s bash ${./sample_source.bash} - shellcheck -s ksh ${./sample_source.bash} - - - # Test patching the sample source - - 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 "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 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 - - - # Test double-patching the sample source - - 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 "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 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" - '' - ) - { }; - - - - 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 - - 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 - - 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 - - - # 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" - - 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" - - 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 - - - # Test patching a blank file - - echo > blank.fish - - 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 silent_hello file - - echo "hello > /dev/null" > silent_hello.fish - - 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 the sample source - - cp ${./sample_source.fish} sample_source_patched.fish - chmod u+w sample_source_patched.fish - - 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 double-patching the sample source - - echo "Patching again sample_source_patched.fish from ${./sample_source.fish}" - patchRcPathFish sample_source_patched.fish "$PWD/foxtrot:$PWD/golf" - - 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" - - - # Create a dummy output - touch "$out" - '' - ) - { }; - - - - 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 - - - # Check the setup hook script - - 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 - - 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" - - echo "Running shellcheck against blank_patched.sh" - shellcheck -s sh blank_patched.sh - shellcheck -s dash blank_patched.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 "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 "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" - - - # Test patching silent_hello file - - 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" - - 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 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" - - echo "Testing in Ksh if silent_hello_patched.sh get sourced without error" - ksh -eu -c ". $PWD/silent_hello_patched.sh" - - - # Generate the sample source "$PWD/delta:$PWD/foxtrot" "$PWD/delta:$PWD/foxtrot" - - substitute ${./sample_source.sh.in} sample_source.sh --replace @sed@ ${gnused}/bin/sed - chmod u+rw sample_source.sh - - - # Check the sample source - - echo "Running shellcheck against sample_source.sh" - shellcheck -s sh sample_source.sh - shellcheck -s dash sample_source.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" - - 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" - - - # 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" - '' - ) - { }; -} diff --git a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/sample_source.bash b/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/sample_source.bash deleted file mode 100644 index 6cb043e..0000000 --- a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/sample_source.bash +++ /dev/null @@ -1,2 +0,0 @@ -PATH="$PWD/charlie:${PATH/:$PWD\/bravo}" -export PATH diff --git a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/sample_source.csh.in b/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/sample_source.csh.in deleted file mode 100644 index 9606458..0000000 --- a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/sample_source.csh.in +++ /dev/null @@ -1 +0,0 @@ -setenv PATH $PWD/charlie:`echo "$PATH" | @sed@ "s#:$PWD/bravo##"` diff --git a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/sample_source.fish b/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/sample_source.fish deleted file mode 100644 index f638fe5..0000000 --- a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/sample_source.fish +++ /dev/null @@ -1,9 +0,0 @@ -begin - for p in $PATH - if test $p != "$PWD/bravo" - set TEMPORARY_PATH $TEMPORARY_PATH $p - end - end - set -g PATH $TEMPORARY_PATH -end -set PATH "$PWD/charlie" $PATH diff --git a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/sample_source.sh.in b/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/sample_source.sh.in deleted file mode 100644 index 42e64a1..0000000 --- a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/sample_source.sh.in +++ /dev/null @@ -1,2 +0,0 @@ -PATH="$PWD/charlie:$(echo "$PATH" | @sed@ "s#:$PWD/bravo##")" -export PATH diff --git a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/test-sourcing-bash b/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/test-sourcing-bash deleted file mode 100644 index 1b6cc54..0000000 --- a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/test-sourcing-bash +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash - -set -eu -o pipefail - -UNPATCHED_SOURCE_FILE="$1" -PATCHED_SOURCE_FILE="$2" -ORIG_PATH="$PWD/alfa:$PWD/bravo" -RESULT_PATH_FROM_UNPATCHED="$( - PATH="$ORIG_PATH"; export PATH - . "$UNPATCHED_SOURCE_FILE" - echo "$PATH" -)" -RESULT_PATH_FROM_PATCHED="$( - PATH="$ORIG_PATH"; export PATH - . "$PATCHED_SOURCE_FILE" - echo "$PATH" -)" -if [[ "$RESULT_PATH_FROM_UNPATCHED" != "$RESULT_PATH_FROM_PATCHED" ]]; then - echo "Result path mismatched: $UNPATCHED_SOURCE_FILE ($RESULT_PATH_FROM_UNPATCHED) and $PATCHED_SOURCE_FILE ($RESULT_PATH_FROM_PATCHED)" >&2 - exit 1 -fi diff --git a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/test-sourcing-csh b/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/test-sourcing-csh deleted file mode 100644 index 7ddb2dd..0000000 --- a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/test-sourcing-csh +++ /dev/null @@ -1,13 +0,0 @@ -#/usr/bin/env tcsh - -set UNPATCHED_SOURCE_FILE = "$1" -set PATCHED_SOURCE_FILE = "$2" -set ORIG_PATH = "${PWD}/alfa:${PWD}/bravo" - -set RESULT_PATH_FROM_UNPATCHED = `setenv PATH "$ORIG_PATH"; source $UNPATCHED_SOURCE_FILE; echo $PATH` -set RESULT_PATH_FROM_PATCHED = `setenv PATH "$ORIG_PATH"; source $PATCHED_SOURCE_FILE; echo $PATH` - -if ($RESULT_PATH_FROM_UNPATCHED != $RESULT_PATH_FROM_PATCHED) then - echo "Result path mismatched: $UNPATCHED_SOURCE_FILE ($RESULT_PATH_FROM_UNPATCHED) and $PATCHED_SOURCE_FILE ($RESULT_PATH_FROM_PATCHED)" > /dev/stderr - exit 1 -endif diff --git a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/test-sourcing-fish b/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/test-sourcing-fish deleted file mode 100644 index fcce014..0000000 --- a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/test-sourcing-fish +++ /dev/null @@ -1,13 +0,0 @@ -#/usr/bin/env fish - -set UNPATCHED_SOURCE_FILE $argv[1] -set PATCHED_SOURCE_FILE $argv[2] -set ORIG_PATH "$PWD/alfa:$PWD/bravo" - -set RESULT_PATH_FROM_UNPATCHED (fish -c "set -g PATH \"$ORIG_PATH\"; source $UNPATCHED_SOURCE_FILE; echo \"\$PATH\"") -set RESULT_PATH_FROM_PATCHED (fish -c "set -g PATH \"$ORIG_PATH\"; source $PATCHED_SOURCE_FILE; echo \"\$PATH\"") - -if test "$RESULT_PATH_FROM_UNPATCHED" != "$RESULT_PATH_FROM_PATCHED" - echo "Result path mismatched: $UNPATCHED_SOURCE_FILE ($RESULT_PATH_FROM_UNPATCHED) and $PATCHED_SOURCE_FILE ($RESULT_PATH_FROM_PATCHED)" >&2 - exit 1 -end diff --git a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/test-sourcing-posix b/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/test-sourcing-posix deleted file mode 100644 index 6039b4d..0000000 --- a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/test-sourcing-posix +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -set -eu - -UNPATCHED_SOURCE_FILE="$1" -PATCHED_SOURCE_FILE="$2" -ORIG_PATH="$PWD/alfa:$PWD/bravo" -RESULT_PATH_FROM_UNPATCHED="$( - PATH="$ORIG_PATH"; export PATH - . "$UNPATCHED_SOURCE_FILE" - echo "$PATH" -)" -RESULT_PATH_FROM_PATCHED="$( - PATH="$ORIG_PATH"; export PATH - . "$PATCHED_SOURCE_FILE" - echo "$PATH" -)" -if [ "$RESULT_PATH_FROM_UNPATCHED" != "$RESULT_PATH_FROM_PATCHED" ]; then - echo "Result path mismatched: $UNPATCHED_SOURCE_FILE ($RESULT_PATH_FROM_UNPATCHED) and $PATCHED_SOURCE_FILE ($RESULT_PATH_FROM_PATCHED)" > /dev/stderr - exit 1 -fi diff --git a/pkgs/build-support/setup-hooks/patch-shebangs.sh b/pkgs/build-support/setup-hooks/patch-shebangs.sh deleted file mode 100644 index 80a29d7..0000000 --- a/pkgs/build-support/setup-hooks/patch-shebangs.sh +++ /dev/null @@ -1,148 +0,0 @@ -# This setup hook causes the fixup phase to rewrite all script -# interpreter file names (`#! /path') to paths found in $PATH. E.g., -# /bin/sh will be rewritten to /nix/store/-some-bash/bin/sh. -# /usr/bin/env gets special treatment so that ".../bin/env python" is -# rewritten to /nix/store//bin/python. Interpreters that are -# already in the store are left untouched. -# A script file must be marked as executable, otherwise it will not be -# considered. - -fixupOutputHooks+=(patchShebangsAuto) - -# Run patch shebangs on a directory or file. -# Can take multiple paths as arguments. -# patchShebangs [--build | --host | --update] [--] PATH... - -# Flags: -# --build : Lookup commands available at build-time -# --host : Lookup commands available at runtime -# --update : Update shebang paths that are in Nix store - -# Example use cases, -# $ patchShebangs --host /nix/store/...-hello-1.0/bin -# $ patchShebangs --build configure - -patchShebangs() { - local pathName - local update - - while [[ $# -gt 0 ]]; do - case "$1" in - --host) - pathName=HOST_PATH - shift - ;; - --build) - pathName=PATH - shift - ;; - --update) - update=true - shift - ;; - --) - shift - break - ;; - -*|--*) - echo "Unknown option $1 supplied to patchShebangs" >&2 - return 1 - ;; - *) - break - ;; - esac - done - - echo "patching script interpreter paths in $@" - local f - local oldPath - local newPath - local arg0 - local args - local oldInterpreterLine - local newInterpreterLine - - if [[ $# -eq 0 ]]; then - echo "No arguments supplied to patchShebangs" >&2 - return 0 - fi - - local f - while IFS= read -r -d $'\0' f; do - isScript "$f" || continue - - # read exits unclean if the shebang does not end with a newline, but still assigns the variable. - # So if read returns errno != 0, we check if the assigned variable is non-empty and continue. - read -r oldInterpreterLine < "$f" || [ "$oldInterpreterLine" ] - - read -r oldPath arg0 args <<< "${oldInterpreterLine:2}" - - if [[ -z "${pathName:-}" ]]; then - if [[ -n $strictDeps && $f == "$NIX_STORE"* ]]; then - pathName=HOST_PATH - else - pathName=PATH - fi - fi - - if [[ "$oldPath" == *"/bin/env" ]]; then - if [[ $arg0 == "-S" ]]; then - arg0=${args%% *} - args=${args#* } - newPath="$(PATH="${!pathName}" command -v "env" || true)" - args="-S $(PATH="${!pathName}" command -v "$arg0" || true) $args" - - # Check for unsupported 'env' functionality: - # - options: something starting with a '-' besides '-S' - # - environment variables: foo=bar - elif [[ $arg0 == "-"* || $arg0 == *"="* ]]; then - echo "$f: unsupported interpreter directive \"$oldInterpreterLine\" (set dontPatchShebangs=1 and handle shebang patching yourself)" >&2 - exit 1 - else - newPath="$(PATH="${!pathName}" command -v "$arg0" || true)" - fi - else - if [[ -z $oldPath ]]; then - # If no interpreter is specified linux will use /bin/sh. Set - # oldpath="/bin/sh" so that we get /nix/store/.../sh. - oldPath="/bin/sh" - fi - - newPath="$(PATH="${!pathName}" command -v "$(basename "$oldPath")" || true)" - - args="$arg0 $args" - fi - - # Strip trailing whitespace introduced when no arguments are present - newInterpreterLine="$newPath $args" - newInterpreterLine=${newInterpreterLine%${newInterpreterLine##*[![:space:]]}} - - if [[ -n "$oldPath" && ( "$update" == true || "${oldPath:0:${#NIX_STORE}}" != "$NIX_STORE" ) ]]; then - if [[ -n "$newPath" && "$newPath" != "$oldPath" ]]; then - echo "$f: interpreter directive changed from \"$oldInterpreterLine\" to \"$newInterpreterLine\"" - # escape the escape chars so that sed doesn't interpret them - escapedInterpreterLine=${newInterpreterLine//\\/\\\\} - - # Preserve times, see: https://github.com/NixOS/nixpkgs/pull/33281 - timestamp=$(stat --printf "%y" "$f") - sed -i -e "1 s|.*|#\!$escapedInterpreterLine|" "$f" - touch --date "$timestamp" "$f" - fi - fi - done < <(find "$@" -type f -perm -0100 -print0) -} - -patchShebangsAuto () { - if [[ -z "${dontPatchShebangs-}" && -e "$prefix" ]]; then - - # Dev output will end up being run on the build platform. An - # example case of this is sdl2-config. Otherwise, we can just - # use the runtime path (--host). - if [[ "$output" != out && "$output" = "$outputDev" ]]; then - patchShebangs --build "$prefix" - else - patchShebangs --host "$prefix" - fi - fi -} diff --git a/pkgs/build-support/setup-hooks/postgresql-test-hook/default.nix b/pkgs/build-support/setup-hooks/postgresql-test-hook/default.nix deleted file mode 100644 index e9e77b0..0000000 --- a/pkgs/build-support/setup-hooks/postgresql-test-hook/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ callPackage, makeSetupHook }: - -makeSetupHook { - name = "postgresql-test-hook"; - passthru.tests = { - simple = callPackage ./test.nix { }; - }; -} ./postgresql-test-hook.sh diff --git a/pkgs/build-support/setup-hooks/postgresql-test-hook/postgresql-test-hook.sh b/pkgs/build-support/setup-hooks/postgresql-test-hook/postgresql-test-hook.sh deleted file mode 100644 index d09153b..0000000 --- a/pkgs/build-support/setup-hooks/postgresql-test-hook/postgresql-test-hook.sh +++ /dev/null @@ -1,83 +0,0 @@ -preCheckHooks+=('postgresqlStart') -postCheckHooks+=('postgresqlStop') - - -postgresqlStart() { - - # Add default environment variable values - # - # Client variables: - # - https://www.postgresql.org/docs/current/libpq-envars.html - # - # Server variables: - # - only PGDATA: https://www.postgresql.org/docs/current/creating-cluster.html - - if [[ "${PGDATA:-}" == "" ]]; then - PGDATA="$NIX_BUILD_TOP/postgresql" - fi - export PGDATA - - if [[ "${PGHOST:-}" == "" ]]; then - mkdir -p "$NIX_BUILD_TOP/run/postgresql" - PGHOST="$NIX_BUILD_TOP/run/postgresql" - fi - export PGHOST - - if [[ "${PGUSER:-}" == "" ]]; then - PGUSER="test_user" - fi - export PGUSER - - if [[ "${PGDATABASE:-}" == "" ]]; then - PGDATABASE="test_db" - fi - export PGDATABASE - - if [[ "${postgresqlTestUserOptions:-}" == "" ]]; then - postgresqlTestUserOptions="LOGIN" - fi - - if [[ "${postgresqlTestSetupSQL:-}" == "" ]]; then - postgresqlTestSetupSQL="$(cat </dev/null; then - echo >&2 'initdb not found. Did you add postgresql to the nativeCheckInputs?' - false - fi - echo 'initializing postgresql' - initdb -U postgres - - echo "$postgresqlExtraSettings" >>"$PGDATA/postgresql.conf" - - # Move the socket - echo "unix_socket_directories = '$NIX_BUILD_TOP/run/postgresql'" >>"$PGDATA/postgresql.conf" - - # TCP ports can be a problem in some sandboxes, - # so we disable tcp listening by default - if ! [[ "${postgresqlEnableTCP:-}" = 1 ]]; then - echo "listen_addresses = ''" >>"$PGDATA/postgresql.conf" - fi - - echo 'starting postgresql' - eval "${postgresqlStartCommands:-pg_ctl start}" - - echo 'setting up postgresql' - eval "$postgresqlTestSetupCommands" - - runHook postgresqlTestSetupPost - -} - -postgresqlStop() { - echo 'stopping postgresql' - pg_ctl stop -} diff --git a/pkgs/build-support/setup-hooks/postgresql-test-hook/test.nix b/pkgs/build-support/setup-hooks/postgresql-test-hook/test.nix deleted file mode 100644 index 9881ed1..0000000 --- a/pkgs/build-support/setup-hooks/postgresql-test-hook/test.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ postgresql, postgresqlTestHook, stdenv }: - -stdenv.mkDerivation { - name = "postgresql-test-hook-test"; - buildInputs = [ postgresqlTestHook ]; - nativeCheckInputs = [ postgresql ]; - dontUnpack = true; - doCheck = true; - passAsFile = ["sql"]; - sql = '' - CREATE TABLE hello ( - message text - ); - INSERT INTO hello VALUES ('it '||'worked'); - SELECT * FROM hello; - ''; - postgresqlTestSetupPost = '' - TEST_POST_HOOK_RAN=1 - ''; - checkPhase = '' - runHook preCheck - psql <$sqlPath | grep 'it worked' - TEST_RAN=1 - runHook postCheck - ''; - installPhase = '' - [[ $TEST_RAN == 1 && $TEST_POST_HOOK_RAN == 1 ]] - touch $out - ''; -} diff --git a/pkgs/build-support/setup-hooks/prune-libtool-files.sh b/pkgs/build-support/setup-hooks/prune-libtool-files.sh deleted file mode 100644 index 0ec5654..0000000 --- a/pkgs/build-support/setup-hooks/prune-libtool-files.sh +++ /dev/null @@ -1,22 +0,0 @@ -# Clear dependency_libs in libtool files for shared libraries. - -# Shared libraries already encode their dependencies with locations. .la -# files do not always encode those locations, and sometimes encode the -# locations in the wrong Nix output. .la files are not needed for shared -# libraries, but without dependency_libs they do not hurt either. - -fixupOutputHooks+=(_pruneLibtoolFiles) - -_pruneLibtoolFiles() { - if [ "${dontPruneLibtoolFiles-}" ] || [ ! -e "$prefix" ]; then - return - fi - - # Libtool uses "dlname" and "library_names" fields for shared libraries and - # the "old_library" field for static libraries. We are processing only - # those .la files that do not describe static libraries. - find "$prefix" -type f -name '*.la' \ - -exec grep -q '^# Generated by .*libtool' {} \; \ - -exec grep -q "^old_library=''" {} \; \ - -exec sed -i {} -e "/^dependency_libs='[^']/ c dependency_libs='' #pruned" \; -} diff --git a/pkgs/build-support/setup-hooks/reproducible-builds.sh b/pkgs/build-support/setup-hooks/reproducible-builds.sh deleted file mode 100644 index 5e27ce8..0000000 --- a/pkgs/build-support/setup-hooks/reproducible-builds.sh +++ /dev/null @@ -1,11 +0,0 @@ -# Use the last part of the out path as hash input for the build. -# This should ensure that it is deterministic across rebuilds of the same -# derivation and not easily collide with other builds. -# We also truncate the hash so that it cannot cause reference cycles. -NIX_CFLAGS_COMPILE="${NIX_CFLAGS_COMPILE:-} -frandom-seed=$( - randSeed=${NIX_OUTPATH_USED_AS_RANDOM_SEED:-$out} - outbase="${randSeed##*/}" - randomseed="${outbase:0:10}" - echo $randomseed -)" -export NIX_CFLAGS_COMPILE diff --git a/pkgs/build-support/setup-hooks/role.bash b/pkgs/build-support/setup-hooks/role.bash deleted file mode 100644 index bfd6b61..0000000 --- a/pkgs/build-support/setup-hooks/role.bash +++ /dev/null @@ -1,71 +0,0 @@ -# Since the same derivation can be depended on in multiple ways, we need to -# accumulate *each* role (i.e. host and target platforms relative the depending -# derivation) in which the derivation is used. -# -# The role is intended to be used as part of other variables names like -# - $NIX_SOMETHING${role_post} - -function getRole() { - case $1 in - -1) - role_post='_FOR_BUILD' - ;; - 0) - role_post='' - ;; - 1) - role_post='_FOR_TARGET' - ;; - *) - echo "@name@: used as improper sort of dependency" >&2 - return 1 - ;; - esac -} - -# `hostOffset` describes how the host platform of the package is slid relative -# to the depending package. `targetOffset` likewise describes the target -# platform of the package. Both are brought into scope of the setup hook defined -# for dependency whose setup hook is being processed relative to the package -# being built. - -function getHostRole() { - getRole "$hostOffset" -} -function getTargetRole() { - getRole "$targetOffset" -} - -# `depHostOffset` describes how the host platform of the dependencies are slid -# relative to the depending package. `depTargetOffset` likewise describes the -# target platform of dependenices. Both are brought into scope of the -# environment hook defined for the dependency being applied relative to the -# package being built. - -function getHostRoleEnvHook() { - getRole "$depHostOffset" -} -function getTargetRoleEnvHook() { - getRole "$depTargetOffset" -} - -# This variant is intended specifically for code-producing tool wrapper scripts -# `NIX_@wrapperName@_TARGET_*_@suffixSalt@` tracks this (needs to be an exported -# env var so can't use fancier data structures). -function getTargetRoleWrapper() { - case $targetOffset in - -1) - export NIX_@wrapperName@_TARGET_BUILD_@suffixSalt@=1 - ;; - 0) - export NIX_@wrapperName@_TARGET_HOST_@suffixSalt@=1 - ;; - 1) - export NIX_@wrapperName@_TARGET_TARGET_@suffixSalt@=1 - ;; - *) - echo "@name@: used as improper sort of dependency" >&2 - return 1 - ;; - esac -} diff --git a/pkgs/build-support/setup-hooks/separate-debug-info.sh b/pkgs/build-support/setup-hooks/separate-debug-info.sh deleted file mode 100644 index 197e8a9..0000000 --- a/pkgs/build-support/setup-hooks/separate-debug-info.sh +++ /dev/null @@ -1,52 +0,0 @@ -export NIX_SET_BUILD_ID=1 -export NIX_LDFLAGS+=" --compress-debug-sections=zlib" -export NIX_CFLAGS_COMPILE+=" -ggdb -Wa,--compress-debug-sections" -export NIX_RUSTFLAGS+=" -g" - -fixupOutputHooks+=(_separateDebugInfo) - -_separateDebugInfo() { - [ -e "$prefix" ] || return 0 - - local dst="${debug:-$out}" - if [ "$prefix" = "$dst" ]; then return 0; fi - - # in case there is nothing to strip, don't fail the build - mkdir -p "$dst" - - dst="$dst/lib/debug/.build-id" - - # Find executables and dynamic libraries. - local i - while IFS= read -r -d $'\0' i; do - if ! isELF "$i"; then continue; fi - - [ -z "${READELF:-}" ] && echo "_separateDebugInfo: '\$READELF' variable is empty, skipping." 1>&2 && break - [ -z "${OBJCOPY:-}" ] && echo "_separateDebugInfo: '\$OBJCOPY' variable is empty, skipping." 1>&2 && break - - # Extract the Build ID. FIXME: there's probably a cleaner way. - local id="$($READELF -n "$i" | sed 's/.*Build ID: \([0-9a-f]*\).*/\1/; t; d')" - if [ "${#id}" != 40 ]; then - echo "could not find build ID of $i, skipping" >&2 - continue - fi - - # Extract the debug info. - echo "separating debug info from $i (build ID $id)" - mkdir -p "$dst/${id:0:2}" - - # This may fail, e.g. if the binary is for a different - # architecture than we're building for. (This happens with - # firmware blobs in QEMU.) - ( - if [ -f "$dst/${id:0:2}/${id:2}.debug" ] - then - echo "separate-debug-info: warning: multiple files with build id $id found, overwriting" - fi - $OBJCOPY --only-keep-debug "$i" "$dst/${id:0:2}/${id:2}.debug" - - # Also a create a symlink .debug. - ln -sfn ".build-id/${id:0:2}/${id:2}.debug" "$dst/../$(basename "$i")" - ) || rmdir -p "$dst/${id:0:2}" - done < <(find "$prefix" -type f -print0 | sort -z) -} diff --git a/pkgs/build-support/setup-hooks/set-java-classpath.sh b/pkgs/build-support/setup-hooks/set-java-classpath.sh deleted file mode 100644 index 445fa56..0000000 --- a/pkgs/build-support/setup-hooks/set-java-classpath.sh +++ /dev/null @@ -1,13 +0,0 @@ -# This setup hook adds every JAR in the share/java subdirectories of -# the build inputs to $CLASSPATH. - -export CLASSPATH - -addPkgToClassPath () { - local jar - for jar in $1/share/java/*.jar; do - export CLASSPATH=''${CLASSPATH-}''${CLASSPATH:+:}''${jar} - done -} - -addEnvHooks "$targetOffset" addPkgToClassPath diff --git a/pkgs/build-support/setup-hooks/set-source-date-epoch-to-latest.sh b/pkgs/build-support/setup-hooks/set-source-date-epoch-to-latest.sh deleted file mode 100644 index ae34ffe..0000000 --- a/pkgs/build-support/setup-hooks/set-source-date-epoch-to-latest.sh +++ /dev/null @@ -1,34 +0,0 @@ -updateSourceDateEpoch() { - local path="$1" - - # Get the last modification time of all regular files, sort them, - # and get the most recent. Maybe we should use - # https://github.com/0-wiz-0/findnewest here. - local -a res=($(find "$path" -type f -not -newer "$NIX_BUILD_TOP/.." -printf '%T@ %p\0' \ - | sort -n --zero-terminated | tail -n1 --zero-terminated | head -c -1)) - local time="${res[0]//\.[0-9]*/}" # remove the fraction part - local newestFile="${res[1]}" - - # Update $SOURCE_DATE_EPOCH if the most recent file we found is newer. - if [ "${time:-0}" -gt "$SOURCE_DATE_EPOCH" ]; then - echo "setting SOURCE_DATE_EPOCH to timestamp $time of file $newestFile" - export SOURCE_DATE_EPOCH="$time" - - # Warn if the new timestamp is too close to the present. This - # may indicate that we were being applied to a file generated - # during the build, or that an unpacker didn't restore - # timestamps properly. - local now="$(date +%s)" - if [ "$time" -gt $((now - 60)) ]; then - echo "warning: file $newestFile may be generated; SOURCE_DATE_EPOCH may be non-deterministic" - fi - fi -} - -postUnpackHooks+=(_updateSourceDateEpochFromSourceRoot) - -_updateSourceDateEpochFromSourceRoot() { - if [ -n "$sourceRoot" ]; then - updateSourceDateEpoch "$sourceRoot" - fi -} diff --git a/pkgs/build-support/setup-hooks/setup-debug-info-dirs.sh b/pkgs/build-support/setup-hooks/setup-debug-info-dirs.sh deleted file mode 100644 index 96bf48c..0000000 --- a/pkgs/build-support/setup-hooks/setup-debug-info-dirs.sh +++ /dev/null @@ -1,5 +0,0 @@ -setupDebugInfoDirs () { - addToSearchPath NIX_DEBUG_INFO_DIRS $1/lib/debug -} - -addEnvHooks "$targetOffset" setupDebugInfoDirs diff --git a/pkgs/build-support/setup-hooks/shorten-perl-shebang.sh b/pkgs/build-support/setup-hooks/shorten-perl-shebang.sh deleted file mode 100644 index 825da1b..0000000 --- a/pkgs/build-support/setup-hooks/shorten-perl-shebang.sh +++ /dev/null @@ -1,88 +0,0 @@ -# This setup hook modifies a Perl script so that any "-I" flags in its shebang -# line are rewritten into a "use lib ..." statement on the next line. This gets -# around a limitation in Darwin, which will not properly handle a script whose -# shebang line exceeds 511 characters. -# -# Each occurrence of "-I /path/to/lib1" or "-I/path/to/lib2" is removed from -# the shebang line, along with the single space that preceded it. These library -# paths are placed into a new line of the form -# -# use lib "/path/to/lib1", "/path/to/lib2"; -# -# immediately following the shebang line. If a library appeared in the original -# list more than once, only its first occurrence will appear in the output -# list. In other words, the libraries are deduplicated, but the ordering of the -# first appearance of each one is preserved. -# -# Any flags other than "-I" in the shebang line are left as-is, and the -# interpreter is also left alone (although the script will abort if the -# interpreter does not seem to be either "perl" or else "env" with "perl" as -# its argument). Each line after the shebang line is left unchanged. Each file -# is modified in place. -# -# Usage: -# shortenPerlShebang SCRIPT... - -shortenPerlShebang() { - while [ $# -gt 0 ]; do - _shortenPerlShebang "$1" - shift - done -} - -_shortenPerlShebang() { - local program="$1" - - echo "shortenPerlShebang: rewriting shebang line in $program" - - if ! isScript "$program"; then - die "shortenPerlShebang: refusing to modify $program because it is not a script" - fi - - local temp="$(mktemp)" - - gawk ' - (NR == 1) { - if (!($0 ~ /\/(perl|env +perl)\>/)) { - print "shortenPerlShebang: script does not seem to be a Perl script" > "/dev/stderr" - exit 1 - } - idx = 0 - while (match($0, / -I ?([^ ]+)/, pieces)) { - matches[idx] = pieces[1] - idx++ - $0 = gensub(/ -I ?[^ ]+/, "", 1, $0) - } - print $0 - if (idx > 0) { - prefix = "use lib " - for (idx in matches) { - path = matches[idx] - if (!(path in seen)) { - printf "%s\"%s\"", prefix, path - seen[path] = 1 - prefix = ", " - } - } - print ";" - } - } - (NR > 1 ) { - print - } - ' "$program" > "$temp" || die - # Preserve the mode of the original file - cp --preserve=mode --attributes-only "$program" "$temp" - mv "$temp" "$program" - - # Measure the new shebang line length and make sure it's okay. We subtract - # one to account for the trailing newline that "head" included in its - # output. - local new_length=$(( $(head -n 1 "$program" | wc -c) - 1 )) - - # Darwin is okay when the shebang line contains 511 characters, but not - # when it contains 512 characters. - if [ $new_length -ge 512 ]; then - die "shortenPerlShebang: shebang line is $new_length characters--still too long for Darwin!" - fi -} diff --git a/pkgs/build-support/setup-hooks/strip-java-archives.sh b/pkgs/build-support/setup-hooks/strip-java-archives.sh deleted file mode 100644 index 2232246..0000000 --- a/pkgs/build-support/setup-hooks/strip-java-archives.sh +++ /dev/null @@ -1,16 +0,0 @@ -# This setup hook makes the fixup phase to repack all java archives in a -# deterministic fashion. The most important change being done is the resetting -# of the modification times of the archive entries - -fixupOutputHooks+=('stripJavaArchivesIn $prefix') - -stripJavaArchivesIn() { - local dir="$1" - echo "stripping java archives in $dir" - find $dir -type f -regextype posix-egrep -regex ".*\.(jar|war|hpi|apk)$" -print0 | - while IFS= read -rd '' f; do - echo "stripping java archive $f" - strip-nondeterminism --type jar "$f" - done -} - diff --git a/pkgs/build-support/setup-hooks/strip.sh b/pkgs/build-support/setup-hooks/strip.sh deleted file mode 100644 index ce41e6e..0000000 --- a/pkgs/build-support/setup-hooks/strip.sh +++ /dev/null @@ -1,98 +0,0 @@ -# This setup hook strips libraries and executables in the fixup phase. - -fixupOutputHooks+=(_doStrip) - -_doStrip() { - # We don't bother to strip build platform code because it shouldn't make it - # to $out anyways---if it does, that's a bigger problem that a lack of - # stripping will help catch. - local -ra flags=(dontStripHost dontStripTarget) - local -ra debugDirs=(stripDebugList stripDebugListTarget) - local -ra allDirs=(stripAllList stripAllListTarget) - local -ra stripCmds=(STRIP STRIP_FOR_TARGET) - local -ra ranlibCmds=(RANLIB RANLIB_FOR_TARGET) - - # TODO(structured-attrs): This doesn't work correctly if one of - # the items in strip*List or strip*Flags contains a space, - # even with structured attrs enabled. This is OK for now - # because very few packages set any of these, and it doesn't - # affect any of them. - # - # After __structuredAttrs = true is universal, come back and - # push arrays all the way through this logic. - - # Strip only host paths by default. Leave targets as is. - stripDebugList=${stripDebugList[*]:-lib lib32 lib64 libexec bin sbin} - stripDebugListTarget=${stripDebugListTarget[*]:-} - stripAllList=${stripAllList[*]:-} - stripAllListTarget=${stripAllListTarget[*]:-} - - local i - for i in ${!stripCmds[@]}; do - local -n flag="${flags[$i]}" - local -n debugDirList="${debugDirs[$i]}" - local -n allDirList="${allDirs[$i]}" - local -n stripCmd="${stripCmds[$i]}" - local -n ranlibCmd="${ranlibCmds[$i]}" - - # `dontStrip` disables them all - if [[ "${dontStrip-}" || "${flag-}" ]] || ! type -f "${stripCmd-}" 2>/dev/null 1>&2 - then continue; fi - - stripDirs "$stripCmd" "$ranlibCmd" "$debugDirList" "${stripDebugFlags[*]:--S -p}" - stripDirs "$stripCmd" "$ranlibCmd" "$allDirList" "${stripAllFlags[*]:--s -p}" - done -} - -stripDirs() { - local cmd="$1" - local ranlibCmd="$2" - local paths="$3" - local stripFlags="$4" - local excludeFlags=() - local pathsNew= - - [ -z "$cmd" ] && echo "stripDirs: Strip command is empty" 1>&2 && exit 1 - [ -z "$ranlibCmd" ] && echo "stripDirs: Ranlib command is empty" 1>&2 && exit 1 - - local pattern - if [ -n "${stripExclude:-}" ]; then - for pattern in "${stripExclude[@]}"; do - excludeFlags+=(-a '!' '(' -name "$pattern" -o -wholename "$prefix/$pattern" ')' ) - done - fi - - local p - for p in ${paths}; do - if [ -e "$prefix/$p" ]; then - pathsNew="${pathsNew} $prefix/$p" - fi - done - paths=${pathsNew} - - if [ -n "${paths}" ]; then - echo "stripping (with command $cmd and flags $stripFlags) in $paths" - local striperr - striperr="$(mktemp --tmpdir="$TMPDIR" 'striperr.XXXXXX')" - # Do not strip lib/debug. This is a directory used by setup-hooks/separate-debug-info.sh. - find $paths -type f "${excludeFlags[@]}" -a '!' -path "$prefix/lib/debug/*" -print0 | - # Make sure we process files under symlinks only once. Otherwise - # 'strip` can corrupt files when writes to them in parallel: - # https://github.com/NixOS/nixpkgs/issues/246147#issuecomment-1657072039 - xargs -r -0 -n1 -- realpath -z | sort -u -z | - - xargs -r -0 -n1 -P "$NIX_BUILD_CORES" -- $cmd $stripFlags 2>"$striperr" || exit_code=$? - # xargs exits with status code 123 if some but not all of the - # processes fail. We don't care if some of the files couldn't - # be stripped, so ignore specifically this code. - [[ "$exit_code" = 123 || -z "$exit_code" ]] || (cat "$striperr" 1>&2 && exit 1) - - rm "$striperr" - # 'strip' does not normally preserve archive index in .a files. - # This usually causes linking failures against static libs like: - # ld: ...-i686-w64-mingw32-stage-final-gcc-13.0.0-lib/i686-w64-mingw32/lib/libstdc++.dll.a: - # error adding symbols: archive has no index; run ranlib to add one - # Restore the index by running 'ranlib'. - find $paths -name '*.a' -type f -exec $ranlibCmd '{}' \; 2>/dev/null - fi -} diff --git a/pkgs/build-support/setup-hooks/update-autotools-gnu-config-scripts.sh b/pkgs/build-support/setup-hooks/update-autotools-gnu-config-scripts.sh deleted file mode 100644 index ebd3afa..0000000 --- a/pkgs/build-support/setup-hooks/update-autotools-gnu-config-scripts.sh +++ /dev/null @@ -1,12 +0,0 @@ -preConfigurePhases+=" updateAutotoolsGnuConfigScriptsPhase" - -updateAutotoolsGnuConfigScriptsPhase() { - if [ -n "${dontUpdateAutotoolsGnuConfigScripts-}" ]; then return; fi - - for script in config.sub config.guess; do - for f in $(find . -type f -name "$script"); do - echo "Updating Autotools / GNU config script to a newer upstream version: $f" - cp -f "@gnu_config@/$script" "$f" - done - done -} diff --git a/pkgs/build-support/setup-hooks/use-old-cxx-abi.sh b/pkgs/build-support/setup-hooks/use-old-cxx-abi.sh deleted file mode 100644 index 53335d7..0000000 --- a/pkgs/build-support/setup-hooks/use-old-cxx-abi.sh +++ /dev/null @@ -1 +0,0 @@ -export NIX_CFLAGS_COMPILE+=" -D_GLIBCXX_USE_CXX11_ABI=0" diff --git a/pkgs/build-support/setup-hooks/validate-pkg-config.sh b/pkgs/build-support/setup-hooks/validate-pkg-config.sh deleted file mode 100644 index c212a1f..0000000 --- a/pkgs/build-support/setup-hooks/validate-pkg-config.sh +++ /dev/null @@ -1,18 +0,0 @@ -# This setup hook validates each pkgconfig file in each output. - -fixupOutputHooks+=(_validatePkgConfig) - -_validatePkgConfig() { - local bail=0 - for pc in $(find "$prefix" -name '*.pc'); do - # Do not fail immediately. It's nice to see all errors when - # there are multiple pkgconfig files. - if ! $PKG_CONFIG --validate "$pc"; then - bail=1 - fi - done - - if [ $bail -eq 1 ]; then - exit 1 - fi -} diff --git a/pkgs/build-support/setup-hooks/win-dll-link.sh b/pkgs/build-support/setup-hooks/win-dll-link.sh deleted file mode 100644 index 14594bc..0000000 --- a/pkgs/build-support/setup-hooks/win-dll-link.sh +++ /dev/null @@ -1,89 +0,0 @@ -fixupOutputHooks+=(_linkDLLs) - -addEnvHooks "$targetOffset" linkDLLGetFolders - -linkDLLGetFolders() { - addToSearchPath "LINK_DLL_FOLDERS" "$1/lib" - addToSearchPath "LINK_DLL_FOLDERS" "$1/bin" -} - -_linkDLLs() { - linkDLLsInfolder "$prefix/bin" -} - -# Try to links every known dependency of exe/dll in the folder of the 1str input -# into said folder, so they are found on invocation. -# (DLLs are first searched in the directory of the running exe file.) -# The links are relative, so relocating whole /nix/store won't break them. -linkDLLsInfolder() { - ( - local folder - folder="$1" - if [ ! -d "$folder" ]; then - echo "Not linking DLLs in the non-existent folder $folder" - return - fi - cd "$folder" || exit - - # Use associative arrays as set - local filesToChecks - local filesDone - declare -A filesToChecks # files that still needs to have their dependancies checked - declare -A filesDone # files that had their dependancies checked and who is copied to the bin folder if found - - markFileAsDone() { - if [ ! "${filesDone[$1]+a}" ]; then filesDone[$1]=a; fi - if [ "${filesToChecks[$1]+a}" ]; then unset 'filesToChecks[$1]'; fi - } - - addFileToLink() { - if [ "${filesDone[$1]+a}" ]; then return; fi - if [ ! "${filesToChecks[$1]+a}" ]; then filesToChecks[$1]=a; fi - } - - # Compose path list where DLLs should be located: - # prefix $PATH by currently-built outputs - local DLLPATH="" - local outName - for outName in $(getAllOutputNames); do - addToSearchPath DLLPATH "${!outName}/bin" - done - DLLPATH="$DLLPATH:$LINK_DLL_FOLDERS" - - echo DLLPATH="'$DLLPATH'" - - for peFile in *.{exe,dll}; do - if [ -e "./$peFile" ]; then - addFileToLink "$peFile" - fi - done - - local searchPaths - readarray -td: searchPaths < <(printf -- "%s" "$DLLPATH") - - local linkCount=0 - while [ ${#filesToChecks[*]} -gt 0 ]; do - local listOfDlls=("${!filesToChecks[@]}") - local file=${listOfDlls[0]} - markFileAsDone "$file" - if [ ! -e "./$file" ]; then - local pathsFound - readarray -d '' pathsFound < <(find "${searchPaths[@]}" -name "$file" -type f -print0) - if [ ${#pathsFound[@]} -eq 0 ]; then continue; fi - local dllPath - dllPath="${pathsFound[0]}" - CYGWIN+=" winsymlinks:nativestrict" ln -sr "$dllPath" . - echo "linking $dllPath" - file="$dllPath" - linkCount=$((linkCount + 1)) - fi - # local dep_file - # Look at the file’s dependancies - for dep_file in $($OBJDUMP -p "$file" | sed -n 's/.*DLL Name: \(.*\)/\1/p' | sort -u); do - addFileToLink "$dep_file" - done - done - - echo "Created $linkCount DLL link(s) in $folder" - ) -} diff --git a/pkgs/build-support/setup-hooks/wrap-gapps-hook/default.nix b/pkgs/build-support/setup-hooks/wrap-gapps-hook/default.nix deleted file mode 100644 index 3c5199b..0000000 --- a/pkgs/build-support/setup-hooks/wrap-gapps-hook/default.nix +++ /dev/null @@ -1,203 +0,0 @@ -{ 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 - - 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 - - # 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; - - 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; - - strictDeps = true; - nativeBuildInputs = [ wrapGAppsHook ]; - - 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"} - ''; - }; - }; -} ./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 deleted file mode 100644 index 59fa9de..0000000 --- a/pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/lib.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ lib, runCommand }: - -rec { - 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; - - fail = text: '' - echo "FAIL: $name: ${text}" > /dev/stderr - exit 1 - ''; - - expectSomeLineContainingYInFileXToMentionZ = file: filter: expected: '' - file=${lib.escapeShellArg file} filter=${lib.escapeShellArg filter} expected=${lib.escapeShellArg expected} - - if ! grep --text --quiet "$filter" "$file"; then - ${fail "The file “$file” should include a line containing “$filter”."} - fi - - if ! grep --text "$filter" "$file" | grep --text --quiet "$expected"; then - ${fail "The file “$file” should include a line containing “$filter” that also contains “$expected”."} - fi - ''; -} diff --git a/pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/sample-project/Makefile b/pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/sample-project/Makefile deleted file mode 100644 index 5d234db..0000000 --- a/pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/sample-project/Makefile +++ /dev/null @@ -1,30 +0,0 @@ -PREFIX = $(out) -BINDIR = $(PREFIX)/bin -LIBEXECDIR = $(PREFIX)/libexec -LIBDIR = $(PREFIX)/lib -TYPELIBDIR = $(LIBDIR)/girepository-1.0 - -all: - echo "Compiling…" -install: - echo "Installing…" - -bin: - mkdir -p $(BINDIR) -# Adds `bin-${foo}` targets, that install `${foo}` executable to `$(BINDIR)`. -bin-%: bin - touch $(BINDIR)/$(@:bin-%=%) - chmod +x $(BINDIR)/$(@:bin-%=%) - -libexec: - mkdir -p $(LIBEXECDIR) -# Adds `libexec-${foo}` targets, that install `${foo}` executable to `$(LIBEXECDIR)`. -libexec-%: libexec - touch $(LIBEXECDIR)/$(@:libexec-%=%) - chmod +x $(LIBEXECDIR)/$(@:libexec-%=%) - -typelib: - mkdir -p $(TYPELIBDIR) -# Adds `typelib-${foo}` targets, that install `${foo}-1.0.typelib` file to `$(TYPELIBDIR)`. -typelib-%: typelib - touch $(TYPELIBDIR)/$(@:typelib-%=%)-1.0.typelib diff --git a/pkgs/build-support/setup-hooks/wrap-gapps-hook/wrap-gapps-hook.sh b/pkgs/build-support/setup-hooks/wrap-gapps-hook/wrap-gapps-hook.sh deleted file mode 100644 index 0acf4a8..0000000 --- a/pkgs/build-support/setup-hooks/wrap-gapps-hook/wrap-gapps-hook.sh +++ /dev/null @@ -1,89 +0,0 @@ -# shellcheck shell=bash -gappsWrapperArgs=() - -find_gio_modules() { - if [ -d "$1/lib/gio/modules" ] && [ -n "$(ls -A "$1/lib/gio/modules")" ] ; then - gappsWrapperArgs+=(--prefix GIO_EXTRA_MODULES : "$1/lib/gio/modules") - fi -} - -addEnvHooks "${targetOffset:?}" find_gio_modules - -gappsWrapperArgsHook() { - if [ -n "$GDK_PIXBUF_MODULE_FILE" ]; then - gappsWrapperArgs+=(--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE") - fi - - if [ -n "$GSETTINGS_SCHEMAS_PATH" ]; then - gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH") - fi - - # Check for prefix as well - if [ -d "${prefix:?}/share" ]; then - gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "$prefix/share") - fi - - if [ -d "$prefix/lib/gio/modules" ] && [ -n "$(ls -A "$prefix/lib/gio/modules")" ]; then - gappsWrapperArgs+=(--prefix GIO_EXTRA_MODULES : "$prefix/lib/gio/modules") - fi - - for v in ${wrapPrefixVariables:-} GST_PLUGIN_SYSTEM_PATH_1_0 GI_TYPELIB_PATH GRL_PLUGIN_PATH; do - if [ -n "${!v}" ]; then - gappsWrapperArgs+=(--prefix "$v" : "${!v}") - fi - done -} - -preFixupPhases+=" gappsWrapperArgsHook" - -wrapGApp() { - local program="$1" - shift 1 - wrapProgram "$program" "${gappsWrapperArgs[@]}" "$@" -} - -# Note: $gappsWrapperArgs still gets defined even if ${dontWrapGApps-} is set. -wrapGAppsHook() { - # guard against running multiple times (e.g. due to propagation) - [ -z "$wrapGAppsHookHasRun" ] || return 0 - wrapGAppsHookHasRun=1 - - if [[ -z "${dontWrapGApps:-}" ]]; then - targetDirsThatExist=() - targetDirsRealPath=() - - # wrap binaries - targetDirs=("${prefix}/bin" "${prefix}/libexec") - for targetDir in "${targetDirs[@]}"; do - if [[ -d "${targetDir}" ]]; then - targetDirsThatExist+=("${targetDir}") - targetDirsRealPath+=("$(realpath "${targetDir}")/") - find "${targetDir}" -type f -executable -print0 | - while IFS= read -r -d '' file; do - echo "Wrapping program '${file}'" - wrapGApp "${file}" - done - fi - done - - # wrap links to binaries that point outside targetDirs - # Note: links to binaries within targetDirs do not need - # to be wrapped as the binaries have already been wrapped - if [[ ${#targetDirsThatExist[@]} -ne 0 ]]; then - find "${targetDirsThatExist[@]}" -type l -xtype f -executable -print0 | - while IFS= read -r -d '' linkPath; do - linkPathReal=$(realpath "${linkPath}") - for targetPath in "${targetDirsRealPath[@]}"; do - if [[ "$linkPathReal" == "$targetPath"* ]]; then - echo "Not wrapping link: '$linkPath' (already wrapped)" - continue 2 - fi - done - echo "Wrapping link: '$linkPath'" - wrapGApp "${linkPath}" - done - fi - fi -} - -fixupOutputHooks+=(wrapGAppsHook) diff --git a/pkgs/build-support/setup-systemd-units.nix b/pkgs/build-support/setup-systemd-units.nix deleted file mode 100644 index 4c7ee86..0000000 --- a/pkgs/build-support/setup-systemd-units.nix +++ /dev/null @@ -1,83 +0,0 @@ -# | Build a script to install and start a set of systemd units on any -# systemd-based system. -# -# Creates a symlink at /etc/systemd-static/${namespace} for slightly -# improved atomicity. -{ 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 - - 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 - '' diff --git a/pkgs/build-support/singularity-tools/default.nix b/pkgs/build-support/singularity-tools/default.nix deleted file mode 100644 index c9e53a4..0000000 --- a/pkgs/build-support/singularity-tools/default.nix +++ /dev/null @@ -1,117 +0,0 @@ -{ runCommand -, lib -, stdenv -, storeDir ? builtins.storeDir -, writeScript -, singularity -, writeClosure -, bash -, vmTools -, gawk -, util-linux -, runtimeShell -, e2fsprogs -}: -rec { - shellScript = name: text: - writeScript name '' - #!${runtimeShell} - set -e - ${text} - ''; - - mkLayer = - { name - , contents ? [ ] - # May be "apptainer" instead of "singularity" - , projectName ? (singularity.projectName or "singularity") - }: - runCommand "${projectName}-layer-${name}" - { - inherit contents; - } '' - mkdir $out - for f in $contents ; do - cp -ra $f $out/ - done - ''; - - buildImage = - let - defaultSingularity = singularity; - in - { name - , contents ? [ ] - , diskSize ? 1024 - , runScript ? "#!${stdenv.shell}\nexec /bin/sh" - , runAsRoot ? null - , memSize ? 512 - , singularity ? defaultSingularity - }: - let - projectName = singularity.projectName or "singularity"; - runAsRootFile = shellScript "run-as-root.sh" runAsRoot; - runScriptFile = shellScript "run-script.sh" runScript; - result = vmTools.runInLinuxVM ( - runCommand "${projectName}-image-${name}.img" - { - buildInputs = [ singularity e2fsprogs util-linux gawk ]; - layerClosure = writeClosure contents; - preVM = vmTools.createEmptyImage { - size = diskSize; - fullName = "${projectName}-run-disk"; - }; - inherit memSize; - } - '' - rm -rf $out - mkdir disk - mkfs -t ext3 -b 4096 /dev/${vmTools.hd} - mount /dev/${vmTools.hd} disk - mkdir -p disk/img - cd disk/img - mkdir proc sys dev - - # Run root script - ${lib.optionalString (runAsRoot != null) '' - mkdir -p ./${storeDir} - mount --rbind ${storeDir} ./${storeDir} - unshare -imnpuf --mount-proc chroot ./ ${runAsRootFile} - umount -R ./${storeDir} - ''} - - # Build /bin and copy across closure - mkdir -p bin ./${builtins.storeDir} - for f in $(cat $layerClosure) ; do - cp -ar $f ./$f - done - - for c in ${toString contents} ; do - for f in $c/bin/* ; do - if [ ! -e bin/$(basename $f) ] ; then - ln -s $f bin/ - fi - done - done - - # Create runScript and link shell - if [ ! -e bin/sh ]; then - ln -s ${runtimeShell} bin/sh - fi - mkdir -p .${projectName}.d - ln -s ${runScriptFile} .${projectName}.d/runscript - - # Fill out .${projectName}.d - mkdir -p .${projectName}.d/env - touch .${projectName}.d/env/94-appsbase.sh - - cd .. - mkdir -p /var/lib/${projectName}/mnt/session - 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 deleted file mode 100644 index 938df1e..0000000 --- a/pkgs/build-support/source-from-head-fun.nix +++ /dev/null @@ -1,16 +0,0 @@ -/* - purpose: mantain bleeding edge head sources. - - you run - app --update - app --publish - 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 diff --git a/pkgs/build-support/src-only/default.nix b/pkgs/build-support/src-only/default.nix deleted file mode 100644 index 2b0db0e..0000000 --- a/pkgs/build-support/src-only/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ stdenv }: -# srcOnly is a utility builder that only fetches and unpacks the given `src`, -# and optionally patching with `patches` or adding build inputs. -# -# It can be invoked directly, or be used to wrap an existing derivation. Eg: -# -# > srcOnly pkgs.hello -# -attrs: -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"]; -}) diff --git a/pkgs/build-support/substitute-files/substitute-all-files.nix b/pkgs/build-support/substitute-files/substitute-all-files.nix deleted file mode 100644 index 682e976..0000000 --- a/pkgs/build-support/substitute-files/substitute-all-files.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, stdenv }: - -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 - - eval "$preInstall" - - 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 - - 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 deleted file mode 100644 index f49d560..0000000 --- a/pkgs/build-support/substitute/substitute-all.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ stdenvNoCC }: - -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) diff --git a/pkgs/build-support/substitute/substitute-all.sh b/pkgs/build-support/substitute/substitute-all.sh deleted file mode 100644 index ec22048..0000000 --- a/pkgs/build-support/substitute/substitute-all.sh +++ /dev/null @@ -1,19 +0,0 @@ -source $stdenv/setup - -eval "$preInstall" - -args= - -target=$out -if test -n "$dir"; then - target=$out/$dir/$name - mkdir -p $out/$dir -fi - -substituteAll $src $target - -if test -n "$isExecutable"; then - chmod +x $target -fi - -eval "$postInstall" diff --git a/pkgs/build-support/substitute/substitute.nix b/pkgs/build-support/substitute/substitute.nix deleted file mode 100644 index 37233a3..0000000 --- a/pkgs/build-support/substitute/substitute.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ lib, stdenvNoCC }: -/* -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. - -Example: - -```nix -{ substitute }: -substitute { - src = ./greeting.txt; - substitutions = [ - "--replace" - "world" - "paul" - ]; -} -``` - -See ../../test/substitute for tests -*/ -args: - -let - name = if args ? name then args.name else baseNameOf (toString args.src); - deprecationReplacement = lib.pipe args.replacements [ - lib.toList - (map (lib.splitString " ")) - lib.concatLists - (lib.concatMapStringsSep " " lib.strings.escapeNixString) - ]; - optionalDeprecationWarning = - # substitutions is only available starting 24.05. - # TODO: Remove support for replacements sometime after the next release - lib.warnIf (args ? replacements && lib.isInOldestRelease 2405) '' - 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; -}) diff --git a/pkgs/build-support/substitute/substitute.sh b/pkgs/build-support/substitute/substitute.sh deleted file mode 100644 index d50a824..0000000 --- a/pkgs/build-support/substitute/substitute.sh +++ /dev/null @@ -1,24 +0,0 @@ -source $stdenv/setup - -args= - -target=$out -if test -n "$dir"; then - target=$out/$dir/$name - mkdir -p $out/$dir -fi - -substitutionsList=($replacements) - -if [[ -v substitutions ]]; then - eval "substitutionsList+=($substitutions)" -fi - -substitute $src $target "${substitutionsList[@]}" - -if test -n "$isExecutable"; then - chmod +x $target -fi - -eval "$postInstall" - diff --git a/pkgs/build-support/testers/default.nix b/pkgs/build-support/testers/default.nix deleted file mode 100644 index 362622d..0000000 --- a/pkgs/build-support/testers/default.nix +++ /dev/null @@ -1,150 +0,0 @@ -{ 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)]; - }); - - # See https://nixos.org/manual/nixpkgs/unstable/#tester-testEqualDerivation - # or doc/builders/testers.chapter.md - testEqualDerivation = callPackage ./test-equal-derivation.nix { }; - - # 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 - ''; - - # See https://nixos.org/manual/nixpkgs/unstable/#tester-testVersion - # or doc/builders/testers.chapter.md - testVersion = - { 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 - else - echo "Version string '${version}' not found!" >&2 - echo "The output was:" >&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: - let - drvPath = (f args).drvPath; - # It's safe to discard the context, because we don't access the path. - salt = builtins.unsafeDiscardStringContext (lib.substring 0 12 (baseNameOf drvPath)); - # New derivation incorporating the original drv hash in the name - salted = f (args // { name = "${args.name or "source"}-salted-${salt}"; }); - # 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; - - # See doc/builders/testers.chapter.md or - # https://nixos.org/manual/nixpkgs/unstable/#tester-runNixOSTest - runNixOSTest = - 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; - }; - - # 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 { - inherit (stdenv.hostPlatform) system; - inherit pkgs; - 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; - - 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 ]; - }) - ); - hasPkgConfigModules = callPackage ./hasPkgConfigModules/tester.nix { }; - - testMetaPkgConfig = callPackage ./testMetaPkgConfig/tester.nix { }; -} diff --git a/pkgs/build-support/testers/expect-failure.sh b/pkgs/build-support/testers/expect-failure.sh deleted file mode 100644 index 9c725d4..0000000 --- a/pkgs/build-support/testers/expect-failure.sh +++ /dev/null @@ -1,71 +0,0 @@ -# Run a builder, flip exit code, save log and fix outputs -# -# Sub-goals: -# - Delegate to another original builder passed via args -# - Save the build log to output for further checks -# - Make the derivation succeed if the original builder fails -# - Make the derivation fail if the original builder returns exit code 0 -# -# Requirements: -# This runs before, without and after stdenv. Do not modify the environment; -# especially not before invoking the original builder. For example, use -# "@" substitutions instead of PATH. -# Do not export any variables. - -# Stricter bash -set -eu - -# ------------------------ -# Run the original builder - -echo "testBuildFailure: Expecting non-zero exit from builder and args: ${*@Q}" - -("$@" 2>&1) | @coreutils@/bin/tee $TMPDIR/testBuildFailure.log \ - | while IFS= read -r ln; do - echo "original builder: $ln" - done - -r=${PIPESTATUS[0]} -if [[ $r = 0 ]]; then - echo "testBuildFailure: The builder did not fail, but a failure was expected!" - exit 1 -fi -echo "testBuildFailure: Original builder produced exit code: $r" - -# ----------------------------------------- -# Write the build log to the default output -# -# # from stdenv setup.sh -getAllOutputNames() { - if [ -n "$__structuredAttrs" ]; then - echo "${!outputs[*]}" - else - echo "$outputs" - fi -} - -outs=( $(getAllOutputNames) ) -defOut=${outs[0]} -defOutPath=${!defOut} - -if [[ ! -d $defOutPath ]]; then - if [[ -e $defOutPath ]]; then - @coreutils@/bin/mv $defOutPath $TMPDIR/out-node - @coreutils@/bin/mkdir $defOutPath - @coreutils@/bin/mv $TMPDIR/out-node $defOutPath/result - fi -fi - -@coreutils@/bin/mkdir -p $defOutPath -@coreutils@/bin/mv $TMPDIR/testBuildFailure.log $defOutPath/testBuildFailure.log -echo $r >$defOutPath/testBuildFailure.exit - -# ------------------------------------------------------ -# Put empty directories in place for any missing outputs - -for outputName in ${outputs:-out}; do - outputPath="${!outputName}" - if [[ ! -e "${outputPath}" ]]; then - @coreutils@/bin/mkdir "${outputPath}"; - fi -done diff --git a/pkgs/build-support/testers/hasPkgConfigModules/tester.nix b/pkgs/build-support/testers/hasPkgConfigModules/tester.nix deleted file mode 100644 index bbcc4f0..0000000 --- a/pkgs/build-support/testers/hasPkgConfigModules/tester.nix +++ /dev/null @@ -1,50 +0,0 @@ -# Static arguments -{ lib, runCommand, pkg-config }: - -# Tester arguments -{ package, - moduleNames ? package.meta.pkgConfigModules, - testName ? "check-pkg-config-${lib.concatStringsSep "-" moduleNames}", -}: - -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; - } '' - touch "$out" - for moduleName in $moduleNames; do - echo "checking pkg-config module $moduleName in $buildInputs" - set +e - version="$($PKG_CONFIG --modversion $moduleName)" - r=$? - set -e - if [[ $r = 0 ]]; then - echo "✅ pkg-config module $moduleName exists and has version $version" - printf '%s\t%s\n' "$moduleName" "$version" >> "$out" - else - echo "These modules were available in the input propagation closure:" - $PKG_CONFIG --list-all - echo "❌ pkg-config module $moduleName was not found" - false - fi - done - '' diff --git a/pkgs/build-support/testers/hasPkgConfigModules/tests.nix b/pkgs/build-support/testers/hasPkgConfigModules/tests.nix deleted file mode 100644 index 9656949..0000000 --- a/pkgs/build-support/testers/hasPkgConfigModules/tests.nix +++ /dev/null @@ -1,49 +0,0 @@ -# cd nixpkgs -# nix-build -A tests.testers.hasPkgConfigModule -{ lib, testers, zlib, openssl, runCommand }: - -lib.recurseIntoAttrs { - - zlib-has-zlib = testers.hasPkgConfigModules { - package = zlib; - moduleNames = [ "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; - }; - - 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 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 - ''; - -} diff --git a/pkgs/build-support/testers/test-equal-derivation.nix b/pkgs/build-support/testers/test-equal-derivation.nix deleted file mode 100644 index 610d5f5..0000000 --- a/pkgs/build-support/testers/test-equal-derivation.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ 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"; -in -if drvA == drvB then - emptyFile -else - runCommand name - { - inherit assertion drvA drvB; - nativeBuildInputs = [ nix-diff ]; - } '' - echo "$assertion" - echo "However, the derivations differ:" - echo - echo nix-diff $drvA $drvB - nix-diff $drvA $drvB - exit 1 - '' diff --git a/pkgs/build-support/testers/test/README.md b/pkgs/build-support/testers/test/README.md deleted file mode 100644 index 2d6b4bd..0000000 --- a/pkgs/build-support/testers/test/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Tests _for the testers_ - - cd nixpkgs - nix-build -A tests.testers - -Tests generally derive their own correctness from simplicity, which in the -case of testers (themselves functions) does not always work out. -Hence the need for tests that test the testers. diff --git a/pkgs/build-support/testers/test/default.nix b/pkgs/build-support/testers/test/default.nix deleted file mode 100644 index da67711..0000000 --- a/pkgs/build-support/testers/test/default.nix +++ /dev/null @@ -1,213 +0,0 @@ -{ testers, lib, pkgs, hello, runCommand, ... }: -let - pkgs-with-overlay = pkgs.extend(final: prev: { - proof-of-overlay-hello = prev.hello; - }); - - dummyVersioning = { - revision = "test"; - versionSuffix = "test"; - label = "test"; - }; - -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") - ''; - }); - - # 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") - ''; - }); - - testBuildFailure = lib.recurseIntoAttrs { - 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" - - 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 - - [[ 3 = $(cat $failed/testBuildFailure.exit) ]] - - touch $out - ''; - - 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.' - ''; - - 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 - ''; - }; - - testEqualContents = lib.recurseIntoAttrs { - happy = 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 - ''; - }; - - 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 - } - 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 - } - 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 - } - echo 'All good.' - touch $out - ''; - }; -} diff --git a/pkgs/build-support/testers/testMetaPkgConfig/tester.nix b/pkgs/build-support/testers/testMetaPkgConfig/tester.nix deleted file mode 100644 index 7892a29..0000000 --- a/pkgs/build-support/testers/testMetaPkgConfig/tester.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ 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" -'' diff --git a/pkgs/build-support/trivial-builders/default.nix b/pkgs/build-support/trivial-builders/default.nix deleted file mode 100644 index 1625b0c..0000000 --- a/pkgs/build-support/trivial-builders/default.nix +++ /dev/null @@ -1,899 +0,0 @@ -{ lib, config, stdenv, stdenvNoCC, jq, lndir, runtimeShell, shellcheck-minimal }: - -let - 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; - }; - # 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; - }; - # 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; - }; - # `runCommandCCLocal` left out on purpose. - # We shouldn’t force the user to have a cc in scope. - - # TODO: Move documentation for runCommandWith to the Nixpkgs manual - /* - Generalized version of the `runCommand`-variants - which does customized behavior via a single - attribute set passed as the first argument - instead of having a lot of variants like - `runCommand*`. Additionally it allows changing - 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 - defaultStdenv = stdenv; - in - { - # which stdenv to use, defaults to a stdenv with a C compiler, pkgs.stdenv - stdenv ? defaultStdenv - # whether to build this derivation locally instead of substituting - , runLocal ? false - # extra arguments to pass to stdenv.mkDerivation - , derivationArgs ? { } - # name of the resulting derivation - , name - # TODO(@Artturin): enable strictDeps always - }: buildCommand: - stdenv.mkDerivation ({ - enableParallelBuilding = true; - inherit buildCommand name; - 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 runLocal { - preferLocalBuild = true; - allowSubstitutes = false; - }) - // 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 ? { } - }: - 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" ]) - '' - target=$out${lib.escapeShellArg destination} - mkdir -p "$(dirname "$target")" - - if [ -e "$textPath" ]; then - mv "$textPath" "$target" - else - echo -n "$text" > "$target" - fi - - if [ -n "$executable" ]; then - chmod +x "$target" - fi - - eval "$checkPhase" - ''; - - # See doc/build-helpers/trivial-build-helpers.chapter.md - # or https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-text-writing - writeText = name: text: writeTextFile { inherit name text; }; - - # 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}"; - }; - - # 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; }; - - # 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}"; - }; - - # See doc/build-helpers/trivial-build-helpers.chapter.md - # or https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-text-writing - writeShellScript = name: text: - writeTextFile { - inherit name; - executable = true; - text = '' - #!${runtimeShell} - ${text} - ''; - checkPhase = '' - ${stdenv.shellDryRun} "$target" - ''; - }; - - # See doc/build-helpers/trivial-build-helpers.chapter.md - # or https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-text-writing - writeShellScriptBin = name: text: - writeTextFile { - inherit name; - executable = true; - destination = "/bin/${name}"; - text = '' - #!${runtimeShell} - ${text} - ''; - checkPhase = '' - ${stdenv.shellDryRun} "$target" - ''; - meta.mainProgram = name; - }; - - # TODO: move parameter documentation to the Nixpkgs manual - # See doc/build-helpers/trivial-build-helpers.chapter.md - # or https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-writeShellApplication - writeShellApplication = - { - /* - 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 - platforms and `bash -n`. - - The script path will be given as `$target` in the `checkPhase`. - - Type: String - */ - checkPhase ? null, - /* - Checks to exclude when running `shellcheck`, e.g. `[ "SC2016" ]`. - - 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. - - Defaults to `[ "errexit" "nounset" "pipefail" ]`. - - Type: [String] - */ - bashOptions ? [ "errexit" "nounset" "pipefail" ], - /* Extra arguments to pass to `stdenv.mkDerivation`. - - :::{.caution} - Certain derivation attributes are used internally, - overriding those could cause problems. - ::: - - Type: AttrSet - */ - derivationArgs ? { }, - }: - writeTextFile { - inherit name meta derivationArgs; - executable = true; - 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: '' - ${lib.toShellVar name value} - export ${name} - '') - runtimeEnv)) - + lib.optionalString (runtimeInputs != [ ]) '' - - export PATH="${lib.makeBinPath runtimeInputs}:$PATH" - '' + '' - - ${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) ]; - 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" - ''; - in - 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: - runCommandCC pname - { - inherit pname code; - executable = true; - passAsFile = [ "code" ]; - # Pointless to do this on a remote machine. - preferLocalBuild = true; - allowSubstitutes = false; - meta = { - mainProgram = pname; - }; - } - '' - n=$out/bin/${pname} - mkdir -p "$(dirname "$n")" - mv "$codePath" code.c - $CC -x c code.c -o "$n" - ''; - - # 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. - 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"; - files = [ drv1 "${drv2}/path/to/file" ]; - 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 ? { } - }: - runCommandLocal name - { inherit files executable checkPhase meta destination; } - '' - file=$out$destination - mkdir -p "$(dirname "$file")" - cat $files > "$file" - - if [ -n "$executable" ]; then - chmod +x "$file" - fi - - eval "$checkPhase" - ''; - - # 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 - /* - Writes a text file to nix store with no optional parameters available. - - Example: - - - # Writes contents of files to /nix/store/ - concatText "my-file" [ file1 file2 ] - - - */ - concatText = name: files: concatTextFile { inherit name files; }; - - # 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 - /* - Writes a text file to nix store with and mark it as executable. - - Example: - # Writes contents of files to /nix/store/ - concatScript "my-file" [ file1 file2 ] - - */ - concatScript = name: files: concatTextFile { inherit name files; executable = true; }; - - - /* - TODO: Deduplicate this documentation. - More docs in doc/build-helpers/trivial-build-helpers.chapter.md - See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-symlinkJoin - - Create a forest of symlinks to the files in `paths`. - - This creates a single derivation that replicates the directory structure - of all the input paths. - - BEWARE: it may not "work right" when the passed paths contain symlinks to directories. - - 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 - | `-- stack -> /nix/store/6lzdpxshx78281vy056lbk553ijsdr44-stack-2.1.3.1/bin/stack - `-- share - |-- bash-completion - | `-- completions - | `-- stack -> /nix/store/6lzdpxshx78281vy056lbk553ijsdr44-stack-2.1.3.1/share/bash-completion/completions/stack - |-- fish - | `-- vendor_completions.d - | `-- 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. - - symlinkJoin is used to create a derivation with a familiar directory - structure (top-level bin/, share/, etc), but with all actual files being symlinks to - the files in the input derivations. - - symlinkJoin is used many places in nixpkgs to create a single derivation - that appears to contain binaries, libraries, documentation, etc from - multiple input derivations. - - 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 ? "" - , ... - }: - let - args = removeAttrs args_ [ "name" "postBuild" ] - // { - 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} - ''; - - # TODO: move linkFarm docs to the Nixpkgs manual - /* - Quickly create a set of symlinks to derivations. - - This creates a simple derivation with symlinks to all inputs. - - entries can be a list of attribute sets like - - [ { 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 - # $out/foobar. - linkFarm "myexample" [ { name = "hello-test"; path = pkgs.hello; } { name = "foobar"; path = pkgs.stack; } ] - - This creates a derivation with a directory structure like the following: - - /nix/store/qc5728m4sa344mbks99r3q05mymwm4rw-myexample - |-- 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: - let - 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!"; - - 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} - ''; - - # TODO: move linkFarmFromDrvs docs to the Nixpkgs manual - /* - Easily create a linkFarm from a set of derivations. - - This calls linkFarm with a list of entries created from the list of input - derivations. It turns each input derivation into an attribute set - like { name = drv.name ; path = drv }, and passes this to linkFarm. - - Example: - - # Symlinks the hello, gcc, and ghc derivations in $out - linkFarmFromDrvs "myexample" [ pkgs.hello pkgs.gcc pkgs.ghc ] - - 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); - - # TODO: move onlyBin docs to the Nixpkgs manual - /* - Produce a derivation that links to the target derivation's `/bin`, - and *only* `/bin`. - - This is useful when your favourite package doesn't have a separate - 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 - ''; - - - # 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 ? [ ] - # hooks go in nativeBuildInput so these will be nativeBuildInput - , propagatedBuildInputs ? [ ] - # these will be buildInputs - , 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 - ''); - - - # 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 ]); - - # 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" - ''; - - # 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 - ''; - - # TODO: move writeStringReferencesToFile docs to the Nixpkgs manual - /* - Extract a string's references to derivations and paths (its - context) and write them to a text file, removing the input string - itself from the dependency graph. This is useful when you want to - make a derivation depend on the string's references, but not its - contents (to avoid unnecessary rebuilds, for example). - - Note that this only works as intended on Nix >= 2.3. - */ - 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 - derivation. However, that alone is not enough, since nothing in the - string refers to the output paths of the derivations/paths in its - context, meaning they'll be considered build-time dependencies and - removed from the wrapper derivation's closure. Putting the - necessary output paths in the new string is however not very - straightforward - the attrset returned by `getContext` contains - only references to derivations' .drv-paths, not their output - paths. In order to "convert" them, we try to extract the - corresponding paths from the original string using regex. - */ - let - # Taken from https://github.com/NixOS/nix/blob/130284b8508dad3c70e8160b15f3d62042fc730a/src/libutil/hash.cc#L84 - nixHashChars = "0123456789abcdfghijklmnpqrsvwxyz"; - context = builtins.getContext string; - derivations = lib.filterAttrs (n: v: v ? outputs) context; - # 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; - # 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 - # aren't suffixed at all, and thus aren't easily distinguished - # 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); - # 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); - allPaths = lib.concatStringsSep "\n" (lib.unique (sources ++ namedOutputPaths ++ outputPaths)); - allPathsWithContext = builtins.appendContext allPaths context; - in - if builtins ? getContext then - writeText "string-references" allPathsWithContext - 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" - }: - 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 - nix-store --add-fixed ${hashAlgo} ${name_} - 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_ - - *** - ${msg} - *** - - _EOF_ - exit 1 - ''; - }; - - - # TODO: move copyPathToStore docs to the Nixpkgs manual - /* - Copy a path to the Nix store. - Nix automatically copies files to the store before stringifying paths. - If you need the store path of a file, ${copyPathToStore } can be - shortened to ${}. - */ - copyPathToStore = builtins.filterSource (p: t: true); - - - # TODO: move copyPathsToStore docs to the Nixpkgs manual - /* - 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. - - Example: - - # Patching nixpkgs: - - applyPatches { - src = pkgs.path; - patches = [ - (pkgs.fetchpatch { - url = "https://github.com/NixOS/nixpkgs/commit/1f770d20550a413e508e081ddc08464e9d08ba3d.patch"; - sha256 = "1nlzx171y3r3jbk0qhvnl711kmdk57jlq4na8f8bs8wz2pbffymr"; - }) - ]; - } - - */ - 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 ? "" - , ... - }@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" ])); - - # 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"; - - # 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"; -} diff --git a/pkgs/build-support/trivial-builders/test-overriding.nix b/pkgs/build-support/trivial-builders/test-overriding.nix deleted file mode 100644 index a16bbbe..0000000 --- a/pkgs/build-support/trivial-builders/test-overriding.nix +++ /dev/null @@ -1,110 +0,0 @@ -# Check that overriding works for trivial-builders like -# `writeShellScript` via `overrideAttrs`. This is useful -# to override the `checkPhase`, e. g. if you want -# to disable extglob in `writeShellScript`. -# -# Run using `nix-build -A tests.trivial-builders.overriding`. -{ lib -, stdenv -, runtimeShell -, runCommand -, callPackage -, writeShellScript -, writeTextFile -, writeShellScriptBin -}: - -let - extglobScript = '' - shopt -s extglob - touch success - echo @(success|failure) - rm success - ''; - - simpleCase = case: - writeShellScript "test-trivial-overriding-${case}" extglobScript; - - callPackageCase = case: callPackage ( - { writeShellScript }: - writeShellScript "test-trivial-callpackage-overriding-${case}" extglobScript - ) { }; - - binCase = case: - writeShellScriptBin "test-trivial-overriding-bin-${case}" extglobScript; - - # building this derivation would fail without overriding - textFileCase = writeTextFile { - name = "test-trivial-overriding-text-file"; - checkPhase = "false"; - text = '' - #!${runtimeShell} - echo success - ''; - executable = true; - }; - - 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: { - checkPhase = '' - if - ${old.checkPhase} - then exit 1; fi - ''; - }); - - 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; - - writeTextOverrides = { - # Make sure extglob works by default - simpleSucc = mkCase simpleCase "succ" false; - # Ensure it's possible to fail; in this case extglob is not enabled - simpleFail = mkCase simpleCase "fail" false; - # Do the same checks after wrapping with callPackage - # to make sure callPackage doesn't mess with the override - callpSucc = mkCase callPackageCase "succ" false; - callpFail = mkCase callPackageCase "fail" false; - # Do the same check using `writeShellScriptBin` - binSucc = mkCase binCase "succ" true; - binFail = mkCase binCase "fail" true; - # Check that we can also override plain writeTextFile - textFileSuccess = textFileCase.overrideAttrs (_: { - checkPhase = "true"; - }); - }; - - # `runTest` forces nix to build the script of our test case and - # 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: - let - name = script.name or (builtins.baseNameOf script); - in writeShellScript "run-${name}" '' - if [ "$(${script})" != "success" ]; then - echo "Failed in ${name}" - exit 1 - fi - ''; -in - -runCommand "test-writeShellScript-overriding" { - passthru = { inherit writeTextOverrides; }; -} '' - ${lib.concatMapStrings (test: '' - ${runTest test} - '') (lib.attrValues writeTextOverrides)} - touch "$out" -'' diff --git a/pkgs/build-support/trivial-builders/test/concat-test.nix b/pkgs/build-support/trivial-builders/test/concat-test.nix deleted file mode 100644 index 5ce4356..0000000 --- a/pkgs/build-support/trivial-builders/test/concat-test.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ callPackage, lib, pkgs, runCommand, concatText, writeText, hello, emptyFile }: -let - stri = writeText "pathToTest"; - txt1 = stri "abc"; - txt2 = stri hello; - res = concatText "textToTest" [ txt1 txt2 ]; -in -runCommand "test-concatPaths" { } '' - diff -U3 <(cat ${txt1} ${txt2}) ${res} - 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 deleted file mode 100644 index e1ed0be..0000000 --- a/pkgs/build-support/trivial-builders/test/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -/* - Run all tests with: - - cd nixpkgs - nix-build -A tests.trivial-builders - - or run a specific test with: - - cd nixpkgs - nix-build -A tests.trivial-builders.foo - -*/ - -{ callPackage, lib, stdenv }: -let - inherit (lib) recurseIntoAttrs; - references = callPackage ./references {}; -in -recurseIntoAttrs { - 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 {}; - writeStringReferencesToFile = callPackage ./writeStringReferencesToFile.nix { - inherit (references) samples; - }; - 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 deleted file mode 100644 index 1ebfc70..0000000 --- a/pkgs/build-support/trivial-builders/test/link-farm.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ linkFarm, hello, writeTextFile, runCommand }: -let - foo = writeTextFile { - name = "foo"; - text = "foo"; - }; - - linkFarmFromList = linkFarm "linkFarmFromList" [ - { name = "foo"; path = foo; } - { name = "hello"; path = hello; } - ]; - - linkFarmWithRepeats = linkFarm "linkFarmWithRepeats" [ - { name = "foo"; path = foo; } - { name = "hello"; path = hello; } - { name = "foo"; path = hello; } - ]; - - linkFarmFromAttrs = linkFarm "linkFarmFromAttrs" { - inherit foo hello; - }; -in -runCommand "test-linkFarm" { } '' - function assertPathEquals() { - local a b; - a="$(realpath "$1")" - b="$(realpath "$2")" - if [ "$a" != "$b" ]; then - echo "path mismatch!" - echo "a: $1 -> $a" - echo "b: $2 -> $b" - exit 1 - fi - } - - assertPathEquals "${linkFarmFromList}/foo" "${foo}" - assertPathEquals "${linkFarmFromList}/hello" "${hello}" - - assertPathEquals "${linkFarmWithRepeats}/foo" "${hello}" - assertPathEquals "${linkFarmWithRepeats}/hello" "${hello}" - - assertPathEquals "${linkFarmFromAttrs}/foo" "${foo}" - assertPathEquals "${linkFarmFromAttrs}/hello" "${hello}" - touch $out -'' diff --git a/pkgs/build-support/trivial-builders/test/references/default.nix b/pkgs/build-support/trivial-builders/test/references/default.nix deleted file mode 100644 index 928cc1d..0000000 --- a/pkgs/build-support/trivial-builders/test/references/default.nix +++ /dev/null @@ -1,128 +0,0 @@ -{ lib -, stdenvNoCC -, testers -, callPackage -, writeText - # nativeBuildInputs -, shellcheck-minimal - # Samples -, samples ? cleanSamples (callPackage ./samples.nix { }) - # Filter out the non-string-like attributes such as .override added by - # callPackage. -, cleanSamples ? lib.filterAttrs (n: lib.isStringLike) - # Test targets -, writeDirectReferencesToFile -, writeClosure -}: - -# -------------------------------------------------------------------------- # -# -# trivial-builders test -# -# -------------------------------------------------------------------------- # -# -# Execute this build script directly (quick): -# -# * Classic -# $ NIX_PATH="nixpkgs=$PWD" nix-shell -p tests.trivial-builders.references.testScriptBin --run references-test -# -# * Flake-based -# $ nix run .#tests.trivial-builders.references.testScriptBin -# -# or in the build sandbox with a ~20s VM overhead: -# -# * Classic -# $ nix-build --no-out-link -A tests.trivial-builders.references -# -# * Flake-based -# $ nix build -L --no-link .#tests.trivial-builders.references -# -# -------------------------------------------------------------------------- # - -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); - - closures = lib.mapAttrs (n: v: writeClosure [ v ]) samples; - directReferences = lib.mapAttrs (n: v: writeDirectReferencesToFile v) samples; - collectiveClosure = writeClosure (lib.attrValues samples); - - testScriptBin = stdenvNoCC.mkDerivation (finalAttrs: { - name = "references-test"; - - src = ./references-test.sh; - dontUnpack = true; - dontBuild = true; - - installPhase = '' - runHook preInstall - mkdir -p "$out/bin" - substitute "$src" "$out/bin/${finalAttrs.meta.mainProgram}" \ - --replace "@SAMPLES@" ${lib.escapeShellArg (samplesToString samples)} \ - --replace "@CLOSURES@" ${lib.escapeShellArg (samplesToString closures)} \ - --replace "@DIRECT_REFS@" ${lib.escapeShellArg (samplesToString directReferences)} \ - --replace "@COLLECTIVE_CLOSURE@" ${lib.escapeShellArg collectiveClosure} - runHook postInstall - chmod +x "$out/bin/${finalAttrs.meta.mainProgram}" - ''; - - doInstallCheck = true; - nativeInstallCheckInputs = [ - shellcheck-minimal - ]; - installCheckPhase = '' - runHook preInstallCheck - shellcheck "$out/bin/${finalAttrs.meta.mainProgram}" - runHook postInstallCheck - ''; - - passthru = { - inherit - collectiveClosure - directReferences - closures - samples - ; - }; - - meta = with lib; { - mainProgram = "references-test"; - }; - }); -in -testers.nixosTest { - name = "nixpkgs-trivial-builders"; - 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 - """) - ''; - passthru = { - inherit - collectiveClosure - directReferences - closures - samples - testScriptBin - ; - }; - meta = { - maintainers = with lib.maintainers; [ - roberth - ShamrockLee - ]; - }; -} diff --git a/pkgs/build-support/trivial-builders/test/references/references-test.sh b/pkgs/build-support/trivial-builders/test/references/references-test.sh deleted file mode 100755 index 92e4467..0000000 --- a/pkgs/build-support/trivial-builders/test/references/references-test.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/env bash - -# -------------------------------------------------------------------------- # -# -# trivial-builders test -# -# -------------------------------------------------------------------------- # -# -# Execute this build script directly (quick): -# -# * Classic -# $ NIX_PATH="nixpkgs=$PWD" nix-shell -p tests.trivial-builders.references.testScriptBin --run references-test -# -# * Flake-based -# $ nix run .#tests.trivial-builders.references.testScriptBin -# -# or in the build sandbox with a ~20s VM overhead: -# -# * Classic -# $ nix-build --no-out-link -A tests.trivial-builders.references -# -# * Flake-based -# $ nix build -L --no-link .#tests.trivial-builders.references -# -# -------------------------------------------------------------------------- # - -# strict bash -set -euo pipefail - -# debug -# set -x -# PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }' - -cd "$(dirname "${BASH_SOURCE[0]}")" # nixpkgs root - - # Inject the path to compare from the Nix expression - - # Associative Arrays - declare -A samples=( @SAMPLES@ ) - declare -A directRefs=( @DIRECT_REFS@ ) - declare -A closures=( @CLOSURES@ ) - - # Path string - collectiveClosure=@COLLECTIVE_CLOSURE@ - -echo >&2 Testing direct closures... -for i in "${!samples[@]}"; do - echo >&2 Checking "$i" "${samples[$i]}" "${directRefs[$i]}" - diff -U3 \ - <(sort <"${directRefs[$i]}") \ - <(nix-store -q --references "${samples[$i]}" | sort) -done - -echo >&2 Testing closure... -for i in "${!samples[@]}"; do - echo >&2 Checking "$i" "${samples[$i]}" "${closures[$i]}" - diff -U3 \ - <(sort <"${closures[$i]}") \ - <(nix-store -q --requisites "${samples[$i]}" | sort) -done - -echo >&2 Testing mixed closures... -echo >&2 Checking all samples "(${samples[*]})" "$collectiveClosure" -diff -U3 \ - <(sort <"$collectiveClosure") \ - <(nix-store -q --requisites "${samples[@]}" | sort) - -echo 'OK!' diff --git a/pkgs/build-support/trivial-builders/test/references/samples.nix b/pkgs/build-support/trivial-builders/test/references/samples.nix deleted file mode 100644 index 3afb970..0000000 --- a/pkgs/build-support/trivial-builders/test/references/samples.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ lib -, runCommand -, writeText -, emptyFile -, emptyDirectory -, figlet -, hello -, zlib -}: -{ - inherit - figlet - hello - zlib - ; - zlib-dev = zlib.dev; - norefs = writeText "hi" "hello"; - norefsDup = writeText "hi" "hello"; - helloRef = writeText "hi" "hello ${hello}"; - helloRefDup = writeText "hi" "hello ${hello}"; - path = ./samples.nix; - pathLike.outPath = ./samples.nix; - 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 - ; -} diff --git a/pkgs/build-support/trivial-builders/test/write-shell-script.nix b/pkgs/build-support/trivial-builders/test/write-shell-script.nix deleted file mode 100644 index a5c9f1f..0000000 --- a/pkgs/build-support/trivial-builders/test/write-shell-script.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ lib, writeShellScript }: let - output = "hello"; -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 - ''; -}) diff --git a/pkgs/build-support/trivial-builders/test/write-text-file.nix b/pkgs/build-support/trivial-builders/test/write-text-file.nix deleted file mode 100644 index 2e6685c..0000000 --- a/pkgs/build-support/trivial-builders/test/write-text-file.nix +++ /dev/null @@ -1,71 +0,0 @@ -/* - To run: - - cd nixpkgs - nix-build -A tests.trivial-builders.writeTextFile - - or to run an individual test case - - cd nixpkgs - nix-build -A tests.trivial-builders.writeTextFile.foo -*/ -{ lib, runCommand, runtimeShell, writeTextFile }: -let - veryWeirdName = ''here's a name with some "bad" characters, like spaces and quotes''; -in -lib.recurseIntoAttrs { - - different-exe-name = - let - pkg = writeTextFile { - name = "bar"; - destination = "/bin/foo"; - executable = true; - text = '' - #!${runtimeShell} - echo hi - ''; - }; - 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 - ''; - - weird-name = writeTextFile { - name = "weird-names"; - destination = "/etc/${veryWeirdName}"; - text = ''passed!''; - checkPhase = '' - # intentionally hardcode everything here, to make sure - # Nix does not mess with file paths - - name="here's a name with some \"bad\" characters, like spaces and quotes" - fullPath="$out/etc/$name" - - if [ -f "$fullPath" ]; then - echo "[PASS] File exists!" - else - echo "[FAIL] File was not created at expected path!" - exit 1 - fi - - content=$(<"$fullPath") - expected="passed!" - - if [ "$content" = "$expected" ]; then - echo "[PASS] Contents match!" - else - echo "[FAIL] File contents don't match!" - echo " Expected: $expected" - echo " Got: $content" - exit 2 - fi - ''; - }; -} diff --git a/pkgs/build-support/trivial-builders/test/writeCBin.nix b/pkgs/build-support/trivial-builders/test/writeCBin.nix deleted file mode 100644 index 56cab45..0000000 --- a/pkgs/build-support/trivial-builders/test/writeCBin.nix +++ /dev/null @@ -1,43 +0,0 @@ -/* - Run with: - - cd nixpkgs - nix-build -A tests.trivial-builders.writeCBin -*/ - -{ lib, writeCBin, runCommand }: -let - output = "hello"; - pkg = writeCBin "test-script" '' - #include - int main () { - printf("hello\n"); - return 0; - } - ''; -in - assert pkg.meta.mainProgram == "test-script"; - runCommand "test-writeCBin" { } '' - - 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 - - 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 - '' - diff --git a/pkgs/build-support/trivial-builders/test/writeClosure-union.nix b/pkgs/build-support/trivial-builders/test/writeClosure-union.nix deleted file mode 100644 index 92a2bf9..0000000 --- a/pkgs/build-support/trivial-builders/test/writeClosure-union.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ lib -, runCommandLocal - # Test targets -, 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" -'' diff --git a/pkgs/build-support/trivial-builders/test/writeScriptBin.nix b/pkgs/build-support/trivial-builders/test/writeScriptBin.nix deleted file mode 100644 index 1487443..0000000 --- a/pkgs/build-support/trivial-builders/test/writeScriptBin.nix +++ /dev/null @@ -1,39 +0,0 @@ -/* - Run with: - - cd nixpkgs - nix-build -A tests.trivial-builders.writeShellScriptBin -*/ - -{ lib, writeScriptBin, runCommand }: -let - output = "hello"; - pkg = writeScriptBin "test-script" '' - echo ${lib.escapeShellArg output} - ''; -in - assert pkg.meta.mainProgram == "test-script"; - runCommand "test-writeScriptBin" { } '' - - 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 - - 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 - '' - diff --git a/pkgs/build-support/trivial-builders/test/writeShellApplication.nix b/pkgs/build-support/trivial-builders/test/writeShellApplication.nix deleted file mode 100644 index c50f5a4..0000000 --- a/pkgs/build-support/trivial-builders/test/writeShellApplication.nix +++ /dev/null @@ -1,141 +0,0 @@ -# Run with: -# nix-build -A tests.trivial-builders.writeShellApplication -{ writeShellApplication -, writeTextFile -, runCommand -, lib -, linkFarm -, diffutils -, hello -}: -let - checkShellApplication = args@{name, expected, ...}: - let - writeShellApplicationArgs = builtins.removeAttrs args ["expected"]; - script = writeShellApplication writeShellApplicationArgs; - executable = lib.getExe script; - expected' = writeTextFile { - name = "${name}-expected"; - text = expected; - }; - actual = "${name}-actual"; - in - runCommand name { } '' - echo "Running test executable ${name}" - ${executable} > ${actual} - echo "Got output from test executable:" - cat ${actual} - echo "Checking test output against expected output:" - ${diffutils}/bin/diff --color --unified ${expected'} ${actual} - touch $out - ''; -in -linkFarm "writeShellApplication-tests" { - test-meta = - let - script = writeShellApplication { - name = "test-meta"; - text = ""; - meta.description = "A test for the `writeShellApplication` `meta` argument."; - }; - in - assert script.meta.mainProgram == "test-meta"; - 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-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 - ''; - }; - - 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-exclude-shell-checks = writeShellApplication { - name = "test-exclude-shell-checks"; - excludeShellChecks = [ "SC2016" ]; - text = '' - # Triggers SC2016: Expressions don't expand in single quotes, use double - # quotes for that. - echo '$SHELL' - ''; - }; - - test-bash-options-pipefail = checkShellApplication { - name = "test-bash-options-pipefail"; - text = '' - touch my-test-file - echo puppy | grep doggy | sed 's/doggy/puppy/g' - # ^^^^^^^^^^ This will fail. - true - ''; - # Don't use `pipefail`: - bashOptions = ["errexit" "nounset"]; - expected = ""; - }; - - test-bash-options-nounset = checkShellApplication { - name = "test-bash-options-nounset"; - text = '' - echo -n "$someUndefinedVariable" - ''; - # Don't use `nounset`: - 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 deleted file mode 100644 index e93410e..0000000 --- a/pkgs/build-support/trivial-builders/test/writeShellScriptBin.nix +++ /dev/null @@ -1,39 +0,0 @@ -/* - Run with: - - cd nixpkgs - nix-build -A tests.trivial-builders.writeShellScriptBin -*/ - -{ lib, writeShellScriptBin, runCommand }: -let - output = "hello"; - pkg = writeShellScriptBin "test-script" '' - echo ${lib.escapeShellArg output} - ''; -in - assert pkg.meta.mainProgram == "test-script"; - runCommand "test-writeShellScriptBin" { } '' - - 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 - - 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 - '' - diff --git a/pkgs/build-support/trivial-builders/test/writeStringReferencesToFile.nix b/pkgs/build-support/trivial-builders/test/writeStringReferencesToFile.nix deleted file mode 100644 index dedd7e1..0000000 --- a/pkgs/build-support/trivial-builders/test/writeStringReferencesToFile.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ 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 - ''); -in -runCommand "test-writeStringReferencesToFile" { } '' - diff -U3 <(sort ${stringReferencesText}) <(sort ${sampleText}) - touch $out -'' diff --git a/pkgs/build-support/vm/deb/deb-closure.pl b/pkgs/build-support/vm/deb/deb-closure.pl deleted file mode 100644 index 2d331e1..0000000 --- a/pkgs/build-support/vm/deb/deb-closure.pl +++ /dev/null @@ -1,180 +0,0 @@ -use strict; -use Dpkg::Control; -use Dpkg::Deps; -use File::Basename; - -my $packagesFile = shift @ARGV; -my $urlPrefix = shift @ARGV; -my @toplevelPkgs = @ARGV; - - -my %packages; - - -# Parse the Packages file. -open PACKAGES, "<$packagesFile" or die; - -while (1) { - my $cdata = Dpkg::Control->new(type => CTRL_INFO_PKG); - last if not $cdata->parse(\*PACKAGES, $packagesFile); - die unless defined $cdata->{Package}; - #print STDERR $cdata->{Package}, "\n"; - $packages{$cdata->{Package}} = $cdata; -} - -close PACKAGES; - - -# Flatten a Dpkg::Deps dependency value into a list of package names. -sub getDeps { - my $deps = shift; - #print "$deps\n"; - if ($deps->isa('Dpkg::Deps::AND')) { - my @res = (); - foreach my $dep ($deps->get_deps()) { - push @res, getDeps($dep); - } - return @res; - } elsif ($deps->isa('Dpkg::Deps::OR')) { - # Arbitrarily pick the first alternative. - return getDeps(($deps->get_deps())[0]); - } elsif ($deps->isa('Dpkg::Deps::Simple')) { - return ($deps->{package}); - } else { - die "unknown dep type"; - } -} - - -# Process the "Provides" and "Replaces" fields to be able to resolve -# virtual dependencies. -my %provides; - -foreach my $cdata (sort {$a->{Package} cmp $b->{Package}} (values %packages)) { - if (defined $cdata->{Provides}) { - my @provides = getDeps(Dpkg::Deps::deps_parse($cdata->{Provides})); - foreach my $name (@provides) { - #die "conflicting provide: $name\n" if defined $provides{$name}; - #warn "provide by $cdata->{Package} conflicts with package with the same name: $name\n"; - next if defined $packages{$name}; - $provides{$name} = $cdata->{Package}; - } - } - # Treat "Replaces" like "Provides". - if (defined $cdata->{Replaces}) { - my @replaces = getDeps(Dpkg::Deps::deps_parse($cdata->{Replaces})); - foreach my $name (@replaces) { - next if defined $packages{$name}; - $provides{$name} = $cdata->{Package}; - } - } -} - - -# Determine the closure of a package. -my %donePkgs; -my %depsUsed; -my @order = (); - -sub closePackage { - my $pkgName = shift; - print STDERR ">>> $pkgName\n"; - my $cdata = $packages{$pkgName}; - - if (!defined $cdata) { - die "unknown (virtual) package $pkgName" - unless defined $provides{$pkgName}; - print STDERR "virtual $pkgName: using $provides{$pkgName}\n"; - $pkgName = $provides{$pkgName}; - $cdata = $packages{$pkgName}; - } - - die "unknown package $pkgName" unless defined $cdata; - return if defined $donePkgs{$pkgName}; - $donePkgs{$pkgName} = 1; - - if (defined $cdata->{Provides}) { - foreach my $name (getDeps(Dpkg::Deps::deps_parse($cdata->{Provides}))) { - $provides{$name} = $cdata->{Package}; - } - } - - my @depNames = (); - - if (defined $cdata->{Depends}) { - print STDERR " $pkgName: $cdata->{Depends}\n"; - my $deps = Dpkg::Deps::deps_parse($cdata->{Depends}); - die unless defined $deps; - push @depNames, getDeps($deps); - } - - if (defined $cdata->{'Pre-Depends'}) { - print STDERR " $pkgName: $cdata->{'Pre-Depends'}\n"; - my $deps = Dpkg::Deps::deps_parse($cdata->{'Pre-Depends'}); - die unless defined $deps; - push @depNames, getDeps($deps); - } - - foreach my $depName (@depNames) { - closePackage($depName); - } - - push @order, $pkgName; - $depsUsed{$pkgName} = \@depNames; -} - -foreach my $pkgName (@toplevelPkgs) { - closePackage $pkgName; -} - - -# Generate the output Nix expression. -print "# This is a generated file. Do not modify!\n"; -print "# Following are the Debian packages constituting the closure of: @toplevelPkgs\n\n"; -print "{fetchurl}:\n\n"; -print "[\n\n"; - -# Output the packages in strongly connected components. -my %done; -my %forward; -my $newComponent = 1; -foreach my $pkgName (@order) { - $done{$pkgName} = 1; - my $cdata = $packages{$pkgName}; - my @deps = @{$depsUsed{$pkgName}}; - foreach my $dep (@deps) { - $dep = $provides{$dep} if defined $provides{$dep}; - $forward{$dep} = 1 unless defined $done{$dep}; - } - delete $forward{$pkgName}; - - print " [\n\n" if $newComponent; - $newComponent = 0; - - my $origName = basename $cdata->{Filename}; - my $cleanedName = $origName; - $cleanedName =~ s/~//g; - - print " (fetchurl {\n"; - print " url = \"$urlPrefix/$cdata->{Filename}\";\n"; - print " sha256 = \"$cdata->{SHA256}\";\n"; - print " name = \"$cleanedName\";\n" if $cleanedName ne $origName; - print " })\n"; - print "\n"; - - if (keys %forward == 0) { - print " ]\n\n"; - $newComponent = 1; - } -} - -foreach my $pkgName (@order) { - my $cdata = $packages{$pkgName}; -} - -print "]\n"; - -if ($newComponent != 1) { - print STDERR "argh: ", keys %forward, "\n"; - exit 1; -} diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix deleted file mode 100644 index 5637585..0000000 --- a/pkgs/build-support/vm/default.nix +++ /dev/null @@ -1,1232 +0,0 @@ -{ 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; -in -rec { - qemu-common = import ../../../nixos/lib/qemu-common.nix { inherit lib pkgs; }; - - qemu = buildPackages.qemu_kvm; - - modulesClosure = pkgs.makeModulesClosure { - inherit kernel rootModules; - 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 - - # 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 - - # 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 - - export PATH=${initrdUtils}/bin - - mkdir /etc - echo -n > /etc/fstab - - mount -t proc none /proc - mount -t sysfs none /sys - - echo 2 > /proc/sys/vm/panic_on_oom - - for o in $(cat /proc/cmdline); do - case $o in - mountDisk=*) - mountDisk=''${mountDisk#mountDisk=} - ;; - command=*) - set -- $(IFS==; echo $o) - command=$2 - ;; - out=*) - set -- $(IFS==; echo $o) - export out=$2 - ;; - esac - done - - echo "loading kernel modules..." - for i in $(cat ${modulesClosure}/insmod-list); do - insmod $i || echo "warning: unable to load $i" - done - - mount -t devtmpfs devtmpfs /dev - ln -s /proc/self/fd /dev/fd - ln -s /proc/self/fd/0 /dev/stdin - ln -s /proc/self/fd/1 /dev/stdout - ln -s /proc/self/fd/2 /dev/stderr - - ifconfig lo up - - mkdir /fs - - if test -z "$mountDisk"; then - mount -t tmpfs none /fs - elif [[ -e "$mountDisk" ]]; then - mount "$mountDisk" /fs - else - mount /dev/${hd} /fs - fi - - mkdir -p /fs/dev - mount -o bind /dev /fs/dev - - mkdir -p /fs/dev/shm /fs/dev/pts - mount -t tmpfs -o "mode=1777" none /fs/dev/shm - mount -t devpts none /fs/dev/pts - - echo "mounting Nix store..." - mkdir -p /fs${storeDir} - mount -t 9p store /fs${storeDir} -o trans=virtio,version=9p2000.L,cache=loose,msize=131072 - - mkdir -p /fs/tmp /fs/run /fs/var - mount -t tmpfs -o "mode=1777" none /fs/tmp - mount -t tmpfs -o "mode=755" none /fs/run - ln -sfn /run /fs/var/run - - echo "mounting host's temporary directory..." - mkdir -p /fs/tmp/xchg - mount -t 9p xchg /fs/tmp/xchg -o trans=virtio,version=9p2000.L,msize=131072 - - mkdir -p /fs/proc - mount -t proc none /fs/proc - - mkdir -p /fs/sys - mount -t sysfs none /fs/sys - - mkdir -p /fs/etc - ln -sf /proc/mounts /fs/etc/mtab - echo "127.0.0.1 localhost" > /fs/etc/hosts - # Ensures tools requiring /etc/passwd will work (e.g. nix) - if [ ! -e /fs/etc/passwd ]; then - echo "root:x:0:0:System administrator:/root:/bin/sh" > /fs/etc/passwd - fi - - echo "starting stage 2 ($command)" - exec switch_root /fs $command $out - ''; - - - initrd = pkgs.makeInitrd { - contents = [ - { object = stage1Init; - symlink = "/init"; - } - ]; - }; - - - stage2Init = writeScript "vm-run-stage2" '' - #! ${bash}/bin/sh - source /tmp/xchg/saved-env - - # Set the system time from the hardware clock. Works around an - # apparent KVM > 1.5.2 bug. - ${util-linux}/bin/hwclock -s - - export NIX_STORE=${storeDir} - export NIX_BUILD_TOP=/tmp - export TMPDIR=/tmp - export PATH=/empty - out="$1" - cd "$NIX_BUILD_TOP" - - if ! test -e /bin/sh; then - ${coreutils}/bin/mkdir -p /bin - ${coreutils}/bin/ln -s ${bash}/bin/sh /bin/sh - fi - - # Set up automatic kernel module loading. - export MODULE_DIR=${kernel}/lib/modules/ - ${coreutils}/bin/cat < /run/modprobe - #! ${bash}/bin/sh - export MODULE_DIR=$MODULE_DIR - exec ${kmod}/bin/modprobe "\$@" - EOF - ${coreutils}/bin/chmod 755 /run/modprobe - echo /run/modprobe > /proc/sys/kernel/modprobe - - # For debugging: if this is the second time this image is run, - # then don't start the build again, but instead drop the user into - # an interactive shell. - if test -n "$origBuilder" -a ! -e /.debug; then - exec < /dev/null - ${coreutils}/bin/touch /.debug - $origBuilder $origArgs - echo $? > /tmp/xchg/in-vm-exit - - ${busybox}/bin/mount -o remount,ro dummy / - - ${busybox}/bin/poweroff -f - else - export PATH=/bin:/usr/bin:${coreutils}/bin - echo "Starting interactive shell..." - echo "(To run the original builder: \$origBuilder \$origArgs)" - exec ${busybox}/bin/setsid ${bashInteractive}/bin/bash < /dev/${qemu-common.qemuSerialDevice} &> /dev/${qemu-common.qemuSerialDevice} - fi - ''; - - - qemuCommandLinux = '' - ${qemu-common.qemuBinary qemu} \ - -nographic -no-reboot \ - -device virtio-rng-pci \ - -virtfs local,path=${storeDir},security_model=none,mount_tag=store \ - -virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \ - ''${diskImage:+-drive file=$diskImage,if=virtio,cache=unsafe,werror=report} \ - -kernel ${kernel}/${img} \ - -initrd ${initrd}/initrd \ - -append "console=${qemu-common.qemuSerialDevice} panic=1 command=${stage2Init} out=$out mountDisk=$mountDisk loglevel=4" \ - $QEMU_OPTS - ''; - - - vmRunCommand = qemuCommand: writeText "vm-run" '' - export > saved-env - - PATH=${coreutils}/bin - mkdir xchg - mv saved-env xchg/ - - 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" - 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 < ${destination}/nix-support/full-name - ''; - - - defaultCreateRootFS = '' - mkdir /mnt - ${e2fsprogs}/bin/mkfs.ext4 /dev/${hd} - ${util-linux}/bin/mount -t ext4 /dev/${hd} /mnt - - if test -e /mnt/.debug; then - exec ${bash}/bin/sh - fi - touch /mnt/.debug - - 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 - - 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.) - - 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 - }); - - - 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 - - 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} : - 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 - - mkdir -p $out - mkdir -p tmp - - dd if=${file} of=/dev/mtd0 - mount ${lib.optionalString (fs != null) "-t ${fs} "}/dev/mtdblock0 tmp - - 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. */ - - 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 - ''; - - /* 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; - - /* 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. */ - - fillDiskWithRPMs = - { 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;}; - - 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" - - 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 }: - - fillDiskWithRPMs { - inherit name fullName size preInstall postInstall runScripts createRootFS unifiedSystemDir QEMU_OPTS memSize; - rpms = import (rpmClosureGenerator { - 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). */ - - debClosureGenerator = - {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 - - 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. */ - - makeImageFromDebDist = - { name, fullName, size ? 4096, urlPrefix - , packagesList ? "", packagesLists ? [packagesList] - , packages, extraPackages ? [], postInstall ? "" - , extraDebs ? [], createRootFS ? defaultCreateRootFS - , QEMU_OPTS ? "", memSize ? 512, ... }@args: - - let - expr = debClosureGenerator { - inherit name packagesLists urlPrefix; - packages = packages ++ extraPackages; - }; - in - (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. */ - - rpmDistros = { - - # Note: no i386 release for Fedora >= 26 - fedora26x86_64 = - let version = "26"; - in { - name = "fedora-${version}-x86_64"; - fullName = "Fedora ${version} (x86_64)"; - packagesList = fetchurl rec { - url = "mirror://fedora/linux/releases/${version}/Everything/x86_64/os/repodata/${sha256}-primary.xml.gz"; - sha256 = "880055a50c05b20641530d09b23f64501a000b2f92fe252417c530178730a95e"; - }; - urlPrefix = "mirror://fedora/linux/releases/${version}/Everything/x86_64/os"; - archs = ["noarch" "x86_64"]; - packages = commonFedoraPackages ++ [ "cronie" "util-linux" ]; - unifiedSystemDir = true; - }; - - fedora27x86_64 = - let version = "27"; - in { - name = "fedora-${version}-x86_64"; - fullName = "Fedora ${version} (x86_64)"; - packagesList = fetchurl rec { - url = "mirror://fedora/linux/releases/${version}/Everything/x86_64/os/repodata/${sha256}-primary.xml.gz"; - sha256 = "48986ce4583cd09825c6d437150314446f0f49fa1a1bd62dcfa1085295030fe9"; - }; - urlPrefix = "mirror://fedora/linux/releases/${version}/Everything/x86_64/os"; - archs = ["noarch" "x86_64"]; - packages = commonFedoraPackages ++ [ "cronie" "util-linux" ]; - unifiedSystemDir = true; - }; - - centos6i386 = - let version = "6.9"; - in rec { - name = "centos-${version}-i386"; - fullName = "CentOS ${version} (i386)"; - urlPrefix = "mirror://centos/${version}/os/i386"; - packagesList = fetchurl rec { - url = "${urlPrefix}/repodata/${sha256}-primary.xml.gz"; - sha256 = "b826a45082ef68340325c0855f3d2e5d5a4d0f77d28ba3b871791d6f14a97aeb"; - }; - archs = ["noarch" "i386"]; - packages = commonCentOSPackages ++ [ "procps" ]; - }; - - centos6x86_64 = - let version = "6.9"; - in rec { - name = "centos-${version}-x86_64"; - fullName = "CentOS ${version} (x86_64)"; - urlPrefix = "mirror://centos/${version}/os/x86_64"; - packagesList = fetchurl rec { - url = "${urlPrefix}/repodata/${sha256}-primary.xml.gz"; - sha256 = "ed2b2d4ac98d774d4cd3e91467e1532f7e8b0275cfc91a0d214b532dcaf1e979"; - }; - archs = ["noarch" "x86_64"]; - packages = commonCentOSPackages ++ [ "procps" ]; - }; - - # Note: no i386 release for 7.x - centos7x86_64 = - let version = "7.4.1708"; - in rec { - name = "centos-${version}-x86_64"; - fullName = "CentOS ${version} (x86_64)"; - urlPrefix = "mirror://centos/${version}/os/x86_64"; - packagesList = fetchurl rec { - url = "${urlPrefix}/repodata/${sha256}-primary.xml.gz"; - sha256 = "b686d3a0f337323e656d9387b9a76ce6808b26255fc3a138b1a87d3b1cb95ed5"; - }; - archs = ["noarch" "x86_64"]; - packages = commonCentOSPackages ++ [ "procps-ng" ]; - }; - }; - - - /* 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"; - }) - ]; - urlPrefix = "mirror://ubuntu"; - 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"; - }) - ]; - urlPrefix = "mirror://ubuntu"; - 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"; - }) - ]; - urlPrefix = "mirror://ubuntu"; - 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"; - }) - ]; - urlPrefix = "mirror://ubuntu"; - 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"; - }) - ]; - urlPrefix = "mirror://ubuntu"; - 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"; - }) - ]; - urlPrefix = "mirror://ubuntu"; - 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="; - }) - ]; - urlPrefix = "mirror://ubuntu"; - 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="; - }) - ]; - urlPrefix = "mirror://ubuntu"; - 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="; - }) - ]; - urlPrefix = "mirror://ubuntu"; - 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="; - }) - ]; - urlPrefix = "mirror://ubuntu"; - packages = commonDebPackages ++ [ "diffutils" "libc-bin" ]; - }; - - debian10i386 = { - name = "debian-10.13-buster-i386"; - fullName = "Debian 10.13 Buster (i386)"; - packagesList = fetchurl { - url = "https://snapshot.debian.org/archive/debian/20221126T084953Z/dists/buster/main/binary-i386/Packages.xz"; - hash = "sha256-n9JquhtZgxw3qr9BX0MQoY3ZTIHN0dit+iru3DC31UY="; - }; - urlPrefix = "https://snapshot.debian.org/archive/debian/20221126T084953Z"; - packages = commonDebianPackages; - }; - - debian10x86_64 = { - name = "debian-10.13-buster-amd64"; - fullName = "Debian 10.13 Buster (amd64)"; - packagesList = fetchurl { - url = "https://snapshot.debian.org/archive/debian/20221126T084953Z/dists/buster/main/binary-amd64/Packages.xz"; - hash = "sha256-YukIIB3u87jgp9oudwklsxyKVKjSL618wFgDSXiFmjU="; - }; - urlPrefix = "https://snapshot.debian.org/archive/debian/20221126T084953Z"; - packages = commonDebianPackages; - }; - - debian11i386 = { - name = "debian-11.8-bullseye-i386"; - fullName = "Debian 11.8 Bullseye (i386)"; - packagesList = fetchurl { - url = "https://snapshot.debian.org/archive/debian/20231124T031419Z/dists/bullseye/main/binary-i386/Packages.xz"; - hash = "sha256-0bKSLLPhEC7FB5D1NA2jaQP0wTe/Qp1ddiA/NDVjRaI="; - }; - urlPrefix = "https://snapshot.debian.org/archive/debian/20231124T031419Z"; - packages = commonDebianPackages; - }; - - debian11x86_64 = { - name = "debian-11.8-bullseye-amd64"; - fullName = "Debian 11.8 Bullseye (amd64)"; - packagesList = fetchurl { - url = "https://snapshot.debian.org/archive/debian/20231124T031419Z/dists/bullseye/main/binary-amd64/Packages.xz"; - hash = "sha256-CYPsGgQgJZkh3JmbcAQkYDWP193qrkOADOgrMETZIeo="; - }; - urlPrefix = "https://snapshot.debian.org/archive/debian/20231124T031419Z"; - packages = commonDebianPackages; - }; - - debian12i386 = { - name = "debian-12.2-bookworm-i386"; - fullName = "Debian 12.2 Bookworm (i386)"; - packagesList = fetchurl { - url = "https://snapshot.debian.org/archive/debian/20231124T031419Z/dists/bookworm/main/binary-i386/Packages.xz"; - hash = "sha256-OeN9Q2HFM3GsPNhOa4VhM7qpwT66yUNwC+6Z8SbGEeQ="; - }; - urlPrefix = "https://snapshot.debian.org/archive/debian/20231124T031419Z"; - packages = commonDebianPackages; - }; - - debian12x86_64 = { - name = "debian-12.2-bookworm-amd64"; - fullName = "Debian 12.2 Bookworm (amd64)"; - packagesList = fetchurl { - url = "https://snapshot.debian.org/archive/debian/20231124T031419Z/dists/bookworm/main/binary-amd64/Packages.xz"; - hash = "sha256-SZDElRfe9BlBwDlajQB79Qdn08rv8whYoQDeVCveKVs="; - }; - urlPrefix = "https://snapshot.debian.org/archive/debian/20231124T031419Z"; - packages = commonDebianPackages; - }; - }; - - - /* Common packages for Fedora images. */ - commonFedoraPackages = [ - "autoconf" - "automake" - "basesystem" - "bzip2" - "curl" - "diffutils" - "fedora-release" - "findutils" - "gawk" - "gcc-c++" - "gzip" - "make" - "patch" - "perl" - "pkgconf-pkg-config" - "rpm" - "rpm-build" - "tar" - "unzip" - ]; - - commonCentOSPackages = [ - "autoconf" - "automake" - "basesystem" - "bzip2" - "curl" - "diffutils" - "centos-release" - "findutils" - "gawk" - "gcc-c++" - "gzip" - "make" - "patch" - "perl" - "pkgconfig" - "rpm" - "rpm-build" - "tar" - "unzip" - ]; - - commonRHELPackages = [ - "autoconf" - "automake" - "basesystem" - "bzip2" - "curl" - "diffutils" - "findutils" - "gawk" - "gcc-c++" - "gzip" - "make" - "patch" - "perl" - "pkgconfig" - "procps-ng" - "rpm" - "rpm-build" - "tar" - "unzip" - ]; - - /* Common packages for openSUSE images. */ - commonOpenSUSEPackages = [ - "aaa_base" - "autoconf" - "automake" - "bzip2" - "curl" - "diffutils" - "findutils" - "gawk" - "gcc-c++" - "gzip" - "make" - "patch" - "perl" - "pkg-config" - "rpm" - "tar" - "unzip" - "util-linux" - "gnu-getopt" - ]; - - - /* Common packages for Debian/Ubuntu images. */ - commonDebPackages = [ - "base-passwd" - "dpkg" - "libc6-dev" - "perl" - "bash" - "dash" - "gzip" - "bzip2" - "tar" - "grep" - "mawk" - "sed" - "findutils" - "g++" - "make" - "curl" - "patch" - "locales" - "coreutils" - # Needed by checkinstall: - "util-linux" - "file" - "dpkg-dev" - "pkg-config" - # Needed because it provides /etc/login.defs, whose absence causes - # the "passwd" post-installs script to fail. - "login" - "passwd" - ]; - - 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. */ - diskImageFuns = - (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; - - - /* Default disk images generated from the `rpmDistros' and - `debDistros' sets. */ - diskImages = lib.mapAttrs (name: f: f {}) diskImageFuns; - -} diff --git a/pkgs/build-support/vm/rpm/rpm-closure.pl b/pkgs/build-support/vm/rpm/rpm-closure.pl deleted file mode 100644 index 6442cd9..0000000 --- a/pkgs/build-support/vm/rpm/rpm-closure.pl +++ /dev/null @@ -1,184 +0,0 @@ -use strict; -use XML::Simple; -use List::Util qw(min); - -my @packagesFiles = (); -my @urlPrefixes = (); - -# rpm-closure.pl ( )+ + - -while(-f $ARGV[0]) { - my $packagesFile = shift @ARGV; - my $urlPrefix = shift @ARGV; - push(@packagesFiles, $packagesFile); - push(@urlPrefixes, $urlPrefix); -} - - -sub rpmvercmp { - my ($version1, $version2) = @_; - my @vercmps1 = split /\./, $version1; - my @vercmps2 = split /\./, $version2; - my $l1 = scalar(@vercmps1); - my $l2 = scalar(@vercmps2); - my $l = min($l1, $l2); - - for(my $i=0; $i<$l; $i++) { - my $v1 = $vercmps1[$i]; - my $v2 = $vercmps2[$i]; - - if($v1 =~ /^[0-9]*$/ && $v2 =~ /^[0-9]*$/) { - if ( int($v1) > int($v2) ) { - return 1; - } - elsif ( int($v1) < int($v2) ) { - return -1; - } - } else { - if ( $v1 gt $v2 ) { - return 1; - } - elsif ( $v1 lt $v2 ) { - return -1; - } - } - } - if($l1 == $l2) { - return 0; - } elsif ($l1 > $l2) { - return 1; - } elsif ($l1 < $l2) { - return -1; - } -} - -my @toplevelPkgs = @ARGV; - -my @archs = split ' ', ($ENV{'archs'} or ""); - -my %pkgs; -for (my $i = 0; $i < scalar(@packagesFiles); $i++) { - my $packagesFile = $packagesFiles[$i]; - print STDERR "parsing packages in $packagesFile...\n"; - - my $xml = XMLin($packagesFile, ForceArray => ['package', 'rpm:entry', 'file'], KeyAttr => []) or die; - - print STDERR "$packagesFile contains $xml->{packages} packages\n"; - - foreach my $pkg (@{$xml->{'package'}}) { - if (scalar @archs > 0) { - my $arch = $pkg->{arch}; - my $found = 0; - foreach my $a (@archs) { $found = 1 if $arch eq $a; } - next if !$found; - } - if (defined $pkgs{$pkg->{name}}) { - my $earlierPkg = $pkgs{$pkg->{name}}; - print STDERR "WARNING: duplicate occurrence of package $pkg->{name}\n"; - # - my $cmp = rpmvercmp($pkg->{'version'}->{ver}, $earlierPkg->{'version'}->{ver}); - if ($cmp > 0 || ($cmp == 0 && rpmvercmp($pkg->{'version'}->{rel}, $earlierPkg->{'version'}->{rel})>0)) { - print STDERR "WARNING: replaced package $pkg->{name} (".$earlierPkg->{'version'}->{ver}." ".$earlierPkg->{'version'}->{rel}.") with newer one (".$pkg->{'version'}->{ver}." ".$pkg->{'version'}->{rel}.")\n"; - $pkg->{urlPrefix} = $urlPrefixes[$i]; - $pkgs{$pkg->{name}} = $pkg; - } - next; - } - $pkg->{urlPrefix} = $urlPrefixes[$i]; - $pkgs{$pkg->{name}} = $pkg; - } -} - -my %provides; -PKG: foreach my $pkgName (sort(keys %pkgs)) { - #print STDERR "looking at $pkgName\n"; - my $pkg = $pkgs{$pkgName}; - - # Skip packages that conflict with a required package. - my $conflicts = $pkg->{format}->{'rpm:conflicts'}->{'rpm:entry'} // []; - foreach my $conflict (@{$conflicts}) { - next if $conflict->{flags} // "" eq "LT" || $conflict->{flags} // "" eq "LE"; - #print STDERR " $pkgName conflicts with $conflict->{name}\n"; - if (grep { $_ eq $conflict->{name} } @toplevelPkgs) { - print STDERR "skipping package $pkgName because it conflicts with a required package\n"; - next PKG; - } - } - - my $provides = $pkg->{format}->{'rpm:provides'}->{'rpm:entry'} or die; - foreach my $req (@{$provides}) { - #print STDERR " $pkgName provides $req->{name}\n"; - #die "multiple provides for $req->{name}" if defined $provides{$req->{name}}; - $provides{$req->{name}} = $pkgName; - } - - if (defined $pkg->{format}->{file}) { - foreach my $file (@{$pkg->{format}->{file}}) { - #print STDERR " provides file $file\n"; - $provides{$file} = $pkgName; - } - } -} - - -my %donePkgs; -my @needed = (); - -sub closePackage { - my $pkgName = shift; - - return if defined $donePkgs{$pkgName}; - $donePkgs{$pkgName} = 1; - - print STDERR ">>> $pkgName\n"; - - my $pkg = $pkgs{$pkgName} or die "package $pkgName doesn't exist"; - - my $requires = $pkg->{format}->{'rpm:requires'}->{'rpm:entry'} || []; - - my @deps = (); - foreach my $req (@{$requires}) { - next if $req->{name} =~ /^rpmlib\(/; - #print STDERR " needs $req->{name}\n"; - my $provider = $provides{$req->{name}}; - if (!defined $provider) { - print STDERR " WARNING: no provider for $req->{name}\n"; - next; - } - #print STDERR " satisfied by $provider\n"; - push @deps, $provider; - } - - closePackage($_) foreach @deps; - - push @needed, $pkgName; -} - - -foreach my $pkgName (@toplevelPkgs) { - closePackage $pkgName; -} - - -# Generate the output Nix expression. -print "# This is a generated file. Do not modify!\n"; -print "# Following are the RPM packages constituting the closure of: @toplevelPkgs\n\n"; -print "{fetchurl}:\n\n"; -print "[\n\n"; - -foreach my $pkgName (@needed) { - my $pkg = $pkgs{$pkgName}; - print " (fetchurl {\n"; - print " url = $pkg->{urlPrefix}/$pkg->{location}->{href};\n"; - if ($pkg->{checksum}->{type} eq "sha") { - print " sha1 = \"$pkg->{checksum}->{content}\";\n"; - } elsif ($pkg->{checksum}->{type} eq "sha256") { - print " sha256 = \"$pkg->{checksum}->{content}\";\n"; - } else { - die "unsupported hash type"; - } - print " })\n"; - print "\n"; -} - -print "]\n"; diff --git a/pkgs/build-support/vm/test.nix b/pkgs/build-support/vm/test.nix deleted file mode 100644 index 50dbfeb..0000000 --- a/pkgs/build-support/vm/test.nix +++ /dev/null @@ -1,58 +0,0 @@ -let - pkgs = import ../../.. { }; - - inherit (pkgs) - hello - patchelf - pcmanfm - stdenv - ; - - inherit (pkgs.vmTools) - buildRPM - diskImages - makeImageTestScript - runInLinuxImage - runInLinuxVM - ; -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; - })); - - testRPMImage = makeImageTestScript diskImages.fedora27x86_64; - - - buildPatchelfRPM = buildRPM { - name = "patchelf-rpm"; - src = patchelf.src; - diskImage = diskImages.fedora27x86_64; - 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 - ''; - }); - -} diff --git a/pkgs/build-support/wrapper-common/utils.bash b/pkgs/build-support/wrapper-common/utils.bash deleted file mode 100644 index 2faf96d..0000000 --- a/pkgs/build-support/wrapper-common/utils.bash +++ /dev/null @@ -1,171 +0,0 @@ -# Accumulate suffixes for taking in the right input parameters with the `mangle*` -# functions below. See setup-hook for details. -accumulateRoles() { - declare -ga role_suffixes=() - if [ "${NIX_@wrapperName@_TARGET_BUILD_@suffixSalt@:-}" ]; then - role_suffixes+=('_FOR_BUILD') - fi - if [ "${NIX_@wrapperName@_TARGET_HOST_@suffixSalt@:-}" ]; then - role_suffixes+=('') - fi - if [ "${NIX_@wrapperName@_TARGET_TARGET_@suffixSalt@:-}" ]; then - role_suffixes+=('_FOR_TARGET') - fi -} - -mangleVarListGeneric() { - local sep="$1" - shift - local var="$1" - shift - local -a role_suffixes=("$@") - - local outputVar="${var}_@suffixSalt@" - declare -gx "$outputVar"+='' - # For each role we serve, we accumulate the input parameters into our own - # cc-wrapper-derivation-specific environment variables. - for suffix in "${role_suffixes[@]}"; do - local inputVar="${var}${suffix}" - if [ -v "$inputVar" ]; then - export "${outputVar}+=${!outputVar:+$sep}${!inputVar}" - fi - done -} - -mangleVarList() { - mangleVarListGeneric " " "$@" -} - -mangleVarBool() { - local var="$1" - shift - local -a role_suffixes=("$@") - - local outputVar="${var}_@suffixSalt@" - declare -gxi "${outputVar}+=0" - for suffix in "${role_suffixes[@]}"; do - local inputVar="${var}${suffix}" - if [ -v "$inputVar" ]; then - # "1" in the end makes `let` return success error code when - # expression itself evaluates to zero. - # We don't use `|| true` because that would silence actual - # syntax errors from bad variable values. - let "${outputVar} |= ${!inputVar:-0}" "1" - fi - done -} - -# Combine a singular value from all roles. If multiple roles are being served, -# and the value differs in these roles then the request is impossible to -# satisfy and we abort immediately. -mangleVarSingle() { - local var="$1" - shift - local -a role_suffixes=("$@") - - local outputVar="${var}_@suffixSalt@" - for suffix in "${role_suffixes[@]}"; do - local inputVar="${var}${suffix}" - if [ -v "$inputVar" ]; then - if [ -v "$outputVar" ]; then - if [ "${!outputVar}" != "${!inputVar}" ]; then - { - echo "Multiple conflicting values defined for $outputVar" - echo "Existing value is ${!outputVar}" - echo "Attempting to set to ${!inputVar} via $inputVar" - } >&2 - - exit 1 - fi - else - declare -gx ${outputVar}="${!inputVar}" - fi - fi - done -} - -skip() { - if (( "${NIX_DEBUG:-0}" >= 1 )); then - echo "skipping impure path $1" >&2 - fi -} - -reject() { - echo "impure path \`$1' used in link" >&2 - exit 1 -} - - -# Checks whether a path is impure. E.g., `/lib/foo.so' is impure, but -# `/nix/store/.../lib/foo.so' isn't. -badPath() { - local p=$1 - - # Relative paths are okay (since they're presumably relative to - # the temporary build directory). - if [ "${p:0:1}" != / ]; then return 1; fi - - # Otherwise, the path should refer to the store or some temporary - # directory (including the build directory). - test \ - "$p" != "/dev/null" -a \ - "${p#"${NIX_STORE}"}" = "$p" -a \ - "${p#"${NIX_BUILD_TOP}"}" = "$p" -a \ - "${p#/tmp}" = "$p" -a \ - "${p#"${TMP:-/tmp}"}" = "$p" -a \ - "${p#"${TMPDIR:-/tmp}"}" = "$p" -a \ - "${p#"${TEMP:-/tmp}"}" = "$p" -a \ - "${p#"${TEMPDIR:-/tmp}"}" = "$p" -} - -expandResponseParams() { - declare -ga params=("$@") - local arg - for arg in "$@"; do - if [[ "$arg" == @* ]]; then - # phase separation makes this look useless - # shellcheck disable=SC2157 - if [ -x "@expandResponseParams@" ]; then - # params is used by caller - #shellcheck disable=SC2034 - readarray -d '' params < <("@expandResponseParams@" "$@") - return 0 - fi - fi - done -} - -checkLinkType() { - local arg - type="dynamic" - for arg in "$@"; do - if [[ "$arg" = -static ]]; then - type="static" - elif [[ "$arg" = -static-pie ]]; then - type="static-pie" - fi - done - echo "$type" -} - -# When building static-pie executables we cannot have rpath -# set. At least glibc requires rpath to be empty -filterRpathFlags() { - local linkType=$1 ret i - shift - - if [[ "$linkType" == "static-pie" ]]; then - while [[ "$#" -gt 0 ]]; do - i="$1"; shift 1 - if [[ "$i" == -rpath ]]; then - # also skip its argument - shift - else - ret+=("$i") - fi - done - else - ret=("$@") - fi - echo "${ret[@]}" -} diff --git a/pkgs/build-support/writers/aliases.nix b/pkgs/build-support/writers/aliases.nix deleted file mode 100644 index fb108a6..0000000 --- a/pkgs/build-support/writers/aliases.nix +++ /dev/null @@ -1,35 +0,0 @@ -lib: prev: - -let - # Removing recurseForDerivation prevents derivations of aliased attribute - # set to appear while listing all the packages available. - removeRecurseForDerivations = alias: with lib; - if alias.recurseForDerivations or false then - 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; - - # 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; - - mapAliases = aliases: - lib.mapAttrs (n: alias: removeDistribute - (removeRecurseForDerivations - (checkInPkgs n alias))) - aliases; - -in -mapAliases ({ - /* 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 deleted file mode 100644 index 3151503..0000000 --- a/pkgs/build-support/writers/data.nix +++ /dev/null @@ -1,85 +0,0 @@ -{ lib, pkgs, formats, runCommand }: -let - inherit (lib) - last - optionalString - types - ; -in -{ - /** - Creates a transformer function that writes input data to disk, transformed - by both the `input` and `output` arguments. - - # Example - - ```nix - writeJSON = makeDataWriter { input = builtins.toJSON; output = "cp $inputPath $out"; }; - myConfig = writeJSON "config.json" { hello = "world"; } - ``` - - # Type - - ``` - makeDataWriter :: input -> output -> nameOrPath -> data -> (any -> string) -> string -> string -> any -> derivation - - input :: T -> string: function that takes the nix data and returns a string - output :: string: script that takes the $inputFile and write the result into $out - nameOrPath :: string: if the name contains a / the files gets written to a sub-folder of $out. The derivation name is the basename of this argument. - 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); - let - name = last (builtins.split "/" nameOrPath); - in - runCommand name - { - input = input data; - passAsFile = [ "input" ]; - } '' - ${output} - - ${optionalString (types.path.check nameOrPath) '' - mv $out tmp - mkdir -p $out/$(dirname "${nameOrPath}") - mv tmp $out/${nameOrPath} - ''} - ''); - - inherit (pkgs) writeText; - - /** - Writes the content to a JSON file. - - # Example - - ```nix - writeJSON "data.json" { hello = "world"; } - ``` - */ - writeJSON = (pkgs.formats.json {}).generate; - - /** - Writes the content to a TOML file. - - # Example - - ```nix - writeTOML "data.toml" { hello = "world"; } - ``` - */ - writeTOML = (pkgs.formats.toml {}).generate; - - /** - Writes the content to a YAML file. - - # Example - - ```nix - writeYAML "data.yaml" { hello = "world"; } - ``` - */ - writeYAML = (pkgs.formats.yaml {}).generate; -} diff --git a/pkgs/build-support/writers/default.nix b/pkgs/build-support/writers/default.nix deleted file mode 100644 index cadb697..0000000 --- a/pkgs/build-support/writers/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ 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: {}; - - # Writers for JSON-like data structures - dataWriters = callPackages ./data.nix { }; - - # Writers for scripts - scriptWriters = callPackages ./scripts.nix { }; - - writers = scriptWriters // dataWriters; -in -writers // (aliases writers) diff --git a/pkgs/build-support/writers/scripts.nix b/pkgs/build-support/writers/scripts.nix deleted file mode 100644 index 06d763c..0000000 --- a/pkgs/build-support/writers/scripts.nix +++ /dev/null @@ -1,668 +0,0 @@ -{ - buildPackages, - gixy, - lib, - libiconv, - makeBinaryWrapper, - mkNugetDeps, - mkNugetSource, - pkgs, - stdenv, -}: -let - inherit (lib) - concatMapStringsSep - elem - escapeShellArg - last - optionalString - strings - types - ; -in -rec { - # Base implementation for non-compiled executables. - # Takes an interpreter, for example `${lib.getExe pkgs.bash}` - # - # 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); - assert (types.path.check content) || (types.str.check content); - let - nameIsPath = types.path.check nameOrPath; - name = last (builtins.split "/" nameOrPath); - path = if nameIsPath then nameOrPath else "/bin/${name}"; - # 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; - } - ) - ) - '' - # 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 - 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 - - 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); - assert (types.path.check content) || (types.str.check content); - let - nameIsPath = types.path.check nameOrPath; - name = last (builtins.split "/" nameOrPath); - path = if nameIsPath then nameOrPath else "/bin/${name}"; - # 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; - } - ) - ) - '' - ${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 {} '' - ln -s ${inner}/bin/${name} $out - ''; - - # Like writeScript but the first line is a shebang to bash - # - # Can be called with or without extra arguments. - # - # Example without arguments: - # writeBash "example" '' - # echo hello world - # '' - # - # Example with arguments: - # writeBash "example" - # { - # makeWrapperArgs = [ - # "--prefix" "PATH" ":" "${pkgs.hello}/bin" - # ]; - # } - # '' - # 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; - - # Like writeScriptBin but the first line is a shebang to bash - # - # Can be called with or without extra arguments. - # - # Example without arguments: - # writeBashBin "example" '' - # echo hello world - # '' - # - # Example with arguments: - # writeBashBin "example" - # { - # makeWrapperArgs = [ - # "--prefix", "PATH", ":", "${pkgs.hello}/bin", - # ]; - # } - # '' - # hello - # '' - writeBashBin = name: - writeBash "/bin/${name}"; - - # Like writeScript but the first line is a shebang to dash - # - # Can be called with or without extra arguments. - # - # Example without arguments: - # writeDash "example" '' - # echo hello world - # '' - # - # Example with arguments: - # writeDash "example" - # { - # makeWrapperArgs = [ - # "--prefix", "PATH", ":", "${pkgs.hello}/bin", - # ]; - # } - # '' - # 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; - - # Like writeScriptBin but the first line is a shebang to dash - # - # Can be called with or without extra arguments. - # - # Example without arguments: - # writeDashBin "example" '' - # echo hello world - # '' - # - # Example with arguments: - # writeDashBin "example" - # { - # makeWrapperArgs = [ - # "--prefix", "PATH", ":", "${pkgs.hello}/bin", - # ]; - # } - # '' - # hello - # '' - writeDashBin = name: - writeDash "/bin/${name}"; - - # Like writeScript but the first line is a shebang to fish - # - # Can be called with or without extra arguments. - # - # Example without arguments: - # writeFish "example" '' - # echo hello world - # '' - # - # Example with arguments: - # writeFish "example" - # { - # makeWrapperArgs = [ - # "--prefix", "PATH", ":", "${pkgs.hello}/bin", - # ]; - # } - # '' - # 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; - - # Like writeScriptBin but the first line is a shebang to fish - # - # Can be called with or without extra arguments. - # - # Example without arguments: - # writeFishBin "example" '' - # echo hello world - # '' - # - # Example with arguments: - # writeFishBin "example" - # { - # makeWrapperArgs = [ - # "--prefix", "PATH", ":", "${pkgs.hello}/bin", - # ]; - # } - # '' - # hello - # '' - 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. - # - # Example: - # writeHaskell "missiles" { libraries = [ pkgs.haskellPackages.acme-missiles ]; } '' - # import Acme.Missiles - # - # main = launchMissiles - # ''; - 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 { - compileScript = '' - cp $contentPath 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}"; - - # Like writeScript but the first line is a shebang to nu - # - # Can be called with or without extra arguments. - # - # Example without arguments: - # writeNu "example" '' - # echo hello world - # '' - # - # Example with arguments: - # writeNu "example" - # { - # makeWrapperArgs = [ - # "--prefix", "PATH", ":", "${pkgs.hello}/bin", - # ]; - # } - # '' - # 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; - - - # Like writeScriptBin but the first line is a shebang to nu - # - # Can be called with or without extra arguments. - # - # Example without arguments: - # writeNuBin "example" '' - # echo hello world - # '' - # - # Example with arguments: - # writeNuBin "example" - # { - # makeWrapperArgs = [ - # "--prefix", "PATH", ":", "${pkgs.hello}/bin", - # ]; - # } - # '' - # hello - # '' - 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; - - # Like writeScript but the first line is a shebang to ruby - # - # Example: - # writeRuby "example" { libraries = [ pkgs.rubyPackages.git ]; } '' - # puts "hello world" - # '' - writeRuby = makeRubyWriter pkgs.ruby pkgs.rubyPackages buildPackages.rubyPackages; - - 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; - # 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; - - # writeLua takes a name an attributeset with libraries and some lua source code and - # returns an executable (should also work with luajit) - # - # Example: - # writeLua "test_lua" { libraries = [ pkgs.luaPackages.say ]; } '' - # s = require("say") - # s:set_namespace("en") - # - # s:set('money', 'I have %s dollars') - # s:set('wow', 'So much money!') - # - # print(s('money', {1000})) -- I have 1000 dollars - # - # s:set_namespace("fr") -- switch to french! - # s:set('wow', "Tant d'argent!") - # - # print(s('wow')) -- Tant d'argent! - # s:set_namespace("en") -- switch back to english! - # print(s('wow')) -- So much money! - # '' - writeLua = makeLuaWriter pkgs.lua pkgs.luaPackages buildPackages.luaPackages; - - 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 - makeBinWriter { - compileScript = '' - cp "$contentPath" 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}"; - - # writeJS takes a name an attributeset with libraries and some JavaScript sourcecode and - # returns an executable - # - # Example: - # writeJS "example" { libraries = [ pkgs.nodePackages.uglify-js ]; } '' - # var UglifyJS = require("uglify-js"); - # var code = "function add(first, second) { return first + second; }"; - # 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} "$@" - ''; - - # writeJSBin takes the same arguments as writeJS but outputs a directory (like writeScriptBin) - writeJSBin = name: - writeJS "/bin/${name}"; - - awkFormatNginx = builtins.toFile "awkFormat-nginx.awk" '' - awk -f - {sub(/^[ \t]+/,"");idx=0} - /\{/{ctx++;idx=1} - /\}/{ctx--} - {id="";for(i=idx;i $out - gixy $out - ''; - - # writePerl takes a name an attributeset with libraries and some perl sourcecode and - # returns an executable - # - # Example: - # writePerl "example" { libraries = [ pkgs.perlPackages.boolean ]; } '' - # use boolean; - # print "Howdy!\n" if true; - # '' - writePerl = name: { libraries ? [], ... } @ args: - makeScriptWriter ( - (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}"; - - # 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"]) - // { - 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" - ''); - } - ) - name; - - # writePyPy2 takes a name an attributeset with libraries and some pypy2 sourcecode and - # returns an executable - # - # Example: - # writePyPy2 "test_pypy2" { libraries = [ pkgs.pypy2Packages.enum ]; } '' - # from enum import Enum - # - # class Test(Enum): - # a = "success" - # - # print Test.a - # '' - 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}"; - - # writePython3 takes a name an attributeset with libraries and some python3 sourcecode and - # returns an executable - # - # Example: - # writePython3 "test_python3" { libraries = [ pkgs.python3Packages.pyyaml ]; } '' - # import yaml - # - # y = yaml.load(""" - # - test: success - # """) - # print(y[0]['test']) - # '' - 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}"; - - # writePyPy3 takes a name an attributeset with libraries and some pypy3 sourcecode and - # returns an executable - # - # Example: - # writePyPy3 "test_pypy3" { libraries = [ pkgs.pypy3Packages.pyyaml ]; } '' - # import yaml - # - # y = yaml.load(""" - # - test: success - # """) - # print(y[0]['test']) - # '' - 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}"; - - - 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 ]; - }; - - 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 - ''; - - writeFSharp = - makeFSharpWriter {}; - - writeFSharpBin = name: - writeFSharp "/bin/${name}"; -} diff --git a/pkgs/build-support/writers/test.nix b/pkgs/build-support/writers/test.nix deleted file mode 100644 index 656d127..0000000 --- a/pkgs/build-support/writers/test.nix +++ /dev/null @@ -1,419 +0,0 @@ -{ 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 - -let - inherit (lib) getExe recurseIntoAttrs; - - inherit (writers) - makeFSharpWriter - writeBash - writeBashBin - writeDash - writeDashBin - writeFish - writeFishBin - writeFSharp - writeHaskell - writeHaskellBin - writeJS - writeJSBin - writeJSON - writeLua - writeNu - writePerl - writePerlBin - writePyPy3 - writePython3 - writePython3Bin - writeRuby - writeRust - writeRustBin - writeText - writeTOML - writeYAML - ; - - expectSuccess = test: - runCommand "run-${test.name}" {} '' - if [[ "$(${test})" != success ]]; then - echo 'test ${test.name} failed' - exit 1 - fi - - touch $out - ''; - - expectSuccessBin = test: - runCommand "run-${test.name}" {} '' - if [[ "$(${getExe test})" != success ]]; then - echo 'test ${test.name} failed' - exit 1 - fi - - touch $out - ''; - - expectDataEqual = { file, expected }: - let - expectedFile = writeText "${file.name}-expected" expected; - in - 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 - ''); - - dash = expectSuccessBin (writeDashBin "test-writers-dash-bin" '' - test '~' = '~' && echo 'success' - ''); - - 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") - } - ''); - - haskell = expectSuccessBin (writeHaskellBin "test-writers-haskell-bin" { libraries = [ haskellPackages.acme-default ]; } '' - import Data.Default - - int :: Int - int = def - - 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'); - - 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; - ''); - - python3 = expectSuccessBin (writePython3Bin "test-writers-python3-bin" { libraries = [ python3Packages.pyyaml ]; } '' - import yaml - - y = yaml.safe_load(""" - - test: success - """) - print(y[0]['test']) - ''); - - # Commented out because of this issue: https://github.com/NixOS/nixpkgs/issues/39356 - - #pypy2 = expectSuccessBin (writePyPy2Bin "test-writers-pypy2-bin" { libraries = [ pypy2Packages.enum ]; } '' - # from enum import Enum - # - # class Test(Enum): - # a = "success" - # - # print Test.a - #''); - - #pypy3 = expectSuccessBin (writePyPy3Bin "test-writers-pypy3-bin" { libraries = [ pypy3Packages.pyyaml ]; } '' - # import yaml - # - # y = yaml.safe_load(""" - # - test: success - # """) - # print(y[0]['test']) - #''); - - # Could not test this because of external package issues :( - #lua = writeLuaBin "test-writers-lua-bin" { libraries = [ pkgs.luaPackages.say ]; } '' - # s = require("say") - # s:set_namespace("en") - - # s:set('money', 'I have %s dollars') - # s:set('wow', 'So much money!') - - # print(s('money', {1000})) -- I have 1000 dollars - - # s:set_namespace("fr") -- switch to french! - # s:set('wow', "Tant d'argent!") - - # print(s('wow')) -- Tant d'argent! - # s:set_namespace("en") -- switch back to english! - # print(s('wow')) -- So much money! - #''; - - #ruby = expectSuccessBin (writeRubyBin "test-writers-ruby-bin" { libraries = [ rubyPackages.rubocop ]; } '' - #puts "This should work!" - #''); - }; - - simple = recurseIntoAttrs { - bash = expectSuccess (writeBash "test-writers-bash" '' - if [[ "test" == "test" ]]; then echo "success"; fi - ''); - - dash = expectSuccess (writeDash "test-writers-dash" '' - test '~' = '~' && echo 'success' - ''); - - fish = expectSuccess (writeFish "test-writers-fish" '' - if test "test" = "test" - echo "success" - end - ''); - - nu = expectSuccess (writeNu "test-writers-nushell" '' - echo "success" - ''); - - haskell = expectSuccess (writeHaskell "test-writers-haskell" { libraries = [ haskellPackages.acme-default ]; } '' - import Data.Default - - int :: Int - int = def - - 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'); - - 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; - ''); - - python3 = expectSuccess (writePython3 "test-writers-python3" { libraries = [ python3Packages.pyyaml ]; } '' - import yaml - - y = yaml.safe_load(""" - - test: success - """) - print(y[0]['test']) - ''); - - # Commented out because of this issue: https://github.com/NixOS/nixpkgs/issues/39356 - - #pypy2 = expectSuccessBin (writePyPy2Bin "test-writers-pypy2-bin" { libraries = [ pypy2Packages.enum ]; } '' - # from enum import Enum - # - # class Test(Enum): - # a = "success" - # - # print Test.a - #''); - - #pypy3 = expectSuccessBin (writePyPy3Bin "test-writers-pypy3-bin" { libraries = [ pypy3Packages.pyyaml ]; } '' - # import yaml - # - # y = yaml.safe_load(""" - # - test: success - # """) - # 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" '' - - #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) - - 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") - ''); - - pypy3NoLibs = expectSuccess (writePyPy3 "test-writers-pypy3-no-libs" {} '' - print("success") - ''); - - fsharpNoNugetDeps = expectSuccess (writeFSharp "test-writers-fsharp-no-nuget-deps" '' - printfn "success" - ''); - - luaNoLibs = expectSuccess (writeLua "test-writers-lua-no-libs" {} '' - print("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 - '')); - - haskell = expectSuccess (writeHaskell "test-writers-haskell-path" { libraries = [ haskellPackages.acme-default ]; } (writeText "test" '' - import Data.Default - - int :: Int - int = def - - main :: IO () - main = case int of - 18871 -> putStrLn $ id "success" - _ -> print "fail" - '')); - }; - - data = { - json = expectDataEqual { - file = writeJSON "data.json" { hello = "world"; }; - expected = '' - { - "hello": "world" - } - ''; - }; - - toml = expectDataEqual { - file = writeTOML "data.toml" { hello = "world"; }; - expected = '' - hello = "world" - ''; - }; - - yaml = expectDataEqual { - file = writeYAML "data.yaml" { hello = "world"; }; - expected = "hello: world\n"; - }; - }; - - wrapping = recurseIntoAttrs { - bash-bin = expectSuccessBin ( - writeBashBin "test-writers-wrapping-bash-bin" - { - makeWrapperArgs = [ - "--set" - "ThaigerSprint" - "Thailand" - ]; - } - '' - if [[ "$ThaigerSprint" == "Thailand" ]]; then - echo "success" - fi - '' - ); - - bash = expectSuccess ( - writeBash "test-writers-wrapping-bash" - { - makeWrapperArgs = [ - "--set" - "ThaigerSprint" - "Thailand" - ]; - } - '' - if [[ "$ThaigerSprint" == "Thailand" ]]; then - echo "success" - fi - '' - ); - - python = expectSuccess ( - writePython3 "test-writers-wrapping-python" - { - makeWrapperArgs = [ - "--set" - "ThaigerSprint" - "Thailand" - ]; - } - '' - import os - - if os.environ.get("ThaigerSprint") == "Thailand": - print("success") - '' - ); - - rust = expectSuccess ( - writeRust "test-writers-wrapping-rust" - { - makeWrapperArgs = [ - "--set" - "ThaigerSprint" - "Thailand" - ]; - } - '' - fn main(){ - if std::env::var("ThaigerSprint").unwrap() == "Thailand" { - println!("success") - } - } - '' - ); - - 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/clang.patch b/pkgs/by-name/aa/aalib/clang.patch deleted file mode 100644 index 5f8fa80..0000000 --- a/pkgs/by-name/aa/aalib/clang.patch +++ /dev/null @@ -1,74 +0,0 @@ -diff -ur a/configure b/configure ---- a/configure 2001-04-26 10:44:54.000000000 -0400 -+++ b/configure 2023-10-21 23:19:52.941161475 -0400 -@@ -1005,7 +1005,7 @@ - #line 1006 "configure" - #include "confdefs.h" - --main(){return(0);} -+int main(){return(0);} - EOF - if { (eval echo configure:1011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - ac_cv_prog_cc_works=yes -diff -ur a/src/aafire.c b/src/aafire.c ---- a/src/aafire.c 2001-04-26 11:30:03.000000000 -0400 -+++ b/src/aafire.c 2023-10-21 23:46:54.478750904 -0400 -@@ -1,3 +1,4 @@ -+#include - #include - #include "aalib.h" - -diff -ur a/src/aainfo.c b/src/aainfo.c ---- a/src/aainfo.c 2001-04-26 10:37:31.000000000 -0400 -+++ b/src/aainfo.c 2023-10-21 23:31:54.141133353 -0400 -@@ -1,4 +1,4 @@ -- -+#include - #include "aalib.h" - #include "aaint.h" - int main(int argc, char **argv) -diff -ur a/src/aakbdreg.c b/src/aakbdreg.c ---- a/src/aakbdreg.c 2023-10-21 23:19:00.787207960 -0400 -+++ b/src/aakbdreg.c 2023-10-21 23:23:49.667253541 -0400 -@@ -1,4 +1,5 @@ - #include -+#include - #include "config.h" - #include "aalib.h" - #include "aaint.h" -diff -ur a/src/aamoureg.c b/src/aamoureg.c ---- a/src/aamoureg.c 2023-10-21 23:19:00.787725591 -0400 -+++ b/src/aamoureg.c 2023-10-21 23:26:51.821477807 -0400 -@@ -1,4 +1,5 @@ - #include -+#include - #include "config.h" - #include "aalib.h" - #include "aaint.h" -diff -ur a/src/aaregist.c b/src/aaregist.c ---- a/src/aaregist.c 2023-10-21 23:19:00.788130179 -0400 -+++ b/src/aaregist.c 2023-10-21 23:19:38.929729034 -0400 -@@ -1,4 +1,5 @@ - #include -+#include - #include "config.h" - #include "aalib.h" - #include "aaint.h" -diff -ur a/src/aasavefont.c b/src/aasavefont.c ---- a/src/aasavefont.c 2001-04-26 10:37:31.000000000 -0400 -+++ b/src/aasavefont.c 2023-10-21 23:51:09.216521714 -0400 -@@ -1,3 +1,5 @@ -+#include -+#include - #include "aalib.h" - int main(int argc, char **argv) - { -diff -ur a/src/aatest.c b/src/aatest.c ---- a/src/aatest.c 2001-04-26 10:37:31.000000000 -0400 -+++ b/src/aatest.c 2023-10-21 23:43:16.758422704 -0400 -@@ -1,3 +1,5 @@ -+#include -+#include - #include "aalib.h" - int main(int argc, char **argv) - { diff --git a/pkgs/by-name/aa/aalib/darwin.patch b/pkgs/by-name/aa/aalib/darwin.patch deleted file mode 100644 index 94b548b..0000000 --- a/pkgs/by-name/aa/aalib/darwin.patch +++ /dev/null @@ -1,106 +0,0 @@ -diff --git a/src/aaedit.c b/src/aaedit.c -index 09534d2..2ea52f9 100644 ---- a/src/aaedit.c -+++ b/src/aaedit.c -@@ -1,6 +1,6 @@ - #include - #include --#include -+#include - #include "aalib.h" - #include "aaint.h" - static void aa_editdisplay(struct aa_edit *e) - -diff --git a/src/aakbdreg.c b/src/aakbdreg.c -index def65fe..f4f8efb 100644 ---- a/src/aakbdreg.c -+++ b/src/aakbdreg.c -@@ -1,4 +1,4 @@ --#include -+#include - #include - #include "config.h" - #include "aalib.h" -diff --git a/src/aalib.c b/src/aalib.c -index 11fecc8..e3063b4 100644 ---- a/src/aalib.c -+++ b/src/aalib.c -@@ -1,6 +1,6 @@ - #include - #include --#include -+#include - #include "aalib.h" - #include "aaint.h" - -diff --git a/src/aamoureg.c b/src/aamoureg.c -index 0380828..bb55fe3 100644 ---- a/src/aamoureg.c -+++ b/src/aamoureg.c -@@ -1,4 +1,4 @@ --#include -+#include - #include - #include "config.h" - #include "aalib.h" -diff --git a/src/aarec.c b/src/aarec.c -index 70f4ebc..ee43e8a 100644 ---- a/src/aarec.c -+++ b/src/aarec.c -@@ -1,5 +1,5 @@ - #include --#include -+#include - #include "aalib.h" - #include "aaint.h" - aa_linkedlist *aa_kbdrecommended = NULL, *aa_mouserecommended = NULL, -diff --git a/src/aaregist.c b/src/aaregist.c -index 54abec0..765155e 100644 ---- a/src/aaregist.c -+++ b/src/aaregist.c -@@ -1,4 +1,4 @@ --#include -+#include - #include - #include "config.h" - #include "aalib.h" -diff --git a/src/aax.c b/src/aax.c -index adcbd82..36e3294 100644 ---- a/src/aax.c -+++ b/src/aax.c -@@ -1,4 +1,3 @@ --#include - #include - #include - #include -diff --git a/src/aaxkbd.c b/src/aaxkbd.c -index 30d5903..da2248d 100644 ---- a/src/aaxkbd.c -+++ b/src/aaxkbd.c -@@ -1,4 +1,3 @@ --#include - #include - #include - #include -diff --git a/src/aaxmouse.c b/src/aaxmouse.c -index 9935b03..7e725ad 100644 ---- a/src/aaxmouse.c -+++ b/src/aaxmouse.c -@@ -1,4 +1,3 @@ --#include - #include - #include - #include -diff --git a/aalib.m4 b/aalib.m4 -index c40b8db..991fbda 100644 ---- a/aalib.m4 -+++ b/aalib.m4 -@@ -9,7 +9,7 @@ - dnl AM_PATH_AALIB([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) - dnl Test for AALIB, and define AALIB_CFLAGS and AALIB_LIBS - dnl --AC_DEFUN(AM_PATH_AALIB, -+AC_DEFUN([AM_PATH_AALIB], - [dnl - dnl Get the cflags and libraries from the aalib-config script - dnl diff --git a/pkgs/by-name/aa/aalib/default.nix b/pkgs/by-name/aa/aalib/default.nix deleted file mode 100644 index 903364e..0000000 --- a/pkgs/by-name/aa/aalib/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{lib, stdenv, fetchurl, ncurses, automake}: - -stdenv.mkDerivation rec { - pname = "aalib"; - version = "1.4rc5"; - - src = fetchurl { - url = "mirror://sourceforge/aa-project/aalib-${version}.tar.gz"; - sha256 = "1vkh19gb76agvh4h87ysbrgy82hrw88lnsvhynjf4vng629dmpgv"; - }; - - 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 - ++ lib.optionals stdenv.isDarwin [ ./darwin.patch ]; - - # The fuloong2f is not supported by aalib still - preConfigure = '' - cp ${automake}/share/automake*/config.{sub,guess} . - configureFlagsArray+=( - "--bindir=$bin/bin" - "--includedir=$dev/include" - "--libdir=$out/lib" - ) - ''; - - buildInputs = [ ncurses ]; - - configureFlags = [ "--without-x" "--with-ncurses=${ncurses.dev}" ]; - - postInstall = '' - mkdir -p $dev/bin - mv $bin/bin/aalib-config $dev/bin/aalib-config - substituteInPlace $out/lib/libaa.la --replace "${ncurses.dev}/lib" "${ncurses.out}/lib" - ''; - - meta = { - description = "ASCII art graphics library"; - platforms = lib.platforms.unix; - license = lib.licenses.lgpl2; - }; -} diff --git a/pkgs/by-name/ab/abseil-cpp/202103.nix b/pkgs/by-name/ab/abseil-cpp/202103.nix deleted file mode 100644 index 5929449..0000000 --- a/pkgs/by-name/ab/abseil-cpp/202103.nix +++ /dev/null @@ -1,63 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, cmake -, static ? stdenv.hostPlatform.isStatic -, cxxStandard ? null -}: - -stdenv.mkDerivation rec { - pname = "abseil-cpp"; - version = "20210324.2"; - - src = fetchFromGitHub { - owner = "abseil"; - repo = "abseil-cpp"; - rev = version; - 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"; - }) - - # 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}" - ]; - - nativeBuildInputs = [ cmake ]; - - meta = with lib; { - description = "An open-source collection of C++ code designed to augment the C++ standard library"; - homepage = "https://abseil.io/"; - license = licenses.asl20; - platforms = platforms.all; - maintainers = [ maintainers.andersk ]; - }; -} diff --git a/pkgs/by-name/ab/abseil-cpp/202111.nix b/pkgs/by-name/ab/abseil-cpp/202111.nix deleted file mode 100644 index 0c1a173..0000000 --- a/pkgs/by-name/ab/abseil-cpp/202111.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, cmake -, static ? stdenv.hostPlatform.isStatic -, cxxStandard ? null -}: - -stdenv.mkDerivation rec { - pname = "abseil-cpp"; - version = "20211102.0"; - - src = fetchFromGitHub { - owner = "abseil"; - repo = "abseil-cpp"; - rev = version; - sha256 = "sha256-sSXT6D4JSrk3dA7kVaxfKkzOMBpqXQb0WbMYWG+nGwk="; - }; - - patches = 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}" - ]; - - nativeBuildInputs = [ cmake ]; - - meta = with lib; { - description = "An open-source collection of C++ code designed to augment the C++ standard library"; - homepage = "https://abseil.io/"; - license = licenses.asl20; - platforms = platforms.all; - maintainers = [ maintainers.andersk ]; - }; -} diff --git a/pkgs/by-name/ab/abseil-cpp/202206.nix b/pkgs/by-name/ab/abseil-cpp/202206.nix deleted file mode 100644 index 5dda078..0000000 --- a/pkgs/by-name/ab/abseil-cpp/202206.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, static ? stdenv.hostPlatform.isStatic -, cxxStandard ? null -}: - -stdenv.mkDerivation rec { - pname = "abseil-cpp"; - version = "20220623.2"; - - src = fetchFromGitHub { - owner = "abseil"; - repo = "abseil-cpp"; - rev = "refs/tags/${version}"; - hash = "sha256-ma8QJfSySsk2XVLA0rhwYJMQx+6HxMFgub6gi5mDrLI="; - }; - - patches = 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}" - ]; - - nativeBuildInputs = [ cmake ]; - - meta = with lib; { - description = "An open-source collection of C++ code designed to augment the C++ standard library"; - homepage = "https://abseil.io/"; - license = licenses.asl20; - platforms = platforms.all; - maintainers = [ maintainers.andersk ]; - }; -} diff --git a/pkgs/by-name/ab/abseil-cpp/202301.nix b/pkgs/by-name/ab/abseil-cpp/202301.nix deleted file mode 100644 index b2d4f43..0000000 --- a/pkgs/by-name/ab/abseil-cpp/202301.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, gtest -, static ? stdenv.hostPlatform.isStatic -, cxxStandard ? null -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "abseil-cpp"; - version = "20230125.4"; - - src = fetchFromGitHub { - owner = "abseil"; - repo = "abseil-cpp"; - rev = "refs/tags/${finalAttrs.version}"; - hash = "sha256-7C/QIXYRyUyNVVE0tqmv8b5g/uWc58iBI5jzdtddQ+U="; - }; - - patches = 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 = [ - "-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}" - ]; - - strictDeps = true; - - nativeBuildInputs = [ cmake ]; - - buildInputs = [ gtest ]; - - meta = with lib; { - description = "An open-source collection of C++ code designed to augment the C++ standard library"; - homepage = "https://abseil.io/"; - license = licenses.asl20; - platforms = platforms.all; - maintainers = [ maintainers.andersk ]; - }; -}) diff --git a/pkgs/by-name/ab/abseil-cpp/202308.nix b/pkgs/by-name/ab/abseil-cpp/202308.nix deleted file mode 100644 index f3aac7d..0000000 --- a/pkgs/by-name/ab/abseil-cpp/202308.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, gtest -, static ? stdenv.hostPlatform.isStatic -, cxxStandard ? null -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "abseil-cpp"; - version = "20230802.2"; - - src = fetchFromGitHub { - owner = "abseil"; - repo = "abseil-cpp"; - rev = "refs/tags/${finalAttrs.version}"; - hash = "sha256-wW7dCqiiHyBHiizyV0+M6p17itwTpzHv/T0/mcXyYWE="; - }; - - cmakeFlags = [ - "-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}" - ]; - - strictDeps = true; - - nativeBuildInputs = [ cmake ]; - - buildInputs = [ gtest ]; - - meta = with lib; { - description = "An open-source collection of C++ code designed to augment the C++ standard library"; - homepage = "https://abseil.io/"; - license = licenses.asl20; - platforms = platforms.all; - maintainers = [ maintainers.andersk ]; - }; -}) diff --git a/pkgs/by-name/ab/abseil-cpp/202401.nix b/pkgs/by-name/ab/abseil-cpp/202401.nix deleted file mode 100644 index 73e663b..0000000 --- a/pkgs/by-name/ab/abseil-cpp/202401.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, gtest -, static ? stdenv.hostPlatform.isStatic -, cxxStandard ? null -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "abseil-cpp"; - version = "20240116.2"; - - src = fetchFromGitHub { - owner = "abseil"; - repo = "abseil-cpp"; - rev = "refs/tags/${finalAttrs.version}"; - hash = "sha256-eA2/dZpNOlex1O5PNa3XSZhpMB3AmaIoHzVDI9TD/cg="; - }; - - cmakeFlags = [ - "-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}" - ]; - - strictDeps = true; - - nativeBuildInputs = [ cmake ]; - - buildInputs = [ gtest ]; - - meta = with lib; { - description = "An open-source collection of C++ code designed to augment the C++ standard library"; - homepage = "https://abseil.io/"; - license = licenses.asl20; - platforms = platforms.all; - maintainers = [ maintainers.GaetanLepage ]; - }; -}) diff --git a/pkgs/by-name/ab/abseil-cpp/cmake-core-foundation.patch b/pkgs/by-name/ab/abseil-cpp/cmake-core-foundation.patch deleted file mode 100644 index 61b5745..0000000 --- a/pkgs/by-name/ab/abseil-cpp/cmake-core-foundation.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur a/absl/time/CMakeLists.txt b/absl/time/CMakeLists.txt ---- a/absl/time/CMakeLists.txt 1969-12-31 19:00:01.000000000 -0500 -+++ b/absl/time/CMakeLists.txt 2023-10-30 21:50:32.639061785 -0400 -@@ -55,7 +55,7 @@ - ) - - if(APPLE) -- find_library(CoreFoundation CoreFoundation) -+ set(CoreFoundation "-framework CoreFoundation") - endif() - - absl_cc_library( diff --git a/pkgs/by-name/ab/abseil-cpp/packages.nix b/pkgs/by-name/ab/abseil-cpp/packages.nix deleted file mode 100644 index beca4cb..0000000 --- a/pkgs/by-name/ab/abseil-cpp/packages.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ ... }: -res: pkgs: super: - -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; - }; - 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; - }; - 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; - }; - 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; - }; - 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; - }; - abseil-cpp = abseil-cpp_202401; -} diff --git a/pkgs/by-name/ac/acl/default.nix b/pkgs/by-name/ac/acl/default.nix deleted file mode 100644 index 7d8a04a..0000000 --- a/pkgs/by-name/ac/acl/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ 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 -# cgit) that are needed here should be included directly in Nixpkgs as -# files. - -stdenv.mkDerivation rec { - pname = "acl"; - version = "2.3.2"; - - src = fetchurl { - url = "mirror://savannah/acl/acl-${version}.tar.gz"; - hash = "sha256-XyvbrWKXB6p9hcYj+ZSqih0t7FWnPeUgW6wL9gWKL3w="; - }; - - outputs = [ "bin" "dev" "out" "man" "doc" ]; - - nativeBuildInputs = [ gettext ]; - buildInputs = [ attr ]; - - postPatch = '' - patchShebangs . - ''; - - meta = with lib; { - homepage = "https://savannah.nongnu.org/projects/acl"; - description = "Library and tools for manipulating access control lists"; - platforms = platforms.linux; - license = licenses.gpl2Plus; - }; -} diff --git a/pkgs/by-name/al/alsa-lib/alsa-plugin-conf-multilib.patch b/pkgs/by-name/al/alsa-lib/alsa-plugin-conf-multilib.patch deleted file mode 100644 index b17df9a..0000000 --- a/pkgs/by-name/al/alsa-lib/alsa-plugin-conf-multilib.patch +++ /dev/null @@ -1,232 +0,0 @@ -diff --git a/src/control/control.c b/src/control/control.c -index d66ed75..42cecad 100644 ---- a/src/control/control.c -+++ b/src/control/control.c -@@ -838,6 +838,10 @@ static int snd_ctl_open_conf(snd_ctl_t **ctlp, const char *name, - #ifndef PIC - extern void *snd_control_open_symbols(void); - #endif -+ -+ snd_config_t *libs = NULL; -+ const char *libs_lib = NULL; -+ - if (snd_config_get_type(ctl_conf) != SND_CONFIG_TYPE_COMPOUND) { - if (name) - SNDERR("Invalid type for CTL %s definition", name); -@@ -879,6 +883,19 @@ static int snd_ctl_open_conf(snd_ctl_t **ctlp, const char *name, - SNDERR("Invalid type for %s", id); - goto _err; - } -+ -+ continue; -+ } -+ // Handle an array of extra libs. -+ if (strcmp(id, "libs") == 0) { -+ if (snd_config_get_type(n) != SND_CONFIG_TYPE_COMPOUND) { -+ SNDERR("Invalid type for libs definition in CTL %s definition", -+ str); -+ goto _err; -+ } -+ -+ libs = n; -+ - continue; - } - if (strcmp(id, "open") == 0) { -@@ -903,7 +920,62 @@ static int snd_ctl_open_conf(snd_ctl_t **ctlp, const char *name, - open_name = buf; - sprintf(buf, "_snd_ctl_%s_open", str); - } -- if (!lib) { -+ -+#ifndef PIC -+ snd_control_open_symbols(); -+#endif -+ -+ // Normal alsa behaviour when there is no libs array. -+ if (!libs) { -+ if (lib) { -+ open_func = snd_dlobj_cache_get(lib, open_name, -+ SND_DLSYM_VERSION(SND_CONTROL_DLSYM_VERSION), 1); -+ } -+ } -+ // Handle libs array. -+ // Suppresses error messages if any function is loaded successfully. -+ else { -+ if (lib) { -+ open_func = snd_dlobj_cache_get(lib, open_name, -+ SND_DLSYM_VERSION(SND_CONTROL_DLSYM_VERSION), 0); -+ } -+ -+ if (!open_func) { -+ snd_config_for_each(i, next, libs) { -+ snd_config_t *n = snd_config_iterator_entry(i); -+ -+ err = snd_config_get_string(n, &libs_lib); -+ if (err < 0) { -+ SNDERR("Invalid entry in CTL %s libs definition", str); -+ goto _err; -+ } -+ -+ if (!open_func) { -+ open_func = snd_dlobj_cache_get(libs_lib, open_name, -+ SND_DLSYM_VERSION(SND_CONTROL_DLSYM_VERSION), 0); -+ } -+ } -+ } -+ -+ // Print error messages. -+ if (!open_func) { -+ if (lib) { -+ SNDERR("Either %s cannot be opened or %s was not defined inside", -+ lib, open_name); -+ } -+ -+ snd_config_for_each(i, next, libs) { -+ snd_config_t *n = snd_config_iterator_entry(i); -+ -+ snd_config_get_string(n, &libs_lib); -+ SNDERR("Either %s cannot be opened or %s was not defined inside", -+ libs_lib, open_name); -+ } -+ } -+ } -+ -+ // Look in ALSA_PLUGIN_DIR iff we found nowhere else to look. -+ if (!lib && (!libs || !libs_lib)) { - const char *const *build_in = build_in_ctls; - while (*build_in) { - if (!strcmp(*build_in, str)) -@@ -919,12 +991,11 @@ static int snd_ctl_open_conf(snd_ctl_t **ctlp, const char *name, - lib = buf1; - sprintf(buf1, "%s/libasound_module_ctl_%s.so", ALSA_PLUGIN_DIR, str); - } -- } --#ifndef PIC -- snd_control_open_symbols(); --#endif -- open_func = snd_dlobj_cache_get(lib, open_name, -+ -+ open_func = snd_dlobj_cache_get(lib, open_name, - SND_DLSYM_VERSION(SND_CONTROL_DLSYM_VERSION), 1); -+ } -+ - if (open_func) { - err = open_func(ctlp, name, ctl_root, ctl_conf, mode); - if (err >= 0) { -diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c -index 2e24338..7f489f4 100644 ---- a/src/pcm/pcm.c -+++ b/src/pcm/pcm.c -@@ -2116,6 +2116,10 @@ static int snd_pcm_open_conf(snd_pcm_t **pcmp, const char *name, - #ifndef PIC - extern void *snd_pcm_open_symbols(void); - #endif -+ -+ snd_config_t *libs = NULL; -+ const char *libs_lib = NULL; -+ - if (snd_config_get_type(pcm_conf) != SND_CONFIG_TYPE_COMPOUND) { - char *val; - id = NULL; -@@ -2160,6 +2164,19 @@ static int snd_pcm_open_conf(snd_pcm_t **pcmp, const char *name, - SNDERR("Invalid type for %s", id); - goto _err; - } -+ -+ continue; -+ } -+ // Handle an array of extra libs. -+ if (strcmp(id, "libs") == 0) { -+ if (snd_config_get_type(n) != SND_CONFIG_TYPE_COMPOUND) { -+ SNDERR("Invalid type for libs definition in PCM %s definition", -+ str); -+ goto _err; -+ } -+ -+ libs = n; -+ - continue; - } - if (strcmp(id, "open") == 0) { -@@ -2184,7 +2201,62 @@ static int snd_pcm_open_conf(snd_pcm_t **pcmp, const char *name, - open_name = buf; - sprintf(buf, "_snd_pcm_%s_open", str); - } -- if (!lib) { -+ -+#ifndef PIC -+ snd_pcm_open_symbols(); /* this call is for static linking only */ -+#endif -+ -+ // Normal alsa behaviour when there is no libs array. -+ if (!libs) { -+ if (lib) { -+ open_func = snd_dlobj_cache_get(lib, open_name, -+ SND_DLSYM_VERSION(SND_PCM_DLSYM_VERSION), 1); -+ } -+ } -+ // Handle libs array. -+ // Suppresses error messages if any function is loaded successfully. -+ else { -+ if (lib) { -+ open_func = snd_dlobj_cache_get(lib, open_name, -+ SND_DLSYM_VERSION(SND_PCM_DLSYM_VERSION), 0); -+ } -+ -+ if (!open_func) { -+ snd_config_for_each(i, next, libs) { -+ snd_config_t *n = snd_config_iterator_entry(i); -+ -+ err = snd_config_get_string(n, &libs_lib); -+ if (err < 0) { -+ SNDERR("Invalid entry in PCM %s libs definition", str); -+ goto _err; -+ } -+ -+ if (!open_func) { -+ open_func = snd_dlobj_cache_get(libs_lib, open_name, -+ SND_DLSYM_VERSION(SND_PCM_DLSYM_VERSION), 0); -+ } -+ } -+ } -+ -+ // Print error messages. -+ if (!open_func) { -+ if (lib) { -+ SNDERR("Either %s cannot be opened or %s was not defined inside", -+ lib, open_name); -+ } -+ -+ snd_config_for_each(i, next, libs) { -+ snd_config_t *n = snd_config_iterator_entry(i); -+ -+ snd_config_get_string(n, &libs_lib); -+ SNDERR("Either %s cannot be opened or %s was not defined inside", -+ libs_lib, open_name); -+ } -+ } -+ } -+ -+ // Look in ALSA_PLUGIN_DIR iff we found nowhere else to look. -+ if (!lib && (!libs || !libs_lib)) { - const char *const *build_in = build_in_pcms; - while (*build_in) { - if (!strcmp(*build_in, str)) -@@ -2200,12 +2272,11 @@ static int snd_pcm_open_conf(snd_pcm_t **pcmp, const char *name, - lib = buf1; - sprintf(buf1, "%s/libasound_module_pcm_%s.so", ALSA_PLUGIN_DIR, str); - } -- } --#ifndef PIC -- snd_pcm_open_symbols(); /* this call is for static linking only */ --#endif -- open_func = snd_dlobj_cache_get(lib, open_name, -+ -+ open_func = snd_dlobj_cache_get(lib, open_name, - SND_DLSYM_VERSION(SND_PCM_DLSYM_VERSION), 1); -+ } -+ - if (open_func) { - err = open_func(pcmp, name, pcm_root, pcm_conf, stream, mode); - if (err >= 0) { diff --git a/pkgs/by-name/al/alsa-lib/default.nix b/pkgs/by-name/al/alsa-lib/default.nix deleted file mode 100644 index 50f40cd..0000000 --- a/pkgs/by-name/al/alsa-lib/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ lib -, stdenv -, fetchurl -, alsa-topology-conf -, alsa-ucm-conf -, testers -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "alsa-lib"; - version = "1.2.11"; - - src = fetchurl { - url = "mirror://alsa/lib/${finalAttrs.pname}-${finalAttrs.version}.tar.bz2"; - hash = "sha256-nz8vabmV+a03NZBy+8aaOoi/uggfyD6b4w4UZieVu00="; - }; - - patches = [ - # Add a "libs" field to the syntax recognized in the /etc/asound.conf file. - # The nixos modules for pulseaudio, jack, and pipewire are leveraging this - # "libs" field to declare locations for both native and 32bit plugins, in - # order to support apps with 32bit sound running on x86_64 architecture. - ./alsa-plugin-conf-multilib.patch - ]; - - enableParallelBuilding = true; - - postInstall = '' - ln -s ${alsa-ucm-conf}/share/alsa/{ucm,ucm2} $out/share/alsa - ln -s ${alsa-topology-conf}/share/alsa/topology $out/share/alsa - ''; - - outputs = [ "out" "dev" ]; - - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - - meta = with lib; { - homepage = "http://www.alsa-project.org/"; - description = "ALSA, the Advanced Linux Sound Architecture libraries"; - mainProgram = "aserver"; - - longDescription = '' - The Advanced Linux Sound Architecture (ALSA) provides audio and - MIDI functionality to the Linux-based operating system. - ''; - - license = licenses.lgpl21Plus; - 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 deleted file mode 100644 index f2bf67f..0000000 --- a/pkgs/by-name/ap/apache-httpd/2.4.nix +++ /dev/null @@ -1,114 +0,0 @@ -{ 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 { - pname = "apache-httpd"; - version = "2.4.59"; - - src = fetchurl { - url = "mirror://apache/httpd/httpd-${version}.tar.bz2"; - hash = "sha256-7FFQHsSAKE/1L2NyWBNdMzIwp9Ipw6+m9sL5BA4yEyM="; - }; - - # FIXME: -dev depends on -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; - - postPatch = '' - sed -i config.layout -e "s|installbuilddir:.*|installbuilddir: $dev/share/build|" - sed -i support/apachectl.in -e 's|@LYNX_PATH@|${lynx}/bin/lynx|' - ''; - - # Required for ‘pthread_cancel’. - NIX_LDFLAGS = lib.optionalString (!stdenv.isDarwin) "-lgcc_s"; - - configureFlags = [ - "--with-apr=${apr.dev}" - "--with-apr-util=${aprutil.dev}" - "--with-z=${zlib.dev}" - "--with-pcre=${pcre2.dev}/bin/pcre2-config" - "--disable-maintainer-mode" - "--disable-debugger-mode" - "--enable-mods-shared=all" - "--enable-mpms-shared=all" - "--enable-cern-meta" - "--enable-imagemap" - "--enable-cgi" - "--includedir=${placeholder "dev"}/include" - (lib.enableFeature proxySupport "proxy") - (lib.enableFeature sslSupport "ssl") - (lib.enableFeature modTlsSupport "tls") - (lib.withFeatureAs libxml2Support "libxml2" "${libxml2.dev}/include/libxml2") - "--docdir=$(doc)/share/doc" - - (lib.enableFeature brotliSupport "brotli") - (lib.withFeatureAs brotliSupport "brotli" brotli) - - (lib.enableFeature http2Support "http2") - (lib.withFeature http2Support "nghttp2") - - (lib.enableFeature luaSupport "lua") - (lib.withFeatureAs luaSupport "lua" lua5) - ]; - - enableParallelBuilding = true; - - stripDebugList = [ "lib" "modules" "bin" ]; - - postInstall = '' - mkdir -p $doc/share/doc/httpd - mv $out/manual $doc/share/doc/httpd - mkdir -p $dev/bin - mv $out/bin/apxs $dev/bin/apxs - ''; - - # passthru = { - # inherit apr aprutil sslSupport proxySupport ldapSupport luaSupport lua5; - # tests = { - # acme-integration = nixosTests.acme; - # proxy = nixosTests.proxy; - # php = nixosTests.php.httpd; - # }; - # }; - - 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; - maintainers = with maintainers; [ lovek323 ]; - }; -} diff --git a/pkgs/by-name/ap/apache-httpd/packages.nix b/pkgs/by-name/ap/apache-httpd/packages.nix deleted file mode 100644 index 7cc64bf..0000000 --- a/pkgs/by-name/ap/apache-httpd/packages.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: -res: pkgs: super: - -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/cross-assume-dev-zero-mmappable.patch b/pkgs/by-name/ap/apr/cross-assume-dev-zero-mmappable.patch deleted file mode 100644 index 4bacb89..0000000 --- a/pkgs/by-name/ap/apr/cross-assume-dev-zero-mmappable.patch +++ /dev/null @@ -1,14 +0,0 @@ -based onhttps://830833.bugs.gentoo.org/attachment.cgi?id=761676, -adjusted for 1.7.2 - ---- a/configure.in 2022-01-09 00:31:05.552582255 -0800 -+++ b/configure.in 2022-01-09 00:31:19.824582533 -0800 -@@ -1329,7 +1329,7 @@ - return 3; - } - return 0; -- }], [], [ac_cv_file__dev_zero=no], [ac_cv_file__dev_zero=no])]) -+ }], [], [ac_cv_file__dev_zero=no], [:])]) - fi - - # Now we determine which one is our anonymous shmem preference. diff --git a/pkgs/by-name/ap/apr/default.nix b/pkgs/by-name/ap/apr/default.nix deleted file mode 100644 index 6428489..0000000 --- a/pkgs/by-name/ap/apr/default.nix +++ /dev/null @@ -1,74 +0,0 @@ -{ lib, stdenv, fetchurl, fetchpatch, buildPackages, autoreconfHook }: - -stdenv.mkDerivation rec { - pname = "apr"; - version = "1.7.4"; - - src = fetchurl { - url = "mirror://apache/apr/${pname}-${version}.tar.bz2"; - sha256 = "sha256-/GSN6YPzoqbJ543qHxgGOb0vrWwG1VbUNnpwH+XDVXc="; - }; - - patches = [ - ./cross-assume-dev-zero-mmappable.patch - ]; - - # This test needs the net - postPatch = '' - rm test/testsock.* - ''; - - outputs = [ "out" "dev" ]; - outputBin = "dev"; - - 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" - ]; - - # - Update libtool for macOS 11 support - # - Regenerate for cross fix patch - nativeBuildInputs = [ autoreconfHook ]; - - doCheck = true; - - enableParallelBuilding = true; - - meta = with lib; { - homepage = "https://apr.apache.org/"; - description = "The Apache Portable Runtime library"; - mainProgram = "apr-1-config"; - platforms = platforms.all; - license = licenses.asl20; - maintainers = [ maintainers.eelco ]; - }; -} diff --git a/pkgs/by-name/ap/aprutil/clang-bdb.patch b/pkgs/by-name/ap/aprutil/clang-bdb.patch deleted file mode 100644 index 02e9c83..0000000 --- a/pkgs/by-name/ap/aprutil/clang-bdb.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur a/build/dbm.m4 b/build/dbm.m4 ---- a/build/dbm.m4 2013-11-23 13:00:53.000000000 -0500 -+++ b/build/dbm.m4 2023-10-22 20:16:37.764571446 -0400 -@@ -235,7 +235,7 @@ - #include - #include - #include <$apu_try_berkeley_db_header> --main () -+int main () - { - int major, minor, patch; - diff --git a/pkgs/by-name/ap/aprutil/default.nix b/pkgs/by-name/ap/aprutil/default.nix deleted file mode 100644 index bd32ad4..0000000 --- a/pkgs/by-name/ap/aprutil/default.nix +++ /dev/null @@ -1,90 +0,0 @@ -{ 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; -assert bdbSupport -> db != null; -assert ldapSupport -> openldap != null; - -stdenv.mkDerivation rec { - pname = "apr-util"; - version = "1.6.3"; - - src = fetchurl { - url = "mirror://apache/apr/${pname}-${version}.tar.bz2"; - sha256 = "sha256-pBB243EHRjJsOUUEKZStmk/KwM4Cd92P6gdv7DyXcrU="; - }; - - patches = [ - ./fix-libxcrypt-build.patch - # Fix incorrect Berkeley DB detection with newer versions of clang due to implicit `int` on main errors. - ./clang-bdb.patch - ] ++ lib.optional stdenv.isFreeBSD ./include-static-dependencies.patch; - - NIX_CFLAGS_LINK = [ "-lcrypt" ]; - - outputs = [ "out" "dev" ]; - outputBin = "dev"; - - nativeBuildInputs = [ makeWrapper autoreconfHook ]; - - 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" ] - ; - - 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 ] - ++ lib.optional sslSupport openssl - ++ lib.optional bdbSupport db - ++ lib.optional ldapSupport openldap - ++ lib.optional stdenv.isFreeBSD cyrus_sasl; - - postInstall = '' - for f in $out/lib/*.la $out/lib/apr-util-1/*.la $dev/bin/apu-1-config; do - substituteInPlace $f \ - --replace "${expat.dev}/lib" "${expat.out}/lib" \ - --replace "${db.dev}/lib" "${db.out}/lib" \ - --replace "${openssl.dev}/lib" "${lib.getLib openssl}/lib" - done - - # Give apr1 access to sed for runtime invocations. - wrapProgram $dev/bin/apu-1-config --prefix PATH : "${gnused}/bin" - ''; - - enableParallelBuilding = true; - - passthru = { - inherit sslSupport bdbSupport ldapSupport; - }; - - meta = with lib; { - homepage = "https://apr.apache.org/"; - description = "A companion library to APR, the Apache Portable Runtime"; - mainProgram = "apu-1-config"; - maintainers = [ maintainers.eelco ]; - platforms = platforms.unix; - license = licenses.asl20; - }; -} diff --git a/pkgs/by-name/ap/aprutil/fix-libxcrypt-build.patch b/pkgs/by-name/ap/aprutil/fix-libxcrypt-build.patch deleted file mode 100644 index 2994e5d..0000000 --- a/pkgs/by-name/ap/aprutil/fix-libxcrypt-build.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/crypto/apr_passwd.c b/crypto/apr_passwd.c -index c961de2..a397f27 100644 ---- a/crypto/apr_passwd.c -+++ b/crypto/apr_passwd.c -@@ -24,9 +24,7 @@ - #if APR_HAVE_STRING_H - #include - #endif --#if APR_HAVE_CRYPT_H - #include --#endif - #if APR_HAVE_UNISTD_H - #include - #endif diff --git a/pkgs/by-name/ap/aprutil/include-static-dependencies.patch b/pkgs/by-name/ap/aprutil/include-static-dependencies.patch deleted file mode 100644 index 1813c72..0000000 --- a/pkgs/by-name/ap/aprutil/include-static-dependencies.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/build/apu-conf.m4 b/build/apu-conf.m4 -index 8943f10..aa44305 100644 ---- a/build/apu-conf.m4 -+++ b/build/apu-conf.m4 -@@ -279,6 +279,7 @@ AC_ARG_WITH(ldap,[ --with-ldap=library ldap library to use], - APU_FIND_LDAPLIB("ldap", "-llber -lresolv -lsocket -lnsl") - APU_FIND_LDAPLIB("ldap", "-ldl -lpthread") - else -+ APU_FIND_LDAPLIB($LIBLDAP, "-llber -lcrypto -lssl -lsasl2") - APU_FIND_LDAPLIB($LIBLDAP) - APU_FIND_LDAPLIB($LIBLDAP, "-lresolv") - APU_FIND_LDAPLIB($LIBLDAP, "-lresolv -lsocket -lnsl") diff --git a/pkgs/by-name/as/asciidoc/default.nix b/pkgs/by-name/as/asciidoc/default.nix deleted file mode 100644 index 69b0ccf..0000000 --- a/pkgs/by-name/as/asciidoc/default.nix +++ /dev/null @@ -1,295 +0,0 @@ -{ 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 - -# 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 - -, buildPackages -}: - -let - - _enableDitaaFilter = (enableExtraPlugins && enableJava) || enableDitaaFilter; - _enableMscgenFilter = enableExtraPlugins || enableMscgenFilter; - _enableDiagFilter = enableExtraPlugins || enableDiagFilter; - _enableQrcodeFilter = enableExtraPlugins || enableQrcodeFilter; - _enableMatplotlibFilter = enableExtraPlugins || enableMatplotlibFilter; - _enableAafigureFilter = enableExtraPlugins || enableAafigureFilter; - _enableDeckjsBackend = enableExtraPlugins || enableDeckjsBackend; - _enableOdfBackend = enableExtraPlugins || enableOdfBackend; - - # - # texlive environment - # - texlive = texliveMinimal.withPackages (ps: [ ps.dvipng ]); - - # - # filters - # - - ditaaFilterSrc = fetchurl { - url = "https://asciidoc-ditaa-filter.googlecode.com/files/ditaa-filter-1.1.zip"; - sha256 = "0p7hm2a1xywx982ia3vg4c0lam5sz0xknsc10i2a5vswy026naf6"; - }; - - mscgenFilterSrc = fetchurl { - url = "https://asciidoc-mscgen-filter.googlecode.com/files/mscgen-filter-1.2.zip"; - sha256 = "1nfwmj375gpv5dn9i770pjv59aihzy2kja0fflsk96xwnlqsqq61"; - }; - - diagFilterSrc = fetchurl { - # unfortunately no version number - url = "https://asciidoc-diag-filter.googlecode.com/files/diag_filter.zip"; - sha256 = "1qlqrdbqkdqqgfdhjsgdws1al0sacsyq6jmwxdfy7r8k7bv7n7mm"; - }; - - qrcodeFilterSrc = fetchurl { - url = "https://asciidoc-qrencode-filter.googlecode.com/files/qrcode-filter-1.0.zip"; - sha256 = "0h4bql1nb4y4fmg2yvlpfjhvy22ln8jsaxdr10f8bfcg5lr0zkxs"; - }; - - # 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"; - }; - - aafigureFilterSrc = fetchurl { - url = "https://asciidoc-aafigure-filter.googlecode.com/files/aafigure-filter-1.1.zip"; - sha256 = "1hq2s30dvmv5dqvj0xm1qwdwafhgm9w1iyr0lr0c40cyk8h00j8j"; - }; - - # - # backends - # - - deckjsBackendSrc = fetchurl { - url = "https://github.com/downloads/houqp/asciidoc-deckjs/deckjs-1.6.2.zip"; - sha256 = "1siy1j8naj5irrrrv5bfgl4d8nal6j9pyahy4f50wmrr9wv59s46"; - }; - - # the odf backend is actually two plugins: odt + odp - odtBackendSrc = fetchurl { - url = "https://github.com/downloads/dagwieers/asciidoc-odf/odt-backend-0.1.zip"; - sha256 = "1zaa97h9sx6ncxcdkl1x3ggydi7f8kjgvrnpjnkjiizi45k350kw"; - }; - - odpBackendSrc = fetchurl { - url = "https://github.com/downloads/dagwieers/asciidoc-odf/odp-backend-0.1.zip"; - sha256 = "08ya4bskygzqkfqwjllpg31qc5k08xp2k78z9b2480g8y57bfy10"; - }; - -in python3.pkgs.buildPythonApplication rec { - pname = "asciidoc" - + lib.optionalString enableStandardFeatures "-full" - + lib.optionalString enableExtraPlugins "-with-plugins"; - version = "10.2.0"; - - src = fetchFromGitHub { - owner = "asciidoc-py"; - repo = "asciidoc-py"; - rev = version; - hash = "sha256-TqC0x9xB6e2d6Wc9bgnlqgZVOmYHmUUKfE/CKAiEtag="; - }; - - nativeBuildInputs = [ - autoreconfHook - installShellFiles - unzip - ]; - - # 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" - - 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|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" - ''; - - postBuild = '' - make manpages - ''; - - postInstall = '' - installManPage doc/asciidoc.1 doc/a2x.1 doc/testasciidoc.1 - ''; - - nativeCheckInputs = with python3.pkgs; [ - pytest - pytest-mock - ]; - - checkPhase = '' - runHook preCheck - - make test - - runHook postCheck - ''; - - meta = with lib; { - description = "Text-based document generation system"; - longDescription = '' - AsciiDoc is a text document format for writing notes, documentation, - articles, books, ebooks, slideshows, web pages, man pages and blogs. - AsciiDoc files can be translated to many formats including HTML, PDF, - EPUB, man page. - - AsciiDoc is highly configurable: both the AsciiDoc source file syntax and - 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; - 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 ]; - }; -} diff --git a/pkgs/by-name/as/asciidoc/packages.nix b/pkgs/by-name/as/asciidoc/packages.nix deleted file mode 100644 index 9d71b27..0000000 --- a/pkgs/by-name/as/asciidoc/packages.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - asciidoc = callPackage ./. { - inherit (python3.pkgs) pygments matplotlib numpy aafigure recursive-pth-loader; - w3m = w3m-batch; - enableStandardFeatures = false; - }; - - asciidoc-full = asciidoc.override { - enableStandardFeatures = true; - }; - - asciidoc-full-with-plugins = asciidoc.override { - enableStandardFeatures = true; - enableExtraPlugins = true; - }; -} diff --git a/pkgs/by-name/at/attr/default.nix b/pkgs/by-name/at/attr/default.nix deleted file mode 100644 index 4815497..0000000 --- a/pkgs/by-name/at/attr/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ lib, stdenv, fetchurl, gettext }: - -# 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. - -stdenv.mkDerivation rec { - pname = "attr"; - version = "2.5.2"; - - src = fetchurl { - url = "mirror://savannah/attr/${pname}-${version}.tar.gz"; - sha256 = "sha256-Ob9nRS+kHQlIwhl2AQU/SLPXigKTiXNDMqYwmmgMbIc="; - }; - - outputs = [ "bin" "dev" "out" "man" "doc" ]; - - nativeBuildInputs = [ gettext ]; - - postPatch = '' - for script in install-sh include/install-sh; do - patchShebangs $script - done - ''; - - meta = with lib; { - homepage = "https://savannah.nongnu.org/projects/attr/"; - description = "Library and tools for manipulating extended attributes"; - platforms = platforms.linux; - license = licenses.gpl2Plus; - }; -} diff --git a/pkgs/by-name/au/audit/default.nix b/pkgs/by-name/au/audit/default.nix deleted file mode 100644 index 1e941a1..0000000 --- a/pkgs/by-name/au/audit/default.nix +++ /dev/null @@ -1,73 +0,0 @@ -{ 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, -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "audit"; - version = "3.1.2"; - - src = fetchurl { - url = "https://people.redhat.com/sgrubb/audit/audit-${finalAttrs.version}.tar.gz"; - hash = "sha256-wLF5LR8KiMbxgocQUJy7mHBZ/GhxLJdmnKkOrhA9KH0="; - }; - - postPatch = '' - substituteInPlace bindings/swig/src/auditswig.i \ - --replace "/usr/include/linux/audit.h" \ - "${linuxHeaders}/include/linux/audit.h" - ''; - - outputs = [ "bin" "dev" "out" "man" ]; - - strictDeps = true; - - depsBuildBuild = [ - buildPackages.stdenv.cc - ]; - - nativeBuildInputs = [ - autoreconfHook - ] - ++ lib.optionals enablePython [ - python3 - swig - ]; - - buildInputs = [ - bash - ]; - - configureFlags = [ - # z/OS plugin is not useful on Linux, and pulls in an extra openldap - # dependency otherwise - "--disable-zos-remote" - "--with-arm" - "--with-aarch64" - (if enablePython then "--with-python" else "--without-python") - ]; - - enableParallelBuilding = true; - - meta = { - homepage = "https://people.redhat.com/sgrubb/audit/"; - description = "Audit Library"; - changelog = "https://github.com/linux-audit/audit-userspace/releases/tag/v${finalAttrs.version}"; - license = lib.licenses.gpl2Plus; - maintainers = with lib.maintainers; [ AndersonTorres ]; - platforms = lib.platforms.linux; - }; -}) diff --git a/pkgs/by-name/au/autoconf-archive/default.nix b/pkgs/by-name/au/autoconf-archive/default.nix deleted file mode 100644 index 3fbfabc..0000000 --- a/pkgs/by-name/au/autoconf-archive/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ lib, stdenv, fetchurl, xz }: - -stdenv.mkDerivation rec { - pname = "autoconf-archive"; - version = "2023.02.20"; - - src = fetchurl { - url = "mirror://gnu/autoconf-archive/autoconf-archive-${version}.tar.xz"; - hash = "sha256-cdQEhHmuKPH1eUYZw9ct+cAd9JscYo74X943WW3DGjM="; - }; - - strictDeps = true; - enableParallelBuilding = true; - - buildInputs = [ xz ]; - - meta = with lib; { - description = "Archive of autoconf m4 macros"; - homepage = "https://www.gnu.org/software/autoconf-archive/"; - license = licenses.gpl3; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/au/autoconf/2.13.nix b/pkgs/by-name/au/autoconf/2.13.nix deleted file mode 100644 index 8fba52a..0000000 --- a/pkgs/by-name/au/autoconf/2.13.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ lib, stdenv, fetchurl, m4, perl }: - -stdenv.mkDerivation rec { - pname = "autoconf"; - version = "2.13"; - - src = fetchurl { - url = "mirror://gnu/autoconf/autoconf-${version}.tar.gz"; - sha256 = "07krzl4czczdsgzrrw9fiqx35xcf32naf751khg821g5pqv12qgh"; - }; - - nativeBuildInputs = [ m4 perl ]; - strictDeps = true; - - doCheck = true; - - # Don't fixup "#! /bin/sh" in Autoconf, otherwise it will use the - # "fixed" path in generated files! - dontPatchShebangs = true; - - postInstall = ''ln -s autoconf "$out"/bin/autoconf-2.13''; - - meta = { - homepage = "https://www.gnu.org/software/autoconf/"; - description = "Part of the GNU Build System"; - branch = "2.13"; - - longDescription = '' - GNU Autoconf is an extensible package of M4 macros that produce - shell scripts to automatically configure software source code - packages. These scripts can adapt the packages to many kinds of - UNIX-like systems without manual user intervention. Autoconf - creates a configuration script for a package from a template - file that lists the operating system features that the package - can use, in the form of M4 macro calls. - ''; - - license = lib.licenses.gpl2Plus; - platforms = lib.platforms.unix; - }; -} diff --git a/pkgs/by-name/au/autoconf/2.64.nix b/pkgs/by-name/au/autoconf/2.64.nix deleted file mode 100644 index daf026d..0000000 --- a/pkgs/by-name/au/autoconf/2.64.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ lib, stdenv, fetchurl, m4, perl }: - -stdenv.mkDerivation rec { - pname = "autoconf"; - version = "2.64"; - - src = fetchurl { - url = "mirror://gnu/autoconf/autoconf-${version}.tar.xz"; - sha256 = "0j3jdjpf5ly39dlp0bg70h72nzqr059k0x8iqxvaxf106chpgn9j"; - }; - - strictDeps = true; - nativeBuildInputs = [ m4 perl ]; - buildInputs = [ m4 ]; - - # Work around a known issue in Cygwin. See - # http://thread.gmane.org/gmane.comp.sysutils.autoconf.bugs/6822 for - # details. - # There are many test failures on `i386-pc-solaris2.11'. - #doCheck = ((!stdenv.isCygwin) && (!stdenv.isSunOS)); - doCheck = false; - - # Don't fixup "#! /bin/sh" in Autoconf, otherwise it will use the - # "fixed" path in generated files! - dontPatchShebangs = true; - - enableParallelBuilding = true; - - # Make the Autotest test suite run in parallel. - preCheck = '' - export TESTSUITEFLAGS="-j$NIX_BUILD_CORES" - ''; - - doInstallCheck = false; # fails - - meta = { - homepage = "https://www.gnu.org/software/autoconf/"; - description = "Part of the GNU Build System"; - - longDescription = '' - GNU Autoconf is an extensible package of M4 macros that produce - shell scripts to automatically configure software source code - packages. These scripts can adapt the packages to many kinds of - UNIX-like systems without manual user intervention. Autoconf - creates a configuration script for a package from a template - file that lists the operating system features that the package - can use, in the form of M4 macro calls. - ''; - - license = lib.licenses.gpl2Plus; - - platforms = lib.platforms.all; - }; -} diff --git a/pkgs/by-name/au/autoconf/2.69.nix b/pkgs/by-name/au/autoconf/2.69.nix deleted file mode 100644 index 870b0ae..0000000 --- a/pkgs/by-name/au/autoconf/2.69.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ lib, stdenv, fetchurl, m4, perl }: - -stdenv.mkDerivation rec { - pname = "autoconf"; - version = "2.69"; - - src = fetchurl { - url = "mirror://gnu/autoconf/autoconf-${version}.tar.xz"; - sha256 = "113nlmidxy9kjr45kg9x3ngar4951mvag1js2a3j8nxcz34wxsv4"; - }; - - nativeBuildInputs = [ m4 perl ]; - buildInputs = [ m4 ]; - - # Work around a known issue in Cygwin. See - # http://thread.gmane.org/gmane.comp.sysutils.autoconf.bugs/6822 for - # details. - # There are many test failures on `i386-pc-solaris2.11'. - #doCheck = ((!stdenv.isCygwin) && (!stdenv.isSunOS)); - doCheck = false; - - # Don't fixup "#! /bin/sh" in Autoconf, otherwise it will use the - # "fixed" path in generated files! - dontPatchShebangs = true; - - enableParallelBuilding = true; - - # Make the Autotest test suite run in parallel. - preCheck = '' - export TESTSUITEFLAGS="-j$NIX_BUILD_CORES" - ''; - - doInstallCheck = false; # fails - - meta = { - homepage = "https://www.gnu.org/software/autoconf/"; - description = "Part of the GNU Build System"; - - longDescription = '' - GNU Autoconf is an extensible package of M4 macros that produce - shell scripts to automatically configure software source code - packages. These scripts can adapt the packages to many kinds of - UNIX-like systems without manual user intervention. Autoconf - creates a configuration script for a package from a template - file that lists the operating system features that the package - can use, in the form of M4 macro calls. - ''; - - license = lib.licenses.gpl2Plus; - - platforms = lib.platforms.all; - }; -} diff --git a/pkgs/by-name/au/autoconf/2.71-fix-race.patch b/pkgs/by-name/au/autoconf/2.71-fix-race.patch deleted file mode 100644 index e3b2855..0000000 --- a/pkgs/by-name/au/autoconf/2.71-fix-race.patch +++ /dev/null @@ -1,36 +0,0 @@ -https://savannah.gnu.org/support/index.php?110521 -https://git.savannah.gnu.org/cgit/autoconf.git/patch/?id=3a9802d60156809c139e9b4620bf04917e143ee2 ---- a/lib/Autom4te/FileUtils.pm -+++ b/lib/Autom4te/FileUtils.pm -@@ -34,12 +34,12 @@ This perl module provides various general purpose file handling functions. - - =cut - --use 5.006; -+use 5.008; - use strict; - use warnings FATAL => 'all'; - - use Exporter; --use File::stat; -+use Time::HiRes qw(stat); - use IO::File; - - use Autom4te::Channels; -@@ -115,10 +115,11 @@ sub mtime ($) - return 0 - if $file eq '-' || ! -f $file; - -- my $stat = stat ($file) -+ my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, -+ $atime,$mtime,$ctime,$blksize,$blocks) = stat ($file) - or fatal "cannot stat $file: $!"; - -- return $stat->mtime; -+ return $mtime; - } - - --- -cgit v1.2.1 - diff --git a/pkgs/by-name/au/autoconf/2.71.nix b/pkgs/by-name/au/autoconf/2.71.nix deleted file mode 100644 index 1fcb819..0000000 --- a/pkgs/by-name/au/autoconf/2.71.nix +++ /dev/null @@ -1,69 +0,0 @@ -{ 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 -# cgit) that are needed here should be included directly in Nixpkgs as -# files. - -stdenv.mkDerivation rec { - pname = "autoconf"; - version = "2.71"; - outputs = [ "out" "doc" ]; - - src = fetchurl { - url = "mirror://gnu/autoconf/autoconf-${version}.tar.xz"; - sha256 = "197sl23irn6s9pd54rxj5vcp5y8dv65jb9yfqgr2g56cxg7q6k7i"; - }; - patches = [ - # fix stale autom4te cache race condition: - # https://savannah.gnu.org/support/index.php?110521 - ./2.71-fix-race.patch - ]; - - strictDeps = true; - nativeBuildInputs = [ m4 perl texinfo ]; - buildInputs = [ m4 ]; - postBuild = " - make html - "; - - postInstall = " - make install-html - "; - - # Work around a known issue in Cygwin. See - # http://thread.gmane.org/gmane.comp.sysutils.autoconf.bugs/6822 for - # details. - # There are many test failures on `i386-pc-solaris2.11'. - doCheck = ((!stdenv.isCygwin) && (!stdenv.isSunOS)); - - # Don't fixup "#! /bin/sh" in Autoconf, otherwise it will use the - # "fixed" path in generated files! - dontPatchShebangs = true; - - enableParallelBuilding = true; - - # Make the Autotest test suite run in parallel. - preCheck ='' - export TESTSUITEFLAGS="-j$NIX_BUILD_CORES" - ''; - - meta = { - homepage = "https://www.gnu.org/software/autoconf/"; - description = "Part of the GNU Build System"; - - longDescription = '' - GNU Autoconf is an extensible package of M4 macros that produce - shell scripts to automatically configure software source code - packages. These scripts can adapt the packages to many kinds of - UNIX-like systems without manual user intervention. Autoconf - creates a configuration script for a package from a template - file that lists the operating system features that the package - can use, in the form of M4 macro calls. - ''; - - license = lib.licenses.gpl3Plus; - - platforms = lib.platforms.all; - }; -} diff --git a/pkgs/by-name/au/autoconf/default.nix b/pkgs/by-name/au/autoconf/default.nix deleted file mode 100644 index 8039e36..0000000 --- a/pkgs/by-name/au/autoconf/default.nix +++ /dev/null @@ -1,64 +0,0 @@ -{ 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 -# cgit) that are needed here should be included directly in Nixpkgs as -# files. - -stdenv.mkDerivation rec { - pname = "autoconf"; - version = "2.72"; - outputs = [ "out" "doc" ]; - - src = fetchurl { - url = "mirror://gnu/autoconf/autoconf-${version}.tar.xz"; - hash = "sha256-uohcExlXjWyU1G6bDc60AUyq/iSQ5Deg28o/JwoiP1o="; - }; - - strictDeps = true; - nativeBuildInputs = [ m4 perl texinfo ]; - buildInputs = [ m4 ]; - postBuild = " - make html - "; - - postInstall = " - make install-html - "; - - # Work around a known issue in Cygwin. See - # http://thread.gmane.org/gmane.comp.sysutils.autoconf.bugs/6822 for - # details. - # There are many test failures on `i386-pc-solaris2.11'. - doCheck = ((!stdenv.isCygwin) && (!stdenv.isSunOS)); - - # Don't fixup "#! /bin/sh" in Autoconf, otherwise it will use the - # "fixed" path in generated files! - dontPatchShebangs = true; - - enableParallelBuilding = true; - - # Make the Autotest test suite run in parallel. - preCheck ='' - export TESTSUITEFLAGS="-j$NIX_BUILD_CORES" - ''; - - meta = { - homepage = "https://www.gnu.org/software/autoconf/"; - description = "Part of the GNU Build System"; - - longDescription = '' - GNU Autoconf is an extensible package of M4 macros that produce - shell scripts to automatically configure software source code - packages. These scripts can adapt the packages to many kinds of - UNIX-like systems without manual user intervention. Autoconf - creates a configuration script for a package from a template - file that lists the operating system features that the package - can use, in the form of M4 macro calls. - ''; - - license = lib.licenses.gpl3Plus; - - platforms = lib.platforms.all; - }; -} diff --git a/pkgs/by-name/au/autoconf/packages.nix b/pkgs/by-name/au/autoconf/packages.nix deleted file mode 100644 index 934064c..0000000 --- a/pkgs/by-name/au/autoconf/packages.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - autoconf = callPackage ./. { }; - autoconf213 = callPackage ./2.13.nix { }; - autoconf264 = callPackage ./2.64.nix { }; - autoconf269 = callPackage ./2.69.nix { }; - autoconf271 = callPackage ./2.71.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 deleted file mode 100644 index 161dca6..0000000 --- a/pkgs/by-name/au/automake/automake-1.11.x.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ lib, stdenv, fetchurl, perl, autoconf }: - -stdenv.mkDerivation rec { - pname = "automake"; - version = "1.11.6"; - - # TODO: Remove the `aclocal' wrapper when $ACLOCAL_PATH support is - # available upstream; see - # . - builder = ./builder.sh; - - setupHook = ./setup-hook.sh; - - src = fetchurl { - url = "mirror://gnu/automake/automake-${version}.tar.xz"; - sha256 = "1ffbc6cc41f0ea6c864fbe9485b981679dc5e350f6c4bc6c3512f5a4226936b5"; - }; - - patches = [ ./fix-test-autoconf-2.69.patch ./fix-perl-5.26.patch ]; - - strictDeps = true; - nativeBuildInputs = [ perl autoconf ]; - buildInputs = [ autoconf ]; - - doCheck = false; # takes _a lot_ of time, fails 11 of 782 tests - - # Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the - # "fixed" path in generated files! - dontPatchShebangs = true; - - # Run the test suite in parallel. - enableParallelBuilding = true; - - meta = { - branch = "1.11"; - homepage = "https://www.gnu.org/software/automake/"; - description = "GNU standard-compliant makefile generator"; - - longDescription = '' - GNU Automake is a tool for automatically generating - `Makefile.in' files compliant with the GNU Coding - Standards. Automake requires the use of Autoconf. - ''; - - license = lib.licenses.gpl2Plus; - - platforms = lib.platforms.all; - }; -} diff --git a/pkgs/by-name/au/automake/automake-1.15.x.nix b/pkgs/by-name/au/automake/automake-1.15.x.nix deleted file mode 100644 index f0df759..0000000 --- a/pkgs/by-name/au/automake/automake-1.15.x.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ lib, stdenv, fetchurl, perl, autoconf }: - -stdenv.mkDerivation rec { - pname = "automake"; - version = "1.15.1"; - - src = fetchurl { - url = "mirror://gnu/automake/automake-${version}.tar.xz"; - sha256 = "1bzd9g32dfm4rsbw93ld9x7b5nc1y6i4m6zp032qf1i28a8s6sxg"; - }; - - nativeBuildInputs = [ autoconf perl ]; - buildInputs = [ autoconf ]; - - setupHook = ./setup-hook.sh; - - patches = [ ./help2man-SOURCE_DATE_EPOCH-support.patch ]; - - doCheck = false; # takes _a lot_ of time, fails 3 out of 2698 tests, all seem to be related to paths - doInstallCheck = false; # runs the same thing, fails the same tests - - # The test suite can run in parallel. - enableParallelBuilding = true; - - # Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the - # "fixed" path in generated files! - dontPatchShebangs = true; - - meta = { - branch = "1.15"; - homepage = "https://www.gnu.org/software/automake/"; - description = "GNU standard-compliant makefile generator"; - license = lib.licenses.gpl2Plus; - - longDescription = '' - GNU Automake is a tool for automatically generating - `Makefile.in' files compliant with the GNU Coding - Standards. Automake requires the use of Autoconf. - ''; - - platforms = lib.platforms.all; - }; -} diff --git a/pkgs/by-name/au/automake/automake-1.16.x.nix b/pkgs/by-name/au/automake/automake-1.16.x.nix deleted file mode 100644 index 0d9572c..0000000 --- a/pkgs/by-name/au/automake/automake-1.16.x.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ lib, stdenv, fetchurl, perl, autoconf }: - -stdenv.mkDerivation rec { - pname = "automake"; - version = "1.16.5"; - - src = fetchurl { - url = "mirror://gnu/automake/automake-${version}.tar.xz"; - sha256 = "0sdl32qxdy7m06iggmkkvf7j520rmmgbsjzbm7fgnxwxdp6mh7gh"; - }; - - strictDeps = true; - nativeBuildInputs = [ autoconf perl ]; - buildInputs = [ autoconf ]; - - setupHook = ./setup-hook.sh; - - doCheck = false; # takes _a lot_ of time, fails 3 out of 2698 tests, all seem to be related to paths - doInstallCheck = false; # runs the same thing, fails the same tests - - # The test suite can run in parallel. - enableParallelBuilding = true; - - # Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the - # "fixed" path in generated files! - dontPatchShebangs = true; - - meta = with lib; { - branch = "1.16"; - homepage = "https://www.gnu.org/software/automake/"; - description = "GNU standard-compliant makefile generator"; - license = licenses.gpl2Plus; - longDescription = '' - GNU Automake is a tool for automatically generating - `Makefile.in' files compliant with the GNU Coding - Standards. Automake requires the use of Autoconf. - ''; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/au/automake/builder.sh b/pkgs/by-name/au/automake/builder.sh deleted file mode 100644 index b08e725..0000000 --- a/pkgs/by-name/au/automake/builder.sh +++ /dev/null @@ -1,48 +0,0 @@ -if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi -source $stdenv/setup - -# Wrap the given `aclocal' program, appending extra `-I' flags -# corresponding to the directories listed in $ACLOCAL_PATH. (Note -# that `wrapProgram' can't be used for that purpose since it can only -# prepend flags, not append them.) -wrapAclocal() { - local program="$1" - local wrapped="$(dirname $program)/.$(basename $program)-wrapped" - - mv "$program" "$wrapped" - cat > "$program"< baz.cc - - $ACLOCAL --$AUTOMAKE -+$AUTOMAKE --add-missing - - # Look for the macros at the beginning of rules. Be careful, as there - # are literal tabs at the beginning of the search strings. diff --git a/pkgs/by-name/au/automake/help2man-SOURCE_DATE_EPOCH-support.patch b/pkgs/by-name/au/automake/help2man-SOURCE_DATE_EPOCH-support.patch deleted file mode 100644 index 048f75e..0000000 --- a/pkgs/by-name/au/automake/help2man-SOURCE_DATE_EPOCH-support.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 2e3357d7f0d63f1caeb40d9644c2436a5cd0da5f Mon Sep 17 00:00:00 2001 -From: David Terry -Date: Fri, 18 Oct 2019 10:23:11 +0200 -Subject: [PATCH] help2man: add support for SOURCE_DATE_EPOCH - ---- - doc/help2man | 14 +++++++++++++- - 1 file changed, 13 insertions(+), 1 deletion(-) - -diff --git a/doc/help2man b/doc/help2man -index af4306f..4a64167 100755 ---- a/doc/help2man -+++ b/doc/help2man -@@ -213,11 +213,23 @@ sub get_option_value; - my $help_text = get_option_value $ARGV[0], $help_option; - $version_text ||= get_option_value $ARGV[0], $version_option; - -+# By default the generated manual pages will include the current date. This may -+# however be overriden by setting the environment variable $SOURCE_DATE_EPOCH -+# to an integer value of the seconds since the UNIX epoch. This is primarily -+# intended to support reproducible builds (wiki.debian.org/ReproducibleBuilds) -+# and will additionally ensure that the output date string is UTC. -+my $epoch_secs = time; -+if (exists $ENV{SOURCE_DATE_EPOCH} and $ENV{SOURCE_DATE_EPOCH} =~ /^(\d+)$/) -+{ -+ $epoch_secs = $1; -+ $ENV{TZ} = 'UTC'; -+} -+ - # Translators: the following message is a strftime(3) format string, which in - # the English version expands to the month as a word and the full year. It - # is used on the footer of the generated manual pages. If in doubt, you may - # just use %x as the value (which should be the full locale-specific date). --my $date = enc strftime _("%B %Y"), localtime; -+my $date = enc strftime _("%B %Y"), localtime $epoch_secs; - (my $program = $ARGV[0]) =~ s!.*/!!; - my $package = $program; - my $version; --- -2.23.0 - diff --git a/pkgs/by-name/au/automake/packages.nix b/pkgs/by-name/au/automake/packages.nix deleted file mode 100644 index 236842e..0000000 --- a/pkgs/by-name/au/automake/packages.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - automake = automake116x; - automake111x = callPackage ./automake-1.11.x.nix { }; - automake115x = callPackage ./automake-1.15.x.nix { }; - automake116x = callPackage ./automake-1.16.x.nix { }; -} diff --git a/pkgs/by-name/au/automake/setup-hook.sh b/pkgs/by-name/au/automake/setup-hook.sh deleted file mode 100644 index 292632b..0000000 --- a/pkgs/by-name/au/automake/setup-hook.sh +++ /dev/null @@ -1,5 +0,0 @@ -addAclocals () { - addToSearchPathWithCustomDelimiter : ACLOCAL_PATH $1/share/aclocal -} - -addEnvHooks "$hostOffset" addAclocals diff --git a/pkgs/by-name/aw/aws-c-auth/default.nix b/pkgs/by-name/aw/aws-c-auth/default.nix deleted file mode 100644 index 7a7d808..0000000 --- a/pkgs/by-name/aw/aws-c-auth/default.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ 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 { - pname = "aws-c-auth"; - version = "0.7.16"; - - src = fetchFromGitHub { - owner = "awslabs"; - repo = "aws-c-auth"; - rev = "v${version}"; - hash = "sha256-76sBv4oChDrkv80HPktkULFNC37kfTNxjlwNg/FJiyA="; - }; - - nativeBuildInputs = [ - cmake - ]; - - buildInputs = [ - aws-c-cal - aws-c-common - aws-c-compression - aws-c-http - aws-c-io - s2n-tls - ]; - - propagatedBuildInputs = [ - aws-c-sdkutils - ]; - - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - ]; - - passthru.tests = { - inherit nix; - }; - - meta = with lib; { - description = "C99 library implementation of AWS client-side authentication"; - homepage = "https://github.com/awslabs/aws-c-auth"; - license = licenses.asl20; - platforms = platforms.unix; - maintainers = with maintainers; [ r-burns ]; - }; -} diff --git a/pkgs/by-name/aw/aws-c-cal/aws-c-cal-musl-compat.patch b/pkgs/by-name/aw/aws-c-cal/aws-c-cal-musl-compat.patch deleted file mode 100644 index 2cf1d4e..0000000 --- a/pkgs/by-name/aw/aws-c-cal/aws-c-cal-musl-compat.patch +++ /dev/null @@ -1,33 +0,0 @@ -From: Emil Lerch -Date: Wed, 28 Apr 2021 17:46:24 -0700 -Subject: [PATCH] Allow dlopen to fail on musl systems - -Now that references are forced when linking statically, the assertion is -no longer necessary. See https://github.com/awslabs/aws-c-cal/pull/54 ---- - source/unix/openssl_platform_init.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/source/unix/openssl_platform_init.c b/source/unix/openssl_platform_init.c -index 5266ecc1..99f210bd 100644 ---- a/source/unix/openssl_platform_init.c -+++ b/source/unix/openssl_platform_init.c -@@ -496,7 +502,6 @@ static enum aws_libcrypto_version s_resolve_libcrypto(void) { - /* Try to auto-resolve against what's linked in/process space */ - FLOGF("searching process and loaded modules"); - void *process = dlopen(NULL, RTLD_NOW); -- AWS_FATAL_ASSERT(process && "Unable to load symbols from process space"); - enum aws_libcrypto_version result = s_resolve_libcrypto_symbols(AWS_LIBCRYPTO_LC, process); - if (result == AWS_LIBCRYPTO_NONE) { - result = s_resolve_libcrypto_symbols(AWS_LIBCRYPTO_1_0_2, process); -@@ -504,7 +509,9 @@ static enum aws_libcrypto_version s_resolve_libcrypto(void) { - if (result == AWS_LIBCRYPTO_NONE) { - result = s_resolve_libcrypto_symbols(AWS_LIBCRYPTO_1_1_1, process); - } -- dlclose(process); -+ if (process) { -+ dlclose(process); -+ } - - if (result == AWS_LIBCRYPTO_NONE) { - FLOGF("libcrypto symbols were not statically linked, searching for shared libraries"); diff --git a/pkgs/by-name/aw/aws-c-cal/default.nix b/pkgs/by-name/aw/aws-c-cal/default.nix deleted file mode 100644 index 0188c89..0000000 --- a/pkgs/by-name/aw/aws-c-cal/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, cmake, aws-c-common, nix, openssl, Security }: - -stdenv.mkDerivation (finalAttrs: { - pname = "aws-c-cal"; - version = "0.6.10"; - - src = fetchFromGitHub { - owner = "awslabs"; - repo = finalAttrs.pname; - rev = "v${finalAttrs.version}"; - hash = "sha256-rzJypIf0DrKI/2Wt5vFop34dL+KYTeCfWC0RflZpiMo="; - }; - - patches = [ - # Fix openssl adaptor code for musl based static binaries. - ./aws-c-cal-musl-compat.patch - ]; - - nativeBuildInputs = [ cmake ]; - - buildInputs = [ aws-c-common openssl ]; - - propagatedBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ Security ]; - - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - ]; - - passthru.tests = { - inherit nix; - }; - - meta = with lib; { - description = "AWS Crypto Abstraction Layer "; - homepage = "https://github.com/awslabs/aws-c-cal"; - license = licenses.asl20; - platforms = platforms.unix; - maintainers = with maintainers; [ orivej ]; - }; -}) diff --git a/pkgs/by-name/aw/aws-c-cal/packages.nix b/pkgs/by-name/aw/aws-c-cal/packages.nix deleted file mode 100644 index 989742a..0000000 --- a/pkgs/by-name/aw/aws-c-cal/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index 360b82b..0000000 --- a/pkgs/by-name/aw/aws-c-common/default.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, nix -}: - -stdenv.mkDerivation rec { - pname = "aws-c-common"; - version = "0.9.14"; - - src = fetchFromGitHub { - owner = "awslabs"; - repo = pname; - rev = "v${version}"; - hash = "sha256-aeuIXqnO8divpguDpiPlYJHABYIqegpaDNGwqJ5TKZw="; - }; - - nativeBuildInputs = [ cmake ]; - - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - ] ++ 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 - ''; - - doCheck = true; - - passthru.tests = { - inherit nix; - }; - - meta = with lib; { - description = "AWS SDK for C common core"; - homepage = "https://github.com/awslabs/aws-c-common"; - license = licenses.asl20; - platforms = platforms.unix; - maintainers = with maintainers; [ orivej eelco r-burns ]; - }; -} diff --git a/pkgs/by-name/aw/aws-c-common/setup-hook.sh b/pkgs/by-name/aw/aws-c-common/setup-hook.sh deleted file mode 100644 index e670f7c..0000000 --- a/pkgs/by-name/aw/aws-c-common/setup-hook.sh +++ /dev/null @@ -1,5 +0,0 @@ -addAwsCCommonModuleDir() { - cmakeFlags="-DCMAKE_MODULE_PATH=@out@/lib/cmake ${cmakeFlags:-}" -} - -postHooks+=(addAwsCCommonModuleDir) diff --git a/pkgs/by-name/aw/aws-c-compression/default.nix b/pkgs/by-name/aw/aws-c-compression/default.nix deleted file mode 100644 index e38279f..0000000 --- a/pkgs/by-name/aw/aws-c-compression/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ lib, stdenv -, fetchFromGitHub -, aws-c-common -, cmake -, nix -}: - -stdenv.mkDerivation rec { - pname = "aws-c-compression"; - version = "0.2.18"; - - src = fetchFromGitHub { - owner = "awslabs"; - repo = "aws-c-compression"; - rev = "v${version}"; - sha256 = "sha256-Cf3MvoRWGAy+vlE59JSpTGOBl07dI4mbIaL1HIiLN/I="; - }; - - nativeBuildInputs = [ - cmake - ]; - - buildInputs = [ - aws-c-common - ]; - - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - ]; - - passthru.tests = { - inherit nix; - }; - - meta = with lib; { - description = "C99 implementation of huffman encoding/decoding"; - homepage = "https://github.com/awslabs/aws-c-compression"; - license = licenses.asl20; - platforms = platforms.unix; - maintainers = with maintainers; [ r-burns ]; - }; -} diff --git a/pkgs/by-name/aw/aws-c-event-stream/default.nix b/pkgs/by-name/aw/aws-c-event-stream/default.nix deleted file mode 100644 index 14d24ae..0000000 --- a/pkgs/by-name/aw/aws-c-event-stream/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ 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 { - pname = "aws-c-event-stream"; - version = "0.4.2"; - - src = fetchFromGitHub { - owner = "awslabs"; - repo = pname; - rev = "v${version}"; - hash = "sha256-wj3PZshUay3HJy+v7cidDL4mDAqSDiX+MmQtJDK4rTI="; - }; - - nativeBuildInputs = [ cmake ]; - - 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" - ]; - - # passthru.tests = { - # inherit nix; - # }; - - meta = with lib; { - description = "C99 implementation of the vnd.amazon.eventstream content-type"; - homepage = "https://github.com/awslabs/aws-c-event-stream"; - license = licenses.asl20; - platforms = platforms.unix; - 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 deleted file mode 100644 index 4b22e53..0000000 --- a/pkgs/by-name/aw/aws-c-http/default.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ lib, stdenv -, fetchFromGitHub -, aws-c-cal -, aws-c-common -, aws-c-compression -, aws-c-io -, cmake -, nix -, s2n-tls -}: - -stdenv.mkDerivation rec { - pname = "aws-c-http"; - version = "0.8.1"; - - src = fetchFromGitHub { - owner = "awslabs"; - repo = "aws-c-http"; - rev = "v${version}"; - hash = "sha256-S5ETVkdGTndt2GJBNL4DU5SycHAufsmN06xBDRMFVKo="; - }; - - nativeBuildInputs = [ - cmake - ]; - - buildInputs = [ - aws-c-cal - aws-c-common - aws-c-compression - aws-c-io - s2n-tls - ]; - - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - ]; - - passthru.tests = { - inherit nix; - }; - - meta = with lib; { - description = "C99 implementation of the HTTP/1.1 and HTTP/2 specifications"; - homepage = "https://github.com/awslabs/aws-c-http"; - license = licenses.asl20; - platforms = platforms.unix; - maintainers = with maintainers; [ r-burns ]; - }; -} diff --git a/pkgs/by-name/aw/aws-c-io/default.nix b/pkgs/by-name/aw/aws-c-io/default.nix deleted file mode 100644 index 65b5843..0000000 --- a/pkgs/by-name/aw/aws-c-io/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, cmake, aws-c-cal, aws-c-common, nix, s2n-tls, Security }: - -stdenv.mkDerivation rec { - pname = "aws-c-io"; - version = "0.14.6"; - - src = fetchFromGitHub { - owner = "awslabs"; - repo = pname; - rev = "v${version}"; - hash = "sha256-fekeGghqMKbUqKWIfpZg3a6dCpgxywhmXPoGz9y4Aos="; - }; - - nativeBuildInputs = [ cmake ]; - - buildInputs = [ aws-c-cal aws-c-common s2n-tls ]; - propagatedBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ Security ]; - - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - ]; - - passthru.tests = { - inherit nix; - }; - - meta = with lib; { - description = "AWS SDK for C module for IO and TLS"; - homepage = "https://github.com/awslabs/aws-c-io"; - license = licenses.asl20; - platforms = platforms.unix; - maintainers = with maintainers; [ orivej ]; - }; -} diff --git a/pkgs/by-name/aw/aws-c-io/packages.nix b/pkgs/by-name/aw/aws-c-io/packages.nix deleted file mode 100644 index d17278d..0000000 --- a/pkgs/by-name/aw/aws-c-io/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index 2e6c6a5..0000000 --- a/pkgs/by-name/aw/aws-c-mqtt/default.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ 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 { - pname = "aws-c-mqtt"; - version = "0.10.3"; - - src = fetchFromGitHub { - owner = "awslabs"; - repo = "aws-c-mqtt"; - rev = "v${version}"; - hash = "sha256-MWcXTMwKtFnrNp+OnHxkiYCUXc3IUhM6iTQa+F9JwsQ="; - }; - - nativeBuildInputs = [ - cmake - ]; - - buildInputs = [ - aws-c-cal - aws-c-common - aws-c-compression - aws-c-http - aws-c-io - s2n-tls - ]; - - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - ]; - - passthru.tests = { - inherit nix; - }; - - meta = with lib; { - description = "C99 implementation of the MQTT 3.1.1 specification"; - homepage = "https://github.com/awslabs/aws-c-mqtt"; - license = licenses.asl20; - platforms = platforms.unix; - maintainers = with maintainers; [ r-burns ]; - }; -} diff --git a/pkgs/by-name/aw/aws-c-s3/default.nix b/pkgs/by-name/aw/aws-c-s3/default.nix deleted file mode 100644 index 8db5b83..0000000 --- a/pkgs/by-name/aw/aws-c-s3/default.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ 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 { - pname = "aws-c-s3"; - version = "0.5.4"; - - src = fetchFromGitHub { - owner = "awslabs"; - repo = "aws-c-s3"; - rev = "v${version}"; - hash = "sha256-8eKQsP7AftNDccsZHPC9PcwpbpgZSvsioUuSsiggQDs="; - }; - - nativeBuildInputs = [ - cmake - ]; - - buildInputs = [ - aws-c-auth - aws-c-cal - aws-c-common - aws-c-compression - aws-c-http - aws-c-io - aws-checksums - s2n-tls - ]; - - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - ]; - - passthru.tests = { - inherit nix; - }; - - meta = with lib; { - description = "C99 library implementation for communicating with the S3 service"; - homepage = "https://github.com/awslabs/aws-c-s3"; - license = licenses.asl20; - maintainers = with maintainers; [ r-burns ]; - mainProgram = "s3"; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/aw/aws-c-sdkutils/default.nix b/pkgs/by-name/aw/aws-c-sdkutils/default.nix deleted file mode 100644 index 7ced8b5..0000000 --- a/pkgs/by-name/aw/aws-c-sdkutils/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ lib, stdenv -, fetchFromGitHub -, aws-c-common -, cmake -, nix -}: - -stdenv.mkDerivation rec { - pname = "aws-c-sdkutils"; - version = "0.1.15"; - - src = fetchFromGitHub { - owner = "awslabs"; - repo = "aws-c-sdkutils"; - rev = "v${version}"; - hash = "sha256-RTRDbdv+QmRG0Sk/R9qhl45WYEVyl+M0EceLFsoONTI="; - }; - - nativeBuildInputs = [ - cmake - ]; - - buildInputs = [ - aws-c-common - ]; - - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - ]; - - doCheck = true; - - passthru.tests = { - inherit nix; - }; - - meta = with lib; { - description = "AWS SDK utility library"; - homepage = "https://github.com/awslabs/aws-c-sdkutils"; - license = licenses.asl20; - platforms = platforms.unix; - maintainers = with maintainers; [ r-burns ]; - }; -} diff --git a/pkgs/by-name/aw/aws-checksums/default.nix b/pkgs/by-name/aw/aws-checksums/default.nix deleted file mode 100644 index 41da5e2..0000000 --- a/pkgs/by-name/aw/aws-checksums/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, cmake, aws-c-common, nix }: - -stdenv.mkDerivation rec { - pname = "aws-checksums"; - version = "0.1.18"; - - src = fetchFromGitHub { - owner = "awslabs"; - repo = pname; - rev = "v${version}"; - sha256 = "sha256-EhIVa8/IK4evGt4vYECunLpxrCMSOsr1RZ/8hFbRi9M="; - }; - - nativeBuildInputs = [ cmake ]; - - buildInputs = [ aws-c-common ]; - - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - ]; - - passthru.tests = { - inherit nix; - }; - - meta = with lib; { - description = "HW accelerated CRC32c and CRC32"; - homepage = "https://github.com/awslabs/aws-checksums"; - license = licenses.asl20; - platforms = platforms.unix; - maintainers = with maintainers; [ orivej eelco ]; - }; -} diff --git a/pkgs/by-name/aw/aws-crt-cpp/0001-build-Make-includedir-properly-overrideable.patch b/pkgs/by-name/aw/aws-crt-cpp/0001-build-Make-includedir-properly-overrideable.patch deleted file mode 100644 index 2b06ce0..0000000 --- a/pkgs/by-name/aw/aws-crt-cpp/0001-build-Make-includedir-properly-overrideable.patch +++ /dev/null @@ -1,59 +0,0 @@ -From fd3f3a28e7fce7fe4e10ed2d7edc4bfda8ab27df Mon Sep 17 00:00:00 2001 -From: Jan Tojnar -Date: Sun, 9 Jan 2022 01:57:18 +0100 -Subject: [PATCH] build: Make includedir properly overrideable - -This is required by some package managers like Nix. ---- - CMakeLists.txt | 22 +++++++++++++--------- - 1 file changed, 13 insertions(+), 9 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index ec6d172..6514c23 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -49,6 +49,10 @@ if(${CMAKE_INSTALL_LIBDIR} STREQUAL "lib64") - set(FIND_LIBRARY_USE_LIB64_PATHS true) - endif() - -+if(NOT DEFINED CMAKE_INSTALL_INCLUDEDIR) -+ set(CMAKE_INSTALL_INCLUDEDIR "include") -+endif() -+ - if(NOT CMAKE_CXX_STANDARD) - set(CMAKE_CXX_STANDARD 11) - endif() -@@ -307,7 +311,7 @@ endif() - target_include_directories(${PROJECT_NAME} PUBLIC - $ - $ -- $) -+ $) - - aws_use_package(aws-c-http) - aws_use_package(aws-c-mqtt) -@@ -324,14 +328,14 @@ aws_add_sanitizers(${PROJECT_NAME}) - - target_link_libraries(${PROJECT_NAME} PUBLIC ${DEP_AWS_LIBS}) - --install(FILES ${AWS_CRT_HEADERS} DESTINATION "include/aws/crt" COMPONENT Development) --install(FILES ${AWS_CRT_AUTH_HEADERS} DESTINATION "include/aws/crt/auth" COMPONENT Development) --install(FILES ${AWS_CRT_CRYPTO_HEADERS} DESTINATION "include/aws/crt/crypto" COMPONENT Development) --install(FILES ${AWS_CRT_IO_HEADERS} DESTINATION "include/aws/crt/io" COMPONENT Development) --install(FILES ${AWS_CRT_IOT_HEADERS} DESTINATION "include/aws/iot" COMPONENT Development) --install(FILES ${AWS_CRT_MQTT_HEADERS} DESTINATION "include/aws/crt/mqtt" COMPONENT Development) --install(FILES ${AWS_CRT_HTTP_HEADERS} DESTINATION "include/aws/crt/http" COMPONENT Development) --install(FILES ${AWS_CRT_ENDPOINT_HEADERS} DESTINATION "include/aws/crt/endpoints" COMPONENT Development) -+install(FILES ${AWS_CRT_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/crt" COMPONENT Development) -+install(FILES ${AWS_CRT_AUTH_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/crt/auth" COMPONENT Development) -+install(FILES ${AWS_CRT_CRYPTO_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/crt/crypto" COMPONENT Development) -+install(FILES ${AWS_CRT_IO_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/crt/io" COMPONENT Development) -+install(FILES ${AWS_CRT_IOT_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/iot" COMPONENT Development) -+install(FILES ${AWS_CRT_MQTT_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/crt/mqtt" COMPONENT Development) -+install(FILES ${AWS_CRT_HTTP_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/crt/http" COMPONENT Development) -+install(FILES ${AWS_CRT_ENDPOINT_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/crt/endpoints" COMPONENT Development) - - install( - TARGETS ${PROJECT_NAME} --- -2.42.0 diff --git a/pkgs/by-name/aw/aws-crt-cpp/default.nix b/pkgs/by-name/aw/aws-crt-cpp/default.nix deleted file mode 100644 index 9837813..0000000 --- a/pkgs/by-name/aw/aws-crt-cpp/default.nix +++ /dev/null @@ -1,81 +0,0 @@ -{ 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 -}: - -stdenv.mkDerivation rec { - pname = "aws-crt-cpp"; - version = "0.26.4"; - - outputs = [ "out" "dev" ]; - - src = fetchFromGitHub { - owner = "awslabs"; - repo = "aws-crt-cpp"; - rev = "v${version}"; - sha256 = "sha256-H5ms6fhhlkARn9g8S5Ma8bnisZv8mfNizP0QpzsF1tA="; - }; - - patches = [ - # Correct include path for split outputs. - # https://github.com/awslabs/aws-crt-cpp/pull/325 - ./0001-build-Make-includedir-properly-overrideable.patch - ]; - - postPatch = '' - substituteInPlace CMakeLists.txt --replace '-Werror' "" - ''; - - nativeBuildInputs = [ - cmake - ]; - - propagatedBuildInputs = [ - 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 - s2n-tls - ]; - - cmakeFlags = [ - "-DBUILD_DEPS=OFF" - "-DBUILD_SHARED_LIBS=ON" - ]; - - postInstall = '' - # Prevent dependency cycle. - moveToOutput lib/aws-crt-cpp/cmake "$dev" - ''; - - # passthru.tests = { - # inherit nix; - # }; - - meta = with lib; { - description = "C++ wrapper around the aws-c-* libraries"; - homepage = "https://github.com/awslabs/aws-crt-cpp"; - license = licenses.asl20; - platforms = platforms.unix; - maintainers = with maintainers; [ r-burns ]; - }; -} diff --git a/pkgs/by-name/aw/aws-sdk-cpp/default.nix b/pkgs/by-name/aw/aws-sdk-cpp/default.nix deleted file mode 100644 index b64978d..0000000 --- a/pkgs/by-name/aw/aws-sdk-cpp/default.nix +++ /dev/null @@ -1,155 +0,0 @@ -{ 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 -# , aws-sdk-cpp -}: - -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"; -in - -stdenv.mkDerivation rec { - pname = "aws-sdk-cpp"; - version = "1.11.296"; - - src = fetchFromGitHub { - owner = "aws"; - repo = "aws-sdk-cpp"; - rev = version; - 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' - - # 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 - ''; - - # FIXME: might be nice to put different APIs in different outputs - # (e.g. libaws-cpp-sdk-s3.so in output "s3"). - outputs = [ "out" "dev" ]; - - nativeBuildInputs = [ cmake curl ]; - - 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}"; - - env.NIX_CFLAGS_COMPILE = toString [ - # openssl 3 generates several deprecation warnings - "-Wno-error=deprecated-declarations" - ]; - - postFixupHooks = [ - # This bodge is necessary so that the file that the generated -config.cmake file - # points to an existing directory. - "mkdir -p $out/include" - ]; - - __darwinAllowLocalNetworking = true; - - # Builds in 2+h with 2 cores, and ~10m with a big-parallel builder. - requiredSystemFeatures = [ "big-parallel" ]; - - # passthru = { - # tests = { - # inherit nix arrow-cpp; - # cmake-find-package = stdenv.mkDerivation { - # pname = "aws-sdk-cpp-cmake-find-package-test"; - # version = "0"; - # dontUnpack = true; - # nativeBuildInputs = [ cmake ]; - # buildInputs = [ aws-sdk-cpp ]; - # buildCommand = '' - # cat > CMakeLists.txt <<'EOF' - # find_package(AWSSDK) - # EOF - - # # Intentionally not using 'cmakeConfigurePhase' to test that find_package works without it. - # mkdir build && cd build - # if output=$(cmake -Wno-dev .. 2>&1); then - # if grep -Fw -- "Found AWS" - <<< "$output"; then - # touch "$out" - # else - # echo "'Found AWS' not found in the cmake output!" >&2 - # echo "The output was:" >&2 - # echo "$output" >&2 - # exit 1 - # fi - # else - # echo -n "'cmake -Wno-dev ..'" >&2 - # echo " returned a non-zero exit code." >&2 - # echo "$output" >&2 - # exit 1 - # fi - # ''; - # }; - # }; - # }; - - meta = with lib; { - description = "A C++ interface for Amazon Web Services"; - homepage = "https://github.com/aws/aws-sdk-cpp"; - license = licenses.asl20; - platforms = platforms.unix; - 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 deleted file mode 100644 index 46675cb..0000000 --- a/pkgs/by-name/aw/aws-sdk-cpp/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index de0426f..0000000 --- a/pkgs/by-name/ba/bash/5.nix +++ /dev/null @@ -1,151 +0,0 @@ -{ lib -, stdenv -, buildPackages -, fetchurl -, bison -, util-linux - - # patch for cygwin requires readline support -, interactive ? stdenv.isCygwin -, readline -, withDocs ? false -, texinfo -, forFHSEnv ? false - -, pkgsStatic -}: - -let - 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"}"; - version = "5.2${patch_suffix}"; - patch_suffix = "p${toString (builtins.length upstreamPatches)}"; - - src = fetchurl { - url = "mirror://gnu/bash/bash-${lib.removeSuffix patch_suffix version}.tar.gz"; - sha256 = "sha256-oTnBZt9/9EccXgczBRZC7lVWwcyKSnjxRVg8XIGrMvs="; - }; - - 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" ]; - - 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 - ''; - - patchFlags = [ "-p0" ]; - - patches = upstreamPatches ++ [ - ./pgrp-pipe-5.patch - (fetchurl { - name = "fix-static.patch"; - url = "https://cgit.freebsd.org/ports/plain/shells/bash/files/patch-configure?id=3e147a1f594751a68fea00a28090d0792bee0b51"; - sha256 = "XHFMQ6eXTReNoywdETyrfQEv1rKF8+XFbQZP4YoVKFk="; - }) - # Apply parallel build fix pending upstream inclusion: - # https://savannah.gnu.org/patch/index.php?10373 - # Had to fetch manually to workaround -p0 default. - ./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" - ]; - - 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; - - buildInputs = lib.optional interactive readline; - - enableParallelBuilding = true; - - makeFlags = lib.optionals stdenv.hostPlatform.isCygwin [ - "LOCAL_LDFLAGS=-Wl,--export-all,--out-implib,libbash.dll.a" - "SHOBJ_LIBS=-lbash" - ]; - - nativeCheckInputs = [ util-linux ]; - doCheck = false; # dependency cycle, needs to be interactive - - postInstall = '' - ln -s bash "$out/bin/sh" - rm -f $out/lib/bash/Makefile.inc - ''; - - postFixup = - 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" - ''; - - passthru = { - shellPath = "/bin/bash"; - tests.static = pkgsStatic.bash; - }; - - 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)"; - longDescription = '' - Bash is the shell, or command language interpreter, that will - appear in the GNU operating system. Bash is an sh-compatible - shell that incorporates useful features from the Korn shell - (ksh) and C shell (csh). It is intended to conform to the IEEE - POSIX P1003.2/ISO 9945.2 Shell and Tools standard. It offers - functional improvements over sh for both programming and - interactive use. In addition, most sh scripts can be run by - Bash without modification. - ''; - license = licenses.gpl3Plus; - platforms = platforms.all; - maintainers = with maintainers; [ dtzWill ]; - mainProgram = "bash"; - }; -} diff --git a/pkgs/by-name/ba/bash/bash-5.2-patches.nix b/pkgs/by-name/ba/bash/bash-5.2-patches.nix deleted file mode 100644 index 5d5ef94..0000000 --- a/pkgs/by-name/ba/bash/bash-5.2-patches.nix +++ /dev/null @@ -1,30 +0,0 @@ -# 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") -] diff --git a/pkgs/by-name/ba/bash/bash-completion/default.nix b/pkgs/by-name/ba/bash/bash-completion/default.nix deleted file mode 100644 index 80f5ffe..0000000 --- a/pkgs/by-name/ba/bash/bash-completion/default.nix +++ /dev/null @@ -1,74 +0,0 @@ -{ lib, stdenv, fetchurl -, fetchpatch -, autoreconfHook -, perl -, ps -, python3Packages -, bashInteractive -}: - -stdenv.mkDerivation rec { - pname = "bash-completion"; - version = "2.13.0"; - - # Using fetchurl because fetchGithub or fetchzip will have trouble on - # e.g. APFS filesystems (macOS) because of non UTF-8 characters in some of the - # test fixtures that are part of the repository. - # See discussion in https://github.com/NixOS/nixpkgs/issues/107768 - src = fetchurl { - url = "https://github.com/scop/${pname}/releases/download/${version}/${pname}-${version}.tar.xz"; - sha256 = "sha256-xfmaOeQPDRVMA/8VQ46H7OH1rGZjNqRFmJni/0vt89E="; - }; - - strictDeps = true; - nativeBuildInputs = [ autoreconfHook ]; - - # tests are super flaky unfortunately, and regularly break. - # let's disable them for now. - doCheck = false; - nativeCheckInputs = [ - # perl is assumed by perldoc completion - perl - # ps assumed to exist by gdb, killall, pgrep, pidof, - # pkill, pwdx, renice, and reptyr completions - ps - python3Packages.pexpect - python3Packages.pytest - bashInteractive - ]; - - # - ignore test_gcc on ARM because it assumes -march=native - # - ignore test_chsh because it assumes /etc/shells exists - # - ignore test_ether_wake, test_ifdown, test_ifstat, test_ifup, - # test_iperf, test_iperf3, test_nethogs and ip_addresses - # because they try to touch network - # - ignore test_ls because impure logic - # - ignore test_screen because it assumes vt terminals exist - checkPhase = '' - pytest . \ - ${lib.optionalString stdenv.hostPlatform.isAarch "--ignore=test/t/test_gcc.py"} \ - --ignore=test/t/test_chsh.py \ - --ignore=test/t/test_ether_wake.py \ - --ignore=test/t/test_ifdown.py \ - --ignore=test/t/test_ifstat.py \ - --ignore=test/t/test_ifup.py \ - --ignore=test/t/test_iperf.py \ - --ignore=test/t/test_iperf3.py \ - --ignore=test/t/test_nethogs.py \ - --ignore=test/t/unit/test_unit_ip_addresses.py \ - --ignore=test/t/test_ls.py \ - --ignore=test/t/test_screen.py - ''; - - prePatch = lib.optionalString stdenv.isDarwin '' - sed -i -e 's/readlink -f/readlink/g' bash_completion completions/* - ''; - - meta = with lib; { - homepage = "https://github.com/scop/bash-completion"; - description = "Programmable completion for the bash shell"; - license = licenses.gpl2Plus; - platforms = platforms.unix; - maintainers = [ ]; - }; -} diff --git a/pkgs/by-name/ba/bash/blesh/default.nix b/pkgs/by-name/ba/bash/blesh/default.nix deleted file mode 100644 index 8863376..0000000 --- a/pkgs/by-name/ba/bash/blesh/default.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ lib -, stdenvNoCC -, fetchzip -, runtimeShell -, bashInteractive -, glibcLocales -}: - -stdenvNoCC.mkDerivation rec { - pname = "blesh"; - version = "0.4.0-devel3"; - - src = fetchzip { - url = "https://github.com/akinomyoga/ble.sh/releases/download/v${version}/ble-${version}.tar.xz"; - sha256 = "sha256-kGLp8RaInYSrJEi3h5kWEOMAbZV/gEPFUjOLgBuMhCI="; - }; - - dontBuild = true; - - doCheck = true; - nativeCheckInputs = [ bashInteractive glibcLocales ]; - preCheck = "export LC_ALL=en_US.UTF-8"; - - installPhase = '' - runHook preInstall - - mkdir -p "$out/share/blesh/lib" - - cat <"$out/share/blesh/lib/_package.sh" - _ble_base_package_type=nix - - function ble/base/package:nix/update { - echo "Ble.sh is installed by Nix. You can update it there." >&2 - return 1 - } - EOF - - cp -rv $src/* $out/share/blesh - - runHook postInstall - ''; - - postInstall = '' - mkdir -p "$out/bin" - cat <"$out/bin/blesh-share" - #!${runtimeShell} - # Run this script to find the ble.sh shared folder - # where all the shell scripts are living. - echo "$out/share/blesh" - EOF - chmod +x "$out/bin/blesh-share" - ''; - - meta = with lib; { - homepage = "https://github.com/akinomyoga/ble.sh"; - description = "Bash Line Editor -- a full-featured line editor written in pure Bash"; - mainProgram = "blesh-share"; - license = licenses.bsd3; - maintainers = with maintainers; [ aiotter ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/ba/bash/fzf-obc/default.nix b/pkgs/by-name/ba/bash/fzf-obc/default.nix deleted file mode 100644 index 7621ae8..0000000 --- a/pkgs/by-name/ba/bash/fzf-obc/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ lib, stdenv, fetchFromGitHub }: - -stdenv.mkDerivation rec { - pname = "fzf-obc"; - version = "1.3.0"; - - src = fetchFromGitHub { - owner = "rockandska"; - repo = pname; - rev = version; - sha256 = "sha256-KIAlDpt1Udl+RLp3728utgQ9FCjZz/OyoG92MOJmgPI="; - }; - - dontBuild = true; - - installPhase = '' - mkdir -p $out/share/fzf-obc/{bin,lib/fzf-obc,plugins/{kill,gradle}} - install -m644 bin/* $out/share/fzf-obc/bin - install -m644 lib/fzf-obc/* $out/share/fzf-obc/lib/fzf-obc - install -m644 plugins/kill/* $out/share/fzf-obc/plugins/kill - install -m644 plugins/gradle/* $out/share/fzf-obc/plugins/gradle - ''; - - meta = with lib; { - homepage = "https://fzf-obc.readthedocs.io"; - description = "Completion script adding fzf over all know bash completion functions"; - license = licenses.unfree; - maintainers = with maintainers; [ loicreynier ]; - }; -} diff --git a/pkgs/by-name/ba/bash/nix-bash-completions/default.nix b/pkgs/by-name/ba/bash/nix-bash-completions/default.nix deleted file mode 100644 index 10fb097..0000000 --- a/pkgs/by-name/ba/bash/nix-bash-completions/default.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch }: - -stdenv.mkDerivation rec { - version = "0.6.8"; - pname = "nix-bash-completions"; - - src = fetchFromGitHub { - owner = "hedning"; - repo = "nix-bash-completions"; - rev = "v${version}"; - sha256 = "1n5zs6xcnv4bv1hdaypmz7fv4j7dsr4a0ifah99iyj4p5j85i1bc"; - }; - - patches = [ - # Fix improper escaping: https://github.com/NixOS/nixpkgs/issues/284162 - (fetchpatch { - url = "https://github.com/hedning/nix-bash-completions/pull/28/commits/ef2055aa28754fa9e009bbfebc1491972e4f4e67.patch"; - hash = "sha256-TRkHrk7bX7DX0COzzYR+1pgTqLy7J55BcejNjRwthII="; - }) - ]; - - postPatch = '' - # Nix 2.4+ provides its own completion for the nix command, see https://github.com/hedning/nix-bash-completions/issues/20 - # NixOS provides its own completions for nixos-rebuild now. - substituteInPlace _nix \ - --replace 'nix nixos-option' 'nixos-option' \ - --replace 'nixos-rebuild nixos-install' 'nixos-install' - ''; - - strictDeps = true; - # To enable lazy loading via bash-completion we need a symlink to the script - # from every command name. - installPhase = '' - runHook preInstall - - commands=$( - function complete() { shift 2; echo "$@"; } - shopt -s extglob - source _nix - ) - install -Dm444 -t $out/share/bash-completion/completions _nix - cd $out/share/bash-completion/completions - for c in $commands; do - ln -s _nix $c - done - - runHook postInstall - ''; - - meta = with lib; { - homepage = "https://github.com/hedning/nix-bash-completions"; - description = "Bash completions for Nix, NixOS, and NixOps"; - license = licenses.bsd3; - platforms = platforms.all; - 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 deleted file mode 100644 index 758d7d5..0000000 --- a/pkgs/by-name/ba/bash/packages.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 { - interactive = true; - withDocs = true; - }; - bashInteractiveFHS = callPackage ./5.nix { - interactive = true; - withDocs = true; - forFHSEnv = true; - }; - - bash-completion = callPackage ./bash-completion { }; -} diff --git a/pkgs/by-name/ba/bash/parallel.patch b/pkgs/by-name/ba/bash/parallel.patch deleted file mode 100644 index d9a0cc2..0000000 --- a/pkgs/by-name/ba/bash/parallel.patch +++ /dev/null @@ -1,12 +0,0 @@ -From https://savannah.gnu.org/patch/index.php?10373 - https://savannah.gnu.org/patch/download.php?file_id=54964 ---- Makefile.in -+++ Makefile.in -@@ -1432,6 +1432,7 @@ siglist.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h - subst.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h - test.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h - trap.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h -+unwind_prot.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h - variables.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h - version.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h - xmalloc.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h diff --git a/pkgs/by-name/ba/bash/pgrp-pipe-5.patch b/pkgs/by-name/ba/bash/pgrp-pipe-5.patch deleted file mode 100644 index 71b3979..0000000 --- a/pkgs/by-name/ba/bash/pgrp-pipe-5.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- ./configure 2022-12-20 17:13:17.804045620 +0100 -+++ ./configure-fixed 2022-12-20 17:16:00.444114824 +0100 -@@ -21723,11 +21723,7 @@ - solaris2*) LOCAL_CFLAGS=-DSOLARIS ;; - lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; - linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading -- case "`uname -r`" in -- 1.*|2.[0123]*) : ;; -- *) printf "%s\n" "#define PGRP_PIPE 1" >>confdefs.h -- ;; -- esac ;; -+ printf "%s\n" "#define PGRP_PIPE 1" >>confdefs.h ;; - netbsd*|openbsd*) LOCAL_CFLAGS="-DDEV_FD_STAT_BROKEN" ;; - freebsd*|midnightbsd*) LOCAL_CFLAGS='-DHEREDOC_PIPESIZE=4096' ;; - *qnx[67]*) LOCAL_LIBS="-lncurses" ;; diff --git a/pkgs/by-name/ba/bash/undistract-me/default.nix b/pkgs/by-name/ba/bash/undistract-me/default.nix deleted file mode 100644 index b15903e..0000000 --- a/pkgs/by-name/ba/bash/undistract-me/default.nix +++ /dev/null @@ -1,81 +0,0 @@ -{ lib -, stdenvNoCC -, fetchFromGitHub -, fetchpatch -, coreutils -, gnused -, libnotify -, pulseaudio -, sound-theme-freedesktop -, xprop -}: - -stdenvNoCC.mkDerivation rec { - pname = "undistract-me"; - version = "unstable-2020-08-09"; - - src = fetchFromGitHub { - owner = "jml"; - repo = pname; - rev = "2f8ac25c6ad8efcf160d2b480825b1cbb6772aab"; - hash = "sha256-Qw7Cu9q0ZgK/RTvyDdHM5N3eBaKjtYqYH0J+hKMUZX8="; - }; - - patches = [ - # Don't block the terminal when notification sound is played - # - # See https://github.com/jml/undistract-me/pull/69 - (fetchpatch { - url = "https://github.com/jml/undistract-me/commit/2356ebbe8bf2bcb4b95af1ae2bcdc786ce7cc6e8.patch"; - sha256 = "sha256-Ij3OXTOnIQsYhKVmqjChhN1q4ASZ7waOkfQTTp5XfPo="; - }) - - # Fix showing notifications when using Wayland apps with XWayland - # running, or connection to X server fails. - # - # NOTE: Without a real X server, notifications will not be - # suppressed when the window running the command is focused. - # - # See https://github.com/jml/undistract-me/pull/71 - (fetchpatch { - url = "https://github.com/jml/undistract-me/commit/3f4ceaf5a4eba8e3cb02236c48247f87e3d1124f.patch"; - sha256 = "sha256-9AK9Jp3TXJ75Y+jwZXlwQ6j54FW1rOBddoktrm0VX68="; - }) - ]; - - strictDeps = true; - - # Patch in dependencies. Can't use makeWrapper because the bash - # functions will be sourced and invoked in a different environment - # for each command invocation. - postPatch = '' - for script in *.bash *.sh; do - substituteInPlace "$script" \ - --replace /usr/share/undistract-me "$out/share/undistract-me" \ - --replace basename ${coreutils}/bin/basename \ - --replace 'cut ' '${coreutils}/bin/cut ' \ - --replace date ${coreutils}/bin/date \ - --replace dirname ${coreutils}/bin/dirname \ - --replace sed ${gnused}/bin/sed \ - --replace notify-send ${libnotify}/bin/notify-send \ - --replace paplay ${pulseaudio}/bin/paplay \ - --replace /usr/share/sounds/freedesktop ${sound-theme-freedesktop}/share/sounds/freedesktop \ - --replace xprop ${xprop}/bin/xprop - done - ''; - - installPhase = '' - mkdir -p "$out/share/undistract-me" "$out/etc/profile.d" "$out/share/licenses/undistract-me" - cp long-running.bash "$out/share/undistract-me" - cp preexec.bash "$out/share/undistract-me" - cp undistract-me.sh "$out/etc/profile.d" - cp LICENSE "$out/share/licenses/undistract-me" - ''; - - meta = with lib; { - description = "Notifies you when long-running terminal commands complete"; - homepage = "https://github.com/jml/undistract-me"; - license = licenses.mit; - maintainers = with maintainers; [ kira-bruneau ]; - }; -} diff --git a/pkgs/by-name/ba/bash/update-patch-set.sh b/pkgs/by-name/ba/bash/update-patch-set.sh deleted file mode 100755 index ee785cc..0000000 --- a/pkgs/by-name/ba/bash/update-patch-set.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell --pure -i bash -p wget -p gnupg -p cacert -p nix - -# Update patch set for GNU Bash or Readline. - -if [ $# -ne 2 ] -then - echo "Usage: $(basename "$0") PROJECT VERSION" - echo "" - echo "Update the patch set for PROJECT (one of \`bash' or \`readline') for" - echo "the given version (e.g., \`4.0'). Produce \`PROJECT-patches.nix'." - exit 1 -fi - -PROJECT="$1" -VERSION="$2" -DIR=$(dirname "$0") -VERSION_CONDENSED="$(echo "$VERSION" | sed -es/\\.//g)" -PATCH_LIST="$DIR/$PROJECT-$VERSION-patches.nix" - -set -e - -rm -vf "$PATCH_LIST" - -wget "https://tiswww.case.edu/php/chet/gpgkey.asc" -echo "4ef5051ce7200241e65d29c11eb57df8 gpgkey.asc" > gpgkey.asc.md5 -md5sum -c gpgkey.asc.md5 -gpg --import ./gpgkey.asc -rm gpgkey.asc{,.md5} - -( echo "# Automatically generated by \`$(basename "$0")'; do not edit." ; \ - echo "" ; \ - echo "patch: [" ) \ ->> "$PATCH_LIST" - -for i in {001..100} -do - wget -P "$DIR" "ftp.gnu.org/gnu/$PROJECT/$PROJECT-$VERSION-patches/$PROJECT$VERSION_CONDENSED-$i" || break - wget -P "$DIR" "ftp.gnu.org/gnu/$PROJECT/$PROJECT-$VERSION-patches/$PROJECT$VERSION_CONDENSED-$i.sig" - gpg --verify "$DIR/$PROJECT$VERSION_CONDENSED-$i.sig" - hash=$(nix-hash --flat --type sha256 --base32 "$DIR/$PROJECT$VERSION_CONDENSED-$i") - echo "(patch \"$i\" \"$hash\")" \ - >> "$PATCH_LIST" - - rm -f "$DIR/$PROJECT$VERSION_CONDENSED-$i"{,.sig} -done - -echo "]" >> "$PATCH_LIST" - -# bash interprets numbers starting with 0 as octals -echo "Got $((10#$i - 1)) patches." -echo "Patch list has been written to \`$PATCH_LIST'." diff --git a/pkgs/by-name/ba/bash/yarn-completion/default.nix b/pkgs/by-name/ba/bash/yarn-completion/default.nix deleted file mode 100644 index 48d1f42..0000000 --- a/pkgs/by-name/ba/bash/yarn-completion/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, installShellFiles -}: - -stdenv.mkDerivation rec { - pname = "yarn-bash-completion"; - version = "0.17.0"; - - src = fetchFromGitHub { - owner = "dsifford"; - repo = "yarn-completion"; - rev = "v${version}"; - sha256 = "0xflbrbwskjqv3knvc8jqygpvfxh5ak66q7w22d1ng8gwrfqzcng"; - }; - - strictDeps = true; - nativeBuildInputs = [ installShellFiles ]; - - installPhase = '' - runHook preInstall - - installShellCompletion --cmd yarn ./yarn-completion.bash - - runHook postInstall - ''; - - meta = with lib; { - homepage = "https://github.com/dsifford/yarn-completion/"; - description = "Bash completion for Yarn"; - license = licenses.mit; - maintainers = with maintainers; [ DamienCassou ]; - }; -} diff --git a/pkgs/by-name/bc/bc/cross-bc.patch b/pkgs/by-name/bc/bc/cross-bc.patch deleted file mode 100644 index ba8857a..0000000 --- a/pkgs/by-name/bc/bc/cross-bc.patch +++ /dev/null @@ -1,169 +0,0 @@ -commit fdda59736ddc048cf38a2c7103f4f5d9eeaf995e -Author: Ben Gamari -Date: Tue Oct 17 10:51:34 2017 -0400 - - Try implementing cross-compilation - -diff --git a/bc/Makefile.am b/bc/Makefile.am -index d9d412e..fdef633 100644 ---- a/bc/Makefile.am -+++ b/bc/Makefile.am -@@ -17,6 +17,7 @@ MAINTAINERCLEANFILES = Makefile.in bc.c bc.h scan.c \ - - AM_CPPFLAGS = -I$(srcdir) -I$(srcdir)/../h - LIBBC = ../lib/libbc.a -+LIBBC_HOST = ../lib/libbc_host.a - LIBL = @LEXLIB@ - LDADD = $(LIBBC) $(LIBL) @READLINELIB@ - -@@ -29,12 +30,20 @@ $(PROGRAMS): libmath.h $(LIBBC) - scan.o: bc.h - global.o: libmath.h -+ -+main_host.c : main.c -+ cp $< $@ - --fbcOBJ = main.o bc.o scan.o execute.o load.o storage.o util.o warranty.o -+fbcOBJ = $(addsuffix _host,main.o bc.o scan.o execute.o load.o storage.o util.o warranty.o) -+ -+%.o_host : CC:=$(CC_FOR_BUILD) -+ -+%.o_host : %.c -+ $(COMPILE) -c $(CFLAGS) $(INCLUDES) -o $@ $< - --libmath.h: libmath.b $(fbcOBJ) $(LIBBC) -+libmath.h: libmath.b $(fbcOBJ) $(LIBBC_HOST) - echo '{0}' > libmath.h -- $(MAKE) global.o -- $(LINK) -o fbc $(fbcOBJ) global.o $(LIBBC) $(LIBL) $(READLINELIB) $(LIBS) -+ $(MAKE) global.o_host -+ $(CC_FOR_BUILD) -o fbc $(fbcOBJ) global.o_host $(LIBBC_HOST) $(LIBL) ${READLINELIB} $(LIBS) - ./fbc -c $(srcdir)/libmath.b libmath.h - $(srcdir)/fix-libmath_h - rm -f ./fbc ./global.o -diff --git a/configure.ac b/configure.ac -index fc74573..5cabb73 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -20,6 +20,7 @@ m4_define([dc_version], 1.4.1) - - AC_INIT([bc],[bc_version]) - AC_CONFIG_SRCDIR(doc/bc.1) -+AC_CONFIG_MACRO_DIR([m4]) - AM_INIT_AUTOMAKE([dist-bzip2]) - AC_CONFIG_HEADERS(config.h) - -@@ -35,6 +36,7 @@ AC_DEFINE([DC_COPYRIGHT], - [Define the dc copyright line.]) - - AC_PROG_CC -+AX_CC_FOR_BUILD - AC_USE_SYSTEM_EXTENSIONS - - AM_PROG_LEX -diff --git a/lib/Makefile.am b/lib/Makefile.am -index ec4bf59..c670f5b 100644 ---- a/lib/Makefile.am -+++ b/lib/Makefile.am -@@ -1,5 +1,5 @@ - ## Process this file with automake to produce Makefile.in --noinst_LIBRARIES = libbc.a -+noinst_LIBRARIES = libbc.a libbc_host.a - - AM_CPPFLAGS = -I. -I.. -I$(srcdir)/../h - -@@ -24,3 +24,11 @@ testmul: testmul.o number.o - - specialnumber: newnumber.o - cp newnumber.o number.o -+ -+%.o_host : CC:=$(CC_FOR_BUILD) -+%.o_host : %.c -+ $(COMPILE) -c $(CFLAGS) $(INCLUDES) -o $@ $< -+ -+libbc_host.a : $(addsuffix _host,$(libbc_a_OBJECTS)) -+ ar cru $@ $+ -+ ranlib $@ -diff --git a/m4/cc_for_build.m4 b/m4/cc_for_build.m4 -new file mode 100644 -index 0000000..c62ffad ---- /dev/null -+++ b/m4/cc_for_build.m4 -@@ -0,0 +1,77 @@ -+# =========================================================================== -+# https://www.gnu.org/software/autoconf-archive/ax_cc_for_build.html -+# =========================================================================== -+# -+# SYNOPSIS -+# -+# AX_CC_FOR_BUILD -+# -+# DESCRIPTION -+# -+# Find a build-time compiler. Sets CC_FOR_BUILD and EXEEXT_FOR_BUILD. -+# -+# LICENSE -+# -+# Copyright (c) 2010 Reuben Thomas -+# Copyright (c) 1999 Richard Henderson -+# -+# This program is free software: you can redistribute it and/or modify it -+# under the terms of the GNU General Public License as published by the -+# Free Software Foundation, either version 3 of the License, or (at your -+# option) any later version. -+# -+# This program is distributed in the hope that it will be useful, but -+# WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General -+# Public License for more details. -+# -+# You should have received a copy of the GNU General Public License along -+# with this program. If not, see . -+# -+# As a special exception, the respective Autoconf Macro's copyright owner -+# gives unlimited permission to copy, distribute and modify the configure -+# scripts that are the output of Autoconf when processing the Macro. You -+# need not follow the terms of the GNU General Public License when using -+# or distributing such scripts, even though portions of the text of the -+# Macro appear in them. The GNU General Public License (GPL) does govern -+# all other use of the material that constitutes the Autoconf Macro. -+# -+# This special exception to the GPL applies to versions of the Autoconf -+# Macro released by the Autoconf Archive. When you make and distribute a -+# modified version of the Autoconf Macro, you may extend this special -+# exception to the GPL to apply to your modified version as well. -+ -+#serial 3 -+ -+dnl Get a default for CC_FOR_BUILD to put into Makefile. -+AC_DEFUN([AX_CC_FOR_BUILD], -+[# Put a plausible default for CC_FOR_BUILD in Makefile. -+if test -z "$CC_FOR_BUILD"; then -+ if test "x$cross_compiling" = "xno"; then -+ CC_FOR_BUILD='$(CC)' -+ else -+ CC_FOR_BUILD=gcc -+ fi -+fi -+AC_SUBST(CC_FOR_BUILD) -+# Also set EXEEXT_FOR_BUILD. -+if test "x$cross_compiling" = "xno"; then -+ EXEEXT_FOR_BUILD='$(EXEEXT)' -+else -+ AC_CACHE_CHECK([for build system executable suffix], bfd_cv_build_exeext, -+ [rm -f conftest* -+ echo 'int main () { return 0; }' > conftest.c -+ bfd_cv_build_exeext= -+ ${CC_FOR_BUILD} -o conftest conftest.c 1>&5 2>&5 -+ for file in conftest.*; do -+ case $file in -+ *.c | *.o | *.obj | *.ilk | *.pdb) ;; -+ *) bfd_cv_build_exeext=`echo $file | sed -e s/conftest//` ;; -+ esac -+ done -+ rm -f conftest* -+ test x"${bfd_cv_build_exeext}" = x && bfd_cv_build_exeext=no]) -+ EXEEXT_FOR_BUILD="" -+ test x"${bfd_cv_build_exeext}" != xno && EXEEXT_FOR_BUILD=${bfd_cv_build_exeext} -+fi -+AC_SUBST(EXEEXT_FOR_BUILD)])dnl diff --git a/pkgs/by-name/bc/bc/default.nix b/pkgs/by-name/bc/bc/default.nix deleted file mode 100644 index e788fc5..0000000 --- a/pkgs/by-name/bc/bc/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ lib, stdenv, autoreconfHook, buildPackages -, fetchurl, flex, readline, ed, texinfo -}: - -stdenv.mkDerivation rec { - pname = "bc"; - version = "1.07.1"; - src = fetchurl { - url = "mirror://gnu/bc/${pname}-${version}.tar.gz"; - sha256 = "62adfca89b0a1c0164c2cdca59ca210c1d44c3ffc46daf9931cf4942664cb02a"; - }; - - configureFlags = [ "--with-readline" ]; - - # As of 1.07 cross-compilation is quite complicated as the build system wants - # to build a code generator, bc/fbc, on the build machine. - patches = [ ./cross-bc.patch ]; - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ - # Tools - autoreconfHook ed flex texinfo - # Libraries for build - buildPackages.readline buildPackages.ncurses - ]; - buildInputs = [ readline flex ]; - - doCheck = true; # not cross - - # Hack to make sure we never to the relaxation `$PATH` and hooks support for - # compatibility. This will be replaced with something clearer in a future - # masss-rebuild. - strictDeps = true; - - meta = with lib; { - description = "GNU software calculator"; - homepage = "https://www.gnu.org/software/bc/"; - license = licenses.gpl3Plus; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/bi/bind/default.nix b/pkgs/by-name/bi/bind/default.nix deleted file mode 100644 index 7829e48..0000000 --- a/pkgs/by-name/bi/bind/default.nix +++ /dev/null @@ -1,131 +0,0 @@ -{ 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 -}: - -stdenv.mkDerivation rec { - pname = "bind"; - version = "9.18.26"; - - src = fetchurl { - url = "https://downloads.isc.org/isc/bind9/${version}/${pname}-${version}.tar.xz"; - hash = "sha256-df/uUnMelgTISbZY3ynpJ/HE8B1aceo+vL62NwLLZlE="; - }; - - outputs = [ "out" "lib" "dev" "man" "dnsutils" "host" ]; - - 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)"; - - postInstall = '' - moveToOutput bin/bind9-config $dev - - moveToOutput bin/host $host - - moveToOutput bin/dig $dnsutils - moveToOutput bin/delv $dnsutils - moveToOutput bin/nslookup $dnsutils - moveToOutput bin/nsupdate $dnsutils - - for f in "$lib/lib/"*.la "$dev/bin/"bind*-config; do - sed -i "$f" -e 's|-L${openssl.dev}|-L${lib.getLib openssl}|g' - done - - cat <$out/etc/rndc.conf - include "/etc/bind/rndc.key"; - options { - default-key "rndc-key"; - default-server 127.0.0.1; - default-port 953; - }; - EOF - ''; - - enableParallelBuilding = true; - - doCheck = false; - # 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; - */ - 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 - ''; - - # passthru = { - # tests = { - # inherit (nixosTests) bind; - # prometheus-exporter = nixosTests.prometheus-exporters.bind; - # kubernetes-dns-single-node = nixosTests.kubernetes.dns-single-node; - # kubernetes-dns-multi-node = nixosTests.kubernetes.dns-multi-node; - # }; - - # updateScript = gitUpdater { - # # No nicer place to find latest stable release. - # url = "https://gitlab.isc.org/isc-projects/bind9.git"; - # rev-prefix = "v"; - # # Avoid unstable 9.19 releases. - # odd-unstable = true; - # }; - # }; - - meta = with lib; { - homepage = "https://www.isc.org/bind/"; - description = "Domain name server"; - license = licenses.mpl20; - changelog = "https://downloads.isc.org/isc/bind9/cur/${lib.versions.majorMinor version}/CHANGES"; - maintainers = with maintainers; [ globin ]; - platforms = platforms.unix; - - outputsToInstall = [ "out" "dnsutils" "host" ]; - }; -} diff --git a/pkgs/by-name/bi/bind/dont-keep-configure-flags.patch b/pkgs/by-name/bi/bind/dont-keep-configure-flags.patch deleted file mode 100644 index b1677da..0000000 --- a/pkgs/by-name/bi/bind/dont-keep-configure-flags.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff --git a/bin/named/include/named/globals.h b/bin/named/include/named/globals.h -index 82b632ef04..dedfd4d33b 100644 ---- a/bin/named/include/named/globals.h -+++ b/bin/named/include/named/globals.h -@@ -69,7 +69,9 @@ EXTERN const char *named_g_version INIT(PACKAGE_VERSION); - EXTERN const char *named_g_product INIT(PACKAGE_NAME); - EXTERN const char *named_g_description INIT(PACKAGE_DESCRIPTION); - EXTERN const char *named_g_srcid INIT(PACKAGE_SRCID); -+#if 0 - EXTERN const char *named_g_configargs INIT(PACKAGE_CONFIGARGS); -+#endif - EXTERN const char *named_g_builder INIT(PACKAGE_BUILDER); - EXTERN in_port_t named_g_port INIT(0); - EXTERN in_port_t named_g_tlsport INIT(0); -diff --git a/bin/named/main.c b/bin/named/main.c -index 9ad2d0e277..9729a2b3fc 100644 ---- a/bin/named/main.c -+++ b/bin/named/main.c -@@ -481,7 +481,9 @@ printversion(bool verbose) { - } - - printf("running on %s\n", named_os_uname()); -+#if 0 - printf("built by %s with %s\n", PACKAGE_BUILDER, PACKAGE_CONFIGARGS); -+#endif - #ifdef __clang__ - printf("compiled by CLANG %s\n", __VERSION__); - #else /* ifdef __clang__ */ -@@ -1027,9 +1029,11 @@ setup(void) { - NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE, "running on %s", - named_os_uname()); - -+#if 0 - isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL, - NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE, "built with %s", - PACKAGE_CONFIGARGS); -+#endif - - isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL, - NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE, diff --git a/pkgs/by-name/bi/bind/packages.nix b/pkgs/by-name/bi/bind/packages.nix deleted file mode 100644 index e43d4e8..0000000 --- a/pkgs/by-name/bi/bind/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - bind = callPackage ./. { }; - dnsutils = bind.dnsutils; - dig = lib.addMetaAttrs { mainProgram = "dig"; } bind.dnsutils; -} diff --git a/pkgs/by-name/bi/binutils/0001-Revert-libtool.m4-fix-nm-BSD-flag-detection.patch b/pkgs/by-name/bi/binutils/0001-Revert-libtool.m4-fix-nm-BSD-flag-detection.patch deleted file mode 100644 index f9c6e88..0000000 --- a/pkgs/by-name/bi/binutils/0001-Revert-libtool.m4-fix-nm-BSD-flag-detection.patch +++ /dev/null @@ -1,137 +0,0 @@ -From beca4a2c25ee86e4020f8b8bddc4d8e0ed3430b3 Mon Sep 17 00:00:00 2001 -From: Andrew Childs -Date: Tue, 22 Feb 2022 11:28:04 +0900 -Subject: [PATCH] Revert "libtool.m4: fix nm BSD flag detection" - -This reverts commit bef9ef8ca0f941d743c77cc55b5fe7985990b2a7. ---- - ChangeLog | 9 ------ - libtool.m4 | 88 ++++++++++++++++++++++++++---------------------------- - 2 files changed, 43 insertions(+), 54 deletions(-) - -diff --git a/ChangeLog b/ChangeLog -index 18e8b6835da..c12f07403c3 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -375,15 +375,6 @@ - - * src-release.sh (GDB_SUPPPORT_DIRS): Add libbacktrace. - --2021-09-27 Nick Alcock -- -- PR libctf/27967 -- * libtool.m4 (LT_PATH_NM): Try BSDization flags with a user-provided -- NM, if there is one. Run nm on itself, not on /dev/null, to avoid -- errors from nms that refuse to work on non-regular files. Remove -- other workarounds for this problem. Strip out blank lines from the -- nm output. -- - 2021-09-27 Nick Alcock - - PR libctf/27967 -diff --git a/libtool.m4 b/libtool.m4 -index a216bb14e99..7a711249304 100644 ---- a/libtool.m4 -+++ b/libtool.m4 -@@ -3200,55 +3200,53 @@ _LT_DECL([], [file_magic_cmd], [1], - - # LT_PATH_NM - # ---------- --# find the pathname to a BSD- or MS-compatible name lister, and any flags --# needed to make it compatible -+# find the pathname to a BSD- or MS-compatible name lister - AC_DEFUN([LT_PATH_NM], - [AC_REQUIRE([AC_PROG_CC])dnl - AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, - [if test -n "$NM"; then -- # Let the user override the nm to test. -- lt_nm_to_check="$NM" -- else -- lt_nm_to_check="${ac_tool_prefix}nm" -- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then -- lt_nm_to_check="$lt_nm_to_check nm" -- fi -- fi -- for lt_tmp_nm in $lt_nm_to_check; do -- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do -- IFS="$lt_save_ifs" -- test -z "$ac_dir" && ac_dir=. -- case "$lt_tmp_nm" in -- */*|*\\*) tmp_nm="$lt_tmp_nm";; -- *) tmp_nm="$ac_dir/$lt_tmp_nm";; -- esac -- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then -- # Check to see if the nm accepts a BSD-compat flag. -- # Adding the `sed 1q' prevents false positives on HP-UX, which says: -- # nm: unknown option "B" ignored -- case `"$tmp_nm" -B "$tmp_nm" 2>&1 | grep -v '^ *$' | sed '1q'` in -- *$tmp_nm*) lt_cv_path_NM="$tmp_nm -B" -- break -- ;; -- *) -- case `"$tmp_nm" -p "$tmp_nm" 2>&1 | grep -v '^ *$' | sed '1q'` in -- *$tmp_nm*) -- lt_cv_path_NM="$tmp_nm -p" -- break -- ;; -- *) -- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but -- continue # so that we can try to find one that supports BSD flags -- ;; -- esac -- ;; -- esac -- fi -- done -- IFS="$lt_save_ifs" -- done -- : ${lt_cv_path_NM=no}]) -+ # Let the user override the test. -+ lt_cv_path_NM="$NM" -+else -+ lt_nm_to_check="${ac_tool_prefix}nm" -+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then -+ lt_nm_to_check="$lt_nm_to_check nm" -+ fi -+ for lt_tmp_nm in $lt_nm_to_check; do -+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do -+ IFS="$lt_save_ifs" -+ test -z "$ac_dir" && ac_dir=. -+ tmp_nm="$ac_dir/$lt_tmp_nm" -+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then -+ # Check to see if the nm accepts a BSD-compat flag. -+ # Adding the `sed 1q' prevents false positives on HP-UX, which says: -+ # nm: unknown option "B" ignored -+ # Tru64's nm complains that /dev/null is an invalid object file -+ case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in -+ */dev/null* | *'Invalid file or object type'*) -+ lt_cv_path_NM="$tmp_nm -B" -+ break -+ ;; -+ *) -+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in -+ */dev/null*) -+ lt_cv_path_NM="$tmp_nm -p" -+ break -+ ;; -+ *) -+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but -+ continue # so that we can try to find one that supports BSD flags -+ ;; -+ esac -+ ;; -+ esac -+ fi -+ done -+ IFS="$lt_save_ifs" -+ done -+ : ${lt_cv_path_NM=no} -+fi]) - if test "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" - else --- -2.34.1 - diff --git a/pkgs/by-name/bi/binutils/0001-Revert-libtool.m4-fix-the-NM-nm-over-here-B-option-w.patch b/pkgs/by-name/bi/binutils/0001-Revert-libtool.m4-fix-the-NM-nm-over-here-B-option-w.patch deleted file mode 100644 index b5083d8..0000000 --- a/pkgs/by-name/bi/binutils/0001-Revert-libtool.m4-fix-the-NM-nm-over-here-B-option-w.patch +++ /dev/null @@ -1,42 +0,0 @@ -This reverts upstream commit caf606c90d55305967b9253447dda93d2f1835ab -until https://sourceware.org/PR29547 is fixed. - ---- a/libtool.m4 -+++ b/libtool.m4 -@@ -3214,31 +3214,25 @@ AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, - lt_nm_to_check="$lt_nm_to_check nm" - fi - fi -- for lt_tmp_nm in "$lt_nm_to_check"; do -+ for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. -- # Strip out any user-provided options from the nm to test twice, -- # the first time to test to see if nm (rather than its options) has -- # an explicit path, the second time to yield a file which can be -- # nm'ed itself. -- tmp_nm_path="`$ECHO "$lt_tmp_nm" | sed 's, -.*$,,'`" -- case "$tmp_nm_path" in -+ case "$lt_tmp_nm" in - */*|*\\*) tmp_nm="$lt_tmp_nm";; - *) tmp_nm="$ac_dir/$lt_tmp_nm";; - esac -- tmp_nm_to_nm="`$ECHO "$tmp_nm" | sed 's, -.*$,,'`" -- if test -f "$tmp_nm_to_nm" || test -f "$tmp_nm_to_nm$ac_exeext" ; then -+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored -- case `"$tmp_nm" -B "$tmp_nm_to_nm" 2>&1 | grep -v '^ *$' | sed '1q'` in -+ case `"$tmp_nm" -B "$tmp_nm" 2>&1 | grep -v '^ *$' | sed '1q'` in - *$tmp_nm*) lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) -- case `"$tmp_nm" -p "$tmp_nm_to_nm" 2>&1 | grep -v '^ *$' | sed '1q'` in -+ case `"$tmp_nm" -p "$tmp_nm" 2>&1 | grep -v '^ *$' | sed '1q'` in - *$tmp_nm*) - lt_cv_path_NM="$tmp_nm -p" - break diff --git a/pkgs/by-name/bi/binutils/0001-libtool.m4-update-macos-version-detection-block.patch b/pkgs/by-name/bi/binutils/0001-libtool.m4-update-macos-version-detection-block.patch deleted file mode 100644 index e601be3..0000000 --- a/pkgs/by-name/bi/binutils/0001-libtool.m4-update-macos-version-detection-block.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 33a8dc728eb5da3e1d3439c96810d1f6b2660b89 Mon Sep 17 00:00:00 2001 -From: Andrew Childs -Date: Tue, 22 Feb 2022 12:24:46 +0900 -Subject: [PATCH] libtool.m4: update macos version detection block - -Includes upstream change -9e8c882517082fe5755f2524d23efb02f1522490 ---- - libtool.m4 | 21 ++++++++------------- - 1 file changed, 8 insertions(+), 13 deletions(-) - -diff --git a/libtool.m4 b/libtool.m4 -index 7a711249304..f452efb4300 100644 ---- a/libtool.m4 -+++ b/libtool.m4 -@@ -996,20 +996,15 @@ _LT_EOF - ]) - case $host_os in - rhapsody* | darwin1.[[012]]) -- _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; -+ _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; - darwin1.*) -- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; -- darwin*) # darwin 5.x on -- # if running on 10.5 or later, the deployment target defaults -- # to the OS version, if on x86, and 10.4, the deployment -- # target defaults to 10.4. Don't you love it? -- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in -- 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) -- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; -- 10.[[012]][[,.]]*) -- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; -- 10.*) -- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; -+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; -+ darwin*) -+ case $MACOSX_DEPLOYMENT_TARGET,$host in -+ 10.[[012]],*|,*powerpc*-darwin[[5-8]]*) -+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; -+ *) -+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; - esac - ;; - esac --- -2.34.1 - diff --git a/pkgs/by-name/bi/binutils/2.38/0001-Revert-libtool.m4-fix-nm-BSD-flag-detection.patch b/pkgs/by-name/bi/binutils/2.38/0001-Revert-libtool.m4-fix-nm-BSD-flag-detection.patch deleted file mode 100644 index f9c6e88..0000000 --- a/pkgs/by-name/bi/binutils/2.38/0001-Revert-libtool.m4-fix-nm-BSD-flag-detection.patch +++ /dev/null @@ -1,137 +0,0 @@ -From beca4a2c25ee86e4020f8b8bddc4d8e0ed3430b3 Mon Sep 17 00:00:00 2001 -From: Andrew Childs -Date: Tue, 22 Feb 2022 11:28:04 +0900 -Subject: [PATCH] Revert "libtool.m4: fix nm BSD flag detection" - -This reverts commit bef9ef8ca0f941d743c77cc55b5fe7985990b2a7. ---- - ChangeLog | 9 ------ - libtool.m4 | 88 ++++++++++++++++++++++++++---------------------------- - 2 files changed, 43 insertions(+), 54 deletions(-) - -diff --git a/ChangeLog b/ChangeLog -index 18e8b6835da..c12f07403c3 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -375,15 +375,6 @@ - - * src-release.sh (GDB_SUPPPORT_DIRS): Add libbacktrace. - --2021-09-27 Nick Alcock -- -- PR libctf/27967 -- * libtool.m4 (LT_PATH_NM): Try BSDization flags with a user-provided -- NM, if there is one. Run nm on itself, not on /dev/null, to avoid -- errors from nms that refuse to work on non-regular files. Remove -- other workarounds for this problem. Strip out blank lines from the -- nm output. -- - 2021-09-27 Nick Alcock - - PR libctf/27967 -diff --git a/libtool.m4 b/libtool.m4 -index a216bb14e99..7a711249304 100644 ---- a/libtool.m4 -+++ b/libtool.m4 -@@ -3200,55 +3200,53 @@ _LT_DECL([], [file_magic_cmd], [1], - - # LT_PATH_NM - # ---------- --# find the pathname to a BSD- or MS-compatible name lister, and any flags --# needed to make it compatible -+# find the pathname to a BSD- or MS-compatible name lister - AC_DEFUN([LT_PATH_NM], - [AC_REQUIRE([AC_PROG_CC])dnl - AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, - [if test -n "$NM"; then -- # Let the user override the nm to test. -- lt_nm_to_check="$NM" -- else -- lt_nm_to_check="${ac_tool_prefix}nm" -- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then -- lt_nm_to_check="$lt_nm_to_check nm" -- fi -- fi -- for lt_tmp_nm in $lt_nm_to_check; do -- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do -- IFS="$lt_save_ifs" -- test -z "$ac_dir" && ac_dir=. -- case "$lt_tmp_nm" in -- */*|*\\*) tmp_nm="$lt_tmp_nm";; -- *) tmp_nm="$ac_dir/$lt_tmp_nm";; -- esac -- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then -- # Check to see if the nm accepts a BSD-compat flag. -- # Adding the `sed 1q' prevents false positives on HP-UX, which says: -- # nm: unknown option "B" ignored -- case `"$tmp_nm" -B "$tmp_nm" 2>&1 | grep -v '^ *$' | sed '1q'` in -- *$tmp_nm*) lt_cv_path_NM="$tmp_nm -B" -- break -- ;; -- *) -- case `"$tmp_nm" -p "$tmp_nm" 2>&1 | grep -v '^ *$' | sed '1q'` in -- *$tmp_nm*) -- lt_cv_path_NM="$tmp_nm -p" -- break -- ;; -- *) -- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but -- continue # so that we can try to find one that supports BSD flags -- ;; -- esac -- ;; -- esac -- fi -- done -- IFS="$lt_save_ifs" -- done -- : ${lt_cv_path_NM=no}]) -+ # Let the user override the test. -+ lt_cv_path_NM="$NM" -+else -+ lt_nm_to_check="${ac_tool_prefix}nm" -+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then -+ lt_nm_to_check="$lt_nm_to_check nm" -+ fi -+ for lt_tmp_nm in $lt_nm_to_check; do -+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do -+ IFS="$lt_save_ifs" -+ test -z "$ac_dir" && ac_dir=. -+ tmp_nm="$ac_dir/$lt_tmp_nm" -+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then -+ # Check to see if the nm accepts a BSD-compat flag. -+ # Adding the `sed 1q' prevents false positives on HP-UX, which says: -+ # nm: unknown option "B" ignored -+ # Tru64's nm complains that /dev/null is an invalid object file -+ case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in -+ */dev/null* | *'Invalid file or object type'*) -+ lt_cv_path_NM="$tmp_nm -B" -+ break -+ ;; -+ *) -+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in -+ */dev/null*) -+ lt_cv_path_NM="$tmp_nm -p" -+ break -+ ;; -+ *) -+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but -+ continue # so that we can try to find one that supports BSD flags -+ ;; -+ esac -+ ;; -+ esac -+ fi -+ done -+ IFS="$lt_save_ifs" -+ done -+ : ${lt_cv_path_NM=no} -+fi]) - if test "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" - else --- -2.34.1 - diff --git a/pkgs/by-name/bi/binutils/2.38/0001-libtool.m4-update-macos-version-detection-block.patch b/pkgs/by-name/bi/binutils/2.38/0001-libtool.m4-update-macos-version-detection-block.patch deleted file mode 100644 index e601be3..0000000 --- a/pkgs/by-name/bi/binutils/2.38/0001-libtool.m4-update-macos-version-detection-block.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 33a8dc728eb5da3e1d3439c96810d1f6b2660b89 Mon Sep 17 00:00:00 2001 -From: Andrew Childs -Date: Tue, 22 Feb 2022 12:24:46 +0900 -Subject: [PATCH] libtool.m4: update macos version detection block - -Includes upstream change -9e8c882517082fe5755f2524d23efb02f1522490 ---- - libtool.m4 | 21 ++++++++------------- - 1 file changed, 8 insertions(+), 13 deletions(-) - -diff --git a/libtool.m4 b/libtool.m4 -index 7a711249304..f452efb4300 100644 ---- a/libtool.m4 -+++ b/libtool.m4 -@@ -996,20 +996,15 @@ _LT_EOF - ]) - case $host_os in - rhapsody* | darwin1.[[012]]) -- _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; -+ _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; - darwin1.*) -- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; -- darwin*) # darwin 5.x on -- # if running on 10.5 or later, the deployment target defaults -- # to the OS version, if on x86, and 10.4, the deployment -- # target defaults to 10.4. Don't you love it? -- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in -- 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) -- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; -- 10.[[012]][[,.]]*) -- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; -- 10.*) -- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; -+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; -+ darwin*) -+ case $MACOSX_DEPLOYMENT_TARGET,$host in -+ 10.[[012]],*|,*powerpc*-darwin[[5-8]]*) -+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; -+ *) -+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; - esac - ;; - esac --- -2.34.1 - diff --git a/pkgs/by-name/bi/binutils/2.38/always-search-rpath.patch b/pkgs/by-name/bi/binutils/2.38/always-search-rpath.patch deleted file mode 100644 index 2e9956e..0000000 --- a/pkgs/by-name/bi/binutils/2.38/always-search-rpath.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/ld/genscripts.sh b/ld/genscripts.sh -index b6940d376d..0feb1adfd0 100755 ---- a/ld/genscripts.sh -+++ b/ld/genscripts.sh -@@ -125,6 +125,9 @@ if test "x$NATIVE" = "xyes" ; then - USE_LIBPATH=yes - fi - -+# TODO: why is this needed? -+USE_LIBPATH=yes -+ - # Set the library search path, for libraries named by -lfoo. - # If LIB_PATH is defined (e.g., by Makefile) and non-empty, it is used. - # Otherwise, the default is set here. diff --git a/pkgs/by-name/bi/binutils/2.38/build-components-separately.patch b/pkgs/by-name/bi/binutils/2.38/build-components-separately.patch deleted file mode 100644 index 0b4162d..0000000 --- a/pkgs/by-name/bi/binutils/2.38/build-components-separately.patch +++ /dev/null @@ -1,155 +0,0 @@ -diff --git a/bfd/configure.ac b/bfd/configure.ac -index fec067b2135..377e1f5443f 100644 ---- a/bfd/configure.ac -+++ b/bfd/configure.ac -@@ -292,30 +292,16 @@ AC_CACHE_CHECK(linker --as-needed support, bfd_cv_ld_as_needed, - - LT_LIB_M - --# When building a shared libbfd, link against the pic version of libiberty --# so that apps that use libbfd won't need libiberty just to satisfy any --# libbfd references. --# We can't do that if a pic libiberty is unavailable since including non-pic --# code would insert text relocations into libbfd. - SHARED_LIBADD= --SHARED_LDFLAGS= -+SHARED_LDFLAGS=-liberty - if test "$enable_shared" = "yes"; then --changequote(,)dnl -- x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'` --changequote([,])dnl -- if test -n "$x"; then -- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty" -- fi --fi -- - SHARED_LIBADD="$SHARED_LIBADD $LIBINTL" - --if test "$enable_shared" = "yes"; then - case "${host}" in - # More hacks to build DLLs on Windows. - *-*-cygwin*) - SHARED_LDFLAGS="-no-undefined" -- SHARED_LIBADD="-L`pwd`/../libiberty -liberty $SHARED_LIBADD -lcygwin -lkernel32" -+ SHARED_LIBADD="-liberty $SHARED_LIBADD -lcygwin -lkernel32" - ;; - esac - -diff --git a/opcodes/Makefile.am b/opcodes/Makefile.am -index 0e04b4c05c4..848a02662e7 100644 ---- a/opcodes/Makefile.am -+++ b/opcodes/Makefile.am -@@ -51,7 +51,7 @@ libopcodes_la_LDFLAGS += -rpath $(rpath_bfdlibdir) - endif - - # This is where bfd.h lives. --BFD_H = ../bfd/bfd.h -+BFD_H = $(BFDDIR)/bfd.h - - BUILD_LIBS = @BUILD_LIBS@ - BUILD_LIB_DEPS = @BUILD_LIB_DEPS@ -@@ -303,7 +303,7 @@ OFILES = @BFD_MACHINES@ - # development.sh is used to determine -Werror default. - CONFIG_STATUS_DEPENDENCIES = $(BFDDIR)/development.sh - --AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(INCDIR) -I$(BFDDIR) @HDEFINES@ @INCINTL@ -+AM_CPPFLAGS = -I. -I$(srcdir) -I$(INCDIR) -I$(BFDDIR) @HDEFINES@ @INCINTL@ - - disassemble.lo: disassemble.c - if am__fastdepCC -@@ -327,9 +327,18 @@ libopcodes_la_SOURCES = dis-buf.c disassemble.c dis-init.c --libopcodes_la_DEPENDENCIES = $(OFILES) @SHARED_DEPENDENCIES@ -+libopcodes_la_DEPENDENCIES = $(OFILES) @SHARED_DEPENDENCIES@ libtool-soversion - libopcodes_la_LIBADD = $(OFILES) @SHARED_LIBADD@ --libopcodes_la_LDFLAGS += -release `cat ../bfd/libtool-soversion` @SHARED_LDFLAGS@ -+libopcodes_la_LDFLAGS += -release `cat libtool-soversion` @SHARED_LDFLAGS@ - # Allow dependency tracking to work on all the source files. - EXTRA_libopcodes_la_SOURCES = $(LIBOPCODES_CFILES) - -+libtool-soversion: -+ @echo "creating $@" -+ bfd_soversion="$(VERSION)" ;\ -+ . $(BFDDIR)/development.sh ;\ -+ if test "$$development" = true ; then \ -+ bfd_soversion="$(VERSION).$${bfd_version_date}" ;\ -+ fi ;\ -+ echo "$${bfd_soversion}" > $@ -+ - # libtool will build .libs/libopcodes.a. We create libopcodes.a in - # the build directory so that we don't have to convert all the - # programs that use libopcodes.a simultaneously. This is a hack which -diff --git a/opcodes/configure.ac b/opcodes/configure.ac -index e564f067334..5da62a3d58b 100644 ---- a/opcodes/configure.ac -+++ b/opcodes/configure.ac -@@ -98,6 +98,8 @@ BFD_64_BIT - AC_SUBST(HDEFINES) - AC_PROG_INSTALL - -+GCC_HEADER_STDINT(bfd_stdint.h) -+ - AC_CHECK_DECLS([basename, stpcpy]) - - # Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do -@@ -148,44 +150,21 @@ AC_CACHE_CHECK(linker --as-needed support, bfd_cv_ld_as_needed, - - LT_LIB_M - --#Libs for generator progs --if test "x$cross_compiling" = "xno"; then -- BUILD_LIBS=../libiberty/libiberty.a -- BUILD_LIB_DEPS=$BUILD_LIBS --else -- # if cross-compiling, assume that the system provides -liberty -- # and that the version is compatible with new headers. -- BUILD_LIBS=-liberty -- BUILD_LIB_DEPS= --fi --BUILD_LIBS="$BUILD_LIBS $LIBINTL" --BUILD_LIB_DEPS="$BUILD_LIB_DEPS $LIBINTL_DEP" -+BUILD_LIBS="-liberty $LIBINTL" -+BUILD_LIB_DEPS="$LIBINTL_DEP" - - AC_SUBST(BUILD_LIBS) - AC_SUBST(BUILD_LIB_DEPS) - - # Horrible hacks to build DLLs on Windows and a shared library elsewhere. - SHARED_LDFLAGS= --SHARED_LIBADD= -+SHARED_LIBADD=-liberty - SHARED_DEPENDENCIES= --if test "$enable_shared" = "yes"; then --# When building a shared libopcodes, link against the pic version of libiberty --# so that apps that use libopcodes won't need libiberty just to satisfy any --# libopcodes references. --# We can't do that if a pic libiberty is unavailable since including non-pic --# code would insert text relocations into libopcodes. - # Note that linking against libbfd as we do here, which is itself linked - # against libiberty, may not satisfy all the libopcodes libiberty references - # since libbfd may not pull in the entirety of libiberty. - # Also, jam libintl into the right place in all of this: after libiberty, - # which uses it, but before -lcygwin, which it uses. --changequote(,)dnl -- x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'` --changequote([,])dnl -- if test -n "$x"; then -- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty" -- fi --fi - - SHARED_LIBADD="$SHARED_LIBADD $LIBINTL" - -@@ -193,11 +172,10 @@ if test "$enable_shared" = "yes"; then - case "${host}" in - *-*-cygwin*) - SHARED_LDFLAGS="-no-undefined" -- SHARED_LIBADD="-L`pwd`/../bfd -lbfd -L`pwd`/../libiberty -liberty $SHARED_LIBADD" -+ SHARED_LIBADD="-lbfd -liberty $SHARED_LIBADD" - ;; - *) -- SHARED_LIBADD="../bfd/libbfd.la ${SHARED_LIBADD}" -- SHARED_DEPENDENCIES="../bfd/libbfd.la" -+ SHARED_LIBADD="-lbfd ${SHARED_LIBADD}" - ;; - esac - diff --git a/pkgs/by-name/bi/binutils/2.38/default.nix b/pkgs/by-name/bi/binutils/2.38/default.nix deleted file mode 100644 index b916c2d..0000000 --- a/pkgs/by-name/bi/binutils/2.38/default.nix +++ /dev/null @@ -1,228 +0,0 @@ -{ 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 - # WARN: Enabling all targets increases output size to a multiple. -, 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; - - version = "2.38"; - - srcs = { - normal = fetchurl { - url = "mirror://gnu/binutils/binutils-${version}.tar.bz2"; - sha256 = "sha256-Bw7HHPB3pqWOC5WfBaCaNQFTeMLYpR6Q866r/jBZDvg="; - }; - vc4-none = fetchFromGitHub { - owner = "itszor"; - repo = "binutils-vc4"; - rev = "708acc851880dbeda1dd18aca4fd0a95b2573b36"; - sha256 = "1kdrz6fki55lm15rwwamn74fnqpy0zlafsida2zymk76n3656c63"; - }; - }; - - #INFO: The targetPrefix prepended to binary names to allow multiple binuntils - # on the PATH to both be usable. - targetPrefix = lib.optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-"; -in - -stdenv.mkDerivation { - pname = targetPrefix + "binutils"; - 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; - - # 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 - - - # 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 - - # 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 - ; - - 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 ] - ; - - 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 - - # 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"; - - hardeningDisable = [ "format" "pie" ]; - - configurePlatforms = [ "build" "host" "target" ]; - - configureFlags = [ - "--enable-64-bit-bfd" - "--with-system-zlib" - - "--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" - - # 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; - - # Remove on next bump. It's a vestige of past conditional. Stays here to avoid - # mass rebuild. - 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; - - # INFO: Otherwise it fails with: - # `./sanity.sh: line 36: $out/bin/size: not found` - doInstallCheck = (buildPlatform == hostPlatform) && (hostPlatform == targetPlatform); - - enableParallelBuilding = true; - - # passthru = { - # inherit targetPrefix; - # hasGold = enableGold; - # isGNU = true; - # }; - - meta = with lib; { - description = "Tools for manipulating binaries (linker, assembler, etc.)"; - longDescription = '' - The GNU Binutils are a collection of binary tools. The main - ones are `ld' (the GNU linker) and `as' (the GNU assembler). - They also include the BFD (Binary File Descriptor) library, - `gprof', `nm', `strip', etc. - ''; - homepage = "https://www.gnu.org/software/binutils/"; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ ericson2314 lovesegfault ]; - platforms = platforms.unix; - - # INFO: Give binutils a lower priority than gcc-wrapper to prevent a - # collision due to the ld/as wrappers/symlinks in the latter. - priority = 10; - }; -} diff --git a/pkgs/by-name/bi/binutils/2.38/deterministic-temp-prefixes.patch b/pkgs/by-name/bi/binutils/2.38/deterministic-temp-prefixes.patch deleted file mode 100644 index 3c27340..0000000 --- a/pkgs/by-name/bi/binutils/2.38/deterministic-temp-prefixes.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 99852365513266afdd793289813e8e565186c9e6 Mon Sep 17 00:00:00 2001 -From: Nick Clifton -Date: Wed, 23 Mar 2022 11:39:49 +0000 -Subject: [PATCH] dlltool: Use the output name as basis for deterministic temp - prefixes - - PR 28885 - * dlltool.c (main): use imp_name rather than dll_name when - generating a temporary file name. ---- - binutils/ChangeLog | 9 +++++++++ - binutils/dlltool.c | 7 ++++--- - 2 files changed, 13 insertions(+), 3 deletions(-) - -diff --git a/binutils/dlltool.c b/binutils/dlltool.c -index d95bf3f5470..89871510b45 100644 ---- a/binutils/dlltool.c -+++ b/binutils/dlltool.c -@@ -3992,10 +3992,11 @@ main (int ac, char **av) - if (tmp_prefix == NULL) - { - /* If possible use a deterministic prefix. */ -- if (dll_name) -+ if (imp_name || delayimp_name) - { -- tmp_prefix = xmalloc (strlen (dll_name) + 2); -- sprintf (tmp_prefix, "%s_", dll_name); -+ const char *input = imp_name ? imp_name : delayimp_name; -+ tmp_prefix = xmalloc (strlen (input) + 2); -+ sprintf (tmp_prefix, "%s_", input); - for (i = 0; tmp_prefix[i]; i++) - if (!ISALNUM (tmp_prefix[i])) - tmp_prefix[i] = '_'; --- -2.31.1 - diff --git a/pkgs/by-name/bi/binutils/2.38/deterministic.patch b/pkgs/by-name/bi/binutils/2.38/deterministic.patch deleted file mode 100644 index 736e0ac..0000000 --- a/pkgs/by-name/bi/binutils/2.38/deterministic.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur orig/binutils-2.23.1/ld/ldlang.c binutils-2.23.1/ld/ldlang.c ---- orig/ld/ldlang.c -+++ new/ld/ldlang.c -@@ -3095,6 +3095,8 @@ - ldfile_output_machine)) - einfo (_("%P%F:%s: can not set architecture: %E\n"), name); - -+ link_info.output_bfd->flags |= BFD_DETERMINISTIC_OUTPUT; -+ - link_info.hash = bfd_link_hash_table_create (link_info.output_bfd); - if (link_info.hash == NULL) - einfo (_("%P%F: can not create hash table: %E\n")); diff --git a/pkgs/by-name/bi/binutils/2.38/libbfd.nix b/pkgs/by-name/bi/binutils/2.38/libbfd.nix deleted file mode 100644 index feac15b..0000000 --- a/pkgs/by-name/bi/binutils/2.38/libbfd.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ 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" ]; - - patches = binutils-unwrapped_2_38.patches ++ [ - ./build-components-separately.patch - (fetchpatch { - url = "https://raw.githubusercontent.com/mxe/mxe/e1d4c144ee1994f70f86cf7fd8168fe69bd629c6/src/bfd-1-disable-subdir-doc.patch"; - sha256 = "0pzb3i74d1r7lhjan376h59a7kirw15j7swwm8pz3zy9lkdqkj6q"; - }) - ]; - - # We just want to build libbfd - postPatch = '' - cd bfd - ''; - - postAutoreconf = '' - echo "Updating config.guess and config.sub from ${gnu-config}" - cp -f ${gnu-config}/config.{guess,sub} ../ - ''; - - # We update these ourselves - dontUpdateAutotoolsGnuConfigScripts = true; - - strictDeps = true; - nativeBuildInputs = [ autoreconfHook bison ]; - buildInputs = [ libiberty zlib ] ++ lib.optionals stdenv.isDarwin [ libintl ]; - - configurePlatforms = [ "build" "host" ]; - configureFlags = [ - "--enable-targets=all" "--enable-64-bit-bfd" - "--enable-install-libbfd" - "--with-system-zlib" - ] ++ lib.optional (!stdenv.hostPlatform.isStatic) "--enable-shared"; - - enableParallelBuilding = true; - - meta = with lib; { - description = "A library for manipulating containers of machine code"; - longDescription = '' - BFD is a library which provides a single interface to read and write - object files, executables, archive files, and core files in any format. - It is associated with GNU Binutils, and elsewhere often distributed with - it. - ''; - homepage = "https://www.gnu.org/software/binutils/"; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ ericson2314 ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/bi/binutils/2.38/libopcodes.nix b/pkgs/by-name/bi/binutils/2.38/libopcodes.nix deleted file mode 100644 index 16b3695..0000000 --- a/pkgs/by-name/bi/binutils/2.38/libopcodes.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ 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 - ]; - - # We just want to build libopcodes - postPatch = '' - cd opcodes - find . ../include/opcode -type f -exec sed {} -i -e 's/"bfd.h"//' \; - ''; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ autoreconfHook bison ]; - buildInputs = [ libiberty ]; - # dis-asm.h includes bfd.h - propagatedBuildInputs = [ libbfd_2_38 ]; - - configurePlatforms = [ "build" "host" ]; - configureFlags = [ - "--enable-targets=all" "--enable-64-bit-bfd" - "--enable-install-libbfd" - "--enable-shared" - ]; - - enableParallelBuilding = true; - - meta = with lib; { - description = "A library from binutils for manipulating machine code"; - homepage = "https://www.gnu.org/software/binutils/"; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ ericson2314 ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/bi/binutils/2.38/mips64-default-n64.patch b/pkgs/by-name/bi/binutils/2.38/mips64-default-n64.patch deleted file mode 100644 index 0058127..0000000 --- a/pkgs/by-name/bi/binutils/2.38/mips64-default-n64.patch +++ /dev/null @@ -1,82 +0,0 @@ ---- a/bfd/config.bfd -+++ b/bfd/config.bfd -@@ -927,11 +927,21 @@ case "${targ}" in - targ_defvec=mips_elf32_be_vec - targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec" - ;; -- mips64*el-*-linux*) -+ mips*64*el-*-linux*-gnuabi64) -+ targ_defvec=mips_elf64_trad_le_vec -+ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec" -+ want64=true -+ ;; -+ mips*64*-*-linux*-gnuabi64) -+ targ_defvec=mips_elf64_trad_be_vec -+ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec" -+ want64=true -+ ;; -+ mips*64*el-*-linux*) - targ_defvec=mips_elf32_ntrad_le_vec - targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec" - ;; -- mips64*-*-linux*) -+ mips*64*-*-linux*) - targ_defvec=mips_elf32_ntrad_be_vec - targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec" - ;; ---- a/binutils/testsuite/binutils-all/mips/mips-note-2-n32.d -+++ b/binutils/testsuite/binutils-all/mips/mips-note-2-n32.d -@@ -1,4 +1,5 @@ - #PROG: objcopy -+#as: -n32 - #readelf: --notes --wide - #objcopy: --merge-notes - #name: MIPS merge notes section (n32) ---- a/gas/configure -+++ b/gas/configure -@@ -12167,6 +12167,9 @@ _ACEOF - esac - # Decide which ABI to target by default. - case ${target} in -+ mips*64*-linux-gnuabi64) -+ mips_default_abi=N64_ABI -+ ;; - mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \ - | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*) - mips_default_abi=N32_ABI ---- a/gas/configure.ac -+++ b/gas/configure.ac -@@ -384,6 +384,9 @@ changequote([,])dnl - esac - # Decide which ABI to target by default. - case ${target} in -+ mips*64*-linux-gnuabi64) -+ mips_default_abi=N64_ABI -+ ;; - mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \ - | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*) - mips_default_abi=N32_ABI ---- a/ld/configure.tgt -+++ b/ld/configure.tgt -@@ -543,11 +543,19 @@ mips*-*-vxworks*) targ_emul=elf32ebmipvx - ;; - mips*-*-windiss) targ_emul=elf32mipswindiss - ;; --mips64*el-*-linux-*) targ_emul=elf32ltsmipn32 -+mips*64*el-*-linux-gnuabi64) targ_emul=elf64ltsmip -+ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32ltsmip elf32btsmip elf64btsmip" -+ targ_extra_libpath=$targ_extra_emuls -+ ;; -+mips*64*el-*-linux-*) targ_emul=elf32ltsmipn32 - targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip" - targ_extra_libpath=$targ_extra_emuls - ;; --mips64*-*-linux-*) targ_emul=elf32btsmipn32 -+mips*64*-*-linux-gnuabi64) targ_emul=elf64btsmip -+ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip elf64ltsmip" -+ targ_extra_libpath=$targ_extra_emuls -+ ;; -+mips*64*-*-linux-*) targ_emul=elf32btsmipn32 - targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip" - targ_extra_libpath=$targ_extra_emuls - ;; diff --git a/pkgs/by-name/bi/binutils/2.38/ppc-make-machine-less-strict.patch b/pkgs/by-name/bi/binutils/2.38/ppc-make-machine-less-strict.patch deleted file mode 100644 index c245241..0000000 --- a/pkgs/by-name/bi/binutils/2.38/ppc-make-machine-less-strict.patch +++ /dev/null @@ -1,51 +0,0 @@ -From cebc89b9328eab994f6b0314c263f94e7949a553 Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Mon, 21 Feb 2022 10:58:57 +1030 -Subject: [PATCH] binutils 2.38 vs. ppc32 linux kernel - -Commit b25f942e18d6 made .machine more strict. Weaken it again. - - * config/tc-ppc.c (ppc_machine): Treat an early .machine specially, - keeping sticky options to work around gcc bugs. ---- - gas/config/tc-ppc.c | 25 ++++++++++++++++++++++++- - 1 file changed, 24 insertions(+), 1 deletion(-) - -diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c -index 054f9c72161..89bc7d3f9b9 100644 ---- a/gas/config/tc-ppc.c -+++ b/gas/config/tc-ppc.c -@@ -5965,7 +5965,30 @@ ppc_machine (int ignore ATTRIBUTE_UNUSED) - options do not count as a new machine, instead they add - to currently selected opcodes. */ - ppc_cpu_t machine_sticky = 0; -- new_cpu = ppc_parse_cpu (ppc_cpu, &machine_sticky, cpu_string); -+ /* Unfortunately, some versions of gcc emit a .machine -+ directive very near the start of the compiler's assembly -+ output file. This is bad because it overrides user -Wa -+ cpu selection. Worse, there are versions of gcc that -+ emit the *wrong* cpu, not even respecting the -mcpu given -+ to gcc. See gcc pr101393. And to compound the problem, -+ as of 20220222 gcc doesn't pass the correct cpu option to -+ gas on the command line. See gcc pr59828. Hack around -+ this by keeping sticky options for an early .machine. */ -+ asection *sec; -+ for (sec = stdoutput->sections; sec != NULL; sec = sec->next) -+ { -+ segment_info_type *info = seg_info (sec); -+ /* Are the frags for this section perturbed from their -+ initial state? Even .align will count here. */ -+ if (info != NULL -+ && (info->frchainP->frch_root != info->frchainP->frch_last -+ || info->frchainP->frch_root->fr_type != rs_fill -+ || info->frchainP->frch_root->fr_fix != 0)) -+ break; -+ } -+ new_cpu = ppc_parse_cpu (ppc_cpu, -+ sec == NULL ? &sticky : &machine_sticky, -+ cpu_string); - if (new_cpu != 0) - ppc_cpu = new_cpu; - else --- -2.31.1 diff --git a/pkgs/by-name/bi/binutils/2.38/support-ios.patch b/pkgs/by-name/bi/binutils/2.38/support-ios.patch deleted file mode 100644 index 74e56d1..0000000 --- a/pkgs/by-name/bi/binutils/2.38/support-ios.patch +++ /dev/null @@ -1,168 +0,0 @@ -diff --git a/bfd/config.bfd b/bfd/config.bfd -index f04a993f06..1e24a9d030 100644 ---- a/bfd/config.bfd -+++ b/bfd/config.bfd -@@ -238,7 +238,7 @@ case "${targ}" in - - # START OF targmatch.h - #ifdef BFD64 -- aarch64-*-darwin*) -+ aarch64-*-darwin* | aarch64-*-ios*) - targ_defvec=aarch64_mach_o_vec - targ_selvecs="arm_mach_o_vec mach_o_le_vec mach_o_be_vec mach_o_fat_vec" - targ_archs="$targ_archs bfd_i386_arch bfd_powerpc_arch bfd_rs6000_arch" -@@ -358,7 +358,7 @@ case "${targ}" in - targ_selvecs=arc_elf32_be_vec - ;; - -- arm-*-darwin*) -+ arm-*-darwin* | arm-*-ios*) - targ_defvec=arm_mach_o_vec - targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec" - targ_archs="$targ_archs bfd_i386_arch bfd_powerpc_arch bfd_rs6000_arch" -@@ -678,7 +678,7 @@ case "${targ}" in - i[3-7]86-*-aix*) - targ_defvec=i386_coff_vec - ;; -- i[3-7]86-*-darwin* | i[3-7]86-*-macos10* | i[3-7]86-*-rhapsody*) -+ i[3-7]86-*-darwin* | i[3-7]86-*-ios* | i[3-7]86-*-macos10* | i[3-7]86-*-rhapsody*) - targ_defvec=i386_mach_o_vec - targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec" - targ64_selvecs=x86_64_mach_o_vec -@@ -762,7 +762,7 @@ case "${targ}" in - targ_defvec=x86_64_elf64_cloudabi_vec - want64=true - ;; -- x86_64-*-darwin*) -+ x86_64-*-darwin* | x86_64-*-ios*) - targ_defvec=x86_64_mach_o_vec - targ_selvecs="i386_mach_o_vec mach_o_le_vec mach_o_be_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec" - targ_archs="$targ_archs bfd_powerpc_arch bfd_rs6000_arch" -@@ -1402,7 +1402,7 @@ case "${targ}" in - targ_selvecs="powerpc_elf32_le_vec powerpc_boot_vec" - targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec" - ;; -- powerpc-*-darwin* | powerpc-*-macos10* | powerpc-*-rhapsody*) -+ powerpc-*-darwin* | powerpc-*-ios* | powerpc-*-macos10* | powerpc-*-rhapsody*) - targ_defvec=mach_o_be_vec - targ_selvecs="mach_o_be_vec mach_o_le_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec" - targ_archs="$targ_archs bfd_i386_arch" -diff --git a/configure.ac b/configure.ac -index aae94501e4..2cceb4dad4 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -510,7 +510,7 @@ if test x$enable_libgomp = x ; then - ;; - *-*-solaris2* | *-*-hpux11*) - ;; -- *-*-darwin* | *-*-aix*) -+ *-*-darwin* | *-*-ios* | *-*-aix*) - ;; - nvptx*-*-*) - ;; -@@ -700,13 +700,13 @@ esac - - # Disable libffi for some systems. - case "${target}" in -- powerpc-*-darwin*) -+ powerpc-*-darwin* | powerpc-*-ios*) - ;; -- i[[3456789]]86-*-darwin*) -+ i[[3456789]]86-*-darwin* | i[[3456789]]86-*-ios*) - ;; -- x86_64-*-darwin[[912]]*) -+ x86_64-*-darwin[[912]]* | x86_64-*-ios[[912]]*) - ;; -- *-*-darwin*) -+ *-*-darwin* | *-*-ios*) - noconfigdirs="$noconfigdirs target-libffi" - ;; - *-*-netware*) -@@ -788,7 +788,7 @@ esac - # Disable the go frontend on systems where it is known to not work. Please keep - # this in sync with contrib/config-list.mk. - case "${target}" in --*-*-darwin* | *-*-cygwin* | *-*-mingw*) -+*-*-darwin* | *-*-ios* | *-*-cygwin* | *-*-mingw*) - unsupported_languages="$unsupported_languages go" - ;; - esac -@@ -797,7 +797,7 @@ esac - # For testing, you can easily override this with --enable-libgo. - if test x$enable_libgo = x; then - case "${target}" in -- *-*-darwin*) -+ *-*-darwin* | *-*-ios*) - # PR 46986 - noconfigdirs="$noconfigdirs target-libgo" - ;; -@@ -916,27 +916,27 @@ esac - case "${target}" in - *-*-chorusos) - ;; -- aarch64-*-darwin*) -+ aarch64-*-darwin* | aarch64-*-ios*) - noconfigdirs="$noconfigdirs ld gas gdb gprof" - noconfigdirs="$noconfigdirs sim target-rda" - ;; -- arm-*-darwin*) -+ arm-*-darwin* | arm-*-ios*) - noconfigdirs="$noconfigdirs ld gas gdb gprof" - noconfigdirs="$noconfigdirs sim target-rda" - ;; -- powerpc-*-darwin*) -+ powerpc-*-darwin* | powerpc-*-ios*) - noconfigdirs="$noconfigdirs ld gas gdb gprof" - noconfigdirs="$noconfigdirs sim target-rda" - ;; -- i[[3456789]]86-*-darwin*) -+ i[[3456789]]86-*-darwin* | i[[3456789]]86-*-ios*) - noconfigdirs="$noconfigdirs ld gprof" - noconfigdirs="$noconfigdirs sim target-rda" - ;; -- x86_64-*-darwin[[912]]*) -+ x86_64-*-darwin[[912]]* | x86_64-*-ios[[912]]*) - noconfigdirs="$noconfigdirs ld gas gprof" - noconfigdirs="$noconfigdirs sim target-rda" - ;; -- *-*-darwin*) -+ *-*-darwin* | *-*-ios*) - noconfigdirs="$noconfigdirs ld gas gdb gprof" - noconfigdirs="$noconfigdirs sim target-rda" - ;; -@@ -1226,7 +1226,7 @@ case "${host}" in - hppa*-*) - host_makefile_frag="config/mh-pa" - ;; -- *-*-darwin*) -+ *-*-darwin* | *-*-ios*) - host_makefile_frag="config/mh-darwin" - ;; - powerpc-*-aix*) -@@ -1697,7 +1697,7 @@ ACX_ELF_TARGET_IFELSE([# ELF platforms build the lto-plugin always. - build_lto_plugin=yes - ],[if test x"$default_enable_lto" = x"yes" ; then - case $target in -- *-apple-darwin[[912]]* | *-cygwin* | *-mingw* | *djgpp*) ;; -+ *-apple-darwin[[912]]* | *-apple-ios[[912]]* | *-cygwin* | *-mingw* | *djgpp*) ;; - # On other non-ELF platforms, LTO has yet to be validated. - *) enable_lto=no ;; - esac -@@ -1708,7 +1708,7 @@ ACX_ELF_TARGET_IFELSE([# ELF platforms build the lto-plugin always. - # warn during gcc/ subconfigure; unless you're bootstrapping with - # -flto it won't be needed until after installation anyway. - case $target in -- *-cygwin* | *-mingw* | *-apple-darwin* | *djgpp*) ;; -+ *-cygwin* | *-mingw* | *-apple-darwin* | *-apple-ios* | *djgpp*) ;; - *) if test x"$enable_lto" = x"yes"; then - AC_MSG_ERROR([LTO support is not enabled for this target.]) - fi -@@ -2590,7 +2590,7 @@ rm -f conftest* - # Decide which environment variable is used to find dynamic libraries. - case "${host}" in - *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;; -- *-*-darwin*) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;; -+ *-*-darwin* | *-*-ios* ) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;; - *-*-mingw* | *-*-cygwin ) RPATH_ENVVAR=PATH ;; - *) RPATH_ENVVAR=LD_LIBRARY_PATH ;; - esac diff --git a/pkgs/by-name/bi/binutils/2.38/windres-locate-gcc.patch b/pkgs/by-name/bi/binutils/2.38/windres-locate-gcc.patch deleted file mode 100644 index 721667c..0000000 --- a/pkgs/by-name/bi/binutils/2.38/windres-locate-gcc.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff --git a/binutils/resrc.c b/binutils/resrc.c -index a875c3a4..0411d047 100644 ---- a/binutils/resrc.c -+++ b/binutils/resrc.c -@@ -521,7 +521,13 @@ read_rc_file (const char *filename, const char *preprocessor, - - cpp_pipe = 0; - -- if (dash) -+ /* Nixpkgs specific : look first at the prefixed path -+ ( there should be no gcc in the binutils folder ) */ -+ if (slash && dash) { -+ cpp_pipe = look_for_default(cmd, slash + 1, dash - slash, preprocargs, filename); -+ } -+ -+ if (dash && ! cpp_pipe) - { - /* First, try looking for a prefixed gcc in the windres - directory, with the same prefix as windres */ diff --git a/pkgs/by-name/bi/binutils/always-search-rpath.patch b/pkgs/by-name/bi/binutils/always-search-rpath.patch deleted file mode 100644 index 2e9956e..0000000 --- a/pkgs/by-name/bi/binutils/always-search-rpath.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/ld/genscripts.sh b/ld/genscripts.sh -index b6940d376d..0feb1adfd0 100755 ---- a/ld/genscripts.sh -+++ b/ld/genscripts.sh -@@ -125,6 +125,9 @@ if test "x$NATIVE" = "xyes" ; then - USE_LIBPATH=yes - fi - -+# TODO: why is this needed? -+USE_LIBPATH=yes -+ - # Set the library search path, for libraries named by -lfoo. - # If LIB_PATH is defined (e.g., by Makefile) and non-empty, it is used. - # Otherwise, the default is set here. diff --git a/pkgs/by-name/bi/binutils/avr-size.patch b/pkgs/by-name/bi/binutils/avr-size.patch deleted file mode 100644 index ae78228..0000000 --- a/pkgs/by-name/bi/binutils/avr-size.patch +++ /dev/null @@ -1,435 +0,0 @@ -diff --git a/binutils/size.c b/binutils/size.c -index 3697087714..f99d45a6bf 100644 ---- a/binutils/size.c -+++ b/binutils/size.c -@@ -51,7 +51,8 @@ enum output_format - { - FORMAT_BERKLEY, - FORMAT_SYSV, -- FORMAT_GNU -+ FORMAT_GNU, -+ FORMAT_AVR - }; - static enum output_format selected_output_format = - #if BSD_DEFAULT -@@ -74,6 +75,246 @@ static bfd_size_type total_textsize; - /* Program exit status. */ - static int return_code = 0; - -+ -+/* AVR Size specific stuff */ -+ -+#define AVR64 64UL -+#define AVR128 128UL -+#define AVR256 256UL -+#define AVR512 512UL -+#define AVR1K 1024UL -+#define AVR2K 2048UL -+#define AVR4K 4096UL -+#define AVR8K 8192UL -+#define AVR16K 16384UL -+#define AVR20K 20480UL -+#define AVR24K 24576UL -+#define AVR32K 32768UL -+#define AVR36K 36864UL -+#define AVR40K 40960UL -+#define AVR64K 65536UL -+#define AVR68K 69632UL -+#define AVR128K 131072UL -+#define AVR136K 139264UL -+#define AVR200K 204800UL -+#define AVR256K 262144UL -+#define AVR264K 270336UL -+ -+typedef struct -+{ -+ char *name; -+ long flash; -+ long ram; -+ long eeprom; -+} avr_device_t; -+ -+avr_device_t avr[] = -+{ -+ {"atxmega256a3", AVR264K, AVR16K, AVR4K}, -+ {"atxmega256a3b", AVR264K, AVR16K, AVR4K}, -+ {"atxmega256d3", AVR264K, AVR16K, AVR4K}, -+ -+ {"atmega2560", AVR256K, AVR8K, AVR4K}, -+ {"atmega2561", AVR256K, AVR8K, AVR4K}, -+ -+ {"atxmega192a3", AVR200K, AVR16K, AVR2K}, -+ {"atxmega192d3", AVR200K, AVR16K, AVR2K}, -+ -+ {"atxmega128a1", AVR136K, AVR8K, AVR2K}, -+ {"atxmega128a1u", AVR136K, AVR8K, AVR2K}, -+ {"atxmega128a3", AVR136K, AVR8K, AVR2K}, -+ {"atxmega128d3", AVR136K, AVR8K, AVR2K}, -+ -+ {"at43usb320", AVR128K, 608UL, 0UL}, -+ {"at90can128", AVR128K, AVR4K, AVR4K}, -+ {"at90usb1286", AVR128K, AVR8K, AVR4K}, -+ {"at90usb1287", AVR128K, AVR8K, AVR4K}, -+ {"atmega128", AVR128K, AVR4K, AVR4K}, -+ {"atmega1280", AVR128K, AVR8K, AVR4K}, -+ {"atmega1281", AVR128K, AVR8K, AVR4K}, -+ {"atmega1284p", AVR128K, AVR16K, AVR4K}, -+ {"atmega128rfa1", AVR128K, AVR16K, AVR4K}, -+ {"atmega103", AVR128K, 4000UL, AVR4K}, -+ -+ {"atxmega64a1", AVR68K, AVR4K, AVR2K}, -+ {"atxmega64a1u", AVR68K, AVR4K, AVR2K}, -+ {"atxmega64a3", AVR68K, AVR4K, AVR2K}, -+ {"atxmega64d3", AVR68K, AVR4K, AVR2K}, -+ -+ {"at90can64", AVR64K, AVR4K, AVR2K}, -+ {"at90scr100", AVR64K, AVR4K, AVR2K}, -+ {"at90usb646", AVR64K, AVR4K, AVR2K}, -+ {"at90usb647", AVR64K, AVR4K, AVR2K}, -+ {"atmega64", AVR64K, AVR4K, AVR2K}, -+ {"atmega640", AVR64K, AVR8K, AVR4K}, -+ {"atmega644", AVR64K, AVR4K, AVR2K}, -+ {"atmega644a", AVR64K, AVR4K, AVR2K}, -+ {"atmega644p", AVR64K, AVR4K, AVR2K}, -+ {"atmega644pa", AVR64K, AVR4K, AVR2K}, -+ {"atmega645", AVR64K, AVR4K, AVR2K}, -+ {"atmega645a", AVR64K, AVR4K, AVR2K}, -+ {"atmega645p", AVR64K, AVR4K, AVR2K}, -+ {"atmega6450", AVR64K, AVR4K, AVR2K}, -+ {"atmega6450a", AVR64K, AVR4K, AVR2K}, -+ {"atmega6450p", AVR64K, AVR4K, AVR2K}, -+ {"atmega649", AVR64K, AVR4K, AVR2K}, -+ {"atmega649a", AVR64K, AVR4K, AVR2K}, -+ {"atmega649p", AVR64K, AVR4K, AVR2K}, -+ {"atmega6490", AVR64K, AVR4K, AVR2K}, -+ {"atmega6490a", AVR64K, AVR4K, AVR2K}, -+ {"atmega6490p", AVR64K, AVR4K, AVR2K}, -+ {"atmega64c1", AVR64K, AVR4K, AVR2K}, -+ {"atmega64hve", AVR64K, AVR4K, AVR1K}, -+ {"atmega64m1", AVR64K, AVR4K, AVR2K}, -+ {"m3000", AVR64K, AVR4K, 0UL}, -+ -+ {"atmega406", AVR40K, AVR2K, AVR512}, -+ -+ {"atxmega32a4", AVR36K, AVR4K, AVR1K}, -+ {"atxmega32d4", AVR36K, AVR4K, AVR1K}, -+ -+ {"at90can32", AVR32K, AVR2K, AVR1K}, -+ {"at94k", AVR32K, AVR4K, 0UL}, -+ {"atmega32", AVR32K, AVR2K, AVR1K}, -+ {"atmega323", AVR32K, AVR2K, AVR1K}, -+ {"atmega324a", AVR32K, AVR2K, AVR1K}, -+ {"atmega324p", AVR32K, AVR2K, AVR1K}, -+ {"atmega324pa", AVR32K, AVR2K, AVR1K}, -+ {"atmega325", AVR32K, AVR2K, AVR1K}, -+ {"atmega325a", AVR32K, AVR2K, AVR1K}, -+ {"atmega325p", AVR32K, AVR2K, AVR1K}, -+ {"atmega3250", AVR32K, AVR2K, AVR1K}, -+ {"atmega3250a", AVR32K, AVR2K, AVR1K}, -+ {"atmega3250p", AVR32K, AVR2K, AVR1K}, -+ {"atmega328", AVR32K, AVR2K, AVR1K}, -+ {"atmega328p", AVR32K, AVR2K, AVR1K}, -+ {"atmega329", AVR32K, AVR2K, AVR1K}, -+ {"atmega329a", AVR32K, AVR2K, AVR1K}, -+ {"atmega329p", AVR32K, AVR2K, AVR1K}, -+ {"atmega329pa", AVR32K, AVR2K, AVR1K}, -+ {"atmega3290", AVR32K, AVR2K, AVR1K}, -+ {"atmega3290a", AVR32K, AVR2K, AVR1K}, -+ {"atmega3290p", AVR32K, AVR2K, AVR1K}, -+ {"atmega32hvb", AVR32K, AVR2K, AVR1K}, -+ {"atmega32c1", AVR32K, AVR2K, AVR1K}, -+ {"atmega32hvb", AVR32K, AVR2K, AVR1K}, -+ {"atmega32m1", AVR32K, AVR2K, AVR1K}, -+ {"atmega32u2", AVR32K, AVR1K, AVR1K}, -+ {"atmega32u4", AVR32K, 2560UL, AVR1K}, -+ {"atmega32u6", AVR32K, 2560UL, AVR1K}, -+ -+ {"at43usb355", AVR24K, 1120UL, 0UL}, -+ -+ {"atxmega16a4", AVR20K, AVR2K, AVR1K}, -+ {"atxmega16d4", AVR20K, AVR2K, AVR1K}, -+ -+ {"at76c711", AVR16K, AVR2K, 0UL}, -+ {"at90pwm216", AVR16K, AVR1K, AVR512}, -+ {"at90pwm316", AVR16K, AVR1K, AVR512}, -+ {"at90usb162", AVR16K, AVR512, AVR512}, -+ {"atmega16", AVR16K, AVR1K, AVR512}, -+ {"atmega16a", AVR16K, AVR1K, AVR512}, -+ {"atmega161", AVR16K, AVR1K, AVR512}, -+ {"atmega162", AVR16K, AVR1K, AVR512}, -+ {"atmega163", AVR16K, AVR1K, AVR512}, -+ {"atmega164", AVR16K, AVR1K, AVR512}, -+ {"atmega164a", AVR16K, AVR1K, AVR512}, -+ {"atmega164p", AVR16K, AVR1K, AVR512}, -+ {"atmega165a", AVR16K, AVR1K, AVR512}, -+ {"atmega165", AVR16K, AVR1K, AVR512}, -+ {"atmega165p", AVR16K, AVR1K, AVR512}, -+ {"atmega168", AVR16K, AVR1K, AVR512}, -+ {"atmega168a", AVR16K, AVR1K, AVR512}, -+ {"atmega168p", AVR16K, AVR1K, AVR512}, -+ {"atmega169", AVR16K, AVR1K, AVR512}, -+ {"atmega169a", AVR16K, AVR1K, AVR512}, -+ {"atmega169p", AVR16K, AVR1K, AVR512}, -+ {"atmega169pa", AVR16K, AVR1K, AVR512}, -+ {"atmega16hva", AVR16K, 768UL, AVR256}, -+ {"atmega16hva2", AVR16K, AVR1K, AVR256}, -+ {"atmega16hvb", AVR16K, AVR1K, AVR512}, -+ {"atmega16m1", AVR16K, AVR1K, AVR512}, -+ {"atmega16u2", AVR16K, AVR512, AVR512}, -+ {"atmega16u4", AVR16K, 1280UL, AVR512}, -+ {"attiny167", AVR16K, AVR512, AVR512}, -+ -+ {"at90c8534", AVR8K, 352UL, AVR512}, -+ {"at90pwm1", AVR8K, AVR512, AVR512}, -+ {"at90pwm2", AVR8K, AVR512, AVR512}, -+ {"at90pwm2b", AVR8K, AVR512, AVR512}, -+ {"at90pwm3", AVR8K, AVR512, AVR512}, -+ {"at90pwm3b", AVR8K, AVR512, AVR512}, -+ {"at90pwm81", AVR8K, AVR256, AVR512}, -+ {"at90s8515", AVR8K, AVR512, AVR512}, -+ {"at90s8535", AVR8K, AVR512, AVR512}, -+ {"at90usb82", AVR8K, AVR512, AVR512}, -+ {"ata6289", AVR8K, AVR512, 320UL}, -+ {"atmega8", AVR8K, AVR1K, AVR512}, -+ {"atmega8515", AVR8K, AVR512, AVR512}, -+ {"atmega8535", AVR8K, AVR512, AVR512}, -+ {"atmega88", AVR8K, AVR1K, AVR512}, -+ {"atmega88a", AVR8K, AVR1K, AVR512}, -+ {"atmega88p", AVR8K, AVR1K, AVR512}, -+ {"atmega88pa", AVR8K, AVR1K, AVR512}, -+ {"atmega8hva", AVR8K, 768UL, AVR256}, -+ {"atmega8u2", AVR8K, AVR512, AVR512}, -+ {"attiny84", AVR8K, AVR512, AVR512}, -+ {"attiny84a", AVR8K, AVR512, AVR512}, -+ {"attiny85", AVR8K, AVR512, AVR512}, -+ {"attiny861", AVR8K, AVR512, AVR512}, -+ {"attiny861a", AVR8K, AVR512, AVR512}, -+ {"attiny87", AVR8K, AVR512, AVR512}, -+ {"attiny88", AVR8K, AVR512, AVR64}, -+ -+ {"at90s4414", AVR4K, 352UL, AVR256}, -+ {"at90s4433", AVR4K, AVR128, AVR256}, -+ {"at90s4434", AVR4K, 352UL, AVR256}, -+ {"atmega48", AVR4K, AVR512, AVR256}, -+ {"atmega48a", AVR4K, AVR512, AVR256}, -+ {"atmega48p", AVR4K, AVR512, AVR256}, -+ {"attiny4313", AVR4K, AVR256, AVR256}, -+ {"attiny43u", AVR4K, AVR256, AVR64}, -+ {"attiny44", AVR4K, AVR256, AVR256}, -+ {"attiny44a", AVR4K, AVR256, AVR256}, -+ {"attiny45", AVR4K, AVR256, AVR256}, -+ {"attiny461", AVR4K, AVR256, AVR256}, -+ {"attiny461a", AVR4K, AVR256, AVR256}, -+ {"attiny48", AVR4K, AVR256, AVR64}, -+ -+ {"at86rf401", AVR2K, 224UL, AVR128}, -+ {"at90s2313", AVR2K, AVR128, AVR128}, -+ {"at90s2323", AVR2K, AVR128, AVR128}, -+ {"at90s2333", AVR2K, 224UL, AVR128}, -+ {"at90s2343", AVR2K, AVR128, AVR128}, -+ {"attiny20", AVR2K, AVR128, 0UL}, -+ {"attiny22", AVR2K, 224UL, AVR128}, -+ {"attiny2313", AVR2K, AVR128, AVR128}, -+ {"attiny2313a", AVR2K, AVR128, AVR128}, -+ {"attiny24", AVR2K, AVR128, AVR128}, -+ {"attiny24a", AVR2K, AVR128, AVR128}, -+ {"attiny25", AVR2K, AVR128, AVR128}, -+ {"attiny26", AVR2K, AVR128, AVR128}, -+ {"attiny261", AVR2K, AVR128, AVR128}, -+ {"attiny261a", AVR2K, AVR128, AVR128}, -+ {"attiny28", AVR2K, 0UL, 0UL}, -+ {"attiny40", AVR2K, AVR256, 0UL}, -+ -+ {"at90s1200", AVR1K, 0UL, AVR64}, -+ {"attiny9", AVR1K, 32UL, 0UL}, -+ {"attiny10", AVR1K, 32UL, 0UL}, -+ {"attiny11", AVR1K, 0UL, AVR64}, -+ {"attiny12", AVR1K, 0UL, AVR64}, -+ {"attiny13", AVR1K, AVR64, AVR64}, -+ {"attiny13a", AVR1K, AVR64, AVR64}, -+ {"attiny15", AVR1K, 0UL, AVR64}, -+ -+ {"attiny4", AVR512, 32UL, 0UL}, -+ {"attiny5", AVR512, 32UL, 0UL}, -+}; -+ -+static char *avrmcu = NULL; -+ -+ - static char *target = NULL; - - /* Forward declarations. */ -@@ -89,7 +330,8 @@ usage (FILE *stream, int status) - fprintf (stream, _(" Displays the sizes of sections inside binary files\n")); - fprintf (stream, _(" If no input file(s) are specified, a.out is assumed\n")); - fprintf (stream, _(" The options are:\n\ -- -A|-B|-G --format={sysv|berkeley|gnu} Select output style (default is %s)\n\ -+ -A|-B|-G|-C --format={sysv|berkeley|gnu|avr} Select output style (default is %s)\n\ -+ --mcu= MCU name for AVR format only\n\ - -o|-d|-x --radix={8|10|16} Display numbers in octal, decimal or hex\n\ - -t --totals Display the total sizes (Berkeley only)\n\ - --common Display total size for *COM* syms\n\ -@@ -113,6 +355,7 @@ usage (FILE *stream, int status) - #define OPTION_FORMAT (200) - #define OPTION_RADIX (OPTION_FORMAT + 1) - #define OPTION_TARGET (OPTION_RADIX + 1) -+#define OPTION_MCU (OPTION_TARGET + 1) - - static struct option long_options[] = - { -@@ -120,6 +363,7 @@ static struct option long_options[] = - {"format", required_argument, 0, OPTION_FORMAT}, - {"radix", required_argument, 0, OPTION_RADIX}, - {"target", required_argument, 0, OPTION_TARGET}, -+ {"mcu", required_argument, 0, 203}, - {"totals", no_argument, &show_totals, 1}, - {"version", no_argument, &show_version, 1}, - {"help", no_argument, &show_help, 1}, -@@ -153,7 +397,7 @@ main (int argc, char **argv) - fatal (_("fatal error: libbfd ABI mismatch")); - set_default_bfd_target (); - -- while ((c = getopt_long (argc, argv, "ABGHhVvdfotx", long_options, -+ while ((c = getopt_long (argc, argv, "ABCGHhVvdfotx", long_options, - (int *) 0)) != EOF) - switch (c) - { -@@ -172,12 +416,20 @@ main (int argc, char **argv) - case 'g': - selected_output_format = FORMAT_GNU; - break; -+ case 'A': -+ case 'a': -+ selected_output_format = FORMAT_AVR; -+ break; - default: - non_fatal (_("invalid argument to --format: %s"), optarg); - usage (stderr, 1); - } - break; - -+ case OPTION_MCU: -+ avrmcu = optarg; -+ break; -+ - case OPTION_TARGET: - target = optarg; - break; -@@ -214,6 +466,9 @@ main (int argc, char **argv) - case 'G': - selected_output_format = FORMAT_GNU; - break; -+ case 'C': -+ selected_output_format = FORMAT_AVR; -+ break; - case 'v': - case 'V': - show_version = 1; -@@ -656,6 +911,98 @@ print_sysv_format (bfd *file) - printf ("\n\n"); - } - -+static avr_device_t * -+avr_find_device (void) -+{ -+ unsigned int i; -+ if (avrmcu != NULL) -+ { -+ for (i = 0; i < sizeof(avr) / sizeof(avr[0]); i++) -+ { -+ if (strcmp(avr[i].name, avrmcu) == 0) -+ { -+ /* Match found */ -+ return (&avr[i]); -+ } -+ } -+ } -+ return (NULL); -+} -+ -+static void -+print_avr_format (bfd *file) -+{ -+ char *avr_name = "Unknown"; -+ int flashmax = 0; -+ int rammax = 0; -+ int eeprommax = 0; -+ asection *section; -+ bfd_size_type my_datasize = 0; -+ bfd_size_type my_textsize = 0; -+ bfd_size_type my_bsssize = 0; -+ bfd_size_type bootloadersize = 0; -+ bfd_size_type noinitsize = 0; -+ bfd_size_type eepromsize = 0; -+ -+ avr_device_t *avrdevice = avr_find_device(); -+ if (avrdevice != NULL) -+ { -+ avr_name = avrdevice->name; -+ flashmax = avrdevice->flash; -+ rammax = avrdevice->ram; -+ eeprommax = avrdevice->eeprom; -+ } -+ -+ if ((section = bfd_get_section_by_name (file, ".data")) != NULL) -+ my_datasize = bfd_section_size (section); -+ if ((section = bfd_get_section_by_name (file, ".text")) != NULL) -+ my_textsize = bfd_section_size (section); -+ if ((section = bfd_get_section_by_name (file, ".bss")) != NULL) -+ my_bsssize = bfd_section_size (section); -+ if ((section = bfd_get_section_by_name (file, ".bootloader")) != NULL) -+ bootloadersize = bfd_section_size (section); -+ if ((section = bfd_get_section_by_name (file, ".noinit")) != NULL) -+ noinitsize = bfd_section_size (section); -+ if ((section = bfd_get_section_by_name (file, ".eeprom")) != NULL) -+ eepromsize = bfd_section_size (section); -+ -+ bfd_size_type text = my_textsize + my_datasize + bootloadersize; -+ bfd_size_type data = my_datasize + my_bsssize + noinitsize; -+ bfd_size_type eeprom = eepromsize; -+ -+ printf ("AVR Memory Usage\n" -+ "----------------\n" -+ "Device: %s\n\n", avr_name); -+ -+ /* Text size */ -+ printf ("Program:%8ld bytes", text); -+ if (flashmax > 0) -+ { -+ printf (" (%2.1f%% Full)", ((float)text / flashmax) * 100); -+ } -+ printf ("\n(.text + .data + .bootloader)\n\n"); -+ -+ /* Data size */ -+ printf ("Data: %8ld bytes", data); -+ if (rammax > 0) -+ { -+ printf (" (%2.1f%% Full)", ((float)data / rammax) * 100); -+ } -+ printf ("\n(.data + .bss + .noinit)\n\n"); -+ -+ /* EEPROM size */ -+ if (eeprom > 0) -+ { -+ printf ("EEPROM: %8ld bytes", eeprom); -+ if (eeprommax > 0) -+ { -+ printf (" (%2.1f%% Full)", ((float)eeprom / eeprommax) * 100); -+ } -+ printf ("\n(.eeprom)\n\n"); -+ } -+} -+ -+ - static void - print_sizes (bfd *file) - { -@@ -663,6 +1010,8 @@ print_sizes (bfd *file) - calculate_common_size (file); - if (selected_output_format == FORMAT_SYSV) - print_sysv_format (file); -+ else if (selected_output_format == FORMAT_AVR) -+ print_avr_format (file); - else - print_berkeley_or_gnu_format (file); - } diff --git a/pkgs/by-name/bi/binutils/bintools-wrapper/add-darwin-ldflags-before.sh b/pkgs/by-name/bi/binutils/bintools-wrapper/add-darwin-ldflags-before.sh deleted file mode 100644 index 75d9484..0000000 --- a/pkgs/by-name/bi/binutils/bintools-wrapper/add-darwin-ldflags-before.sh +++ /dev/null @@ -1,81 +0,0 @@ -# Unconditionally adding in platform version flags will result in warnings that -# will be treated as errors by some packages. Add any missing flags here. - -# There are two things to be configured: the "platform version" (oldest -# supported version of macos, ios, etc), and the "sdk version". -# -# The modern way of configuring these is to use: -# -platform_version $platform $platform_version $sdk_version" -# -# The old way is still supported, and uses flags like: -# -${platform}_version_min $platform_version -# -sdk_version $sdk_version -# -# If both styles are specified ld will combine them. If multiple versions are -# specified for the same platform, ld will emit an error. -# -# The following adds flags for whichever properties have not already been -# provided. - -havePlatformVersionFlag= -haveDarwinSDKVersion= -haveDarwinPlatformVersion= - -# Roles will set by add-flags.sh, but add-flags.sh can be skipped when the -# cc-wrapper has added the linker flags. Both the cc-wrapper and the binutils -# wrapper mangle the same variable (MACOSX_DEPLOYMENT_TARGET), so if roles are -# empty due to being run through the cc-wrapper then the mangle here is a no-op -# and we still do the right thing. -# -# To be robust, make sure we always have the correct set of roles. -accumulateRoles - -mangleVarSingle @darwinMinVersionVariable@ ${role_suffixes[@]+"${role_suffixes[@]}"} - -n=0 -nParams=${#params[@]} -while (( n < nParams )); do - p=${params[n]} - case "$p" in - # the current platform - -@darwinPlatform@_version_min) - haveDarwinPlatformVersion=1 - ;; - - # legacy aliases - -macosx_version_min|-iphoneos_version_min|-iosmac_version_min|-uikitformac_version_min) - haveDarwinPlatformVersion=1 - ;; - - -sdk_version) - haveDarwinSDKVersion=1 - ;; - - -platform_version) - havePlatformVersionFlag=1 - - # If clang can't determine the sdk version it will pass 0.0.0. This - # has runtime effects so we override this to use the known sdk - # version. - if [ "${params[n+3]-}" = 0.0.0 ]; then - params[n+3]=@darwinSdkVersion@ - fi - ;; - esac - n=$((n + 1)) -done - -# If the caller has set -platform_version, trust they're doing the right thing. -# This will be the typical case for clang in nixpkgs. -if [ ! "$havePlatformVersionFlag" ]; then - if [ ! "$haveDarwinSDKVersion" ] && [ ! "$haveDarwinPlatformVersion" ]; then - # Nothing provided. Use the modern "-platform_version" to set both. - extraBefore+=(-platform_version @darwinPlatform@ "${@darwinMinVersionVariable@_@suffixSalt@:-@darwinMinVersion@}" @darwinSdkVersion@) - elif [ ! "$haveDarwinSDKVersion" ]; then - # Add missing sdk version - extraBefore+=(-sdk_version @darwinSdkVersion@) - elif [ ! "$haveDarwinPlatformVersion" ]; then - # Add missing platform version - extraBefore+=(-@darwinPlatform@_version_min "${@darwinMinVersionVariable@_@suffixSalt@:-@darwinMinVersion@}") - fi -fi diff --git a/pkgs/by-name/bi/binutils/bintools-wrapper/add-flags.sh b/pkgs/by-name/bi/binutils/bintools-wrapper/add-flags.sh deleted file mode 100644 index 3b94dab..0000000 --- a/pkgs/by-name/bi/binutils/bintools-wrapper/add-flags.sh +++ /dev/null @@ -1,37 +0,0 @@ -# See cc-wrapper for comments. -var_templates_list=( - NIX_IGNORE_LD_THROUGH_GCC - NIX_LDFLAGS - NIX_LDFLAGS_BEFORE - NIX_DYNAMIC_LINKER - NIX_LDFLAGS_AFTER - NIX_LDFLAGS_HARDEN - NIX_HARDENING_ENABLE -) -var_templates_bool=( - NIX_SET_BUILD_ID - NIX_DONT_SET_RPATH -) - -accumulateRoles - -for var in "${var_templates_list[@]}"; do - mangleVarList "$var" ${role_suffixes[@]+"${role_suffixes[@]}"} -done -for var in "${var_templates_bool[@]}"; do - mangleVarBool "$var" ${role_suffixes[@]+"${role_suffixes[@]}"} -done - -if [ -e @out@/nix-support/libc-ldflags ]; then - NIX_LDFLAGS_@suffixSalt@+=" $(< @out@/nix-support/libc-ldflags)" -fi - -if [ -z "$NIX_DYNAMIC_LINKER_@suffixSalt@" ] && [ -e @out@/nix-support/ld-set-dynamic-linker ]; then - NIX_DYNAMIC_LINKER_@suffixSalt@="$(< @out@/nix-support/dynamic-linker)" -fi - -if [ -e @out@/nix-support/libc-ldflags-before ]; then - NIX_LDFLAGS_BEFORE_@suffixSalt@="$(< @out@/nix-support/libc-ldflags-before) $NIX_LDFLAGS_BEFORE_@suffixSalt@" -fi - -export NIX_BINTOOLS_WRAPPER_FLAGS_SET_@suffixSalt@=1 diff --git a/pkgs/by-name/bi/binutils/bintools-wrapper/add-hardening.sh b/pkgs/by-name/bi/binutils/bintools-wrapper/add-hardening.sh deleted file mode 100644 index db9553c..0000000 --- a/pkgs/by-name/bi/binutils/bintools-wrapper/add-hardening.sh +++ /dev/null @@ -1,62 +0,0 @@ -declare -a hardeningLDFlags=() - -declare -A hardeningEnableMap=() - -# Intentionally word-split in case 'NIX_HARDENING_ENABLE' is defined in Nix. The -# array expansion also prevents undefined variables from causing trouble with -# `set -u`. -for flag in ${NIX_HARDENING_ENABLE_@suffixSalt@-}; do - hardeningEnableMap["$flag"]=1 -done - -# Remove unsupported flags. -for flag in @hardening_unsupported_flags@; do - unset -v "hardeningEnableMap[$flag]" -done - -if (( "${NIX_DEBUG:-0}" >= 1 )); then - declare -a allHardeningFlags=(pie relro bindnow) - declare -A hardeningDisableMap=() - - # Determine which flags were effectively disabled so we can report below. - for flag in "${allHardeningFlags[@]}"; do - if [[ -z "${hardeningEnableMap[$flag]-}" ]]; then - hardeningDisableMap[$flag]=1 - fi - done - - printf 'HARDENING: disabled flags:' >&2 - (( "${#hardeningDisableMap[@]}" )) && printf ' %q' "${!hardeningDisableMap[@]}" >&2 - echo >&2 - - if (( "${#hardeningEnableMap[@]}" )); then - echo 'HARDENING: Is active (not completely disabled with "all" flag)' >&2; - fi -fi - -for flag in "${!hardeningEnableMap[@]}"; do - case $flag in - pie) - if [[ ! (" ${params[*]} " =~ " -shared " \ - || " ${params[*]} " =~ " -static " \ - || " ${params[*]} " =~ " -r " \ - || " ${params[*]} " =~ " -Ur " \ - || " ${params[*]} " =~ " -i ") ]]; then - if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling LDFlags -pie >&2; fi - hardeningLDFlags+=('-pie') - fi - ;; - relro) - if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling relro >&2; fi - hardeningLDFlags+=('-z' 'relro') - ;; - bindnow) - if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling bindnow >&2; fi - hardeningLDFlags+=('-z' 'now') - ;; - *) - # Ignore unsupported. Checked in Nix that at least *some* - # tool supports each flag. - ;; - esac -done diff --git a/pkgs/by-name/bi/binutils/bintools-wrapper/darwin-install_name_tool-wrapper.sh b/pkgs/by-name/bi/binutils/bintools-wrapper/darwin-install_name_tool-wrapper.sh deleted file mode 100755 index 376a7ab..0000000 --- a/pkgs/by-name/bi/binutils/bintools-wrapper/darwin-install_name_tool-wrapper.sh +++ /dev/null @@ -1,49 +0,0 @@ -#! @shell@ -# shellcheck shell=bash - -set -eu -o pipefail +o posix -shopt -s nullglob - -if (( "${NIX_DEBUG:-0}" >= 7 )); then - set -x -fi - -source @signingUtils@ - -extraAfter=() -extraBefore=() -params=("$@") - -input= - -pprev= -prev= -for p in \ - ${extraBefore+"${extraBefore[@]}"} \ - ${params+"${params[@]}"} \ - ${extraAfter+"${extraAfter[@]}"} -do - if [ "$pprev" != "-change" ] && [[ "$prev" != -* ]] && [[ "$p" != -* ]]; then - input="$p" - fi - pprev="$prev" - prev="$p" -done - -# Optionally print debug info. -if (( "${NIX_DEBUG:-0}" >= 1 )); then - # Old bash workaround, see above. - echo "extra flags before to @prog@:" >&2 - printf " %q\n" ${extraBefore+"${extraBefore[@]}"} >&2 - echo "original flags to @prog@:" >&2 - printf " %q\n" ${params+"${params[@]}"} >&2 - echo "extra flags after to @prog@:" >&2 - printf " %q\n" ${extraAfter+"${extraAfter[@]}"} >&2 -fi - -@prog@ \ - ${extraBefore+"${extraBefore[@]}"} \ - ${params+"${params[@]}"} \ - ${extraAfter+"${extraAfter[@]}"} - -sign "$input" diff --git a/pkgs/by-name/bi/binutils/bintools-wrapper/darwin-strip-wrapper.sh b/pkgs/by-name/bi/binutils/bintools-wrapper/darwin-strip-wrapper.sh deleted file mode 100755 index a676995..0000000 --- a/pkgs/by-name/bi/binutils/bintools-wrapper/darwin-strip-wrapper.sh +++ /dev/null @@ -1,78 +0,0 @@ -#! @shell@ -# shellcheck shell=bash - -set -eu -o pipefail +o posix -shopt -s nullglob - -if (( "${NIX_DEBUG:-0}" >= 7 )); then - set -x -fi - -source @signingUtils@ - -extraAfter=() -extraBefore=() -params=("$@") - -output= -inputs=() - -restAreFiles= -prev= -for p in \ - ${extraBefore+"${extraBefore[@]}"} \ - ${params+"${params[@]}"} \ - ${extraAfter+"${extraAfter[@]}"} -do - if [ "$restAreFiles" ]; then - inputs+=("$p") - else - case "$prev" in - -s|-R|-d|-arch) - # Unrelated arguments with values - ;; - -o) - # Explicit output - output="$p" - ;; - *) - # Any other orgument either takes no value, or is a file. - if [[ "$p" != -* ]]; then - inputs+=("$p") - fi - ;; - esac - - if [ "$p" == - ]; then - restAreFiles=1 - fi - fi - - prev="$p" -done - -# Optionally print debug info. -if (( "${NIX_DEBUG:-0}" >= 1 )); then - # Old bash workaround, see above. - echo "extra flags before to @prog@:" >&2 - printf " %q\n" ${extraBefore+"${extraBefore[@]}"} >&2 - echo "original flags to @prog@:" >&2 - printf " %q\n" ${params+"${params[@]}"} >&2 - echo "extra flags after to @prog@:" >&2 - printf " %q\n" ${extraAfter+"${extraAfter[@]}"} >&2 -fi - -@prog@ \ - ${extraBefore+"${extraBefore[@]}"} \ - ${params+"${params[@]}"} \ - ${extraAfter+"${extraAfter[@]}"} - -if [ "$output" ]; then - # Single explicit output - signIfRequired "$output" -else - # Multiple inputs, rewritten in place - for input in "${inputs[@]}"; do - signIfRequired "$input" - done -fi diff --git a/pkgs/by-name/bi/binutils/bintools-wrapper/default.nix b/pkgs/by-name/bi/binutils/bintools-wrapper/default.nix deleted file mode 100644 index 86eae18..0000000 --- a/pkgs/by-name/bi/binutils/bintools-wrapper/default.nix +++ /dev/null @@ -1,439 +0,0 @@ -# The Nixpkgs CC is not directly usable, since it doesn't know where -# the C library and standard header files are. Therefore the compiler -# produced by that package cannot be installed directly in a user -# environment and used from the command line. So we use a wrapper -# 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 - 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" - -# Darwin code signing support utilities -, postLinkSignHook ? null, signingUtils ? null -}: - -assert nativeTools -> !propagateDoc && nativePrefix != ""; -assert !nativeTools -> bintools != null && coreutils != null && gnugrep != null; -assert !(nativeLibc && noLibc); -assert (noLibc || nativeLibc) == (libc == null); - -let - inherit (lib) - attrByPath - concatStringsSep - getBin - getDev - getLib - getName - getVersion - hasSuffix - optional - optionalAttrs - optionals - optionalString - platforms - removePrefix - replaceStrings - ; - - inherit (stdenvNoCC) hostPlatform targetPlatform; - - # Prefix for binaries. Customarily ends with a dash separator. - # - # TODO(@Ericson2314) Make unconditional, or optional but always true by - # default. - targetPrefix = optionalString (targetPlatform != hostPlatform) - (targetPlatform.config + "-"); - - bintoolsVersion = getVersion bintools; - bintoolsName = removePrefix targetPrefix (getName bintools); - - libc_bin = optionalString (libc != null) (getBin libc); - libc_dev = optionalString (libc != null) (getDev libc); - libc_lib = optionalString (libc != null) (getLib libc); - bintools_bin = optionalString (!nativeTools) (getBin bintools); - # The wrapper scripts use 'cat' and 'grep', so we may need coreutils. - coreutils_bin = optionalString (!nativeTools) (getBin coreutils); - - # See description in cc-wrapper. - 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" - # ELFv1 (.1) or ELFv2 (.2) ABI - 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" - # `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 ""; - -in - -stdenvNoCC.mkDerivation { - pname = targetPrefix - + (if name != "" then name else "${bintoolsName}-wrapper"); - version = optionalString (bintools != null) bintoolsVersion; - - preferLocalBuild = true; - - outputs = [ "out" ] ++ optionals propagateDoc ([ "man" ] ++ optional (bintools ? info) "info"); - - # passthru = { - # inherit targetPrefix suffixSalt; - # inherit bintools libc nativeTools nativeLibc nativePrefix isGNU isLLVM; - - # emacsBufferSetup = pkgs: '' - # ; We should handle propagation here too - # (mapc - # (lambda (arg) - # (when (file-directory-p (concat arg "/lib")) - # (setenv "NIX_LDFLAGS_${suffixSalt}" (concat (getenv "NIX_LDFLAGS_${suffixSalt}") " -L" arg "/lib"))) - # (when (file-directory-p (concat arg "/lib64")) - # (setenv "NIX_LDFLAGS_${suffixSalt}" (concat (getenv "NIX_LDFLAGS_${suffixSalt}") " -L" arg "/lib64")))) - # '(${concatStringsSep " " (map (pkg: "\"${pkg}\"") pkgs)})) - # ''; - - # inherit defaultHardeningFlags; - # }; - - dontBuild = true; - dontConfigure = true; - - enableParallelBuilding = true; - - unpackPhase = '' - src=$PWD - ''; - - installPhase = - '' - mkdir -p $out/bin $out/nix-support - - wrap() { - local dst="$1" - local wrapper="$2" - export prog="$3" - export use_response_file_by_default=${if isCCTools then "1" else "0"} - substituteAll "$wrapper" "$out/bin/$dst" - chmod +x "$out/bin/$dst" - } - '' - - + (if nativeTools then '' - echo ${nativePrefix} > $out/nix-support/orig-bintools - - ldPath="${nativePrefix}/bin" - '' else '' - echo $bintools_bin > $out/nix-support/orig-bintools - - 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} - '') - - # If we are asked to wrap `gas` and this bintools has it, - # then symlink it (`as` will be symlinked next). - # This is mainly for the wrapped gnat-bootstrap on x86-64 Darwin, - # as it must have both the GNU assembler from cctools (installed as `gas`) - # and the Clang integrated assembler (installed as `as`). - # See pkgs/os-specific/darwin/binutils/default.nix for details. - + optionalString wrapGas '' - if [ -e $ldPath/${targetPrefix}gas ]; then - ln -s $ldPath/${targetPrefix}gas $out/bin/${targetPrefix}gas - fi - '' - - # Create symlinks for rest of the binaries. - + '' - for binary in objdump objcopy size strings as ar nm gprof dwp c++filt addr2line \ - ranlib readelf elfedit dlltool dllwrap windmc windres; do - if [ -e $ldPath/${targetPrefix}''${binary} ]; then - ln -s $ldPath/${targetPrefix}''${binary} $out/bin/${targetPrefix}''${binary} - 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 - '') + '' - - for variant in $ldPath/${targetPrefix}ld.*; do - basename=$(basename "$variant") - wrap $basename ${./ld-wrapper.sh} $variant - done - ''; - - strictDeps = true; - depsTargetTargetPropagated = extraPackages; - - setupHooks = [ - ../setup-hooks/role.bash - ./setup-hook.sh - ]; - - postFixup = - ## - ## 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 - - 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 - '' - - # 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 - - 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 - '') - - ## - ## User env support - ## - - # Propagate the underling unwrapped bintools so that if you - # 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 - '' - - ## - ## Man page and info support - ## - + optionalString propagateDoc ('' - ln -s ${bintools.man} $man - '' + optionalString (bintools ? info) '' - ln -s ${bintools.info} $info - '') - - ## - ## Hardening support - ## - - # some linkers on some platforms don't support specific -z flags - + '' - export hardening_unsupported_flags="" - if [[ "$($ldPath/${targetPrefix}ld -z now 2>&1 || true)" =~ un(recognized|known)\ option ]]; then - hardening_unsupported_flags+=" bindnow" - fi - if [[ "$($ldPath/${targetPrefix}ld -z relro 2>&1 || true)" =~ un(recognized|known)\ option ]]; then - hardening_unsupported_flags+=" relro" - fi - '' - - + optionalString hostPlatform.isCygwin '' - hardening_unsupported_flags+=" pic" - '' - - + optionalString (targetPlatform.isAvr || targetPlatform.isWindows) '' - hardening_unsupported_flags+=" relro bindnow" - '' - - + optionalString (libc != null && targetPlatform.isAvr) '' - for isa in avr5 avr3 avr4 avr6 avr25 avr31 avr35 avr51 avrxmega2 avrxmega4 avrxmega5 avrxmega6 avrxmega7 tiny-stack; do - echo "-L${getLib libc}/avr/lib/$isa" >> $out/nix-support/libc-cflags - done - '' - - + optionalString targetPlatform.isDarwin '' - echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/libc-ldflags - '' - - ## - ## GNU specific extra strip flags - ## - - # TODO(@sternenseemann): make a generic strip wrapper? - + optionalString (bintools.isGNU or false) '' - wrap ${targetPrefix}strip ${./gnu-binutils-strip-wrapper.sh} \ - "${bintools_bin}/bin/${targetPrefix}strip" - '' - - ### - ### Remove certain timestamps from final binaries - ### - + optionalString (targetPlatform.isDarwin && !(bintools.isGNU or false)) '' - echo "export ZERO_AR_DATE=1" >> $out/nix-support/setup-hook - '' - - + '' - for flags in "$out/nix-support"/*flags*; do - substituteInPlace "$flags" --replace $'\n' ' ' - done - - substituteAll ${./add-flags.sh} $out/nix-support/add-flags.sh - substituteAll ${./add-hardening.sh} $out/nix-support/add-hardening.sh - substituteAll ${../wrapper-common/utils.bash} $out/nix-support/utils.bash - '' - - ### - ### Ensure consistent LC_VERSION_MIN_MACOSX - ### - + optionalString targetPlatform.isDarwin ( - let - inherit (targetPlatform) - darwinPlatform darwinSdkVersion - darwinMinVersion darwinMinVersionVariable; - in '' - export darwinPlatform=${darwinPlatform} - export darwinMinVersion=${darwinMinVersion} - export darwinSdkVersion=${darwinSdkVersion} - export darwinMinVersionVariable=${darwinMinVersionVariable} - substituteAll ${./add-darwin-ldflags-before.sh} $out/nix-support/add-local-ldflags-before.sh - '' - ) - - ## - ## Code signing on Apple Silicon - ## - + optionalString (targetPlatform.isDarwin && targetPlatform.isAarch64) '' - echo 'source ${postLinkSignHook}' >> $out/nix-support/post-link-hook - - export signingUtils=${signingUtils} - - wrap \ - ${targetPrefix}install_name_tool \ - ${./darwin-install_name_tool-wrapper.sh} \ - "${bintools_bin}/bin/${targetPrefix}install_name_tool" - - wrap \ - ${targetPrefix}strip ${./darwin-strip-wrapper.sh} \ - "${bintools_bin}/bin/${targetPrefix}strip" - '' - - ## - ## Extra custom steps - ## - + extraBuildCommands; - - env = { - # for substitution in utils.bash - # TODO(@sternenseemann): invent something cleaner than passing in "" in case of absence - expandResponseParams = "${expand-response-params}/bin/expand-response-params"; - # TODO(@sternenseemann): rename env var via stdenv rebuild - 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; - 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_ - + " (wrapper script)"; - priority = 10; - } // optionalAttrs useMacosReexportHack { - platforms = platforms.darwin; - }; -} diff --git a/pkgs/by-name/bi/binutils/bintools-wrapper/gnu-binutils-strip-wrapper.sh b/pkgs/by-name/bi/binutils/bintools-wrapper/gnu-binutils-strip-wrapper.sh deleted file mode 100644 index 5b5136e..0000000 --- a/pkgs/by-name/bi/binutils/bintools-wrapper/gnu-binutils-strip-wrapper.sh +++ /dev/null @@ -1,4 +0,0 @@ -#! @shell@ -# shellcheck shell=bash - -exec @prog@ --enable-deterministic-archives "$@" diff --git a/pkgs/by-name/bi/binutils/bintools-wrapper/ld-solaris-wrapper.sh b/pkgs/by-name/bi/binutils/bintools-wrapper/ld-solaris-wrapper.sh deleted file mode 100644 index 5d81e34..0000000 --- a/pkgs/by-name/bi/binutils/bintools-wrapper/ld-solaris-wrapper.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!@shell@ -set -eu -o pipefail -shopt -s nullglob - -if (( "${NIX_DEBUG:-0}" >= 7 )); then - set -x -fi - -declare -a args=("$@") -# I've also tried adding -z direct and -z lazyload, but it gave too many problems with C++ exceptions :'( -# Also made sure libgcc would not be lazy-loaded, as suggested here: https://www.illumos.org/issues/2534#note-3 -# but still no success. -declare -a argsBefore=(-z ignore) argsAfter=() - -# This loop makes sure all -L arguments are before -l arguments, or ld may complain it cannot find a library. -# GNU binutils does not have this problem: -# http://stackoverflow.com/questions/5817269/does-the-order-of-l-and-l-options-in-the-gnu-linker-matter -while (( $# )); do - case "${args[$i]}" in - -L) argsBefore+=("$1" "$2"); shift ;; - -L?*) argsBefore+=("$1") ;; - *) argsAfter+=("$1") ;; - esac - shift -done - -# Trace: -set -x -exec "@ld@" "${argsBefore[@]}" "${argsAfter[@]}" diff --git a/pkgs/by-name/bi/binutils/bintools-wrapper/ld-wrapper.sh b/pkgs/by-name/bi/binutils/bintools-wrapper/ld-wrapper.sh deleted file mode 100644 index dcbe8a4..0000000 --- a/pkgs/by-name/bi/binutils/bintools-wrapper/ld-wrapper.sh +++ /dev/null @@ -1,273 +0,0 @@ -#! @shell@ -set -eu -o pipefail +o posix -shopt -s nullglob - -if (( "${NIX_DEBUG:-0}" >= 7 )); then - set -x -fi - -path_backup="$PATH" - -# phase separation makes this look useless -# shellcheck disable=SC2157 -if [ -n "@coreutils_bin@" ]; then - PATH="@coreutils_bin@/bin" -fi - -source @out@/nix-support/utils.bash - -if [ -z "${NIX_BINTOOLS_WRAPPER_FLAGS_SET_@suffixSalt@:-}" ]; then - source @out@/nix-support/add-flags.sh -fi - - -# Optionally filter out paths not refering to the store. -expandResponseParams "$@" - -# NIX_LINK_TYPE is set if ld has been called through our cc wrapper. We take -# advantage of this to avoid both recalculating it, and also repeating other -# processing cc wrapper has already done. -if [[ -n "${NIX_LINK_TYPE_@suffixSalt@:-}" ]]; then - linkType=$NIX_LINK_TYPE_@suffixSalt@ -else - linkType=$(checkLinkType "${params[@]}") -fi - -if [[ "${NIX_ENFORCE_PURITY:-}" = 1 && -n "${NIX_STORE:-}" - && ( -z "$NIX_IGNORE_LD_THROUGH_GCC_@suffixSalt@" || -z "${NIX_LINK_TYPE_@suffixSalt@:-}" ) ]]; then - rest=() - nParams=${#params[@]} - declare -i n=0 - - while (( "$n" < "$nParams" )); do - p=${params[n]} - p2=${params[n+1]:-} # handle `p` being last one - if [ "${p:0:3}" = -L/ ] && badPath "${p:2}"; then - skip "${p:2}" - elif [ "$p" = -L ] && badPath "$p2"; then - n+=1; skip "$p2" - elif [ "$p" = -rpath ] && badPath "$p2"; then - n+=1; skip "$p2" - elif [ "$p" = -dynamic-linker ] && badPath "$p2"; then - n+=1; skip "$p2" - elif [ "$p" = -syslibroot ] && [ $p2 == // ]; then - # When gcc is built on darwin --with-build-sysroot=/ - # produces '-syslibroot //' linker flag. It's a no-op, - # which does not introduce impurities. - n+=1; skip "$p2" - elif [ "${p:0:10}" = /LIBPATH:/ ] && badPath "${p:9}"; then - reject "${p:9}" - # We need to not match LINK.EXE-style flags like - # /NOLOGO or /LIBPATH:/nix/store/foo - elif [[ $p =~ ^/[^:]*/ ]] && badPath "$p"; then - reject "$p" - elif [ "${p:0:9}" = --sysroot ]; then - # Our ld is not built with sysroot support (Can we fix that?) - : - else - rest+=("$p") - fi - n+=1 - done - # Old bash empty array hack - params=(${rest+"${rest[@]}"}) -fi - - -source @out@/nix-support/add-hardening.sh - -extraAfter=() -extraBefore=(${hardeningLDFlags[@]+"${hardeningLDFlags[@]}"}) - -if [ -z "${NIX_LINK_TYPE_@suffixSalt@:-}" ]; then - extraAfter+=($(filterRpathFlags "$linkType" $NIX_LDFLAGS_@suffixSalt@)) - extraBefore+=($(filterRpathFlags "$linkType" $NIX_LDFLAGS_BEFORE_@suffixSalt@)) - - # By adding dynamic linker to extraBefore we allow the users set their - # own dynamic linker as NIX_LD_FLAGS will override earlier set flags - if [[ "$linkType" == dynamic && -n "$NIX_DYNAMIC_LINKER_@suffixSalt@" ]]; then - extraBefore+=("-dynamic-linker" "$NIX_DYNAMIC_LINKER_@suffixSalt@") - fi -fi - -extraAfter+=($(filterRpathFlags "$linkType" $NIX_LDFLAGS_AFTER_@suffixSalt@)) - -# These flags *must not* be pulled up to -Wl, flags, so they can't go in -# add-flags.sh. They must always be set, so must not be disabled by -# NIX_LDFLAGS_SET. -if [ -e @out@/nix-support/add-local-ldflags-before.sh ]; then - source @out@/nix-support/add-local-ldflags-before.sh -fi - - -# Three tasks: -# -# 1. Find all -L... switches for rpath -# -# 2. Find relocatable flag for build id. -# -# 3. Choose 32-bit dynamic linker if needed -declare -a libDirs -declare -A libs -declare -i relocatable=0 link32=0 - -linkerOutput="a.out" - -if - [ "$NIX_DONT_SET_RPATH_@suffixSalt@" != 1 ] \ - || [ "$NIX_SET_BUILD_ID_@suffixSalt@" = 1 ] \ - || [ -e @out@/nix-support/dynamic-linker-m32 ] -then - prev= - # Old bash thinks empty arrays are undefined, ugh. - for p in \ - ${extraBefore+"${extraBefore[@]}"} \ - ${params+"${params[@]}"} \ - ${extraAfter+"${extraAfter[@]}"} - do - case "$prev" in - -L) - libDirs+=("$p") - ;; - -l) - libs["lib${p}.so"]=1 - ;; - -m) - # Presumably only the last `-m` flag has any effect. - case "$p" in - elf_i386) link32=1;; - *) link32=0;; - esac - ;; - -dynamic-linker | -plugin) - # Ignore this argument, or it will match *.so and be added to rpath. - ;; - *) - case "$p" in - -L/*) - libDirs+=("${p:2}") - ;; - -l?*) - libs["lib${p:2}.so"]=1 - ;; - "${NIX_STORE:-}"/*.so | "${NIX_STORE:-}"/*.so.*) - # This is a direct reference to a shared library. - libDirs+=("${p%/*}") - libs["${p##*/}"]=1 - ;; - -r | --relocatable | -i) - relocatable=1 - esac - ;; - esac - prev="$p" - done -fi - -# Determine linkerOutput -prev= -for p in \ - ${extraBefore+"${extraBefore[@]}"} \ - ${params+"${params[@]}"} \ - ${extraAfter+"${extraAfter[@]}"} -do - case "$prev" in - -o) - # Informational for post-link-hook - linkerOutput="$p" - ;; - *) - ;; - esac - prev="$p" -done - -if [[ "$link32" == "1" && "$linkType" == dynamic && -e "@out@/nix-support/dynamic-linker-m32" ]]; then - # We have an alternate 32-bit linker and we're producing a 32-bit ELF, let's - # use it. - extraAfter+=( - '-dynamic-linker' - "$(< @out@/nix-support/dynamic-linker-m32)" - ) -fi - -# Add all used dynamic libraries to the rpath. -if [[ "$NIX_DONT_SET_RPATH_@suffixSalt@" != 1 && "$linkType" != static-pie ]]; then - # For each directory in the library search path (-L...), - # see if it contains a dynamic library used by a -l... flag. If - # so, add the directory to the rpath. - # It's important to add the rpath in the order of -L..., so - # the link time chosen objects will be those of runtime linking. - declare -A rpaths - for dir in ${libDirs+"${libDirs[@]}"}; do - if [[ "$dir" =~ [/.][/.] ]] && dir2=$(readlink -f "$dir"); then - dir="$dir2" - fi - if [ -n "${rpaths[$dir]:-}" ] || [[ "$dir" != "${NIX_STORE:-}"/* ]]; then - # If the path is not in the store, don't add it to the rpath. - # This typically happens for libraries in /tmp that are later - # copied to $out/lib. If not, we're screwed. - continue - fi - for path in "$dir"/*; do - file="${path##*/}" - if [ "${libs[$file]:-}" ]; then - # This library may have been provided by a previous directory, - # but if that library file is inside an output of the current - # derivation, it can be deleted after this compilation and - # should be found in a later directory, so we add all - # directories that contain any of the libraries to rpath. - rpaths["$dir"]=1 - extraAfter+=(-rpath "$dir") - break - fi - done - done - -fi - -# This is outside the DONT_SET_RPATH branch because it's more targeted and we -# usually want it (on Darwin) even if DONT_SET_RPATH is set. -if [ -n "${NIX_COREFOUNDATION_RPATH:-}" ]; then - extraAfter+=(-rpath $NIX_COREFOUNDATION_RPATH) -fi - -# Only add --build-id if this is a final link. FIXME: should build gcc -# with --enable-linker-build-id instead? -# -# Note: `lld` interprets `--build-id` to mean `--build-id=fast`; GNU ld defaults -# to SHA1. -if [ "$NIX_SET_BUILD_ID_@suffixSalt@" = 1 ] && ! (( "$relocatable" )); then - extraAfter+=(--build-id="${NIX_BUILD_ID_STYLE:-sha1}") -fi - - -# Optionally print debug info. -if (( "${NIX_DEBUG:-0}" >= 1 )); then - # Old bash workaround, see above. - echo "extra flags before to @prog@:" >&2 - printf " %q\n" ${extraBefore+"${extraBefore[@]}"} >&2 - echo "original flags to @prog@:" >&2 - printf " %q\n" ${params+"${params[@]}"} >&2 - echo "extra flags after to @prog@:" >&2 - printf " %q\n" ${extraAfter+"${extraAfter[@]}"} >&2 -fi - -PATH="$path_backup" -# Old bash workaround, see above. - -if (( "${NIX_LD_USE_RESPONSE_FILE:-@use_response_file_by_default@}" >= 1 )); then - @prog@ @<(printf "%q\n" \ - ${extraBefore+"${extraBefore[@]}"} \ - ${params+"${params[@]}"} \ - ${extraAfter+"${extraAfter[@]}"}) -else - @prog@ \ - ${extraBefore+"${extraBefore[@]}"} \ - ${params+"${params[@]}"} \ - ${extraAfter+"${extraAfter[@]}"} -fi - -if [ -e "@out@/nix-support/post-link-hook" ]; then - source @out@/nix-support/post-link-hook -fi diff --git a/pkgs/by-name/bi/binutils/bintools-wrapper/macos-sierra-reexport-hack.bash b/pkgs/by-name/bi/binutils/bintools-wrapper/macos-sierra-reexport-hack.bash deleted file mode 100644 index 255071a..0000000 --- a/pkgs/by-name/bi/binutils/bintools-wrapper/macos-sierra-reexport-hack.bash +++ /dev/null @@ -1,246 +0,0 @@ -#! @shell@ - -set -eu -o pipefail - -# For cmd | while read; do ...; done -shopt -s lastpipe - -path_backup="$PATH" -if [ -n "@coreutils_bin@" ]; then - PATH="@coreutils_bin@/bin" -fi - -declare -ri recurThreshold=200 -declare -i overflowCount=0 - -declare -ar origArgs=("$@") - -# Throw away what we won't need -declare -a parentArgs=() - -while (( $# )); do - case "$1" in - -l) - echo "cctools LD does not support '-l foo'" >&2 - exit 1 - ;; - -lazy_library | -reexport_library | -upward_library | -weak_library) - overflowCount+=1 - shift 2 - ;; - -l* | *.so.* | *.dylib | -lazy-l* | -reexport-l* | -upward-l* | -weak-l*) - overflowCount+=1 - shift 1 - ;; - *.a | *.o) - shift 1 - ;; - -L | -F) - # Evidentally ld doesn't like using the child's RPATH, so it still - # needs these. - parentArgs+=("$1" "$2") - shift 2 - ;; - -L?* | -F?*) - parentArgs+=("$1") - shift 1 - ;; - -o) - outputName="$2" - parentArgs+=("$1" "$2") - shift 2 - ;; - -install_name | -dylib_install_name | -dynamic-linker | -plugin) - parentArgs+=("$1" "$2") - shift 2 - ;; - -rpath) - # Only an rpath to the child is needed, which we will add - shift 2 - ;; - *) - if [[ -f "$1" ]]; then - # Propabably a non-standard object file like Haskell's - # `.dyn_o`. Skip it like other inputs - : - else - parentArgs+=("$1") - fi - shift 1 - ;; - esac -done - - - -if (( "$overflowCount" <= "$recurThreshold" )); then - if [ -n "${NIX_DEBUG:-}" ]; then - echo "ld-wrapper: Only ${overflowCount} inputs counted while ${recurThreshold} is the ceiling, linking normally. " >&2 - fi - PATH="$path_backup" - exec @prog@ "${origArgs[@]}" -fi - - - -if [ -n "${NIX_DEBUG:-}" ]; then - echo "ld-wrapper: ${overflowCount} inputs counted when ${recurThreshold} is the ceiling, inspecting further. " >&2 -fi - -# Collect the normalized linker input -declare -a norm=() - -# Arguments are null-separated -@prog@ --dump-normalized-lib-args "${origArgs[@]}" | - while IFS= read -r -d '' input; do - norm+=("$input") - done - -declare -i leafCount=0 -declare lastLeaf='' -declare -a childrenInputs=() trailingInputs=() -while (( "${#norm[@]}" )); do - case "${norm[0]}" in - -lazy_library | -upward_library) - # TODO(@Ericson2314): Don't do that, but intersperse children - # between such args. - echo "ld-wrapper: Warning: Potentially changing link order" >&2 - trailingInputs+=("${norm[0]}" "${norm[1]}") - norm=("${norm[@]:2}") - ;; - -reexport_library | -weak_library) - childrenInputs+=("${norm[0]}" "${norm[1]}") - if [[ "${norm[1]}" != "$lastLeaf" ]]; then - leafCount+=1 - lastLeaf="${norm[1]}" - fi - norm=("${norm[@]:2}") - ;; - *.so | *.dylib) - childrenInputs+=(-reexport_library "${norm[0]}") - if [[ "${norm[0]}" != "$lastLeaf" ]]; then - leafCount+=1 - lastLeaf="${norm[0]}" - fi - norm=("${norm[@]:1}") - ;; - *.o | *.a) - # Don't delegate object files or static libs - parentArgs+=("${norm[0]}") - norm=("${norm[@]:1}") - ;; - *) - if [[ -f "${norm[0]}" ]]; then - # Propabably a non-standard object file. We'll let it by. - parentArgs+=("${norm[0]}") - norm=("${norm[@]:1}") - else - echo "ld-wrapper: Internal Error: Invalid normalized argument" >&2 - exit 255 - fi - ;; - esac -done - - - -if (( "$leafCount" <= "$recurThreshold" )); then - if [ -n "${NIX_DEBUG:-}" ]; then - echo "ld-wrapper: Only ${leafCount} *dynamic* inputs counted while ${recurThreshold} is the ceiling, linking normally. " >&2 - fi - PATH="$path_backup" - exec @prog@ "${origArgs[@]}" -fi - - - -if [ -n "${NIX_DEBUG:-}" ]; then - echo "ld-wrapper: ${leafCount} *dynamic* inputs counted when ${recurThreshold} is the ceiling, delegating to children. " >&2 -fi - -declare -r outputNameLibless=$( \ - if [[ -z "${outputName:+isUndefined}" ]]; then - echo unnamed - return 0; - fi - baseName=$(basename ${outputName}) - if [[ "$baseName" = lib* ]]; then - baseName="${baseName:3}" - fi - echo "$baseName") - -declare -ra children=( - "$outputNameLibless-reexport-delegate-0" - "$outputNameLibless-reexport-delegate-1" -) - -mkdir -p "$out/lib" - -symbolBloatObject=$outputNameLibless-symbol-hack.o -if [[ ! -f $symbolBloatObject ]]; then - # `-Q` means use GNU Assembler rather than Clang, avoiding an awkward - # dependency cycle. - printf '.private_extern _______child_hack_foo\nchild_hack_foo:\n' | - PATH="$PATH:@out@/bin" @targetPrefix@as -Q -- -o $symbolBloatObject -fi - -# Split inputs between children -declare -a child0Inputs=() child1Inputs=("${childrenInputs[@]}") -let "countFirstChild = $leafCount / 2" || true -lastLeaf='' -while (( "$countFirstChild" )); do - case "${child1Inputs[0]}" in - -reexport_library | -weak_library) - child0Inputs+=("${child1Inputs[0]}" "${child1Inputs[1]}") - if [[ "${child1Inputs[1]}" != "$lastLeaf" ]]; then - let countFirstChild-=1 || true - lastLeaf="${child1Inputs[1]}" - fi - child1Inputs=("${child1Inputs[@]:2}") - ;; - *.so | *.dylib) - child0Inputs+=(-reexport_library "${child1Inputs[0]}") - if [[ "${child1Inputs[0]}" != "$lastLeaf" ]]; then - let countFirstChild-=1 || true - lastLeaf="${child1Inputs[1]}" - fi - child1Inputs=("${child1Inputs[@]:2}") - ;; - *) - echo "ld-wrapper: Internal Error: Invalid delegated input" >&2 - exit -1 - ;; - esac -done - - -# First half of libs -@out@/bin/@targetPrefix@ld \ - -macosx_version_min $MACOSX_DEPLOYMENT_TARGET -arch x86_64 -dylib \ - -o "$out/lib/lib${children[0]}.dylib" \ - -install_name "$out/lib/lib${children[0]}.dylib" \ - "$symbolBloatObject" "${child0Inputs[@]}" "${trailingInputs[@]}" - -# Second half of libs -@out@/bin/@targetPrefix@ld \ - -macosx_version_min $MACOSX_DEPLOYMENT_TARGET -arch x86_64 -dylib \ - -o "$out/lib/lib${children[1]}.dylib" \ - -install_name "$out/lib/lib${children[1]}.dylib" \ - "$symbolBloatObject" "${child1Inputs[@]}" "${trailingInputs[@]}" - -parentArgs+=("-L$out/lib" -rpath "$out/lib") -if [[ $outputName != *reexport-delegate* ]]; then - parentArgs+=("-l${children[0]}" "-l${children[1]}") -else - parentArgs+=("-reexport-l${children[0]}" "-reexport-l${children[1]}") -fi - -parentArgs+=("${trailingInputs[@]}") - -if [ -n "${NIX_DEBUG:-}" ]; then - echo "flags using delegated children to @prog@:" >&2 - printf " %q\n" "${parentArgs[@]}" >&2 -fi - -PATH="$path_backup" -exec @prog@ "${parentArgs[@]}" diff --git a/pkgs/by-name/bi/binutils/bintools-wrapper/setup-hook.sh b/pkgs/by-name/bi/binutils/bintools-wrapper/setup-hook.sh deleted file mode 100644 index c146cbe..0000000 --- a/pkgs/by-name/bi/binutils/bintools-wrapper/setup-hook.sh +++ /dev/null @@ -1,72 +0,0 @@ -# Binutils Wrapper hygiene -# -# See comments in cc-wrapper's setup hook. This works exactly the same way. - -# Skip setup hook if we're neither a build-time dep, nor, temporarily, doing a -# native compile. -# -# TODO(@Ericson2314): No native exception -[[ -z ${strictDeps-} ]] || (( "$hostOffset" < 0 )) || return 0 - -bintoolsWrapper_addLDVars () { - # See ../setup-hooks/role.bash - local role_post - getHostRoleEnvHook - - if [[ -d "$1/lib64" && ! -L "$1/lib64" ]]; then - export NIX_LDFLAGS${role_post}+=" -L$1/lib64" - fi - - if [[ -d "$1/lib" ]]; then - # Don't add the /lib directory if it actually doesn't contain any libraries. For instance, - # Python and Haskell packages often only have directories like $out/lib/ghc-8.4.3/ or - # $out/lib/python3.6/, so having them in LDFLAGS just makes the linker search unnecessary - # directories and bloats the size of the environment variable space. - local -a glob=( $1/lib/lib* ) - if [ "${#glob[*]}" -gt 0 ]; then - export NIX_LDFLAGS${role_post}+=" -L$1/lib" - fi - fi -} - -# See ../setup-hooks/role.bash -getTargetRole -getTargetRoleWrapper - -addEnvHooks "$targetOffset" bintoolsWrapper_addLDVars - -# shellcheck disable=SC2157 -if [ -n "@bintools_bin@" ]; then - addToSearchPath _PATH @bintools_bin@/bin -fi - -# shellcheck disable=SC2157 -if [ -n "@libc_bin@" ]; then - addToSearchPath _PATH @libc_bin@/bin -fi - -# shellcheck disable=SC2157 -if [ -n "@coreutils_bin@" ]; then - addToSearchPath _PATH @coreutils_bin@/bin -fi - -# Export tool environment variables so various build systems use the right ones. - -export NIX_BINTOOLS${role_post}=@out@ - -for cmd in \ - ar as ld nm objcopy objdump readelf ranlib strip strings size windres -do - if - PATH=$_PATH type -p "@targetPrefix@${cmd}" > /dev/null - then - export "${cmd^^}${role_post}=@targetPrefix@${cmd}"; - fi -done - -# If unset, assume the default hardening flags. -: ${NIX_HARDENING_ENABLE="@default_hardening_flags_str@"} -export NIX_HARDENING_ENABLE - -# No local scope in sourced file -unset -v role_post cmd upper_case diff --git a/pkgs/by-name/bi/binutils/default.nix b/pkgs/by-name/bi/binutils/default.nix deleted file mode 100644 index c707d0d..0000000 --- a/pkgs/by-name/bi/binutils/default.nix +++ /dev/null @@ -1,273 +0,0 @@ -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 - -, enableGold ? withGold stdenv.targetPlatform -, enableGoldDefault ? false -, enableShared ? !stdenv.hostPlatform.isStatic - # WARN: Enabling all targets increases output size to a multiple. -, 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 -> withGold stdenv.targetPlatform; -assert enableGoldDefault -> enableGold; - - -let - inherit (stdenv) buildPlatform hostPlatform targetPlatform; - - version = "2.41"; - - srcs = { - normal = fetchurl { - url = "mirror://gnu/binutils/binutils-${version}.tar.bz2"; - hash = "sha256-pMS+wFL3uDcAJOYDieGUN38/SLVmGEGOpRBn9nqqsws="; - }; - vc4-none = fetchFromGitHub { - owner = "itszor"; - repo = "binutils-vc4"; - rev = "708acc851880dbeda1dd18aca4fd0a95b2573b36"; - sha256 = "1kdrz6fki55lm15rwwamn74fnqpy0zlafsida2zymk76n3656c63"; - }; - }; - - #INFO: The targetPrefix prepended to binary names to allow multiple binuntils - # on the PATH to both be usable. - targetPrefix = lib.optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-"; -in - -stdenv.mkDerivation (finalAttrs: { - pname = targetPrefix + "binutils"; - 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; - - # 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 - - # 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 - - # 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 - - # 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" ]; - - 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 ] - ; - - 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 - - # 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} - ''; - - postAutoreconf = '' - # As we regenerated configure build system tries hard to use - # texinfo to regenerate manuals. Let's avoid the dependency - # on texinfo in bootstrap path and keep manuals unmodified. - touch gas/doc/.dirstamp - touch gas/doc/asconfig.texi - touch gas/doc/as.1 - touch gas/doc/as.info - ''; - - # 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"; - - hardeningDisable = [ "format" "pie" ]; - - configurePlatforms = [ "build" "host" "target" ]; - - configureFlags = [ - "--enable-64-bit-bfd" - "--with-system-zlib" - - "--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" - - # 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" - - # 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; - - # INFO: Otherwise it fails with: - # `./sanity.sh: line 36: $out/bin/size: not found` - doInstallCheck = (buildPlatform == hostPlatform) && (hostPlatform == targetPlatform); - - enableParallelBuilding = true; - - # For the same reason we don't split "lib" output we undo the $target/ - # prefix for installed headers and libraries we link: - # $out/$host/$target/lib/* to $out/lib/ - # $out/$host/$target/include/* to $dev/include/* - # TODO(trofi): fix installation paths upstream so we could remove this - # code and have "lib" output unconditionally. - postInstall = lib.optionalString (hostPlatform.config != targetPlatform.config) '' - ln -s $out/${hostPlatform.config}/${targetPlatform.config}/lib/* $out/lib/ - ln -s $out/${hostPlatform.config}/${targetPlatform.config}/include/* $dev/include/ - ''; - - passthru = { - inherit targetPrefix; - hasGold = enableGold; - isGNU = true; - # Having --enable-plugins is not enough, system has to support - # dlopen() or equivalent. See config/plugins.m4 and configure.ac - # (around PLUGINS) for cases that support or not support plugins. - # No platform specific filters yet here. - hasPluginAPI = enableGold; - }; - - meta = with lib; { - description = "Tools for manipulating binaries (linker, assembler, etc.)"; - longDescription = '' - The GNU Binutils are a collection of binary tools. The main - ones are `ld' (the GNU linker) and `as' (the GNU assembler). - They also include the BFD (Binary File Descriptor) library, - `gprof', `nm', `strip', etc. - ''; - homepage = "https://www.gnu.org/software/binutils/"; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ ericson2314 lovesegfault ]; - platforms = platforms.unix; - - # INFO: Give binutils a lower priority than gcc-wrapper to prevent a - # collision due to the ld/as wrappers/symlinks in the latter. - priority = 10; - }; -}) diff --git a/pkgs/by-name/bi/binutils/deterministic.patch b/pkgs/by-name/bi/binutils/deterministic.patch deleted file mode 100644 index 736e0ac..0000000 --- a/pkgs/by-name/bi/binutils/deterministic.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur orig/binutils-2.23.1/ld/ldlang.c binutils-2.23.1/ld/ldlang.c ---- orig/ld/ldlang.c -+++ new/ld/ldlang.c -@@ -3095,6 +3095,8 @@ - ldfile_output_machine)) - einfo (_("%P%F:%s: can not set architecture: %E\n"), name); - -+ link_info.output_bfd->flags |= BFD_DETERMINISTIC_OUTPUT; -+ - link_info.hash = bfd_link_hash_table_create (link_info.output_bfd); - if (link_info.hash == NULL) - einfo (_("%P%F: can not create hash table: %E\n")); diff --git a/pkgs/by-name/bi/binutils/gold-powerpc-for-llvm.patch b/pkgs/by-name/bi/binutils/gold-powerpc-for-llvm.patch deleted file mode 100644 index 2933013..0000000 --- a/pkgs/by-name/bi/binutils/gold-powerpc-for-llvm.patch +++ /dev/null @@ -1,107 +0,0 @@ -https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=d537f77ef3b18a5fbfd598643aaad957652e9608 - -Fix llvm testsuite failure on a single test: - FAIL: LLVM :: tools/gold/PowerPC/mtriple.ll (43659 of 49708) - ld.gold: internal error in add_output_section_to_load, at output.cc:4097 - -From: Alan Modra -Date: Thu, 24 Aug 2023 23:42:18 +0000 (+0930) -Subject: PR30794, PowerPC gold: internal error in add_output_section_to_load -X-Git-Tag: gdb-14-branchpoint~482 -X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=d537f77ef3b18a5fbfd598643aaad957652e9608 - -PR30794, PowerPC gold: internal error in add_output_section_to_load - -Caused by commit 5a97377e5513, specifically this code added to -Target_powerpc::do_relax -+ if (parameters->options().output_is_position_independent()) -+ this->rela_dyn_size_ -+ = this->rela_dyn_section(layout)->current_data_size(); - -The problem here is that if .rela.dyn isn't already created then the -call to rela_dyn_section creates it, and as this comment in -Target_powerpc::do_finalize_sections says: - // Annoyingly, we need to make these sections now whether or - // not we need them. If we delay until do_relax then we - // need to mess with the relaxation machinery checkpointing. -We can't be creating sections in do_relax. - - PR 30794 - * powerpc.cc (Target_powerpc::do_relax): Only set rela_dyn_size_ - for size == 64, and assert that rela_dyn_ already exists. - Tidy code setting plt_thread_safe, which also only needs to be - set when size == 64 for ELFv1. ---- - -diff --git a/gold/powerpc.cc b/gold/powerpc.cc -index e66d9cbb900..a4fecaae55a 100644 ---- a/gold/powerpc.cc -+++ b/gold/powerpc.cc -@@ -3714,12 +3714,7 @@ Target_powerpc::do_relax(int pass, - unsigned int prev_brlt_size = 0; - if (pass == 1) - { -- bool thread_safe -- = this->abiversion() < 2 && parameters->options().plt_thread_safe(); -- if (size == 64 -- && this->abiversion() < 2 -- && !thread_safe -- && !parameters->options().user_set_plt_thread_safe()) -+ if (size == 64 && this->abiversion() < 2) - { - static const char* const thread_starter[] = - { -@@ -3747,29 +3742,37 @@ Target_powerpc::do_relax(int pass, - /* libgo */ - "__go_go", - }; -+ bool thread_safe = parameters->options().plt_thread_safe(); - -- if (parameters->options().shared()) -- thread_safe = true; -- else -+ if (!thread_safe -+ && !parameters->options().user_set_plt_thread_safe()) - { -- for (unsigned int i = 0; -- i < sizeof(thread_starter) / sizeof(thread_starter[0]); -- i++) -+ if (parameters->options().shared()) -+ thread_safe = true; -+ else - { -- Symbol* sym = symtab->lookup(thread_starter[i], NULL); -- thread_safe = (sym != NULL -- && sym->in_reg() -- && sym->in_real_elf()); -- if (thread_safe) -- break; -+ for (unsigned int i = 0; -+ i < sizeof(thread_starter) / sizeof(thread_starter[0]); -+ i++) -+ { -+ Symbol* sym = symtab->lookup(thread_starter[i], NULL); -+ thread_safe = (sym != NULL -+ && sym->in_reg() -+ && sym->in_real_elf()); -+ if (thread_safe) -+ break; -+ } - } - } -+ this->plt_thread_safe_ = thread_safe; - } -- this->plt_thread_safe_ = thread_safe; - -- if (parameters->options().output_is_position_independent()) -- this->rela_dyn_size_ -- = this->rela_dyn_section(layout)->current_data_size(); -+ if (size == 64 -+ && parameters->options().output_is_position_independent()) -+ { -+ gold_assert (this->rela_dyn_); -+ this->rela_dyn_size_ = this->rela_dyn_->current_data_size(); -+ } - - this->stub_group_size_ = parameters->options().stub_group_size(); - bool no_size_errors = true; diff --git a/pkgs/by-name/bi/binutils/libbfd.nix b/pkgs/by-name/bi/binutils/libbfd.nix deleted file mode 100644 index dca62b8..0000000 --- a/pkgs/by-name/bi/binutils/libbfd.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ lib, stdenv -, binutils-unwrapped-all-targets -}: - -stdenv.mkDerivation { - pname = "libbfd"; - inherit (binutils-unwrapped-all-targets) version; - - dontUnpack = true; - dontBuild = true; - dontInstall = true; - propagatedBuildInputs = [ - binutils-unwrapped-all-targets.dev - binutils-unwrapped-all-targets.lib - ]; - - passthru = { - inherit (binutils-unwrapped-all-targets) dev hasPluginAPI; - }; - - meta = with lib; { - description = "A library for manipulating containers of machine code"; - longDescription = '' - BFD is a library which provides a single interface to read and write - object files, executables, archive files, and core files in any format. - It is associated with GNU Binutils, and elsewhere often distributed with - it. - ''; - homepage = "https://www.gnu.org/software/binutils/"; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ ericson2314 ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/bi/binutils/libopcodes.nix b/pkgs/by-name/bi/binutils/libopcodes.nix deleted file mode 100644 index 06ef999..0000000 --- a/pkgs/by-name/bi/binutils/libopcodes.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib, stdenv -, binutils-unwrapped-all-targets -}: - -stdenv.mkDerivation { - pname = "libopcodes"; - inherit (binutils-unwrapped-all-targets) version; - - dontUnpack = true; - dontBuild = true; - dontInstall = true; - propagatedBuildInputs = [ - binutils-unwrapped-all-targets.dev - binutils-unwrapped-all-targets.lib - ]; - - # passthru = { - # inherit (binutils-unwrapped-all-targets) dev hasPluginAPI; - # }; - - meta = with lib; { - description = "A library from binutils for manipulating machine code"; - homepage = "https://www.gnu.org/software/binutils/"; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ ericson2314 ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/bi/binutils/packages.nix b/pkgs/by-name/bi/binutils/packages.nix deleted file mode 100644 index e4ffdcf..0000000 --- a/pkgs/by-name/bi/binutils/packages.nix +++ /dev/null @@ -1,69 +0,0 @@ -{ lib, noSysDirs, ... }: -res: pkgs: super: - -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 - # host platform. - # - # Because this is the *next* stages choice, it's a bit non-modular to put - # here. In theory, bootstraping is supposed to not be a chain but at tree, - # where each stage supports many "successor" stages, like multiple possible - # futures. We don't have a better alternative, but with this downside in - # mind, please be judicious when using this attribute. E.g. for building - # things in *this* stage you should use probably `stdenv.cc.bintools` (from a - # default or alternate `stdenv`), at build time, and try not to "force" a - # specific bintools at runtime at all. - # - # In other words, try to only use this in wrappers, and only use those - # wrappers from the next stage. - bintools-unwrapped = - let - inherit (stdenv.targetPlatform) linker; - in - 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; - bintoolsNoLibc = wrapBintoolsWith { - bintools = bintools-unwrapped; - libc = preLibcCrossHeaders; - }; - bintools = wrapBintoolsWith { - bintools = bintools-unwrapped; - }; - - bintoolsDualAs = wrapBintoolsWith { - bintools = darwin.binutilsDualAs-unwrapped; - wrapGas = true; - }; - - binutils-unwrapped = callPackage ./. { - autoreconfHook = autoreconfHook269; - # FHS sys dirs presumably only have stuff for the build platform - noSysDirs = (stdenv.targetPlatform != stdenv.hostPlatform) || noSysDirs; - }; - binutils-unwrapped-all-targets = callPackage ./. { - autoreconfHook = if targetPlatform.isiOS then autoreconfHook269 else autoreconfHook; - # FHS sys dirs presumably only have stuff for the build platform - noSysDirs = (stdenv.targetPlatform != stdenv.hostPlatform) || noSysDirs; - withAllTargets = true; - }; - binutils = wrapBintoolsWith { - bintools = binutils-unwrapped; - }; - binutils_nogold = lowPrio (wrapBintoolsWith { - bintools = binutils-unwrapped.override { - enableGold = false; - }; - }); - binutilsNoLibc = wrapBintoolsWith { - bintools = binutils-unwrapped; - libc = preLibcCrossHeaders; - }; - - libbfd = callPackage ./libbfd.nix { }; -} diff --git a/pkgs/by-name/bi/binutils/plugins-no-BINDIR.patch b/pkgs/by-name/bi/binutils/plugins-no-BINDIR.patch deleted file mode 100644 index 562aad3..0000000 --- a/pkgs/by-name/bi/binutils/plugins-no-BINDIR.patch +++ /dev/null @@ -1,25 +0,0 @@ -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. ---- a/bfd/plugin.c -+++ b/bfd/plugin.c -@@ -493,7 +493,7 @@ build_plugin_list (bfd *abfd) - when configuring binutils using --libdir. Search in the proper - path first, then the old one for backwards compatibility. */ - static const char *path[] -- = { LIBDIR "/bfd-plugins", BINDIR "/../lib/bfd-plugins" }; -+ = { LIBDIR "/bfd-plugins", }; - struct stat last_st; - unsigned int i; - -@@ -508,9 +508,7 @@ build_plugin_list (bfd *abfd) - last_st.st_ino = 0; - for (i = 0; i < sizeof (path) / sizeof (path[0]); i++) - { -- char *plugin_dir = make_relative_prefix (plugin_program_name, -- BINDIR, -- path[i]); -+ char *plugin_dir = xstrdup (path[i]); - if (plugin_dir) - { - struct stat st; diff --git a/pkgs/by-name/bi/binutils/ppc-make-machine-less-strict.patch b/pkgs/by-name/bi/binutils/ppc-make-machine-less-strict.patch deleted file mode 100644 index c245241..0000000 --- a/pkgs/by-name/bi/binutils/ppc-make-machine-less-strict.patch +++ /dev/null @@ -1,51 +0,0 @@ -From cebc89b9328eab994f6b0314c263f94e7949a553 Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Mon, 21 Feb 2022 10:58:57 +1030 -Subject: [PATCH] binutils 2.38 vs. ppc32 linux kernel - -Commit b25f942e18d6 made .machine more strict. Weaken it again. - - * config/tc-ppc.c (ppc_machine): Treat an early .machine specially, - keeping sticky options to work around gcc bugs. ---- - gas/config/tc-ppc.c | 25 ++++++++++++++++++++++++- - 1 file changed, 24 insertions(+), 1 deletion(-) - -diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c -index 054f9c72161..89bc7d3f9b9 100644 ---- a/gas/config/tc-ppc.c -+++ b/gas/config/tc-ppc.c -@@ -5965,7 +5965,30 @@ ppc_machine (int ignore ATTRIBUTE_UNUSED) - options do not count as a new machine, instead they add - to currently selected opcodes. */ - ppc_cpu_t machine_sticky = 0; -- new_cpu = ppc_parse_cpu (ppc_cpu, &machine_sticky, cpu_string); -+ /* Unfortunately, some versions of gcc emit a .machine -+ directive very near the start of the compiler's assembly -+ output file. This is bad because it overrides user -Wa -+ cpu selection. Worse, there are versions of gcc that -+ emit the *wrong* cpu, not even respecting the -mcpu given -+ to gcc. See gcc pr101393. And to compound the problem, -+ as of 20220222 gcc doesn't pass the correct cpu option to -+ gas on the command line. See gcc pr59828. Hack around -+ this by keeping sticky options for an early .machine. */ -+ asection *sec; -+ for (sec = stdoutput->sections; sec != NULL; sec = sec->next) -+ { -+ segment_info_type *info = seg_info (sec); -+ /* Are the frags for this section perturbed from their -+ initial state? Even .align will count here. */ -+ if (info != NULL -+ && (info->frchainP->frch_root != info->frchainP->frch_last -+ || info->frchainP->frch_root->fr_type != rs_fill -+ || info->frchainP->frch_root->fr_fix != 0)) -+ break; -+ } -+ new_cpu = ppc_parse_cpu (ppc_cpu, -+ sec == NULL ? &sticky : &machine_sticky, -+ cpu_string); - if (new_cpu != 0) - ppc_cpu = new_cpu; - else --- -2.31.1 diff --git a/pkgs/by-name/bi/binutils/support-ios.patch b/pkgs/by-name/bi/binutils/support-ios.patch deleted file mode 100644 index 74e56d1..0000000 --- a/pkgs/by-name/bi/binutils/support-ios.patch +++ /dev/null @@ -1,168 +0,0 @@ -diff --git a/bfd/config.bfd b/bfd/config.bfd -index f04a993f06..1e24a9d030 100644 ---- a/bfd/config.bfd -+++ b/bfd/config.bfd -@@ -238,7 +238,7 @@ case "${targ}" in - - # START OF targmatch.h - #ifdef BFD64 -- aarch64-*-darwin*) -+ aarch64-*-darwin* | aarch64-*-ios*) - targ_defvec=aarch64_mach_o_vec - targ_selvecs="arm_mach_o_vec mach_o_le_vec mach_o_be_vec mach_o_fat_vec" - targ_archs="$targ_archs bfd_i386_arch bfd_powerpc_arch bfd_rs6000_arch" -@@ -358,7 +358,7 @@ case "${targ}" in - targ_selvecs=arc_elf32_be_vec - ;; - -- arm-*-darwin*) -+ arm-*-darwin* | arm-*-ios*) - targ_defvec=arm_mach_o_vec - targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec" - targ_archs="$targ_archs bfd_i386_arch bfd_powerpc_arch bfd_rs6000_arch" -@@ -678,7 +678,7 @@ case "${targ}" in - i[3-7]86-*-aix*) - targ_defvec=i386_coff_vec - ;; -- i[3-7]86-*-darwin* | i[3-7]86-*-macos10* | i[3-7]86-*-rhapsody*) -+ i[3-7]86-*-darwin* | i[3-7]86-*-ios* | i[3-7]86-*-macos10* | i[3-7]86-*-rhapsody*) - targ_defvec=i386_mach_o_vec - targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec" - targ64_selvecs=x86_64_mach_o_vec -@@ -762,7 +762,7 @@ case "${targ}" in - targ_defvec=x86_64_elf64_cloudabi_vec - want64=true - ;; -- x86_64-*-darwin*) -+ x86_64-*-darwin* | x86_64-*-ios*) - targ_defvec=x86_64_mach_o_vec - targ_selvecs="i386_mach_o_vec mach_o_le_vec mach_o_be_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec" - targ_archs="$targ_archs bfd_powerpc_arch bfd_rs6000_arch" -@@ -1402,7 +1402,7 @@ case "${targ}" in - targ_selvecs="powerpc_elf32_le_vec powerpc_boot_vec" - targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec" - ;; -- powerpc-*-darwin* | powerpc-*-macos10* | powerpc-*-rhapsody*) -+ powerpc-*-darwin* | powerpc-*-ios* | powerpc-*-macos10* | powerpc-*-rhapsody*) - targ_defvec=mach_o_be_vec - targ_selvecs="mach_o_be_vec mach_o_le_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec" - targ_archs="$targ_archs bfd_i386_arch" -diff --git a/configure.ac b/configure.ac -index aae94501e4..2cceb4dad4 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -510,7 +510,7 @@ if test x$enable_libgomp = x ; then - ;; - *-*-solaris2* | *-*-hpux11*) - ;; -- *-*-darwin* | *-*-aix*) -+ *-*-darwin* | *-*-ios* | *-*-aix*) - ;; - nvptx*-*-*) - ;; -@@ -700,13 +700,13 @@ esac - - # Disable libffi for some systems. - case "${target}" in -- powerpc-*-darwin*) -+ powerpc-*-darwin* | powerpc-*-ios*) - ;; -- i[[3456789]]86-*-darwin*) -+ i[[3456789]]86-*-darwin* | i[[3456789]]86-*-ios*) - ;; -- x86_64-*-darwin[[912]]*) -+ x86_64-*-darwin[[912]]* | x86_64-*-ios[[912]]*) - ;; -- *-*-darwin*) -+ *-*-darwin* | *-*-ios*) - noconfigdirs="$noconfigdirs target-libffi" - ;; - *-*-netware*) -@@ -788,7 +788,7 @@ esac - # Disable the go frontend on systems where it is known to not work. Please keep - # this in sync with contrib/config-list.mk. - case "${target}" in --*-*-darwin* | *-*-cygwin* | *-*-mingw*) -+*-*-darwin* | *-*-ios* | *-*-cygwin* | *-*-mingw*) - unsupported_languages="$unsupported_languages go" - ;; - esac -@@ -797,7 +797,7 @@ esac - # For testing, you can easily override this with --enable-libgo. - if test x$enable_libgo = x; then - case "${target}" in -- *-*-darwin*) -+ *-*-darwin* | *-*-ios*) - # PR 46986 - noconfigdirs="$noconfigdirs target-libgo" - ;; -@@ -916,27 +916,27 @@ esac - case "${target}" in - *-*-chorusos) - ;; -- aarch64-*-darwin*) -+ aarch64-*-darwin* | aarch64-*-ios*) - noconfigdirs="$noconfigdirs ld gas gdb gprof" - noconfigdirs="$noconfigdirs sim target-rda" - ;; -- arm-*-darwin*) -+ arm-*-darwin* | arm-*-ios*) - noconfigdirs="$noconfigdirs ld gas gdb gprof" - noconfigdirs="$noconfigdirs sim target-rda" - ;; -- powerpc-*-darwin*) -+ powerpc-*-darwin* | powerpc-*-ios*) - noconfigdirs="$noconfigdirs ld gas gdb gprof" - noconfigdirs="$noconfigdirs sim target-rda" - ;; -- i[[3456789]]86-*-darwin*) -+ i[[3456789]]86-*-darwin* | i[[3456789]]86-*-ios*) - noconfigdirs="$noconfigdirs ld gprof" - noconfigdirs="$noconfigdirs sim target-rda" - ;; -- x86_64-*-darwin[[912]]*) -+ x86_64-*-darwin[[912]]* | x86_64-*-ios[[912]]*) - noconfigdirs="$noconfigdirs ld gas gprof" - noconfigdirs="$noconfigdirs sim target-rda" - ;; -- *-*-darwin*) -+ *-*-darwin* | *-*-ios*) - noconfigdirs="$noconfigdirs ld gas gdb gprof" - noconfigdirs="$noconfigdirs sim target-rda" - ;; -@@ -1226,7 +1226,7 @@ case "${host}" in - hppa*-*) - host_makefile_frag="config/mh-pa" - ;; -- *-*-darwin*) -+ *-*-darwin* | *-*-ios*) - host_makefile_frag="config/mh-darwin" - ;; - powerpc-*-aix*) -@@ -1697,7 +1697,7 @@ ACX_ELF_TARGET_IFELSE([# ELF platforms build the lto-plugin always. - build_lto_plugin=yes - ],[if test x"$default_enable_lto" = x"yes" ; then - case $target in -- *-apple-darwin[[912]]* | *-cygwin* | *-mingw* | *djgpp*) ;; -+ *-apple-darwin[[912]]* | *-apple-ios[[912]]* | *-cygwin* | *-mingw* | *djgpp*) ;; - # On other non-ELF platforms, LTO has yet to be validated. - *) enable_lto=no ;; - esac -@@ -1708,7 +1708,7 @@ ACX_ELF_TARGET_IFELSE([# ELF platforms build the lto-plugin always. - # warn during gcc/ subconfigure; unless you're bootstrapping with - # -flto it won't be needed until after installation anyway. - case $target in -- *-cygwin* | *-mingw* | *-apple-darwin* | *djgpp*) ;; -+ *-cygwin* | *-mingw* | *-apple-darwin* | *-apple-ios* | *djgpp*) ;; - *) if test x"$enable_lto" = x"yes"; then - AC_MSG_ERROR([LTO support is not enabled for this target.]) - fi -@@ -2590,7 +2590,7 @@ rm -f conftest* - # Decide which environment variable is used to find dynamic libraries. - case "${host}" in - *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;; -- *-*-darwin*) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;; -+ *-*-darwin* | *-*-ios* ) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;; - *-*-mingw* | *-*-cygwin ) RPATH_ENVVAR=PATH ;; - *) RPATH_ENVVAR=LD_LIBRARY_PATH ;; - esac diff --git a/pkgs/by-name/bi/binutils/windres-locate-gcc.patch b/pkgs/by-name/bi/binutils/windres-locate-gcc.patch deleted file mode 100644 index 721667c..0000000 --- a/pkgs/by-name/bi/binutils/windres-locate-gcc.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff --git a/binutils/resrc.c b/binutils/resrc.c -index a875c3a4..0411d047 100644 ---- a/binutils/resrc.c -+++ b/binutils/resrc.c -@@ -521,7 +521,13 @@ read_rc_file (const char *filename, const char *preprocessor, - - cpp_pipe = 0; - -- if (dash) -+ /* Nixpkgs specific : look first at the prefixed path -+ ( there should be no gcc in the binutils folder ) */ -+ if (slash && dash) { -+ cpp_pipe = look_for_default(cmd, slash + 1, dash - slash, preprocargs, filename); -+ } -+ -+ if (dash && ! cpp_pipe) - { - /* First, try looking for a prefixed gcc in the windres - directory, with the same prefix as windres */ diff --git a/pkgs/by-name/bi/bison/default.nix b/pkgs/by-name/bi/bison/default.nix deleted file mode 100644 index 8f8dd82..0000000 --- a/pkgs/by-name/bi/bison/default.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ 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 -# cgit) that are needed here should be included directly in Nixpkgs as -# files. - -stdenv.mkDerivation rec { - pname = "bison"; - version = "3.8.2"; - - src = fetchurl { - url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz"; - sha256 = "sha256-BsnhO99+sk1M62tZIFpPZ8LH5yExGWREMP6C+9FKCrs="; - }; - - # gnulib relies on --host= to detect iconv() features on musl(). - # Otherwise tests fail due to incorrect unicode symbol oconversion. - 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; - propagatedBuildInputs = [ m4 ]; - - enableParallelBuilding = true; - - # Normal check and install check largely execute the same test suite - doCheck = false; - doInstallCheck = true; - - meta = { - homepage = "https://www.gnu.org/software/bison/"; - description = "Yacc-compatible parser generator"; - license = lib.licenses.gpl3Plus; - - longDescription = '' - Bison is a general-purpose parser generator that converts an - annotated context-free grammar into an LALR(1) or GLR parser for - that grammar. Once you are proficient with Bison, you can use - it to develop a wide range of language parsers, from those used - in simple desk calculators to complex programming languages. - - Bison is upward compatible with Yacc: all properly-written Yacc - grammars ought to work with Bison with no change. Anyone - familiar with Yacc should be able to use Bison with little - trouble. You need to be fluent in C or C++ programming in order - to use Bison. - ''; - - platforms = lib.platforms.unix; - }; - - # passthru = { glrSupport = true; }; -} diff --git a/pkgs/by-name/bl/bluez-alsa/default.nix b/pkgs/by-name/bl/bluez-alsa/default.nix deleted file mode 100644 index 911efe4..0000000 --- a/pkgs/by-name/bl/bluez-alsa/default.nix +++ /dev/null @@ -1,86 +0,0 @@ -{ lib -, stdenv -, aacSupport ? true -, alsa-lib -, autoreconfHook -, bluez -, dbus -, fdk_aac -, fetchFromGitHub -, gitUpdater -, glib -, libbsd -, ncurses -, pkg-config -, readline -, sbc -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "bluez-alsa"; - version = "4.1.1"; - - src = fetchFromGitHub { - owner = "Arkq"; - repo = "bluez-alsa"; - rev = "v${finalAttrs.version}"; - hash = "sha256-oGaYiSkOhqfjUl+mHTs3gqFcxli3cgkRtT6tbjy3ht0="; - }; - - nativeBuildInputs = [ - autoreconfHook - pkg-config - ]; - - buildInputs = [ - alsa-lib - bluez - glib - sbc - dbus - readline - libbsd - ncurses - ] ++ lib.optionals aacSupport [ - fdk_aac - ]; - - configureFlags = [ - (lib.enableFeature aacSupport "aac") - (lib.enableFeature true "hcitop") - (lib.enableFeature true "rfcomm") - (lib.withFeatureAs true "alsaplugindir" "${placeholder "out"}/lib/alsa-lib") - (lib.withFeatureAs true "dbusconfdir" "${placeholder "out"}/share/dbus-1/system.d") - ]; - - passthru.updateScript = gitUpdater { }; - - meta = { - homepage = "https://github.com/Arkq/bluez-alsa"; - description = "Bluez 5 Bluetooth Audio ALSA Backend"; - longDescription = '' - Bluez-ALSA (BlueALSA) is an ALSA backend for Bluez 5 audio interface. - Bluez-ALSA registers all Bluetooth devices with audio profiles in Bluez - under a virtual ALSA PCM device called `bluealsa` that supports both - playback and capture. - - Some backstory: Bluez 5 removed built-in support for ALSA in favor of a - generic interface for 3rd party appliations. Thereafter, PulseAudio - implemented a backend for that interface and became the only way to get - Bluetooth audio with Bluez 5. Users prefering ALSA stayed on Bluez 4. - However, Bluez 4 eventually became deprecated. - - This package is a rebirth of a direct interface between ALSA and Bluez 5, - that, unlike PulseAudio, provides KISS near-metal-like experience. It is - not possible to run BluezALSA and PulseAudio Bluetooth at the same time - due to limitations in Bluez, but it is possible to run PulseAudio over - BluezALSA if you disable `bluetooth-discover` and `bluez5-discover` - modules in PA and configure it to play/capture sound over `bluealsa` PCM. - ''; - license = with lib.licenses; [ mit ]; - mainProgram = "bluealsa"; - maintainers = with lib.maintainers; [ AndersonTorres oxij ]; - platforms = lib.platforms.linux; - }; -}) -# TODO: aptxSupport diff --git a/pkgs/by-name/bl/bluez-tools/default.nix b/pkgs/by-name/bl/bluez-tools/default.nix deleted file mode 100644 index 47d381a..0000000 --- a/pkgs/by-name/bl/bluez-tools/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ lib -, stdenv -, autoreconfHook -, fetchFromGitHub -, glib -, pkg-config -, readline -, unstableGitUpdater -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "bluez-tools"; - version = "unstable-2020-10-25"; - - src = fetchFromGitHub { - owner = "khvzak"; - repo = "bluez-tools"; - rev = "f65321736475429316f07ee94ec0deac8e46ec4a"; - hash = "sha256-GNtuMqMv/87bp3GX9Lh+CK/VKPluNVeWZRRVOD5NY3Y="; - }; - - nativeBuildInputs = [ - autoreconfHook - pkg-config - ]; - - buildInputs = [ - glib - readline - ]; - - strictDeps = true; - - passthru.updateScript = unstableGitUpdater { }; - - meta = { - homepage = "https://github.com/khvzak/bluez-tools"; - description = "A set of tools to manage bluetooth devices for linux"; - license = with lib.licenses; [ gpl2Plus ]; - mainProgram = "bt-agent"; - maintainers = with lib.maintainers; [ AndersonTorres ]; - platforms = lib.platforms.linux; - }; -}) diff --git a/pkgs/by-name/bl/bluez/default.nix b/pkgs/by-name/bl/bluez/default.nix deleted file mode 100644 index f23f333..0000000 --- a/pkgs/by-name/bl/bluez/default.nix +++ /dev/null @@ -1,167 +0,0 @@ -{ lib -, stdenv -, alsa-lib -, dbus -, docutils -, ell -, enableExperimental ? false -, fetchurl -, glib -, json_c -, libical -, pkg-config -, python3 -, readline -, systemdMinimal -, udev -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "bluez"; - version = "5.72"; - - src = fetchurl { - url = "mirror://kernel/linux/bluetooth/bluez-${finalAttrs.version}.tar.xz"; - hash = "sha256-SZ1/o0WplsG7ZQ9cZ0nh2SkRH6bs4L4OmGh/7mEkU24="; - }; - - 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="; - }) - ; - - buildInputs = [ - alsa-lib - dbus - ell - glib - json_c - libical - python3 - readline - udev - ]; - - nativeBuildInputs = [ - docutils - pkg-config - python3.pkgs.pygments - python3.pkgs.wrapPython - ]; - - 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 - ''; - - configureFlags = [ - "--localstatedir=/var" - (lib.enableFeature enableExperimental "experimental") - (lib.enableFeature true "btpclient") - (lib.enableFeature true "cups") - (lib.enableFeature true "external-ell") - (lib.enableFeature true "health") - (lib.enableFeature true "hid2hci") - (lib.enableFeature true "library") - (lib.enableFeature true "logger") - (lib.enableFeature true "mesh") - (lib.enableFeature true "midi") - (lib.enableFeature true "nfc") - (lib.enableFeature true "pie") - (lib.enableFeature true "sixaxis") - # Set "deprecated" to provide ciptool, sdptool, and rfcomm (unmaintained); - # superseded by new D-Bus APIs - (lib.enableFeature true "deprecated") - (lib.withFeatureAs true "dbusconfdir" "${placeholder "out"}/share") - (lib.withFeatureAs true "dbussessionbusdir" "${placeholder "out"}/share/dbus-1/services") - (lib.withFeatureAs true "dbussystembusdir" "${placeholder "out"}/share/dbus-1/system-services") - (lib.withFeatureAs true "systemdsystemunitdir" "${placeholder "out"}/etc/systemd/system") - (lib.withFeatureAs true "systemduserunitdir" "${placeholder "out"}/etc/systemd/user") - (lib.withFeatureAs true "udevdir" "${placeholder "out"}/lib/udev") - ]; - - makeFlags = [ - "rulesdir=${placeholder "out"}/lib/udev/rules.d" - ]; - - # Work around `make install' trying to create /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}" - - # 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 - - # 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 - ''; - - enableParallelBuilding = true; - - meta = { - 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 ]; - 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 deleted file mode 100644 index 3fa5885..0000000 --- a/pkgs/by-name/bl/bluez/packages.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - bluez = callPackage ./. { }; - bluez5 = bluez; - bluez5-experimental = bluez-experimental; - bluez-experimental = bluez.override { - enableExperimental = true; - }; -} diff --git a/pkgs/by-name/bo/boehmgc/default.nix b/pkgs/by-name/bo/boehmgc/default.nix deleted file mode 100644 index 9711457..0000000 --- a/pkgs/by-name/bo/boehmgc/default.nix +++ /dev/null @@ -1,85 +0,0 @@ -{ 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 -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "boehm-gc"; - version = "8.2.6"; - - src = fetchFromGitHub { - owner = "ivmai"; - repo = "bdwgc"; - rev = "v${finalAttrs.version}"; - hash = "sha256-y6hU5qU4qO9VvQvKNH9dvReCrf3+Ih2HHbF6IS1V3WQ="; - }; - - outputs = [ "out" "dev" "doc" ]; - separateDebugInfo = stdenv.isLinux && stdenv.hostPlatform.libc != "musl"; - - 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"; - - # This stanza can be dropped when a release fixes this issue: - # https://github.com/ivmai/bdwgc/issues/376 - # The version is checked with == instead of versionAtLeast so we - # 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" - ]; - - # `gctest` fails under emulation on aarch64-darwin - doCheck = !(stdenv.isDarwin && stdenv.isx86_64); - - enableParallelBuilding = true; - - passthru.tests = nixVersions; - - meta = { - homepage = "https://hboehm.info/gc/"; - description = "The Boehm-Demers-Weiser conservative garbage collector for C and C++"; - longDescription = '' - The Boehm-Demers-Weiser conservative garbage collector can be used as a - garbage collecting replacement for C malloc or C++ new. It allows you - to allocate memory basically as you normally would, without explicitly - deallocating memory that is no longer useful. The collector - automatically recycles memory when it determines that it can no longer - be otherwise accessed. - - The collector is also used by a number of programming language - implementations that either use C as intermediate code, want to - facilitate easier interoperation with C libraries, or just prefer the - simple collector interface. - - Alternatively, the garbage collector may be used as a leak detector for - C or C++ programs, though that is not its primary goal. - ''; - changelog = "https://github.com/ivmai/bdwgc/blob/v${finalAttrs.version}/ChangeLog"; - license = "https://hboehm.info/gc/license.txt"; # non-copyleft, X11-style license - maintainers = with lib.maintainers; [ ]; - platforms = lib.platforms.all; - }; -}) diff --git a/pkgs/by-name/bo/boost-build/default.nix b/pkgs/by-name/bo/boost-build/default.nix deleted file mode 100644 index 6b485b8..0000000 --- a/pkgs/by-name/bo/boost-build/default.nix +++ /dev/null @@ -1,74 +0,0 @@ -{ 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 - defaultVersion = "4.4.1"; -in - -stdenv.mkDerivation { - pname = "boost-build"; - version = - if useBoost ? version - then "boost-${useBoost.version}" - else defaultVersion; - - 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 []; - - # 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 - ''; - - nativeBuildInputs = [ - bison - ]; - - buildPhase = '' - runHook preBuild - ./bootstrap.sh - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - ./b2 install --prefix="$out" - - # older versions of b2 created this symlink, - # which we want to support building via useBoost. - test -e "$out/bin/bjam" || ln -s b2 "$out/bin/bjam" - - runHook postInstall - ''; - - meta = with lib; { - homepage = "https://www.boost.org/build/"; - license = lib.licenses.boost; - platforms = platforms.unix; - maintainers = with maintainers; [ ivan-tkatchev ]; - }; -} diff --git a/pkgs/by-name/bo/boost/1.75.nix b/pkgs/by-name/bo/boost/1.75.nix deleted file mode 100644 index ec77070..0000000 --- a/pkgs/by-name/bo/boost/1.75.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ 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"; - }; -}) - diff --git a/pkgs/by-name/bo/boost/1.77.nix b/pkgs/by-name/bo/boost/1.77.nix deleted file mode 100644 index 3da1a45..0000000 --- a/pkgs/by-name/bo/boost/1.77.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ 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="; - }; -}) - diff --git a/pkgs/by-name/bo/boost/1.78.nix b/pkgs/by-name/bo/boost/1.78.nix deleted file mode 100644 index 2cc818e..0000000 --- a/pkgs/by-name/bo/boost/1.78.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ 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"; - }; -}) - diff --git a/pkgs/by-name/bo/boost/1.79.nix b/pkgs/by-name/bo/boost/1.79.nix deleted file mode 100644 index 87975e2..0000000 --- a/pkgs/by-name/bo/boost/1.79.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ callPackage, fetchurl, fetchpatch, ... } @ args: - -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"; - }; -}) diff --git a/pkgs/by-name/bo/boost/1.80.nix b/pkgs/by-name/bo/boost/1.80.nix deleted file mode 100644 index 1aab51a..0000000 --- a/pkgs/by-name/bo/boost/1.80.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ callPackage, fetchurl, fetchpatch, ... } @ args: - -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"; - }; -}) diff --git a/pkgs/by-name/bo/boost/1.81.nix b/pkgs/by-name/bo/boost/1.81.nix deleted file mode 100644 index 2376255..0000000 --- a/pkgs/by-name/bo/boost/1.81.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ callPackage, fetchurl, fetchpatch, ... } @ args: - -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"; - }; -}) diff --git a/pkgs/by-name/bo/boost/1.82.nix b/pkgs/by-name/bo/boost/1.82.nix deleted file mode 100644 index 193d07e..0000000 --- a/pkgs/by-name/bo/boost/1.82.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ callPackage, fetchurl, fetchpatch, ... } @ args: - -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"; - }; -}) diff --git a/pkgs/by-name/bo/boost/1.83.nix b/pkgs/by-name/bo/boost/1.83.nix deleted file mode 100644 index df5c5a5..0000000 --- a/pkgs/by-name/bo/boost/1.83.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ callPackage, fetchurl, fetchpatch, ... } @ args: - -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"; - }; -}) diff --git a/pkgs/by-name/bo/boost/1.84.nix b/pkgs/by-name/bo/boost/1.84.nix deleted file mode 100644 index a55f55a..0000000 --- a/pkgs/by-name/bo/boost/1.84.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ callPackage, fetchurl, fetchpatch, ... } @ args: - -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"; - }; -}) diff --git a/pkgs/by-name/bo/boost/1.85.nix b/pkgs/by-name/bo/boost/1.85.nix deleted file mode 100644 index 2a3252d..0000000 --- a/pkgs/by-name/bo/boost/1.85.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ callPackage, fetchurl, fetchpatch, ... } @ args: - -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"; - }; -}) diff --git a/pkgs/by-name/bo/boost/cmake-paths-173.patch b/pkgs/by-name/bo/boost/cmake-paths-173.patch deleted file mode 100644 index 7b88da0..0000000 --- a/pkgs/by-name/bo/boost/cmake-paths-173.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/tools/boost_install/boost-install.jam b/tools/boost_install/boost-install.jam -index 4238f921e..8fc1ea269 100644 ---- a/tools/boost_install/boost-install.jam -+++ b/tools/boost_install/boost-install.jam -@@ -649,7 +649,7 @@ rule generate-cmake-config- ( target : sources * : properties * ) - "" - "# Compute the include and library directories relative to this file." - "" -- "get_filename_component(_BOOST_CMAKEDIR \"${CMAKE_CURRENT_LIST_DIR}/../\" REALPATH)" -+ "get_filename_component(_BOOST_REAL_CMAKEDIR \"${CMAKE_CURRENT_LIST_DIR}/../\" REALPATH)" - : true ; - - if [ path.is-rooted $(cmakedir) ] -@@ -668,6 +668,8 @@ rule generate-cmake-config- ( target : sources * : properties * ) - " unset(_BOOST_CMAKEDIR_ORIGINAL)" - "endif()" - "" -+ "# Assume that the installer actually did know where the libs were to be installed" -+ "get_filename_component(_BOOST_CMAKEDIR \"$(cmakedir-native)\" REALPATH)" - : true ; - } - diff --git a/pkgs/by-name/bo/boost/darwin-no-system-python.patch b/pkgs/by-name/bo/boost/darwin-no-system-python.patch deleted file mode 100644 index 73e0910..0000000 --- a/pkgs/by-name/bo/boost/darwin-no-system-python.patch +++ /dev/null @@ -1,45 +0,0 @@ -diff --git a/tools/build/src/tools/python.jam b/tools/build/src/tools/python.jam -index 273b28a..2d2031e 100644 ---- a/tools/build/src/tools/python.jam -+++ b/tools/build/src/tools/python.jam -@@ -428,13 +428,7 @@ local rule windows-installed-pythons ( version ? ) - - local rule darwin-installed-pythons ( version ? ) - { -- version ?= $(.version-countdown) ; -- -- local prefix -- = [ GLOB /System/Library/Frameworks /Library/Frameworks -- : Python.framework ] ; -- -- return $(prefix)/Versions/$(version)/bin/python ; -+ return ; - } - - -@@ -890,25 +884,6 @@ local rule configure ( version ? : cmd-or-prefix ? : includes * : libraries ? : - - # See if we can find a framework directory on darwin. - local framework-directory ; -- if $(target-os) = darwin -- { -- # Search upward for the framework directory. -- local framework-directory = $(libraries[-1]) ; -- while $(framework-directory:D=) && $(framework-directory:D=) != Python.framework -- { -- framework-directory = $(framework-directory:D) ; -- } -- -- if $(framework-directory:D=) = Python.framework -- { -- debug-message framework directory is \"$(framework-directory)\" ; -- } -- else -- { -- debug-message "no framework directory found; using library path" ; -- framework-directory = ; -- } -- } - - local dll-path = $(libraries) ; - diff --git a/pkgs/by-name/bo/boost/default.nix b/pkgs/by-name/bo/boost/default.nix deleted file mode 100644 index 1a2ae9d..0000000 --- a/pkgs/by-name/bo/boost/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib -, callPackage -, boost-build -, fetchurl -}: - -let - makeBoost = file: - lib.fix (self: - callPackage file { - boost-build = boost-build.override { - # useBoost allows us passing in src and version from - # the derivation we are building to get a matching b2 version. - useBoost = self; - }; - } - ); -in { - boost175 = makeBoost ./1.75.nix; - boost177 = makeBoost ./1.77.nix; - boost178 = makeBoost ./1.78.nix; - boost179 = makeBoost ./1.79.nix; - boost180 = makeBoost ./1.80.nix; - boost181 = makeBoost ./1.81.nix; - boost182 = makeBoost ./1.82.nix; - boost183 = makeBoost ./1.83.nix; - boost184 = makeBoost ./1.84.nix; - boost185 = makeBoost ./1.85.nix; -} diff --git a/pkgs/by-name/bo/boost/generic.nix b/pkgs/by-name/bo/boost/generic.nix deleted file mode 100644 index cdcdb20..0000000 --- a/pkgs/by-name/bo/boost/generic.nix +++ /dev/null @@ -1,267 +0,0 @@ -{ 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 -, ... -}: - -# We must build at least one type of libraries -assert enableShared || enableStatic; - -assert enableNumpy -> enablePython; - -let - - variant = lib.concatStringsSep "," - (lib.optional enableRelease "release" ++ - lib.optional enableDebug "debug"); - - threading = lib.concatStringsSep "," - (lib.optional enableSingleThreaded "single" ++ - lib.optional enableMultiThreaded "multi"); - - 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); - - 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}" - - # 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 - ); - -in - -stdenv.mkDerivation { - pname = "boost"; - - inherit src version; - - 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"; - 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/"; - description = "Collection of C++ libraries"; - license = licenses.boost; - platforms = platforms.unix ++ platforms.windows; - # boost-context lacks support for the N32 ABI on mips64. The build - # will succeed, but packages depending on boost-context will fail with - # a very cryptic error message. - badPlatforms = [ lib.systems.inspect.patterns.isMips64n32 ]; - maintainers = with maintainers; [ hjones2199 ]; - }; - - # passthru = { - # 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 - ; - - 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"; - - enableParallelBuilding = true; - - 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.optional enableNumpy python.pkgs.numpy; - - configureScript = "./bootstrap.sh"; - 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}" - ++ [ (if enableIcu then "--with-icu=${icu.dev}" else "--without-icu") ]; - - buildPhase = '' - runHook preBuild - b2 ${b2Args} - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - # boostbook is needed by some applications - mkdir -p $dev/share/boostbook - cp -a tools/boostbook/{xsl,dtd} $dev/share/boostbook/ - - # Let boost install everything else - b2 ${b2Args} install - - 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 - ''; - - outputs = [ "out" "dev" ]; - setOutputFlags = false; -} diff --git a/pkgs/by-name/bo/boost/packages.nix b/pkgs/by-name/bo/boost/packages.nix deleted file mode 100644 index 4a1b526..0000000 --- a/pkgs/by-name/bo/boost/packages.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - inherit (callPackage ./. { inherit (buildPackages) boost-build; }) - boost175 - boost177 - boost178 - boost179 - boost180 - boost181 - boost182 - boost183 - boost184 - boost185 - ; - - boost = boost181; -} diff --git a/pkgs/by-name/bp/bpftools/default.nix b/pkgs/by-name/bp/bpftools/default.nix deleted file mode 100644 index 9ec4778..0000000 --- a/pkgs/by-name/bp/bpftools/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ lib, stdenv, linuxHeaders -, libopcodes, libopcodes_2_38 -, libbfd, libbfd_2_38 -, elfutils, readline -, zlib -, python3, bison, flex -}: - -stdenv.mkDerivation rec { - pname = "bpftools"; - - inherit (linuxHeaders) version src; - - separateDebugInfo = true; - - patches = [ - # fix unknown type name '__vector128' on ppc64le - ./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 ]; - - preConfigure = '' - patchShebangs scripts/bpf_doc.py - - cd tools/bpf - substituteInPlace ./bpftool/Makefile \ - --replace '/usr/local' "$out" \ - --replace '/usr' "$out" \ - --replace '/sbin' '/bin' - ''; - - buildFlags = [ "bpftool" "bpf_asm" "bpf_dbg" ]; - - installPhase = '' - make -C bpftool install - install -Dm755 -t $out/bin bpf_asm - install -Dm755 -t $out/bin bpf_dbg - ''; - - meta = with lib; { - homepage = "https://github.com/libbpf/bpftool"; - description = "Debugging/program analysis tools for the eBPF subsystem"; - license = [ licenses.gpl2 licenses.bsd2 ]; - platforms = platforms.linux; - maintainers = with maintainers; [ thoughtpolice ]; - }; -} diff --git a/pkgs/by-name/bp/bpftools/include-asm-types-for-ppc64le.patch b/pkgs/by-name/bp/bpftools/include-asm-types-for-ppc64le.patch deleted file mode 100644 index 47c8f80..0000000 --- a/pkgs/by-name/bp/bpftools/include-asm-types-for-ppc64le.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/tools/include/uapi/linux/types.h b/tools/include/uapi/linux/types.h -index 91fa51a9c31d..bfbd9b47277f 100644 ---- a/tools/include/uapi/linux/types.h -+++ b/tools/include/uapi/linux/types.h -@@ -2,7 +2,7 @@ - #ifndef _UAPI_LINUX_TYPES_H - #define _UAPI_LINUX_TYPES_H - --#include -+#include - - /* copied from linux:include/uapi/linux/types.h */ - #define __bitwise diff --git a/pkgs/by-name/br/brotli/default.nix b/pkgs/by-name/br/brotli/default.nix deleted file mode 100644 index 60429f4..0000000 --- a/pkgs/by-name/br/brotli/default.nix +++ /dev/null @@ -1,78 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, cmake -, staticOnly ? stdenv.hostPlatform.isStatic -, testers -}: - -# ?TODO: there's also python lib in there - -stdenv.mkDerivation (finalAttrs: { - pname = "brotli"; - version = "1.1.0"; - - src = fetchFromGitHub { - owner = "google"; - repo = "brotli"; - rev = "v${finalAttrs.version}"; - hash = "sha256-MvceRcle2dSkkucC2PlsCizsIf8iv95d8Xjqew266wc="; - }; - - patches = [ - # revert runpath change, breaks curl on darwin: - # https://github.com/NixOS/nixpkgs/pull/254532#issuecomment-1722337476 - (fetchpatch { - name = "revert-runpath.patch"; - url = "https://github.com/google/brotli/commit/f842c1bcf9264431cd3b15429a72b7dafbe80509.patch"; - hash = "sha256-W3LY3EjoHP74YsKOOcYQrzo+f0HbooOvEbnOibtN6TM="; - revert = true; - }) - ]; - - nativeBuildInputs = [ cmake ]; - - cmakeFlags = lib.optional staticOnly "-DBUILD_SHARED_LIBS=OFF"; - - outputs = [ "out" "dev" "lib" ]; - - doCheck = true; - - checkTarget = "test"; - - # Don't bother with "man" output for now, - # it currently only makes the manpages hard to use. - postInstall = '' - mkdir -p $out/share/man/man{1,3} - cp ../docs/*.1 $out/share/man/man1/ - cp ../docs/*.3 $out/share/man/man3/ - ''; - - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - - 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. - - 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 = [ - "libbrotlidec" - "libbrotlienc" - ]; - platforms = platforms.all; - mainProgram = "brotli"; - }; -}) diff --git a/pkgs/by-name/bu/busybox/busybox-in-store.patch b/pkgs/by-name/bu/busybox/busybox-in-store.patch deleted file mode 100644 index 2d356b6..0000000 --- a/pkgs/by-name/bu/busybox/busybox-in-store.patch +++ /dev/null @@ -1,23 +0,0 @@ -Allow BusyBox to be invoked as "-busybox". This is -necessary when it's run from the Nix store as -busybox during -stdenv bootstrap. ---- a/libbb/appletlib.c -+++ b/libbb/appletlib.c -@@ -947,7 +947,7 @@ void FAST_FUNC run_applet_no_and_exit(int applet_no, const char *name, char **ar - static NORETURN void run_applet_and_exit(const char *name, char **argv) - { - # if ENABLE_BUSYBOX -- if (is_prefixed_with(name, "busybox")) -+ if (strstr(name, "busybox") != 0) - exit(busybox_main(/*unused:*/ 0, argv)); - # endif - # if NUM_APPLETS > 0 -@@ -1045,7 +1045,7 @@ int main(int argc UNUSED_PARAM, char **argv) - - lbb_prepare("busybox" IF_FEATURE_INDIVIDUAL(, argv)); - # if !ENABLE_BUSYBOX -- if (argv[1] && is_prefixed_with(bb_basename(argv[0]), "busybox")) -+ if (argv[1] && strstr(bb_basename(argv[0]), "busybox") != 0) - argv++; - # endif - applet_name = argv[0]; diff --git a/pkgs/by-name/bu/busybox/clang-cross.patch b/pkgs/by-name/bu/busybox/clang-cross.patch deleted file mode 100644 index b2d696b..0000000 --- a/pkgs/by-name/bu/busybox/clang-cross.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff --git a/Makefile b/Makefile -index 6fedcffba..3385836c4 100644 ---- a/Makefile -+++ b/Makefile -@@ -271,8 +271,8 @@ export quiet Q KBUILD_VERBOSE - # Look for make include files relative to root of kernel src - MAKEFLAGS += --include-dir=$(srctree) - --HOSTCC = gcc --HOSTCXX = g++ -+HOSTCC = cc -+HOSTCXX = c++ - HOSTCFLAGS := - HOSTCXXFLAGS := - # We need some generic definitions -@@ -289,7 +289,7 @@ MAKEFLAGS += -rR - # Make variables (CC, etc...) - - AS = $(CROSS_COMPILE)as --CC = $(CROSS_COMPILE)gcc -+CC = $(CROSS_COMPILE)cc - LD = $(CC) -nostdlib - CPP = $(CC) -E - AR = $(CROSS_COMPILE)ar -diff --git a/scripts/Makefile.IMA b/scripts/Makefile.IMA -index f155108d7..185257064 100644 ---- a/scripts/Makefile.IMA -+++ b/scripts/Makefile.IMA -@@ -39,7 +39,7 @@ ifndef HOSTCC - HOSTCC = cc - endif - AS = $(CROSS_COMPILE)as --CC = $(CROSS_COMPILE)gcc -+CC = $(CROSS_COMPILE)cc - LD = $(CC) -nostdlib - CPP = $(CC) -E - AR = $(CROSS_COMPILE)ar diff --git a/pkgs/by-name/bu/busybox/default.nix b/pkgs/by-name/bu/busybox/default.nix deleted file mode 100644 index 33fa766..0000000 --- a/pkgs/by-name/bu/busybox/default.nix +++ /dev/null @@ -1,172 +0,0 @@ -{ 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; - -let - configParser = '' - function parseconfig { - while read LINE; do - NAME=`echo "$LINE" | cut -d \ -f 1` - OPTION=`echo "$LINE" | cut -d \ -f 2` - - if ! [[ "$NAME" =~ ^CONFIG_ ]]; then continue; fi - - echo "parseconfig: removing $NAME" - sed -i /$NAME'\(=\| \)'/d .config - - echo "parseconfig: setting $NAME=$OPTION" - echo "$NAME=$OPTION" >> .config - done - } - ''; - - libcConfig = lib.optionalString useMusl '' - CONFIG_FEATURE_UTMP n - CONFIG_FEATURE_WTMP n - ''; - - # The debian version lags behind the upstream version and also contains - # a debian-specific suffix. We only fetch the debian repository to get the - # default.script - debianVersion = "1.30.1-6"; - debianSource = fetchFromGitLab { - domain = "salsa.debian.org"; - owner = "installer-team"; - repo = "busybox"; - rev = "debian/1%${debianVersion}"; - sha256 = "sha256-6r0RXtmqGXtJbvLSD1Ma1xpqR8oXL2bBKaUE/cSENL8="; - }; - debianDispatcherScript = "${debianSource}/debian/tree/udhcpc/etc/udhcpc/default.script"; - outDispatchPath = "$out/default.script"; -in - -stdenv.mkDerivation rec { - pname = "busybox"; - version = "1.36.1"; - - # Note to whoever is updating busybox: please verify that: - # nix-build pkgs/stdenv/linux/make-bootstrap-tools.nix -A test - # still builds after the update. - src = fetchurl { - url = "https://busybox.net/downloads/${pname}-${version}.tar.bz2"; - sha256 = "sha256-uMwkyVdNgJ5yecO+NJeVxdXOtv3xnKcJ+AzeUOR94xQ="; - }; - - hardeningDisable = [ "format" "pie" ] - ++ lib.optionals enableStatic [ "fortify" ]; - - patches = [ - ./busybox-in-store.patch - (fetchurl { - name = "CVE-2022-28391.patch"; - url = "https://git.alpinelinux.org/aports/plain/main/busybox/0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch?id=ed92963eb55bbc8d938097b9ccb3e221a94653f4"; - sha256 = "sha256-yviw1GV+t9tbHbY7YNxEqPi7xEreiXVqbeRyf8c6Awo="; - }) - (fetchurl { - name = "CVE-2022-28391.patch"; - url = "https://git.alpinelinux.org/aports/plain/main/busybox/0002-nslookup-sanitize-all-printed-strings-with-printable.patch?id=ed92963eb55bbc8d938097b9ccb3e221a94653f4"; - sha256 = "sha256-vl1wPbsHtXY9naajjnTicQ7Uj3N+EQ8pRNnrdsiow+w="; - }) - ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) ./clang-cross.patch; - - separateDebugInfo = true; - - postPatch = "patchShebangs ."; - - configurePhase = '' - export KCONFIG_NOTIMESTAMP=1 - make ${if enableMinimal then "allnoconfig" else "defconfig"} - - ${configParser} - - cat << EOF | parseconfig - - CONFIG_PREFIX "$out" - CONFIG_INSTALL_NO_USR y - - CONFIG_LFS y - - # More features for modprobe. - ${lib.optionalString (!enableMinimal) '' - CONFIG_FEATURE_MODPROBE_BLACKLIST y - CONFIG_FEATURE_MODUTILS_ALIAS y - CONFIG_FEATURE_MODUTILS_SYMBOLS y - CONFIG_MODPROBE_SMALL n - ''} - - ${lib.optionalString enableStatic '' - CONFIG_STATIC y - ''} - - ${lib.optionalString (!enableAppletSymlinks) '' - CONFIG_INSTALL_APPLET_DONT y - CONFIG_INSTALL_APPLET_SYMLINKS n - ''} - - # Use the external mount.cifs program. - CONFIG_FEATURE_MOUNT_CIFS n - CONFIG_FEATURE_MOUNT_HELPERS y - - # Set paths for console fonts. - CONFIG_DEFAULT_SETFONT_DIR "/etc/kbd" - - # Bump from 4KB, much faster I/O - CONFIG_FEATURE_COPYBUF_KB 64 - - # Set the path for the udhcpc script - CONFIG_UDHCPC_DEFAULT_SCRIPT "${outDispatchPath}" - - ${extraConfig} - CONFIG_CROSS_COMPILER_PREFIX "${stdenv.cc.targetPrefix}" - ${libcConfig} - EOF - - make oldconfig - - runHook postConfigure - ''; - - postConfigure = lib.optionalString (useMusl && stdenv.hostPlatform.libc != "musl") '' - makeFlagsArray+=("CC=${stdenv.cc.targetPrefix}cc -isystem ${musl.dev}/include -B${musl}/lib -L${musl}/lib") - ''; - - makeFlags = [ "SKIP_STRIP=y" ]; - - postInstall = '' - sed -e ' - 1 a busybox() { '$out'/bin/busybox "$@"; }\ - logger() { '$out'/bin/logger "$@"; }\ - ' ${debianDispatcherScript} > ${outDispatchPath} - chmod 555 ${outDispatchPath} - HOST_PATH=$out/bin patchShebangs --host ${outDispatchPath} - ''; - - strictDeps = true; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - - buildInputs = lib.optionals (enableStatic && !useMusl && stdenv.cc.libc ? static) [ stdenv.cc.libc stdenv.cc.libc.static ]; - - enableParallelBuilding = true; - - doCheck = false; # tries to access the net - - passthru.shellPath = "/bin/ash"; - - meta = with lib; { - description = "Tiny versions of common UNIX utilities in a single small executable"; - homepage = "https://busybox.net/"; - license = licenses.gpl2Only; - 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 deleted file mode 100644 index 03b8dd5..0000000 --- a/pkgs/by-name/bu/busybox/packages.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ ... }: -res: pkgs: super: - -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; - }; -} diff --git a/pkgs/by-name/bu/busybox/sandbox-shell.nix b/pkgs/by-name/bu/busybox/sandbox-shell.nix deleted file mode 100644 index fa70e5f..0000000 --- a/pkgs/by-name/bu/busybox/sandbox-shell.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ busybox}: - -# Minimal shell for use as basic /bin/sh in sandbox builds -busybox.override { - enableStatic = true; - enableMinimal = true; - extraConfig = '' - CONFIG_FEATURE_FANCY_ECHO y - CONFIG_FEATURE_SH_MATH y - CONFIG_FEATURE_SH_MATH_64 y - CONFIG_FEATURE_TEST_64 y - - CONFIG_ASH y - CONFIG_ASH_OPTIMIZE_FOR_SIZE y - - CONFIG_ASH_ALIAS y - CONFIG_ASH_BASH_COMPAT y - CONFIG_ASH_CMDCMD y - CONFIG_ASH_ECHO y - CONFIG_ASH_GETOPTS y - CONFIG_ASH_INTERNAL_GLOB y - CONFIG_ASH_JOB_CONTROL y - CONFIG_ASH_PRINTF y - CONFIG_ASH_TEST y - ''; -} diff --git a/pkgs/by-name/bz/bzip2/1_1.nix b/pkgs/by-name/bz/bzip2/1_1.nix deleted file mode 100644 index e9d6f7c..0000000 --- a/pkgs/by-name/bz/bzip2/1_1.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ lib, stdenv -, fetchFromGitLab -, meson -, python3 -, ninja -, testers -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "bzip2-unstable"; - version = "2020-08-11"; - - src = fetchFromGitLab { - owner = "federicomenaquintero"; - repo = "bzip2"; - rev = "15255b553e7c095fb7a26d4dc5819a11352ebba1"; - sha256 = "sha256-BAyz35D62LWi47B/gNcCSKpdaECHBGSpt21vtnk3fKs="; - }; - - postPatch = '' - patchShebangs install_links.py - ''; - - nativeBuildInputs = [ - meson - python3 - ninja - ]; - - outputs = [ "bin" "dev" "out" "man" ]; - - mesonFlags = [ - "-Ddocs=disabled" - ]; - - strictDeps = true; - - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - - meta = with lib; { - description = "High-quality data compression program"; - license = licenses.bsdOriginal; - pkgConfigModules = [ "bz2" ]; - platforms = platforms.all; - maintainers = []; - }; -}) diff --git a/pkgs/by-name/bz/bzip2/default.nix b/pkgs/by-name/bz/bzip2/default.nix deleted file mode 100644 index bfab2db..0000000 --- a/pkgs/by-name/bz/bzip2/default.nix +++ /dev/null @@ -1,75 +0,0 @@ -{ lib, stdenv, fetchurl -, enableStatic ? with stdenv.hostPlatform; isStatic || isCygwin -, enableShared ? true -, autoreconfHook -, testers -}: - -# 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. - -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="; - }; - - 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 - ''; - - strictDeps = true; - nativeBuildInputs = [ autoreconfHook ]; - - outputs = [ "bin" "dev" "out" "man" ]; - - configureFlags = lib.concatLists [ - (lib.optional enableStatic "--enable-static") - (lib.optional (!enableShared) "--disable-shared") - ]; - - dontDisableStatic = enableStatic; - - enableParallelBuilding = true; - - postInstall = '' - ln -s $out/lib/libbz2.so.1.0.* $out/lib/libbz2.so.1.0 - ''; - - 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 ]; - }; -}) diff --git a/pkgs/by-name/bz/bzip2/packages.nix b/pkgs/by-name/bz/bzip2/packages.nix deleted file mode 100644 index 6fde252..0000000 --- a/pkgs/by-name/bz/bzip2/packages.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index 8fdfc05..0000000 --- a/pkgs/by-name/c-/c-ares/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ lib, stdenv, fetchurl, writeTextDir -, withCMake ? true, cmake - -# sensitive downstream packages -# for passthru.tests -# , curl -# , grpc # consumes cmake config -}: - -# 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. - -stdenv.mkDerivation rec { - pname = "c-ares"; - version = "1.27.0"; - - src = fetchurl { - url = "https://c-ares.org/download/${pname}-${version}.tar.gz"; - hash = "sha256-CnK+ZpWZVcQ+KvL70DQY6Cor1UZGBOyaYhR+N6zrQgs="; - }; - - outputs = [ "out" "dev" "man" ]; - - nativeBuildInputs = lib.optionals withCMake [ cmake ]; - - cmakeFlags = [] ++ lib.optionals stdenv.hostPlatform.isStatic [ - "-DCARES_SHARED=OFF" - "-DCARES_STATIC=ON" - ]; - - enableParallelBuilding = true; - - # passthru.tests = { - # inherit grpc; - # curl = (curl.override { c-aresSupport = true; }).tests.withCheck; - # }; - - meta = with lib; { - description = "A C library for asynchronous DNS requests"; - homepage = "https://c-ares.haxx.se"; - changelog = "https://c-ares.org/changelog.html#${lib.replaceStrings [ "." ] [ "_" ] version}"; - license = licenses.mit; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/c-/c-ares/packages.nix b/pkgs/by-name/c-/c-ares/packages.nix deleted file mode 100644 index 0846e63..0000000 --- a/pkgs/by-name/c-/c-ares/packages.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - c-ares = callPackage ./. { }; - c-aresMinimal = callPackage ./. { - withCMake = false; - }; -} diff --git a/pkgs/by-name/ca/cacert/default.nix b/pkgs/by-name/ca/cacert/default.nix deleted file mode 100644 index 7dc047b..0000000 --- a/pkgs/by-name/ca/cacert/default.nix +++ /dev/null @@ -1,213 +0,0 @@ -{ lib -, stdenv -, writeText -, fetchFromGitHub -, buildcatrust -, blacklist ? [] -, extraCertificateFiles ? [] -, extraCertificateStrings ? [] - -# Used by update.sh -, nssOverride ? null - -# 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); - - srcVersion = "3.98"; - version = if nssOverride != null then nssOverride.version else srcVersion; - meta = with lib; { - 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 ]; - 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="; - }; - - dontBuild = true; - - installPhase = '' - runHook preInstall - - mkdir $out - cp lib/ckfw/builtins/certdata.txt $out - - runHook postInstall - ''; - - inherit meta; - }; -in -stdenv.mkDerivation rec { - pname = "nss-cacert"; - inherit version; - - src = certdata; - - outputs = [ "out" "unbundled" "p11kit" ]; - - nativeBuildInputs = [ buildcatrust ]; - - buildPhase = '' - mkdir unbundled - buildcatrust \ - --certdata_input certdata.txt \ - --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 \ - --ca_unpacked_output unbundled \ - --p11kit_output ca-bundle.trust.p11-kit - ''; - - installPhase = '' - install -D -t "$out/etc/ssl/certs" ca-bundle.crt - - # install standard PEM compatible bundle - install -D -t "$out/etc/ssl/certs" ca-no-trust-rules-bundle.crt - - # install p11-kit specific output to p11kit output - install -D -t "$p11kit/etc/ssl/trust-source" ca-bundle.trust.p11-kit - - # install individual certs in unbundled output - install -D -t "$unbundled/etc/ssl/certs" unbundled/*.crt - ''; - - setupHook = ./setup-hook.sh; - - 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 - fi - 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----- - ''; - 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/cacert/setup-hook.sh b/pkgs/by-name/ca/cacert/setup-hook.sh deleted file mode 100644 index 93b682f..0000000 --- a/pkgs/by-name/ca/cacert/setup-hook.sh +++ /dev/null @@ -1,7 +0,0 @@ -export NIX_SSL_CERT_FILE=@out@/etc/ssl/certs/ca-bundle.crt - -# compatibility -# - openssl -export SSL_CERT_FILE=@out@/etc/ssl/certs/ca-bundle.crt -# - Haskell x509-system -export SYSTEM_CERTIFICATE_PATH=@out@/etc/ssl/certs/ca-bundle.crt diff --git a/pkgs/by-name/ca/cacert/test-cert-file.crt b/pkgs/by-name/ca/cacert/test-cert-file.crt deleted file mode 100644 index 095f388..0000000 --- a/pkgs/by-name/ca/cacert/test-cert-file.crt +++ /dev/null @@ -1,13 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIB7TCCAXSgAwIBAgIUFJB0STXn22fIEDjpncEt++IdFeMwCgYIKoZIzj0EAwIw -LjEsMCoGA1UEAwwjTml4T1MgY2FjZXJ0IGV4dHJhIGNlcnRpZmljYXRlIGZpbGUw -HhcNMjEwNjEyMTkxODA4WhcNMjIwNjEyMTkxODA4WjAuMSwwKgYDVQQDDCNOaXhP -UyBjYWNlcnQgZXh0cmEgY2VydGlmaWNhdGUgZmlsZTB2MBAGByqGSM49AgEGBSuB -BAAiA2IABMifTLM5K5xd+guGdKE1+NR7wnEJbxw5INzuMrkg/7jgEIQil4+L2YOF -kU1gxcM80Ot8tQAG5OcSvX1DF6CxunpoCT+hnHqyfqoWFvl89i1BUKjyWCQ5WXEe -nSkuJUmYC6NTMFEwHQYDVR0OBBYEFBE2kNis1ri4fweyNVRmvje83gFQMB8GA1Ud -IwQYMBaAFBE2kNis1ri4fweyNVRmvje83gFQMA8GA1UdEwEB/wQFMAMBAf8wCgYI -KoZIzj0EAwIDZwAwZAIwUZf1qaSb4cezulV+4B4FoJHY2B/nRVIi/rFD8634YEDT -vcg6dmCi/AqLEzJn7uFMAjBVTu4EVC/mtQCGESFChMeb04fsuhXgttWSwWliVPEG -jkG7u0UNNGaU8dvrjpqRRmA= ------END CERTIFICATE----- diff --git a/pkgs/by-name/ca/cacert/update.sh b/pkgs/by-name/ca/cacert/update.sh deleted file mode 100755 index d578102..0000000 --- a/pkgs/by-name/ca/cacert/update.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell -i bash -p nix common-updater-scripts jq - -# Build both the cacert package and an overridden version where we use the source attribute of NSS. -# Cacert and NSS are both from the same upstream sources. They are decoupled as -# the cacert output only cares about a few infrequently changing files in the -# sources while the NSS source code changes frequently. -# -# By having cacert on a older source revision that produces the same -# certificate output as a newer version we can avoid large amounts of -# unnecessary rebuilds. -# -# As of this writing there are a few magnitudes more packages depending on -# cacert than on nss. -# -# We use `nss_latest` instead of `nss_esr`, because that is the newer version -# and we want up-to-date certificates. -# `nss_esr` is used for the ecosystem at large through the `nss` attribute, -# because it is updated less frequently and maintained for longer, whereas `nss_latest` -# is used for software that actually needs a new nss, e.g. Firefox. - -set -ex - -BASEDIR="$(dirname "$0")/../../../.." - - -CURRENT_PATH=$(nix-build --no-out-link -A cacert.out) -PATCHED_PATH=$(nix-build --no-out-link -E "with import $BASEDIR {}; (cacert.override { nssOverride = nss_latest; }).out") - -# Check the hash of the etc subfolder -# We can't check the entire output as that contains the nix-support folder -# which contains the output path itself. -CURRENT_HASH=$(nix-hash "$CURRENT_PATH/etc") -PATCHED_HASH=$(nix-hash "$PATCHED_PATH/etc") - -if [[ "$CURRENT_HASH" != "$PATCHED_HASH" ]]; then - NSS_VERSION=$(nix-instantiate --json --eval -E "with import $BASEDIR {}; nss_latest.version" | jq -r .) - update-source-version --version-key=srcVersion cacert.src "$NSS_VERSION" -fi diff --git a/pkgs/by-name/ca/cairo/default.nix b/pkgs/by-name/ca/cairo/default.nix deleted file mode 100644 index 7408a43..0000000 --- a/pkgs/by-name/ca/cairo/default.nix +++ /dev/null @@ -1,116 +0,0 @@ -{ 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"; - - 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; - - nativeBuildInputs = [ - gtk-doc - meson - ninja - pkg-config - python3 - ]; - - 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? - - mesonFlags = [ - "-Dgtk_doc=true" - - # error: #error config.h must be included before this header - "-Dsymbol-lookup=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") - } - ''}" - ]; - - 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). - ''; - 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 deleted file mode 100644 index de0af79..0000000 --- a/pkgs/by-name/ca/cargo-nextest/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib, rustPlatform, fetchFromGitHub, stdenv, darwin }: - -rustPlatform.buildRustPackage rec { - pname = "cargo-nextest"; - version = "0.9.70"; - - src = fetchFromGitHub { - owner = "nextest-rs"; - repo = "nextest"; - rev = "cargo-nextest-${version}"; - hash = "sha256-YTeKcdUszI/0RCAq6Gcakl3hfUSUo3CfVCMod/IPYhw="; - }; - - cargoHash = "sha256-FH9ODkK84bPPYyHP4kKcHKWpJ3FV1NC8S/NQFvV63Gw="; - - buildInputs = lib.optionals stdenv.isDarwin [ - darwin.apple_sdk.frameworks.SystemConfiguration - ]; - - cargoBuildFlags = [ "-p" "cargo-nextest" ]; - cargoTestFlags = [ "-p" "cargo-nextest" ]; - - # TODO: investigate some more why these tests fail in nix - checkFlags = [ - "--skip=tests_integration::test_list" - "--skip=tests_integration::test_relocated_run" - "--skip=tests_integration::test_run" - ]; - - meta = with lib; { - description = "Next-generation test runner for Rust projects"; - 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 ]; - }; -} diff --git a/pkgs/by-name/ca/catch2/3.nix b/pkgs/by-name/ca/catch2/3.nix deleted file mode 100644 index 403c4f7..0000000 --- a/pkgs/by-name/ca/catch2/3.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, python3 -}: - -stdenv.mkDerivation rec { - pname = "catch2"; - version = "3.5.2"; - - src = fetchFromGitHub { - owner = "catchorg"; - repo = "Catch2"; - rev = "v${version}"; - hash = "sha256-xGPfXjk+oOnR7JqTrZd2pKJxalrlS8CMs7HWDClXaS8="; - }; - - 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" - ]; - - # 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"; - }; - - doCheck = true; - - nativeCheckInputs = [ - python3 - ]; - - meta = { - description = "Modern, C++-native, test framework for unit-tests"; - homepage = "https://github.com/catchorg/Catch2"; - changelog = "https://github.com/catchorg/Catch2/blob/${src.rev}/docs/release-notes.md"; - license = lib.licenses.boost; - maintainers = with lib.maintainers; [ dotlambda ]; - platforms = with lib.platforms; unix ++ windows; - }; -} diff --git a/pkgs/by-name/ca/catch2/default.nix b/pkgs/by-name/ca/catch2/default.nix deleted file mode 100644 index 56b2016..0000000 --- a/pkgs/by-name/ca/catch2/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, cmake }: - -stdenv.mkDerivation rec { - pname = "catch2"; - version = "2.13.10"; - - src = fetchFromGitHub { - owner = "catchorg"; - repo = "Catch2"; - rev = "v${version}"; - sha256="sha256-XnT2ziES94Y4uzWmaxSw7nWegJFQjAqFUG8PkwK5nLU="; - }; - - nativeBuildInputs = [ cmake ]; - - cmakeFlags = [ "-H.." ]; - - meta = with lib; { - 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 ]; - platforms = with platforms; unix ++ windows; - }; -} diff --git a/pkgs/by-name/ca/catch2/packages.nix b/pkgs/by-name/ca/catch2/packages.nix deleted file mode 100644 index 1f6ed31..0000000 --- a/pkgs/by-name/ca/catch2/packages.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index a1ba3aa..0000000 --- a/pkgs/by-name/cl/cloog/0.18.0.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ fetchurl, lib, stdenv, gmp, isl }: - -stdenv.mkDerivation rec { - pname = "cloog"; - version = "0.18.0"; - - src = fetchurl { - url = "http://www.bastoul.net/cloog/pages/download/count.php3?url=./cloog-${version}.tar.gz"; - sha256 = "1c4aa8dde7886be9cbe0f9069c334843b21028f61d344a2d685f88cb1dcf2228"; - }; - - buildInputs = [ gmp ]; - - propagatedBuildInputs = [ isl ]; - - configureFlags = [ "--with-isl=system" ]; - - enableParallelBuilding = true; - - doCheck = true; - - meta = { - description = "Library that generates loops for scanning polyhedra"; - mainProgram = "cloog"; - - longDescription = '' - CLooG is a free software library to generate code for scanning - Z-polyhedra. That is, it finds a code (e.g., in C, FORTRAN...) that - reaches each integral point of one or more parameterized polyhedra. - CLooG has been originally written to solve the code generation problem - for optimizing compilers based on the polytope model. Nevertheless it - is used now in various area e.g., to build control automata for - high-level synthesis or to find the best polynomial approximation of a - function. CLooG may help in any situation where scanning polyhedra - matters. While the user has full control on generated code quality, - CLooG is designed to avoid control overhead and to produce a very - effective code. - ''; - - homepage = "http://www.cloog.org/"; - - 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 - - */ - 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 deleted file mode 100644 index 3ae266c..0000000 --- a/pkgs/by-name/cl/cloog/default.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ fetchurl, lib, stdenv, gmp, isl }: - -stdenv.mkDerivation rec { - pname = "cloog"; - version = "0.18.4"; - - src = fetchurl { - url = "http://www.bastoul.net/cloog/pages/download/count.php3?url=./${pname}-${version}.tar.gz"; - sha256 = "03km1aqaiy3sbqc2f046ms9x0mlmacxlvs5rxsvjj8nf20vxynij"; - }; - - buildInputs = [ gmp ]; - - propagatedBuildInputs = [ isl ]; - - configureFlags = [ "--with-isl=system" ]; - - enableParallelBuilding = true; - # Breaks the test cases as it reuses 'cloog_temp' file name for different tests. - enableParallelChecking = false; - - doCheck = true; - - meta = { - description = "Library that generates loops for scanning polyhedra"; - mainProgram = "cloog"; - - longDescription = '' - CLooG is a free software library to generate code for scanning - Z-polyhedra. That is, it finds a code (e.g., in C, FORTRAN...) that - reaches each integral point of one or more parameterized polyhedra. - CLooG has been originally written to solve the code generation problem - for optimizing compilers based on the polytope model. Nevertheless it - is used now in various area e.g., to build control automata for - high-level synthesis or to find the best polynomial approximation of a - function. CLooG may help in any situation where scanning polyhedra - matters. While the user has full control on generated code quality, - CLooG is designed to avoid control overhead and to produce a very - effective code. - ''; - - homepage = "http://www.cloog.org/"; - - 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 - - */ - 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 deleted file mode 100644 index 0800b3c..0000000 --- a/pkgs/by-name/cl/cloog/packages.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - cloog = callPackage ./. { - isl = isl_0_14; - }; - - cloog_0_18_0 = callPackage ./0.18.0.nix { - isl = isl_0_11; - }; -} diff --git a/pkgs/by-name/cm/cmake/001-search-path.diff b/pkgs/by-name/cm/cmake/001-search-path.diff deleted file mode 100644 index 04ab084..0000000 --- a/pkgs/by-name/cm/cmake/001-search-path.diff +++ /dev/null @@ -1,95 +0,0 @@ -diff --git a/Modules/Platform/UnixPaths.cmake b/Modules/Platform/UnixPaths.cmake -index b9381c3d7d..5e944640b5 100644 ---- a/Modules/Platform/UnixPaths.cmake -+++ b/Modules/Platform/UnixPaths.cmake -@@ -26,9 +26,6 @@ get_filename_component(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH) - # please make sure to keep Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst - # synchronized - list(APPEND CMAKE_SYSTEM_PREFIX_PATH -- # Standard -- /usr/local /usr / -- - # CMake install location - "${_CMAKE_INSTALL_DIR}" - ) -@@ -47,48 +44,49 @@ endif() - - # Non "standard" but common install prefixes - list(APPEND CMAKE_SYSTEM_PREFIX_PATH -- /usr/X11R6 -- /usr/pkg -- /opt - ) - - # List common include file locations not under the common prefixes. -+if(DEFINED ENV{NIX_CC} -+ AND IS_DIRECTORY "$ENV{NIX_CC}" -+ AND EXISTS "$ENV{NIX_CC}/nix-support/orig-libc" -+ AND EXISTS "$ENV{NIX_CC}/nix-support/orig-libc-dev") -+ file(STRINGS "$ENV{NIX_CC}/nix-support/orig-libc" _nix_cmake_libc) -+ file(STRINGS "$ENV{NIX_CC}/nix-support/orig-libc-dev" _nix_cmake_libc_dev) -+else() -+ set(_nix_cmake_libc @libc_lib@) -+ set(_nix_cmake_libc_dev @libc_dev@) -+endif() -+ - list(APPEND CMAKE_SYSTEM_INCLUDE_PATH -- # X11 -- /usr/include/X11 -+ "${_nix_cmake_libc_dev}/include" - ) - - list(APPEND CMAKE_SYSTEM_LIBRARY_PATH -- # X11 -- /usr/lib/X11 -+ "${_nix_cmake_libc}/lib" - ) - - list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES -- /lib /lib32 /lib64 /usr/lib /usr/lib32 /usr/lib64 -+ "${_nix_cmake_libc}/lib" - ) - --if(CMAKE_SYSROOT_COMPILE) -- set(_cmake_sysroot_compile "${CMAKE_SYSROOT_COMPILE}") --else() -- set(_cmake_sysroot_compile "${CMAKE_SYSROOT}") --endif() -- - # Default per-language values. These may be later replaced after - # parsing the implicit directory information from compiler output. - set(_CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES_INIT - ${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES} -- "${_cmake_sysroot_compile}/usr/include" -+ "${_nix_cmake_libc_dev}/include" - ) - set(_CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES_INIT - ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES} -- "${_cmake_sysroot_compile}/usr/include" -+ "${_nix_cmake_libc_dev}/include" - ) - set(_CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES_INIT - ${CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES} -- "${_cmake_sysroot_compile}/usr/include" -+ "${_nix_cmake_libc_dev}/include" - ) - --unset(_cmake_sysroot_compile) -+unset(_nix_cmake_libc) -+unset(_nix_cmake_libc_dev) - - # Reminder when adding new locations computed from environment variables - # please make sure to keep Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst -diff --git a/Modules/Platform/WindowsPaths.cmake b/Modules/Platform/WindowsPaths.cmake -index b9e2f17979..ab517cd4a7 100644 ---- a/Modules/Platform/WindowsPaths.cmake -+++ b/Modules/Platform/WindowsPaths.cmake -@@ -70,7 +70,7 @@ endif() - - if(CMAKE_CROSSCOMPILING AND NOT CMAKE_HOST_SYSTEM_NAME MATCHES "Windows") - # MinGW (useful when cross compiling from linux with CMAKE_FIND_ROOT_PATH set) -- list(APPEND CMAKE_SYSTEM_PREFIX_PATH /) -+ # list(APPEND CMAKE_SYSTEM_PREFIX_PATH /) - endif() - - list(APPEND CMAKE_SYSTEM_INCLUDE_PATH diff --git a/pkgs/by-name/cm/cmake/002-application-services.diff b/pkgs/by-name/cm/cmake/002-application-services.diff deleted file mode 100644 index 56f7cd2..0000000 --- a/pkgs/by-name/cm/cmake/002-application-services.diff +++ /dev/null @@ -1,39 +0,0 @@ -diff -Naur cmake-3.25.1-old/Source/CMakeLists.txt cmake-3.25.1-new/Source/CMakeLists.txt ---- cmake-3.25.1-old/Source/CMakeLists.txt 2022-11-30 10:57:03.000000000 -0300 -+++ cmake-3.25.1-new/Source/CMakeLists.txt 2022-12-19 01:00:08.412064304 -0300 -@@ -916,7 +916,6 @@ - # On Apple we need CoreFoundation and CoreServices - if(APPLE) - target_link_libraries(CMakeLib PUBLIC "-framework CoreFoundation") -- target_link_libraries(CMakeLib PUBLIC "-framework CoreServices") - endif() - - if(WIN32 AND NOT UNIX) -diff -Naur cmake-3.25.1-old/Source/cmGlobalXCodeGenerator.cxx cmake-3.25.1-new/Source/cmGlobalXCodeGenerator.cxx ---- cmake-3.25.1-old/Source/cmGlobalXCodeGenerator.cxx 2022-11-30 10:57:03.000000000 -0300 -+++ cmake-3.25.1-new/Source/cmGlobalXCodeGenerator.cxx 2022-12-19 01:00:56.065135169 -0300 -@@ -56,10 +56,6 @@ - - #if !defined(CMAKE_BOOTSTRAP) && defined(__APPLE__) - # include --# if !TARGET_OS_IPHONE --# define HAVE_APPLICATION_SERVICES --# include --# endif - #endif - - #if !defined(CMAKE_BOOTSTRAP) -diff -Naur cmake-3.25.1-old/Utilities/cmlibarchive/CMakeLists.txt cmake-3.25.1-new/Utilities/cmlibarchive/CMakeLists.txt ---- cmake-3.25.1-old/Utilities/cmlibarchive/CMakeLists.txt 2022-11-30 10:57:03.000000000 -0300 -+++ cmake-3.25.1-new/Utilities/cmlibarchive/CMakeLists.txt 2022-12-19 01:01:43.392205981 -0300 -@@ -2041,10 +2041,6 @@ - ADD_CUSTOM_TARGET(run_all_tests) - ENDIF(ENABLE_TEST) - --# We need CoreServices on Mac OS. --IF(APPLE) -- LIST(APPEND ADDITIONAL_LIBS "-framework CoreServices") --ENDIF(APPLE) - - add_subdirectory(libarchive) - IF(0) # CMake does not build libarchive's command-line tools. diff --git a/pkgs/by-name/cm/cmake/003-libuv-application-services.diff b/pkgs/by-name/cm/cmake/003-libuv-application-services.diff deleted file mode 100644 index 6607a9c..0000000 --- a/pkgs/by-name/cm/cmake/003-libuv-application-services.diff +++ /dev/null @@ -1,55 +0,0 @@ -diff --git a/Utilities/cmlibuv/CMakeLists.txt b/Utilities/cmlibuv/CMakeLists.txt -index 7625cf65d9..167903e309 100644 ---- a/Utilities/cmlibuv/CMakeLists.txt -+++ b/Utilities/cmlibuv/CMakeLists.txt -@@ -193,6 +193,22 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - src/unix/kqueue.c - src/unix/proctitle.c - ) -+ -+ include(CheckIncludeFile) -+ -+ check_include_file("ApplicationServices/ApplicationServices.h" HAVE_ApplicationServices) -+ if (HAVE_ApplicationServices) -+ list(APPEND uv_defines -+ HAVE_APPLICATIONSERVICES_APPLICATIONSERVICES_H=1 -+ ) -+ endif() -+ -+ check_include_file("CoreServices/CoreServices.h" HAVE_CoreServices) -+ if (HAVE_CoreServices) -+ list(APPEND uv_defines -+ HAVE_CORESERVICES_CORESERVICES_H=1 -+ ) -+ endif() - endif() - - if(CMAKE_SYSTEM_NAME STREQUAL "Linux") -diff --git a/Utilities/cmlibuv/src/unix/fsevents.c b/Utilities/cmlibuv/src/unix/fsevents.c -index a51f29b3f6..3f6bf01968 100644 ---- a/Utilities/cmlibuv/src/unix/fsevents.c -+++ b/Utilities/cmlibuv/src/unix/fsevents.c -@@ -21,7 +21,7 @@ - #include "uv.h" - #include "internal.h" - --#if TARGET_OS_IPHONE || MAC_OS_X_VERSION_MAX_ALLOWED < 1070 -+#if !HAVE_CORESERVICES_CORESERVICES_H || MAC_OS_X_VERSION_MAX_ALLOWED < 1070 - - /* iOS (currently) doesn't provide the FSEvents-API (nor CoreServices) */ - /* macOS prior to 10.7 doesn't provide the full FSEvents API so use kqueue */ -@@ -39,7 +39,7 @@ int uv__fsevents_close(uv_fs_event_t* handle) { - void uv__fsevents_loop_delete(uv_loop_t* loop) { - } - --#else /* TARGET_OS_IPHONE */ -+#else /* !HAVE_CORESERVICES_CORESERVICES_H */ - - #include "darwin-stub.h" - -@@ -920,4 +920,4 @@ int uv__fsevents_close(uv_fs_event_t* handle) { - return 0; - } - --#endif /* TARGET_OS_IPHONE */ -+#endif /* !HAVE_CORESERVICES_CORESERVICES_H */ diff --git a/pkgs/by-name/cm/cmake/004-cygwin.diff b/pkgs/by-name/cm/cmake/004-cygwin.diff deleted file mode 100644 index 982aba1..0000000 --- a/pkgs/by-name/cm/cmake/004-cygwin.diff +++ /dev/null @@ -1,274 +0,0 @@ ---- cmake-3.2.2/Source/cmFileCommand.cxx 2015-04-13 19:09:00.000000000 +0200 -+++ cmake-3.2.2/Source/ccmFileCommand.cxx 2015-06-10 11:02:27.345598700 +0200 -@@ -1179,7 +1179,7 @@ - MatchProperties CollectMatchProperties(const char* file) - { - // Match rules are case-insensitive on some platforms. --#if defined(_WIN32) || defined(__APPLE__) || defined(__CYGWIN__) -+#if defined(_WIN32) || defined(__APPLE__) - std::string lower = cmSystemTools::LowerCase(file); - const char* file_to_match = lower.c_str(); - #else ---- cmake-3.2.2/Source/cmInstallCommand.cxx 2015-04-13 19:09:00.000000000 +0200 -+++ cmake-3.2.2/Source/cmInstallCommand.cxx 2015-06-10 11:04:19.257935200 +0200 -@@ -1138,7 +1138,7 @@ - { - literal_args += " REGEX \""; - // Match rules are case-insensitive on some platforms. --#if defined(_WIN32) || defined(__APPLE__) || defined(__CYGWIN__) -+#if defined(_WIN32) || defined(__APPLE__) - std::string regex = cmSystemTools::LowerCase(args[i]); - #else - std::string regex = args[i]; ---- cmake-3.2.2/Source/kwsys/Glob.cxx 2015-04-13 19:09:00.000000000 +0200 -+++ cmake-3.2.2/Source/kwsys/Glob.cxx 2015-06-10 11:05:51.602674000 +0200 -@@ -37,7 +37,7 @@ - #include - namespace KWSYS_NAMESPACE - { --#if defined(_WIN32) || defined(__APPLE__) || defined(__CYGWIN__) -+#if defined(_WIN32) || defined(__APPLE__) - // On Windows and apple, no difference between lower and upper case - # define KWSYS_GLOB_CASE_INDEPENDENT - #endif ---- cmake-3.2.2/Source/kwsys/SystemInformation.cxx 2015-04-13 19:09:00.000000000 +0200 -+++ cmake-3.2.2/Source/kwsys/SystemInformation.cxx 2015-06-10 11:13:00.308303500 +0200 -@@ -911,7 +911,7 @@ - // Hide implementation details in an anonymous namespace. - namespace { - // ***************************************************************************** --#if defined(__linux) || defined(__APPLE__) -+#if defined(__linux) || defined(__APPLE__) || defined(__CYGWIN__) - int LoadLines( - FILE *file, - kwsys_stl::vector &lines) -@@ -947,7 +947,7 @@ - return nRead; - } - --# if defined(__linux) -+# if defined(__linux) || defined(__CYGWIN__) - // ***************************************************************************** - int LoadLines( - const char *fileName, -@@ -986,7 +986,7 @@ - } - #endif - --#if defined(__linux) -+#if defined(__linux) || defined(__CYGWIN__) - // **************************************************************************** - template - int GetFieldsFromFile( -@@ -3132,7 +3132,6 @@ - pos = buffer.find("processor\t",pos+1); - } - --#ifdef __linux - // Find the largest physical id. - int maxId = -1; - kwsys_stl::string idc = -@@ -3165,14 +3164,6 @@ - atoi(this->ExtractValueFromCpuInfoFile(buffer,"ncpus active").c_str()); - } - --#else // __CYGWIN__ -- // does not have "physical id" entries, neither "cpu cores" -- // this has to be fixed for hyper-threading. -- kwsys_stl::string cpucount = -- this->ExtractValueFromCpuInfoFile(buffer,"cpu count"); -- this->NumberOfPhysicalCPU= -- this->NumberOfLogicalCPU = atoi(cpucount.c_str()); --#endif - // gotta have one, and if this is 0 then we get a / by 0n - // better to have a bad answer than a crash - if(this->NumberOfPhysicalCPU <= 0) -@@ -3370,7 +3361,7 @@ - GlobalMemoryStatusEx(&statex); - return statex.ullTotalPhys/1024; - # endif --#elif defined(__linux) -+#elif defined(__linux) || defined(__CYGWIN__) - SystemInformation::LongLong memTotal=0; - int ierr=GetFieldFromFile("/proc/meminfo","MemTotal:",memTotal); - if (ierr) -@@ -3501,7 +3492,7 @@ - GlobalMemoryStatusEx(&statex); - return (statex.ullTotalPhys - statex.ullAvailPhys)/1024; - # endif --#elif defined(__linux) -+#elif defined(__linux) || defined(__CYGWIN__) - const char *names[3]={"MemTotal:","MemFree:",NULL}; - SystemInformation::LongLong values[2]={SystemInformation::LongLong(0)}; - int ierr=GetFieldsFromFile("/proc/meminfo",names,values); -@@ -3560,7 +3551,7 @@ - return -2; - } - return pmc.WorkingSetSize/1024; --#elif defined(__linux) -+#elif defined(__linux) || defined(__CYGWIN__) - SystemInformation::LongLong memUsed=0; - int ierr=GetFieldFromFile("/proc/self/status","VmRSS:",memUsed); - if (ierr) -@@ -3612,7 +3603,7 @@ - { - #if defined(_WIN32) - return GetCurrentProcessId(); --#elif defined(__linux) || defined(__APPLE__) -+#elif defined(__linux) || defined(__APPLE__) || defined(__CYGWIN__) - return getpid(); - #else - return -1; ---- cmake-3.2.2/Source/kwsys/SystemTools.cxx 2015-04-13 19:09:00.000000000 +0200 -+++ cmake-3.2.2/Source/kwsys/SystemTools.cxx 2015-06-10 11:21:58.980443200 +0200 -@@ -93,19 +93,12 @@ - # if defined(_MSC_VER) && _MSC_VER >= 1800 - # define KWSYS_WINDOWS_DEPRECATED_GetVersionEx - # endif --#elif defined (__CYGWIN__) --# include --# undef _WIN32 - #endif - - #if !KWSYS_CXX_HAS_ENVIRON_IN_STDLIB_H - extern char **environ; - #endif - --#ifdef __CYGWIN__ --# include --#endif -- - // getpwnam doesn't exist on Windows and Cray Xt3/Catamount - // same for TIOCGWINSZ - #if defined(_WIN32) || defined (__LIBCATAMOUNT__) -@@ -1148,15 +1141,7 @@ - { - return false; - } --#if defined(__CYGWIN__) -- // Convert filename to native windows path if possible. -- char winpath[MAX_PATH]; -- if(SystemTools::PathCygwinToWin32(filename.c_str(), winpath)) -- { -- return (GetFileAttributesA(winpath) != INVALID_FILE_ATTRIBUTES); -- } -- return access(filename.c_str(), R_OK) == 0; --#elif defined(_WIN32) -+#if defined(_WIN32) - return (GetFileAttributesW( - SystemTools::ConvertToWindowsExtendedPath(filename).c_str()) - != INVALID_FILE_ATTRIBUTES); -@@ -1190,28 +1175,6 @@ - } - - //---------------------------------------------------------------------------- --#ifdef __CYGWIN__ --bool SystemTools::PathCygwinToWin32(const char *path, char *win32_path) --{ -- SystemToolsTranslationMap::iterator i = -- SystemTools::Cyg2Win32Map->find(path); -- -- if (i != SystemTools::Cyg2Win32Map->end()) -- { -- strncpy(win32_path, i->second.c_str(), MAX_PATH); -- } -- else -- { -- if(cygwin_conv_path(CCP_POSIX_TO_WIN_A, path, win32_path, MAX_PATH) != 0) -- { -- win32_path[0] = 0; -- } -- SystemToolsTranslationMap::value_type entry(path, win32_path); -- SystemTools::Cyg2Win32Map->insert(entry); -- } -- return win32_path[0] != 0; --} --#endif - - bool SystemTools::Touch(const kwsys_stl::string& filename, bool create) - { -@@ -4307,7 +4270,7 @@ - - bool SystemTools::FileIsFullPath(const char* in_name, size_t len) - { --#if defined(_WIN32) || defined(__CYGWIN__) -+#if defined(_WIN32) - // On Windows, the name must be at least two characters long. - if(len < 2) - { -@@ -5078,9 +5041,6 @@ - static unsigned int SystemToolsManagerCount; - SystemToolsTranslationMap *SystemTools::TranslationMap; - SystemToolsTranslationMap *SystemTools::LongPathMap; --#ifdef __CYGWIN__ --SystemToolsTranslationMap *SystemTools::Cyg2Win32Map; --#endif - - // SystemToolsManager manages the SystemTools singleton. - // SystemToolsManager should be included in any translation unit -@@ -5126,9 +5086,6 @@ - // Allocate the translation map first. - SystemTools::TranslationMap = new SystemToolsTranslationMap; - SystemTools::LongPathMap = new SystemToolsTranslationMap; --#ifdef __CYGWIN__ -- SystemTools::Cyg2Win32Map = new SystemToolsTranslationMap; --#endif - - // Add some special translation paths for unix. These are not added - // for windows because drive letters need to be maintained. Also, -@@ -5183,9 +5140,6 @@ - { - delete SystemTools::TranslationMap; - delete SystemTools::LongPathMap; --#ifdef __CYGWIN__ -- delete SystemTools::Cyg2Win32Map; --#endif - } - - ---- cmake-3.2.2/Source/kwsys/SystemTools.hxx.in 2015-04-13 19:09:00.000000000 +0200 -+++ cmake-3.2.2/Source/kwsys/SystemTools.hxx.in 2015-06-10 11:24:24.271286600 +0200 -@@ -298,15 +298,6 @@ - static bool FileExists(const kwsys_stl::string& filename); - - /** -- * Converts Cygwin path to Win32 path. Uses dictionary container for -- * caching and calls to cygwin_conv_to_win32_path from Cygwin dll -- * for actual translation. Returns true on success, else false. -- */ --#ifdef __CYGWIN__ -- static bool PathCygwinToWin32(const char *path, char *win32_path); --#endif -- -- /** - * Return file length - */ - static unsigned long FileLength(const kwsys_stl::string& filename); -@@ -942,9 +933,6 @@ - */ - static SystemToolsTranslationMap *TranslationMap; - static SystemToolsTranslationMap *LongPathMap; --#ifdef __CYGWIN__ -- static SystemToolsTranslationMap *Cyg2Win32Map; --#endif - friend class SystemToolsManager; - }; - ---- cmake-3.2.2/Modules/FindCurses.cmake 2015-04-13 19:09:00.000000000 +0200 -+++ cmake-3.2.2/Modules/FindCurses.cmake 2015-06-10 12:10:19.682030300 +0200 -@@ -60,15 +60,6 @@ - if(CURSES_NCURSES_LIBRARY AND ((NOT CURSES_CURSES_LIBRARY) OR CURSES_NEED_NCURSES)) - set(CURSES_USE_NCURSES TRUE) - endif() --# http://cygwin.com/ml/cygwin-announce/2010-01/msg00002.html --# cygwin ncurses stopped providing curses.h symlinks see above --# message. Cygwin is an ncurses package, so force ncurses on --# cygwin if the curses.h is missing --if(CYGWIN) -- if(NOT EXISTS /usr/include/curses.h) -- set(CURSES_USE_NCURSES TRUE) -- endif() --endif() - - - # Not sure the logic is correct here. diff --git a/pkgs/by-name/cm/cmake/005-remove-systemconfiguration-dep.diff b/pkgs/by-name/cm/cmake/005-remove-systemconfiguration-dep.diff deleted file mode 100644 index 16bcbbd..0000000 --- a/pkgs/by-name/cm/cmake/005-remove-systemconfiguration-dep.diff +++ /dev/null @@ -1,33 +0,0 @@ -diff -Naur cmake-3.28.2/Utilities/cmcurl/CMakeLists.txt cmake-3.28.2-new/Utilities/cmcurl/CMakeLists.txt ---- cmake-3.28.2/Utilities/cmcurl/CMakeLists.txt 2024-01-29 23:01:32.000000000 +0300 -+++ cmake-3.28.2-new/Utilities/cmcurl/CMakeLists.txt 2024-02-16 13:09:40.805479195 +0300 -@@ -470,13 +470,6 @@ - - if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT ENABLE_ARES) - set(use_core_foundation_and_core_services ON) -- -- find_library(SYSTEMCONFIGURATION_FRAMEWORK "SystemConfiguration") -- if(NOT SYSTEMCONFIGURATION_FRAMEWORK) -- message(FATAL_ERROR "SystemConfiguration framework not found") -- endif() -- -- list(APPEND CURL_LIBS "-framework SystemConfiguration") - endif() - endif() - -diff -Naur cmake-3.28.2/Utilities/cmcurl/lib/curl_setup.h cmake-3.28.2-new/Utilities/cmcurl/lib/curl_setup.h ---- cmake-3.28.2/Utilities/cmcurl/lib/curl_setup.h 2024-01-29 23:01:32.000000000 +0300 -+++ cmake-3.28.2-new/Utilities/cmcurl/lib/curl_setup.h 2024-02-16 13:10:38.822445566 +0300 -@@ -255,12 +255,6 @@ - * performing this task will result in a synthesized IPv6 address. - */ - #if defined(__APPLE__) && !defined(USE_ARES) --#include --#define USE_RESOLVE_ON_IPS 1 --# if TARGET_OS_MAC && !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) && \ -- defined(ENABLE_IPV6) --# define CURL_MACOS_CALL_COPYPROXIES 1 --# endif - #endif - - #ifdef USE_LWIPSOCK diff --git a/pkgs/by-name/cm/cmake/006-darwin-always-set-runtime-c-flag.diff b/pkgs/by-name/cm/cmake/006-darwin-always-set-runtime-c-flag.diff deleted file mode 100644 index dc10e6b..0000000 --- a/pkgs/by-name/cm/cmake/006-darwin-always-set-runtime-c-flag.diff +++ /dev/null @@ -1,14 +0,0 @@ -Revert of commit 1af23c4de2c7d58c06171d70b37794b5c860d5f4. ---- b/Modules/Platform/Darwin.cmake -+++ a/Modules/Platform/Darwin.cmake -@@ -47,9 +47,7 @@ - set(CMAKE_SHARED_MODULE_SUFFIX ".so") - set(CMAKE_MODULE_EXISTS 1) - set(CMAKE_DL_LIBS "") -+set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") --if(NOT "${_CURRENT_OSX_VERSION}" VERSION_LESS "10.5") -- set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") --endif() - - foreach(lang C CXX OBJC OBJCXX) - set(CMAKE_${lang}_OSX_COMPATIBILITY_VERSION_FLAG "-compatibility_version ") diff --git a/pkgs/by-name/cm/cmake/check-pc-files-hook.sh b/pkgs/by-name/cm/cmake/check-pc-files-hook.sh deleted file mode 100644 index 94d1b7b..0000000 --- a/pkgs/by-name/cm/cmake/check-pc-files-hook.sh +++ /dev/null @@ -1,18 +0,0 @@ -cmakePcfileCheckPhase() { - while IFS= read -rd $'\0' file; do - grepout=$(grep --line-number '}//nix/store' "$file" || true) - if [ -n "$grepout" ]; then - { - echo "Broken paths found in a .pc file! $file" - echo "The following lines have issues (specifically '//' in paths)." - echo "$grepout" - echo "It is very likely that paths are being joined improperly." - echo 'ex: "${prefix}/@CMAKE_INSTALL_LIBDIR@" should be "@CMAKE_INSTALL_FULL_LIBDIR@"' - echo "Please see https://github.com/NixOS/nixpkgs/issues/144170 for more details." - exit 1 - } 1>&2 - fi - done < <(find "${!outputDev}" -iname "*.pc" -print0) -} - -postFixupHooks+=(cmakePcfileCheckPhase) diff --git a/pkgs/by-name/cm/cmake/default.nix b/pkgs/by-name/cm/cmake/default.nix deleted file mode 100644 index d13cc0b..0000000 --- a/pkgs/by-name/cm/cmake/default.nix +++ /dev/null @@ -1,204 +0,0 @@ -{ 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 -# Accepts only "ncurses" and "qt5" as possible uiToolkits -assert lib.subtractLists [ "ncurses" "qt5" ] uiToolkits == []; -# Minimal, bootstrap cmake does not have toolkits -assert isMinimalBuild -> (uiToolkits == []); -stdenv.mkDerivation (finalAttrs: { - pname = "cmake" - + lib.optionalString isMinimalBuild "-minimal" - + lib.optionalString cursesUI "-cursesUI"; - # + lib.optionalString qt5UI "-qt5UI"; - version = "3.29.1"; - - src = fetchurl { - url = "https://cmake.org/files/v${lib.versions.majorMinor finalAttrs.version}/cmake-${finalAttrs.version}.tar.gz"; - 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; - - outputs = [ "out" ] ++ lib.optionals buildDocs [ "man" "info" ]; - separateDebugInfo = true; - setOutputFlags = false; - - setupHooks = [ - ./setup-hook.sh - ./check-pc-files-hook.sh - ]; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - - 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; - - propagatedBuildInputs = lib.optional stdenv.isDarwin ps; - - preConfigure = '' - fixCmakeFiles . - substituteInPlace Modules/Platform/UnixPaths.cmake \ - --subst-var-by libc_bin ${lib.getBin stdenv.cc.libc} \ - --subst-var-by libc_dev ${lib.getDev stdenv.cc.libc} \ - --subst-var-by libc_lib ${lib.getLib stdenv.cc.libc} - # CC_FOR_BUILD and CXX_FOR_BUILD are used to bootstrap cmake - configureFlags="--parallel=''${NIX_BUILD_CORES:-1} CC=$CC_FOR_BUILD CXX=$CXX_FOR_BUILD $configureFlags" - ''; - - # The configuration script is not autoconf-based, although being similar; - # triples and other interesting info are passed via CMAKE_* environment - # variables and commandline switches - configurePlatforms = [ ]; - - 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") - - (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).` - # The cause is a compiler warning `warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument]` - # interfering with the feature check. - env.NIX_CFLAGS_COMPILE = "-Wno-unused-command-line-argument"; - - # make install attempts to use the just-built cmake - preInstall = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' - sed -i 's|bin/cmake|${buildPackages.cmakeMinimal}/bin/cmake|g' Makefile - ''; - - dontUseCmakeConfigure = true; - enableParallelBuilding = true; - - doCheck = false; # fails - - passthru.updateScript = gitUpdater { - url = "https://gitlab.kitware.com/cmake/cmake.git"; - rev-prefix = "v"; - ignoredVersions = "-"; # -rc1 and friends - }; - - meta = { - homepage = "https://cmake.org/"; - description = "Cross-platform, open-source build system generator"; - longDescription = '' - CMake is an open-source, cross-platform family of tools designed to build, - test and package software. CMake is used to control the software - compilation process using simple platform and compiler independent - configuration files, and generate native makefiles and workspaces that can - be used in the compiler environment of your choice. - ''; - 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 ]; - platforms = lib.platforms.all; - mainProgram = "cmake"; - broken = (/*qt5UI &&*/ stdenv.isDarwin); - }; -}) diff --git a/pkgs/by-name/cm/cmake/packages.nix b/pkgs/by-name/cm/cmake/packages.nix deleted file mode 100644 index 638a24a..0000000 --- a/pkgs/by-name/cm/cmake/packages.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - cmake = callPackage ./. { }; - - # can't use override - it triggers infinite recursion - cmakeMinimal = callPackage ./. { - isMinimalBuild = true; - }; - - cmakeCurses = cmake.override { - uiToolkits = [ "ncurses" ]; - }; - - cmakeWithGui = cmake.override { - uiToolkits = [ "ncurses" "qt5" ]; - }; -} diff --git a/pkgs/by-name/cm/cmake/setup-hook.sh b/pkgs/by-name/cm/cmake/setup-hook.sh deleted file mode 100755 index b28ed42..0000000 --- a/pkgs/by-name/cm/cmake/setup-hook.sh +++ /dev/null @@ -1,184 +0,0 @@ -addCMakeParams() { - addToSearchPath CMAKE_PREFIX_PATH $1 -} - -fixCmakeFiles() { - # Replace occurences of /usr and /opt by /var/empty. - echo "fixing cmake files..." - find "$1" \( -type f -name "*.cmake" -o -name "*.cmake.in" -o -name CMakeLists.txt \) -print | - while read fn; do - sed -e 's^/usr\([ /]\|$\)^/var/empty\1^g' -e 's^/opt\([ /]\|$\)^/var/empty\1^g' < "$fn" > "$fn.tmp" - mv "$fn.tmp" "$fn" - done -} - -cmakeConfigurePhase() { - runHook preConfigure - - # default to CMake defaults if unset - : ${cmakeBuildDir:=build} - - export CTEST_OUTPUT_ON_FAILURE=1 - if [ -n "${enableParallelChecking-1}" ]; then - export CTEST_PARALLEL_LEVEL=$NIX_BUILD_CORES - fi - - if [ -z "${dontFixCmake-}" ]; then - fixCmakeFiles . - fi - - if [ -z "${dontUseCmakeBuildDir-}" ]; then - mkdir -p "$cmakeBuildDir" - cd "$cmakeBuildDir" - : ${cmakeDir:=..} - else - : ${cmakeDir:=.} - fi - - if [ -z "${dontAddPrefix-}" ]; then - cmakeFlags="-DCMAKE_INSTALL_PREFIX=$prefix $cmakeFlags" - fi - - # 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. - cmakeFlags="-DCMAKE_CXX_COMPILER=$CXX $cmakeFlags" - cmakeFlags="-DCMAKE_C_COMPILER=$CC $cmakeFlags" - cmakeFlags="-DCMAKE_AR=$(command -v $AR) $cmakeFlags" - cmakeFlags="-DCMAKE_RANLIB=$(command -v $RANLIB) $cmakeFlags" - cmakeFlags="-DCMAKE_STRIP=$(command -v $STRIP) $cmakeFlags" - - # on macOS we want to prefer Unix-style headers to Frameworks - # because we usually do not package the framework - cmakeFlags="-DCMAKE_FIND_FRAMEWORK=LAST $cmakeFlags" - - # we never want to use the global macOS SDK - cmakeFlags="-DCMAKE_OSX_SYSROOT= $cmakeFlags" - - # correctly detect our clang compiler - cmakeFlags="-DCMAKE_POLICY_DEFAULT_CMP0025=NEW $cmakeFlags" - - # This installs shared libraries with a fully-specified install - # name. By default, cmake installs shared libraries with just the - # basename as the install name, which means that, on Darwin, they - # can only be found by an executable at runtime if the shared - # libraries are in a system path or in the same directory as the - # executable. This flag makes the shared library accessible from its - # nix/store directory. - cmakeFlags="-DCMAKE_INSTALL_NAME_DIR=${!outputLib}/lib $cmakeFlags" - - # The docdir flag needs to include PROJECT_NAME as per GNU guidelines, - # try to extract it from CMakeLists.txt. - if [[ -z "$shareDocName" ]]; then - local cmakeLists="${cmakeDir}/CMakeLists.txt" - if [[ -f "$cmakeLists" ]]; then - local shareDocName="$(grep --only-matching --perl-regexp --ignore-case '\bproject\s*\(\s*"?\K([^[:space:]")]+)' < "$cmakeLists" | head -n1)" - fi - # The argument sometimes contains garbage or variable interpolation. - # When that is the case, let’s fall back to the derivation name. - if [[ -z "$shareDocName" ]] || echo "$shareDocName" | grep -q '[^a-zA-Z0-9_+-]'; then - if [[ -n "${pname-}" ]]; then - shareDocName="$pname" - else - shareDocName="$(echo "$name" | sed 's/-[^a-zA-Z].*//')" - fi - fi - fi - - # This ensures correct paths with multiple output derivations - # It requires the project to use variables from GNUInstallDirs module - # https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html - cmakeFlags="-DCMAKE_INSTALL_BINDIR=${!outputBin}/bin $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_SBINDIR=${!outputBin}/sbin $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_INCLUDEDIR=${!outputInclude}/include $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_OLDINCLUDEDIR=${!outputInclude}/include $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_MANDIR=${!outputMan}/share/man $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_INFODIR=${!outputInfo}/share/info $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_DOCDIR=${!outputDoc}/share/doc/${shareDocName} $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_LIBDIR=${!outputLib}/lib $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_LIBEXECDIR=${!outputLib}/libexec $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_LOCALEDIR=${!outputLib}/share/locale $cmakeFlags" - - # Don’t build tests when doCheck = false - if [ -z "${doCheck-}" ]; then - cmakeFlags="-DBUILD_TESTING=OFF $cmakeFlags" - fi - - # Always build Release, to ensure optimisation flags - cmakeFlags="-DCMAKE_BUILD_TYPE=${cmakeBuildType:-Release} $cmakeFlags" - - # Disable user package registry to avoid potential side effects - # and unecessary attempts to access non-existent home folder - # https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#disabling-the-package-registry - cmakeFlags="-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON $cmakeFlags" - cmakeFlags="-DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF $cmakeFlags" - cmakeFlags="-DCMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY=OFF $cmakeFlags" - - if [ "${buildPhase-}" = ninjaBuildPhase ]; then - cmakeFlags="-GNinja $cmakeFlags" - fi - - echo "cmake flags: $cmakeFlags ${cmakeFlagsArray[@]}" - - cmake "$cmakeDir" $cmakeFlags "${cmakeFlagsArray[@]}" - - if ! [[ -v enableParallelBuilding ]]; then - enableParallelBuilding=1 - echo "cmake: enabled parallel building" - fi - - if ! [[ -v enableParallelInstalling ]]; then - enableParallelInstalling=1 - echo "cmake: enabled parallel installing" - fi - - runHook postConfigure -} - -if [ -z "${dontUseCmakeConfigure-}" -a -z "${configurePhase-}" ]; then - setOutputFlags= - configurePhase=cmakeConfigurePhase -fi - -addEnvHooks "$targetOffset" addCMakeParams - -makeCmakeFindLibs(){ - isystem_seen= - iframework_seen= - for flag in ${NIX_CFLAGS_COMPILE-} ${NIX_LDFLAGS-}; do - if test -n "$isystem_seen" && test -d "$flag"; then - isystem_seen= - export CMAKE_INCLUDE_PATH="${CMAKE_INCLUDE_PATH-}${CMAKE_INCLUDE_PATH:+:}${flag}" - elif test -n "$iframework_seen" && test -d "$flag"; then - iframework_seen= - export CMAKE_FRAMEWORK_PATH="${CMAKE_FRAMEWORK_PATH-}${CMAKE_FRAMEWORK_PATH:+:}${flag}" - else - isystem_seen= - iframework_seen= - case $flag in - -I*) - export CMAKE_INCLUDE_PATH="${CMAKE_INCLUDE_PATH-}${CMAKE_INCLUDE_PATH:+:}${flag:2}" - ;; - -L*) - export CMAKE_LIBRARY_PATH="${CMAKE_LIBRARY_PATH-}${CMAKE_LIBRARY_PATH:+:}${flag:2}" - ;; - -F*) - export CMAKE_FRAMEWORK_PATH="${CMAKE_FRAMEWORK_PATH-}${CMAKE_FRAMEWORK_PATH:+:}${flag:2}" - ;; - -isystem) - isystem_seen=1 - ;; - -iframework) - iframework_seen=1 - ;; - esac - fi - done -} - -# not using setupHook, because it could be a setupHook adding additional -# include flags to NIX_CFLAGS_COMPILE -postHooks+=(makeCmakeFindLibs) diff --git a/pkgs/by-name/co/coeurl/default.nix b/pkgs/by-name/co/coeurl/default.nix deleted file mode 100644 index b0743e0..0000000 --- a/pkgs/by-name/co/coeurl/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ lib -, stdenv -, fetchFromGitLab -, fetchpatch -, ninja -, pkg-config -, meson -, libevent -, curl -, spdlog -}: - -stdenv.mkDerivation rec { - pname = "coeurl"; - version = "0.3.0"; - - src = fetchFromGitLab { - domain = "nheko.im"; - owner = "nheko-reborn"; - repo = pname; - rev = "v${version}"; - hash = "sha256-sN+YSddUOdnJLcnHyWdjNm1PpxCwnkwiqSvyrwUrg6w="; - }; - patches = [ - # Fix compatibility issues with curl > 7.85, see: - # https://nheko.im/nheko-reborn/coeurl/-/commit/d926893007c353fbc149d8538a5762ca8384273a - # PATCH CAN BE REMOVED AFTER 0.3.0 - (fetchpatch { - url = "https://nheko.im/nheko-reborn/coeurl/-/commit/d926893007c353fbc149d8538a5762ca8384273a.patch"; - hash = "sha256-hOBk7riuVI7k7qe/SMq3XJnFzyZ0gB9kVG7dKvWOsPY="; - }) - # Fix error when building with fmt >= 10, see: - # https://nheko.im/nheko-reborn/coeurl/-/commit/831e2ee8e9cf08ea1ee9736cde8370f9d0312abc - # PATCH CAN BE REMOVED AFTER 0.3.0 - (fetchpatch { - url = "https://nheko.im/nheko-reborn/coeurl/-/commit/831e2ee8e9cf08ea1ee9736cde8370f9d0312abc.patch"; - hash = "sha256-a52Id7Nm3Mmmwv7eL58j6xovjlkpAO4KahVM/Q3H65w="; - }) - ]; - postPatch = '' - substituteInPlace subprojects/curl.wrap --replace '[provides]' '[provide]' - ''; - - nativeBuildInputs = [ ninja pkg-config meson ]; - - buildInputs = [ libevent curl spdlog ]; - - meta = with lib; { - description = "A simple async wrapper around CURL for C++"; - homepage = "https://nheko.im/nheko-reborn/coeurl"; - license = licenses.mit; - platforms = platforms.all; - maintainers = with maintainers; [ rnhmjoj ]; - }; -} diff --git a/pkgs/by-name/co/coreutils/default.nix b/pkgs/by-name/co/coreutils/default.nix deleted file mode 100644 index efcdce1..0000000 --- a/pkgs/by-name/co/coreutils/default.nix +++ /dev/null @@ -1,189 +0,0 @@ -{ 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 -# fetchpatch! All mutable patches (generated by GitHub or cgit) that are needed -# here should be included directly in Nixpkgs as files. - -assert aclSupport -> acl != null; -assert selinuxSupport -> libselinux != null && libsepol != null; - -let - inherit (lib) concatStringsSep isString optional optionals optionalString; - isCross = (stdenv.hostPlatform != stdenv.buildPlatform); -in -stdenv.mkDerivation rec { - pname = "coreutils" + (optionalString (!minimal) "-full"); - version = "9.5"; - - src = fetchurl { - url = "mirror://gnu/coreutils/coreutils-${version}.tar.xz"; - hash = "sha256-zTKO3qyS9qZl3p8yPJO3Eq8YWLwuDYjz9xAEaUcKG4o="; - }; - - patches = lib.optionals stdenv.hostPlatform.isMusl [ - # https://lists.gnu.org/archive/html/bug-coreutils/2024-03/msg00089.html - ./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" [ - '' - 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 - ]; - - buildInputs = [ ] - ++ optional aclSupport acl - ++ optional attrSupport attr - ++ optional gmpSupport gmp - ++ optional withOpenssl openssl - ++ 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}") - ++ optional withOpenssl "--with-openssl" - ++ optional stdenv.hostPlatform.isSunOS "ac_cv_func_inotify_init=no" - ++ optional withPrefix "--program-prefix=g" - # the shipped configure script doesn't enable nls, but using autoreconfHook - # does so which breaks the build - ++ optional stdenv.isDarwin "--disable-nls" - ++ optionals (isCross && stdenv.hostPlatform.libc == "glibc") [ - # TODO(19b98110126fde7cbb1127af7e3fe1568eacad3d): Needed for fstatfs() I - # don't know why it is not properly detected cross building with glibc. - "fu_cv_sys_stat_statfs2_bsize=yes" - ] - # /proc/uptime is available on Linux and produces accurate results even if - # the boot time is set to the epoch because the system has no RTC. We - # explicitly enable it for cases where it can't be detected automatically, - # such as when cross-compiling. - ++ optional stdenv.hostPlatform.isLinux "gl_cv_have_proc_uptime=yes"; - - # The tests are known broken on Cygwin - # (http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/19025), - # 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) - && (stdenv.hostPlatform.libc == "glibc" || stdenv.hostPlatform.libc == "musl") - && !stdenv.isAarch32; - - # Prevents attempts of running 'help2man' on cross-built binaries. - PERL = if isCross then "missing" else null; - - enableParallelBuilding = true; - - NIX_LDFLAGS = optionalString selinuxSupport "-lsepol"; - FORCE_UNSAFE_CONFIGURE = optionalString stdenv.hostPlatform.isSunOS "1"; - 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"); - - # Works around a bug with 8.26: - # Makefile:3440: *** Recursive variable 'INSTALL' references itself (eventually). Stop. - preInstall = optionalString isCross '' - 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" - ''; - - meta = with lib; { - homepage = "https://www.gnu.org/software/coreutils/"; - description = "The GNU Core Utilities"; - longDescription = '' - The GNU Core Utilities are the basic file, shell and text manipulation - utilities of the GNU operating system. These are the core utilities which - are expected to exist on every operating system. - ''; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ das_j ]; - platforms = with platforms; unix ++ windows; - priority = 10; - }; -} diff --git a/pkgs/by-name/co/coreutils/fix-test-failure-musl.patch b/pkgs/by-name/co/coreutils/fix-test-failure-musl.patch deleted file mode 100644 index 2d54dd2..0000000 --- a/pkgs/by-name/co/coreutils/fix-test-failure-musl.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 1defda6356c29c7f731bddb9e9231f594e01d9c9 -(adjusted so it can be applied on coreutils to coreutils tarball) - -Reported by Adept's Lab via Pádraig Brady at -. - -diff --git a/gnulib-tests/test-canonicalize.c b/gnulib-tests/test-canonicalize.c -index 6763a525c9..5d19285c00 100644 ---- a/gnulib-tests/test-canonicalize.c -+++ b/gnulib-tests/test-canonicalize.c -@@ -394,9 +394,9 @@ main (void) - ASSERT (stat ("/", &st1) == 0); - ASSERT (stat ("//", &st2) == 0); - bool same = psame_inode (&st1, &st2); --#if defined __MVS__ || defined MUSL_LIBC -- /* On IBM z/OS and musl libc, "/" and "//" both canonicalize to -- themselves, yet they both have st_dev == st_ino == 1. */ -+#if defined __MVS__ -+ /* On IBM z/OS, "/" and "//" both canonicalize to themselves, yet they both -+ have st_dev == st_ino == 1. */ - same = false; - #endif - if (same) diff --git a/pkgs/by-name/co/coreutils/packages.nix b/pkgs/by-name/co/coreutils/packages.nix deleted file mode 100644 index f691731..0000000 --- a/pkgs/by-name/co/coreutils/packages.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ ... }: -res: pkgs: super: - -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; }; -} diff --git a/pkgs/by-name/cp/cpio/default.nix b/pkgs/by-name/cp/cpio/default.nix deleted file mode 100644 index 276cf41..0000000 --- a/pkgs/by-name/cp/cpio/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ lib -, stdenv -, fetchurl -, autoreconfHook - -# for passthru.tests -# , git -# , libguestfs -# , nixosTests -# , rpm -}: - -stdenv.mkDerivation rec { - pname = "cpio"; - version = "2.15"; - - src = fetchurl { - url = "mirror://gnu/cpio/cpio-${version}.tar.bz2"; - hash = "sha256-k3YQuXwymh7JJoVT+3gAN7z/8Nz/6XJevE/ZwaqQdds="; - }; - - nativeBuildInputs = [ autoreconfHook ]; - - separateDebugInfo = true; - - preConfigure = lib.optionalString stdenv.isCygwin '' - sed -i gnu/fpending.h -e 's,include ,,' - ''; - - enableParallelBuilding = true; - - # passthru.tests = { - # inherit libguestfs rpm; - # git = git.tests.withInstallCheck; - # initrd = nixosTests.systemd-initrd-simple; - # }; - - meta = with lib; { - homepage = "https://www.gnu.org/software/cpio/"; - description = "A program to create or extract from cpio archives"; - license = licenses.gpl3; - platforms = platforms.all; - priority = 6; # resolves collision with gnutar's "libexec/rmt" - mainProgram = "cpio"; - }; -} diff --git a/pkgs/by-name/cr/cracklib/default.nix b/pkgs/by-name/cr/cracklib/default.nix deleted file mode 100644 index 4c0badf..0000000 --- a/pkgs/by-name/cr/cracklib/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -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 { - pname = "cracklib"; - inherit version; - - src = fetchurl { - url = "https://github.com/${pname}/${pname}/releases/download/v${version}/${pname}-${version}.tar.bz2"; - hash = "sha256-yosEmjwtOyIloejRXWE3mOvHSOOVA4jtomlN5Qe6YCA="; - }; - - 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 - - '' + '' - ln -vs ${toString lists} dicts/ - ''; - - postInstall = '' - make dict-local - ''; - doInstallCheck = true; - installCheckTarget = "test"; - - meta = with lib; { - 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; - }; -} diff --git a/pkgs/by-name/cr/cryptsetup/default.nix b/pkgs/by-name/cr/cryptsetup/default.nix deleted file mode 100644 index 0e32966..0000000 --- a/pkgs/by-name/cr/cryptsetup/default.nix +++ /dev/null @@ -1,88 +0,0 @@ -{ 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 ? {} - # 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 -}: - -stdenv.mkDerivation rec { - pname = "cryptsetup"; - version = "2.7.1"; - - outputs = [ "bin" "out" "dev" "man" ]; - separateDebugInfo = true; - - src = fetchurl { - url = "mirror://kernel/linux/utils/cryptsetup/v${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - hash = "sha256-2l0UGeKobgGqMv15WCzVTSCIV8tUG8ov1Cal/xqqu8M="; - }; - - patches = [ - # Allow reading tokens from a relative path, see #167994 - ./relative-token-path.patch - ]; - - postPatch = '' - patchShebangs tests - - # O_DIRECT is filesystem dependent and fails in a sandbox (on tmpfs) - # and on several filesystem types (btrfs, zfs) without sandboxing. - # Remove it, see discussion in #46151 - substituteInPlace tests/unit-utils-io.c --replace "| O_DIRECT" "" - ''; - - 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; - - nativeBuildInputs = [ pkg-config ] ++ lib.optionals rebuildMan [ asciidoctor ]; - 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. - # Issue filed upstream: https://gitlab.com/cryptsetup/cryptsetup/-/issues/763 - doCheck = !stdenv.hostPlatform.isMusl; - - passthru = { - tests = { - nixos = - lib.optionalAttrs stdenv.hostPlatform.isLinux ( - lib.recurseIntoAttrs ( - lib.filterAttrs - (name: _value: lib.hasPrefix "luks" name) - nixosTests.installer - ) - ); - }; - }; - - meta = { - homepage = "https://gitlab.com/cryptsetup/cryptsetup/"; - description = "LUKS for dm-crypt"; - changelog = "https://gitlab.com/cryptsetup/cryptsetup/-/raw/v${version}/docs/v${version}-ReleaseNotes"; - license = lib.licenses.gpl2; - mainProgram = "cryptsetup"; - maintainers = with lib.maintainers; [ raitobezarius ]; - platforms = with lib.platforms; linux; - }; -} diff --git a/pkgs/by-name/cr/cryptsetup/relative-token-path.patch b/pkgs/by-name/cr/cryptsetup/relative-token-path.patch deleted file mode 100644 index dffd0ba..0000000 --- a/pkgs/by-name/cr/cryptsetup/relative-token-path.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 4f95ab1f8110a8ab9d7b0e192731ce467f6e5c26 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Janne=20He=C3=9F?= -Date: Sun, 4 Sep 2022 11:15:02 -0600 -Subject: [PATCH] Allow loading token handlers from the default search path - -Since [1] landed in cryptsetup, token handlers (libcryptsetup-token-*.so) -are loaded from a fixed path defined at compile-time. This is -problematic with NixOS since it introduces a dependency cycle -between cryptsetup and systemd. - -This downstream patch [2] allows loading token plugins from the -default library search path. This approach is not accepted upstream [3] -due to security concerns, but the potential attack vectors require -root access and they are sufficiently addressed: - -* cryptsetup could be used as a setuid binary (not used in NixOS). - In this case, LD_LIBRARY_PATH is ignored because of secure-execution - mode. -* cryptsetup running as root could lead to a malicious token handler - being loaded through LD_LIBRARY_PATH. However, fixing the path - doesn't prevent the same malicious .so being loaded through LD_PRELOAD. - -[1] https://gitlab.com/cryptsetup/cryptsetup/-/commit/5b9e98f94178d3cd179d9f6e2a0a68c7d9eb6507 -[2] https://github.com/NixOS/nixpkgs/issues/167994#issuecomment-1094249369 -[3] https://gitlab.com/cryptsetup/cryptsetup/-/issues/733 ---- - lib/luks2/luks2_token.c | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/lib/luks2/luks2_token.c b/lib/luks2/luks2_token.c -index 26467253..6f8329f0 100644 ---- a/lib/luks2/luks2_token.c -+++ b/lib/luks2/luks2_token.c -@@ -151,12 +151,10 @@ crypt_token_load_external(struct crypt_device *cd, const char *name, struct cryp - - token = &ret->u.v2; - -- r = snprintf(buf, sizeof(buf), "%s/libcryptsetup-token-%s.so", crypt_token_external_path(), name); -+ r = snprintf(buf, sizeof(buf), "libcryptsetup-token-%s.so", name); - if (r < 0 || (size_t)r >= sizeof(buf)) - return -EINVAL; - -- assert(*buf == '/'); -- - log_dbg(cd, "Trying to load %s.", buf); - - h = dlopen(buf, RTLD_LAZY); --- -2.37.2 - diff --git a/pkgs/by-name/cu/cunit/default.nix b/pkgs/by-name/cu/cunit/default.nix deleted file mode 100644 index 77af649..0000000 --- a/pkgs/by-name/cu/cunit/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib, stdenv, fetchurl, autoconf, automake, libtool, autoreconfHook}: - -stdenv.mkDerivation rec { - pname = "CUnit"; - version = "2.1-3"; - - nativeBuildInputs = [ autoreconfHook autoconf automake ]; - buildInputs = [libtool]; - - src = fetchurl { - url = "mirror://sourceforge/cunit/CUnit/${version}/${pname}-${version}.tar.bz2"; - sha256 = "057j82da9vv4li4z5ri3227ybd18nzyq81f6gsvhifs5z0vr3cpm"; - }; - - meta = { - description = "A Unit Testing Framework for C"; - - longDescription = '' - CUnit is a lightweight system for writing, administering, and running - unit tests in C. It provides C programmers a basic testing functionality - with a flexible variety of user interfaces. - ''; - - homepage = "https://cunit.sourceforge.net/"; - - license = lib.licenses.lgpl2; - platforms = lib.platforms.unix; - }; -} diff --git a/pkgs/by-name/cu/curl/default.nix b/pkgs/by-name/cu/curl/default.nix deleted file mode 100644 index 63b7852..0000000 --- a/pkgs/by-name/cu/curl/default.nix +++ /dev/null @@ -1,219 +0,0 @@ -{ 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 -# , coeurl -# , curlpp -# , haskellPackages -# , ocamlPackages -# , phpExtensions -# , pkgsStatic -# , python3 -# , tests -# , testers -# , fetchpatch -}: - -# 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 !((lib.count (x: x) [ gnutlsSupport opensslSupport wolfsslSupport rustlsSupport ]) > 1); - -stdenv.mkDerivation (finalAttrs: { - pname = "curl"; - version = "8.7.1"; - - 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" - ]; - hash = "sha256-b+oqrGpGEPvQQAr7C83b5yWKZMY/H2jlhV68DGWXEM0="; - }; - - postPatch = '' - patchShebangs scripts - ''; - - outputs = [ "bin" "dev" "out" "man" "devdoc" ]; - separateDebugInfo = stdenv.isLinux; - - enableParallelBuilding = true; - - strictDeps = true; - - 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 - ]); - - # 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") - ''; - - configureFlags = [ - # Build without manual - "--disable-manual" - (lib.enableFeature c-aresSupport "ares") - (lib.enableFeature ldapSupport "ldap") - (lib.enableFeature ldapSupport "ldaps") - (lib.enableFeature websocketSupport "websockets") - # --with-ca-fallback is only supported for openssl and gnutls https://github.com/curl/curl/blame/curl-8_0_1/acinclude.m4#L1640 - (lib.withFeature (opensslSupport || gnutlsSupport) "ca-fallback") - (lib.withFeature http3Support "nghttp3") - (lib.withFeature http3Support "ngtcp2") - (lib.withFeature rtmpSupport "librtmp") - (lib.withFeature rustlsSupport "rustls") - (lib.withFeature zstdSupport "zstd") - (lib.withFeature pslSupport "libpsl") - (lib.withFeatureAs brotliSupport "brotli" (lib.getDev brotli)) - (lib.withFeatureAs gnutlsSupport "gnutls" (lib.getDev gnutls)) - (lib.withFeatureAs idnSupport "libidn2" (lib.getDev libidn2)) - (lib.withFeatureAs opensslSupport "openssl" (lib.getDev openssl)) - (lib.withFeatureAs scpSupport "libssh2" (lib.getDev libssh2)) - (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" - ++ lib.optionals stdenv.hostPlatform.isWindows [ - "--disable-shared" - "--enable-static" - ] ++ 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) [ - "--without-ssl" - ]; - - CXX = "${stdenv.cc.targetPrefix}c++"; - CXXCPP = "${stdenv.cc.targetPrefix}c++ -E"; - - # takes 14 minutes on a 24 core and because many other packages depend on curl - # 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 - ''; - - 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 - ''; - - # passthru = let - # useThisCurl = attr: attr.override { curl = finalAttrs.finalPackage; }; - # in { - # inherit opensslSupport openssl; - # tests = { - # withCheck = finalAttrs.finalPackage.overrideAttrs (_: { doCheck = true; }); - # curlpp = useThisCurl curlpp; - # coeurl = useThisCurl coeurl; - # haskell-curl = useThisCurl haskellPackages.curl; - # ocaml-curly = useThisCurl ocamlPackages.curly; - # pycurl = useThisCurl python3.pkgs.pycurl; - # php-curl = useThisCurl phpExtensions.curl; - # error: attribute 'override' missing - # Additional checking with support http3 protocol. - # nginx-http3 = useThisCurl nixosTests.nginx-http3; - # nginx-http3 = nixosTests.nginx-http3; - # pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - # } // lib.optionalAttrs (stdenv.hostPlatform.system != "x86_64-darwin") { - # static = pkgsStatic.curl; - # } // lib.optionalAttrs (!stdenv.isDarwin) { - # fetchpatch = tests.fetchpatch.simple.override { fetchpatch = (fetchpatch.override { fetchurl = useThisCurl fetchurl; }) // { version = 1; }; }; - # }; - # }; - - 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/"; - 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; - pkgConfigModules = [ "libcurl" ]; - mainProgram = "curl"; - }; -}) diff --git a/pkgs/by-name/cu/curl/packages.nix b/pkgs/by-name/cu/curl/packages.nix deleted file mode 100644 index 24f50a6..0000000 --- a/pkgs/by-name/cu/curl/packages.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - curlFull = curl.override { - ldapSupport = true; - gsaslSupport = true; - rtmpSupport = true; - pslSupport = true; - websocketSupport = true; - }; - - curlHTTP3 = curl.override { - openssl = quictls; - http3Support = 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; }; -} diff --git a/pkgs/by-name/cu/curlpp/default.nix b/pkgs/by-name/cu/curlpp/default.nix deleted file mode 100644 index c8fe78d..0000000 --- a/pkgs/by-name/cu/curlpp/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, cmake, curl }: - -stdenv.mkDerivation rec { - pname = "curlpp"; - version = "0.8.1"; - src = fetchFromGitHub { - owner = "jpbarrette"; - repo = "curlpp"; - rev = "v${version}"; - sha256 = "1b0ylnnrhdax4kwjq64r1fk0i24n5ss6zfzf4hxwgslny01xiwrk"; - }; - - buildInputs = [ curl ]; - nativeBuildInputs = [ cmake ]; - - meta = with lib; { - homepage = "https://www.curlpp.org/"; - description = "C++ wrapper around libcURL"; - mainProgram = "curlpp-config"; - license = licenses.mit; - maintainers = with maintainers; [ CrazedProgrammer ]; - }; -} diff --git a/pkgs/by-name/cy/cyrus-sasl/cyrus-sasl-ac-try-run-fix.patch b/pkgs/by-name/cy/cyrus-sasl/cyrus-sasl-ac-try-run-fix.patch deleted file mode 100644 index f037679..0000000 --- a/pkgs/by-name/cy/cyrus-sasl/cyrus-sasl-ac-try-run-fix.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/m4/sasl2.m4 b/m4/sasl2.m4 -index 098c853a..91d98def 100644 ---- a/m4/sasl2.m4 -+++ b/m4/sasl2.m4 -@@ -350,7 +350,7 @@ int main(void) - - return (!have_spnego); // 0 = success, 1 = failure - } --],[ac_cv_gssapi_supports_spnego=yes],[ac_cv_gssapi_supports_spnego=no]) -+],[ac_cv_gssapi_supports_spnego=yes],[ac_cv_gssapi_supports_spnego=no],[ac_cv_gssapi_supports_spnego=no]) - LIBS="$cmu_save_LIBS" - ]) - AS_IF([test "$ac_cv_gssapi_supports_spnego" = yes],[ diff --git a/pkgs/by-name/cy/cyrus-sasl/default.nix b/pkgs/by-name/cy/cyrus-sasl/default.nix deleted file mode 100644 index ab583cf..0000000 --- a/pkgs/by-name/cy/cyrus-sasl/default.nix +++ /dev/null @@ -1,74 +0,0 @@ -{ lib -, stdenv -, fetchurl -, fetchpatch -, openssl -, openldap -, libkrb5 -, db -, gettext -, pam -, libxcrypt -, fixDarwinDylibNames -, autoreconfHook -, enableLdap ? false -, buildPackages -, pruneLibtoolFiles -# for passthru.tests -# , nixosTests -}: - -stdenv.mkDerivation rec { - pname = "cyrus-sasl"; - 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" - ]; - sha256 = "sha256-fM/Gq9Ae1nwaCSSzU+Um8bdmsh9C1FYu5jWo6/xbs4w="; - }; - - patches = [ - # Fix cross-compilation - ./cyrus-sasl-ac-try-run-fix.patch - # make compatible with openssl3. can probably be dropped with any release after 2.1.28 - (fetchpatch { - url = "https://github.com/cyrusimap/cyrus-sasl/compare/cb549ef71c5bb646fe583697ebdcaba93267a237...dfaa62392e7caecc6ecf0097b4d73738ec4fc0a8.patch"; - hash = "sha256-pc0cZqj1QoxDqgd/j/5q3vWONEPrTm4Pr6MzHlfjRCc="; - }) - ]; - - 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; - - configureFlags = [ - "--with-openssl=${openssl.dev}" - "--with-plugindir=${placeholder "out"}/lib/sasl2" - "--with-saslauthd=/run/saslauthd" - "--enable-login" - "--enable-shared" - ] ++ lib.optional enableLdap "--with-ldap=${openldap.dev}"; - - installFlags = lib.optionals stdenv.isDarwin [ "framedir=$(out)/Library/Frameworks/SASL2.framework" ]; - - # passthru.tests = { - # inherit (nixosTests) parsedmarc postfix; - # }; - - meta = with lib; { - homepage = "https://www.cyrusimap.org/sasl"; - description = "Library for adding authentication support to connection-based protocols"; - platforms = platforms.unix; - license = licenses.bsdOriginal; - }; -} diff --git a/pkgs/by-name/cy/cyrus-sasl/packages.nix b/pkgs/by-name/cy/cyrus-sasl/packages.nix deleted file mode 100644 index e9e6f52..0000000 --- a/pkgs/by-name/cy/cyrus-sasl/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index 29337ca..0000000 --- a/pkgs/by-name/da/darwin/darwin-packages.nix +++ /dev/null @@ -1,265 +0,0 @@ -{ lib -, buildPackages, pkgs, targetPackages -, generateSplicesForMkScope, makeScopeWithSplicing' -, stdenv -, preLibcCrossHeaders -, config -, path -}: - -let - # Prefix for binaries. Customarily ends with a dash separator. - # - # TODO(@Ericson2314) Make unconditional, or optional but always true by - # default. - 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; - }; - - 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; - - # Must use pkgs.callPackage to avoid infinite recursion. - - # Open source packages that are built from source - appleSourcePackages = pkgs.callPackage ./packages/apple-source-releases { } self; - - 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 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 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); - - 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 // { - - inherit apple_sdk apple_sdk_10_12 apple_sdk_11_0; - - stdenvNoCF = stdenv.override { - extraBuildInputs = []; - }; - - 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; - }; - - 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; - }; - - binutilsNoLibc = pkgs.wrapBintoolsWith { - libc = preLibcCrossHeaders; - bintools = self.binutils-unwrapped; - }; - - cctools = self.cctools-llvm; - - 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-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; - - DarwinTools = callPackage ./packages/DarwinTools { }; - - darwin-stubs = callPackage ./packages/darwin-stubs { }; - - print-reexports = callPackage ./packages/print-reexports { }; - - 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; - - sigtool = callPackage ./packages/sigtool { }; - - signingUtils = callPackage ./packages/signing-utils { }; - - 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; - - 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 { }; - - libobjc = self.objc4; - - 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; - }; - - openwith = pkgs.darwin.apple_sdk_11_0.callPackage ./packages/openwith { - inherit (apple_sdk_11_0.frameworks) AppKit Foundation UniformTypeIdentifiers; - }; - - stubs = pkgs.callPackages ./packages/stubs { }; - - trash = callPackage ./packages/trash { }; - - 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; - - 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; - }); - - # 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 { }; - - libtapi = callPackage ./packages/libtapi {}; - - ios-deploy = callPackage ./packages/ios-deploy {}; - - discrete-scroll = callPackage ./packages/discrete-scroll { }; - - # # 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; - - # # 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); - # }; - - # system = null; - # }; - - # in - # nixos.config.system.build.macos-builder-installer) { modules = [ ]; }; - - # 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 deleted file mode 100644 index f885a26..0000000 --- a/pkgs/by-name/da/darwin/packages.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - # Darwin package set - # - # Even though this is a set of packages not single package, use `callPackage` - # not `callPackages` so the per-package callPackages don't have their - # `.override` clobbered. C.F. `llvmPackages` which does the same. - darwin = recurseIntoAttrs (callPackage ./darwin-packages.nix { }); -} diff --git a/pkgs/by-name/da/darwin/packages/CoreSymbolication/default.nix b/pkgs/by-name/da/darwin/packages/CoreSymbolication/default.nix deleted file mode 100644 index f6b0e2b..0000000 --- a/pkgs/by-name/da/darwin/packages/CoreSymbolication/default.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ - lib, - fetchFromGitHub, - fetchpatch, - stdenvNoCC, - darwin-stubs, -}: - -stdenvNoCC.mkDerivation (finalAttrs: { - pname = "CoreSymbolication"; - inherit (darwin-stubs) version; - - src = fetchFromGitHub { - repo = "CoreSymbolication"; - owner = "matthewbauer"; - rev = "24c87c23664b3ee05dc7a5a87d647ae476a680e4"; - hash = "sha256-PzvLq94eNhP0+rLwGMKcMzxuD6MlrNI7iT/eV0obtSE="; - }; - - patches = [ - # Add missing symbol definitions needed to build `zlog` in system_cmds. - # https://github.com/matthewbauer/CoreSymbolication/pull/2 - (fetchpatch { - url = "https://github.com/matthewbauer/CoreSymbolication/commit/ae7ac6a7043dbae8e63d6ce5e63dfaf02b5977fe.patch"; - hash = "sha256-IuXGMsaR1LIGs+BpDU1b4YlznKm9VhK5DQ+Dthtb1mI="; - }) - (fetchpatch { - url = "https://github.com/matthewbauer/CoreSymbolication/commit/6531da946949a94643e6d8424236174ae64fe0ca.patch"; - hash = "sha256-+nDX04yY92yVT9KxiAFY2LxKcS7P8JpU539K+YVRqV4="; - }) - ]; - - dontBuild = true; - - installPhase = '' - runHook preInstall - - mkdir -p $out/Library/Frameworks/CoreSymbolication.framework/Versions/A/Headers - - ln -s A $out/Library/Frameworks/CoreSymbolication.framework/Versions/Current - ln -s Versions/Current/Headers $out/Library/Frameworks/CoreSymbolication.framework/Headers - ln -s Versions/Current/CoreSymbolication.tbd $out/Library/Frameworks/CoreSymbolication.framework/CoreSymbolication.tbd - - cp *.h $out/Library/Frameworks/CoreSymbolication.framework/Versions/A/Headers - cp ${darwin-stubs}/System/Library/PrivateFrameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication.tbd \ - $out/Library/Frameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication.tbd - - runHook postInstall - ''; - - meta = with lib; { - description = "Reverse engineered headers for Apple's CoreSymbolication framework"; - homepage = "https://github.com/matthewbauer/CoreSymbolication"; - license = licenses.mit; - platforms = platforms.darwin; - maintainers = with maintainers; [ matthewbauer ]; - }; -}) diff --git a/pkgs/by-name/da/darwin/packages/DarwinTools/default.nix b/pkgs/by-name/da/darwin/packages/DarwinTools/default.nix deleted file mode 100644 index 11e4c84..0000000 --- a/pkgs/by-name/da/darwin/packages/DarwinTools/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "DarwinTools"; - version = "1"; - - src = fetchurl { - url = "https://web.archive.org/web/20180408044816/https://opensource.apple.com/tarballs/DarwinTools/DarwinTools-${version}.tar.gz"; - hash = "sha256-Fzo5QhLd3kZHVFKhJe7xzV6bmRz5nAsG2mNLkAqVBEI="; - }; - - patches = [ - ./sw_vers-CFPriv.patch - ]; - - configurePhase = '' - export SRCROOT=. - export SYMROOT=. - export DSTROOT=$out - ''; - - makeFlags = [ - "CC=${stdenv.cc.targetPrefix}cc" - "STRIP=${stdenv.cc.targetPrefix}strip" - ]; - - postInstall = '' - mv $out/usr/* $out - rmdir $out/usr - ''; - - meta = { - maintainers = [ lib.maintainers.matthewbauer ]; - platforms = lib.platforms.darwin; - }; -} diff --git a/pkgs/by-name/da/darwin/packages/DarwinTools/sw_vers-CFPriv.patch b/pkgs/by-name/da/darwin/packages/DarwinTools/sw_vers-CFPriv.patch deleted file mode 100644 index 6faeaa7..0000000 --- a/pkgs/by-name/da/darwin/packages/DarwinTools/sw_vers-CFPriv.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- a/sw_vers.c 2021-04-19 13:06:50.131346864 +0900 -+++ b/sw_vers.c 2021-04-19 13:07:32.481967474 +0900 -@@ -28,7 +28,15 @@ - */ - - #include --#include -+ -+// Avoid dependency on CoreFoundation/CFPriv, which no longer appears to be -+// part of the upstream sdk. -+ -+CFDictionaryRef _CFCopyServerVersionDictionary(void); -+CFDictionaryRef _CFCopySystemVersionDictionary(void); -+extern CFStringRef _kCFSystemVersionProductNameKey; -+extern CFStringRef _kCFSystemVersionProductVersionKey; -+extern CFStringRef _kCFSystemVersionBuildVersionKey; - - void usage(char *progname) { - fprintf(stderr, "Usage: %s [-productName|-productVersion|-buildVersion]\n", progname); 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 deleted file mode 100644 index fdc3bd4..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/apple_sdk.nix +++ /dev/null @@ -1,268 +0,0 @@ -{ 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: - "/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 {}); - }; - - 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 - 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; - - dontUnpack = true; - - # because we copy files from the system - preferLocalBuild = true; - - disallowedRequisites = [ MacOSX-SDK ]; - - nativeBuildInputs = [ buildPackages.darwin.rewrite-tbd ]; - - installPhase = '' - mkdir -p $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 - - # 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; - - 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; - - framework = name: deps: mkFramework { inherit name deps; private = false; }; - privateFramework = name: deps: mkFramework { inherit name deps; private = true; }; -in rec { - libs = { - xpc = stdenv.mkDerivation { - name = "apple-lib-xpc"; - dontUnpack = true; - - installPhase = '' - mkdir -p $out/include - pushd $out/include >/dev/null - cp -r "${MacOSX-SDK}/usr/include/xpc" $out/include/xpc - cp "${MacOSX-SDK}/usr/include/launch.h" $out/include/launch.h - popd >/dev/null - ''; - }; - - Xplugin = stdenv.mkDerivation { - name = "apple-lib-Xplugin"; - dontUnpack = true; - - propagatedBuildInputs = with frameworks; [ - OpenGL ApplicationServices Carbon IOKit CoreGraphics CoreServices CoreText - ]; - - installPhase = '' - mkdir -p $out/include $out/lib - ln -s "${MacOSX-SDK}/include/Xplugin.h" $out/include/Xplugin.h - cp ${MacOSX-SDK}/usr/lib/libXplugin.1.tbd $out/lib - ln -s libXplugin.1.tbd $out/lib/libXplugin.tbd - ''; - }; - - utmp = stdenv.mkDerivation { - name = "apple-lib-utmp"; - dontUnpack = true; - - installPhase = '' - mkdir -p $out/include - pushd $out/include >/dev/null - ln -s "${MacOSX-SDK}/include/utmp.h" - ln -s "${MacOSX-SDK}/include/utmpx.h" - popd >/dev/null - ''; - }; - - sandbox = stdenv.mkDerivation { - name = "apple-lib-sandbox"; - - dontUnpack = true; - dontBuild = true; - - installPhase = '' - mkdir -p $out/include $out/lib - ln -s "${MacOSX-SDK}/usr/include/sandbox.h" $out/include/sandbox.h - cp "${MacOSX-SDK}/usr/lib/libsandbox.1.tbd" $out/lib - ln -s libsandbox.1.tbd $out/lib/libsandbox.tbd - ''; - }; - - libDER = stdenv.mkDerivation { - name = "apple-lib-libDER"; - dontUnpack = true; - installPhase = '' - mkdir -p $out/include - cp -r ${MacOSX-SDK}/usr/include/libDER $out/include - ''; - }; - - simd = stdenv.mkDerivation { - name = "apple-lib-simd"; - dontUnpack = true; - installPhase = '' - mkdir -p $out/include - cp -r ${MacOSX-SDK}/usr/include/simd $out/include - ''; - }; - }; - - 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; }; - }; - - # 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"; - - # 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 - ''; - }); - - 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 - ); - - # 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/cf-setup-hook.sh b/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/cf-setup-hook.sh deleted file mode 100644 index b64eb95..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/cf-setup-hook.sh +++ /dev/null @@ -1,6 +0,0 @@ -forceLinkCoreFoundationFramework() { - NIX_CFLAGS_COMPILE="-F@out@/Library/Frameworks${NIX_CFLAGS_COMPILE:+ }${NIX_CFLAGS_COMPILE-}" - NIX_LDFLAGS+=" @out@/Library/Frameworks/CoreFoundation.framework/CoreFoundation.tbd" -} - -preConfigureHooks+=(forceLinkCoreFoundationFramework) 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 deleted file mode 100644 index 238c1b7..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/default.nix +++ /dev/null @@ -1,160 +0,0 @@ -{ stdenvNoCC, fetchurl, newScope, lib, pkgs -, stdenv, overrideCC -, xar, cpio, python3, pbzx }: - -let - mkSusDerivation = args: stdenvNoCC.mkDerivation (args // { - dontBuild = true; - darwinDontCodeSign = true; - - nativeBuildInputs = [ cpio pbzx ]; - - outputs = [ "out" ]; - - unpackPhase = '' - pbzx $src | cpio -idm - ''; - - passthru = { - inherit (args) version; - }; - }); - - MacOSX-SDK = mkSusDerivation { - pname = "MacOSX-SDK"; - version = "11.0.0"; - - # https://swscan.apple.com/content/catalogs/others/index-11-10.15-10.14-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog - src = fetchurl { - url = "http://swcdn.apple.com/content/downloads/46/21/001-89745-A_56FM390IW5/v1um2qppgfdnam2e9cdqcqu2r6k8aa3lis/CLTools_macOSNMOS_SDK.pkg"; - sha256 = "0n425smj4q1vxbza8fzwnk323fyzbbq866q32w288c44hl5yhwsf"; - }; - - installPhase = '' - mv Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk $out - ''; - }; - - CLTools_Executables = mkSusDerivation { - pname = "CLTools_Executables"; - version = "11.0.0"; - - # https://swscan.apple.com/content/catalogs/others/index-11-10.15-10.14-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog - src = fetchurl { - url = "http://swcdn.apple.com/content/downloads/46/21/001-89745-A_56FM390IW5/v1um2qppgfdnam2e9cdqcqu2r6k8aa3lis/CLTools_Executables.pkg"; - sha256 = "0nvb1qx7l81l2wcl8wvgbpsg5rcn51ylhivqmlfr2hrrv3zrrpl0"; - }; - - installPhase = '' - mv Library/Developer/CommandLineTools $out - ''; - }; - - 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 - else - let - darwinMinVersion = "10.12"; - darwinSdkVersion = "11.0"; - 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; }; - }; - - 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; }); - - packages = stdenvs // { - inherit (callPackage ./apple_sdk.nix { }) frameworks libs; - - # TODO: this is nice to be private. is it worth the callPackage above? - # Probably, I don't think that callPackage costs much at all. - inherit MacOSX-SDK CLTools_Executables; - - Libsystem = callPackage ./libSystem.nix { }; - LibsystemCross = pkgs.darwin.Libsystem; - libcharset = callPackage ./libcharset.nix { }; - libcompression = callPackage ./libcompression.nix { }; - libunwind = callPackage ./libunwind.nix { }; - libnetwork = callPackage ./libnetwork.nix { }; - libpm = callPackage ./libpm.nix { }; - # Avoid introducing a new objc4 if stdenv already has one, to prevent - # conflicting LLVM modules. - objc4 = stdenv.objc4 or (callPackage ./libobjc.nix { }); - - sdkRoot = pkgs.callPackage ../apple-sdk/sdkRoot.nix { sdkVersion = "11.0"; }; - - # questionable aliases - configd = pkgs.darwin.apple_sdk.frameworks.SystemConfiguration; - inherit (pkgs.darwin.apple_sdk.frameworks) IOKit; - - xcodebuild = pkgs.xcbuild.override { - inherit (pkgs.darwin.apple_sdk_11_0) stdenv; - 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 { - 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 - ; - 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"; - inherit (MacOSX-SDK) version; - - buildCommand = '' - mkdir -p "$out" - ln -s ${MacOSX-SDK}/System "$out/System" - ln -s ${MacOSX-SDK}/usr "$out/usr" - ''; - }; - }; -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 deleted file mode 100644 index fa6945f..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/frameworks.nix +++ /dev/null @@ -1,196 +0,0 @@ -# This file is generated by gen-frameworks.nix. -# Do not edit, put overrides in apple_sdk.nix instead. -{ 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 = {}; -} 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 deleted file mode 100644 index b661da7..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libSystem.nix +++ /dev/null @@ -1,88 +0,0 @@ -{ stdenvNoCC, buildPackages, MacOSX-SDK }: - -stdenvNoCC.mkDerivation { - pname = "libSystem"; - version = MacOSX-SDK.version; - - dontBuild = true; - dontUnpack = true; - - 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" - ]; - - 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" - ]; - - installPhase = '' - mkdir -p $out/{include,lib/swift} - - for dir in $includeDirs; do - from=${MacOSX-SDK}/usr/include/$dir - if [ -e "$from" ]; then - cp -dr $from $out/include - else - echo "Header directory '$from' doesn't exist: skipping" - fi - done - - cp -d \ - ${MacOSX-SDK}/usr/include/*.h \ - ${MacOSX-SDK}/usr/include/*.modulemap \ - ${MacOSX-SDK}/usr/include/*.apinotes \ - $out/include - - rm $out/include/tk*.h $out/include/tcl*.h - - cp -dr \ - ${MacOSX-SDK}/usr/lib/libSystem.* \ - ${MacOSX-SDK}/usr/lib/system \ - $out/lib - - # Extra libraries - for name in c dbm dl info m mx poll proc pthread rpcsvc util gcc_s.1 resolv; do - cp -d \ - ${MacOSX-SDK}/usr/lib/lib$name.tbd \ - ${MacOSX-SDK}/usr/lib/lib$name.*.tbd \ - $out/lib - done - - for name in os Dispatch; do - cp -dr \ - ${MacOSX-SDK}/usr/lib/swift/$name.swiftmodule \ - ${MacOSX-SDK}/usr/lib/swift/libswift$name.tbd \ - $out/lib/swift - done - - for f in $csu; do - from=${MacOSX-SDK}/usr/lib/$f - if [ -e "$from" ]; then - cp -d $from $out/lib - else - echo "Csu file '$from' doesn't exist: skipping" - fi - done - - chmod u+w -R $out/lib - find $out -name '*.tbd' -type f | while read tbd; do - rewrite-tbd \ - -c /usr/lib/libsystem.dylib:$out/lib/libsystem.dylib \ - -p /usr/lib/system/:$out/lib/system/ \ - -p /usr/lib/swift/:$out/lib/swift/ \ - -r ${builtins.storeDir} \ - "$tbd" - 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 deleted file mode 100644 index bf55037..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libcharset.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ stdenvNoCC, buildPackages, MacOSX-SDK }: - -stdenvNoCC.mkDerivation { - pname = "libcharset"; - version = MacOSX-SDK.version; - - dontUnpack = true; - dontBuild = true; - - nativeBuildInputs = [ buildPackages.darwin.checkReexportsHook ]; - - installPhase = '' - mkdir -p $out/{include,lib} - cp ${MacOSX-SDK}/usr/lib/libcharset* $out/lib - ''; -} 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 deleted file mode 100644 index 92a45b7..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libcompression.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ stdenvNoCC, buildPackages, MacOSX-SDK }: - -let self = stdenvNoCC.mkDerivation { - pname = "libcompression"; - version = MacOSX-SDK.version; - - dontUnpack = true; - dontBuild = true; - - installPhase = '' - mkdir -p $out/lib - cp ${MacOSX-SDK}/usr/lib/libcompression* $out/lib - ''; - - passthru = { - tbdRewrites = { - const."/usr/lib/libcompression.dylib" = "${self}/lib/libcompression.dylib"; - }; - }; -}; 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 deleted file mode 100644 index 2e5c059..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libnetwork.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ stdenvNoCC, buildPackages, MacOSX-SDK }: - -let self = stdenvNoCC.mkDerivation { - pname = "libnetwork"; - version = MacOSX-SDK.version; - - dontUnpack = true; - dontBuild = true; - - installPhase = '' - mkdir -p $out/lib - cp ${MacOSX-SDK}/usr/lib/libnetwork* $out/lib - ''; - - passthru = { - tbdRewrites = { - const."/usr/lib/libnetwork.dylib" = "${self}/lib/libnetwork.dylib"; - }; - }; -}; 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 deleted file mode 100644 index 9288097..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libobjc.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ stdenvNoCC, MacOSX-SDK, libcharset }: - -let self = stdenvNoCC.mkDerivation { - pname = "libobjc"; - version = MacOSX-SDK.version; - - 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 - ''; - - 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 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 deleted file mode 100644 index 995f2b2..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libpm.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ stdenvNoCC, MacOSX-SDK, checkReexportsHook }: - -stdenvNoCC.mkDerivation { - pname = "libpm"; - version = MacOSX-SDK.version; - - dontUnpack = true; - dontBuild = true; - - nativeBuildInputs = [ checkReexportsHook ]; - - installPhase = '' - mkdir -p $out/lib - cp ${MacOSX-SDK}/usr/lib/libpm* $out/lib - ''; - - passthru = { - tbdRewrites = { - const."/usr/lib/libpmenergy.dylib" = "${placeholder "out"}/lib/libpmenergy.dylib"; - const."/usr/lib/libpmsample.dylib" = "${placeholder "out"}/lib/libpmsample.dylib"; - }; - }; -} 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 deleted file mode 100644 index 885780e..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libunwind.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ stdenvNoCC, buildPackages, MacOSX-SDK }: - -stdenvNoCC.mkDerivation { - pname = "libunwind"; - version = MacOSX-SDK.version; - - dontUnpack = true; - dontBuild = true; - - nativeBuildInputs = [ buildPackages.darwin.checkReexportsHook ]; - - installPhase = '' - mkdir -p $out/include/mach-o - - cp \ - ${MacOSX-SDK}/usr/include/libunwind.h \ - ${MacOSX-SDK}/usr/include/unwind.h \ - $out/include - - cp \ - ${MacOSX-SDK}/usr/include/mach-o/compact_unwind_encoding.h \ - $out/include/mach-o - ''; -} 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 deleted file mode 100644 index 4566c8a..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/private-frameworks.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ 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 = {}; - - # Also expose CoreSymbolication; used by `root` package. - CoreSymbolication = {}; - - # Also expose DebugSymbols; used by `llvmPackages_8.lldb` package. - DebugSymbols = {}; - - # Also expose DisplayServices; used by `sketchybar` package. - DisplayServices = { inherit libobjc; }; - - # Also expose MultitouchSupport; used by `chuck` package. - MultitouchSupport = {}; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-sdk/cf-setup-hook.sh b/pkgs/by-name/da/darwin/packages/apple-sdk/cf-setup-hook.sh deleted file mode 100644 index 5d0f58f..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-sdk/cf-setup-hook.sh +++ /dev/null @@ -1,9 +0,0 @@ -linkSystemCoreFoundationFramework() { - NIX_CFLAGS_COMPILE="-F@out@/Library/Frameworks${NIX_CFLAGS_COMPILE:+ }${NIX_CFLAGS_COMPILE-}" - # gross! many symbols (such as _OBJC_CLASS_$_NSArray) are defined in system CF, but not - # in the opensource release - # if the package needs private headers, we assume they also want to link with system CF - NIX_LDFLAGS+=" @out@/Library/Frameworks/CoreFoundation.framework/CoreFoundation.tbd" -} - -preConfigureHooks+=(linkSystemCoreFoundationFramework) diff --git a/pkgs/by-name/da/darwin/packages/apple-sdk/default.nix b/pkgs/by-name/da/darwin/packages/apple-sdk/default.nix deleted file mode 100644 index a3d1df0..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-sdk/default.nix +++ /dev/null @@ -1,362 +0,0 @@ -{ stdenv, fetchurl, cpio, pbzx, pkgs, lib, darwin-stubs, print-reexports }: - -let - # sadly needs to be exported because security_tool needs it - sdk = stdenv.mkDerivation rec { - pname = "MacOS_SDK"; - version = "10.12"; - - # This URL comes from https://swscan.apple.com/content/catalogs/others/index-10.12.merged-1.sucatalog, which we found by: - # 1. Google: site:swscan.apple.com and look for a name that seems appropriate for your version - # 2. In the resulting file, search for a file called DevSDK ending in .pkg - # 3. ??? - # 4. Profit - src = fetchurl { - url = "http://swcdn.apple.com/content/downloads/33/36/041-90419-A_7JJ4H9ZHO2/xs88ob5wjz6riz7g6764twblnvksusg4ps/DevSDK_OSX1012.pkg"; - sha256 = "13xq34sb7383b37hwy076gnhf96prpk1b4087p87xnwswxbrisih"; - }; - - nativeBuildInputs = [ cpio pbzx ]; - - outputs = [ "out" "dev" "man" ]; - - unpackPhase = '' - pbzx $src | cpio -idm - ''; - - sourceRoot = "."; - - installPhase = '' - mkdir -p $out - - cp -R System/Library $out - cp -R usr/* $out - - pushd $out/lib - cp ${darwin-stubs}/usr/lib/libcups*.tbd . - ln -s libcups.2.tbd libcups.tbd - ln -s libcupscgi.1.tbd libcupscgi.tbd - ln -s libcupsimage.2.tbd libcupsimage.tbd - ln -s libcupsmime.1.tbd libcupsmime.tbd - ln -s libcupsppdc.1.tbd libcupsppdc.tbd - popd - ''; - - meta = with lib; { - description = "Apple SDK ${version}"; - maintainers = with maintainers; [ copumpkin ]; - 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; - - framework = name: deps: stdenv.mkDerivation { - name = "apple-framework-${name}"; - - dontUnpack = true; - - # because we copy files from the system - preferLocalBuild = true; - - disallowedRequisites = [ sdk ]; - - nativeBuildInputs = [ print-reexports ]; - - 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 - - local dest="$out/Library/Frameworks/$path" - - 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 - - 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 - - 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 - - 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" - 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 - - # 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/* . - - # NOTE there's no re-export checking here, this is probably wrong - ''; - }; -in rec { - libs = { - xpc = stdenv.mkDerivation { - name = "apple-lib-xpc"; - dontUnpack = true; - - installPhase = '' - mkdir -p $out/include - pushd $out/include >/dev/null - cp -r "${lib.getDev sdk}/include/xpc" $out/include/xpc - cp "${lib.getDev sdk}/include/launch.h" $out/include/launch.h - popd >/dev/null - ''; - }; - - Xplugin = stdenv.mkDerivation { - name = "apple-lib-Xplugin"; - dontUnpack = true; - - # Not enough - __propagatedImpureHostDeps = [ "/usr/lib/libXplugin.1.dylib" ]; - - propagatedBuildInputs = with frameworks; [ - OpenGL ApplicationServices Carbon IOKit CoreGraphics CoreServices CoreText - ]; - - installPhase = '' - mkdir -p $out/include $out/lib - ln -s "${lib.getDev sdk}/include/Xplugin.h" $out/include/Xplugin.h - cp ${darwin-stubs}/usr/lib/libXplugin.1.tbd $out/lib - ln -s libXplugin.1.tbd $out/lib/libXplugin.tbd - ''; - }; - - utmp = stdenv.mkDerivation { - name = "apple-lib-utmp"; - dontUnpack = true; - - installPhase = '' - mkdir -p $out/include - pushd $out/include >/dev/null - ln -s "${lib.getDev sdk}/include/utmp.h" - ln -s "${lib.getDev sdk}/include/utmpx.h" - popd >/dev/null - ''; - }; - - sandbox = stdenv.mkDerivation { - name = "apple-lib-sandbox"; - dontUnpack = true; - - installPhase = '' - mkdir -p $out/include $out/lib - ln -s "${lib.getDev sdk}/include/sandbox.h" $out/include/sandbox.h - cp "${darwin-stubs}/usr/lib/libsandbox.1.tbd" $out/lib - ln -s libsandbox.1.tbd $out/lib/libsandbox.tbd - ''; - }; - }; - - 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" ]; - }); - - 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" - ]; - }); - - 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" ]; - }); - - 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" - ''; - }); - - 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 - ''; - }); - - 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; - }); - - frameworks = bareFrameworks // overrides bareFrameworks; - - inherit darwin-stubs; - - objc4 = pkgs.darwin.libobjc; - - sdkRoot = pkgs.callPackage ./sdkRoot.nix { sdkVersion = "10.12"; }; - - inherit (pkgs.darwin) Libsystem; - - inherit sdk; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-sdk/framework-setup-hook.sh b/pkgs/by-name/da/darwin/packages/apple-sdk/framework-setup-hook.sh deleted file mode 100644 index b0d5915..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-sdk/framework-setup-hook.sh +++ /dev/null @@ -1,42 +0,0 @@ -# On macOS, frameworks are linked to the system CoreFoundation but -# dynamic libraries built with nix use a pure version of CF this -# causes segfaults for binaries that depend on it at runtime. This -# can be solved in two ways. -# 1. Rewrite references to the pure CF using this setup hook, this -# works for the simple case but this can still cause problems if other -# dependencies (eg. python) use the pure CF. -# 2. Create a wrapper for the binary that sets DYLD_FRAMEWORK_PATH to -# /System/Library/Frameworks. This will make everything load the -# system's CoreFoundation framework while still keeping the -# dependencies pure for other packages. - -fixupOutputHooks+=('fixDarwinFrameworksIn $prefix') - -fixDarwinFrameworks() { - local systemPrefix='/System/Library/Frameworks' - - for fn in "$@"; do - if [ -L "$fn" ]; then continue; fi - echo "$fn: fixing dylib" - - for framework in $(otool -L "$fn" | awk '/CoreFoundation\.framework/ {print $1}'); do - install_name_tool -change "$framework" "$systemPrefix/CoreFoundation.framework/Versions/A/CoreFoundation" "$fn" >&2 - done - done -} - -fixDarwinFrameworksIn() { - local dir="$1" - fixDarwinFrameworks $(find "$dir" -name "*.dylib") -} - - -# This configures the stdenv to use /System/Library/Frameworks/CoreFoundation.framework -# instead of the nix version by including the system frameworks path -# as an rpath entry when creating binaries. - -useSystemCoreFoundationFramework () { - export NIX_COREFOUNDATION_RPATH=/System/Library/Frameworks -} - -addEnvHooks "$hostOffset" useSystemCoreFoundationFramework diff --git a/pkgs/by-name/da/darwin/packages/apple-sdk/frameworks.nix b/pkgs/by-name/da/darwin/packages/apple-sdk/frameworks.nix deleted file mode 100644 index a9fbcc0..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-sdk/frameworks.nix +++ /dev/null @@ -1,130 +0,0 @@ -# Current as of 10.12 -# Epic weird knot-tying happening here. -# TODO: clean up the process for generating this and include it - -{ 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 = {}; - # 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; }; - - # Umbrellas - 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; }; - - 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 deleted file mode 100644 index c111492..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-sdk/impure-deps.nix +++ /dev/null @@ -1,256 +0,0 @@ -rec { - CFNetwork = [ - "/System/Library/Frameworks/CFNetwork.framework" - "/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" - ]; - 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" - ]; - 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" - ]; - CoreMediaIO = [ - "/System/Library/Frameworks/CoreMediaIO.framework" - "/System/Library/PrivateFrameworks/AppSandbox.framework/Versions/A/AppSandbox" - "/System/Library/PrivateFrameworks/AppContainer.framework/Versions/A/AppContainer" - "/System/Library/PrivateFrameworks/SecCodeWrapper.framework/Versions/A/SecCodeWrapper" - "/System/Library/PrivateFrameworks/XPCService.framework/Versions/A/XPCService" - "/usr/lib/libsandbox.1.dylib" - "/usr/lib/libMatch.1.dylib" - ]; - MediaToolbox = [ - "/System/Library/Frameworks/MediaToolbox.framework" - "/System/Library/PrivateFrameworks/CoreAUC.framework/Versions/A/CoreAUC" - "/System/Library/PrivateFrameworks/NetworkStatistics.framework/Versions/A/NetworkStatistics" - ]; - QTKit = [ - "/System/Library/Frameworks/QTKit.framework" - "/System/Library/PrivateFrameworks/CoreMediaAuthoring.framework/Versions/A/CoreMediaAuthoring" - ]; - OSAKit = [ - "/System/Library/Frameworks/OSAKit.framework" - "/usr/lib/libexslt.0.dylib" - ]; - WebKit = [ - "/System/Library/Frameworks/WebKit.framework" - ]; - DiskArbitration = [ - "/System/Library/Frameworks/DiskArbitration.framework" - ]; - Security = [ - "/System/Library/Frameworks/Security.framework" - "/usr/lib/libbsm.0.dylib" - "/usr/lib/libbz2.1.0.dylib" - "/usr/lib/libpam.2.dylib" - "/usr/lib/libxar.1.dylib" - "/usr/lib/libxml2.2.dylib" - "/usr/lib/libsqlite3.dylib" - ]; - 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" - "/System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC" - "/System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling" - "/usr/lib/libmecabra.dylib" - "/usr/lib/libcmph.dylib" - "/usr/lib/libiconv.2.dylib" - "/usr/lib/libxslt.1.dylib" - ] ++ Foundation; - 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" - ]; - 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" - ]; - QuartzCore = [ - "/System/Library/Frameworks/QuartzCore.framework" - "/System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport" - ]; - PCSC = [ - "/System/Library/Frameworks/PCSC.framework" - ]; - AppKit = [ - "/System/Library/Frameworks/AppKit.framework" - "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Apple80211" - "/System/Library/PrivateFrameworks/AppleJPEG.framework/Versions/A/AppleJPEG" - "/System/Library/PrivateFrameworks/AppleVPA.framework/Versions/A/AppleVPA" - "/System/Library/PrivateFrameworks/Backup.framework/Versions/A/Backup" - "/System/Library/PrivateFrameworks/ChunkingLibrary.framework/Versions/A/ChunkingLibrary" - "/System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth" - "/System/Library/PrivateFrameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication" - "/System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI" - "/System/Library/PrivateFrameworks/CoreWiFi.framework/Versions/A/CoreWiFi" - "/System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport" - "/System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore" - "/System/Library/PrivateFrameworks/DebugSymbols.framework/Versions/A/DebugSymbols" - "/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv" - "/System/Library/PrivateFrameworks/FaceCore.framework/Versions/A/FaceCore" - "/System/Library/PrivateFrameworks/GenerationalStorage.framework/Versions/A/GenerationalStorage" - "/System/Library/PrivateFrameworks/Heimdal.framework/Heimdal" - "/System/Library/PrivateFrameworks/Heimdal.framework/Versions/Current" - "/System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal" - "/System/Library/PrivateFrameworks/IconServices.framework/Versions/A/IconServices" - "/System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling" - "/System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport" - "/System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth" - "/System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/PerformanceAnalysis" - "/System/Library/PrivateFrameworks/RemoteViewServices.framework/Versions/A/RemoteViewServices" - "/System/Library/PrivateFrameworks/Sharing.framework/Versions/A/Sharing" - "/System/Library/PrivateFrameworks/SpeechRecognitionCore.framework/Versions/A/SpeechRecognitionCore" - "/System/Library/PrivateFrameworks/Symbolication.framework/Versions/A/Symbolication" - "/System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC" - "/System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation" - "/System/Library/PrivateFrameworks/login.framework/Versions/A/Frameworks/loginsupport.framework/Versions/A/loginsupport" - "/usr/lib/libCRFSuite.dylib" - "/usr/lib/libOpenScriptingUtil.dylib" - "/usr/lib/libarchive.2.dylib" - "/usr/lib/libbsm.0.dylib" - "/usr/lib/libbz2.1.0.dylib" - "/usr/lib/libc++.1.dylib" - "/usr/lib/libc++abi.dylib" - "/usr/lib/libcmph.dylib" - "/usr/lib/libcups.2.dylib" - "/usr/lib/libextension.dylib" - "/usr/lib/libheimdal-asn1.dylib" - "/usr/lib/libiconv.2.dylib" - "/usr/lib/libicucore.A.dylib" - "/usr/lib/liblangid.dylib" - "/usr/lib/liblzma.5.dylib" - "/usr/lib/libmecabra.dylib" - "/usr/lib/libpam.2.dylib" - "/usr/lib/libresolv.9.dylib" - "/usr/lib/libsqlite3.dylib" - "/usr/lib/libxar.1.dylib" - "/usr/lib/libxml2.2.dylib" - "/usr/lib/libxslt.1.dylib" - "/usr/lib/libz.1.dylib" - ]; - Foundation = [ - "/System/Library/Frameworks/Foundation.framework" - "/usr/lib/libextension.dylib" - "/usr/lib/libarchive.2.dylib" - "/usr/lib/liblzma.5.dylib" - "/usr/lib/liblangid.dylib" - "/usr/lib/libCRFSuite.dylib" - ]; - CoreData = [ - "/System/Library/Frameworks/CoreData.framework" - ]; - Cocoa = [ - "/System/Library/Frameworks/Cocoa.framework" - "/System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation" - "/System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A" - ]; - Carbon = [ - "/System/Library/Frameworks/Carbon.framework" - "/System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI" - "/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv" - "/System/Library/PrivateFrameworks/IconServices.framework/Versions/A/IconServices" - "/System/Library/PrivateFrameworks/ChunkingLibrary.framework/Versions/A/ChunkingLibrary" - "/System/Library/PrivateFrameworks/Sharing.framework/Versions/A/Sharing" - "/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" - ]; - 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" - ]; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-sdk/private-frameworks-setup-hook.sh b/pkgs/by-name/da/darwin/packages/apple-sdk/private-frameworks-setup-hook.sh deleted file mode 100644 index a351c39..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-sdk/private-frameworks-setup-hook.sh +++ /dev/null @@ -1,8 +0,0 @@ -addPrivateFrameworks() { - flag="-F/System/Library/PrivateFrameworks" - if [[ "${NIX_CFLAGS_COMPILE-}" != *$flag* ]]; then - NIX_CFLAGS_COMPILE+=" $flag" - fi -} - -addEnvHooks "$hostOffset" addPrivateFrameworks diff --git a/pkgs/by-name/da/darwin/packages/apple-sdk/sdkRoot.nix b/pkgs/by-name/da/darwin/packages/apple-sdk/sdkRoot.nix deleted file mode 100644 index 67d9cbe..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-sdk/sdkRoot.nix +++ /dev/null @@ -1,68 +0,0 @@ -{ - lib, - runCommand, - writeText, - sdkVersion, -}: - -let - sdkName = "MacOSX${sdkVersion}"; - toolchainName = "com.apple.dt.toolchain.XcodeDefault"; - productBuildVer = null; - - inherit (lib.generators) toPlist toJSON; - - SDKSettings = { - CanonicalName = "macosx${sdkVersion}"; - DisplayName = "macOS ${sdkVersion}"; - Toolchains = [ toolchainName ]; - Version = sdkVersion; - MaximumDeploymentTarget = "${sdkVersion}.99"; - isBaseSDK = "YES"; - }; - - SystemVersion = - lib.optionalAttrs (productBuildVer != null) { ProductBuildVersion = productBuildVer; } - // { - ProductName = "macOS"; - ProductVersion = sdkVersion; - }; -in -runCommand "sdkroot-${sdkVersion}" { } '' - 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" - - ln -s "$sdk" "$sdk/usr" - - install -D '${../../../build-support/setup-hooks/role.bash}' "$out/nix-support/setup-hook" - cat >> "$out/nix-support/setup-hook" <<-hook - # - # See comments in cc-wrapper's setup hook. This works exactly the same way. - # - [[ -z \''${strictDeps-} ]] || (( "\$hostOffset" < 0 )) || return 0 - - sdkRootHook() { - # See ../../../build-support/setup-hooks/role.bash - local role_post - getHostRoleEnvHook - - # Only set the SDK root if one has not been set via this hook or some other means. - if [[ ! \$NIX_CFLAGS_COMPILE =~ isysroot ]]; then - export NIX_CFLAGS_COMPILE\''${role_post}+=' -isysroot $out/${sdkName}.sdk' - fi - } - - # See ../../../build-support/setup-hooks/role.bash - getTargetRole - - addEnvHooks "\$targetOffset" sdkRootHook - - # No local scope in sourced file - unset -v role_post - hook -'' diff --git a/pkgs/by-name/da/darwin/packages/apple-sdk/security-setup-hook.sh b/pkgs/by-name/da/darwin/packages/apple-sdk/security-setup-hook.sh deleted file mode 100644 index 35cea77..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-sdk/security-setup-hook.sh +++ /dev/null @@ -1,10 +0,0 @@ -noDeprecatedDeclarations() { - # Security.framework has about 2000 deprecated constants, all of which the user will be - # warned about at compilation time - flag="-Wno-deprecated-declarations" - if [[ "${NIX_CFLAGS_COMPILE-}" != *$flag* ]]; then - NIX_CFLAGS_COMPILE+=" $flag" - fi -} - -addEnvHooks "$hostOffset" noDeprecatedDeclarations 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 deleted file mode 100644 index f3ef0e9..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/CarbonHeaders/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ lib, appleDerivation', stdenvNoCC }: - -appleDerivation' stdenvNoCC { - dontBuild = true; - - installPhase = '' - mkdir -p $out/include - cp MacTypes.h $out/include - cp ConditionalMacros.h $out/include - - substituteInPlace $out/include/MacTypes.h \ - --replace "CarbonCore/" "" - ''; - - meta = with lib; { - maintainers = with maintainers; [ copumpkin ]; - 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 deleted file mode 100644 index 32e1429..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/CommonCrypto/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ lib, appleDerivation', stdenvNoCC }: - -appleDerivation' stdenvNoCC { - installPhase = '' - mkdir -p $out/include/CommonCrypto - cp include/* $out/include/CommonCrypto - ''; - - appleHeaders = '' - CommonCrypto/CommonBaseXX.h - CommonCrypto/CommonBigNum.h - CommonCrypto/CommonCMACSPI.h - CommonCrypto/CommonCRC.h - CommonCrypto/CommonCrypto.h - CommonCrypto/CommonCryptoError.h - CommonCrypto/CommonCryptoPriv.h - CommonCrypto/CommonCryptor.h - CommonCrypto/CommonCryptorSPI.h - CommonCrypto/CommonDH.h - CommonCrypto/CommonDigest.h - CommonCrypto/CommonDigestSPI.h - CommonCrypto/CommonECCryptor.h - CommonCrypto/CommonHMAC.h - CommonCrypto/CommonHMacSPI.h - CommonCrypto/CommonKeyDerivation.h - CommonCrypto/CommonKeyDerivationSPI.h - CommonCrypto/CommonNumerics.h - CommonCrypto/CommonRSACryptor.h - CommonCrypto/CommonRandom.h - CommonCrypto/CommonRandomSPI.h - CommonCrypto/CommonSymmetricKeywrap.h - CommonCrypto/aes.h - CommonCrypto/lionCompat.h - CommonCrypto/module.modulemap - ''; - - meta = with lib; { - maintainers = with maintainers; [ copumpkin ]; - 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 deleted file mode 100644 index 8cb478d..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/Csu/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib, appleDerivation', stdenv }: - -appleDerivation' stdenv { - - prePatch = '' - substituteInPlace Makefile \ - --replace /usr/lib /lib \ - --replace /usr/local/lib /lib \ - --replace /usr/bin "" \ - --replace /bin/ "" \ - --replace "CC = " "#" \ - --replace "SDK_DIR = " "SDK_DIR = . #" \ - - # Mac OS didn't support rpaths back before 10.5, but we don't care about it. - substituteInPlace Makefile \ - --replace -mmacosx-version-min=10.4 -mmacosx-version-min=10.6 \ - --replace -mmacosx-version-min=10.5 -mmacosx-version-min=10.6 - ''; - - installFlags = [ "DSTROOT=$(out)" ]; - enableParallelInstalling = false; # cp: cannot create regular file '$out/lib/crt1.10.6.o' - - meta = with lib; { - description = "Apple's common startup stubs for darwin"; - maintainers = with maintainers; [ copumpkin ]; - 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 deleted file mode 100644 index ed5e998..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/ICU/default.nix +++ /dev/null @@ -1,86 +0,0 @@ -{ appleDerivation, lib, stdenv, buildPackages, python3 }: - -let - 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 - -appleDerivation { - nativeBuildInputs = [ python3 ]; - - 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" - - 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)\\\"\"' "" - - # 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" - - 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)' - ''; - - # 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)" - - # 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}" - ]; - - doCheck = true; - checkTarget = "check"; - - postInstall = '' - # we don't need all those in usr/local - rm -rf $out/usr - ''; -} 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 deleted file mode 100644 index 3943e2b..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/IOKit/default.nix +++ /dev/null @@ -1,188 +0,0 @@ -{ 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 { - srcs = lib.attrValues IOKitSrcs; - sourceRoot = "."; - - __propagatedImpureHostDeps = [ - "/System/Library/Frameworks/IOKit.framework/IOKit" - "/System/Library/Frameworks/IOKit.framework/Resources" - "/System/Library/Frameworks/IOKit.framework/Versions" - ]; - - installPhase = '' - mkdir -p $out/Library/Frameworks/IOKit.framework - - ###### IMPURITIES - ln -s /System/Library/Frameworks/IOKit.framework/Resources \ - $out/Library/Frameworks/IOKit.framework - - ###### STUBS - cp ${darwin-stubs}/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit.tbd \ - $out/Library/Frameworks/IOKit.framework - - ###### HEADERS - - export dest=$out/Library/Frameworks/IOKit.framework/Headers - mkdir -p $dest - - pushd $dest - mkdir audio avc DV firewire graphics hid hidsystem i2c kext ndrvsupport - mkdir network ps pwr_mgt sbp2 scsi serial storage stream usb video - popd - - # root: complete - cp IOKitUser-*/IOCFBundle.h $dest - cp IOKitUser-*/IOCFPlugIn.h $dest - cp IOKitUser-*/IOCFSerialize.h $dest - cp IOKitUser-*/IOCFUnserialize.h $dest - cp IOKitUser-*/IOCFURLAccess.h $dest - cp IOKitUser-*/IODataQueueClient.h $dest - cp IOKitUser-*/IOKitLib.h $dest - cp IOKitUser-*/iokitmig.h $dest - cp ${xnu}/Library/PrivateFrameworks/IOKit.framework/Versions/A/Headers/*.h $dest - - # audio: complete - cp IOAudioFamily-*/IOAudioDefines.h $dest/audio - cp IOKitUser-*/audio.subproj/IOAudioLib.h $dest/audio - cp IOAudioFamily-*/IOAudioTypes.h $dest/audio - - # avc: complete - cp IOFireWireAVC-*/IOFireWireAVC/IOFireWireAVCConsts.h $dest/avc - cp IOFireWireAVC-*/IOFireWireAVCLib/IOFireWireAVCLib.h $dest/avc - - # DV: complete - cp IOFWDVComponents-*/DVFamily.h $dest/DV - - # firewire: complete - cp IOFireWireFamily-*/IOFireWireFamily.kmodproj/IOFireWireFamilyCommon.h $dest/firewire - cp IOFireWireFamily-*/IOFireWireLib.CFPlugInProj/IOFireWireLib.h $dest/firewire - cp IOFireWireFamily-*/IOFireWireLib.CFPlugInProj/IOFireWireLibIsoch.h $dest/firewire - cp IOFireWireFamily-*/IOFireWireFamily.kmodproj/IOFWIsoch.h $dest/firewire - - # graphics: missing AppleGraphicsDeviceControlUserCommand.h - cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOAccelClientConnect.h $dest/graphics - cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOAccelSurfaceConnect.h $dest/graphics - cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOAccelTypes.h $dest/graphics - cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOFramebufferShared.h $dest/graphics - cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOGraphicsEngine.h $dest/graphics - cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOGraphicsInterface.h $dest/graphics - cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOGraphicsInterfaceTypes.h $dest/graphics - cp IOKitUser-*/graphics.subproj/IOGraphicsLib.h $dest/graphics - cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOGraphicsTypes.h $dest/graphics - - # hid: complete - cp IOKitUser-*/hid.subproj/IOHIDBase.h $dest/hid - cp IOKitUser-*/hid.subproj/IOHIDDevice.h $dest/hid - cp IOKitUser-*/hid.subproj/IOHIDDevicePlugIn.h $dest/hid - cp IOKitUser-*/hid.subproj/IOHIDElement.h $dest/hid - cp IOKitUser-*/hid.subproj/IOHIDLib.h $dest/hid - cp IOKitUser-*/hid.subproj/IOHIDManager.h $dest/hid - cp IOKitUser-*/hid.subproj/IOHIDQueue.h $dest/hid - cp IOKitUser-*/hid.subproj/IOHIDTransaction.h $dest/hid - cp IOKitUser-*/hid.subproj/IOHIDValue.h $dest/hid - cp IOHIDFamily-*/IOHIDFamily/IOHIDKeys.h $dest/hid - cp IOHIDFamily-*/IOHIDFamily/IOHIDUsageTables.h $dest/hid - cp IOHIDFamily-*/IOHIDLib/IOHIDLibObsolete.h $dest/hid - - # hidsystem: complete - cp IOHIDFamily-*/IOHIDSystem/IOKit/hidsystem/ev_keymap.h $dest/hidsystem - cp IOKitUser-*/hidsystem.subproj/event_status_driver.h $dest/hidsystem - cp IOKitUser-*/hidsystem.subproj/IOHIDLib.h $dest/hidsystem - cp IOHIDFamily-*/IOHIDSystem/IOKit/hidsystem/IOHIDParameter.h $dest/hidsystem - cp IOHIDFamily-*/IOHIDSystem/IOKit/hidsystem/IOHIDShared.h $dest/hidsystem - cp IOHIDFamily-*/IOHIDSystem/IOKit/hidsystem/IOHIDTypes.h $dest/hidsystem - cp IOHIDFamily-*/IOHIDSystem/IOKit/hidsystem/IOLLEvent.h $dest/hidsystem - - - # i2c: complete - cp IOGraphics-*/IOGraphicsFamily/IOKit/i2c/IOI2CInterface.h $dest/i2c - - # kext: complete - cp IOKitUser-*/kext.subproj/KextManager.h $dest/kext - - # ndrvsupport: complete - cp IOGraphics-*/IONDRVSupport/IOKit/ndrvsupport/IOMacOSTypes.h $dest/ndrvsupport - cp IOGraphics-*/IONDRVSupport/IOKit/ndrvsupport/IOMacOSVideo.h $dest/ndrvsupport - - # network: complete - cp IONetworkingFamily-*/IOEthernetController.h $dest/network - cp IONetworkingFamily-*/IOEthernetInterface.h $dest/network - cp IONetworkingFamily-*/IOEthernetStats.h $dest/network - cp IONetworkingFamily-*/IONetworkController.h $dest/network - cp IONetworkingFamily-*/IONetworkData.h $dest/network - cp IONetworkingFamily-*/IONetworkInterface.h $dest/network - cp IOKitUser-*/network.subproj/IONetworkLib.h $dest/network - cp IONetworkingFamily-*/IONetworkMedium.h $dest/network - cp IONetworkingFamily-*/IONetworkStack.h $dest/network - cp IONetworkingFamily-*/IONetworkStats.h $dest/network - cp IONetworkingFamily-*/IONetworkUserClient.h $dest/network - - # ps: missing IOUPSPlugIn.h - cp IOKitUser-*/ps.subproj/IOPowerSources.h $dest/ps - cp IOKitUser-*/ps.subproj/IOPSKeys.h $dest/ps - - # pwr_mgt: complete - cp IOKitUser-*/pwr_mgt.subproj/IOPMKeys.h $dest/pwr_mgt - cp IOKitUser-*/pwr_mgt.subproj/IOPMLib.h $dest/pwr_mgt - cp ${xnu}/Library/PrivateFrameworks/IOKit.framework/Versions/A/Headers/pwr_mgt/*.h $dest/pwr_mgt - cp IOKitUser-*/pwr_mgt.subproj/IOPMLibPrivate.h $dest/pwr_mgt # Private - - # sbp2: complete - cp IOFireWireSBP2-*/IOFireWireSBP2Lib/IOFireWireSBP2Lib.h $dest/sbp2 - - # scsi: omitted for now - - # serial: complete - cp IOSerialFamily-*/IOSerialFamily.kmodproj/IOSerialKeys.h $dest/serial - cp IOSerialFamily-*/IOSerialFamily.kmodproj/ioss.h $dest/serial - - # storage: complete - # Needs ata subdirectory - cp IOStorageFamily-*/IOAppleLabelScheme.h $dest/storage - cp IOStorageFamily-*/IOApplePartitionScheme.h $dest/storage - cp IOBDStorageFamily-*/IOBDBlockStorageDevice.h $dest/storage - cp IOBDStorageFamily-*/IOBDMedia.h $dest/storage - cp IOBDStorageFamily-*/IOBDMediaBSDClient.h $dest/storage - cp IOBDStorageFamily-*/IOBDTypes.h $dest/storage - cp IOStorageFamily-*/IOBlockStorageDevice.h $dest/storage - cp IOStorageFamily-*/IOBlockStorageDriver.h $dest/storage - cp IOCDStorageFamily-*/IOCDBlockStorageDevice.h $dest/storage - cp IOCDStorageFamily-*/IOCDMedia.h $dest/storage - cp IOCDStorageFamily-*/IOCDMediaBSDClient.h $dest/storage - cp IOCDStorageFamily-*/IOCDPartitionScheme.h $dest/storage - cp IOCDStorageFamily-*/IOCDTypes.h $dest/storage - cp IODVDStorageFamily-*/IODVDBlockStorageDevice.h $dest/storage - cp IODVDStorageFamily-*/IODVDMedia.h $dest/storage - cp IODVDStorageFamily-*/IODVDMediaBSDClient.h $dest/storage - cp IODVDStorageFamily-*/IODVDTypes.h $dest/storage - cp IOStorageFamily-*/IOFDiskPartitionScheme.h $dest/storage - cp IOStorageFamily-*/IOFilterScheme.h $dest/storage - cp IOFireWireSerialBusProtocolTransport-*/IOFireWireStorageCharacteristics.h $dest/storage - cp IOStorageFamily-*/IOGUIDPartitionScheme.h $dest/storage - cp IOStorageFamily-*/IOMedia.h $dest/storage - cp IOStorageFamily-*/IOMediaBSDClient.h $dest/storage - cp IOStorageFamily-*/IOPartitionScheme.h $dest/storage - cp IOStorageFamily-*/IOStorage.h $dest/storage - cp IOStorageFamily-*/IOStorageCardCharacteristics.h $dest/storage - cp IOStorageFamily-*/IOStorageDeviceCharacteristics.h $dest/storage - cp IOStorageFamily-*/IOStorageProtocolCharacteristics.h $dest/storage - - # stream: missing altogether - - # usb: complete - cp IOUSBFamily*-630.4.5/IOUSBFamily/Headers/IOUSBLib.h $dest/usb - cp IOUSBFamily*-630.4.5/IOUSBUserClient/Headers/IOUSBUserClient.h $dest/usb - cp IOUSBFamily*-560.4.2/IOUSBFamily/Headers/USB.h $dest/usb # This file is empty in 630.4.5! - cp IOUSBFamily*-630.4.5/IOUSBFamily/Headers/USBSpec.h $dest/usb - - # video: missing altogether - ''; - - meta = with lib; { - maintainers = with maintainers; [ copumpkin ]; - platforms = platforms.darwin; - license = licenses.apple-psl20; - }; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libc/0001-Define-TARGET_OS_EMBEDDED-in-std-lib-io-if-not-defin.patch b/pkgs/by-name/da/darwin/packages/apple-source-releases/Libc/0001-Define-TARGET_OS_EMBEDDED-in-std-lib-io-if-not-defin.patch deleted file mode 100644 index 2ba6773..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libc/0001-Define-TARGET_OS_EMBEDDED-in-std-lib-io-if-not-defin.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 187d0e8847d080790b22724352e51de50d214dd8 Mon Sep 17 00:00:00 2001 -From: toonn -Date: Tue, 27 Jul 2021 15:12:14 +0200 -Subject: [PATCH] Define TARGET_OS_EMBEDDED in std{lib,io} if not defined - -Originally attempted including `TargetConditionals.h` but this had -knock-on effects, for example, breaking the zlib build because of -`TARGET_OS_MAC` getting defined. - -This should be the lowest impact solution and corresponds to the default -behavior IIUC. ---- - include/stdio.h | 3 +++ - include/stdlib.h | 3 +++ - 2 files changed, 6 insertions(+) - -diff --git a/include/stdio.h b/include/stdio.h -index d0cf7a5..487496e 100644 ---- a/include/stdio.h -+++ b/include/stdio.h -@@ -351,6 +351,9 @@ __END_DECLS - /* Additional functionality provided by: - * POSIX.2-1992 C Language Binding Option - */ -+#ifndef TARGET_OS_EMBEDDED -+# define TARGET_OS_EMBEDDED 0 -+#endif - #if TARGET_OS_EMBEDDED - #define __swift_unavailable_on(osx_msg, ios_msg) __swift_unavailable(ios_msg) - #else -diff --git a/include/stdlib.h b/include/stdlib.h -index c04d3a7..0b454ba 100644 ---- a/include/stdlib.h -+++ b/include/stdlib.h -@@ -183,6 +183,9 @@ unsigned long long - #ifndef LIBC_ALIAS_SYSTEM - //End-Libc - -+#ifndef TARGET_OS_EMBEDDED -+# define TARGET_OS_EMBEDDED 0 -+#endif - #if TARGET_OS_EMBEDDED - #define __swift_unavailable_on(osx_msg, ios_msg) __swift_unavailable(ios_msg) - #else --- -2.17.2 (Apple Git-113) - diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libc/CrashReporterClient.h b/pkgs/by-name/da/darwin/packages/apple-source-releases/Libc/CrashReporterClient.h deleted file mode 100644 index a1cbb72..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libc/CrashReporterClient.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2010 Apple Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - -/*********************************************************************** - * Not to be installed in /usr/local/include - ***********************************************************************/ - -#ifndef _LIBC_CRASHREPORTERCLIENT_H -#define _LIBC_CRASHREPORTERCLIENT_H - -#include "stdint.h" - -/* Fake the CrashReporterClient API */ -#define CRGetCrashLogMessage() 0 -#define CRSetCrashLogMessage(m) true - -#define CRASH_REPORTER_CLIENT_HIDDEN __attribute__((visibility("hidden"))) -#define CRASHREPORTER_ANNOTATIONS_VERSION 4 -#define CRASHREPORTER_ANNOTATIONS_SECTION "__crash_info" - -struct crashreporter_annotations_t { - uint64_t version; // unsigned long - uint64_t message; // char * - uint64_t signature_string; // char * - uint64_t backtrace; // char * - uint64_t message2; // char * - uint64_t thread; // uint64_t - uint64_t dialog_mode; // unsigned int -}; - -#endif 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 deleted file mode 100644 index 6ff3cec..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libc/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ 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 - ]; - - installPhase = '' - export SRCROOT=$PWD - export DSTROOT=$out - export PUBLIC_HEADERS_FOLDER_PATH=include - export PRIVATE_HEADERS_FOLDER_PATH=include - bash xcodescripts/headers.sh - - cp ${./CrashReporterClient.h} $out/include/CrashReporterClient.h - - cp ${Libc_10-9}/include/NSSystemDirectories.h $out/include - ''; - - appleHeaders = builtins.readFile ./headers.txt; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libc/headers.txt b/pkgs/by-name/da/darwin/packages/apple-source-releases/Libc/headers.txt deleted file mode 100644 index c7cad63..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libc/headers.txt +++ /dev/null @@ -1,125 +0,0 @@ -CrashReporterClient.h -NSSystemDirectories.h -_locale.h -_types.h -_types/_intmax_t.h -_types/_nl_item.h -_types/_uint16_t.h -_types/_uint32_t.h -_types/_uint64_t.h -_types/_uint8_t.h -_types/_uintmax_t.h -_types/_wctrans_t.h -_types/_wctype_t.h -_wctype.h -_xlocale.h -aio.h -alloca.h -ar.h -arpa/ftp.h -arpa/inet.h -arpa/nameser_compat.h -arpa/telnet.h -arpa/tftp.h -assert.h -bitstring.h -cpio.h -crt_externs.h -ctype.h -db.h -dirent.h -disktab.h -err.h -errno.h -execinfo.h -fcntl.h -fmtmsg.h -fnmatch.h -fsproperties.h -fstab.h -fts.h -ftw.h -get_compat.h -getopt.h -glob.h -inttypes.h -iso646.h -langinfo.h -libc.h -libc_private.h -libgen.h -limits.h -locale.h -memory.h -monetary.h -monitor.h -mpool.h -msgcat.h -ndbm.h -nl_types.h -nlist.h -os/assumes.h -os/debug_private.h -paths.h -poll.h -printf.h -protocols/routed.h -protocols/rwhod.h -protocols/talkd.h -protocols/timed.h -ranlib.h -readpassphrase.h -regex.h -runetype.h -search.h -secure/_common.h -secure/_stdio.h -secure/_string.h -semaphore.h -sgtty.h -signal.h -stab.h -standards.h -stddef.h -stdint.h -stdio.h -stdlib.h -strhash.h -string.h -stringlist.h -strings.h -struct.h -sys/acl.h -sys/rbtree.h -sys/statvfs.h -sysexits.h -syslog.h -tar.h -termios.h -time.h -timeconv.h -ttyent.h -tzfile.h -ulimit.h -unistd.h -util.h -utime.h -utmpx.h -utmpx_thread.h -vis.h -wchar.h -wctype.h -wordexp.h -xlocale.h -xlocale/__wctype.h -xlocale/_ctype.h -xlocale/_inttypes.h -xlocale/_langinfo.h -xlocale/_monetary.h -xlocale/_regex.h -xlocale/_stdio.h -xlocale/_stdlib.h -xlocale/_string.h -xlocale/_time.h -xlocale/_wchar.h -xlocale/_wctype.h diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libinfo/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/Libinfo/default.nix deleted file mode 100644 index 789e536..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libinfo/default.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ appleDerivation', stdenvNoCC }: - -appleDerivation' stdenvNoCC { - installPhase = '' - substituteInPlace xcodescripts/install_files.sh \ - --replace "/usr/local/" "/" \ - --replace "/usr/" "/" \ - --replace '-o "$INSTALL_OWNER" -g "$INSTALL_GROUP"' "" \ - --replace "ln -h" "ln -n" - - export DSTROOT=$out - sh xcodescripts/install_files.sh - ''; - - appleHeaders = '' - aliasdb.h - bootparams.h - configuration_profile.h - grp.h - ifaddrs.h - ils.h - kvbuf.h - libinfo.h - libinfo_muser.h - membership.h - membershipPriv.h - netdb.h - netdb_async.h - ntsid.h - printerdb.h - pwd.h - rpc/auth.h - rpc/auth_unix.h - rpc/clnt.h - rpc/pmap_clnt.h - rpc/pmap_prot.h - rpc/pmap_rmt.h - rpc/rpc.h - rpc/rpc_msg.h - rpc/svc.h - rpc/svc_auth.h - rpc/types.h - rpc/xdr.h - rpcsvc/yp_prot.h - rpcsvc/ypclnt.h - si_data.h - si_module.h - thread_data.h - ''; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libm/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/Libm/default.nix deleted file mode 100644 index 931bebe..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libm/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ appleDerivation', stdenvNoCC }: - -appleDerivation' stdenvNoCC { - patches = [ - # The source release version of math.h is missing some symbols that are actually present - # in newer SDKs. Patch them into the header to avoid implicit function declaration errors - # when compiling with newer versions of clang. - ./missing-declarations.patch - ]; - - installPhase = '' - mkdir -p $out/include - - cp Source/Intel/math.h $out/include - cp Source/Intel/fenv.h $out/include - cp Source/complex.h $out/include - ''; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libm/missing-declarations.patch b/pkgs/by-name/da/darwin/packages/apple-source-releases/Libm/missing-declarations.patch deleted file mode 100644 index e56934e..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libm/missing-declarations.patch +++ /dev/null @@ -1,292 +0,0 @@ ---- a/Source/Intel/math.h 2023-10-20 09:43:42.640416006 -0400 -+++ b/Source/Intel/math.h 2023-10-20 09:47:59.743127003 -0400 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2002 Apple Computer, Inc. All rights reserved. -+ * Copyright (c) 2002-2015 Apple Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * -@@ -27,14 +27,17 @@ - * Contains: typedefs, prototypes, and macros germane to C99 floating point.* - * * - *******************************************************************************/ -+#ifndef __MATH_H__ -+#define __MATH_H__ -+ - #ifndef __MATH__ - #define __MATH__ -+#endif - --#include /* For definition of __DARWIN_UNIX03 et al */ -+#include -+#include - --#ifdef __cplusplus --extern "C" { --#endif -+__BEGIN_DECLS - - /****************************************************************************** - * Floating point data types * -@@ -87,14 +90,26 @@ - #define FP_SUBNORMAL 5 - #define FP_SUPERNORMAL 6 /* meaningful only on PowerPC */ - --/* fma() *function call* is more costly than equivalent (in-line) multiply and add operations */ --/* For single and double precision, the cost isn't too bad, because we can fall back on higher */ --/* precision hardware, with the necessary range to handle infinite precision products. However, */ --/* expect the long double fma to be at least an order of magnitude slower than a simple multiply */ --/* and an add. */ --#undef FP_FAST_FMA --#undef FP_FAST_FMAF --#undef FP_FAST_FMAL -+#if defined __arm64__ || defined __ARM_VFPV4__ -+/* On these architectures, fma(), fmaf( ), and fmal( ) are generally about as -+ fast as (or faster than) separate multiply and add of the same operands. */ -+# define FP_FAST_FMA 1 -+# define FP_FAST_FMAF 1 -+# define FP_FAST_FMAL 1 -+#elif (defined __i386__ || defined __x86_64__) && (defined __FMA__) -+/* When targeting the FMA ISA extension, fma() and fmaf( ) are generally -+ about as fast as (or faster than) separate multiply and add of the same -+ operands, but fmal( ) may be more costly. */ -+# define FP_FAST_FMA 1 -+# define FP_FAST_FMAF 1 -+# undef FP_FAST_FMAL -+#else -+/* On these architectures, fma( ), fmaf( ), and fmal( ) function calls are -+ significantly more costly than separate multiply and add operations. */ -+# undef FP_FAST_FMA -+# undef FP_FAST_FMAF -+# undef FP_FAST_FMAL -+#endif - - /* The values returned by `ilogb' for 0 and NaN respectively. */ - #define FP_ILOGB0 (-2147483647 - 1) -@@ -191,6 +206,23 @@ - static __inline__ int __inline_isnormalf( float __x ) { float fabsf = __builtin_fabsf(__x); if( __x != __x ) return 0; return fabsf < __builtin_inff() && fabsf >= __FLT_MIN__; } - static __inline__ int __inline_isnormald( double __x ) { double fabsf = __builtin_fabs(__x); if( __x != __x ) return 0; return fabsf < __builtin_inf() && fabsf >= __DBL_MIN__; } - static __inline__ int __inline_isnormal( long double __x ) { long double fabsf = __builtin_fabsl(__x); if( __x != __x ) return 0; return fabsf < __builtin_infl() && fabsf >= __LDBL_MIN__; } -+ -+#if defined __i386__ || defined __x86_64__ -+__header_always_inline int __inline_signbitl(long double __x) { -+ union { -+ long double __ld; -+ struct{ unsigned long long __m; unsigned short __sexp; } __p; -+ } __u; -+ __u.__ld = __x; -+ return (int)(__u.__p.__sexp >> 15); -+} -+#else -+__header_always_inline int __inline_signbitl(long double __x) { -+ union { long double __f; unsigned long long __u;} __u; -+ __u.__f = __x; -+ return (int)(__u.__u >> 63); -+} -+#endif - - #else - -@@ -509,7 +541,112 @@ - extern long double __infl( void ); - extern float __nan( void ); /* 10.3 (and later) must retain in ABI for backward compatability */ - --#if !defined(_ANSI_SOURCE) -+ -+/****************************************************************************** -+ * Apple extensions to the C standard * -+ ******************************************************************************/ -+ -+/* Because these functions are not specified by any relevant standard, they -+ are prefixed with __, which places them in the implementor's namespace, so -+ they should not conflict with any developer or third-party code. If they -+ are added to a relevant standard in the future, un-prefixed names may be -+ added to the library and they may be moved out of this section of the -+ header. -+ -+ Because these functions are non-standard, they may not be available on non- -+ Apple platforms. */ -+ -+/* __exp10(x) returns 10**x. Edge cases match those of exp( ) and exp2( ). */ -+extern float __exp10f(float) __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0); -+extern double __exp10(double) __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0); -+ -+/* __sincos(x,sinp,cosp) computes the sine and cosine of x with a single -+ function call, storing the sine in the memory pointed to by sinp, and -+ the cosine in the memory pointed to by cosp. Edge cases match those of -+ separate calls to sin( ) and cos( ). */ -+__header_always_inline void __sincosf(float __x, float *__sinp, float *__cosp); -+__header_always_inline void __sincos(double __x, double *__sinp, double *__cosp); -+ -+/* __sinpi(x) returns the sine of pi times x; __cospi(x) and __tanpi(x) return -+ the cosine and tangent, respectively. These functions can produce a more -+ accurate answer than expressions of the form sin(M_PI * x) because they -+ avoid any loss of precision that results from rounding the result of the -+ multiplication M_PI * x. They may also be significantly more efficient in -+ some cases because the argument reduction for these functions is easier -+ to compute. Consult the man pages for edge case details. */ -+extern float __cospif(float) __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0); -+extern double __cospi(double) __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0); -+extern float __sinpif(float) __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0); -+extern double __sinpi(double) __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0); -+extern float __tanpif(float) __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0); -+extern double __tanpi(double) __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0); -+ -+#if (defined __MAC_OS_X_VERSION_MIN_REQUIRED && __MAC_OS_X_VERSION_MIN_REQUIRED < 1090) || \ -+ (defined __IPHONE_OS_VERSION_MIN_REQUIRED && __IPHONE_OS_VERSION_MIN_REQUIRED < 70000) -+/* __sincos and __sincosf were introduced in OSX 10.9 and iOS 7.0. When -+ targeting an older system, we simply split them up into discrete calls -+ to sin( ) and cos( ). */ -+__header_always_inline void __sincosf(float __x, float *__sinp, float *__cosp) { -+ *__sinp = sinf(__x); -+ *__cosp = cosf(__x); -+} -+ -+__header_always_inline void __sincos(double __x, double *__sinp, double *__cosp) { -+ *__sinp = sin(__x); -+ *__cosp = cos(__x); -+} -+#else -+/* __sincospi(x,sinp,cosp) computes the sine and cosine of pi times x with a -+ single function call, storing the sine in the memory pointed to by sinp, -+ and the cosine in the memory pointed to by cosp. Edge cases match those -+ of separate calls to __sinpi( ) and __cospi( ), and are documented in the -+ man pages. -+ -+ These functions were introduced in OSX 10.9 and iOS 7.0. Because they are -+ implemented as header inlines, weak-linking does not function as normal, -+ and they are simply hidden when targeting earlier OS versions. */ -+__header_always_inline void __sincospif(float __x, float *__sinp, float *__cosp); -+__header_always_inline void __sincospi(double __x, double *__sinp, double *__cosp); -+ -+/* Implementation details of __sincos and __sincospi allowing them to return -+ two results while allowing the compiler to optimize away unnecessary load- -+ store traffic. Although these interfaces are exposed in the math.h header -+ to allow compilers to generate better code, users should call __sincos[f] -+ and __sincospi[f] instead and allow the compiler to emit these calls. */ -+struct __float2 { float __sinval; float __cosval; }; -+struct __double2 { double __sinval; double __cosval; }; -+ -+extern struct __float2 __sincosf_stret(float); -+extern struct __double2 __sincos_stret(double); -+extern struct __float2 __sincospif_stret(float); -+extern struct __double2 __sincospi_stret(double); -+ -+__header_always_inline void __sincosf(float __x, float *__sinp, float *__cosp) { -+ const struct __float2 __stret = __sincosf_stret(__x); -+ *__sinp = __stret.__sinval; *__cosp = __stret.__cosval; -+} -+ -+__header_always_inline void __sincos(double __x, double *__sinp, double *__cosp) { -+ const struct __double2 __stret = __sincos_stret(__x); -+ *__sinp = __stret.__sinval; *__cosp = __stret.__cosval; -+} -+ -+__header_always_inline void __sincospif(float __x, float *__sinp, float *__cosp) { -+ const struct __float2 __stret = __sincospif_stret(__x); -+ *__sinp = __stret.__sinval; *__cosp = __stret.__cosval; -+} -+ -+__header_always_inline void __sincospi(double __x, double *__sinp, double *__cosp) { -+ const struct __double2 __stret = __sincospi_stret(__x); -+ *__sinp = __stret.__sinval; *__cosp = __stret.__cosval; -+} -+#endif -+ -+/****************************************************************************** -+ * POSIX/UNIX extensions to the C standard * -+ ******************************************************************************/ -+ -+#if __DARWIN_C_LEVEL >= 199506L - extern double j0 ( double ); - - extern double j1 ( double ); -@@ -543,14 +680,32 @@ - extern int signgam; /* required for unix 2003 */ - - --#endif /* !defined(_ANSI_SOURCE) */ -+#endif /* __DARWIN_C_LEVEL >= 199506L */ - --#if !defined(__NOEXTENSIONS__) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) --#define __WANT_EXTENSIONS__ --#endif -+/* Long-double versions of M_E, etc for convenience on Intel where long- -+ double is not the same as double. Define __MATH_LONG_DOUBLE_CONSTANTS -+ to make these constants available. */ -+#if defined __MATH_LONG_DOUBLE_CONSTANTS -+#define M_El 0xa.df85458a2bb4a9bp-2L -+#define M_LOG2El 0xb.8aa3b295c17f0bcp-3L -+#define M_LOG10El 0xd.e5bd8a937287195p-5L -+#define M_LN2l 0xb.17217f7d1cf79acp-4L -+#define M_LN10l 0x9.35d8dddaaa8ac17p-2L -+#define M_PIl 0xc.90fdaa22168c235p-2L -+#define M_PI_2l 0xc.90fdaa22168c235p-3L -+#define M_PI_4l 0xc.90fdaa22168c235p-4L -+#define M_1_PIl 0xa.2f9836e4e44152ap-5L -+#define M_2_PIl 0xa.2f9836e4e44152ap-4L -+#define M_2_SQRTPIl 0x9.06eba8214db688dp-3L -+#define M_SQRT2l 0xb.504f333f9de6484p-3L -+#define M_SQRT1_2l 0xb.504f333f9de6484p-4L -+#endif /* defined __MATH_LONG_DOUBLE_CONSTANTS */ - --#ifdef __WANT_EXTENSIONS__ -+/****************************************************************************** -+ * Legacy BSD extensions to the C standard * -+ ******************************************************************************/ - -+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL - #define FP_SNAN FP_NAN - #define FP_QNAN FP_NAN - -@@ -560,11 +715,6 @@ - /* Legacy API: please use C99 lround() instead. */ - extern long int roundtol ( double ); - --/* -- * XOPEN/SVID -- */ --#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) --#if (!defined(_XOPEN_SOURCE) || defined(_DARWIN_C_SOURCE)) - #if !defined(__cplusplus) - /* used by matherr below */ - struct exception { -@@ -592,19 +742,12 @@ - #define TLOSS 5 - #define PLOSS 6 - --#endif /* (!_XOPEN_SOURCE || _DARWIN_C_SOURCE) */ --#endif /* !_ANSI_SOURCE && (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ -- --#if !defined( __STRICT_ANSI__) && !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) -- - /* Legacy API: please use C99 isfinite() instead. */ - extern int finite ( double ); - - /* Legacy API: please use C99 tgamma() instead. */ - extern double gamma ( double ); - --#if (!defined(_XOPEN_SOURCE) || defined(_DARWIN_C_SOURCE)) -- - #if !defined(__cplusplus) - extern int matherr ( struct exception * ); - #endif -@@ -633,14 +776,8 @@ - extern double lgamma_r ( double, int * ) AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER; - extern long double lgammal_r ( long double, int * ) AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER; - #endif /* _REENTRANT */ -- --#endif /* (!_XOPEN_SOURCE || _DARWIN_C_SOURCE) */ --#endif /* !_ANSI_SOURCE && (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ -- --#endif /* __WANT_EXTENSIONS__ */ - --#ifdef __cplusplus --} --#endif -+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ - --#endif /* __MATH__ */ -+__END_DECLS -+#endif /* __MATH_H__ */ diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libnotify/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/Libnotify/default.nix deleted file mode 100644 index 969e644..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libnotify/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ appleDerivation', stdenvNoCC }: - -appleDerivation' stdenvNoCC { - installPhase = '' - mkdir -p $out/include - cp notify.h $out/include - cp notify_keys.h $out/include - ''; -} 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 deleted file mode 100644 index 3c71531..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/Librpcsvc/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ lib, appleDerivation, developer_cmds }: - -appleDerivation { - buildInputs = [ developer_cmds ]; - - installPhase = '' - export DSTROOT=$out - export SRCROOT=$PWD - export OBJROOT=$PWD - - . ./xcodescripts/install_rpcsvc.sh - - mv $out/usr/* $out - rmdir $out/usr/ - ''; - - meta = with lib; { - maintainers = with maintainers; [ matthewbauer ]; - 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 deleted file mode 100644 index 87fb851..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libsystem/default.nix +++ /dev/null @@ -1,175 +0,0 @@ -{ 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 - darling.src = fetchzip { - url = "https://github.com/darlinghq/darling/archive/d2cc5fa748003aaa70ad4180fff0a9a85dc65e9b.tar.gz"; - hash = "sha256-/YynrKJdi26Xj4lvp5wsN+TAhZjonOrNNHuk4L5tC7s="; - postFetch = '' - # The archive contains both `src/opendirectory` and `src/OpenDirectory`. - # Since neither directory is used for anything, we just remove them to avoid - # the potential issue where file systems with different case sensitivity produce - # different hashes. - rm -rf $out/src/{OpenDirectory,opendirectory} - ''; - }; - - # Libsystem needs `asl.h` from syslog. This is the version corresponding to the 10.12 SDK - # source release, but it hasn’t changed in newer versions. - syslog.src = fetchFromGitHub { - owner = "apple-oss-distributions"; - repo = "syslog"; - rev = "syslog-349.50.5"; - hash = "sha256-tXLW/TNsluhO1X9Rv3FANyzyOe5TE/hZz0gVo7JGvHA="; - }; -in -appleDerivation' stdenv { - dontBuild = true; - dontFixup = true; - - installPhase = '' - export NIX_ENFORCE_PURITY= - - 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 - 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 - - (cd ${buildPackages.darwin.cctools.dev}/include/mach-o && find . -name '*.h' | copyHierarchy $out/include/mach-o) - - for header in pthread.h pthread_impl.h pthread_spis.h sched.h; do - ln -s "$out/include/pthread/$header" "$out/include/$header" - done - - # 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 - - mkdir -p $out/include/os - - 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 - - cat < $out/include/os/availability.h - #ifndef __OS_AVAILABILITY__ - #define __OS_AVAILABILITY__ - #include - - #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 - - #define API_AVAILABLE(...) - #define API_DEPRECATED(...) - #define API_DEPRECATED_WITH_REPLACEMENT(...) - #define API_UNAVAILABLE(...) - - #endif - #endif - EOF - - 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 - - #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) '' - - # The startup object files - cp ${Csu}/lib/* $out/lib - - cp -vr \ - ${darwin-stubs}/usr/lib/libSystem.B.tbd \ - ${darwin-stubs}/usr/lib/system \ - $out/lib - - substituteInPlace $out/lib/libSystem.B.tbd \ - --replace "/usr/lib/system/" "$out/lib/system/" - ln -s libSystem.B.tbd $out/lib/libSystem.tbd - - # 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 - ''; - - 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; - }; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libsystem/headers.txt b/pkgs/by-name/da/darwin/packages/apple-source-releases/Libsystem/headers.txt deleted file mode 100644 index b6e608f..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libsystem/headers.txt +++ /dev/null @@ -1,1724 +0,0 @@ -AssertMacros.h -Availability.h -AvailabilityInternal.h -AvailabilityMacros.h -Block.h -Block_private.h -CommonCrypto/CommonBaseXX.h -CommonCrypto/CommonBigNum.h -CommonCrypto/CommonCMACSPI.h -CommonCrypto/CommonCRC.h -CommonCrypto/CommonCrypto.h -CommonCrypto/CommonCryptoError.h -CommonCrypto/CommonCryptoPriv.h -CommonCrypto/CommonCryptor.h -CommonCrypto/CommonCryptorSPI.h -CommonCrypto/CommonDH.h -CommonCrypto/CommonDigest.h -CommonCrypto/CommonDigestSPI.h -CommonCrypto/CommonECCryptor.h -CommonCrypto/CommonHMAC.h -CommonCrypto/CommonHMacSPI.h -CommonCrypto/CommonKeyDerivation.h -CommonCrypto/CommonKeyDerivationSPI.h -CommonCrypto/CommonNumerics.h -CommonCrypto/CommonRSACryptor.h -CommonCrypto/CommonRandom.h -CommonCrypto/CommonRandomSPI.h -CommonCrypto/CommonSymmetricKeywrap.h -CommonCrypto/aes.h -CommonCrypto/lionCompat.h -ConditionalMacros.h -CrashReporterClient.h -ExtentManager.h -MacTypes.h -NSSystemDirectories.h -TargetConditionals.h -_errno.h -_libkernel_init.h -_locale.h -_simple.h -_types.h -_types/_intmax_t.h -_types/_nl_item.h -_types/_uint16_t.h -_types/_uint32_t.h -_types/_uint64_t.h -_types/_uint8_t.h -_types/_uintmax_t.h -_types/_wctrans_t.h -_types/_wctype_t.h -_wctype.h -_xlocale.h -aio.h -aliasdb.h -alloca.h -ar.h -architecture/alignment.h -architecture/byte_order.h -architecture/i386/alignment.h -architecture/i386/asm_help.h -architecture/i386/byte_order.h -architecture/i386/cpu.h -architecture/i386/desc.h -architecture/i386/fpu.h -architecture/i386/frame.h -architecture/i386/io.h -architecture/i386/pio.h -architecture/i386/reg_help.h -architecture/i386/sel.h -architecture/i386/table.h -architecture/i386/tss.h -arpa/ftp.h -arpa/inet.h -arpa/nameser.h -arpa/nameser_compat.h -arpa/telnet.h -arpa/tftp.h -asl.h -assert.h -atm/atm_notification.defs -atm/atm_types.defs -atm/atm_types.h -bank/bank_types.h -bitstring.h -bootparams.h -bootstrap.h -bootstrap_priv.h -bsd/bsm/audit.h -bsd/dev/random/randomdev.h -bsd/i386/_limits.h -bsd/i386/_mcontext.h -bsd/i386/_param.h -bsd/i386/_types.h -bsd/i386/endian.h -bsd/i386/limits.h -bsd/i386/param.h -bsd/i386/profile.h -bsd/i386/signal.h -bsd/i386/types.h -bsd/i386/vmparam.h -bsd/libkern/libkern.h -bsd/machine/_limits.h -bsd/machine/_mcontext.h -bsd/machine/_param.h -bsd/machine/_types.h -bsd/machine/byte_order.h -bsd/machine/disklabel.h -bsd/machine/endian.h -bsd/machine/limits.h -bsd/machine/param.h -bsd/machine/profile.h -bsd/machine/signal.h -bsd/machine/spl.h -bsd/machine/types.h -bsd/machine/vmparam.h -bsd/miscfs/devfs/devfs.h -bsd/miscfs/devfs/devfs_proto.h -bsd/miscfs/devfs/devfsdefs.h -bsd/miscfs/devfs/fdesc.h -bsd/miscfs/fifofs/fifo.h -bsd/miscfs/specfs/specdev.h -bsd/miscfs/union/union.h -bsd/net/bpf.h -bsd/net/dlil.h -bsd/net/ethernet.h -bsd/net/if.h -bsd/net/if_arp.h -bsd/net/if_dl.h -bsd/net/if_ether.h -bsd/net/if_llc.h -bsd/net/if_media.h -bsd/net/if_mib.h -bsd/net/if_types.h -bsd/net/if_utun.h -bsd/net/if_var.h -bsd/net/init.h -bsd/net/kext_net.h -bsd/net/kpi_interface.h -bsd/net/kpi_interfacefilter.h -bsd/net/kpi_protocol.h -bsd/net/ndrv.h -bsd/net/net_kev.h -bsd/net/pfkeyv2.h -bsd/net/radix.h -bsd/net/route.h -bsd/netinet/bootp.h -bsd/netinet/icmp6.h -bsd/netinet/icmp_var.h -bsd/netinet/if_ether.h -bsd/netinet/igmp.h -bsd/netinet/igmp_var.h -bsd/netinet/in.h -bsd/netinet/in_arp.h -bsd/netinet/in_pcb.h -bsd/netinet/in_systm.h -bsd/netinet/in_var.h -bsd/netinet/ip.h -bsd/netinet/ip6.h -bsd/netinet/ip_icmp.h -bsd/netinet/ip_var.h -bsd/netinet/kpi_ipfilter.h -bsd/netinet/tcp.h -bsd/netinet/tcp_fsm.h -bsd/netinet/tcp_seq.h -bsd/netinet/tcp_timer.h -bsd/netinet/tcp_var.h -bsd/netinet/tcpip.h -bsd/netinet/udp.h -bsd/netinet/udp_var.h -bsd/netinet6/ah.h -bsd/netinet6/esp.h -bsd/netinet6/in6.h -bsd/netinet6/in6_var.h -bsd/netinet6/ipcomp.h -bsd/netinet6/ipsec.h -bsd/netinet6/nd6.h -bsd/netinet6/raw_ip6.h -bsd/netinet6/scope6_var.h -bsd/netkey/keysock.h -bsd/security/audit/audit.h -bsd/security/audit/audit_bsd.h -bsd/security/audit/audit_ioctl.h -bsd/security/audit/audit_private.h -bsd/sys/_endian.h -bsd/sys/_select.h -bsd/sys/_structs.h -bsd/sys/_types.h -bsd/sys/_types/_blkcnt_t.h -bsd/sys/_types/_blksize_t.h -bsd/sys/_types/_clock_t.h -bsd/sys/_types/_ct_rune_t.h -bsd/sys/_types/_dev_t.h -bsd/sys/_types/_errno_t.h -bsd/sys/_types/_fd_clr.h -bsd/sys/_types/_fd_copy.h -bsd/sys/_types/_fd_def.h -bsd/sys/_types/_fd_isset.h -bsd/sys/_types/_fd_set.h -bsd/sys/_types/_fd_setsize.h -bsd/sys/_types/_fd_zero.h -bsd/sys/_types/_filesec_t.h -bsd/sys/_types/_fsblkcnt_t.h -bsd/sys/_types/_fsfilcnt_t.h -bsd/sys/_types/_fsid_t.h -bsd/sys/_types/_fsobj_id_t.h -bsd/sys/_types/_gid_t.h -bsd/sys/_types/_guid_t.h -bsd/sys/_types/_id_t.h -bsd/sys/_types/_in_addr_t.h -bsd/sys/_types/_in_port_t.h -bsd/sys/_types/_ino64_t.h -bsd/sys/_types/_ino_t.h -bsd/sys/_types/_int16_t.h -bsd/sys/_types/_int32_t.h -bsd/sys/_types/_int64_t.h -bsd/sys/_types/_int8_t.h -bsd/sys/_types/_intptr_t.h -bsd/sys/_types/_iovec_t.h -bsd/sys/_types/_key_t.h -bsd/sys/_types/_mach_port_t.h -bsd/sys/_types/_mbstate_t.h -bsd/sys/_types/_mode_t.h -bsd/sys/_types/_nlink_t.h -bsd/sys/_types/_null.h -bsd/sys/_types/_o_dsync.h -bsd/sys/_types/_o_sync.h -bsd/sys/_types/_off_t.h -bsd/sys/_types/_offsetof.h -bsd/sys/_types/_os_inline.h -bsd/sys/_types/_pid_t.h -bsd/sys/_types/_posix_vdisable.h -bsd/sys/_types/_ptrdiff_t.h -bsd/sys/_types/_rsize_t.h -bsd/sys/_types/_rune_t.h -bsd/sys/_types/_s_ifmt.h -bsd/sys/_types/_sa_family_t.h -bsd/sys/_types/_seek_set.h -bsd/sys/_types/_sigaltstack.h -bsd/sys/_types/_sigset_t.h -bsd/sys/_types/_size_t.h -bsd/sys/_types/_socklen_t.h -bsd/sys/_types/_ssize_t.h -bsd/sys/_types/_suseconds_t.h -bsd/sys/_types/_time_t.h -bsd/sys/_types/_timespec.h -bsd/sys/_types/_timeval.h -bsd/sys/_types/_timeval32.h -bsd/sys/_types/_timeval64.h -bsd/sys/_types/_u_int16_t.h -bsd/sys/_types/_u_int32_t.h -bsd/sys/_types/_u_int64_t.h -bsd/sys/_types/_u_int8_t.h -bsd/sys/_types/_ucontext.h -bsd/sys/_types/_ucontext64.h -bsd/sys/_types/_uid_t.h -bsd/sys/_types/_uintptr_t.h -bsd/sys/_types/_useconds_t.h -bsd/sys/_types/_user32_itimerval.h -bsd/sys/_types/_user32_timespec.h -bsd/sys/_types/_user32_timeval.h -bsd/sys/_types/_user64_itimerval.h -bsd/sys/_types/_user64_timespec.h -bsd/sys/_types/_user64_timeval.h -bsd/sys/_types/_user_timespec.h -bsd/sys/_types/_user_timeval.h -bsd/sys/_types/_uuid_t.h -bsd/sys/_types/_va_list.h -bsd/sys/_types/_wchar_t.h -bsd/sys/_types/_wint_t.h -bsd/sys/appleapiopts.h -bsd/sys/attr.h -bsd/sys/bsdtask_info.h -bsd/sys/buf.h -bsd/sys/cdefs.h -bsd/sys/codesign.h -bsd/sys/conf.h -bsd/sys/content_protection.h -bsd/sys/cprotect.h -bsd/sys/csr.h -bsd/sys/decmpfs.h -bsd/sys/dir.h -bsd/sys/dirent.h -bsd/sys/disk.h -bsd/sys/disklabel.h -bsd/sys/disktab.h -bsd/sys/dkstat.h -bsd/sys/doc_tombstone.h -bsd/sys/domain.h -bsd/sys/errno.h -bsd/sys/ev.h -bsd/sys/event.h -bsd/sys/eventvar.h -bsd/sys/fbt.h -bsd/sys/fcntl.h -bsd/sys/file.h -bsd/sys/file_internal.h -bsd/sys/filedesc.h -bsd/sys/fileport.h -bsd/sys/filio.h -bsd/sys/fsctl.h -bsd/sys/fsevents.h -bsd/sys/fslog.h -bsd/sys/guarded.h -bsd/sys/imgact.h -bsd/sys/ioccom.h -bsd/sys/ioctl.h -bsd/sys/ioctl_compat.h -bsd/sys/ipc.h -bsd/sys/kasl.h -bsd/sys/kauth.h -bsd/sys/kdebug.h -bsd/sys/kdebugevents.h -bsd/sys/kern_control.h -bsd/sys/kern_event.h -bsd/sys/kern_memorystatus.h -bsd/sys/kernel.h -bsd/sys/kernel_types.h -bsd/sys/kpi_mbuf.h -bsd/sys/kpi_private.h -bsd/sys/kpi_socket.h -bsd/sys/kpi_socketfilter.h -bsd/sys/ktrace.h -bsd/sys/linker_set.h -bsd/sys/lock.h -bsd/sys/lockf.h -bsd/sys/mach_swapon.h -bsd/sys/malloc.h -bsd/sys/mbuf.h -bsd/sys/md5.h -bsd/sys/memory_maintenance.h -bsd/sys/mman.h -bsd/sys/mount.h -bsd/sys/mount_internal.h -bsd/sys/msg.h -bsd/sys/msgbuf.h -bsd/sys/munge.h -bsd/sys/namei.h -bsd/sys/netport.h -bsd/sys/param.h -bsd/sys/paths.h -bsd/sys/persona.h -bsd/sys/pgo.h -bsd/sys/pipe.h -bsd/sys/posix_sem.h -bsd/sys/posix_shm.h -bsd/sys/priv.h -bsd/sys/proc.h -bsd/sys/proc_info.h -bsd/sys/proc_internal.h -bsd/sys/protosw.h -bsd/sys/pthread_internal.h -bsd/sys/pthread_shims.h -bsd/sys/queue.h -bsd/sys/quota.h -bsd/sys/random.h -bsd/sys/reason.h -bsd/sys/resource.h -bsd/sys/resourcevar.h -bsd/sys/sbuf.h -bsd/sys/select.h -bsd/sys/sem.h -bsd/sys/sem_internal.h -bsd/sys/semaphore.h -bsd/sys/shm.h -bsd/sys/shm_internal.h -bsd/sys/signal.h -bsd/sys/signalvar.h -bsd/sys/socket.h -bsd/sys/socketvar.h -bsd/sys/sockio.h -bsd/sys/spawn.h -bsd/sys/spawn_internal.h -bsd/sys/stackshot.h -bsd/sys/stat.h -bsd/sys/stdio.h -bsd/sys/sys_domain.h -bsd/sys/syscall.h -bsd/sys/sysctl.h -bsd/sys/syslimits.h -bsd/sys/syslog.h -bsd/sys/sysproto.h -bsd/sys/systm.h -bsd/sys/termios.h -bsd/sys/time.h -bsd/sys/tree.h -bsd/sys/tty.h -bsd/sys/ttychars.h -bsd/sys/ttycom.h -bsd/sys/ttydefaults.h -bsd/sys/ttydev.h -bsd/sys/types.h -bsd/sys/ubc.h -bsd/sys/ucontext.h -bsd/sys/ucred.h -bsd/sys/uio.h -bsd/sys/uio_internal.h -bsd/sys/ulock.h -bsd/sys/un.h -bsd/sys/unistd.h -bsd/sys/unpcb.h -bsd/sys/user.h -bsd/sys/utfconv.h -bsd/sys/vfs_context.h -bsd/sys/vm.h -bsd/sys/vmmeter.h -bsd/sys/vmparam.h -bsd/sys/vnode.h -bsd/sys/vnode_if.h -bsd/sys/vnode_internal.h -bsd/sys/wait.h -bsd/sys/xattr.h -bsd/uuid/uuid.h -bsd/vfs/vfs_support.h -bsd/vm/vnode_pager.h -bsm/audit.h -bsm/audit_domain.h -bsm/audit_errno.h -bsm/audit_fcntl.h -bsm/audit_internal.h -bsm/audit_kevents.h -bsm/audit_record.h -bsm/audit_socket_type.h -checkint.h -complex.h -configuration_profile.h -copyfile.h -corecrypto/cc.h -corecrypto/cc_config.h -corecrypto/cc_debug.h -corecrypto/cc_macros.h -corecrypto/cc_priv.h -corecrypto/ccaes.h -corecrypto/ccasn1.h -corecrypto/cccmac.h -corecrypto/ccder.h -corecrypto/ccdes.h -corecrypto/ccdigest.h -corecrypto/ccdigest_priv.h -corecrypto/ccdrbg.h -corecrypto/ccdrbg_impl.h -corecrypto/cchmac.h -corecrypto/ccmd5.h -corecrypto/ccmode.h -corecrypto/ccmode_factory.h -corecrypto/ccmode_impl.h -corecrypto/ccmode_siv.h -corecrypto/ccn.h -corecrypto/ccpad.h -corecrypto/ccpbkdf2.h -corecrypto/ccrc4.h -corecrypto/ccrng.h -corecrypto/ccrng_system.h -corecrypto/ccrsa.h -corecrypto/ccsha1.h -corecrypto/ccsha2.h -corecrypto/cczp.h -corpses/task_corpse.h -cpio.h -crt_externs.h -ctype.h -curses.h -cursesapp.h -cursesf.h -cursesm.h -cursesp.h -cursesw.h -cursslk.h -db.h -default_pager/default_pager_types.h -device/device.defs -device/device_port.h -device/device_types.defs -device/device_types.h -dirent.h -disktab.h -dispatch/base.h -dispatch/benchmark.h -dispatch/block.h -dispatch/data.h -dispatch/data_private.h -dispatch/dispatch.h -dispatch/group.h -dispatch/introspection.h -dispatch/introspection_private.h -dispatch/io.h -dispatch/io_private.h -dispatch/layout_private.h -dispatch/mach_private.h -dispatch/object.h -dispatch/once.h -dispatch/private.h -dispatch/queue.h -dispatch/queue_private.h -dispatch/semaphore.h -dispatch/source.h -dispatch/source_private.h -dispatch/time.h -dlfcn.h -dns.h -dns_sd.h -dns_util.h -err.h -errno.h -eti.h -etip.h -execinfo.h -fcntl.h -fenv.h -fmtmsg.h -fnmatch.h -form.h -fsproperties.h -fstab.h -fts.h -ftw.h -get_compat.h -gethostuuid.h -gethostuuid_private.h -getopt.h -glob.h -grp.h -hfs/BTreeScanner.h -hfs/BTreesInternal.h -hfs/BTreesPrivate.h -hfs/CatalogPrivate.h -hfs/FileMgrInternal.h -hfs/HFSUnicodeWrappers.h -hfs/UCStringCompareData.h -hfs/hfs.h -hfs/hfs_alloc_trace.h -hfs/hfs_attrlist.h -hfs/hfs_btreeio.h -hfs/hfs_catalog.h -hfs/hfs_cnode.h -hfs/hfs_cprotect.h -hfs/hfs_dbg.h -hfs/hfs_endian.h -hfs/hfs_extents.h -hfs/hfs_format.h -hfs/hfs_fsctl.h -hfs/hfs_hotfiles.h -hfs/hfs_iokit.h -hfs/hfs_journal.h -hfs/hfs_kdebug.h -hfs/hfs_key_roll.h -hfs/hfs_macos_defs.h -hfs/hfs_mount.h -hfs/hfs_quota.h -hfs/hfs_unistr.h -hfs/kext-config.h -hfs/rangelist.h -i386/_limits.h -i386/_mcontext.h -i386/_param.h -i386/_types.h -i386/eflags.h -i386/endian.h -i386/fasttrap_isa.h -i386/limits.h -i386/param.h -i386/profile.h -i386/signal.h -i386/types.h -i386/user_ldt.h -i386/vmparam.h -ifaddrs.h -ils.h -inttypes.h -iokit/IOKit/AppleKeyStoreInterface.h -iokit/IOKit/IOBSD.h -iokit/IOKit/IOBufferMemoryDescriptor.h -iokit/IOKit/IOCPU.h -iokit/IOKit/IOCatalogue.h -iokit/IOKit/IOCommand.h -iokit/IOKit/IOCommandGate.h -iokit/IOKit/IOCommandPool.h -iokit/IOKit/IOCommandQueue.h -iokit/IOKit/IOConditionLock.h -iokit/IOKit/IODMACommand.h -iokit/IOKit/IODMAController.h -iokit/IOKit/IODMAEventSource.h -iokit/IOKit/IODataQueue.h -iokit/IOKit/IODataQueueShared.h -iokit/IOKit/IODeviceMemory.h -iokit/IOKit/IODeviceTreeSupport.h -iokit/IOKit/IOEventSource.h -iokit/IOKit/IOFilterInterruptEventSource.h -iokit/IOKit/IOHibernatePrivate.h -iokit/IOKit/IOInterleavedMemoryDescriptor.h -iokit/IOKit/IOInterruptAccounting.h -iokit/IOKit/IOInterruptController.h -iokit/IOKit/IOInterruptEventSource.h -iokit/IOKit/IOInterrupts.h -iokit/IOKit/IOKernelReportStructs.h -iokit/IOKit/IOKernelReporters.h -iokit/IOKit/IOKitDebug.h -iokit/IOKit/IOKitDiagnosticsUserClient.h -iokit/IOKit/IOKitKeys.h -iokit/IOKit/IOKitKeysPrivate.h -iokit/IOKit/IOKitServer.h -iokit/IOKit/IOLib.h -iokit/IOKit/IOLocks.h -iokit/IOKit/IOLocksPrivate.h -iokit/IOKit/IOMapper.h -iokit/IOKit/IOMemoryCursor.h -iokit/IOKit/IOMemoryDescriptor.h -iokit/IOKit/IOMessage.h -iokit/IOKit/IOMultiMemoryDescriptor.h -iokit/IOKit/IONVRAM.h -iokit/IOKit/IONotifier.h -iokit/IOKit/IOPlatformExpert.h -iokit/IOKit/IOPolledInterface.h -iokit/IOKit/IORangeAllocator.h -iokit/IOKit/IORegistryEntry.h -iokit/IOKit/IOReportMacros.h -iokit/IOKit/IOReportTypes.h -iokit/IOKit/IOReturn.h -iokit/IOKit/IOService.h -iokit/IOKit/IOServicePM.h -iokit/IOKit/IOSharedDataQueue.h -iokit/IOKit/IOSharedLock.h -iokit/IOKit/IOStatistics.h -iokit/IOKit/IOStatisticsPrivate.h -iokit/IOKit/IOSubMemoryDescriptor.h -iokit/IOKit/IOSyncer.h -iokit/IOKit/IOTimeStamp.h -iokit/IOKit/IOTimerEventSource.h -iokit/IOKit/IOTypes.h -iokit/IOKit/IOUserClient.h -iokit/IOKit/IOWorkLoop.h -iokit/IOKit/OSMessageNotification.h -iokit/IOKit/assert.h -iokit/IOKit/nvram/IONVRAMController.h -iokit/IOKit/platform/AppleMacIO.h -iokit/IOKit/platform/AppleMacIODevice.h -iokit/IOKit/platform/AppleNMI.h -iokit/IOKit/platform/ApplePlatformExpert.h -iokit/IOKit/power/IOPwrController.h -iokit/IOKit/pwr_mgt/IOPM.h -iokit/IOKit/pwr_mgt/IOPMLibDefs.h -iokit/IOKit/pwr_mgt/IOPMPowerSource.h -iokit/IOKit/pwr_mgt/IOPMPowerSourceList.h -iokit/IOKit/pwr_mgt/IOPMpowerState.h -iokit/IOKit/pwr_mgt/IOPowerConnection.h -iokit/IOKit/pwr_mgt/RootDomain.h -iokit/IOKit/rtc/IORTCController.h -iokit/IOKit/system.h -iokit/IOKit/system_management/IOWatchDogTimer.h -iso646.h -kern/exc_resource.h -kern/kcdata.h -kern/kern_cdata.h -kvbuf.h -langinfo.h -launch.h -launch_internal.h -launch_priv.h -libc.h -libc_private.h -libgen.h -libinfo.h -libinfo_muser.h -libkern/OSAtomic.h -libkern/OSAtomicDeprecated.h -libkern/OSAtomicQueue.h -libkern/OSByteOrder.h -libkern/OSCacheControl.h -libkern/OSDebug.h -libkern/OSKextLib.h -libkern/OSReturn.h -libkern/OSSpinLockDeprecated.h -libkern/OSTypes.h -libkern/_OSByteOrder.h -libkern/firehose/chunk_private.h -libkern/firehose/firehose_types_private.h -libkern/firehose/ioctl_private.h -libkern/firehose/tracepoint_private.h -libkern/i386/OSByteOrder.h -libkern/i386/_OSByteOrder.h -libkern/libkern/OSAtomic.h -libkern/libkern/OSBase.h -libkern/libkern/OSByteOrder.h -libkern/libkern/OSDebug.h -libkern/libkern/OSKextLib.h -libkern/libkern/OSKextLibPrivate.h -libkern/libkern/OSMalloc.h -libkern/libkern/OSReturn.h -libkern/libkern/OSSerializeBinary.h -libkern/libkern/OSTypes.h -libkern/libkern/_OSByteOrder.h -libkern/libkern/c++/OSArray.h -libkern/libkern/c++/OSBoolean.h -libkern/libkern/c++/OSCPPDebug.h -libkern/libkern/c++/OSCollection.h -libkern/libkern/c++/OSCollectionIterator.h -libkern/libkern/c++/OSContainers.h -libkern/libkern/c++/OSData.h -libkern/libkern/c++/OSDictionary.h -libkern/libkern/c++/OSEndianTypes.h -libkern/libkern/c++/OSIterator.h -libkern/libkern/c++/OSKext.h -libkern/libkern/c++/OSLib.h -libkern/libkern/c++/OSMetaClass.h -libkern/libkern/c++/OSNumber.h -libkern/libkern/c++/OSObject.h -libkern/libkern/c++/OSOrderedSet.h -libkern/libkern/c++/OSSerialize.h -libkern/libkern/c++/OSSet.h -libkern/libkern/c++/OSString.h -libkern/libkern/c++/OSSymbol.h -libkern/libkern/c++/OSUnserialize.h -libkern/libkern/crypto/aes.h -libkern/libkern/crypto/aesxts.h -libkern/libkern/crypto/crypto_internal.h -libkern/libkern/crypto/des.h -libkern/libkern/crypto/md5.h -libkern/libkern/crypto/rand.h -libkern/libkern/crypto/register_crypto.h -libkern/libkern/crypto/rsa.h -libkern/libkern/crypto/sha1.h -libkern/libkern/crypto/sha2.h -libkern/libkern/i386/OSByteOrder.h -libkern/libkern/i386/_OSByteOrder.h -libkern/libkern/kernel_mach_header.h -libkern/libkern/kext_request_keys.h -libkern/libkern/kxld.h -libkern/libkern/kxld_types.h -libkern/libkern/locks.h -libkern/libkern/machine/OSByteOrder.h -libkern/libkern/mkext.h -libkern/libkern/prelink.h -libkern/libkern/section_keywords.h -libkern/libkern/stack_protector.h -libkern/libkern/sysctl.h -libkern/libkern/tree.h -libkern/libkern/version.h -libkern/libkern/zconf.h -libkern/libkern/zlib.h -libkern/machine/OSByteOrder.h -libkern/os/base.h -libkern/os/log.h -libkern/os/log_private.h -libkern/os/object.h -libkern/os/object_private.h -libkern/os/overflow.h -libkern/os/trace.h -libproc.h -libutil.h -limits.h -locale.h -mach-o/arch.h -mach-o/arm/reloc.h -mach-o/arm64/reloc.h -mach-o/dyld-interposing.h -mach-o/dyld.h -mach-o/dyld_gdb.h -mach-o/dyld_images.h -mach-o/dyld_priv.h -mach-o/dyld_process_info.h -mach-o/fat.h -mach-o/getsect.h -mach-o/hppa/reloc.h -mach-o/hppa/swap.h -mach-o/i386/swap.h -mach-o/i860/reloc.h -mach-o/i860/swap.h -mach-o/ldsyms.h -mach-o/loader.h -mach-o/m68k/swap.h -mach-o/m88k/reloc.h -mach-o/m88k/swap.h -mach-o/nlist.h -mach-o/ppc/reloc.h -mach-o/ppc/swap.h -mach-o/ranlib.h -mach-o/reloc.h -mach-o/sparc/reloc.h -mach-o/sparc/swap.h -mach-o/stab.h -mach-o/swap.h -mach-o/x86_64/reloc.h -mach/audit_triggers.defs -mach/boolean.h -mach/bootstrap.h -mach/clock.defs -mach/clock.h -mach/clock_priv.defs -mach/clock_priv.h -mach/clock_reply.defs -mach/clock_reply.h -mach/clock_types.defs -mach/clock_types.h -mach/dyld_kernel.h -mach/error.h -mach/exc.defs -mach/exc.h -mach/exception.h -mach/exception_types.h -mach/host_info.h -mach/host_notify.h -mach/host_notify_reply.defs -mach/host_priv.defs -mach/host_priv.h -mach/host_reboot.h -mach/host_security.defs -mach/host_security.h -mach/host_special_ports.h -mach/i386/_structs.h -mach/i386/asm.h -mach/i386/boolean.h -mach/i386/exception.h -mach/i386/fp_reg.h -mach/i386/kern_return.h -mach/i386/ndr_def.h -mach/i386/processor_info.h -mach/i386/rpc.h -mach/i386/sdt_isa.h -mach/i386/thread_state.h -mach/i386/thread_status.h -mach/i386/vm_param.h -mach/i386/vm_types.h -mach/kern_return.h -mach/kmod.h -mach/lock_set.defs -mach/lock_set.h -mach/mach.h -mach/mach_error.h -mach/mach_exc.defs -mach/mach_host.defs -mach/mach_host.h -mach/mach_init.h -mach/mach_interface.h -mach/mach_param.h -mach/mach_port.defs -mach/mach_port.h -mach/mach_port_internal.h -mach/mach_syscalls.h -mach/mach_time.h -mach/mach_traps.h -mach/mach_types.defs -mach/mach_types.h -mach/mach_vm.defs -mach/mach_vm.h -mach/mach_vm_internal.h -mach/mach_voucher.defs -mach/mach_voucher.h -mach/mach_voucher_attr_control.defs -mach/mach_voucher_types.h -mach/machine.h -mach/machine/asm.h -mach/machine/boolean.h -mach/machine/exception.h -mach/machine/kern_return.h -mach/machine/machine_types.defs -mach/machine/ndr_def.h -mach/machine/processor_info.h -mach/machine/rpc.h -mach/machine/sdt.h -mach/machine/sdt_isa.h -mach/machine/thread_state.h -mach/machine/thread_status.h -mach/machine/vm_param.h -mach/machine/vm_types.h -mach/memory_object_types.h -mach/message.h -mach/mig.h -mach/mig_errors.h -mach/mig_strncpy_zerofill_support.h -mach/mig_voucher_support.h -mach/ndr.h -mach/notify.defs -mach/notify.h -mach/policy.h -mach/port.h -mach/port_obj.h -mach/processor.defs -mach/processor.h -mach/processor_info.h -mach/processor_set.defs -mach/processor_set.h -mach/rpc.h -mach/sdt.h -mach/semaphore.h -mach/shared_memory_server.h -mach/shared_region.h -mach/std_types.defs -mach/std_types.h -mach/sync.h -mach/sync_policy.h -mach/task.defs -mach/task.h -mach/task_access.defs -mach/task_info.h -mach/task_policy.h -mach/task_special_ports.h -mach/telemetry_notification.defs -mach/thread_act.defs -mach/thread_act.h -mach/thread_act_internal.h -mach/thread_info.h -mach/thread_policy.h -mach/thread_special_ports.h -mach/thread_state.h -mach/thread_status.h -mach/thread_switch.h -mach/time_value.h -mach/vm_attributes.h -mach/vm_behavior.h -mach/vm_inherit.h -mach/vm_map.defs -mach/vm_map.h -mach/vm_map_internal.h -mach/vm_page_size.h -mach/vm_param.h -mach/vm_prot.h -mach/vm_purgable.h -mach/vm_region.h -mach/vm_statistics.h -mach/vm_sync.h -mach/vm_task.h -mach/vm_types.h -mach_debug/hash_info.h -mach_debug/ipc_info.h -mach_debug/lockgroup_info.h -mach_debug/mach_debug.h -mach_debug/mach_debug_types.defs -mach_debug/mach_debug_types.h -mach_debug/page_info.h -mach_debug/vm_info.h -mach_debug/zone_info.h -machine/_limits.h -machine/_mcontext.h -machine/_param.h -machine/_types.h -machine/byte_order.h -machine/endian.h -machine/fasttrap_isa.h -machine/limits.h -machine/param.h -machine/profile.h -machine/signal.h -machine/types.h -machine/vmparam.h -malloc/malloc.h -math.h -membership.h -membershipPriv.h -memory.h -menu.h -miscfs/devfs/devfs.h -miscfs/specfs/specdev.h -miscfs/union/union.h -mntopts.h -monetary.h -monitor.h -mpool.h -msgcat.h -nameser.h -nc_tparm.h -ncurses.h -ncurses_dll.h -ndbm.h -net/bpf.h -net/dlil.h -net/ethernet.h -net/if.h -net/if_arp.h -net/if_dl.h -net/if_llc.h -net/if_media.h -net/if_mib.h -net/if_types.h -net/if_utun.h -net/if_var.h -net/kext_net.h -net/ndrv.h -net/net_kev.h -net/pfkeyv2.h -net/route.h -netdb.h -netdb_async.h -netinet/bootp.h -netinet/icmp6.h -netinet/icmp_var.h -netinet/if_ether.h -netinet/igmp.h -netinet/igmp_var.h -netinet/in.h -netinet/in_pcb.h -netinet/in_systm.h -netinet/in_var.h -netinet/ip.h -netinet/ip6.h -netinet/ip_icmp.h -netinet/ip_var.h -netinet/tcp.h -netinet/tcp_fsm.h -netinet/tcp_seq.h -netinet/tcp_timer.h -netinet/tcp_var.h -netinet/tcpip.h -netinet/udp.h -netinet/udp_var.h -netinet6/ah.h -netinet6/esp.h -netinet6/in6.h -netinet6/in6_var.h -netinet6/ipcomp.h -netinet6/ipsec.h -netinet6/nd6.h -netinet6/raw_ip6.h -netinet6/scope6_var.h -netkey/keysock.h -nfs/krpc.h -nfs/nfs.h -nfs/nfs_gss.h -nfs/nfs_ioctl.h -nfs/nfs_lock.h -nfs/nfsdiskless.h -nfs/nfsm_subs.h -nfs/nfsmount.h -nfs/nfsnode.h -nfs/nfsproto.h -nfs/nfsrvcache.h -nfs/rpcv2.h -nfs/xdr_subs.h -nl_types.h -nlist.h -notify.h -notify_keys.h -ntsid.h -objc-shared-cache.h -os/activity.h -os/alloc_once_impl.h -os/assumes.h -os/availability.h -os/base.h -os/base_private.h -os/debug_private.h -os/internal/atomic.h -os/internal/crashlog.h -os/internal/internal_shared.h -os/lock.h -os/lock_private.h -os/log.h -os/object.h -os/object_private.h -os/once_private.h -os/overflow.h -os/semaphore_private.h -os/trace.h -os/tsd.h -os/voucher_activity_private.h -os/voucher_private.h -osfmk/UserNotification/KUNCUserNotifications.h -osfmk/UserNotification/UNDReply.defs -osfmk/UserNotification/UNDRequest.defs -osfmk/UserNotification/UNDTypes.defs -osfmk/UserNotification/UNDTypes.h -osfmk/atm/atm_internal.h -osfmk/atm/atm_notification.defs -osfmk/atm/atm_types.defs -osfmk/atm/atm_types.h -osfmk/bank/bank_types.h -osfmk/console/video_console.h -osfmk/corpses/task_corpse.h -osfmk/default_pager/default_pager_types.h -osfmk/device/device.defs -osfmk/device/device_port.h -osfmk/device/device_types.defs -osfmk/device/device_types.h -osfmk/gssd/gssd_mach.defs -osfmk/gssd/gssd_mach.h -osfmk/gssd/gssd_mach_types.h -osfmk/i386/apic.h -osfmk/i386/asm.h -osfmk/i386/atomic.h -osfmk/i386/bit_routines.h -osfmk/i386/cpu_capabilities.h -osfmk/i386/cpu_data.h -osfmk/i386/cpu_number.h -osfmk/i386/cpu_topology.h -osfmk/i386/cpuid.h -osfmk/i386/eflags.h -osfmk/i386/io_map_entries.h -osfmk/i386/lapic.h -osfmk/i386/lock.h -osfmk/i386/locks.h -osfmk/i386/machine_cpu.h -osfmk/i386/machine_routines.h -osfmk/i386/mp.h -osfmk/i386/mp_desc.h -osfmk/i386/mp_events.h -osfmk/i386/mtrr.h -osfmk/i386/pal_hibernate.h -osfmk/i386/pal_native.h -osfmk/i386/pal_routines.h -osfmk/i386/panic_hooks.h -osfmk/i386/pmCPU.h -osfmk/i386/pmap.h -osfmk/i386/proc_reg.h -osfmk/i386/rtclock_protos.h -osfmk/i386/seg.h -osfmk/i386/simple_lock.h -osfmk/i386/smp.h -osfmk/i386/tsc.h -osfmk/i386/tss.h -osfmk/i386/ucode.h -osfmk/i386/vmx.h -osfmk/ipc/ipc_types.h -osfmk/kdp/kdp_callout.h -osfmk/kdp/kdp_dyld.h -osfmk/kdp/kdp_en_debugger.h -osfmk/kern/affinity.h -osfmk/kern/assert.h -osfmk/kern/audit_sessionport.h -osfmk/kern/backtrace.h -osfmk/kern/bits.h -osfmk/kern/block_hint.h -osfmk/kern/call_entry.h -osfmk/kern/clock.h -osfmk/kern/coalition.h -osfmk/kern/cpu_data.h -osfmk/kern/cpu_number.h -osfmk/kern/debug.h -osfmk/kern/ecc.h -osfmk/kern/energy_perf.h -osfmk/kern/exc_resource.h -osfmk/kern/extmod_statistics.h -osfmk/kern/host.h -osfmk/kern/hv_support.h -osfmk/kern/ipc_mig.h -osfmk/kern/ipc_misc.h -osfmk/kern/kalloc.h -osfmk/kern/kcdata.h -osfmk/kern/kern_cdata.h -osfmk/kern/kern_types.h -osfmk/kern/kext_alloc.h -osfmk/kern/kpc.h -osfmk/kern/ledger.h -osfmk/kern/lock.h -osfmk/kern/locks.h -osfmk/kern/mach_param.h -osfmk/kern/macro_help.h -osfmk/kern/page_decrypt.h -osfmk/kern/pms.h -osfmk/kern/policy_internal.h -osfmk/kern/processor.h -osfmk/kern/queue.h -osfmk/kern/sched_prim.h -osfmk/kern/sfi.h -osfmk/kern/simple_lock.h -osfmk/kern/startup.h -osfmk/kern/task.h -osfmk/kern/telemetry.h -osfmk/kern/thread.h -osfmk/kern/thread_call.h -osfmk/kern/timer_call.h -osfmk/kern/waitq.h -osfmk/kern/zalloc.h -osfmk/kextd/kextd_mach.defs -osfmk/kextd/kextd_mach.h -osfmk/kperf/action.h -osfmk/kperf/context.h -osfmk/kperf/kdebug_trigger.h -osfmk/kperf/kperf.h -osfmk/kperf/kperf_timer.h -osfmk/kperf/kperfbsd.h -osfmk/kperf/pet.h -osfmk/lockd/lockd_mach.defs -osfmk/lockd/lockd_mach.h -osfmk/lockd/lockd_mach_types.h -osfmk/mach/audit_triggers.defs -osfmk/mach/audit_triggers_server.h -osfmk/mach/boolean.h -osfmk/mach/branch_predicates.h -osfmk/mach/clock.defs -osfmk/mach/clock.h -osfmk/mach/clock_priv.defs -osfmk/mach/clock_priv.h -osfmk/mach/clock_reply.defs -osfmk/mach/clock_reply_server.h -osfmk/mach/clock_types.defs -osfmk/mach/clock_types.h -osfmk/mach/coalition.h -osfmk/mach/coalition_notification_server.h -osfmk/mach/dyld_kernel.h -osfmk/mach/error.h -osfmk/mach/exc.defs -osfmk/mach/exc_server.h -osfmk/mach/exception.h -osfmk/mach/exception_types.h -osfmk/mach/host_info.h -osfmk/mach/host_notify.h -osfmk/mach/host_notify_reply.defs -osfmk/mach/host_priv.defs -osfmk/mach/host_priv.h -osfmk/mach/host_reboot.h -osfmk/mach/host_security.defs -osfmk/mach/host_security.h -osfmk/mach/host_special_ports.h -osfmk/mach/i386/_structs.h -osfmk/mach/i386/asm.h -osfmk/mach/i386/boolean.h -osfmk/mach/i386/exception.h -osfmk/mach/i386/fp_reg.h -osfmk/mach/i386/kern_return.h -osfmk/mach/i386/ndr_def.h -osfmk/mach/i386/processor_info.h -osfmk/mach/i386/rpc.h -osfmk/mach/i386/sdt_isa.h -osfmk/mach/i386/syscall_sw.h -osfmk/mach/i386/thread_state.h -osfmk/mach/i386/thread_status.h -osfmk/mach/i386/vm_param.h -osfmk/mach/i386/vm_types.h -osfmk/mach/kern_return.h -osfmk/mach/kmod.h -osfmk/mach/ktrace_background.h -osfmk/mach/lock_set.defs -osfmk/mach/lock_set.h -osfmk/mach/mach_exc.defs -osfmk/mach/mach_exc_server.h -osfmk/mach/mach_host.defs -osfmk/mach/mach_host.h -osfmk/mach/mach_interface.h -osfmk/mach/mach_param.h -osfmk/mach/mach_port.defs -osfmk/mach/mach_port.h -osfmk/mach/mach_syscalls.h -osfmk/mach/mach_time.h -osfmk/mach/mach_traps.h -osfmk/mach/mach_types.defs -osfmk/mach/mach_types.h -osfmk/mach/mach_vm.defs -osfmk/mach/mach_vm.h -osfmk/mach/mach_voucher.defs -osfmk/mach/mach_voucher.h -osfmk/mach/mach_voucher_attr_control.defs -osfmk/mach/mach_voucher_attr_control.h -osfmk/mach/mach_voucher_types.h -osfmk/mach/machine.h -osfmk/mach/machine/asm.h -osfmk/mach/machine/boolean.h -osfmk/mach/machine/exception.h -osfmk/mach/machine/kern_return.h -osfmk/mach/machine/machine_types.defs -osfmk/mach/machine/ndr_def.h -osfmk/mach/machine/processor_info.h -osfmk/mach/machine/rpc.h -osfmk/mach/machine/sdt.h -osfmk/mach/machine/sdt_isa.h -osfmk/mach/machine/syscall_sw.h -osfmk/mach/machine/thread_state.h -osfmk/mach/machine/thread_status.h -osfmk/mach/machine/vm_param.h -osfmk/mach/machine/vm_types.h -osfmk/mach/memory_object_control.h -osfmk/mach/memory_object_default_server.h -osfmk/mach/memory_object_types.h -osfmk/mach/message.h -osfmk/mach/mig.h -osfmk/mach/mig_errors.h -osfmk/mach/mig_strncpy_zerofill_support.h -osfmk/mach/mig_voucher_support.h -osfmk/mach/ndr.h -osfmk/mach/notify.defs -osfmk/mach/notify.h -osfmk/mach/notify_server.h -osfmk/mach/policy.h -osfmk/mach/port.h -osfmk/mach/processor.defs -osfmk/mach/processor.h -osfmk/mach/processor_info.h -osfmk/mach/processor_set.defs -osfmk/mach/processor_set.h -osfmk/mach/resource_monitors.h -osfmk/mach/rpc.h -osfmk/mach/sdt.h -osfmk/mach/semaphore.h -osfmk/mach/sfi_class.h -osfmk/mach/shared_memory_server.h -osfmk/mach/shared_region.h -osfmk/mach/std_types.defs -osfmk/mach/std_types.h -osfmk/mach/sync_policy.h -osfmk/mach/syscall_sw.h -osfmk/mach/sysdiagnose_notification_server.h -osfmk/mach/task.defs -osfmk/mach/task.h -osfmk/mach/task_access.defs -osfmk/mach/task_access.h -osfmk/mach/task_access_server.h -osfmk/mach/task_info.h -osfmk/mach/task_policy.h -osfmk/mach/task_special_ports.h -osfmk/mach/telemetry_notification.defs -osfmk/mach/telemetry_notification_server.h -osfmk/mach/thread_act.defs -osfmk/mach/thread_act.h -osfmk/mach/thread_info.h -osfmk/mach/thread_policy.h -osfmk/mach/thread_special_ports.h -osfmk/mach/thread_status.h -osfmk/mach/thread_switch.h -osfmk/mach/time_value.h -osfmk/mach/upl.h -osfmk/mach/vm_attributes.h -osfmk/mach/vm_behavior.h -osfmk/mach/vm_inherit.h -osfmk/mach/vm_map.defs -osfmk/mach/vm_map.h -osfmk/mach/vm_param.h -osfmk/mach/vm_prot.h -osfmk/mach/vm_purgable.h -osfmk/mach/vm_region.h -osfmk/mach/vm_statistics.h -osfmk/mach/vm_sync.h -osfmk/mach/vm_types.h -osfmk/mach_debug/hash_info.h -osfmk/mach_debug/ipc_info.h -osfmk/mach_debug/lockgroup_info.h -osfmk/mach_debug/mach_debug.h -osfmk/mach_debug/mach_debug_types.defs -osfmk/mach_debug/mach_debug_types.h -osfmk/mach_debug/page_info.h -osfmk/mach_debug/vm_info.h -osfmk/mach_debug/zone_info.h -osfmk/machine/atomic.h -osfmk/machine/cpu_capabilities.h -osfmk/machine/cpu_number.h -osfmk/machine/io_map_entries.h -osfmk/machine/lock.h -osfmk/machine/locks.h -osfmk/machine/machine_cpuid.h -osfmk/machine/machine_kpc.h -osfmk/machine/machine_routines.h -osfmk/machine/pal_hibernate.h -osfmk/machine/pal_routines.h -osfmk/machine/simple_lock.h -osfmk/prng/random.h -osfmk/string.h -osfmk/vm/WKdm_new.h -osfmk/vm/pmap.h -osfmk/vm/vm_compressor_algorithms.h -osfmk/vm/vm_fault.h -osfmk/vm/vm_kern.h -osfmk/vm/vm_map.h -osfmk/vm/vm_options.h -osfmk/vm/vm_pageout.h -osfmk/vm/vm_protos.h -osfmk/vm/vm_shared_region.h -osfmk/voucher/ipc_pthread_priority_types.h -osfmk/x86_64/machine_kpc.h -panel.h -paths.h -pexpert/boot.h -pexpert/i386/boot.h -pexpert/i386/efi.h -pexpert/i386/protos.h -pexpert/machine/boot.h -pexpert/machine/protos.h -pexpert/pexpert.h -pexpert/pexpert/boot.h -pexpert/pexpert/device_tree.h -pexpert/pexpert/i386/boot.h -pexpert/pexpert/i386/efi.h -pexpert/pexpert/i386/protos.h -pexpert/pexpert/machine/boot.h -pexpert/pexpert/machine/protos.h -pexpert/pexpert/pexpert.h -pexpert/pexpert/protos.h -pexpert/protos.h -platform/compat.h -platform/introspection_private.h -platform/string.h -poll.h -printerdb.h -printf.h -protocols/routed.h -protocols/rwhod.h -protocols/talkd.h -protocols/timed.h -pthread/introspection.h -pthread/pthread.h -pthread/pthread_impl.h -pthread/pthread_spis.h -pthread/qos.h -pthread/sched.h -pthread/spawn.h -pwd.h -ranlib.h -readpassphrase.h -reboot2.h -regex.h -removefile.h -resolv.h -rpc/auth.h -rpc/auth_unix.h -rpc/clnt.h -rpc/pmap_clnt.h -rpc/pmap_prot.h -rpc/pmap_rmt.h -rpc/rpc.h -rpc/rpc_msg.h -rpc/svc.h -rpc/svc_auth.h -rpc/types.h -rpc/xdr.h -rpcsvc/yp_prot.h -rpcsvc/ypclnt.h -runetype.h -search.h -secure/_common.h -secure/_stdio.h -secure/_string.h -security/audit/audit_ioctl.h -security/mac.h -security/mac_policy.h -security/security/_label.h -security/security/mac.h -security/security/mac_alloc.h -security/security/mac_data.h -security/security/mac_framework.h -security/security/mac_internal.h -security/security/mac_mach_internal.h -security/security/mac_policy.h -semaphore.h -servers/bootstrap.h -servers/bootstrap_defs.h -servers/key_defs.h -servers/ls_defs.h -servers/netname.h -servers/netname_defs.h -servers/nm_defs.h -setjmp.h -sgtty.h -si_data.h -si_module.h -signal.h -spawn.h -stab.h -standards.h -stdarg.h -stddef.h -stdint.h -stdio.h -stdlib.h -strhash.h -string.h -stringlist.h -strings.h -struct.h -sys/_endian.h -sys/_posix_availability.h -sys/_pthread/_pthread_attr_t.h -sys/_pthread/_pthread_cond_t.h -sys/_pthread/_pthread_condattr_t.h -sys/_pthread/_pthread_key_t.h -sys/_pthread/_pthread_mutex_t.h -sys/_pthread/_pthread_mutexattr_t.h -sys/_pthread/_pthread_once_t.h -sys/_pthread/_pthread_rwlock_t.h -sys/_pthread/_pthread_rwlockattr_t.h -sys/_pthread/_pthread_t.h -sys/_pthread/_pthread_types.h -sys/_select.h -sys/_structs.h -sys/_symbol_aliasing.h -sys/_types.h -sys/_types/_blkcnt_t.h -sys/_types/_blksize_t.h -sys/_types/_clock_t.h -sys/_types/_ct_rune_t.h -sys/_types/_dev_t.h -sys/_types/_errno_t.h -sys/_types/_fd_clr.h -sys/_types/_fd_copy.h -sys/_types/_fd_def.h -sys/_types/_fd_isset.h -sys/_types/_fd_set.h -sys/_types/_fd_setsize.h -sys/_types/_fd_zero.h -sys/_types/_filesec_t.h -sys/_types/_fsblkcnt_t.h -sys/_types/_fsfilcnt_t.h -sys/_types/_fsid_t.h -sys/_types/_fsobj_id_t.h -sys/_types/_gid_t.h -sys/_types/_guid_t.h -sys/_types/_id_t.h -sys/_types/_in_addr_t.h -sys/_types/_in_port_t.h -sys/_types/_ino64_t.h -sys/_types/_ino_t.h -sys/_types/_int16_t.h -sys/_types/_int32_t.h -sys/_types/_int64_t.h -sys/_types/_int8_t.h -sys/_types/_intptr_t.h -sys/_types/_iovec_t.h -sys/_types/_key_t.h -sys/_types/_mach_port_t.h -sys/_types/_mbstate_t.h -sys/_types/_mode_t.h -sys/_types/_nlink_t.h -sys/_types/_null.h -sys/_types/_o_dsync.h -sys/_types/_o_sync.h -sys/_types/_off_t.h -sys/_types/_offsetof.h -sys/_types/_os_inline.h -sys/_types/_pid_t.h -sys/_types/_posix_vdisable.h -sys/_types/_pthread_attr_t.h -sys/_types/_pthread_cond_t.h -sys/_types/_pthread_condattr_t.h -sys/_types/_pthread_key_t.h -sys/_types/_pthread_mutex_t.h -sys/_types/_pthread_mutexattr_t.h -sys/_types/_pthread_once_t.h -sys/_types/_pthread_rwlock_t.h -sys/_types/_pthread_rwlockattr_t.h -sys/_types/_pthread_t.h -sys/_types/_pthread_types.h -sys/_types/_ptrdiff_t.h -sys/_types/_rsize_t.h -sys/_types/_rune_t.h -sys/_types/_s_ifmt.h -sys/_types/_sa_family_t.h -sys/_types/_seek_set.h -sys/_types/_sigaltstack.h -sys/_types/_sigset_t.h -sys/_types/_size_t.h -sys/_types/_socklen_t.h -sys/_types/_ssize_t.h -sys/_types/_suseconds_t.h -sys/_types/_time_t.h -sys/_types/_timespec.h -sys/_types/_timeval.h -sys/_types/_timeval32.h -sys/_types/_timeval64.h -sys/_types/_u_int16_t.h -sys/_types/_u_int32_t.h -sys/_types/_u_int64_t.h -sys/_types/_u_int8_t.h -sys/_types/_ucontext.h -sys/_types/_ucontext64.h -sys/_types/_uid_t.h -sys/_types/_uintptr_t.h -sys/_types/_useconds_t.h -sys/_types/_uuid_t.h -sys/_types/_va_list.h -sys/_types/_wchar_t.h -sys/_types/_wint_t.h -sys/acct.h -sys/acl.h -sys/aio.h -sys/appleapiopts.h -sys/attr.h -sys/buf.h -sys/cdefs.h -sys/clonefile.h -sys/conf.h -sys/dir.h -sys/dirent.h -sys/disk.h -sys/dkstat.h -sys/domain.h -sys/dtrace.h -sys/dtrace_glue.h -sys/dtrace_impl.h -sys/errno.h -sys/ev.h -sys/event.h -sys/fasttrap.h -sys/fasttrap_isa.h -sys/fcntl.h -sys/file.h -sys/filedesc.h -sys/filio.h -sys/gmon.h -sys/ioccom.h -sys/ioctl.h -sys/ioctl_compat.h -sys/ipc.h -sys/kauth.h -sys/kdebug.h -sys/kdebug_signpost.h -sys/kern_control.h -sys/kern_event.h -sys/kernel.h -sys/kernel_types.h -sys/lctx.h -sys/loadable_fs.h -sys/lock.h -sys/lockf.h -sys/lockstat.h -sys/malloc.h -sys/mbuf.h -sys/mman.h -sys/mount.h -sys/msg.h -sys/msgbuf.h -sys/netport.h -sys/param.h -sys/paths.h -sys/pipe.h -sys/poll.h -sys/posix_sem.h -sys/posix_shm.h -sys/proc.h -sys/proc_info.h -sys/protosw.h -sys/ptrace.h -sys/qos.h -sys/qos_private.h -sys/queue.h -sys/quota.h -sys/random.h -sys/rbtree.h -sys/reboot.h -sys/resource.h -sys/resourcevar.h -sys/sbuf.h -sys/sdt.h -sys/select.h -sys/sem.h -sys/semaphore.h -sys/shm.h -sys/signal.h -sys/signalvar.h -sys/socket.h -sys/socketvar.h -sys/sockio.h -sys/spawn.h -sys/stat.h -sys/statvfs.h -sys/stdio.h -sys/sys_domain.h -sys/syscall.h -sys/sysctl.h -sys/syslimits.h -sys/syslog.h -sys/termios.h -sys/time.h -sys/timeb.h -sys/times.h -sys/tprintf.h -sys/trace.h -sys/tty.h -sys/ttychars.h -sys/ttycom.h -sys/ttydefaults.h -sys/ttydev.h -sys/types.h -sys/ubc.h -sys/ucontext.h -sys/ucred.h -sys/uio.h -sys/un.h -sys/unistd.h -sys/unpcb.h -sys/user.h -sys/utfconv.h -sys/utsname.h -sys/vadvise.h -sys/vcmd.h -sys/vm.h -sys/vmmeter.h -sys/vmparam.h -sys/vnioctl.h -sys/vnode.h -sys/vnode_if.h -sys/vstat.h -sys/wait.h -sys/xattr.h -sysexits.h -syslog.h -tar.h -term.h -term_entry.h -termcap.h -termios.h -thread_data.h -tic.h -time.h -timeconv.h -ttyent.h -tzfile.h -tzlink.h -tzlink_internal.h -ucontext.h -ulimit.h -unctrl.h -unistd.h -util.h -utime.h -utmpx.h -utmpx_thread.h -uuid/uuid.h -vfs/vfs_support.h -vis.h -voucher/ipc_pthread_priority_types.h -vproc.h -vproc_internal.h -vproc_priv.h -wchar.h -wctype.h -wipefs.h -wordexp.h -xlocale.h -xlocale/__wctype.h -xlocale/_ctype.h -xlocale/_inttypes.h -xlocale/_langinfo.h -xlocale/_monetary.h -xlocale/_regex.h -xlocale/_stdio.h -xlocale/_stdlib.h -xlocale/_string.h -xlocale/_time.h -xlocale/_wchar.h -xlocale/_wctype.h diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libsystem/system_c_symbols b/pkgs/by-name/da/darwin/packages/apple-source-releases/Libsystem/system_c_symbols deleted file mode 100644 index 1ec6c63..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libsystem/system_c_symbols +++ /dev/null @@ -1,1320 +0,0 @@ -__CurrentRuneLocale -__DefaultRuneLocale -__Exit -__NSGetArgc -__NSGetArgv -__NSGetEnviron -__NSGetMachExecuteHeader -__NSGetProgname -__PathLocale -__Read_RuneMagi -___Balloc_D2A -___Bfree_D2A -___ULtod_D2A -____mb_cur_max -____mb_cur_max_l -____runetype -____runetype_l -____tolower -____tolower_l -____toupper -____toupper_l -___add_ovflpage -___addel -___any_on_D2A -___assert_rtn -___b2d_D2A -___big_delete -___big_insert -___big_keydata -___big_return -___big_split -___bigtens_D2A -___bt_close -___bt_cmp -___bt_defcmp -___bt_defpfx -___bt_delete -___bt_dleaf -___bt_fd -___bt_free -___bt_get -___bt_new -___bt_open -___bt_pgin -___bt_pgout -___bt_put -___bt_ret -___bt_search -___bt_seq -___bt_setcur -___bt_split -___bt_sync -___buf_free -___call_hash -___cleanup -___cmp_D2A -___collate_equiv_match -___collate_load_error -___collate_lookup -___copybits_D2A -___cxa_atexit -___cxa_finalize -___cxa_finalize_ranges -___cxa_thread_atexit -___d2b_D2A -___dbpanic -___decrement_D2A -___default_hash -___default_utx -___delpair -___diff_D2A -___dtoa -___expand_table -___fflush -___fgetwc -___find_bigpair -___find_last_page -___fix_locale_grouping_str -___fread -___free_ovflpage -___freedtoa -___gdtoa -___gdtoa_locks -___get_buf -___get_page -___gethex_D2A -___getonlyClocaleconv -___hash_open -___hdtoa -___hexdig_D2A -___hexdig_init_D2A -___hexnan_D2A -___hi0bits_D2A -___hldtoa -___i2b_D2A -___ibitmap -___increment_D2A -___isctype -___istype -___istype_l -___ldtoa -___libc_init -___lo0bits_D2A -___log2 -___lshift_D2A -___maskrune -___maskrune_l -___match_D2A -___mb_cur_max -___mb_sb_limit -___memccpy_chk -___memcpy_chk -___memmove_chk -___memset_chk -___mult_D2A -___multadd_D2A -___nrv_alloc_D2A -___opendir2 -___opendir2$INODE64 -___ovfl_delete -___ovfl_get -___ovfl_put -___pow5mult_D2A -___put_page -___quorem_D2A -___ratio_D2A -___rec_close -___rec_delete -___rec_dleaf -___rec_fd -___rec_fmap -___rec_fpipe -___rec_get -___rec_iput -___rec_open -___rec_put -___rec_ret -___rec_search -___rec_seq -___rec_sync -___rec_vmap -___rec_vpipe -___reclaim_buf -___rshift_D2A -___rv_alloc_D2A -___s2b_D2A -___sF -___sclose -___sdidinit -___set_ones_D2A -___setonlyClocaleconv -___sflags -___sflush -___sfp -___sfvwrite -___sglue -___sinit -___slbexpand -___smakebuf -___snprintf_chk -___split_page -___sprintf_chk -___sread -___srefill -___srget -___sseek -___stack_chk_fail -___stack_chk_guard -___stderrp -___stdinp -___stdoutp -___stpcpy_chk -___stpncpy_chk -___strcat_chk -___strcp_D2A -___strcpy_chk -___strlcat_chk -___strlcpy_chk -___strncat_chk -___strncpy_chk -___strtodg -___strtopdd -___strtopx -___sum_D2A -___svfscanf -___swbuf -___swhatbuf -___swrite -___swsetup -___tens_D2A -___tinytens_D2A -___tolower -___tolower_l -___toupper -___toupper_l -___trailz_D2A -___ulp_D2A -___ungetc -___ungetwc -___vsnprintf_chk -___vsprintf_chk -___wcwidth -___wcwidth_l -__allocenvstate -__atexit_receipt -__c_locale -__cleanup -__closeutx -__copyenv -__cthread_init_routine -__deallocenvstate -__endutxent -__flockfile_debug_stub -__fseeko -__ftello -__fwalk -__getenvp -__getutxent -__getutxid -__getutxline -__inet_aton_check -__init_clock_port -__int_to_time -__libc_fork_child -__libc_initializer -__long_to_time -__mkpath_np -__mktemp -__openutx -__os_assert_log -__os_assert_log_ctx -__os_assumes_log -__os_assumes_log_ctx -__os_avoid_tail_call -__os_crash -__os_crash_callback -__os_debug_log -__os_debug_log_error_str -__putenvp -__pututxline -__rand48_add -__rand48_mult -__rand48_seed -__readdir_unlocked -__readdir_unlocked$INODE64 -__reclaim_telldir -__seekdir -__seekdir$INODE64 -__setenvp -__setutxent -__sigaction_nobind -__sigintr -__signal_nobind -__sigvec_nobind -__sread -__sseek -__swrite -__time32_to_time -__time64_to_time -__time_to_int -__time_to_long -__time_to_time32 -__time_to_time64 -__unsetenvp -__utmpxname -_a64l -_abort -_abort_report_np -_abs -_acl_add_flag_np -_acl_add_perm -_acl_calc_mask -_acl_clear_flags_np -_acl_clear_perms -_acl_copy_entry -_acl_copy_ext -_acl_copy_ext_native -_acl_copy_int -_acl_copy_int_native -_acl_create_entry -_acl_create_entry_np -_acl_delete_def_file -_acl_delete_entry -_acl_delete_fd_np -_acl_delete_file_np -_acl_delete_flag_np -_acl_delete_link_np -_acl_delete_perm -_acl_dup -_acl_free -_acl_from_text -_acl_get_entry -_acl_get_fd -_acl_get_fd_np -_acl_get_file -_acl_get_flag_np -_acl_get_flagset_np -_acl_get_link_np -_acl_get_perm_np -_acl_get_permset -_acl_get_permset_mask_np -_acl_get_qualifier -_acl_get_tag_type -_acl_init -_acl_maximal_permset_mask_np -_acl_set_fd -_acl_set_fd_np -_acl_set_file -_acl_set_flagset_np -_acl_set_link_np -_acl_set_permset -_acl_set_permset_mask_np -_acl_set_qualifier -_acl_set_tag_type -_acl_size -_acl_to_text -_acl_valid -_acl_valid_fd_np -_acl_valid_file_np -_acl_valid_link -_addr2ascii -_alarm -_alphasort -_alphasort$INODE64 -_arc4random -_arc4random_addrandom -_arc4random_buf -_arc4random_stir -_arc4random_uniform -_ascii2addr -_asctime -_asctime_r -_asprintf -_asprintf_l -_asxprintf -_asxprintf_exec -_atexit -_atexit_b -_atof -_atof_l -_atoi -_atoi_l -_atol -_atol_l -_atoll -_atoll_l -_backtrace -_backtrace_symbols -_backtrace_symbols_fd -_basename -_basename_r -_bcmp -_bcopy -_brk -_bsd_signal -_bsearch -_bsearch_b -_btowc -_btowc_l -_bzero -_catclose -_catgets -_catopen -_cfgetispeed -_cfgetospeed -_cfmakeraw -_cfsetispeed -_cfsetospeed -_cfsetspeed -_cgetcap -_cgetclose -_cgetent -_cgetfirst -_cgetmatch -_cgetnext -_cgetnum -_cgetset -_cgetstr -_cgetustr -_chmodx_np -_clearerr -_clearerr_unlocked -_clock -_clock_getres -_clock_gettime -_clock_gettime_nsec_np -_clock_port -_clock_sem -_clock_settime -_closedir -_compat_mode -_confstr -_copy_printf_domain -_creat -_creat$NOCANCEL -_crypt -_ctermid -_ctermid_r -_ctime -_ctime_r -_daemon -_daemon$1050 -_daylight -_dbm_clearerr -_dbm_close -_dbm_delete -_dbm_dirfno -_dbm_error -_dbm_fetch -_dbm_firstkey -_dbm_nextkey -_dbm_open -_dbm_store -_dbopen -_devname -_devname_r -_difftime -_digittoint -_digittoint_l -_dirfd -_dirname -_dirname_r -_div -_dprintf -_dprintf_l -_drand48 -_duplocale -_dxprintf -_dxprintf_exec -_ecvt -_encrypt -_endttyent -_endusershell -_endutxent -_endutxent_wtmp -_erand48 -_err -_err_set_exit -_err_set_exit_b -_err_set_file -_errc -_errx -_execl -_execle -_execlp -_execv -_execvP -_execvp -_exit -_f_prealloc -_fchmodx_np -_fclose -_fcvt -_fdopen -_fdopen$DARWIN_EXTSN -_fdopendir -_fdopendir$INODE64 -_feof -_feof_unlocked -_ferror -_ferror_unlocked -_fflagstostr -_fflush -_fgetc -_fgetln -_fgetpos -_fgetrune -_fgets -_fgetwc -_fgetwc_l -_fgetwln -_fgetwln_l -_fgetws -_fgetws_l -_fileno -_fileno_unlocked -_filesec_dup -_filesec_free -_filesec_get_property -_filesec_init -_filesec_query_property -_filesec_set_property -_filesec_unset_property -_flockfile -_fmtcheck -_fmtmsg -_fnmatch -_fopen -_fopen$DARWIN_EXTSN -_fork -_forkpty -_fparseln -_fprintf -_fprintf_l -_fpurge -_fputc -_fputrune -_fputs -_fputwc -_fputwc_l -_fputws -_fputws_l -_fread -_free_printf_comp -_free_printf_domain -_freelocale -_freopen -_fscanf -_fscanf_l -_fseek -_fseeko -_fsetpos -_fstatvfs -_fstatx64_np -_fstatx_np -_fstatx_np$INODE64 -_fsync_volume_np -_ftell -_ftello -_ftime -_ftok -_ftrylockfile -_fts_children -_fts_children$INODE64 -_fts_close -_fts_close$INODE64 -_fts_open -_fts_open$INODE64 -_fts_open_b -_fts_open_b$INODE64 -_fts_read -_fts_read$INODE64 -_fts_set -_fts_set$INODE64 -_ftw -_ftw$INODE64 -_fungetrune -_funlockfile -_funopen -_fwide -_fwprintf -_fwprintf_l -_fwrite -_fwscanf -_fwscanf_l -_fxprintf -_fxprintf_exec -_gcvt -_getbsize -_getc -_getc_unlocked -_getchar -_getchar_unlocked -_getcwd -_getdate -_getdate_err -_getdelim -_getdiskbyname -_getenv -_getgroups$DARWIN_EXTSN -_gethostid -_gethostname -_getipv4sourcefilter -_getlastlogx -_getlastlogxbyname -_getline -_getloadavg -_getlogin -_getlogin_r -_getmntinfo -_getmntinfo$INODE64 -_getmntinfo64 -_getmode -_getopt -_getopt_long -_getopt_long_only -_getpagesize -_getpass -_getpeereid -_getprogname -_gets -_getsourcefilter -_getsubopt -_gettimeofday -_getttyent -_getttynam -_getusershell -_getutmp -_getutmpx -_getutxent -_getutxent_wtmp -_getutxid -_getutxline -_getvfsbyname -_getw -_getwc -_getwc_l -_getwchar -_getwchar_l -_getwd -_glob -_glob$INODE64 -_glob_b -_glob_b$INODE64 -_globfree -_gmtime -_gmtime_r -_grantpt -_hash_create -_hash_destroy -_hash_purge -_hash_search -_hash_stats -_hash_traverse -_hcreate -_hdestroy -_heapsort -_heapsort_b -_hsearch -_imaxabs -_imaxdiv -_index -_inet_addr -_inet_aton -_inet_lnaof -_inet_makeaddr -_inet_net_ntop -_inet_net_pton -_inet_neta -_inet_netof -_inet_network -_inet_nsap_addr -_inet_nsap_ntoa -_inet_ntoa -_inet_ntop -_inet_ntop4 -_inet_ntop6 -_inet_pton -_initstate -_insque -_isalnum -_isalnum_l -_isalpha -_isalpha_l -_isascii -_isatty -_isblank -_isblank_l -_iscntrl -_iscntrl_l -_isdigit -_isdigit_l -_isgraph -_isgraph_l -_ishexnumber -_ishexnumber_l -_isideogram -_isideogram_l -_islower -_islower_l -_isnumber -_isnumber_l -_isphonogram -_isphonogram_l -_isprint -_isprint_l -_ispunct -_ispunct_l -_isrune -_isrune_l -_isspace -_isspace_l -_isspecial -_isspecial_l -_isupper -_isupper_l -_iswalnum -_iswalnum_l -_iswalpha -_iswalpha_l -_iswascii -_iswblank -_iswblank_l -_iswcntrl -_iswcntrl_l -_iswctype -_iswctype_l -_iswdigit -_iswdigit_l -_iswgraph -_iswgraph_l -_iswhexnumber -_iswhexnumber_l -_iswideogram -_iswideogram_l -_iswlower -_iswlower_l -_iswnumber -_iswnumber_l -_iswphonogram -_iswphonogram_l -_iswprint -_iswprint_l -_iswpunct -_iswpunct_l -_iswrune -_iswrune_l -_iswspace -_iswspace_l -_iswspecial -_iswspecial_l -_iswupper -_iswupper_l -_iswxdigit -_iswxdigit_l -_isxdigit -_isxdigit_l -_jrand48 -_kOSThermalNotificationPressureLevelName -_killpg -_l64a -_labs -_lchflags -_lchmod -_lcong48 -_ldiv -_lfind -_link_addr -_link_ntoa -_llabs -_lldiv -_localeconv -_localeconv_l -_localtime -_localtime_r -_lockf -_lockf$NOCANCEL -_login -_login_tty -_logout -_logwtmp -_lrand48 -_lsearch -_lstatx64_np -_lstatx_np -_lstatx_np$INODE64 -_lutimes -_mblen -_mblen_l -_mbmb -_mbrlen -_mbrlen_l -_mbrrune -_mbrtowc -_mbrtowc_l -_mbrune -_mbsinit -_mbsinit_l -_mbsnrtowcs -_mbsnrtowcs_l -_mbsrtowcs -_mbsrtowcs_l -_mbstowcs -_mbstowcs_l -_mbtowc -_mbtowc_l -_memccpy -_memchr -_memcmp -_memcpy -_memmem -_memmove -_memset -_memset_pattern16 -_memset_pattern4 -_memset_pattern8 -_memset_s -_mergesort -_mergesort_b -_mkdirx_np -_mkdtemp -_mkfifox_np -_mkostemp -_mkostemps -_mkpath_np -_mkpathat_np -_mkstemp -_mkstemp_dprotected_np -_mkstemps -_mktemp -_mktime -_monaddition -_moncontrol -_moncount -_moninit -_monitor -_monoutput -_monreset -_monstartup -_mpool_close -_mpool_filter -_mpool_get -_mpool_new -_mpool_open -_mpool_put -_mpool_sync -_mrand48 -_nanosleep -_nanosleep$NOCANCEL -_new_printf_comp -_new_printf_domain -_newlocale -_nextwctype -_nextwctype_l -_nftw -_nftw$INODE64 -_nice -_nl_langinfo -_nl_langinfo_l -_nrand48 -_nvis -_off32 -_off64 -_offtime -_opendev -_opendir -_opendir$INODE64 -_openpty -_openx_np -_optarg -_opterr -_optind -_optopt -_optreset -_pause -_pause$NOCANCEL -_pclose -_perror -_popen -_popen$DARWIN_EXTSN -_posix2time -_posix_openpt -_posix_spawnp -_printf -_printf_l -_psignal -_psort -_psort_b -_psort_r -_ptsname -_putc -_putc_unlocked -_putchar -_putchar_unlocked -_putenv -_puts -_pututxline -_putw -_putwc -_putwc_l -_putwchar -_putwchar_l -_qsort -_qsort_b -_qsort_r -_querylocale -_radixsort -_raise -_rand -_rand_r -_random -_rb_tree_count -_rb_tree_find_node -_rb_tree_find_node_geq -_rb_tree_find_node_leq -_rb_tree_init -_rb_tree_insert_node -_rb_tree_iterate -_rb_tree_remove_node -_readdir -_readdir$INODE64 -_readdir_r -_readdir_r$INODE64 -_readpassphrase -_reallocf -_realpath -_realpath$DARWIN_EXTSN -_recv -_recv$NOCANCEL -_regcomp -_regcomp_l -_regerror -_regexec -_regfree -_register_printf_domain_function -_register_printf_domain_render_std -_regncomp -_regncomp_l -_regnexec -_regwcomp -_regwcomp_l -_regwexec -_regwncomp -_regwncomp_l -_regwnexec -_remove -_remque -_rewind -_rewinddir -_rewinddir$INODE64 -_rindex -_sbrk -_scandir -_scandir$INODE64 -_scandir_b -_scandir_b$INODE64 -_scanf -_scanf_l -_seed48 -_seekdir -_seekdir$INODE64 -_send -_send$NOCANCEL -_setbuf -_setbuffer -_setenv -_sethostid -_sethostname -_setinvalidrune -_setipv4sourcefilter -_setkey -_setlinebuf -_setlocale -_setlogin -_setmode -_setpgrp -_setprogname -_setrgid -_setruid -_setrunelocale -_setsourcefilter -_setstate -_settimeofday -_setttyent -_setusershell -_setutxent -_setutxent_wtmp -_setvbuf -_sigaction -_sigaddset -_sigaltstack -_sigblock -_sigdelset -_sigemptyset -_sigfillset -_sighold -_sigignore -_siginterrupt -_sigismember -_signal -_sigpause -_sigpause$NOCANCEL -_sigrelse -_sigset -_sigsetmask -_sigvec -_skip -_sl_add -_sl_find -_sl_free -_sl_init -_sleep -_sleep$NOCANCEL -_snprintf -_snprintf_l -_snvis -_sockatmark -_sprintf -_sprintf_l -_sradixsort -_srand -_srand48 -_sranddev -_srandom -_srandomdev -_sscanf -_sscanf_l -_statvfs -_statx64_np -_statx_np -_statx_np$INODE64 -_stpcpy -_stpncpy -_strcasecmp -_strcasecmp_l -_strcasestr -_strcasestr_l -_strcat -_strchr -_strcmp -_strcoll -_strcoll_l -_strcpy -_strcspn -_strdup -_strenvisx -_strerror -_strerror_r -_strfmon -_strfmon_l -_strftime -_strftime_l -_strlcat -_strlcpy -_strlen -_strmode -_strncasecmp -_strncasecmp_l -_strncat -_strncmp -_strncpy -_strndup -_strnlen -_strnstr -_strnunvis -_strnunvisx -_strnvis -_strnvisx -_strpbrk -_strptime -_strptime_l -_strrchr -_strsenvisx -_strsep -_strsignal -_strsnvis -_strsnvisx -_strspn -_strstr -_strsvis -_strsvisx -_strtod -_strtod_l -_strtof -_strtof_l -_strtofflags -_strtoimax -_strtoimax_l -_strtok -_strtok_r -_strtol -_strtol_l -_strtold -_strtold_l -_strtoll -_strtoll_l -_strtoq -_strtoq_l -_strtoul -_strtoul_l -_strtoull -_strtoull_l -_strtoumax -_strtoumax_l -_strtouq -_strtouq_l -_strunvis -_strunvisx -_strvis -_strvisx -_strxfrm -_strxfrm_l -_suboptarg -_svis -_swab -_swprintf -_swprintf_l -_swscanf -_swscanf_l -_sxprintf -_sxprintf_exec -_sync_volume_np -_sys_errlist -_sys_nerr -_sys_siglist -_sys_signame -_sysconf -_sysctl -_sysctlbyname -_sysctlnametomib -_system -_system$NOCANCEL -_tcdrain -_tcdrain$NOCANCEL -_tcflow -_tcflush -_tcgetattr -_tcgetpgrp -_tcgetsid -_tcsendbreak -_tcsetattr -_tcsetpgrp -_tdelete -_telldir -_telldir$INODE64 -_tempnam -_tfind -_thread_stack_pcs -_time -_time2posix -_timegm -_timelocal -_timeoff -_times -_timezone -_timingsafe_bcmp -_tmpfile -_tmpnam -_toascii -_tolower -_tolower_l -_toupper -_toupper_l -_towctrans -_towctrans_l -_towlower -_towlower_l -_towupper -_towupper_l -_tre_ast_new_catenation -_tre_ast_new_iter -_tre_ast_new_literal -_tre_ast_new_node -_tre_ast_new_union -_tre_compile -_tre_fill_pmatch -_tre_free -_tre_mem_alloc_impl -_tre_mem_destroy -_tre_mem_new_impl -_tre_parse -_tre_stack_destroy -_tre_stack_new -_tre_stack_num_objects -_tre_tnfa_run_backtrack -_tre_tnfa_run_parallel -_tsearch -_ttyname -_ttyname_r -_ttyslot -_twalk -_tzname -_tzset -_tzsetwall -_ualarm -_ulimit -_umaskx_np -_uname -_ungetc -_ungetwc -_ungetwc_l -_unlockpt -_unsetenv -_unvis -_uselocale -_usleep -_usleep$NOCANCEL -_utime -_utmpxname -_uuid_clear -_uuid_compare -_uuid_copy -_uuid_generate -_uuid_generate_random -_uuid_generate_time -_uuid_is_null -_uuid_pack -_uuid_parse -_uuid_unpack -_uuid_unparse -_uuid_unparse_lower -_uuid_unparse_upper -_vasprintf -_vasprintf_l -_vasxprintf -_vasxprintf_exec -_vdprintf -_vdprintf_l -_vdxprintf -_vdxprintf_exec -_verr -_verrc -_verrx -_vfprintf -_vfprintf_l -_vfscanf -_vfscanf_l -_vfwprintf -_vfwprintf_l -_vfwscanf -_vfwscanf_l -_vfxprintf -_vfxprintf_exec -_vis -_vprintf -_vprintf_l -_vscanf -_vscanf_l -_vsnprintf -_vsnprintf_l -_vsprintf -_vsprintf_l -_vsscanf -_vsscanf_l -_vswprintf -_vswprintf_l -_vswscanf -_vswscanf_l -_vsxprintf -_vsxprintf_exec -_vwarn -_vwarnc -_vwarnx -_vwprintf -_vwprintf_l -_vwscanf -_vwscanf_l -_vxprintf -_vxprintf_exec -_wait -_wait$NOCANCEL -_wait3 -_waitpid -_waitpid$NOCANCEL -_warn -_warnc -_warnx -_wcpcpy -_wcpncpy -_wcrtomb -_wcrtomb_l -_wcscasecmp -_wcscasecmp_l -_wcscat -_wcschr -_wcscmp -_wcscoll -_wcscoll_l -_wcscpy -_wcscspn -_wcsdup -_wcsftime -_wcsftime_l -_wcslcat -_wcslcpy -_wcslen -_wcsncasecmp -_wcsncasecmp_l -_wcsncat -_wcsncmp -_wcsncpy -_wcsnlen -_wcsnrtombs -_wcsnrtombs_l -_wcspbrk -_wcsrchr -_wcsrtombs -_wcsrtombs_l -_wcsspn -_wcsstr -_wcstod -_wcstod_l -_wcstof -_wcstof_l -_wcstoimax -_wcstoimax_l -_wcstok -_wcstol -_wcstol_l -_wcstold -_wcstold_l -_wcstoll -_wcstoll_l -_wcstombs -_wcstombs_l -_wcstoul -_wcstoul_l -_wcstoull -_wcstoull_l -_wcstoumax -_wcstoumax_l -_wcswidth -_wcswidth_l -_wcsxfrm -_wcsxfrm_l -_wctob -_wctob_l -_wctomb -_wctomb_l -_wctrans -_wctrans_l -_wctype -_wctype_l -_wcwidth -_wcwidth_l -_wmemchr -_wmemcmp -_wmemcpy -_wmemmove -_wmemset -_wordexp -_wordfree -_wprintf -_wprintf_l -_wscanf -_wscanf_l -_wtmpxname -_xprintf -_xprintf_exec -mcount diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libsystem/system_kernel_symbols b/pkgs/by-name/da/darwin/packages/apple-source-releases/Libsystem/system_kernel_symbols deleted file mode 100644 index 7c5b90f..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libsystem/system_kernel_symbols +++ /dev/null @@ -1,1172 +0,0 @@ -_NDR_record -_____old_semwait_signal_nocancel -_____sigwait_nocancel -____kernelVersionNumber -____kernelVersionString -___abort_with_payload -___accept -___accept_nocancel -___access_extended -___aio_suspend_nocancel -___bind -___bsdthread_create -___bsdthread_ctl -___bsdthread_register -___bsdthread_terminate -___carbon_delete -___channel_get_info -___channel_get_opt -___channel_open -___channel_set_opt -___channel_sync -___chmod -___chmod_extended -___close_nocancel -___coalition -___coalition_info -___commpage_gettimeofday -___connect -___connect_nocancel -___copyfile -___csrctl -___delete -___disable_threadsignal -___error -___exit -___fchmod -___fchmod_extended -___fcntl -___fcntl_nocancel -___fork -___fs_snapshot -___fstat64_extended -___fstat_extended -___fsync_nocancel -___get_remove_counter -___getattrlist -___getdirentries64 -___gethostuuid -___getlogin -___getpeername -___getpid -___getrlimit -___getsgroups -___getsockname -___gettid -___gettimeofday -___getwgroups -___guarded_open_dprotected_np -___guarded_open_np -___identitysvc -___inc_remove_counter -___initgroups -___ioctl -___iopolicysys -___kdebug_trace -___kdebug_trace64 -___kdebug_trace_string -___kdebug_typefilter -___kill -___lchown -___libkernel_init -___libkernel_voucher_init -___listen -___lseek -___lstat64_extended -___lstat_extended -___mac_execve -___mac_get_fd -___mac_get_file -___mac_get_link -___mac_get_mount -___mac_get_pid -___mac_get_proc -___mac_getfsstat -___mac_mount -___mac_set_fd -___mac_set_file -___mac_set_link -___mac_set_proc -___mac_syscall -___microstackshot -___mkdir_extended -___mkfifo_extended -___mmap -___mprotect -___msgctl -___msgrcv_nocancel -___msgsnd_nocancel -___msgsys -___msync -___msync_nocancel -___munmap -___nexus_create -___nexus_deregister -___nexus_destroy -___nexus_get_opt -___nexus_open -___nexus_register -___nexus_set_opt -___old_semwait_signal -___open -___open_dprotected_np -___open_extended -___open_nocancel -___openat -___openat_nocancel -___os_nexus_ifattach -___os_nexus_ifdetach -___persona -___pipe -___poll_nocancel -___posix_spawn -___pread_nocancel -___proc_info -___process_policy -___pselect -___pselect_nocancel -___psynch_cvbroad -___psynch_cvclrprepost -___psynch_cvsignal -___psynch_cvwait -___psynch_mutexdrop -___psynch_mutexwait -___psynch_rw_downgrade -___psynch_rw_longrdlock -___psynch_rw_rdlock -___psynch_rw_unlock -___psynch_rw_unlock2 -___psynch_rw_upgrade -___psynch_rw_wrlock -___psynch_rw_yieldwrlock -___pthread_canceled -___pthread_chdir -___pthread_fchdir -___pthread_kill -___pthread_markcancel -___pthread_sigmask -___ptrace -___pwrite_nocancel -___read_nocancel -___readv_nocancel -___recvfrom -___recvfrom_nocancel -___recvmsg -___recvmsg_nocancel -___rename -___renameat -___renameatx_np -___rmdir -___sandbox_me -___sandbox_mm -___sandbox_ms -___sandbox_msp -___select -___select_nocancel -___sem_open -___sem_wait_nocancel -___semctl -___semsys -___semwait_signal -___semwait_signal_nocancel -___sendmsg -___sendmsg_nocancel -___sendto -___sendto_nocancel -___setattrlist -___setlogin -___setpriority -___setregid -___setreuid -___setrlimit -___setsgroups -___settid -___settid_with_pid -___settimeofday -___setwgroups -___sfi_ctl -___sfi_pidctl -___shared_region_check_np -___shared_region_map_and_slide_np -___shm_open -___shmctl -___shmsys -___sigaction -___sigaltstack -___sigreturn -___sigsuspend -___sigsuspend_nocancel -___sigwait -___socketpair -___stack_snapshot_with_config -___stat64_extended -___stat_extended -___syscall -___syscall_logger -___sysctl -___sysctlbyname -___telemetry -___terminate_with_payload -___thread_selfid -___thread_selfusage -___ulock_wait -___ulock_wake -___umask_extended -___unlink -___unlinkat -___vfork -___wait4 -___wait4_nocancel -___waitid_nocancel -___work_interval_ctl -___workq_kernreturn -___workq_open -___write_nocancel -___writev_nocancel -__cpu_capabilities -__cpu_has_altivec -__exit -__get_cpu_capabilities -__getprivatesystemidentifier -__host_page_size -__init_cpu_capabilities -__kernelrpc_host_create_mach_voucher -__kernelrpc_mach_port_allocate -__kernelrpc_mach_port_allocate_full -__kernelrpc_mach_port_allocate_name -__kernelrpc_mach_port_allocate_qos -__kernelrpc_mach_port_allocate_trap -__kernelrpc_mach_port_construct -__kernelrpc_mach_port_construct_trap -__kernelrpc_mach_port_deallocate -__kernelrpc_mach_port_deallocate_trap -__kernelrpc_mach_port_destroy -__kernelrpc_mach_port_destroy_trap -__kernelrpc_mach_port_destruct -__kernelrpc_mach_port_destruct_trap -__kernelrpc_mach_port_dnrequest_info -__kernelrpc_mach_port_extract_member -__kernelrpc_mach_port_extract_member_trap -__kernelrpc_mach_port_extract_right -__kernelrpc_mach_port_get_attributes -__kernelrpc_mach_port_get_context -__kernelrpc_mach_port_get_refs -__kernelrpc_mach_port_get_set_status -__kernelrpc_mach_port_get_srights -__kernelrpc_mach_port_guard -__kernelrpc_mach_port_guard_trap -__kernelrpc_mach_port_insert_member -__kernelrpc_mach_port_insert_member_trap -__kernelrpc_mach_port_insert_right -__kernelrpc_mach_port_insert_right_trap -__kernelrpc_mach_port_kernel_object -__kernelrpc_mach_port_kobject -__kernelrpc_mach_port_mod_refs -__kernelrpc_mach_port_mod_refs_trap -__kernelrpc_mach_port_move_member -__kernelrpc_mach_port_move_member_trap -__kernelrpc_mach_port_names -__kernelrpc_mach_port_peek -__kernelrpc_mach_port_rename -__kernelrpc_mach_port_request_notification -__kernelrpc_mach_port_set_attributes -__kernelrpc_mach_port_set_context -__kernelrpc_mach_port_set_mscount -__kernelrpc_mach_port_set_seqno -__kernelrpc_mach_port_space_basic_info -__kernelrpc_mach_port_space_info -__kernelrpc_mach_port_type -__kernelrpc_mach_port_unguard -__kernelrpc_mach_port_unguard_trap -__kernelrpc_mach_vm_allocate -__kernelrpc_mach_vm_allocate_trap -__kernelrpc_mach_vm_deallocate -__kernelrpc_mach_vm_deallocate_trap -__kernelrpc_mach_vm_map -__kernelrpc_mach_vm_map_trap -__kernelrpc_mach_vm_protect -__kernelrpc_mach_vm_protect_trap -__kernelrpc_mach_vm_purgable_control -__kernelrpc_mach_vm_purgable_control_trap -__kernelrpc_mach_vm_read -__kernelrpc_mach_vm_remap -__kernelrpc_mach_voucher_extract_attr_recipe -__kernelrpc_task_set_port_space -__kernelrpc_thread_policy -__kernelrpc_thread_policy_set -__kernelrpc_thread_set_policy -__kernelrpc_vm_map -__kernelrpc_vm_purgable_control -__kernelrpc_vm_read -__kernelrpc_vm_remap -__mach_errors -__mach_fork_child -__mach_snprintf -__mach_vsnprintf -__os_alloc_once_table -__register_gethostuuid_callback -__thread_set_tsd_base -_abort_with_payload -_abort_with_reason -_accept -_accept$NOCANCEL -_access -_accessx_np -_acct -_act_get_state -_act_set_state -_adjtime -_aio_cancel -_aio_error -_aio_fsync -_aio_read -_aio_return -_aio_suspend -_aio_suspend$NOCANCEL -_aio_write -_audit -_audit_session_join -_audit_session_port -_audit_session_self -_auditctl -_auditon -_bind -_bootstrap_port -_cerror -_cerror_nocancel -_change_fdguard_np -_chdir -_chflags -_chmod -_chown -_chroot -_clock_alarm -_clock_alarm_reply -_clock_get_attributes -_clock_get_time -_clock_set_attributes -_clock_set_time -_clock_sleep -_clock_sleep_trap -_clonefile -_clonefileat -_close -_close$NOCANCEL -_coalition_create -_coalition_info_resource_usage -_coalition_reap -_coalition_terminate -_connect -_connect$NOCANCEL -_connectx -_csops -_csops_audittoken -_csr_check -_csr_get_active_config -_denap_boost_assertion_token -_disconnectx -_dup -_dup2 -_errno -_etap_trace_thread -_exc_server -_exc_server_routine -_exception_raise -_exception_raise_state -_exception_raise_state_identity -_exchangedata -_execve -_faccessat -_fchdir -_fchflags -_fchmod -_fchmodat -_fchown -_fchownat -_fclonefileat -_fcntl -_fcntl$NOCANCEL -_fdatasync -_ffsctl -_fgetattrlist -_fgetxattr -_fhopen -_fileport_makefd -_fileport_makeport -_flistxattr -_flock -_fpathconf -_fremovexattr -_fs_snapshot_create -_fs_snapshot_delete -_fs_snapshot_list -_fs_snapshot_mount -_fs_snapshot_rename -_fs_snapshot_revert -_fsctl -_fsetattrlist -_fsetxattr -_fsgetpath -_fstat -_fstat$INODE64 -_fstat64 -_fstatat -_fstatat$INODE64 -_fstatat64 -_fstatfs -_fstatfs$INODE64 -_fstatfs64 -_fsync -_fsync$NOCANCEL -_ftruncate -_futimes -_getattrlist -_getattrlistat -_getattrlistbulk -_getaudit -_getaudit_addr -_getauid -_getdirentries -_getdirentriesattr -_getdtablesize -_getegid -_getentropy -_geteuid -_getfh -_getfsstat -_getfsstat$INODE64 -_getfsstat64 -_getgid -_getgroups -_gethostuuid -_getiopolicy_np -_getitimer -_getpeername -_getpgid -_getpgrp -_getpid -_getppid -_getpriority -_getrlimit -_getrusage -_getsgroups_np -_getsid -_getsockname -_getsockopt -_getuid -_getwgroups_np -_getxattr -_grab_pgo_data -_guarded_close_np -_guarded_kqueue_np -_guarded_open_dprotected_np -_guarded_open_np -_guarded_pwrite_np -_guarded_write_np -_guarded_writev_np -_host_check_multiuser_mode -_host_create_mach_voucher -_host_create_mach_voucher_trap -_host_default_memory_manager -_host_get_UNDServer -_host_get_atm_diagnostic_flag -_host_get_boot_info -_host_get_clock_control -_host_get_clock_service -_host_get_exception_ports -_host_get_io_master -_host_get_multiuser_config_flags -_host_get_special_port -_host_info -_host_kernel_version -_host_lockgroup_info -_host_page_size -_host_priv_statistics -_host_processor_info -_host_processor_set_priv -_host_processor_sets -_host_processors -_host_reboot -_host_register_mach_voucher_attr_manager -_host_register_well_known_mach_voucher_attr_manager -_host_request_notification -_host_security_create_task_token -_host_security_set_task_token -_host_self -_host_self_trap -_host_set_UNDServer -_host_set_atm_diagnostic_flag -_host_set_exception_ports -_host_set_multiuser_config_flags -_host_set_special_port -_host_statistics -_host_statistics64 -_host_swap_exception_ports -_host_virtual_physical_table_info -_i386_get_ldt -_i386_set_ldt -_important_boost_assertion_token -_internal_catch_exc_subsystem -_ioctl -_issetugid -_kas_info -_kdebug_is_enabled -_kdebug_signpost -_kdebug_signpost_end -_kdebug_signpost_start -_kdebug_trace -_kdebug_trace_string -_kdebug_typefilter -_kevent -_kevent64 -_kevent_qos -_kext_request -_kill -_kmod_control -_kmod_create -_kmod_destroy -_kmod_get_info -_kpersona_alloc -_kpersona_dealloc -_kpersona_find -_kpersona_get -_kpersona_info -_kpersona_pidinfo -_kqueue -_lchown -_ledger -_link -_linkat -_lio_listio -_listen -_listxattr -_lock_acquire -_lock_handoff -_lock_handoff_accept -_lock_make_stable -_lock_release -_lock_set_create -_lock_set_destroy -_lock_try -_lseek -_lstat -_lstat$INODE64 -_lstat64 -_mach_absolute_time -_mach_approximate_time -_mach_boottime_usec -_mach_continuous_approximate_time -_mach_continuous_time -_mach_error -_mach_error_full_diag -_mach_error_string -_mach_error_type -_mach_generate_activity_id -_mach_get_times -_mach_host_self -_mach_init -_mach_make_memory_entry -_mach_make_memory_entry_64 -_mach_memory_info -_mach_memory_object_memory_entry -_mach_memory_object_memory_entry_64 -_mach_msg -_mach_msg_destroy -_mach_msg_overwrite -_mach_msg_overwrite_trap -_mach_msg_receive -_mach_msg_send -_mach_msg_server -_mach_msg_server_importance -_mach_msg_server_once -_mach_msg_trap -_mach_notify_dead_name -_mach_notify_no_senders -_mach_notify_port_deleted -_mach_notify_port_destroyed -_mach_notify_send_once -_mach_port_allocate -_mach_port_allocate_full -_mach_port_allocate_name -_mach_port_allocate_qos -_mach_port_construct -_mach_port_deallocate -_mach_port_destroy -_mach_port_destruct -_mach_port_dnrequest_info -_mach_port_extract_member -_mach_port_extract_right -_mach_port_get_attributes -_mach_port_get_context -_mach_port_get_refs -_mach_port_get_set_status -_mach_port_get_srights -_mach_port_guard -_mach_port_insert_member -_mach_port_insert_right -_mach_port_kernel_object -_mach_port_kobject -_mach_port_mod_refs -_mach_port_move_member -_mach_port_names -_mach_port_peek -_mach_port_rename -_mach_port_request_notification -_mach_port_set_attributes -_mach_port_set_context -_mach_port_set_mscount -_mach_port_set_seqno -_mach_port_space_basic_info -_mach_port_space_info -_mach_port_type -_mach_port_unguard -_mach_ports_lookup -_mach_ports_register -_mach_reply_port -_mach_task_self -_mach_task_self_ -_mach_thread_self -_mach_timebase_info -_mach_timebase_info_trap -_mach_vm_allocate -_mach_vm_behavior_set -_mach_vm_copy -_mach_vm_deallocate -_mach_vm_inherit -_mach_vm_machine_attribute -_mach_vm_map -_mach_vm_msync -_mach_vm_page_info -_mach_vm_page_query -_mach_vm_protect -_mach_vm_purgable_control -_mach_vm_read -_mach_vm_read_list -_mach_vm_read_overwrite -_mach_vm_region -_mach_vm_region_recurse -_mach_vm_remap -_mach_vm_wire -_mach_vm_write -_mach_voucher_attr_command -_mach_voucher_deallocate -_mach_voucher_debug_info -_mach_voucher_extract_all_attr_recipes -_mach_voucher_extract_attr_content -_mach_voucher_extract_attr_recipe -_mach_voucher_extract_attr_recipe_trap -_mach_wait_until -_mach_zone_force_gc -_mach_zone_info -_macx_backing_store_recovery -_macx_backing_store_suspend -_macx_swapoff -_macx_swapon -_macx_triggers -_madvise -_memorystatus_control -_memorystatus_get_level -_mig_allocate -_mig_dealloc_reply_port -_mig_deallocate -_mig_get_reply_port -_mig_put_reply_port -_mig_reply_setup -_mig_strncpy -_mig_strncpy_zerofill -_mincore -_minherit -_mk_timer_arm -_mk_timer_cancel -_mk_timer_create -_mk_timer_destroy -_mkdir -_mkdirat -_mkfifo -_mknod -_mlock -_mlockall -_mmap -_modwatch -_mount -_mprotect -_mremap_encrypted -_msg_receive -_msg_rpc -_msg_send -_msgctl -_msgget -_msgrcv -_msgrcv$NOCANCEL -_msgsnd -_msgsnd$NOCANCEL -_msgsys -_msync -_msync$NOCANCEL -_munlock -_munlockall -_munmap -_necp_client_action -_necp_match_policy -_necp_open -_netagent_trigger -_netname_check_in -_netname_check_out -_netname_look_up -_netname_version -_nfsclnt -_nfssvc -_non_boost_assertion_token -_normal_boost_assertion_token -_open -_open$NOCANCEL -_open_dprotected_np -_openat -_openat$NOCANCEL -_openbyid_np -_os_channel_advance_slot -_os_channel_attr_clone -_os_channel_attr_create -_os_channel_attr_destroy -_os_channel_attr_get -_os_channel_attr_get_key -_os_channel_attr_set -_os_channel_attr_set_key -_os_channel_available_slot_count -_os_channel_create -_os_channel_create_extended -_os_channel_destroy -_os_channel_get_fd -_os_channel_get_next_slot -_os_channel_pending -_os_channel_read_attr -_os_channel_read_nexus_extension_info -_os_channel_ring_id -_os_channel_rx_ring -_os_channel_set_slot_properties -_os_channel_sync -_os_channel_tx_ring -_os_channel_write_attr -_os_nexus_attr_clone -_os_nexus_attr_create -_os_nexus_attr_destroy -_os_nexus_attr_get -_os_nexus_attr_set -_os_nexus_controller_alloc_provider_instance -_os_nexus_controller_bind_provider_instance -_os_nexus_controller_create -_os_nexus_controller_deregister_provider -_os_nexus_controller_destroy -_os_nexus_controller_free_provider_instance -_os_nexus_controller_get_fd -_os_nexus_controller_read_provider_attr -_os_nexus_controller_register_provider -_os_nexus_controller_unbind_provider_instance -_panic -_panic_init -_pathconf -_peeloff -_pid_for_task -_pid_hibernate -_pid_resume -_pid_shutdown_sockets -_pid_suspend -_pipe -_poll -_poll$NOCANCEL -_port_obj_init -_port_obj_table -_port_obj_table_size -_posix_madvise -_posix_spawn -_posix_spawn_file_actions_addclose -_posix_spawn_file_actions_adddup2 -_posix_spawn_file_actions_addinherit_np -_posix_spawn_file_actions_addopen -_posix_spawn_file_actions_destroy -_posix_spawn_file_actions_init -_posix_spawnattr_destroy -_posix_spawnattr_get_darwin_role_np -_posix_spawnattr_get_qos_clamp_np -_posix_spawnattr_getbinpref_np -_posix_spawnattr_getcpumonitor -_posix_spawnattr_getflags -_posix_spawnattr_getmacpolicyinfo_np -_posix_spawnattr_getpcontrol_np -_posix_spawnattr_getpgroup -_posix_spawnattr_getprocesstype_np -_posix_spawnattr_getsigdefault -_posix_spawnattr_getsigmask -_posix_spawnattr_init -_posix_spawnattr_set_darwin_role_np -_posix_spawnattr_set_importancewatch_port_np -_posix_spawnattr_set_persona_gid_np -_posix_spawnattr_set_persona_groups_np -_posix_spawnattr_set_persona_np -_posix_spawnattr_set_persona_uid_np -_posix_spawnattr_set_qos_clamp_np -_posix_spawnattr_setauditsessionport_np -_posix_spawnattr_setbinpref_np -_posix_spawnattr_setcoalition_np -_posix_spawnattr_setcpumonitor -_posix_spawnattr_setcpumonitor_default -_posix_spawnattr_setexceptionports_np -_posix_spawnattr_setflags -_posix_spawnattr_setjetsam_ext -_posix_spawnattr_setmacpolicyinfo_np -_posix_spawnattr_setpcontrol_np -_posix_spawnattr_setpgroup -_posix_spawnattr_setprocesstype_np -_posix_spawnattr_setsigdefault -_posix_spawnattr_setsigmask -_posix_spawnattr_setspecialport_np -_pread -_pread$NOCANCEL -_proc_clear_cpulimits -_proc_clear_delayidlesleep -_proc_clear_dirty -_proc_clear_vmpressure -_proc_denap_assertion_begin_with_msg -_proc_denap_assertion_complete -_proc_disable_apptype -_proc_disable_cpumon -_proc_disable_wakemon -_proc_donate_importance_boost -_proc_enable_apptype -_proc_get_cpumon_params -_proc_get_dirty -_proc_get_wakemon_params -_proc_importance_assertion_begin_with_msg -_proc_importance_assertion_complete -_proc_kmsgbuf -_proc_libversion -_proc_list_uptrs -_proc_listallpids -_proc_listchildpids -_proc_listcoalitions -_proc_listpgrppids -_proc_listpids -_proc_listpidspath -_proc_name -_proc_pid_rusage -_proc_pidfdinfo -_proc_pidfileportinfo -_proc_pidinfo -_proc_pidoriginatorinfo -_proc_pidpath -_proc_regionfilename -_proc_resume_cpumon -_proc_rlimit_control -_proc_set_cpumon_defaults -_proc_set_cpumon_params -_proc_set_cpumon_params_fatal -_proc_set_delayidlesleep -_proc_set_dirty -_proc_set_owner_vmpressure -_proc_set_wakemon_defaults -_proc_set_wakemon_params -_proc_setcpu_percentage -_proc_setpcontrol -_proc_setthread_cpupercent -_proc_suppress -_proc_terminate -_proc_trace_log -_proc_track_dirty -_proc_uuid_policy -_processor_assign -_processor_control -_processor_exit -_processor_get_assignment -_processor_info -_processor_set_create -_processor_set_default -_processor_set_destroy -_processor_set_info -_processor_set_max_priority -_processor_set_policy_control -_processor_set_policy_disable -_processor_set_policy_enable -_processor_set_stack_usage -_processor_set_statistics -_processor_set_tasks -_processor_set_threads -_processor_start -_pselect -_pselect$1050 -_pselect$DARWIN_EXTSN -_pselect$DARWIN_EXTSN$NOCANCEL -_pselect$NOCANCEL -_pthread_getugid_np -_pthread_setugid_np -_ptrace -_pwrite -_pwrite$NOCANCEL -_quota -_quotactl -_read -_read$NOCANCEL -_readlink -_readlinkat -_readv -_readv$NOCANCEL -_reboot -_recvfrom -_recvfrom$NOCANCEL -_recvmsg -_recvmsg$NOCANCEL -_recvmsg_x -_removexattr -_rename -_rename_ext -_renameat -_renameatx_np -_renamex_np -_revoke -_rmdir -_searchfs -_select -_select$1050 -_select$DARWIN_EXTSN -_select$DARWIN_EXTSN$NOCANCEL -_select$NOCANCEL -_sem_close -_sem_destroy -_sem_getvalue -_sem_init -_sem_open -_sem_post -_sem_trywait -_sem_unlink -_sem_wait -_sem_wait$NOCANCEL -_semaphore_create -_semaphore_destroy -_semaphore_signal -_semaphore_signal_all -_semaphore_signal_all_trap -_semaphore_signal_thread -_semaphore_signal_thread_trap -_semaphore_signal_trap -_semaphore_timedwait -_semaphore_timedwait_signal -_semaphore_timedwait_signal_trap -_semaphore_timedwait_trap -_semaphore_wait -_semaphore_wait_signal -_semaphore_wait_signal_trap -_semaphore_wait_trap -_semctl -_semget -_semop -_semsys -_sendfile -_sendmsg -_sendmsg$NOCANCEL -_sendmsg_x -_sendto -_sendto$NOCANCEL -_setattrlist -_setaudit -_setaudit_addr -_setauid -_setegid -_seteuid -_setgid -_setgroups -_setiopolicy_np -_setitimer -_setpgid -_setpriority -_setprivexec -_setquota -_setregid -_setreuid -_setrlimit -_setsgroups_np -_setsid -_setsockopt -_setuid -_setwgroups_np -_setxattr -_sfi_get_class_offtime -_sfi_process_get_flags -_sfi_process_set_flags -_sfi_set_class_offtime -_shm_open -_shm_unlink -_shmat -_shmctl -_shmdt -_shmget -_shmsys -_shutdown -_sigpending -_sigprocmask -_sigsuspend -_sigsuspend$NOCANCEL -_socket -_socket_delegate -_socketpair -_stackshot_capture_with_config -_stackshot_config_create -_stackshot_config_dealloc -_stackshot_config_dealloc_buffer -_stackshot_config_get_stackshot_buffer -_stackshot_config_get_stackshot_size -_stackshot_config_set_delta_timestamp -_stackshot_config_set_flags -_stackshot_config_set_pid -_stackshot_config_set_size_hint -_stat -_stat$INODE64 -_stat64 -_statfs -_statfs$INODE64 -_statfs64 -_swapon -_swtch -_swtch_pri -_symlink -_symlinkat -_sync -_syscall -_syscall_thread_switch -_system_get_sfi_window -_system_override -_system_set_sfi_window -_task_assign -_task_assign_default -_task_create -_task_for_pid -_task_generate_corpse -_task_get_assignment -_task_get_dyld_image_infos -_task_get_emulation_vector -_task_get_exception_ports -_task_get_mach_voucher -_task_get_special_port -_task_get_state -_task_info -_task_map_corpse_info -_task_map_corpse_info_64 -_task_name_for_pid -_task_policy -_task_policy_get -_task_policy_set -_task_purgable_info -_task_register_dyld_get_process_state -_task_register_dyld_image_infos -_task_register_dyld_set_dyld_state -_task_register_dyld_shared_cache_image_info -_task_resume -_task_resume2 -_task_sample -_task_self_ -_task_self_trap -_task_set_emulation -_task_set_emulation_vector -_task_set_exception_ports -_task_set_info -_task_set_mach_voucher -_task_set_phys_footprint_limit -_task_set_policy -_task_set_port_space -_task_set_ras_pc -_task_set_special_port -_task_set_state -_task_suspend -_task_suspend2 -_task_swap_exception_ports -_task_swap_mach_voucher -_task_terminate -_task_threads -_task_unregister_dyld_image_infos -_task_zone_info -_terminate_with_payload -_terminate_with_reason -_thread_abort -_thread_abort_safely -_thread_assign -_thread_assign_default -_thread_create -_thread_create_running -_thread_depress_abort -_thread_get_assignment -_thread_get_exception_ports -_thread_get_mach_voucher -_thread_get_register_pointer_values -_thread_get_special_port -_thread_get_state -_thread_info -_thread_policy -_thread_policy_get -_thread_policy_set -_thread_resume -_thread_sample -_thread_self_trap -_thread_set_exception_ports -_thread_set_mach_voucher -_thread_set_policy -_thread_set_special_port -_thread_set_state -_thread_suspend -_thread_swap_exception_ports -_thread_swap_mach_voucher -_thread_switch -_thread_terminate -_thread_wire -_truncate -_umask -_undelete -_unlink -_unlinkat -_unmount -_usrctl -_utimes -_vfork -_vfs_purge -_vm_allocate -_vm_allocate_cpm -_vm_behavior_set -_vm_copy -_vm_deallocate -_vm_inherit -_vm_kernel_page_mask -_vm_kernel_page_shift -_vm_kernel_page_size -_vm_machine_attribute -_vm_map -_vm_map_page_query -_vm_msync -_vm_page_mask -_vm_page_shift -_vm_page_size -_vm_pressure_monitor -_vm_protect -_vm_purgable_control -_vm_read -_vm_read_list -_vm_read_overwrite -_vm_region_64 -_vm_region_recurse_64 -_vm_remap -_vm_wire -_vm_write -_voucher_mach_msg_adopt -_voucher_mach_msg_clear -_voucher_mach_msg_revert -_voucher_mach_msg_set -_vprintf_stderr_func -_wait4 -_waitevent -_waitid -_waitid$NOCANCEL -_watchevent -_work_interval_create -_work_interval_destroy -_work_interval_notify -_work_interval_notify_simple -_write -_write$NOCANCEL -_writev -_writev$NOCANCEL diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libsystem/system_symbols b/pkgs/by-name/da/darwin/packages/apple-source-releases/Libsystem/system_symbols deleted file mode 100644 index 75a00ac..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libsystem/system_symbols +++ /dev/null @@ -1 +0,0 @@ -_mach_init_routine 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 deleted file mode 100644 index 5685d09..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/PowerManagement/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ appleDerivation, xcbuildHook, IOKit }: - -appleDerivation { - nativeBuildInputs = [ xcbuildHook ]; - buildInputs = [ IOKit ]; - 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 deleted file mode 100644 index f4fe65b..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/Security/boot.nix +++ /dev/null @@ -1,115 +0,0 @@ -{ appleDerivation', stdenv, darwin-stubs }: - -appleDerivation' stdenv { - __propagatedImpureHostDeps = [ - "/System/Library/Frameworks/Security.framework/Security" - "/System/Library/Frameworks/Security.framework/Resources" - "/System/Library/Frameworks/Security.framework/PlugIns" - "/System/Library/Frameworks/Security.framework/XPCServices" - "/System/Library/Frameworks/Security.framework/Versions" - ]; - - installPhase = '' - mkdir -p $out/Library/Frameworks/Security.framework - - ###### IMPURITIES - ln -s /System/Library/Frameworks/Security.framework/{Resources,Plugins,XPCServices} \ - $out/Library/Frameworks/Security.framework - - ###### STUBS - cp ${darwin-stubs}/System/Library/Frameworks/Security.framework/Versions/A/Security.tbd \ - $out/Library/Frameworks/Security.framework - - ###### HEADERS - - export dest=$out/Library/Frameworks/Security.framework/Headers - mkdir -p $dest - - cp libsecurity_asn1/lib/SecAsn1Coder.h $dest - cp libsecurity_asn1/lib/SecAsn1Templates.h $dest - cp libsecurity_asn1/lib/SecAsn1Types.h $dest - cp libsecurity_asn1/lib/oidsalg.h $dest - cp libsecurity_asn1/lib/oidsattr.h $dest - - cp libsecurity_authorization/lib/AuthSession.h $dest - cp libsecurity_authorization/lib/Authorization.h $dest - cp libsecurity_authorization/lib/AuthorizationDB.h $dest - cp libsecurity_authorization/lib/AuthorizationPlugin.h $dest - cp libsecurity_authorization/lib/AuthorizationTags.h $dest - - cp libsecurity_cms/lib/CMSDecoder.h $dest - cp libsecurity_cms/lib/CMSEncoder.h $dest - - cp libsecurity_codesigning/lib/CSCommon.h $dest - cp libsecurity_codesigning/lib/CodeSigning.h $dest - cp libsecurity_codesigning/lib/SecCode.h $dest - cp libsecurity_codesigning/lib/SecCodeHost.h $dest - cp libsecurity_codesigning/lib/SecRequirement.h $dest - cp libsecurity_codesigning/lib/SecStaticCode.h $dest - cp libsecurity_codesigning/lib/SecTask.h $dest - - cp libsecurity_cssm/lib/certextensions.h $dest - cp libsecurity_cssm/lib/cssm.h $dest - cp libsecurity_cssm/lib/cssmaci.h $dest - cp libsecurity_cssm/lib/cssmapi.h $dest - cp libsecurity_cssm/lib/cssmapple.h $dest - cp libsecurity_cssm/lib/cssmcli.h $dest - cp libsecurity_cssm/lib/cssmconfig.h $dest - cp libsecurity_cssm/lib/cssmcspi.h $dest - cp libsecurity_cssm/lib/cssmdli.h $dest - cp libsecurity_cssm/lib/cssmerr.h $dest - cp libsecurity_cssm/lib/cssmkrapi.h $dest - cp libsecurity_cssm/lib/cssmkrspi.h $dest - cp libsecurity_cssm/lib/cssmspi.h $dest - cp libsecurity_cssm/lib/cssmtpi.h $dest - cp libsecurity_cssm/lib/cssmtype.h $dest - cp libsecurity_cssm/lib/eisl.h $dest - cp libsecurity_cssm/lib/emmspi.h $dest - cp libsecurity_cssm/lib/emmtype.h $dest - cp libsecurity_cssm/lib/oidsbase.h $dest - cp libsecurity_cssm/lib/oidscert.h $dest - cp libsecurity_cssm/lib/oidscrl.h $dest - cp libsecurity_cssm/lib/x509defs.h $dest - - cp libsecurity_keychain/lib/SecACL.h $dest - cp libsecurity_keychain/lib/SecAccess.h $dest - cp libsecurity_keychain/lib/SecBase.h $dest - cp libsecurity_keychain/lib/SecCertificate.h $dest - cp libsecurity_keychain/lib/SecCertificatePriv.h $dest # Private - cp libsecurity_keychain/lib/SecCertificateOIDs.h $dest - cp libsecurity_keychain/lib/SecIdentity.h $dest - cp libsecurity_keychain/lib/SecIdentitySearch.h $dest - cp libsecurity_keychain/lib/SecImportExport.h $dest - cp libsecurity_keychain/lib/SecItem.h $dest - cp libsecurity_keychain/lib/SecKey.h $dest - cp libsecurity_keychain/lib/SecKeychain.h $dest - cp libsecurity_keychain/lib/SecKeychainItem.h $dest - cp libsecurity_keychain/lib/SecKeychainSearch.h $dest - cp libsecurity_keychain/lib/SecPolicy.h $dest - cp libsecurity_keychain/lib/SecPolicySearch.h $dest - cp libsecurity_keychain/lib/SecRandom.h $dest - cp libsecurity_keychain/lib/SecTrust.h $dest - cp libsecurity_keychain/lib/SecTrustSettings.h $dest - cp libsecurity_keychain/lib/SecTrustedApplication.h $dest - cp libsecurity_keychain/lib/Security.h $dest - - cp libsecurity_manifest/lib/SecureDownload.h $dest - - cp libsecurity_mds/lib/mds.h $dest - cp libsecurity_mds/lib/mds_schema.h $dest - - cp libsecurity_ssl/lib/CipherSuite.h $dest - cp libsecurity_ssl/lib/SecureTransport.h $dest - - cp libsecurity_transform/lib/SecCustomTransform.h $dest - cp libsecurity_transform/lib/SecDecodeTransform.h $dest - cp libsecurity_transform/lib/SecDigestTransform.h $dest - cp libsecurity_transform/lib/SecEncodeTransform.h $dest - cp libsecurity_transform/lib/SecEncryptTransform.h $dest - cp libsecurity_transform/lib/SecReadTransform.h $dest - cp libsecurity_transform/lib/SecSignVerifyTransform.h $dest - cp libsecurity_transform/lib/SecTransform.h $dest - cp libsecurity_transform/lib/SecTransformReadTransform.h $dest - - ''; -} 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 deleted file mode 100644 index 984910b..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/Security/default.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ appleDerivation, xcbuildHook, xpc, dtrace, xnu }: - -appleDerivation { - nativeBuildInputs = [ xcbuildHook dtrace ]; - # buildInputs = [ Foundation xpc darling ]; - buildInputs = [ xpc xnu ]; - - xcbuildFlags = [ "-target" "Security_frameworks_osx" ]; - - # env.NIX_CFLAGS_COMPILE = "-Wno-error -I${xnu}/include/libkern -DPRIVATE -I${xnu}/Library/Frameworks/System.framework/Headers"; - - preBuild = '' - dtrace -h -C -s OSX/libsecurity_utilities/lib/security_utilities.d -o OSX/libsecurity_utilities/lib/utilities_dtrace.h - - xcodebuild SYMROOT=$PWD/Products OBJROOT=$PWD/Intermediates -target copyHeadersToSystem - NIX_CFLAGS_COMPILE+=" -F./Products/Release" - ln -s $PWD/Products/Release/Security.bundle/Contents $PWD/Products/Release/Security.framework - ''; -} 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 deleted file mode 100644 index 7d1066a..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/adv_cmds/boot.nix +++ /dev/null @@ -1,101 +0,0 @@ -{ lib, stdenv, buildPackages, appleDerivation, fetchFromGitHub, bsdmake, perl, flex, bison -}: - -# this derivation sucks -# locale data was removed after adv_cmds-118, so our base is that because it's easier than -# replicating the bizarre bsdmake file structure -# -# sadly adv_cmds-118 builds a mklocale and colldef that generate files that our libc can no -# longer understand -# -# 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="; -}; - -in appleDerivation { - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ bsdmake perl bison flex ]; - buildInputs = [ flex ]; - - patchPhase = '' - substituteInPlace BSDmakefile \ - --replace chgrp true \ - --replace /Developer/Makefiles/bin/compress-man-pages.pl true \ - --replace "ps.tproj" "" --replace "gencat.tproj" "" --replace "md.tproj" "" \ - --replace "tabs.tproj" "" --replace "cap_mkdb.tproj" "" \ - --replace "!= tconf --test TARGET_OS_EMBEDDED" "= NO" - - substituteInPlace Makefile --replace perl true - - substituteInPlace colldef.tproj/scan.l \ - --replace 'static orderpass = 0;' 'static int orderpass = 0;' - - for subproject in colldef mklocale monetdef msgdef numericdef timedef; do - substituteInPlace usr-share-locale.tproj/$subproject/BSDmakefile \ - --replace /usr/share/locale "" \ - --replace '-o ''${BINOWN} -g ''${BINGRP}' "" \ - --replace "rsync -a" "cp -r" - done - ''; - - preBuild = '' - cp -r --no-preserve=all ${recentAdvCmds}/colldef . - - substituteInPlace colldef/scan.l \ - --replace 'static orderpass = 0;' 'static int orderpass = 0;' - - pushd colldef - mv locale/collate.h . - flex -t -8 -i scan.l > scan.c - yacc -d parse.y - clang *.c -o colldef -lfl - popd - mv colldef/colldef colldef.tproj/colldef - - cp -r --no-preserve=all ${recentAdvCmds}/mklocale . - pushd mklocale - flex -t -8 -i lex.l > lex.c - yacc -d yacc.y - clang *.c -o mklocale -lfl - popd - mv mklocale/mklocale mklocale.tproj/mklocale - ''; - - buildPhase = '' - runHook preBuild - - bsdmake -C usr-share-locale.tproj - - ${stdenv.cc.targetPrefix}clang ${recentAdvCmds}/ps/*.c -o ps - ''; - - installPhase = '' - bsdmake -C usr-share-locale.tproj install DESTDIR="$locale/share/locale" - - # need to get rid of runtime dependency on flex - # install -d 0755 $locale/bin - # install -m 0755 colldef.tproj/colldef $locale/bin - # install -m 0755 mklocale.tproj/mklocale $locale/bin - - install -d 0755 $ps/bin - install ps $ps/bin/ps - touch "$out" - ''; - - outputs = [ - "out" - "ps" - "locale" - ]; - setOutputFlags = false; - - meta = { - platforms = lib.platforms.darwin; - maintainers = with lib.maintainers; [ gridaphobe ]; - }; -} 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 deleted file mode 100644 index 3ac338d..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/adv_cmds/default.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ 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. - msgcat = stdenv.mkDerivation { - pname = "Libc-msgcat"; - version = lib.getVersion Libc; - - buildCommand = '' - mkdir -p "$out/include" - ln -s ${lib.getDev Libc}/include/msgcat.h "$out/include/" - ''; - }; -in -appleDerivation { - # We can't just run the root build, because https://github.com/facebook/xcbuild/issues/264 - - patchPhase = '' - substituteInPlace adv_cmds.xcodeproj/project.pbxproj \ - --replace '/usr/lib/libtermcap.dylib' 'libncurses.dylib' - substituteInPlace colldef/scan.l \ - --replace 'static orderpass = 0;' 'static int orderpass = 0;' - ''; - - # pkill requires special private headers that are unavailable in - # NixPkgs. These ones are needed: - # - xpc/xpxc.h - # - os/base_private.h - # - _simple.h - # We disable it here for now. TODO: build pkill inside adv_cmds - buildPhase = '' - targets=$(xcodebuild -list \ - | awk '/Targets:/{p=1;print;next} p&&/^\s*$/{p=0};p' \ - | tail -n +2 | sed 's/^[ \t]*//' \ - | grep -v -e Desktop -e Embedded -e mklocale -e pkill -e pgrep -e colldef) - - for i in $targets; do - xcodebuild SYMROOT=$PWD/Products OBJROOT=$PWD/Intermediates -target $i - done - ''; - - # temporary install phase until xcodebuild has "install" support - installPhase = '' - for f in Products/Release/*; do - if [ -f $f ]; then - install -D $f $out/bin/$(basename $f) - fi - done - - mkdir -p $out/System/Library/LaunchDaemons - install fingerd/finger.plist $out/System/Library/LaunchDaemons - - # from variant_links.sh - # ln -s $out/bin/pkill $out/bin/pgrep - # ln -s $out/share/man/man1/pkill.1 $out/share/man/man1/pgrep.1 - ''; - - nativeBuildInputs = [ xcbuild ]; - buildInputs = [ ncurses libutil msgcat ]; - - meta = { - platforms = lib.platforms.darwin; - maintainers = with lib.maintainers; [ matthewbauer ]; - }; -} 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 deleted file mode 100644 index 86f58b6..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/architecture/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ lib, appleDerivation', stdenvNoCC }: - -appleDerivation' stdenvNoCC { - dontBuild = true; - - postPatch = '' - substituteInPlace Makefile \ - --replace '/bin/mkdir' 'mkdir' \ - --replace '/usr/bin/install' 'install' - ''; - - installFlags = [ "EXPORT_DSTDIR=/include/architecture" ]; - - DSTROOT = "$(out)"; - - appleHeaders = '' - architecture/alignment.h - architecture/byte_order.h - architecture/i386/alignment.h - architecture/i386/asm_help.h - architecture/i386/byte_order.h - architecture/i386/cpu.h - architecture/i386/desc.h - architecture/i386/fpu.h - architecture/i386/frame.h - architecture/i386/io.h - architecture/i386/pio.h - architecture/i386/reg_help.h - architecture/i386/sel.h - architecture/i386/table.h - architecture/i386/tss.h - ''; - - meta = with lib; { - maintainers = with maintainers; [ copumpkin ]; - 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 deleted file mode 100644 index 7d011d2..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/basic_cmds/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib, appleDerivation, xcbuildHook }: - -appleDerivation { - nativeBuildInputs = [ xcbuildHook ]; - - # These PBXcp calls should be patched in xcbuild to allow them to - # automatically be prefixed. - patchPhase = '' - substituteInPlace basic_cmds.xcodeproj/project.pbxproj \ - --replace "dstPath = /usr/share/man/man1;" "dstPath = $out/share/man/man1;" \ - --replace "dstPath = /usr/share/man/man5;" "dstPath = $out/share/man/man5;" - ''; - - # temporary install phase until xcodebuild has "install" support - installPhase = '' - for f in Products/Release/*; do - if [ -f $f ]; then - install -D $f $out/bin/$(basename $f) - fi - done - - for n in 1; do - mkdir -p $out/share/man/man$n - install */*.$n $out/share/man/man$n - done - ''; - - meta = { - platforms = lib.platforms.darwin; - maintainers = with lib.maintainers; [ matthewbauer ]; - }; -} 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 deleted file mode 100644 index ff98ed8..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/bootstrap_cmds/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ 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 + "-"); - -in - -appleDerivation { - nativeBuildInputs = [ bison flex ]; - - buildPhase = '' - cd migcom.tproj - - # redundant file, don't know why apple not removing it. - rm handler.c - - yacc -d parser.y - flex --header-file=lexxer.yy.h -o lexxer.yy.c lexxer.l - - $CC -std=gnu99 -Os -dead_strip -DMIG_VERSION=\"$pname-$version\" -I. -o migcom *.c - ''; - - installPhase = '' - mkdir -p $out/bin $out/libexec $out/share/man/man1 - - chmod +x mig.sh - cp mig.sh $out/bin/mig - cp migcom $out/libexec - ln -s $out/libexec/migcom $out/bin/migcom - cp mig.1 $out/share/man/man1 - cp migcom.1 $out/share/man/man1 - - substituteInPlace $out/bin/mig \ - --replace 'arch=`/usr/bin/arch`' 'arch=${stdenv.targetPlatform.darwinArch}' \ - --replace '/usr/bin/' "" \ - --replace '/bin/rmdir' "rmdir" \ - --replace 'C=''${MIGCC}' "C=${targetTargetPrefix}cc" - ''; -} 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 deleted file mode 100644 index 214aa5d..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/bsdmake/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ lib, appleDerivation, makeWrapper }: - -appleDerivation { - nativeBuildInputs = [ makeWrapper ]; - - patchPhase = '' - substituteInPlace mk/bsd.prog.mk \ - --replace '-o ''${BINOWN} -g ''${BINGRP}' "" \ - --replace '-o ''${SCRIPTSOWN_''${.ALLSRC:T}}' "" \ - --replace '-g ''${SCRIPTSGRP_''${.ALLSRC:T}}' "" - substituteInPlace mk/bsd.lib.mk --replace '-o ''${LIBOWN} -g ''${LIBGRP}' "" - substituteInPlace mk/bsd.info.mk --replace '-o ''${INFOOWN} -g ''${INFOGRP}' "" - substituteInPlace mk/bsd.doc.mk --replace '-o ''${BINOWN} -g ''${BINGRP}' "" - substituteInPlace mk/bsd.man.mk --replace '-o ''${MANOWN} -g ''${MANGRP}' "" - substituteInPlace mk/bsd.files.mk \ - --replace '-o ''${''${group}OWN_''${.ALLSRC:T}}' "" \ - --replace '-g ''${''${group}GRP_''${.ALLSRC:T}}' "" \ - --replace '-o ''${''${group}OWN} -g ''${''${group}GRP}' "" - substituteInPlace mk/bsd.incs.mk \ - --replace '-o ''${''${group}OWN_''${.ALLSRC:T}}' "" \ - --replace '-g ''${''${group}GRP_''${.ALLSRC:T}}' "" \ - --replace '-o ''${''${group}OWN} -g ''${''${group}GRP}' "" - - # Workaround for https://github.com/NixOS/nixpkgs/issues/103172 - # Prevents bsdmake from failing on systems that already had default limits - # increased. - substituteInPlace main.c \ - --replace 'err(2, "setrlimit");' 'warn("setrlimit");' - ''; - - buildPhase = '' - objs=() - for file in $(find . -name '*.c'); do - obj="$(basename "$file" .c).o" - objs+=("$obj") - $CC -c "$file" -o "$obj" -DDEFSHELLNAME='"sh"' -D__FBSDID=__RCSID -mdynamic-no-pic -g - done - $CC "''${objs[@]}" -o bsdmake - ''; - - installPhase = '' - install -d 0644 $out/bin - install -m 0755 bsdmake $out/bin - install -d 0644 $out/share/mk - install -m 0755 mk/* $out/share/mk - ''; - - preFixup = '' - wrapProgram "$out/bin/bsdmake" --add-flags "-m $out/share/mk" - ''; - - meta = { - platforms = lib.platforms.darwin; - }; -} 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 deleted file mode 100644 index 998bc86..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/configd/default.nix +++ /dev/null @@ -1,184 +0,0 @@ -{ 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" { } '' - mkdir -p $out/include/CoreFoundation - - cp ${swift-corelibs-foundation}/Library/Frameworks/CoreFoundation.framework/PrivateHeaders/* \ - $out/include/CoreFoundation - ''; -in -appleDerivation' stdenv { - meta.broken = stdenv.cc.nativeLibc; - - nativeBuildInputs = lib.optionals (!headersOnly) [ bootstrap_cmds ]; - buildInputs = lib.optionals (!headersOnly) [ privateHeaders launchd ppp xpc IOKit eap8021x ]; - - propagatedBuildInputs = lib.optionals (!headersOnly) [ Security ]; - - env = lib.optionalAttrs (!headersOnly) { - NIX_CFLAGS_COMPILE = toString [ - "-ISystemConfiguration.framework/Headers" - "-I${xnu}/Library/Frameworks/System.framework/Versions/B/PrivateHeaders" - ]; - }; - - patchPhase = lib.optionalString (!headersOnly) '' - substituteInPlace SystemConfiguration.fproj/reachability/SCNetworkReachabilityServer_client.c \ - --replace '#include ' "" - - substituteInPlace SystemConfiguration.fproj/SCNetworkReachability.c \ - --replace ''$'#define\tHAVE_VPN_STATUS' "" - ''; - - dontBuild = headersOnly; - - buildPhase = '' - pushd SystemConfiguration.fproj >/dev/null - - mkdir -p SystemConfiguration.framework/Resources - cp ../get-mobility-info SystemConfiguration.framework/Resources - cp Info.plist SystemConfiguration.framework/Resources - cp -r English.lproj SystemConfiguration.framework/Resources - cp NetworkConfiguration.plist SystemConfiguration.framework/Resources - - mkdir -p SystemConfiguration.framework/Headers - mkdir -p SystemConfiguration.framework/PrivateHeaders - - # The standard public headers - cp SCSchemaDefinitions.h SystemConfiguration.framework/Headers - cp SystemConfiguration.h SystemConfiguration.framework/Headers - cp SCDynamicStore.h SystemConfiguration.framework/Headers - cp SCDynamicStoreCopySpecific.h SystemConfiguration.framework/Headers - cp SCPreferences.h SystemConfiguration.framework/Headers - cp CaptiveNetwork.h SystemConfiguration.framework/Headers - cp SCPreferencesPath.h SystemConfiguration.framework/Headers - cp SCDynamicStoreKey.h SystemConfiguration.framework/Headers - cp SCPreferencesSetSpecific.h SystemConfiguration.framework/Headers - cp SCNetworkConfiguration.h SystemConfiguration.framework/Headers - cp SCNetworkConnection.h SystemConfiguration.framework/Headers - cp SCNetworkReachability.h SystemConfiguration.framework/Headers - cp DHCPClientPreferences.h SystemConfiguration.framework/Headers - cp SCNetwork.h SystemConfiguration.framework/Headers - cp SCDynamicStoreCopyDHCPInfo.h SystemConfiguration.framework/Headers - - # TODO: Do we want to preserve private headers or just make them public? - cp SCDPlugin.h SystemConfiguration.framework/PrivateHeaders - cp SCPrivate.h SystemConfiguration.framework/PrivateHeaders - cp SCDynamicStorePrivate.h SystemConfiguration.framework/PrivateHeaders - cp SCDynamicStoreCopySpecificPrivate.h SystemConfiguration.framework/PrivateHeaders - cp SCDynamicStoreSetSpecificPrivate.h SystemConfiguration.framework/PrivateHeaders - cp SCValidation.h SystemConfiguration.framework/PrivateHeaders - cp SCPreferencesPrivate.h SystemConfiguration.framework/PrivateHeaders - cp DeviceOnHold.h SystemConfiguration.framework/PrivateHeaders - cp LinkConfiguration.h SystemConfiguration.framework/PrivateHeaders - cp SCPreferencesPathKey.h SystemConfiguration.framework/PrivateHeaders - cp SCPreferencesSetSpecificPrivate.h SystemConfiguration.framework/PrivateHeaders - cp SCNetworkConnectionPrivate.h SystemConfiguration.framework/PrivateHeaders - cp SCPreferencesGetSpecificPrivate.h SystemConfiguration.framework/PrivateHeaders - cp SCSchemaDefinitionsPrivate.h SystemConfiguration.framework/PrivateHeaders - cp SCNetworkConfigurationPrivate.h SystemConfiguration.framework/PrivateHeaders - cp SCPreferencesKeychainPrivate.h SystemConfiguration.framework/PrivateHeaders - cp SCNetworkSignature.h SystemConfiguration.framework/PrivateHeaders - cp SCNetworkSignaturePrivate.h SystemConfiguration.framework/PrivateHeaders - cp VPNPrivate.h SystemConfiguration.framework/PrivateHeaders - cp VPNConfiguration.h SystemConfiguration.framework/PrivateHeaders - cp VPNTunnelPrivate.h SystemConfiguration.framework/PrivateHeaders - cp VPNTunnel.h SystemConfiguration.framework/PrivateHeaders - - mkdir derived - - cat >derived/SystemConfiguration_vers.c </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 - ''; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/copyfile/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/copyfile/default.nix deleted file mode 100644 index 5e7f38e..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/copyfile/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ appleDerivation', stdenvNoCC }: - -appleDerivation' stdenvNoCC { - dontBuild = true; - installPhase = '' - mkdir -p $out/include/ - cp copyfile.h $out/include/ - ''; -} 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 deleted file mode 100644 index 1bd574f..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/default.nix +++ /dev/null @@ -1,331 +0,0 @@ -{ lib, stdenv, fetchurl, fetchFromGitHub, pkgs }: - -let - # This attrset can in theory be computed automatically, but for that to work nicely we need - # import-from-derivation to work properly. Currently it's rather ugly when we try to bootstrap - # a stdenv out of something like this. With some care we can probably get rid of this, but for - # now it's staying here. - versions = { - "macos-14.3" = { - 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"; - 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"; - }; - "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"; - - # 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"; - mDNSResponder = "625.41.2"; - - # IOKit contains a set of packages with different versions, so we don't have a general version - 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"; - }; - "osx-10.11.5" = { - 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"; - - 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"; - }; - "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"; - security_dotmac_tp = "55107.1"; - - IOStorageFamily = "172"; - }; - "osx-10.8.5" = { - configd = "453.19"; - Libc = "825.40.1"; - IOUSBFamily = "630.4.5"; - }; - "osx-10.8.4" = { - IOUSBFamily = "560.4.2"; - }; - "osx-10.7.4" = { - Libm = "2026"; - }; - "osx-10.6.2" = { - CarbonHeaders = "18.1"; - }; - "osx-10.5.8" = { - adv_cmds = "119"; - }; - "dev-tools-7.0" = { - bootstrap_cmds = "93"; - }; - "dev-tools-5.1" = { - bootstrap_cmds = "86"; - }; - "dev-tools-3.2.6" = { - bsdmake = "24"; - }; - }; - - 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; - - appleDerivation'' = stdenv: pname: version: sdkName: sha256: attrs: stdenv.mkDerivation (finalAttrs: { - inherit pname version; - - src = if attrs ? srcs then null else (fetchApple' pname version sha256); - - enableParallelBuilding = true; - - # 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) - - 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 {}); - }); - - 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="; - 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="; - # 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="; - # 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; - -in - -# darwin package set -self: - -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: - 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}"); - - 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=" {}; - -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. - - 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=" {}; - - # `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=" {}; -} 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 deleted file mode 100644 index 7eeafec..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/developer-tools-11.3.1.nix +++ /dev/null @@ -1,8 +0,0 @@ -# Generated using: ./generate-sdk-packages.sh developer-tools 11.3.1 - -{ 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" {}; -} 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 deleted file mode 100644 index 23a5ae0..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/developer_cmds/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ lib, appleDerivation, xcbuildHook, llvmPackages, makeWrapper }: - -appleDerivation { - nativeBuildInputs = [ xcbuildHook makeWrapper ]; - - patches = [ - # The following copied from - # https://github.com/Homebrew/homebrew-core/commit/712ed3e948868e17f96b7e59972b5f45d4faf688 - # is needed to build libvirt. - ./rpcgen-support-hyper-and-quad-types.patch - ]; - - postPatch = '' - makeWrapper ${llvmPackages.clang}/bin/clang $out/bin/clang-cpp --add-flags "--driver-mode=cpp" - substituteInPlace rpcgen/rpc_main.c \ - --replace "/usr/bin/cpp" "$out/bin/clang-cpp" - ''; - - # Workaround build failure on -fno-common toolchains: - # duplicate symbol '_btype_2' in:args.o pr_comment.o - env.NIX_CFLAGS_COMPILE = "-fcommon"; - - # temporary install phase until xcodebuild has "install" support - installPhase = '' - for f in Products/Release/*; do - if [ -f $f ]; then - install -D $f $out/bin/$(basename $f) - fi - done - - for n in 1; do - mkdir -p $out/share/man/man$n - install */*.$n $out/share/man/man$n - done - ''; - - meta = { - platforms = lib.platforms.darwin; - maintainers = with lib.maintainers; [ matthewbauer ]; - }; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/developer_cmds/rpcgen-support-hyper-and-quad-types.patch b/pkgs/by-name/da/darwin/packages/apple-source-releases/developer_cmds/rpcgen-support-hyper-and-quad-types.patch deleted file mode 100644 index 481cf0f..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/developer_cmds/rpcgen-support-hyper-and-quad-types.patch +++ /dev/null @@ -1,66 +0,0 @@ -diff --git a/rpcgen/rpc_parse.c b/rpcgen/rpc_parse.c -index 52edc9f..db0c1f1 100644 ---- a/rpcgen/rpc_parse.c -+++ b/rpcgen/rpc_parse.c -@@ -580,6 +580,10 @@ get_type(prefixp, typep, dkind) - *typep = "long"; - (void) peekscan(TOK_INT, &tok); - break; -+ case TOK_HYPER: -+ *typep = "int64_t"; -+ (void) peekscan(TOK_INT, &tok); -+ break; - case TOK_VOID: - if (dkind != DEF_UNION && dkind != DEF_PROGRAM) { - error("voids allowed only inside union and program definitions with one argument"); -@@ -592,6 +596,7 @@ get_type(prefixp, typep, dkind) - case TOK_INT: - case TOK_FLOAT: - case TOK_DOUBLE: -+ case TOK_QUAD: - case TOK_BOOL: - *typep = tok.str; - break; -@@ -622,6 +627,11 @@ unsigned_dec(typep) - *typep = "u_long"; - (void) peekscan(TOK_INT, &tok); - break; -+ case TOK_HYPER: -+ get_token(&tok); -+ *typep = "u_int64_t"; -+ (void) peekscan(TOK_INT, &tok); -+ break; - case TOK_INT: - get_token(&tok); - *typep = "u_int"; -diff --git a/rpcgen/rpc_scan.c b/rpcgen/rpc_scan.c -index a8df441..4130107 100644 ---- a/rpcgen/rpc_scan.c -+++ b/rpcgen/rpc_scan.c -@@ -419,8 +419,10 @@ static token symbols[] = { - {TOK_UNSIGNED, "unsigned"}, - {TOK_SHORT, "short"}, - {TOK_LONG, "long"}, -+ {TOK_HYPER, "hyper"}, - {TOK_FLOAT, "float"}, - {TOK_DOUBLE, "double"}, -+ {TOK_QUAD, "quadruple"}, - {TOK_STRING, "string"}, - {TOK_PROGRAM, "program"}, - {TOK_VERSION, "version"}, -diff --git a/rpcgen/rpc_scan.h b/rpcgen/rpc_scan.h -index bac2be4..e4c57c8 100644 ---- a/rpcgen/rpc_scan.h -+++ b/rpcgen/rpc_scan.h -@@ -66,9 +66,11 @@ enum tok_kind { - TOK_INT, - TOK_SHORT, - TOK_LONG, -+ TOK_HYPER, - TOK_UNSIGNED, - TOK_FLOAT, - TOK_DOUBLE, -+ TOK_QUAD, - TOK_OPAQUE, - TOK_CHAR, - TOK_STRING, \ No newline at end of file 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 deleted file mode 100644 index e4431c6..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/diskdev_cmds/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ 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 { - patches = [ - # Fixes a build failure with newer versions of clang that make implicit int an error. - ./fix-implicit-int.patch - ]; - - nativeBuildInputs = [ xcbuildHook ]; - buildInputs = [ libutil ]; - - env.NIX_CFLAGS_COMPILE = "-I."; - NIX_LDFLAGS = "-lutil"; - prePatch = '' - # ugly hacks for missing headers - # most are bsd related - probably should make this a drv - unpackFile ${Libc.src} - unpackFile ${xnu-src} - mkdir System sys machine ${arch} - cp xnu-*/bsd/sys/disklabel.h sys - cp xnu-*/bsd/machine/disklabel.h machine - cp xnu-*/bsd/${arch}/disklabel.h ${arch} - cp -r xnu-*/bsd/sys System - cp -r Libc-*/uuid System - substituteInPlace diskdev_cmds.xcodeproj/project.pbxproj \ - --replace 'DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";' "" - ''; - installPhase = '' - install -D Products/Release/libdisk.a $out/lib/libdisk.a - rm Products/Release/libdisk.a - for f in Products/Release/*; do - if [ -f $f ]; then - install -D $f $out/bin/$(basename $f) - fi - done - ''; - - meta = { - platforms = lib.platforms.darwin; - maintainers = with lib.maintainers; [ matthewbauer ]; - }; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/diskdev_cmds/fix-implicit-int.patch b/pkgs/by-name/da/darwin/packages/apple-source-releases/diskdev_cmds/fix-implicit-int.patch deleted file mode 100644 index df0fff9..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/diskdev_cmds/fix-implicit-int.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -ur a/diskdev_cmds.xcodeproj/project.pbxproj b/diskdev_cmds.xcodeproj/project.pbxproj ---- a/quota.tproj/quota.c 2021-10-06 01:13:40.000000000 -0400 -+++ b/quota.tproj/quota.c 2023-10-27 08:24:05.960965958 -0400 -@@ -115,6 +115,7 @@ - - int - main(argc, argv) -+ int argc; - char *argv[]; - { - int ngroups; 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 deleted file mode 100644 index afff789..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/dtrace/default.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ appleDerivation, xcbuildHook, CoreSymbolication, apple_sdk -, xnu, bison, flex, stdenv, fixDarwinDylibNames }: - -appleDerivation { - 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" ]; - - doCheck = false; - checkPhase = "xcodebuild -target dtrace_tests"; - - postPatch = '' - substituteInPlace dtrace.xcodeproj/project.pbxproj \ - --replace "/usr/sbin" "" - substituteInPlace libdtrace/dt_open.c \ - --replace /usr/bin/clang ${stdenv.cc.cc}/bin/clang \ - --replace /usr/bin/ld ${stdenv.cc.bintools.bintools}/bin/ld \ - --replace /usr/lib/dtrace/dt_cpp.h $out/include/dt_cpp.h \ - --replace /usr/lib/dtrace $out/lib/dtrace - substituteInPlace libproc/libproc.c \ - --replace "#include " "" - ''; - - # hack to handle xcbuild's broken lex handling - preBuild = '' - pushd libdtrace - yacc -d dt_grammar.y - flex -l -d dt_lex.l - popd - - substituteInPlace dtrace.xcodeproj/project.pbxproj \ - --replace '6EBC9800099BFBBF0001019C /* dt_grammar.y */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.yacc; name = dt_grammar.y; path = libdtrace/dt_grammar.y; sourceTree = ""; };' '6EBC9800099BFBBF0001019C /* y.tab.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = y.tab.c; path = libdtrace/y.tab.c; sourceTree = ""; };' \ - --replace '6EBC9808099BFBBF0001019C /* dt_lex.l */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.lex; name = dt_lex.l; path = libdtrace/dt_lex.l; sourceTree = ""; };' '6EBC9808099BFBBF0001019C /* lex.yy.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = lex.yy.c; path = libdtrace/lex.yy.c; sourceTree = ""; };' - ''; - - # xcbuild doesn't support install - installPhase = '' - mkdir -p $out - - cp -r Products/Release/usr/include $out/include - cp scripts/dt_cpp.h $out/include/dt_cpp.h - - mkdir $out/lib - cp Products/Release/*.dylib $out/lib - - mkdir $out/bin - cp Products/Release/dtrace $out/bin - - mkdir -p $out/lib/dtrace - - install_name_tool -change $PWD/Products/Release/libdtrace.dylib $out/lib/libdtrace.dylib $out/bin/dtrace - ''; -} 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 deleted file mode 100644 index e91d703..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/dyld/default.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ lib, appleDerivation', stdenvNoCC }: - -appleDerivation' stdenvNoCC { - installPhase = '' - mkdir -p $out/lib $out/include - ln -s /usr/lib/dyld $out/lib/dyld - cp -r include $out/ - ''; - - 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; - }; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/eap8021x/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/eap8021x/default.nix deleted file mode 100644 index f5c47f0..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/eap8021x/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ appleDerivation', stdenv }: - -appleDerivation' stdenv { - dontBuild = true; - installPhase = '' - mkdir -p $out/Library/Frameworks/EAP8021X.framework/Headers - - cp EAP8021X.fproj/EAPClientProperties.h $out/Library/Frameworks/EAP8021X.framework/Headers - ''; -} 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 deleted file mode 100644 index 8d44cc8..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/file_cmds/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ lib, appleDerivation, xcbuildHook, zlib, bzip2, xz, ncurses, libutil, Libinfo }: - -appleDerivation { - nativeBuildInputs = [ xcbuildHook ]; - buildInputs = [ zlib bzip2 xz ncurses libutil Libinfo ]; - - # some commands not working: - # mtree: _simple.h not found - # ipcs: sys/ipcs.h not found - # so remove their targets from the project - patchPhase = '' - substituteInPlace file_cmds.xcodeproj/project.pbxproj \ - --replace "FC8A8CAA14B655FD001B97AD /* PBXTargetDependency */," "" \ - --replace "FC8A8C9C14B655FD001B97AD /* PBXTargetDependency */," "" \ - --replace "productName = file_cmds;" "" \ - --replace '/usr/lib/libcurses.dylib' 'libncurses.dylib' - sed -i -re "s/name = ([a-zA-Z]+);/name = \1; productName = \1;/" file_cmds.xcodeproj/project.pbxproj - ''; - - # Workaround build failure on -fno-common toolchains: - # duplicate symbol '_chdname' in: ar_io.o tty_subs.o - env.NIX_CFLAGS_COMPILE = "-fcommon"; - - # temporary install phase until xcodebuild has "install" support - installPhase = '' - for f in Products/Release/*; do - if [ -f $f ]; then - install -D $f $out/bin/$(basename $f) - fi - done - - for n in 1; do - mkdir -p $out/share/man/man$n - install */*.$n $out/share/man/man$n - done - ''; - - meta = { - platforms = lib.platforms.darwin; - maintainers = with lib.maintainers; [ matthewbauer ]; - }; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/generate-sdk-packages.sh b/pkgs/by-name/da/darwin/packages/apple-source-releases/generate-sdk-packages.sh deleted file mode 100755 index 418a1d6..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/generate-sdk-packages.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell -i bash -p curl jq - -usage() { - cat <$outfile echo "# Generated using: ./$(basename "$0") $1 $2 - -{ applePackage' }: - -{" - -parse_line() { - readarray -t -d$'-' package < <(printf "%s" $2) - local pname=${package[0]} version=${package[1]} - - if [ -d $pname ]; then - sha256=$(nix-prefetch-url "https://github.com/apple-oss-distributions/$pname/archive/refs/tags/$pname-$version.tar.gz") - >>$outfile echo "$pname = applePackage' \"$pname\" \"$version\" \"$sdkName\" \"$sha256\" {};" - fi -} -readarray -s1 -c1 -C parse_line < <(curl -sSL "https://github.com/apple-oss-distributions/distribution-${1//-/_}/raw/${sdkName//./}/release.json" | jq -r ".projects[].tag") - ->>$outfile echo '}' 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 deleted file mode 100644 index 093e852..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/hfs/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ appleDerivation', stdenv, stdenvNoCC, lib, headersOnly ? true }: - -appleDerivation' (if headersOnly then stdenvNoCC else stdenv) { - installPhase = lib.optionalString headersOnly '' - mkdir -p $out/include/hfs - cp core/*.h $out/include/hfs - ''; - - appleHeaders = '' - hfs/BTreeScanner.h - hfs/BTreesInternal.h - hfs/BTreesPrivate.h - hfs/CatalogPrivate.h - hfs/FileMgrInternal.h - hfs/HFSUnicodeWrappers.h - hfs/UCStringCompareData.h - hfs/hfs.h - hfs/hfs_alloc_trace.h - hfs/hfs_attrlist.h - hfs/hfs_btreeio.h - hfs/hfs_catalog.h - hfs/hfs_cnode.h - hfs/hfs_cprotect.h - hfs/hfs_dbg.h - hfs/hfs_endian.h - hfs/hfs_extents.h - hfs/hfs_format.h - hfs/hfs_fsctl.h - hfs/hfs_hotfiles.h - hfs/hfs_iokit.h - hfs/hfs_journal.h - hfs/hfs_kdebug.h - hfs/hfs_key_roll.h - hfs/hfs_macos_defs.h - hfs/hfs_mount.h - hfs/hfs_quota.h - hfs/hfs_unistr.h - hfs/kext-config.h - hfs/rangelist.h - ''; - - meta = { - # Seems nobody wants its binary, so we didn't implement building. - broken = !headersOnly; - platforms = lib.platforms.darwin; - }; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/launchd/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/launchd/default.nix deleted file mode 100644 index 67e051d..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/launchd/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ appleDerivation', stdenvNoCC }: - -appleDerivation' stdenvNoCC { - # No clue why the same file has two different names. Ask Apple! - installPhase = '' - mkdir -p $out/include/ $out/include/servers - cp liblaunch/*.h $out/include - - cp liblaunch/bootstrap.h $out/include/servers - cp liblaunch/bootstrap.h $out/include/servers/bootstrap_defs.h - ''; - - appleHeaders = '' - bootstrap.h - bootstrap_priv.h - launch.h - launch_internal.h - launch_priv.h - reboot2.h - servers/bootstrap.h - servers/bootstrap_defs.h - vproc.h - vproc_internal.h - vproc_priv.h - ''; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/libauto/auto_dtrace.h b/pkgs/by-name/da/darwin/packages/apple-source-releases/libauto/auto_dtrace.h deleted file mode 100644 index bf367a3..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/libauto/auto_dtrace.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by dtrace(1M). - */ - -#ifndef _AUTO_DTRACE_H -#define _AUTO_DTRACE_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define GARBAGE_COLLECTION_STABILITY "___dtrace_stability$garbage_collection$v1$1_1_0_1_1_0_1_1_0_1_1_0_1_1_0" - -#define GARBAGE_COLLECTION_TYPEDEFS "___dtrace_typedefs$garbage_collection$v2$6175746f5f636f6c6c656374696f6e5f70686173655f74$6175746f5f636f6c6c656374696f6e5f747970655f74$6d616c6c6f635f7a6f6e655f74" - -#if !defined(DTRACE_PROBES_DISABLED) || !DTRACE_PROBES_DISABLED - -#define GARBAGE_COLLECTION_AUTO_BLOCK_LOST_THREAD_LOCALITY(arg0, arg1) \ -do { \ - __asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \ - __dtrace_probe$garbage_collection$auto_block_lost_thread_locality$v1$766f6964202a$75696e7436345f74(arg0, arg1); \ - __asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \ -} while (0) -#define GARBAGE_COLLECTION_AUTO_BLOCK_LOST_THREAD_LOCALITY_ENABLED() \ - ({ int _r = __dtrace_isenabled$garbage_collection$auto_block_lost_thread_locality$v1(); \ - __asm__ volatile(""); \ - _r; }) -#define GARBAGE_COLLECTION_AUTO_REFCOUNT_ONE_ALLOCATION(arg0) \ -do { \ - __asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \ - __dtrace_probe$garbage_collection$auto_refcount_one_allocation$v1$75696e7436345f74(arg0); \ - __asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \ -} while (0) -#define GARBAGE_COLLECTION_AUTO_REFCOUNT_ONE_ALLOCATION_ENABLED() \ - ({ int _r = __dtrace_isenabled$garbage_collection$auto_refcount_one_allocation$v1(); \ - __asm__ volatile(""); \ - _r; }) -#define GARBAGE_COLLECTION_COLLECTION_BEGIN(arg0, arg1) \ -do { \ - __asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \ - __dtrace_probe$garbage_collection$collection_begin$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f747970655f74(arg0, arg1); \ - __asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \ -} while (0) -#define GARBAGE_COLLECTION_COLLECTION_BEGIN_ENABLED() \ - ({ int _r = __dtrace_isenabled$garbage_collection$collection_begin$v1(); \ - __asm__ volatile(""); \ - _r; }) -#define GARBAGE_COLLECTION_COLLECTION_END(arg0, arg1, arg2, arg3, arg4) \ -do { \ - __asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \ - __dtrace_probe$garbage_collection$collection_end$v1$6d616c6c6f635f7a6f6e655f74202a$75696e7436345f74$75696e7436345f74$75696e7436345f74$75696e7436345f74(arg0, arg1, arg2, arg3, arg4); \ - __asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \ -} while (0) -#define GARBAGE_COLLECTION_COLLECTION_END_ENABLED() \ - ({ int _r = __dtrace_isenabled$garbage_collection$collection_end$v1(); \ - __asm__ volatile(""); \ - _r; }) -#define GARBAGE_COLLECTION_COLLECTION_PHASE_BEGIN(arg0, arg1) \ -do { \ - __asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \ - __dtrace_probe$garbage_collection$collection_phase_begin$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f70686173655f74(arg0, arg1); \ - __asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \ -} while (0) -#define GARBAGE_COLLECTION_COLLECTION_PHASE_BEGIN_ENABLED() \ - ({ int _r = __dtrace_isenabled$garbage_collection$collection_phase_begin$v1(); \ - __asm__ volatile(""); \ - _r; }) -#define GARBAGE_COLLECTION_COLLECTION_PHASE_END(arg0, arg1, arg2, arg3) \ -do { \ - __asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \ - __dtrace_probe$garbage_collection$collection_phase_end$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f70686173655f74$75696e7436345f74$75696e7436345f74(arg0, arg1, arg2, arg3); \ - __asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \ -} while (0) -#define GARBAGE_COLLECTION_COLLECTION_PHASE_END_ENABLED() \ - ({ int _r = __dtrace_isenabled$garbage_collection$collection_phase_end$v1(); \ - __asm__ volatile(""); \ - _r; }) - - -extern void __dtrace_probe$garbage_collection$auto_block_lost_thread_locality$v1$766f6964202a$75696e7436345f74(const void *, uint64_t); -extern int __dtrace_isenabled$garbage_collection$auto_block_lost_thread_locality$v1(void); -extern void __dtrace_probe$garbage_collection$auto_refcount_one_allocation$v1$75696e7436345f74(uint64_t); -extern int __dtrace_isenabled$garbage_collection$auto_refcount_one_allocation$v1(void); -extern void __dtrace_probe$garbage_collection$collection_begin$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f747970655f74(const malloc_zone_t *, auto_collection_type_t); -extern int __dtrace_isenabled$garbage_collection$collection_begin$v1(void); -extern void __dtrace_probe$garbage_collection$collection_end$v1$6d616c6c6f635f7a6f6e655f74202a$75696e7436345f74$75696e7436345f74$75696e7436345f74$75696e7436345f74(const malloc_zone_t *, uint64_t, uint64_t, uint64_t, uint64_t); -extern int __dtrace_isenabled$garbage_collection$collection_end$v1(void); -extern void __dtrace_probe$garbage_collection$collection_phase_begin$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f70686173655f74(const malloc_zone_t *, auto_collection_phase_t); -extern int __dtrace_isenabled$garbage_collection$collection_phase_begin$v1(void); -extern void __dtrace_probe$garbage_collection$collection_phase_end$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f70686173655f74$75696e7436345f74$75696e7436345f74(const malloc_zone_t *, auto_collection_phase_t, uint64_t, uint64_t); -extern int __dtrace_isenabled$garbage_collection$collection_phase_end$v1(void); - -#else - -#define GARBAGE_COLLECTION_AUTO_BLOCK_LOST_THREAD_LOCALITY(arg0, arg1) \ -do { \ - } while (0) -#define GARBAGE_COLLECTION_AUTO_BLOCK_LOST_THREAD_LOCALITY_ENABLED() (0) -#define GARBAGE_COLLECTION_AUTO_REFCOUNT_ONE_ALLOCATION(arg0) \ -do { \ - } while (0) -#define GARBAGE_COLLECTION_AUTO_REFCOUNT_ONE_ALLOCATION_ENABLED() (0) -#define GARBAGE_COLLECTION_COLLECTION_BEGIN(arg0, arg1) \ -do { \ - } while (0) -#define GARBAGE_COLLECTION_COLLECTION_BEGIN_ENABLED() (0) -#define GARBAGE_COLLECTION_COLLECTION_END(arg0, arg1, arg2, arg3, arg4) \ -do { \ - } while (0) -#define GARBAGE_COLLECTION_COLLECTION_END_ENABLED() (0) -#define GARBAGE_COLLECTION_COLLECTION_PHASE_BEGIN(arg0, arg1) \ -do { \ - } while (0) -#define GARBAGE_COLLECTION_COLLECTION_PHASE_BEGIN_ENABLED() (0) -#define GARBAGE_COLLECTION_COLLECTION_PHASE_END(arg0, arg1, arg2, arg3) \ -do { \ - } while (0) -#define GARBAGE_COLLECTION_COLLECTION_PHASE_END_ENABLED() (0) - -#endif /* !defined(DTRACE_PROBES_DISABLED) || !DTRACE_PROBES_DISABLED */ - - -#ifdef __cplusplus -} -#endif - -#endif /* _AUTO_DTRACE_H */ 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 deleted file mode 100644 index 8a551dc..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/libauto/default.nix +++ /dev/null @@ -1,86 +0,0 @@ -{ lib, stdenv, appleDerivation, libdispatch, Libsystem }: - -appleDerivation { - # these are included in the pure libc - buildInputs = lib.optionals stdenv.cc.nativeLibc [ libdispatch Libsystem ]; - - buildPhase = '' - cp ${./auto_dtrace.h} ./auto_dtrace.h - - substituteInPlace ThreadLocalCollector.h --replace SubZone.h Subzone.h - - substituteInPlace auto_zone.cpp \ - --replace "#include " ''$'#include \nstatic void msgtracer_log_with_keys(...) { };' - - substituteInPlace Definitions.h \ - --replace "#include " "" \ - --replace 'void * const, void * const' 'void * const, void *' - - # getspecific_direct is more efficient, but this should be equivalent... - substituteInPlace Zone.h \ - --replace "_pthread_getspecific_direct" "pthread_getspecific" \ - --replace "_pthread_has_direct_tsd()" "0" \ - --replace "__PTK_FRAMEWORK_GC_KEY0" "110" \ - --replace "__PTK_FRAMEWORK_GC_KEY1" "111" \ - --replace "__PTK_FRAMEWORK_GC_KEY2" "112" \ - --replace "__PTK_FRAMEWORK_GC_KEY3" "113" \ - --replace "__PTK_FRAMEWORK_GC_KEY4" "114" \ - --replace "__PTK_FRAMEWORK_GC_KEY5" "115" \ - --replace "__PTK_FRAMEWORK_GC_KEY6" "116" \ - --replace "__PTK_FRAMEWORK_GC_KEY7" "117" \ - --replace "__PTK_FRAMEWORK_GC_KEY8" "118" \ - --replace "__PTK_FRAMEWORK_GC_KEY9" "119" - - substituteInPlace auto_zone.cpp \ - --replace "__PTK_FRAMEWORK_GC_KEY9" "119" \ - --replace "__PTK_FRAMEWORK_GC_KEY0" "110" \ - - substituteInPlace Zone.cpp \ - --replace "_pthread_getspecific_direct" "pthread_getspecific" \ - --replace "__PTK_FRAMEWORK_GC_KEY9" "119" \ - --replace "__PTK_FRAMEWORK_GC_KEY0" "110" \ - --replace "__PTK_LIBDISPATCH_KEY0" "20" \ - --replace "struct auto_zone_cursor {" ''$'extern "C" int pthread_key_init_np(int, void (*)(void *));\nstruct auto_zone_cursor {' - - substituteInPlace auto_impl_utilities.c \ - --replace "# include " "void CRSetCrashLogMessage(void *msg) { };" - - c++ -I. -O3 -c -Wno-c++11-extensions auto_zone.cpp - cc -I. -O3 -Iauto_tester -c auto_impl_utilities.c - c++ -I. -O3 -c auto_weak.cpp - c++ -I. -O3 -c Admin.cpp - c++ -I. -O3 -c Bitmap.cpp - c++ -I. -O3 -c Definitions.cpp - c++ -I. -O3 -c Environment.cpp - c++ -I. -O3 -c Large.cpp - c++ -I. -O3 -c Region.cpp - c++ -I. -O3 -c Subzone.cpp - c++ -I. -O3 -c WriteBarrier.cpp - c++ -I. -O3 -c Zone.cpp - c++ -I. -O3 -c Thread.cpp - c++ -I. -O3 -c InUseEnumerator.cpp - c++ -I. -O3 -c auto_gdb_interface.cpp - c++ -I. -O3 -c PointerHash.cpp - c++ -I. -O3 -c ThreadLocalCollector.cpp - c++ -I. -O3 -c ZoneDump.cpp - c++ -I. -O3 -c ZoneCollectors.cpp - c++ -I. -O3 -c SubzonePartition.cpp - c++ -I. -O3 -c ZoneCollectionChecking.cpp - c++ -I. -O3 -c ZoneCompaction.cpp - c++ -I. -O3 -c BlockRef.cpp - - c++ -Wl,-no_dtrace_dof --stdlib=libc++ -dynamiclib -install_name $out/lib/libauto.dylib -o libauto.dylib *.o - ''; - - installPhase = '' - mkdir -p $out/lib $out/include - cp auto_zone.h auto_weak.h auto_tester/auto_tester.h auto_gdb_interface.h $out/include - cp libauto.dylib $out/lib - ''; - - meta = { - # libauto is only used by objc4/pure.nix , but objc4 is now using the impure approach, so we don't bother to fix this. - broken = true; - platforms = lib.platforms.darwin; - }; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/libclosure/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/libclosure/default.nix deleted file mode 100644 index 976658b..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/libclosure/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ appleDerivation', stdenvNoCC }: - -appleDerivation' stdenvNoCC { - installPhase = '' - mkdir -p $out/include - cp *.h $out/include/ - ''; - - appleHeaders = '' - Block.h - Block_private.h - ''; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/libdispatch/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/libdispatch/default.nix deleted file mode 100644 index 176cb86..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/libdispatch/default.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ appleDerivation', stdenvNoCC }: - -appleDerivation' stdenvNoCC { - dontConfigure = true; - dontBuild = true; - installPhase = '' - mkdir -p $out/include/dispatch $out/include/os - - # Move these headers so CF can find - mv private/voucher*.h $out/include/os - cp -r private/*.h $out/include/dispatch - - cp -r dispatch/*.h $out/include/dispatch - cp -r os/object*.h $out/include/os - - # gcc compatibility. Source: https://stackoverflow.com/a/28014302/3714556 - substituteInPlace $out/include/dispatch/object.h \ - --replace 'typedef void (^dispatch_block_t)(void);' \ - '#ifdef __clang__ - typedef void (^dispatch_block_t)(void); - #else - typedef void* dispatch_block_t; - #endif' - ''; - - appleHeaders = '' - dispatch/base.h - dispatch/benchmark.h - dispatch/block.h - dispatch/data.h - dispatch/data_private.h - dispatch/dispatch.h - dispatch/group.h - dispatch/introspection.h - dispatch/introspection_private.h - dispatch/io.h - dispatch/io_private.h - dispatch/layout_private.h - dispatch/mach_private.h - dispatch/object.h - dispatch/once.h - dispatch/private.h - dispatch/queue.h - dispatch/queue_private.h - dispatch/semaphore.h - dispatch/source.h - dispatch/source_private.h - dispatch/time.h - os/object.h - os/object_private.h - os/voucher_activity_private.h - os/voucher_private.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 deleted file mode 100644 index 6a3bddc..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/libiconv/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ stdenv, appleDerivation, lib -, enableStatic ? stdenv.hostPlatform.isStatic -, enableShared ? !stdenv.hostPlatform.isStatic -}: - -appleDerivation { - postUnpack = "sourceRoot=$sourceRoot/libiconv"; - - preConfigure = lib.optionalString stdenv.hostPlatform.isiOS '' - sed -i 's/darwin\*/ios\*/g' configure libcharset/configure - ''; - - configureFlags = [ - (lib.enableFeature enableStatic "static") - (lib.enableFeature enableShared "shared") - ]; - - postInstall = lib.optionalString enableShared '' - mv $out/lib/libiconv.dylib $out/lib/libiconv-nocharset.dylib - ${stdenv.cc.bintools.targetPrefix}install_name_tool -id $out/lib/libiconv-nocharset.dylib $out/lib/libiconv-nocharset.dylib - - # re-export one useless symbol; ld will reject a dylib that only reexports other dylibs - echo 'void dont_use_this(){}' | ${stdenv.cc.bintools.targetPrefix}clang -dynamiclib -x c - -current_version 2.4.0 \ - -compatibility_version 7.0.0 -current_version 7.0.0 -o $out/lib/libiconv.dylib \ - -Wl,-reexport_library -Wl,$out/lib/libiconv-nocharset.dylib \ - -Wl,-reexport_library -Wl,$out/lib/libcharset.dylib - ''; - - setupHooks = [ - ../../../../build-support/setup-hooks/role.bash - ../../../../development/libraries/libiconv/setup-hook.sh - ]; - - meta = { - mainProgram = "iconv"; - platforms = lib.platforms.darwin; - }; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/libmalloc/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/libmalloc/default.nix deleted file mode 100644 index 8b362a2..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/libmalloc/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ appleDerivation', stdenvNoCC }: - -# Unfortunately, buiding libmalloc is not feasible due to its use of non-public headers, but its -# headers are needed by Libsystem. -appleDerivation' stdenvNoCC { - installPhase = '' - mkdir -p $out/include - cp -R include/malloc $out/include/ - ''; -} 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 deleted file mode 100644 index e0b25d2..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/libplatform/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ lib, appleDerivation', stdenvNoCC }: - -appleDerivation' stdenvNoCC (finalAttrs: { - installPhase = '' - mkdir $out - cp -r include $out/include - 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 - '' - ); -}) 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 deleted file mode 100644 index 3d62270..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/libpthread/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ lib, appleDerivation', stdenvNoCC, libdispatch, xnu }: - -appleDerivation' stdenvNoCC { - propagatedBuildInputs = [ libdispatch xnu ]; - - installPhase = '' - mkdir -p $out/include/pthread/ - mkdir -p $out/include/sys/_types - cp pthread/*.h $out/include/pthread/ - - # This overwrites qos.h, and is probably not necessary, but I'll leave it here for now - # cp private/*.h $out/include/pthread/ - - cp -r sys $out/include - cp -r sys/_pthread/*.h $out/include/sys/_types/ - ''; - - appleHeaders = '' - pthread/introspection.h - pthread/pthread.h - pthread/pthread_impl.h - pthread/pthread_spis.h - pthread/qos.h - pthread/sched.h - pthread/spawn.h - sys/_pthread/_pthread_attr_t.h - sys/_pthread/_pthread_cond_t.h - sys/_pthread/_pthread_condattr_t.h - sys/_pthread/_pthread_key_t.h - sys/_pthread/_pthread_mutex_t.h - sys/_pthread/_pthread_mutexattr_t.h - sys/_pthread/_pthread_once_t.h - sys/_pthread/_pthread_rwlock_t.h - sys/_pthread/_pthread_rwlockattr_t.h - sys/_pthread/_pthread_t.h - sys/_pthread/_pthread_types.h - sys/_types/_pthread_attr_t.h - sys/_types/_pthread_cond_t.h - sys/_types/_pthread_condattr_t.h - sys/_types/_pthread_key_t.h - sys/_types/_pthread_mutex_t.h - sys/_types/_pthread_mutexattr_t.h - sys/_types/_pthread_once_t.h - sys/_types/_pthread_rwlock_t.h - sys/_types/_pthread_rwlockattr_t.h - sys/_types/_pthread_t.h - sys/_types/_pthread_types.h - sys/qos.h - sys/qos_private.h - ''; - - meta = { - platforms = lib.platforms.darwin; - }; -} 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 deleted file mode 100644 index 2a8a609..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/libresolv/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ lib, appleDerivation', stdenv, stdenvNoCC, Libinfo, configdHeaders, mDNSResponder -, headersOnly ? false -}: - -appleDerivation' (if headersOnly then stdenvNoCC else stdenv) { - buildInputs = lib.optionals (!headersOnly) [ Libinfo configdHeaders mDNSResponder ]; - - buildPhase = lib.optionalString (!headersOnly) '' - $CC -I. -c dns_util.c - $CC -I. -c dns.c - $CC -I. -c dns_async.c - $CC -I. -c base64.c - $CC -I. -c dst_api.c - $CC -I. -c dst_hmac_link.c - $CC -I. -c dst_support.c - $CC -I. -c ns_date.c - $CC -I. -c ns_name.c - $CC -I. -c ns_netint.c - $CC -I. -c ns_parse.c - $CC -I. -c ns_print.c - $CC -I. -c ns_samedomain.c - $CC -I. -c ns_sign.c - $CC -I. -c ns_ttl.c - $CC -I. -c ns_verify.c - $CC -I. -c res_comp.c - $CC -I. -c res_data.c - $CC -I. -c res_debug.c - $CC -I. -c res_findzonecut.c - $CC -I. -c res_init.c - $CC -I. -c res_mkquery.c - $CC -I. -c res_mkupdate.c - $CC -I. -c res_query.c - $CC -I. -c res_send.c - $CC -I. -c res_sendsigned.c - $CC -I. -c res_update.c - $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 - - 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 - ''; -} 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 deleted file mode 100644 index df3c565..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/libunwind/default.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ lib, appleDerivation }: - -appleDerivation { - dontBuild = true; - - # install headers only - installPhase = '' - mkdir -p $out/lib - cp -R include $out/include - ''; - - meta = with lib; { - 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 deleted file mode 100644 index 5cc8e0f..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/libutil/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ lib, stdenv, stdenvNoCC, appleDerivation', xcbuildHook - -# headersOnly is true when building for libSystem -, headersOnly ? false }: - -appleDerivation' (if headersOnly then stdenvNoCC else stdenv) { - nativeBuildInputs = lib.optional (!headersOnly) xcbuildHook; - - prePatch = '' - substituteInPlace tzlink.c \ - --replace '#include ' "" - ''; - - xcbuildFlags = [ "-target" "util" ]; - - 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 - - # 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 = '' - # libutil.h - # mntopts.h - # tzlink.h - # wipefs.h - # ''; - - meta = with lib; { - maintainers = with maintainers; [ copumpkin ]; - platforms = platforms.darwin; - license = licenses.apple-psl20; - }; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/mDNSResponder/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/mDNSResponder/default.nix deleted file mode 100644 index 0ba4cae..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/mDNSResponder/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ appleDerivation', stdenvNoCC }: - -appleDerivation' stdenvNoCC { - dontBuild = true; - installPhase = '' - mkdir -p $out/include - # TODO: Do this only for 765.50.9 once there is a way to apply version-specific - # logic in a source-release derivation. - substitute mDNSShared/dns_sd.h $out/include/dns_sd.h \ - --replace '#define _DNS_SD_LIBDISPATCH 0' '#define _DNS_SD_LIBDISPATCH 1' - ''; -} 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 deleted file mode 100644 index b4a7bbc..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/macos-11.0.1.nix +++ /dev/null @@ -1,46 +0,0 @@ -# Generated using: ./generate-sdk-packages.sh macos 11.0.1 - -{ 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" {}; -} 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 deleted file mode 100644 index 600571f..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/network_cmds/default.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ lib, appleDerivation, xcbuildHook, stdenv -, Librpcsvc, xnu, libpcap, developer_cmds }: - -appleDerivation { - nativeBuildInputs = [ xcbuildHook ]; - 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_] - env.NIX_CFLAGS_COMPILE = "-Wno-error=undef-prefix -I./unbound -I${xnu}/Library/Frameworks/System.framework/Headers/"; - - # "spray" requires some files that aren't compiling correctly in xcbuild. - # "rtadvd" seems to fail with some missing constants. - # "traceroute6" and "ping6" require ipsec which doesn't build correctly - # "unbound" doesn’t build against supported versions of OpenSSL or LibreSSL - patchPhase = '' - substituteInPlace network_cmds.xcodeproj/project.pbxproj \ - --replace "7294F0EA0EE8BAC80052EC88 /* PBXTargetDependency */," "" \ - --replace "7216D34D0EE89FEC00AE70E4 /* PBXTargetDependency */," "" \ - --replace "72CD1D9C0EE8C47C005F825D /* PBXTargetDependency */," "" \ - --replace "7216D2C20EE89ADF00AE70E4 /* PBXTargetDependency */," "" \ - --replace "71D958C51A9455A000C9B286 /* PBXTargetDependency */," "" - ''; - - # temporary install phase until xcodebuild has "install" support - installPhase = '' - for f in Products/Release/*; do - if [ -f $f ]; then - install -D $f $out/bin/$(basename $f) - fi - done - - for n in 1 5; do - mkdir -p $out/share/man/man$n - install */*.$n $out/share/man/man$n - done - - # TODO: patch files to load from $out/ instead of /usr/ - - # mkdir -p $out/etc/ - # install rtadvd.tproj/rtadvd.conf ip6addrctl.tproj/ip6addrctl.conf $out/etc/ - - # mkdir -p $out/local/OpenSourceVersions/ - # install network_cmds.plist $out/local/OpenSourceVersions/ - - # mkdir -p $out/System/Library/LaunchDaemons - # install kdumpd.tproj/com.apple.kdumpd.plist $out/System/Library/LaunchDaemons - ''; - - meta = { - platforms = lib.platforms.darwin; - maintainers = with lib.maintainers; [ matthewbauer ]; - }; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/objc4/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/objc4/default.nix deleted file mode 100644 index 315f0fb..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/objc4/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ appleDerivation, darwin-stubs }: - -appleDerivation { - # Not strictly necessary, since libSystem depends on it, but it's nice to be explicit so we - # can easily find out what's impure. - __propagatedImpureHostDeps = [ - "/usr/lib/libauto.dylib" - "/usr/lib/libc++abi.dylib" - "/usr/lib/libc++.1.dylib" - "/usr/lib/libSystem.B.dylib" - ]; - - installPhase = '' - mkdir -p $out/include/objc $out/lib - cp ${darwin-stubs}/usr/lib/libobjc.A.tbd $out/lib/libobjc.A.tbd - ln -s libobjc.A.tbd $out/lib/libobjc.tbd - cp runtime/OldClasses.subproj/List.h $out/include/objc/List.h - cp runtime/NSObjCRuntime.h $out/include/objc/NSObjCRuntime.h - cp runtime/NSObject.h $out/include/objc/NSObject.h - cp runtime/Object.h $out/include/objc/Object.h - cp runtime/Protocol.h $out/include/objc/Protocol.h - cp runtime/hashtable.h $out/include/objc/hashtable.h - cp runtime/hashtable2.h $out/include/objc/hashtable2.h - cp runtime/message.h $out/include/objc/message.h - cp runtime/objc-api.h $out/include/objc/objc-api.h - cp runtime/objc-auto.h $out/include/objc/objc-auto.h - cp runtime/objc-class.h $out/include/objc/objc-class.h - cp runtime/objc-exception.h $out/include/objc/objc-exception.h - cp runtime/objc-load.h $out/include/objc/objc-load.h - cp runtime/objc-runtime.h $out/include/objc/objc-runtime.h - cp runtime/objc-sync.h $out/include/objc/objc-sync.h - cp runtime/objc.h $out/include/objc/objc.h - cp runtime/runtime.h $out/include/objc/runtime.h - ''; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/objc4/objc-probes.h b/pkgs/by-name/da/darwin/packages/apple-source-releases/objc4/objc-probes.h deleted file mode 100644 index 4ad9ba9..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/objc4/objc-probes.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by dtrace(1M). - */ - -#ifndef _OBJC_PROBES_H -#define _OBJC_PROBES_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define OBJC_RUNTIME_STABILITY "___dtrace_stability$objc_runtime$v1$1_1_0_1_1_0_1_1_0_1_1_0_1_1_0" - -#define OBJC_RUNTIME_TYPEDEFS "___dtrace_typedefs$objc_runtime$v2" - -#if !defined(DTRACE_PROBES_DISABLED) || !DTRACE_PROBES_DISABLED - -#define OBJC_RUNTIME_OBJC_EXCEPTION_RETHROW() \ -do { \ - __asm__ volatile(".reference " OBJC_RUNTIME_TYPEDEFS); \ - __dtrace_probe$objc_runtime$objc_exception_rethrow$v1(); \ - __asm__ volatile(".reference " OBJC_RUNTIME_STABILITY); \ -} while (0) -#define OBJC_RUNTIME_OBJC_EXCEPTION_RETHROW_ENABLED() \ - ({ int _r = __dtrace_isenabled$objc_runtime$objc_exception_rethrow$v1(); \ - __asm__ volatile(""); \ - _r; }) -#define OBJC_RUNTIME_OBJC_EXCEPTION_THROW(arg0) \ -do { \ - __asm__ volatile(".reference " OBJC_RUNTIME_TYPEDEFS); \ - __dtrace_probe$objc_runtime$objc_exception_throw$v1$766f6964202a(arg0); \ - __asm__ volatile(".reference " OBJC_RUNTIME_STABILITY); \ -} while (0) -#define OBJC_RUNTIME_OBJC_EXCEPTION_THROW_ENABLED() \ - ({ int _r = __dtrace_isenabled$objc_runtime$objc_exception_throw$v1(); \ - __asm__ volatile(""); \ - _r; }) - - -extern void __dtrace_probe$objc_runtime$objc_exception_rethrow$v1(void); -extern int __dtrace_isenabled$objc_runtime$objc_exception_rethrow$v1(void); -extern void __dtrace_probe$objc_runtime$objc_exception_throw$v1$766f6964202a(const void *); -extern int __dtrace_isenabled$objc_runtime$objc_exception_throw$v1(void); - -#else - -#define OBJC_RUNTIME_OBJC_EXCEPTION_RETHROW() \ -do { \ - } while (0) -#define OBJC_RUNTIME_OBJC_EXCEPTION_RETHROW_ENABLED() (0) -#define OBJC_RUNTIME_OBJC_EXCEPTION_THROW(arg0) \ -do { \ - } while (0) -#define OBJC_RUNTIME_OBJC_EXCEPTION_THROW_ENABLED() (0) - -#endif /* !defined(DTRACE_PROBES_DISABLED) || !DTRACE_PROBES_DISABLED */ - - -#ifdef __cplusplus -} -#endif - -#endif /* _OBJC_PROBES_H */ 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 deleted file mode 100644 index 6a0c819..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/objc4/pure.nix +++ /dev/null @@ -1,118 +0,0 @@ -{ stdenv, fetchapplesource, libauto, launchd, libc_old, libunwind }: - -stdenv.mkDerivation rec { - version = "551.1"; - pname = "objc4"; - - src = fetchapplesource { - inherit version; - name = "objc4"; - sha256 = "1jrdb6yyb5jwwj27c1r0nr2y2ihqjln8ynj61mpkvp144c1cm5bg"; - }; - - patches = [ ./spinlocks.patch ]; - - buildInputs = [ libauto launchd libc_old libunwind ]; - - buildPhase = '' - cp ${./objc-probes.h} runtime/objc-probes.h - - mkdir -p build/include/objc - - cp runtime/hashtable.h build/include/objc/hashtable.h - cp runtime/OldClasses.subproj/List.h build/include/objc/List.h - cp runtime/hashtable2.h build/include/objc/hashtable2.h - cp runtime/message.h build/include/objc/message.h - cp runtime/objc-api.h build/include/objc/objc-api.h - cp runtime/objc-auto.h build/include/objc/objc-auto.h - cp runtime/objc-class.h build/include/objc/objc-class.h - cp runtime/objc-exception.h build/include/objc/objc-exception.h - cp runtime/objc-load.h build/include/objc/objc-load.h - cp runtime/objc-sync.h build/include/objc/objc-sync.h - cp runtime/objc.h build/include/objc/objc.h - cp runtime/objc-runtime.h build/include/objc/objc-runtime.h - cp runtime/Object.h build/include/objc/Object.h - cp runtime/Protocol.h build/include/objc/Protocol.h - cp runtime/runtime.h build/include/objc/runtime.h - cp runtime/NSObject.h build/include/objc/NSObject.h - cp runtime/NSObjCRuntime.h build/include/objc/NSObjCRuntime.h - - # These would normally be in local/include but we don't do local, so they're - # going in with the others - cp runtime/maptable.h build/include/objc/maptable.h - cp runtime/objc-abi.h build/include/objc/objc-abi.h - cp runtime/objc-auto-dump.h build/include/objc/objc-auto-dump.h - cp runtime/objc-gdb.h build/include/objc/objc-gdb.h - cp runtime/objc-internal.h build/include/objc/objc-internal.h - - cc -o markgc markgc.c - - FLAGS="-Wno-deprecated-register -Wno-unknown-pragmas -Wno-deprecated-objc-isa-usage -Wno-invalid-offsetof -Wno-inline-new-delete -Wno-cast-of-sel-type -Iruntime -Ibuild/include -Iruntime/Accessors.subproj -D_LIBCPP_VISIBLE= -DOS_OBJECT_USE_OBJC=0 -DNDEBUG=1" - - cc -std=gnu++11 $FLAGS -c runtime/hashtable2.mm - cc -std=gnu++11 $FLAGS -c runtime/maptable.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-auto.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-cache.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-class-old.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-class.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-errors.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-exception.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-file.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-initialize.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-layout.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-load.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-loadmethod.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-lockdebug.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-runtime-new.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-runtime-old.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-runtime.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-sel-set.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-sel.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-sync.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-typeencoding.mm - cc -std=gnu++11 $FLAGS -c runtime/Object.mm - cc -std=gnu++11 $FLAGS -c runtime/Protocol.mm - - cc -std=gnu++11 $FLAGS -c runtime/objc-references.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-os.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-auto-dump.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-file-old.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-block-trampolines.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-externalref.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-weak.mm - cc -std=gnu++11 $FLAGS -c runtime/NSObject.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-opt.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-cache-old.mm - cc -std=gnu++11 $FLAGS -c runtime/objc-sel-old.mm - - cc -std=gnu++11 $FLAGS -c runtime/Accessors.subproj/objc-accessors.mm - - cc $FLAGS -c runtime/objc-sel-table.s - - cc $FLAGS -c runtime/OldClasses.subproj/List.m - cc $FLAGS -c runtime/Messengers.subproj/objc-msg-arm.s - cc $FLAGS -c runtime/Messengers.subproj/objc-msg-i386.s - cc $FLAGS -c runtime/Messengers.subproj/objc-msg-x86_64.s - cc $FLAGS -c runtime/Messengers.subproj/objc-msg-simulator-i386.s - - cc $FLAGS -c runtime/a1a2-blocktramps-i386.s - cc $FLAGS -c runtime/a2a3-blocktramps-i386.s - - cc $FLAGS -c runtime/a1a2-blocktramps-x86_64.s - cc $FLAGS -c runtime/a2a3-blocktramps-x86_64.s - - cc $FLAGS -c runtime/a1a2-blocktramps-arm.s - cc $FLAGS -c runtime/a2a3-blocktramps-arm.s - - c++ -Wl,-no_dtrace_dof --stdlib=libc++ -dynamiclib -lauto -install_name $out/lib/libobjc.dylib -o libobjc.dylib *.o - - ./markgc -p libobjc.dylib - ''; - - installPhase = '' - mkdir -p $out/include $out/lib - - mv build/include/objc $out/include - mv libobjc.dylib $out/lib - ''; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/objc4/spinlocks.patch b/pkgs/by-name/da/darwin/packages/apple-source-releases/objc4/spinlocks.patch deleted file mode 100644 index 50c6a98..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/objc4/spinlocks.patch +++ /dev/null @@ -1,107 +0,0 @@ ---- objc4-551.1/runtime/objc-os.h 2013-06-10 21:16:15.000000000 -0400 -+++ ../objc4-551.1/runtime/objc-os.h 2015-01-19 01:01:36.000000000 -0500 -@@ -77,27 +77,72 @@ - # include - # include - # include --# include - # include - # include --# include - # include "objc-probes.h" // generated dtrace probe definitions. - -+#define __PTK_FRAMEWORK_OBJC_KEY5 45 -+#define __PTK_FRAMEWORK_OBJC_KEY6 46 -+#define __PTK_FRAMEWORK_OBJC_KEY7 47 -+#define __PTK_FRAMEWORK_OBJC_KEY8 48 -+#define __PTK_FRAMEWORK_OBJC_KEY9 49 -+ -+extern "C" int pthread_key_init_np(int, void (*)(void *)); -+ - // Some libc functions call objc_msgSend() - // so we can't use them without deadlocks. - void syslog(int, const char *, ...) UNAVAILABLE_ATTRIBUTE; - void vsyslog(int, const char *, va_list) UNAVAILABLE_ATTRIBUTE; - -+#if defined(__i386__) || defined(__x86_64__) -+ -+// Inlined spinlock. -+// Not for arm on iOS because it hurts uniprocessor performance. -+ -+#define ARR_SPINLOCK_INIT 0 -+// XXX -- Careful: OSSpinLock isn't volatile, but should be -+typedef volatile int ARRSpinLock; -+__attribute__((always_inline)) -+static inline void ARRSpinLockLock(ARRSpinLock *l) -+{ -+ unsigned y; -+again: -+ if (__builtin_expect(__sync_lock_test_and_set(l, 1), 0) == 0) { -+ return; -+ } -+ for (y = 1000; y; y--) { -+#if defined(__i386__) || defined(__x86_64__) -+ asm("pause"); -+#endif -+ if (*l == 0) goto again; -+ } -+ thread_switch(THREAD_NULL, SWITCH_OPTION_DEPRESS, 1); -+ goto again; -+} -+__attribute__((always_inline)) -+static inline void ARRSpinLockUnlock(ARRSpinLock *l) -+{ -+ __sync_lock_release(l); -+} -+__attribute__((always_inline)) -+static inline int ARRSpinLockTry(ARRSpinLock *l) -+{ -+ return __sync_bool_compare_and_swap(l, 0, 1); -+} -+ -+#define spinlock_t ARRSpinLock -+#define spinlock_trylock(l) ARRSpinLockTry(l) -+#define spinlock_lock(l) ARRSpinLockLock(l) -+#define spinlock_unlock(l) ARRSpinLockUnlock(l) -+#define SPINLOCK_INITIALIZER ARR_SPINLOCK_INIT - --#define spinlock_t os_lock_handoff_s --#define spinlock_trylock(l) os_lock_trylock(l) --#define spinlock_lock(l) os_lock_lock(l) --#define spinlock_unlock(l) os_lock_unlock(l) --#define SPINLOCK_INITIALIZER OS_LOCK_HANDOFF_INIT -+#endif - - - #if !TARGET_OS_IPHONE --# include -+#define CRSetCrashLogMessage(msg) -+#define CRGetCrashLogMessage() 0 -+#define CRSetCrashLogMessage2(msg) - #else - // CrashReporterClient not yet available on iOS - __BEGIN_DECLS -@@ -594,21 +639,13 @@ - { - assert(is_valid_direct_key(k)); - -- if (_pthread_has_direct_tsd()) { -- return _pthread_getspecific_direct(k); -- } else { -- return pthread_getspecific(k); -- } -+ return pthread_getspecific(k); - } - static inline void tls_set_direct(tls_key_t k, void *value) - { - assert(is_valid_direct_key(k)); - -- if (_pthread_has_direct_tsd()) { -- _pthread_setspecific_direct(k, value); -- } else { -- pthread_setspecific(k, value); -- } -+ pthread_setspecific(k, value); - } - - // not arm diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/ppp/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/ppp/default.nix deleted file mode 100644 index 4ced564..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/ppp/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ appleDerivation', stdenv }: - -appleDerivation' stdenv { - dontBuild = true; - installPhase = '' - mkdir -p $out/include/ppp - - cp Controller/ppp_msg.h $out/include/ppp - cp Controller/pppcontroller_types.h $out/include/ppp - cp Controller/pppcontroller_types.h $out/include - cp Controller/pppcontroller.defs $out/include/ppp - cp Controller/pppcontroller_mach_defines.h $out/include - cp Controller/PPPControllerPriv.h $out/include/ppp - ''; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/removefile/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/removefile/default.nix deleted file mode 100644 index 611f445..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/removefile/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ appleDerivation', stdenvNoCC }: - -appleDerivation' stdenvNoCC { - installPhase = '' - mkdir -p $out/include/ - cp removefile.h checkint.h $out/include/ - ''; - - appleHeaders = '' - checkint.h - removefile.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 deleted file mode 100644 index a835228..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/shell_cmds/default.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ lib, appleDerivation, xcbuildHook, launchd }: - -appleDerivation { - nativeBuildInputs = [ xcbuildHook launchd ]; - - patchPhase = '' - # NOTE: these hashes must be recalculated for each version change - - # disables: - # - su ('security/pam_appl.h' file not found) - # - find (Undefined symbol '_get_date') - # - w (Undefined symbol '_res_9_init') - # - expr - substituteInPlace shell_cmds.xcodeproj/project.pbxproj \ - --replace "FCBA168714A146D000AA698B /* PBXTargetDependency */," "" \ - --replace "FCBA165914A146D000AA698B /* PBXTargetDependency */," "" \ - --replace "FCBA169514A146D000AA698B /* PBXTargetDependency */," "" \ - --replace "FCBA165514A146D000AA698B /* PBXTargetDependency */," "" - - # disable w, test install - # get rid of permission stuff - substituteInPlace xcodescripts/install-files.sh \ - --replace 'ln -f "$BINDIR/w" "$BINDIR/uptime"' "" \ - --replace 'ln -f "$DSTROOT/bin/test" "$DSTROOT/bin/["' "" \ - --replace "-o root -g wheel -m 0755" "" \ - --replace "-o root -g wheel -m 0644" "" - ''; - - # temporary install phase until xcodebuild has "install" support - installPhase = '' - for f in Products/Release/*; do - if [ -f $f ]; then - install -D $f $out/usr/bin/$(basename $f) - fi - done - - export DSTROOT=$out - export SRCROOT=$PWD - . xcodescripts/install-files.sh - - mv $out/usr/* $out - mv $out/private/etc $out - rmdir $out/usr $out/private - ''; - - meta = { - platforms = lib.platforms.darwin; - maintainers = with lib.maintainers; [ matthewbauer ]; - }; -} diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/system_cmds/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/system_cmds/default.nix deleted file mode 100644 index 7bd3cae..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/system_cmds/default.nix +++ /dev/null @@ -1,161 +0,0 @@ -{ - lib, - stdenv, - stdenvNoCC, - appleDerivation, - fetchFromGitHub, - runCommand, - gawk, - meson, - ninja, - pkg-config, - libdispatch, - libmalloc, - libplatform, - Librpcsvc, - libutil, - ncurses, - openbsm, - pam, - xnu, - CoreFoundation, - CoreSymbolication, - DirectoryService, - IOKit, - Kernel, - Libc, - OpenDirectory, - WebKit, -}: - -let - OpenDirectoryPrivate = stdenvNoCC.mkDerivation (finalAttrs: { - name = "apple-private-framework-OpenDirectory"; - version = "146"; - - src = fetchFromGitHub { - owner = "apple-oss-distributions"; - repo = "OpenDirectory"; - rev = "OpenDirectory-${finalAttrs.version}"; - hash = "sha256-6fSl8PasCZSBfe0ftaePcBuSEO3syb6kK+mfDI6iR7A="; - }; - - dontConfigure = true; - dontBuild = true; - - installPhase = '' - runHook preInstall - - mkdir -p "$out/include/CFOpenDirectory" "$out/include/OpenDirectory" - install -t "$out/include/CFOpenDirectory" \ - Core/CFOpenDirectoryPriv.h \ - Core/CFODTrigger.h - touch "$out/include/CFOpenDirectory/CFOpenDirectoryConstantsPriv.h" - install -t "$out/include/OpenDirectory" \ - Framework/OpenDirectoryPriv.h \ - Framework/NSOpenDirectoryPriv.h - - runHook postInstall - ''; - }); - - libmallocPrivate = stdenvNoCC.mkDerivation { - pname = "libmalloc-private"; - version = lib.getVersion libmalloc; - - inherit (libmalloc) src; - - dontConfigure = true; - dontBuild = true; - - installPhase = '' - runHook preInstall - - mkdir -p "$out/include" - cp -r private/*.h "$out/include" - - runHook postInstall - ''; - }; - - # Private xnu headers that are part of the source tree but not in the xnu derivation. - xnuPrivate = stdenvNoCC.mkDerivation { - pname = "xnu-private"; - version = lib.getVersion xnu; - - inherit (xnu) src; - - dontConfigure = true; - dontBuild = true; - - installPhase = '' - runHook preInstall - - mkdir -p "$out/include" - cp libsyscall/wrappers/spawn/spawn_private.h "$out/include" - - runHook postInstall - ''; - }; -in -appleDerivation (finalAttrs: { - nativeBuildInputs = [ - gawk - meson - ninja - pkg-config - ]; - - buildInputs = [ - libdispatch - libplatform - Librpcsvc - libutil - ncurses - openbsm - pam - xnu - CoreFoundation - CoreSymbolication - DirectoryService - IOKit - Kernel - OpenDirectory - ]; - - postPatch = '' - # Replace hard-coded, impure system paths with the output path in the store. - sed -e "s|PATH=[^;]*|PATH='$out/bin'|" -i "pagesize/pagesize.sh" - ''; - - # A vendored meson.build is used instead of the upstream Xcode project. - # This is done for a few reasons: - # - The upstream project causes `xcbuild` to crash. - # See: https://github.com/facebookarchive/xcbuild/issues/188; - # - Achieving the same flexibility regarding SDK version would require modifying the - # Xcode project, but modifying Xcode projects without using Xcode is painful; and - # - Using Meson allows the derivation to leverage the robust Meson support in nixpkgs, - # and it allows it to use Meson features to simplify the build (e.g., generators). - preConfigure = '' - substitute '${./meson.build}' meson.build \ - --subst-var-by kernel '${Kernel}' \ - --subst-var-by libc_private '${Libc}' \ - --subst-var-by libmalloc_private '${libmallocPrivate}' \ - --subst-var-by opendirectory '${OpenDirectory}' \ - --subst-var-by opendirectory_private '${OpenDirectoryPrivate}' \ - --subst-var-by xnu '${xnu}' \ - --subst-var-by xnu_private '${xnuPrivate}' \ - --subst-var-by version '${finalAttrs.version}' - cp '${./meson.options}' meson.options - ''; - - mesonFlags = [ (lib.mesonOption "sdk_version" stdenv.hostPlatform.darwinSdkVersion) ]; - - meta = { - platforms = lib.platforms.darwin; - maintainers = with lib.maintainers; [ - shlevy - matthewbauer - ]; - }; -}) diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/system_cmds/meson.build b/pkgs/by-name/da/darwin/packages/apple-source-releases/system_cmds/meson.build deleted file mode 100644 index de73e88..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/system_cmds/meson.build +++ /dev/null @@ -1,544 +0,0 @@ -# Build settings based on the upstream Xcode project. -# See: https://github.com/apple-oss-distributions/system_cmds/blob/main/system_cmds.xcodeproj/project.pbxproj - - -# Project settings -project('system_cmds', 'c', version : '@version@') - -if host_machine.system() != 'linux' - add_project_arguments('-D__FreeBSD__', language : 'c') -endif - -sdk_version = get_option('sdk_version') - - -# Dependencies -cc = meson.get_compiler('c') -# Upstream uses awk to process `.gperf` files instead of gperf, which can’t process them. -fake_gperf = find_program('awk', required : true) - -## Frameworks -core_foundation = dependency('appleframeworks', modules : 'CoreFoundation') -core_symbolication = dependency('appleframeworks', modules : 'CoreSymbolication') -directory_service = dependency('appleframeworks', modules : 'DirectoryService') -iokit = dependency('appleframeworks', modules : 'IOKit') -kernel = declare_dependency(include_directories : '@kernel@/Library/Frameworks/Kernel.framework/Headers') -open_directory = dependency('appleframeworks', modules : 'OpenDirectory') - -## Private Headers -cfopen_directory = declare_dependency( - dependencies : declare_dependency( - compile_args :[ '-iframework', '@opendirectory@/Library/Frameworks/OpenDirectory.framework/Frameworks' ], - ), - include_directories : '@opendirectory_private@/include', -) -libc_private = declare_dependency(include_directories : '@libc_private@/include') -libmalloc_private = declare_dependency(include_directories : '@libmalloc_private@/include') - -xnu_include_dirs = [ - '@xnu@/include/bsd', - '@xnu@/include/libkern', - '@xnu@/include/iokit', - '@xnu@/include/osfmk', - '@xnu_private@/include' -] -if sdk_version.version_compare('>=10.13') - xnu_include_dirs += '@xnu@/include/san' -endif -xnu_private = declare_dependency( - compile_args : [ - # Suppresses suffixing symbols with '$UNIX2003', which causes link failures. - '-D__DARWIN_ONLY_UNIX_CONFORMANCE=1', - # Make sure Darwin is correctly detected as macOS - '-DPLATFORM_MacOSX=1', - # Access private definitions - '-DPRIVATE=1' - ], - include_directories : xnu_include_dirs -) - -## Libraries -ncurses = dependency('ncurses') -openbsm = cc.find_library('bsm') -pam = cc.find_library('pam') - -# Feature Tests -if sdk_version.version_compare('<12') - add_project_arguments('-DkIOMainPortDefault=kIOMasterPortDefault', language : 'c') - add_project_arguments('-DIOMainPort=IOMasterPort', language : 'c') -endif - - -# Generators -pgperf = generator( - fake_gperf, - arguments : [ '-f', meson.source_root() + '/getconf/fake-gperf.awk', '@INPUT@' ], - capture : true, - output : '@BASENAME@.gperf.c' -) - - -# Binaries -executable('ac', install : true, sources : 'ac/ac.c') -install_man('ac/ac.8') - -executable('accton', install : true, sources : 'accton/accton.c') -install_man('accton/accton.8') - -executable( - 'arch', - build_by_default : sdk_version.version_compare('>=11'), - install : sdk_version.version_compare('>=11'), - sources : 'arch/arch.c' -) -install_man( - 'arch/arch.1', - 'arch/machine.1' -) - -executable( - 'at', - c_args : [ - '-DDAEMON_UID=1', - '-DDAEMON_GID=1', - '-DDEFAULT_AT_QUEUE=\'a\'', - '-DDEFAULT_BATCH_QUEUE=\'b\'', - '-DPERM_PATH="/usr/lib/cron"', - ], - install : true, - sources : [ - 'at/at.c', - 'at/panic.c', - 'at/parsetime.c', - 'at/perm.c' - ] -) -install_man('at/at.1') - -executable( - 'atrun', - c_args : [ '-DDAEMON_UID=1', '-DDAEMON_GID=1' ], - include_directories : 'at', - install : true, - sources : [ - 'atrun/atrun.c', - 'atrun/gloadavg.c' - ] -) -install_man('atrun/atrun.8') - -executable( - 'chkpasswd', - c_args : '-DUSE_PAM', - dependencies : [ core_foundation, open_directory, pam ], - install : true, - sources : [ - 'chkpasswd/file_passwd.c', - 'chkpasswd/nis_passwd.c', - 'chkpasswd/od_passwd.c', - 'chkpasswd/pam_passwd.c', - 'chkpasswd/passwd.c', - 'chkpasswd/stringops.c' - ] -) -install_man('chkpasswd/chkpasswd.8') - -executable( - 'chpass', - dependencies : [ cfopen_directory, directory_service, open_directory ], - install : true, - sources : [ - 'chpass/chpass.c', - 'chpass/edit.c', - 'chpass/field.c', - 'chpass/open_directory.c', - 'chpass/table.c', - 'chpass/util.c' - ] -) -install_man('chpass/chpass.1') - -executable('cpuctl', install : true, sources : 'cpuctl/cpuctl.c') -install_man('cpuctl/cpuctl.8') - -executable('dmesg', install : true, sources : 'dmesg/dmesg.c') -install_man('dmesg/dmesg.8') - -executable( - 'dynamic_pager', - c_args : '-DNO_DIRECT_RPC', - install : true, - sources : 'dynamic_pager/dynamic_pager.c' -) -install_man('dynamic_pager/dynamic_pager.8') - -executable( - 'fs_usage', - # Requires 'ktrace/session.h' - build_by_default : false, - install : false, - sources : 'fs_usage/fs_usage.c' -) -# install_man('fs_usage/fs_usage.1') - -executable( - 'gcore', - # Requires XPC private APIs - build_by_default : false and sdk_version.version_compare('>=11'), - install : false and sdk_version.version_compare('>=11'), - sources : [ - 'gcore/convert.c', - 'gcore/corefile.c', - 'gcore/dyld.c', - 'gcore/dyld_shared_cache.c', - 'gcore/main.c', - 'gcore/sparse.c', - 'gcore/threads.c', - 'gcore/utils.c', - 'gcore/vanilla.c', - 'gcore/vm.c' - ] -) -# install_man('gcore/gcore-internal.1', 'gcore/gcore.1') - -executable( - 'getconf', - c_args : '-DAPPLE_GETCONF_UNDERSCORE', - include_directories : 'getconf', - install : true, - sources : [ - 'getconf/getconf.c', - ] + pgperf.process( - [ - 'getconf/confstr.gperf', - 'getconf/limits.gperf', - 'getconf/unsigned_limits.gperf', - 'getconf/progenv.gperf', - 'getconf/sysconf.gperf', - 'getconf/pathconf.gperf' - ] - ) -) -install_man('getconf/getconf.1') - -executable( - 'getty', - install : true, - sources : [ - 'getty/chat.c', - 'getty/init.c', - 'getty/main.c', - 'getty/subr.c' - ] -) -install_man( - 'getty/getty.8', - 'getty/gettytab.5', - 'getty/ttys.5' -) - -executable('hostinfo', install : true, sources : 'hostinfo/hostinfo.c') -install_man('hostinfo/hostinfo.8') - -executable( - 'iosim', - dependencies : [ core_foundation, iokit ], - include_directories : 'at', - install : true, - sources : 'iosim/iosim.c' -) -install_man('iosim/iosim.1') - -executable( - 'iostat', - dependencies : [ core_foundation, iokit ], - install : true, - sources : 'iostat/iostat.c' -) -install_man('iostat/iostat.8') - -executable( - 'kpgo', - dependencies : [ xnu_private ], - install : true, - sources : 'kpgo/kpgo.c' -) -# No man pages for `kpgo` - -executable( - 'latency', - build_by_default : sdk_version.version_compare('>=12'), - dependencies : ncurses, - install : sdk_version.version_compare('>=12'), - sources : 'latency/latency.c' -) -if sdk_version.version_compare('>=12') - install_man('latency/latency.1') -endif - -executable( - 'login', - # Requires SoftLinking/WeakLinking.h and end-point security entitlements - build_by_default : false, - c_args : '-DUSE_BSM_AUDIT=1', - dependencies : [ openbsm, xnu_private ], - install : false, - sources : [ - 'login/login.c', - 'login/login_audit.c' - ] -) -# install_man('login/login.1') - -executable( - 'lskq', - build_by_default : sdk_version.version_compare('>=12'), - install : sdk_version.version_compare('>=12'), - sources : 'lskq/lskq.c' -) -if sdk_version.version_compare('>=12') - install_man('lskq/lskq.1') -endif - -executable( - 'lsmp', - build_by_default : sdk_version.version_compare('>=12'), - install : sdk_version.version_compare('>=12'), - sources : [ - 'lsmp/lsmp.c', - 'lsmp/port_details.c', - 'lsmp/task_details.c' - ] -) -if sdk_version.version_compare('>=12') - install_man('lsmp/lsmp.1') -endif - -executable( - 'ltop', - install : true, - sources : 'ltop/ltop.c' -) -install_man('ltop/ltop.1') - -executable('mean', install : true, sources : 'mean/mean.c') -# No man pages for `mean`. - -executable( - 'memory_pressure', - dependencies : [ xnu_private ], - install : true, - sources : 'memory_pressure/memory_pressure.c' -) -install_man('memory_pressure/memory_pressure.1') - -executable('mkfile', install : true, sources : 'mkfile/mkfile.c') -install_man('mkfile/mkfile.8') - -executable( - 'mslutil', - build_by_default : sdk_version.version_compare('>=10.13'), - dependencies : [ libmalloc_private ], - install : sdk_version.version_compare('>=10.13'), - sources : 'mslutil/mslutil.c' -) -if sdk_version.version_compare('>=10.13') - install_man('mslutil/mslutil.1') -endif - -executable('newgrp', install : true, sources : 'newgrp/newgrp.c') -install_man('newgrp/newgrp.1') - -executable('nologin', install : true, sources : 'nologin/nologin.c') -install_man( - 'nologin/nologin.5', - 'nologin/nologin.8' -) - -executable( - 'nvram', - c_args : '-DTARGET_OS_BRIDGE=0', - dependencies : [ iokit, libc_private, xnu_private ], - install : true, - sources : 'nvram/nvram.c' -) -install_man('nvram/nvram.8') - -custom_target( - 'pagesize', - command : [ 'cp', '@INPUT@', '@OUTPUT@' ], - install : true, - install_dir : get_option('bindir'), - install_mode : 'r-xr-xr-x', - input : 'pagesize/pagesize.sh', - output : 'pagesize' -) -install_man('pagesize/pagesize.1') - -executable( - 'passwd', - dependencies : [ cfopen_directory, directory_service, open_directory, pam ], - install : true, - sources : [ - 'passwd/file_passwd.c', - 'passwd/nis_passwd.c', - 'passwd/od_passwd.c', - 'passwd/pam_passwd.c', - 'passwd/passwd.c' - ] -) -install_man('passwd/passwd.1') - -executable( - 'proc_uuid_policy', - install : true, - sources : 'proc_uuid_policy/proc_uuid_policy.c' -) -install_man('proc_uuid_policy/proc_uuid_policy.1') - -executable('purge', install : true, sources : 'purge/purge.c') -install_man('purge/purge.8') - -executable( - 'pwd_mkdb', - c_args : [ '-D_PW_NAME_LEN=MAXLOGNAME', '-D_PW_YPTOKEN="__YP!"' ], - install : true, - sources : [ - 'pwd_mkdb/pw_scan.c', - 'pwd_mkdb/pwd_mkdb.c' - ] -) -install_man('pwd_mkdb/pwd_mkdb.8') - -executable( - 'reboot', - # Requires IOKitUser kext APIs - build_by_default : false, - install : false, - sources : 'reboot/reboot.c' -) -# install_man('reboot/reboot.8') - -executable( - 'sa', - c_args : '-DAHZV1', - install : true, - sources : [ - 'sa/db.c', - 'sa/main.c', - 'sa/pdb.c', - 'sa/usrdb.c' - ] -) -install_man('sa/sa.8') - -executable( - 'sc_usage', - build_by_default : sdk_version.version_compare('>=12'), - dependencies : ncurses, - install : sdk_version.version_compare('>=12'), - sources : 'sc_usage/sc_usage.c' -) -if sdk_version.version_compare('>=12') - install_man('sc_usage/sc_usage.1') -endif - -executable('shutdown', - # Requires IOKitUser kext APIs - build_by_default : false, - install : false, - sources : 'shutdown/shutdown.c' -) -# install_man('shutdown/shutdown.8') - -executable( - 'stackshot', - build_by_default : sdk_version.version_compare('>=10.13'), - dependencies : [ xnu_private ], - install : sdk_version.version_compare('>=10.13'), - sources : 'stackshot/stackshot.c' -) -# No man pages for `stackshot`. - -executable('sync', install : true, sources : 'sync/sync.c') -# No man pages for `sync`. - -executable('sysctl', install : true, sources : 'sysctl/sysctl.c') -install_man( - 'sysctl/sysctl.8', - 'sysctl/sysctl.conf.5' -) - -executable( - 'taskpolicy', - build_by_default : sdk_version.version_compare('>=11'), - dependencies : [ xnu_private ], - install : sdk_version.version_compare('>=11'), - sources : 'taskpolicy/taskpolicy.c' -) -if sdk_version.version_compare('>=11') - install_man('taskpolicy/taskpolicy.8') -endif - -executable('vifs', install : true, sources : 'vifs/vifs.c') -install_man('vifs/vifs.8') - -executable( - 'vipw', - install : true, - sources : [ - 'vipw/pw_util.c', - 'vipw/vipw.c' - ] -) -install_man('vipw/vipw.8') - -executable('vm_purgeable_stat', - build_by_default : sdk_version.version_compare('>=11'), - install : sdk_version.version_compare('>=11'), - sources : 'vm_purgeable_stat/vm_purgeable_stat.c' -) -if sdk_version.version_compare('>=11') - install_man('vm_purgeable_stat/vm_purgeable_stat.1') -endif - -executable('vm_stat', install : true, sources : 'vm_stat/vm_stat.c') -install_man('vm_stat/vm_stat.1') - -executable('wait4path', install : true, sources : 'wait4path/wait4path.c') -install_man('wait4path/wait4path.1') - -executable('wordexp-helper', install : true, sources : 'wordexp-helper/wordexp-helper.c') -# No man pages for `wordexp-helper`. - -executable('zdump', include_directories : 'zic', install : true, sources : 'zdump/zdump.c') -install_man('zdump/zdump.8') - -executable('zic', install : true, sources : 'zic/zic.c') -install_man('zic/zic.8') - -executable( - 'zlog', - build_by_default : sdk_version.version_compare('>=11'), - c_args : '-DKERN_NOT_FOUND=56', - dependencies : core_symbolication, - install : sdk_version.version_compare('>=11'), - sources : [ - 'zlog/SymbolicationHelper.c', - 'zlog/zlog.c', - ] -) -if sdk_version.version_compare('>=11') - install_man('zlog/zlog.1') -endif - -executable( - 'zprint', - # Requires IOKitUser kext APIs - build_by_default : false, - dependencies: [ kernel ], - install : false, - sources : 'zprint/zprint.c' -) -# install_man('zprint/zprint.1') - diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/system_cmds/meson.options b/pkgs/by-name/da/darwin/packages/apple-source-releases/system_cmds/meson.options deleted file mode 100644 index 8c4ce87..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/system_cmds/meson.options +++ /dev/null @@ -1 +0,0 @@ -option('sdk_version', type : 'string') 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 deleted file mode 100644 index c6fc009..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/text_cmds/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ lib, appleDerivation, xcbuildHook, ncurses, bzip2, zlib, xz }: - -appleDerivation { - nativeBuildInputs = [ xcbuildHook ]; - buildInputs = [ ncurses bzip2 zlib xz ]; - - # patches to use ncursees - # disables md5 - patchPhase = '' - substituteInPlace text_cmds.xcodeproj/project.pbxproj \ - --replace 'FC6C98FB149A94EB00DDCC47 /* libcurses.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libcurses.dylib; path = /usr/lib/libcurses.dylib; sourceTree = ""; };' 'FC6C98FB149A94EB00DDCC47 /* libncurses.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libncurses.dylib; path = /usr/lib/libncurses.dylib; sourceTree = ""; };' \ - --replace 'FC7A7EB5149875E00086576A /* PBXTargetDependency */,' "" - ''; - - installPhase = '' - for f in Products/Release/*; do - if [ -f $f ]; then - install -D $f $out/bin/$(basename $f) - fi - done - ''; - - env.NIX_CFLAGS_COMPILE = toString [ - # hardeningDisable doesn't cut it - "-Wno-error=format-security" - # Required to build with clang 16 - "-Wno-error=deprecated-non-prototype" - ]; - - meta = { - platforms = lib.platforms.darwin; - maintainers = with lib.maintainers; [ matthewbauer ]; - }; -} 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 deleted file mode 100644 index 2a47de0..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/top/default.nix +++ /dev/null @@ -1,19 +0,0 @@ -{xcbuildHook, appleDerivation, apple_sdk, ncurses, libutil, lib}: - -appleDerivation { - nativeBuildInputs = [ xcbuildHook ]; - 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"; - NIX_LDFLAGS = "-lutil"; - installPhase = '' - install -D Products/Release/libtop.a $out/lib/libtop.a - install -D Products/Release/libtop.h $out/include/libtop.h - install -D Products/Release/top $out/bin/top - ''; - meta = { - platforms = lib.platforms.darwin; - maintainers = with lib.maintainers; [ matthewbauer ]; - }; -} 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 deleted file mode 100644 index 14ede79..0000000 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/xnu/default.nix +++ /dev/null @@ -1,164 +0,0 @@ -{ 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"; - in - { - depsBuildBuild = [ buildPackages.stdenv.cc ]; - - nativeBuildInputs = [ bootstrap_cmds bison flex gnum4 unifdef perl python3 ]; - - patches = lib.optionals stdenv.isx86_64 [ ./python3.patch ]; - - postPatch = '' - substituteInPlace Makefile \ - --replace "/bin/" "" \ - --replace "MAKEJOBS := " '# MAKEJOBS := ' - - substituteInPlace makedefs/MakeInc.cmd \ - --replace "/usr/bin/" "" \ - --replace "/bin/" "" \ - --replace "-Werror " "" - - substituteInPlace makedefs/MakeInc.def \ - --replace "-c -S -m" "-c -m" - - substituteInPlace makedefs/MakeInc.top \ - --replace "MEMORY_SIZE := " 'MEMORY_SIZE := 1073741824 # ' - - substituteInPlace libkern/kxld/Makefile \ - --replace "-Werror " "" - - 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 - - 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; - - 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 - - cat > sdk/usr/local/libexec/availability.pl < 0 ) { -- if ( !platforms().minOS(ld::version2008) ) -- throw "-rpath can only be used when targeting Mac OS X 10.5 or later"; -- switch ( fOutputKind ) { -- case Options::kDynamicExecutable: -- case Options::kDynamicLibrary: -- case Options::kDynamicBundle: -- break; -- case Options::kStaticExecutable: -- case Options::kObjectFile: -- case Options::kDyld: -- case Options::kPreload: -- case Options::kKextBundle: -- throw "-rpath can only be used when creating a dynamic final linked image"; -- } -- } -- - if ( fPositionIndependentExecutable ) { - switch ( fOutputKind ) { - case Options::kDynamicExecutable: diff --git a/pkgs/by-name/da/darwin/packages/cctools/llvm.nix b/pkgs/by-name/da/darwin/packages/cctools/llvm.nix deleted file mode 100644 index f2986bf..0000000 --- a/pkgs/by-name/da/darwin/packages/cctools/llvm.nix +++ /dev/null @@ -1,113 +0,0 @@ -# Create a cctools-compatible bintools that uses equivalent tools from LLVM in place of the ones -# from cctools when possible. - -{ lib, stdenv, makeWrapper, cctools-port, llvmPackages, enableManpages ? stdenv.targetPlatform == stdenv.hostPlatform }: - -let - inherit (stdenv) targetPlatform hostPlatform; - - cctoolsVersion = lib.getVersion cctools-port; - llvmVersion = llvmPackages.release_version; - - # `bitcode_strip` is not available until LLVM 12. - useLLVMBitcodeStrip = lib.versionAtLeast llvmVersion "12"; - - # A compatible implementation of `otool` was not added until LLVM 13. - useLLVMOtool = lib.versionAtLeast llvmVersion "13"; - - # Older versions of `strip` cause problems for the version of `codesign_allocate` available in - # the version of cctools in nixpkgs. The version of `codesign_allocate` in cctools-1005.2 does - # not appear to have issues, but the source is not available yet (as of June 2023). - useLLVMStrip = lib.versionAtLeast llvmVersion "15" || lib.versionAtLeast cctoolsVersion "1005.2"; - - # Clang 11 performs an optimization on x86_64 that is sensitive to the presence of debug info. - # This causes GCC to fail to bootstrap due to object file differences between stages 2 and 3. - useClangAssembler = lib.versionAtLeast llvmVersion "12" || !stdenv.isx86_64; - - llvm_bins = [ - "dwarfdump" - "nm" - "objdump" - "size" - "strings" - ] - ++ lib.optional useLLVMBitcodeStrip "bitcode-strip" - ++ lib.optional useLLVMOtool "otool" - ++ lib.optional useLLVMStrip "strip"; - - # Only include the tools that LLVM doesn’t provide and that are present normally on Darwin. - # The only exceptions are the following tools, which should be reevaluated when LLVM is bumped. - # - install_name_tool (llvm-objcopy): unrecognized linker commands when building open source CF; - # - libtool (llvm-libtool-darwin): not fully compatible when used with xcbuild; and - # - lipo (llvm-lipo): crashes when running the LLVM test suite. - cctools_bins = [ - "cmpdylib" - "codesign_allocate" - "ctf_insert" - "install_name_tool" - "ld" - "libtool" - "lipo" - "nmedit" - "pagestuff" - "ranlib" - "segedit" - "vtool" - ] - ++ lib.optional (!useLLVMBitcodeStrip) "bitcode_strip" - ++ lib.optional (!useLLVMOtool) "otool" - ++ lib.optional (!useLLVMStrip) "strip" - ++ lib.optional (!useClangAssembler) "as"; - - targetPrefix = lib.optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-"; - - linkManPages = pkg: source: target: lib.optionalString enableManpages '' - sourcePath=${pkg}/share/man/man1/${source}.1.gz - targetPath=$man/share/man/man1/${target}.1.gz - - if [ -f "$sourcePath" ]; then - mkdir -p "$(dirname "$targetPath")" - ln -s "$sourcePath" "$targetPath" - fi - ''; -in -stdenv.mkDerivation { - pname = "cctools-llvm"; - version = "${llvmVersion}-${cctoolsVersion}"; - - nativeBuildInputs = [ makeWrapper ]; - - # The `man` output has to be included unconditionally because darwin.binutils expects it. - outputs = [ "out" "dev" "man" ]; - - buildCommand = '' - mkdir -p "$out/bin" "$man" - ln -s ${lib.getDev cctools-port} "$dev" - - '' + lib.optionalString useClangAssembler '' - # Use the clang-integrated assembler instead of using `as` from cctools. - makeWrapper "${lib.getBin llvmPackages.clang-unwrapped}/bin/clang" "$out/bin/${targetPrefix}as" \ - --add-flags "-x assembler -integrated-as -c" - - '' + '' - ln -s "${lib.getBin llvmPackages.bintools-unwrapped}/bin/${targetPrefix}llvm-ar" "$out/bin/${targetPrefix}ar" - ${linkManPages llvmPackages.llvm-manpages "llvm-ar" "ar"} - - for tool in ${toString llvm_bins}; do - cctoolsTool=''${tool/-/_} - ln -s "${lib.getBin llvmPackages.llvm}/bin/llvm-$tool" "$out/bin/${targetPrefix}$cctoolsTool" - ${linkManPages llvmPackages.llvm-manpages "llvm-$tool" "$cctoolsTool"} - done - - for tool in ${toString cctools_bins}; do - ln -s "${lib.getBin cctools-port}/bin/${targetPrefix}$tool" "$out/bin/${targetPrefix}$tool" - ${linkManPages (lib.getMan cctools-port) "$tool" "$tool"} - done - - ${linkManPages (lib.getMan cctools-port) "ld64" "ld64"} - ${lib.optionalString (!useLLVMOtool) # The actual man page for otool in cctools is llvm-otool - (linkManPages (lib.getMan cctools-port) "llvm-otool" "llvm-otool")} - ''; - - passthru = { inherit targetPrefix; }; -} diff --git a/pkgs/by-name/da/darwin/packages/cctools/port.nix b/pkgs/by-name/da/darwin/packages/cctools/port.nix deleted file mode 100644 index 377d84d..0000000 --- a/pkgs/by-name/da/darwin/packages/cctools/port.nix +++ /dev/null @@ -1,192 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, autoreconfHook, memstreamHook -, installShellFiles -, libuuid -, libobjc ? null, maloader ? null -, enableTapiSupport ? true, libtapi -, fetchpatch -}: - -let - - # The targetPrefix prepended to binary names to allow multiple binuntils on the - # PATH to both be usable. - targetPrefix = lib.optionalString - (stdenv.targetPlatform != stdenv.hostPlatform) - "${stdenv.targetPlatform.config}-"; -in - -# Non-Darwin alternatives -assert (!stdenv.hostPlatform.isDarwin) -> maloader != null; - -stdenv.mkDerivation { - pname = "${targetPrefix}cctools-port"; - version = "973.0.1"; - - src = fetchFromGitHub { - owner = "tpoechtrager"; - repo = "cctools-port"; - # This is the commit before: https://github.com/tpoechtrager/cctools-port/pull/114 - # That specific change causes trouble for us (see the PR discussion), but - # is also currently the last commit on master at the time of writing, so we - # can just go back one step. - rev = "457dc6ddf5244ebf94f28e924e3a971f1566bd66"; - sha256 = "0ns12q7vg9yand4dmdsps1917cavfbw67yl5q7bm6kb4ia5kkx13"; - }; - - outputs = [ "out" "dev" "man" ]; - - nativeBuildInputs = [ autoconf automake libtool autoreconfHook installShellFiles ] - ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [ memstreamHook ]; - buildInputs = [ libuuid ] - ++ lib.optionals stdenv.isDarwin [ libobjc ] - ++ lib.optional enableTapiSupport libtapi; - - patches = [ - ./ld-ignore-rpath-link.patch - ./ld-rpath-nonfinal.patch - (fetchpatch { - url = "https://github.com/tpoechtrager/cctools-port/commit/4a734070cd2838e49658464003de5b92271d8b9e.patch"; - hash = "sha256-72KaJyu7CHXxJJ1GNq/fz+kW1RslO3UaKI91LhBtiXA="; - }) - (fetchpatch { - url = "https://github.com/MercuryTechnologies/cctools-port/commit/025899b7b3593dedb0c681e689e57c0e7bbd9b80.patch"; - hash = "sha256-SWVUzFaJHH2fu9y8RcU3Nx/QKx60hPE5zFx0odYDeQs="; - }) - # Always use `open_memstream`. This is provided by memstream via hook on x86_64-darwin. - ./darwin-memstream.patch - ]; - - __propagatedImpureHostDeps = [ - # As far as I can tell, otool from cctools is the only thing that depends on these two, and we should fix them - "/usr/lib/libobjc.A.dylib" - "/usr/lib/libobjc.dylib" - ]; - - enableParallelBuilding = true; - - # TODO(@Ericson2314): Always pass "--target" and always targetPrefix. - configurePlatforms = [ "build" "host" ] - ++ lib.optional (stdenv.targetPlatform != stdenv.hostPlatform) "target"; - configureFlags = [ "--disable-clang-as" ] - ++ lib.optionals enableTapiSupport [ - "--enable-tapi-support" - "--with-libtapi=${libtapi}" - ]; - - postPatch = lib.optionalString stdenv.hostPlatform.isDarwin '' - substituteInPlace cctools/Makefile.am --replace libobjc2 "" - '' + '' - sed -i -e 's/addStandardLibraryDirectories = true/addStandardLibraryDirectories = false/' cctools/ld64/src/ld/Options.cpp - - # FIXME: there are far more absolute path references that I don't want to fix right now - substituteInPlace cctools/configure.ac \ - --replace "-isystem /usr/local/include -isystem /usr/pkg/include" "" \ - --replace "-L/usr/local/lib" "" \ - - # Appears to use new libdispatch API not available in macOS SDK 10.12. - substituteInPlace cctools/ld64/src/ld/libcodedirectory.c \ - --replace "#define LIBCD_PARALLEL 1" "" - - patchShebangs tools - sed -i -e 's/which/type -P/' tools/*.sh - - cd cctools - ''; - - preInstall = '' - installManPage ar/ar.{1,5} - - # The makefile rules for installing headers are missing in 973.0.1. - # The below is derived from 949.0.1. - mkdir -p $dev/include/mach-o/i386 - mkdir -p $dev/include/mach-o/ppc - mkdir -p $dev/include/mach-o/x86_64 - mkdir -p $dev/include/mach-o/arm - mkdir -p $dev/include/mach-o/arm64 - mkdir -p $dev/include/mach-o/m68k - mkdir -p $dev/include/mach-o/sparc - mkdir -p $dev/include/mach-o/hppa - mkdir -p $dev/include/mach-o/i860 - mkdir -p $dev/include/mach-o/m88k - mkdir -p $dev/include/dyld - mkdir -p $dev/include/cbt - - pushd include/mach-o - install -c -m 444 arch.h ldsyms.h reloc.h \ - stab.h loader.h fat.h swap.h getsect.h nlist.h \ - ranlib.h $dev/include/mach-o - popd - - pushd include/mach-o/i386 - install -c -m 444 swap.h \ - $dev/include/mach-o/i386 - popd - - pushd include/mach-o/ppc - install -c -m 444 reloc.h swap.h \ - $dev/include/mach-o/ppc - popd - - pushd include/mach-o/x86_64 - install -c -m 444 reloc.h \ - $dev/include/mach-o/x86_64 - popd - - pushd include/mach-o/arm - install -c -m 444 reloc.h \ - $dev/include/mach-o/arm - popd - - pushd include/mach-o/arm64 - install -c -m 444 reloc.h \ - $dev/include/mach-o/arm64 - popd - - pushd include/mach-o/m68k - install -c -m 444 swap.h \ - $dev/include/mach-o/m68k - popd - - pushd include/mach-o/sparc - install -c -m 444 reloc.h swap.h \ - $dev/include/mach-o/sparc - popd - - pushd include/mach-o/hppa - install -c -m 444 reloc.h swap.h \ - $dev/include/mach-o/hppa - popd - - pushd include/mach-o/i860 - install -c -m 444 reloc.h swap.h \ - $dev/include/mach-o/i860 - popd - - pushd include/mach-o/m88k - install -c -m 444 reloc.h swap.h \ - $dev/include/mach-o/m88k - popd - - pushd include/stuff - install -c -m 444 bool.h \ - $dev/include/dyld - popd - - pushd include/cbt - install -c -m 444 libsyminfo.h \ - $dev/include/cbt - popd - ''; - - passthru = { - inherit targetPrefix; - }; - - meta = { - broken = !stdenv.targetPlatform.isDarwin; # Only supports darwin targets - homepage = "http://www.opensource.apple.com/source/cctools/"; - description = "MacOS Compiler Tools (cross-platform port)"; - license = lib.licenses.apple-psl20; - maintainers = with lib.maintainers; [ matthewbauer ]; - }; -} diff --git a/pkgs/by-name/da/darwin/packages/darwin-stubs/default.nix b/pkgs/by-name/da/darwin/packages/darwin-stubs/default.nix deleted file mode 100644 index 6e34394..0000000 --- a/pkgs/by-name/da/darwin/packages/darwin-stubs/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ stdenvNoCC, fetchurl }: - -stdenvNoCC.mkDerivation { - pname = "darwin-stubs"; - version = "10.12"; - - src = fetchurl { - url = "https://github.com/NixOS/darwin-stubs/releases/download/v20201216/10.12.tar.gz"; - sha256 = "1fyd3xig7brkzlzp0ql7vyfj5sp8iy56kgp548mvicqdyw92adgm"; - }; - - dontBuild = true; - - installPhase = '' - mkdir $out - mv * $out - ''; -} diff --git a/pkgs/by-name/da/darwin/packages/discrete-scroll/default.nix b/pkgs/by-name/da/darwin/packages/discrete-scroll/default.nix deleted file mode 100644 index f38bf8d..0000000 --- a/pkgs/by-name/da/darwin/packages/discrete-scroll/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, Cocoa }: - -## after launching for the first time, grant access for parent application (e.g. Terminal.app) -## from 'system preferences >> security & privacy >> accessibility' -## and then launch again - -stdenv.mkDerivation rec { - pname = "discrete-scroll"; - version = "0.1.1"; - - src = fetchFromGitHub { - owner = "emreyolcu"; - repo = "discrete-scroll"; - rev = "v${version}"; - sha256 = "0aqkp4kkwjlkll91xbqwf8asjww8ylsdgqvdk8d06bwdvg2cgvhg"; - }; - - buildInputs = [ Cocoa ]; - - buildPhase = '' - cc -std=c99 -O3 -Wall -framework Cocoa -o dc DiscreteScroll/main.m - ''; - - installPhase = '' - mkdir -p $out/bin - cp ./dc $out/bin/discretescroll - ''; - - meta = with lib; { - description = "Fix for OS X's scroll wheel problem"; - homepage = "https://github.com/emreyolcu/discrete-scroll"; - platforms = platforms.darwin; - license = licenses.mit; - maintainers = with lib.maintainers; [ bb2020 ]; - }; -} diff --git a/pkgs/by-name/da/darwin/packages/impure-cmds/default.nix b/pkgs/by-name/da/darwin/packages/impure-cmds/default.nix deleted file mode 100644 index 51e345f..0000000 --- a/pkgs/by-name/da/darwin/packages/impure-cmds/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ lib, runCommandLocal }: - -# On darwin, there are some commands neither opensource nor able to build in nixpkgs. -# We have no choice but to use those system-shipped impure ones. - -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 - }; - - 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 - - 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 diff --git a/pkgs/by-name/da/darwin/packages/ios-deploy/default.nix b/pkgs/by-name/da/darwin/packages/ios-deploy/default.nix deleted file mode 100644 index c405ac8..0000000 --- a/pkgs/by-name/da/darwin/packages/ios-deploy/default.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, darwin -, testers -}: - -let - privateFrameworks = "/Library/Apple/System/Library/PrivateFrameworks"; -in -stdenv.mkDerivation (finalAttrs: { - pname = "ios-deploy"; - version = "1.12.2"; - - src = fetchFromGitHub { - owner = "ios-control"; - repo = "ios-deploy"; - rev = finalAttrs.version; - hash = "sha256-TVGC+f+1ow3b93CK3PhIL70le5SZxxb2ug5OkIg8XCA="; - }; - - buildInputs = [ - darwin.apple_sdk.frameworks.Foundation - ]; - - buildPhase = '' - runHook preBuild - - awk '{ print "\""$0"\\n\""}' src/scripts/lldb.py >> src/ios-deploy/lldb.py.h - clang src/ios-deploy/ios-deploy.m \ - -framework Foundation \ - -F${privateFrameworks} -framework MobileDevice \ - -o ios-deploy - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - install -Dm755 ios-deploy $out/bin/ios-deploy - - runHook postInstall - ''; - - __impureHostDeps = [ - privateFrameworks - ]; - - passthru.tests.version = testers.testVersion { - package = finalAttrs.finalPackage; - }; - - meta = { - description = "Install and debug iPhone apps from the command line, without using Xcode"; - homepage = "https://github.com/ios-control/ios-deploy"; - license = lib.licenses.gpl3Plus; - mainProgram = "ios-deploy"; - maintainers = with lib.maintainers; [ wegank ]; - platforms = lib.platforms.darwin; - }; -}) diff --git a/pkgs/by-name/da/darwin/packages/iproute2mac/default.nix b/pkgs/by-name/da/darwin/packages/iproute2mac/default.nix deleted file mode 100644 index a7f1f0b..0000000 --- a/pkgs/by-name/da/darwin/packages/iproute2mac/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, darwin, python3 }: - -stdenv.mkDerivation rec { - version = "1.4.1"; - pname = "iproute2mac"; - - src = fetchFromGitHub { - owner = "brona"; - repo = "iproute2mac"; - rev = "v${version}"; - sha256 = "sha256-MaL8eb9UOZ71BL4Jvc6Od+EJ+F6j96n9a+vRnHeveIU="; - }; - - buildInputs = [ python3 ]; - - postPatch = '' - substituteInPlace src/ip.py \ - --replace /sbin/ifconfig ${darwin.network_cmds}/bin/ifconfig \ - --replace /sbin/route ${darwin.network_cmds}/bin/route \ - --replace /usr/sbin/netstat ${darwin.network_cmds}/bin/netstat \ - --replace /usr/sbin/ndp ${darwin.network_cmds}/bin/ndp \ - --replace /usr/sbin/arp ${darwin.network_cmds}/bin/arp \ - --replace /usr/sbin/networksetup ${darwin.network_cmds}/bin/networksetup - ''; - installPhase = '' - mkdir -p $out/bin - install -D -m 755 src/ip.py $out/bin/ip - ''; - - meta = with lib; { - homepage = "https://github.com/brona/iproute2mac"; - description = "CLI wrapper for basic network utilites on Mac OS X inspired with iproute2 on Linux systems - ip command."; - license = licenses.mit; - maintainers = with maintainers; [ jiegec ]; - platforms = platforms.darwin; - }; -} diff --git a/pkgs/by-name/da/darwin/packages/libtapi/default.nix b/pkgs/by-name/da/darwin/packages/libtapi/default.nix deleted file mode 100644 index cb6b3cf..0000000 --- a/pkgs/by-name/da/darwin/packages/libtapi/default.nix +++ /dev/null @@ -1,75 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, pkgsBuildBuild, cmake, python3, ncurses }: - -stdenv.mkDerivation (finalAttrs: { - pname = "libtapi"; - version = "1100.0.11"; # determined by looking at VERSION.txt - - src = fetchFromGitHub { - owner = "tpoechtrager"; - repo = "apple-libtapi"; - rev = "664b8414f89612f2dfd35a9b679c345aa5389026"; - sha256 = "1y1yl46msabfy14z0rln333a06087bk14f5h7q1cdawn8nmvbdbr"; - }; - - sourceRoot = "${finalAttrs.src.name}/src/llvm"; - - # 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 - ]; - - 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" ] - ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ - "-DCMAKE_CROSSCOMPILING=True" - # This package could probably have a llvm_6 llvm-tblgen and clang-tblgen - # provided to reduce some building. This package seems intended to - # include all of its dependencies, including enough of LLVM to build the - # required tablegens. - ( - let - nativeCC = pkgsBuildBuild.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" - ]; - in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}" - ) - ]; - - # fixes: fatal error: 'clang/Basic/Diagnostic.h' file not found - # adapted from upstream - # https://github.com/tpoechtrager/apple-libtapi/blob/3cb307764cc5f1856c8a23bbdf3eb49dfc6bea48/build.sh#L58-L60 - preConfigure = '' - INCLUDE_FIX="-I $PWD/projects/clang/include" - INCLUDE_FIX+=" -I $PWD/build/projects/clang/include" - - cmakeFlagsArray+=(-DCMAKE_CXX_FLAGS="$INCLUDE_FIX") - ''; - - buildFlags = [ "clangBasic" "libtapi" "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"; - mainProgram = "tapi"; - homepage = "https://github.com/tpoechtrager/apple-libtapi"; - license = licenses.ncsa; - maintainers = with maintainers; [ matthewbauer ]; - }; -}) diff --git a/pkgs/by-name/da/darwin/packages/libtapi/disable-rpath.patch b/pkgs/by-name/da/darwin/packages/libtapi/disable-rpath.patch deleted file mode 100644 index 87c0cf3..0000000 --- a/pkgs/by-name/da/darwin/packages/libtapi/disable-rpath.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/src/llvm/cmake/modules/AddLLVM.cmake b/src/llvm/cmake/modules/AddLLVM.cmake -index a53016eb0..b65e608a4 100644 ---- a/cmake/modules/AddLLVM.cmake -+++ b/cmake/modules/AddLLVM.cmake -@@ -1683,8 +1683,7 @@ function(llvm_setup_rpath name) - endif() - - if (APPLE) -- set(_install_name_dir INSTALL_NAME_DIR "@rpath") -- set(_install_rpath "@loader_path/../lib" ${extra_libdir}) -+ set(_install_name_dir) - elseif(UNIX) - set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) - if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)") diff --git a/pkgs/by-name/da/darwin/packages/libtapi/native-clang-tblgen.patch b/pkgs/by-name/da/darwin/packages/libtapi/native-clang-tblgen.patch deleted file mode 100644 index 9b71576..0000000 --- a/pkgs/by-name/da/darwin/packages/libtapi/native-clang-tblgen.patch +++ /dev/null @@ -1,21 +0,0 @@ -diffprojects/libtapi/CMakeLists.txt b/src/llvm/projects/libtapi/CMakeLists.txt -index 8ee6d8138..8277be147 100644 ---- a/projects/libtapi/CMakeLists.txt -+++ b/projects/libtapi/CMakeLists.txt -@@ -193,7 +193,15 @@ if (NOT DEFINED CLANG_VERSION) - set(CLANG_VERSION "${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}") - endif () - if (NOT DEFINED CLANG_TABLEGEN_EXE) -- set(CLANG_TABLEGEN_EXE "${LLVM_TOOLS_BINARY_DIR}/clang-tblgen") -+ if(LLVM_USE_HOST_TOOLS) -+ if (NOT CMAKE_CONFIGURATION_TYPES) -+ set(CLANG_TABLEGEN_EXE "${LLVM_NATIVE_BUILD}/bin/clang-tblgen") -+ else() -+ set(CLANG_TABLEGEN_EXE "${LLVM_NATIVE_BUILD}/Release/bin/clang-tblgen") -+ endif() -+ else() -+ set(CLANG_TABLEGEN_EXE "${LLVM_TOOLS_BINARY_DIR}/clang-tblgen") -+ endif () - endif () - - # Include must go first. diff --git a/pkgs/by-name/da/darwin/packages/lsusb/default.nix b/pkgs/by-name/da/darwin/packages/lsusb/default.nix deleted file mode 100644 index 712e32f..0000000 --- a/pkgs/by-name/da/darwin/packages/lsusb/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib, stdenv, fetchFromGitHub }: - -stdenv.mkDerivation { - version = "1.0"; - pname = "lsusb"; - - src = fetchFromGitHub { - owner = "jlhonora"; - repo = "lsusb"; - rev = "8a6bd7084a55a58ade6584af5075c1db16afadd1"; - sha256 = "0p8pkcgvsx44dd56wgipa8pzi3298qk9h4rl9pwsw1939hjx6h0g"; - }; - - installPhase = '' - mkdir -p $out/bin - mkdir -p $out/share/man/man8 - install -m 0755 lsusb $out/bin - install -m 0444 man/lsusb.8 $out/share/man/man8 - ''; - - meta = { - homepage = "https://github.com/jlhonora/lsusb"; - description = "lsusb command for Mac OS X"; - platforms = lib.platforms.darwin; - license = lib.licenses.mit; - maintainers = [ lib.maintainers.varunpatro ]; - }; -} diff --git a/pkgs/by-name/da/darwin/packages/moltenvk/default.nix b/pkgs/by-name/da/darwin/packages/moltenvk/default.nix deleted file mode 100644 index 1324bde..0000000 --- a/pkgs/by-name/da/darwin/packages/moltenvk/default.nix +++ /dev/null @@ -1,208 +0,0 @@ -{ - lib, - stdenv, - fetchFromGitHub, - gitUpdater, - cereal, - libcxx, - glslang, - simd, - spirv-cross, - spirv-headers, - spirv-tools, - vulkan-headers, - xcbuild, - AppKit, - Foundation, - Metal, - QuartzCore, - # MoltenVK supports using private APIs to implement some Vulkan functionality. - # Applications that use private APIs can’t be distributed on the App Store, - # but that’s not really a concern for nixpkgs, so use them by default. - # See: https://github.com/KhronosGroup/MoltenVK/blob/main/README.md#metal_private_api - enablePrivateAPIUsage ? true, -}: - -let - inherit (stdenv.hostPlatform) isStatic; -in -stdenv.mkDerivation (finalAttrs: { - pname = "MoltenVK"; - version = "1.2.8"; - - buildInputs = [ - AppKit - Foundation - Metal - QuartzCore - cereal - glslang - simd - spirv-cross - spirv-headers - spirv-tools - vulkan-headers - ]; - - nativeBuildInputs = [ xcbuild ]; - - outputs = [ - "out" - "bin" - "dev" - ]; - - src = fetchFromGitHub { - owner = "KhronosGroup"; - repo = "MoltenVK"; - rev = "v${finalAttrs.version}"; - hash = "sha256-nsNN2iCSjXzfarSdaNmeNbfDliUBMQMsb0rXEENWJqw="; - }; - - postPatch = '' - # Move `mvkGitRevDerived.h` to a stable location - substituteInPlace Scripts/gen_moltenvk_rev_hdr.sh \ - --replace-fail '$'''{BUILT_PRODUCTS_DIR}' "$NIX_BUILD_TOP/$sourceRoot/build/include" \ - --replace-fail '$(git rev-parse HEAD)' ${finalAttrs.src.rev} - - # Modify MoltenVK Xcode projects to build with xcbuild and dependencies from nixpkgs. - for proj in MoltenVK MoltenVKShaderConverter; do - # Remove xcframework dependencies from the Xcode projects. The basic format is: - # (children|files) = ( - # DCFD7F822A45BDA0007BBBF7 /* SPIRVCross.xcframework in Frameworks */, - # etc - # ) - # This regex will only remove lines matching `xcframework` that are in these blocks - # to avoid accidentally corrupting the project. - sed -E -e '/(children|files) = /,/;/{/xcframework/d}' \ - -i "$proj/$proj.xcodeproj/project.pbxproj" - # Ensure the namespace used is consistent with the spirv-cross package in nixpkgs. - substituteInPlace "$proj/$proj.xcodeproj/project.pbxproj" \ - --replace-fail SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross SPIRV_CROSS_NAMESPACE_OVERRIDE=spirv_cross - done - substituteInPlace MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj \ - --replace-fail MetalGLShaderConverterTool MoltenVKShaderConverter \ - --replace-fail MetalGLShaderConverter-macOS MoltenVKShaderConverter - - # Don’t try to build `xcframework`s because `xcbuild` can’t build them. - sed -e '/xcframework/d' -i Scripts/package_all.sh - - # Remove vendored dependency links. - find . -lname '*/External/*' -delete - - # The library will be linked in the install phase regardless of version, - # so truncate it if it exists to avoid link failures. - test -f Scripts/create_dylib.sh && truncate --size 0 Scripts/create_dylib.sh - - # Link glslang source because MoltenVK needs non-public headers to build. - mkdir -p build/include - ln -s "${glslang.src}" "build/include/glslang" - ''; - - env.NIX_CFLAGS_COMPILE = toString ( - [ - "-isystem ${lib.getDev libcxx}/include/c++/v1" - "-I${lib.getDev spirv-cross}/include/spirv_cross" - "-I${lib.getDev spirv-headers}/include/spirv/unified1" - ] - ++ lib.optional enablePrivateAPIUsage "-DMVK_USE_METAL_PRIVATE_API=1" - ); - - env.NIX_LDFLAGS = toString [ - "-lMachineIndependent" - "-lGenericCodeGen" - "-lglslang" - "-lOSDependent" - "-lSPIRV" - "-lSPIRV-Tools" - "-lSPIRV-Tools-opt" - "-lspirv-cross-msl" - "-lspirv-cross-core" - "-lspirv-cross-glsl" - "-lspirv-cross-reflect" - ]; - - buildPhase = '' - runHook preBuild - - NIX_CFLAGS_COMPILE+=" \ - -I$NIX_BUILD_TOP/$sourceRoot/build/include \ - -I$NIX_BUILD_TOP/$sourceRoot/Common" - - xcodebuild build \ - SYMROOT=$PWD/Products OBJROOT=$PWD/Intermedates \ - -jobs $NIX_BUILD_CORES \ - -configuration Release \ - -project MoltenVKPackaging.xcodeproj \ - -scheme 'MoltenVK Package (macOS only)' \ - -destination generic/platform=macOS \ - -arch ${stdenv.hostPlatform.darwinArch} - - runHook postBuild - ''; - - postBuild = - if isStatic then - '' - mkdir -p Package/Release/MoltenVK/static - cp Products/Release/libMoltenVK.a Package/Release/MoltenVK/static - '' - else - '' - # MoltenVK’s Xcode project builds the dylib, but it doesn’t seem to work with - # xcbuild. This is based on the script versions prior to 1.2.8 used. - mkdir -p Package/Release/MoltenVK/dynamic/dylib - clang++ -Wl,-all_load -Wl,-w \ - -dynamiclib \ - -compatibility_version 1.0.0 -current_version 1.0.0 \ - -LProducts/Release \ - -framework AppKit \ - -framework CoreGraphics \ - -framework Foundation \ - -framework IOKit \ - -framework IOSurface \ - -framework Metal \ - -framework QuartzCore \ - -lobjc \ - -lMoltenVKShaderConverter \ - -lspirv-cross-reflect \ - -install_name "$out/lib/libMoltenVK.dylib" \ - -o Package/Release/MoltenVK/dynamic/dylib/libMoltenVK.dylib \ - -force_load Products/Release/libMoltenVK.a - ''; - - installPhase = '' - runHook preInstall - - libraryExtension=${if isStatic then ".a" else ".dylib"} - packagePath=${if isStatic then "static" else "dynamic/dylib"} - - mkdir -p "$out/lib" "$out/share/vulkan/icd.d" "$bin/bin" "$dev" - - cp Package/Release/MoltenVKShaderConverter/Tools/MoltenVKShaderConverter "$bin/bin" - cp -r Package/Release/MoltenVK/include "$dev" - cp Package/Release/MoltenVK/$packagePath/libMoltenVK$libraryExtension "$out/lib" - - # Install ICD definition for use with vulkan-loader. - install -m644 MoltenVK/icd/MoltenVK_icd.json \ - "$out/share/vulkan/icd.d/MoltenVK_icd.json" - substituteInPlace "$out/share/vulkan/icd.d/MoltenVK_icd.json" \ - --replace-fail ./libMoltenVK.dylib "$out/lib/libMoltenVK.dylib" - - runHook postInstall - ''; - - passthru.updateScript = gitUpdater { - rev-prefix = "v"; - ignoredVersions = ".*-(beta|rc).*"; - }; - - meta = { - description = "A Vulkan Portability implementation built on top of Apple’s Metal API"; - homepage = "https://github.com/KhronosGroup/MoltenVK"; - changelog = "https://github.com/KhronosGroup/MoltenVK/releases"; - maintainers = [ lib.maintainers.reckenrode ]; - license = lib.licenses.asl20; - platforms = lib.platforms.darwin; - }; -}) diff --git a/pkgs/by-name/da/darwin/packages/openwith/default.nix b/pkgs/by-name/da/darwin/packages/openwith/default.nix deleted file mode 100644 index eb78f7a..0000000 --- a/pkgs/by-name/da/darwin/packages/openwith/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, swift, AppKit, Foundation, UniformTypeIdentifiers }: - -let - arch = if stdenv.isAarch64 then "arm64" else "x86_64"; -in -stdenv.mkDerivation rec { - pname = "openwith"; - version = "unstable-2022-10-28"; - - src = fetchFromGitHub { - owner = "jdek"; - repo = "openwith"; - rev = "a8a99ba0d1cabee7cb470994a1e2507385c30b6e"; - hash = "sha256-lysleg3qM2MndXeKjNk+Y9Tkk40urXA2ZdxY5KZNANo="; - }; - - nativeBuildInputs = [ swift ]; - - buildInputs = [ AppKit Foundation UniformTypeIdentifiers ]; - - makeFlags = [ "openwith_${arch}" ]; - - installPhase = '' - runHook preInstall - install openwith_${arch} -D $out/bin/openwith - runHook postInstall - ''; - - meta = with lib; { - description = "Utility to specify which application bundle should open specific file extensions"; - homepage = "https://github.com/jdek/openwith"; - license = licenses.unlicense; - maintainers = with maintainers; [ zowoq ]; - 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 deleted file mode 100644 index 992cf1b..0000000 --- a/pkgs/by-name/da/darwin/packages/print-reexports/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ lib, stdenv, libyaml }: - -stdenv.mkDerivation { - name = "print-reexports"; - src = lib.sourceFilesBySuffices ./. [".c"]; - - buildInputs = [ libyaml ]; - - buildPhase = '' - $CC -lyaml -o print-reexports main.c - ''; - - installPhase = '' - mkdir -p $out/bin - mv print-reexports $out/bin - ''; - meta.mainProgram = "print-reexports"; -} diff --git a/pkgs/by-name/da/darwin/packages/print-reexports/main.c b/pkgs/by-name/da/darwin/packages/print-reexports/main.c deleted file mode 100644 index e6ff527..0000000 --- a/pkgs/by-name/da/darwin/packages/print-reexports/main.c +++ /dev/null @@ -1,213 +0,0 @@ -/** - * Display the list of re-exported libraries from a TAPI v2 .tbd file, one per - * line on stdout. - * - * TAPI files are the equivalent of library files for the purposes of linking. - * Like dylib files, they may re-export other libraries. In upstream usage - * these refer to the absolute paths of dylibs, and are resolved to .tbd files - * in combination with the syslibroot option. In nixpkgs, the .tbd files refer - * directly to other .tbd files without a syslibroot. Note that each .tbd file - * contains an install name, so the re-exported path does not affect the final - * result. - * - * In nixpkgs each framework is a distinct store path and some frameworks - * re-export other frameworks. The re-exported names are rewritten to refer to - * the store paths of dependencies via textual substitution. This utility is - * used to emit every file that is listed as a re-exported library, which - * allows the framework builder to verify their existence. - */ - -#include -#include -#include - -#define LOG(str, ...) fprintf(stderr, "%s", str) - -#define LOGF(...) fprintf(stderr, __VA_ARGS__) - -static yaml_node_t *get_mapping_entry(yaml_document_t *document, yaml_node_t *mapping, const char *name) { - if (!mapping) { - fprintf(stderr, "get_mapping_entry: mapping is null\n"); - return NULL; - } - - for ( - yaml_node_pair_t *pair = mapping->data.mapping.pairs.start; - pair < mapping->data.mapping.pairs.top; - ++pair - ) { - yaml_node_t *key = yaml_document_get_node(document, pair->key); - - if (!key) { - LOGF("key (%d) is null\n", pair->key); - return NULL; - } - - if (key->type != YAML_SCALAR_NODE) { - LOG("get_mapping_entry: key is not a scalar\n"); - return NULL; - } - - if (strncmp((const char *)key->data.scalar.value, name, key->data.scalar.length) != 0) { - continue; - } - - return yaml_document_get_node(document, pair->value); - } - - return NULL; -} - -static int emit_reexports_v2(yaml_document_t *document) { - yaml_node_t *root = yaml_document_get_root_node(document); - - yaml_node_t *exports = get_mapping_entry(document, root, "exports"); - - if (!exports) { - return 1; - } - - if (exports->type != YAML_SEQUENCE_NODE) { - LOG("value is not a sequence\n"); - return 0; - } - - for ( - yaml_node_item_t *export = exports->data.sequence.items.start; - export < exports->data.sequence.items.top; - ++export - ) { - yaml_node_t *export_node = yaml_document_get_node(document, *export); - - yaml_node_t *reexports = get_mapping_entry(document, export_node, "re-exports"); - - if (!reexports) { - continue; - } - - if (reexports->type != YAML_SEQUENCE_NODE) { - LOG("re-exports is not a sequence\n"); - return 0; - } - - for ( - yaml_node_item_t *reexport = reexports->data.sequence.items.start; - reexport < reexports->data.sequence.items.top; - ++reexport - ) { - yaml_node_t *val = yaml_document_get_node(document, *reexport); - - if (val->type != YAML_SCALAR_NODE) { - LOG("item is not a scalar\n"); - return 0; - } - - fwrite(val->data.scalar.value, val->data.scalar.length, 1, stdout); - putchar('\n'); - } - } - - return 1; -} - -static int emit_reexports_v4(yaml_document_t *document) { - yaml_node_t *root = yaml_document_get_root_node(document); - yaml_node_t *reexports = get_mapping_entry(document, root, "reexported-libraries"); - - if (!reexports) { - return 1; - } - - if (reexports->type != YAML_SEQUENCE_NODE) { - LOG("value is not a sequence\n"); - return 0; - } - - for ( - yaml_node_item_t *entry = reexports->data.sequence.items.start; - entry < reexports->data.sequence.items.top; - ++entry - ) { - yaml_node_t *entry_node = yaml_document_get_node(document, *entry); - - yaml_node_t *libs = get_mapping_entry(document, entry_node, "libraries"); - - if (!libs) { - continue; - } - - if (libs->type != YAML_SEQUENCE_NODE) { - LOG("libraries is not a sequence\n"); - return 0; - } - - for ( - yaml_node_item_t *lib = libs->data.sequence.items.start; - lib < libs->data.sequence.items.top; - ++lib - ) { - yaml_node_t *val = yaml_document_get_node(document, *lib); - - if (val->type != YAML_SCALAR_NODE) { - LOG("item is not a scalar\n"); - return 0; - } - - fwrite(val->data.scalar.value, val->data.scalar.length, 1, stdout); - putchar('\n'); - } - } - - return 1; -} - -int main(int argc, char **argv) { - int result = 0; - - if (argc != 2) { - fprintf(stderr, "Invalid usage\n"); - result = 2; - goto done; - } - - FILE *f = fopen(argv[1], "r"); - if (!f) { - perror("opening input file"); - result = errno; - goto done; - } - - yaml_parser_t yaml_parser; - if (!yaml_parser_initialize(&yaml_parser)) { - fprintf(stderr, "Failed to initialize yaml parser\n"); - result = 1; - goto err_file; - } - - yaml_parser_set_input_file(&yaml_parser, f); - - yaml_document_t yaml_document; - - if(!yaml_parser_load(&yaml_parser, &yaml_document)) { - fprintf(stderr, "Failed to load yaml file\n"); - result = 1; - goto err_yaml; - } - - // Try both, only fail if one reports an error. A lack of re-exports is not - // considered an error. - int ok = 1; - ok = ok && emit_reexports_v2(&yaml_document); - ok = ok && emit_reexports_v4(&yaml_document); - - result = !ok; - -err_yaml: - yaml_parser_delete(&yaml_parser); - -err_file: - fclose(f); - -done: - return result; -} diff --git a/pkgs/by-name/da/darwin/packages/print-reexports/setup-hook.sh b/pkgs/by-name/da/darwin/packages/print-reexports/setup-hook.sh deleted file mode 100644 index 9efb00a..0000000 --- a/pkgs/by-name/da/darwin/packages/print-reexports/setup-hook.sh +++ /dev/null @@ -1,19 +0,0 @@ -fixupOutputHooks+=('checkTbdReexports') - -checkTbdReexports() { - local dir="$1" - - while IFS= read -r -d $'\0' tbd; do - echo "checkTbdRexports: checking re-exports in $tbd" - while read -r 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 < <(print-reexports "$tbd") - done < <(find $prefix -type f -name '*.tbd' -print0) -} diff --git a/pkgs/by-name/da/darwin/packages/rewrite-tbd/default.nix b/pkgs/by-name/da/darwin/packages/rewrite-tbd/default.nix deleted file mode 100644 index 527cca8..0000000 --- a/pkgs/by-name/da/darwin/packages/rewrite-tbd/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, libyaml }: - -stdenv.mkDerivation { - pname = "rewrite-tbd"; - version = "unstable-2023-03-27"; - - src = fetchFromGitHub { - owner = "thefloweringash"; - repo = "rewrite-tbd"; - rev = "d7852691762635028d237b7d00c3dc6a6613de79"; - hash = "sha256-syxioFiGvEv4Ypk5hlIjLQth5YmdFdr+NC+aXSXzG4k="; - }; - - # Nix takes care of these paths. Avoiding the use of `pkg-config` prevents an infinite recursion. - postPatch = '' - substituteInPlace Makefile.boot \ - --replace '$(shell pkg-config --cflags yaml-0.1)' "" \ - --replace '$(shell pkg-config --libs yaml-0.1)' "-lyaml" - ''; - - buildInputs = [ libyaml ]; - - makeFlags = [ "-f" "Makefile.boot" "PREFIX=${placeholder "out"}"]; - - meta = with lib; { - homepage = "https://github.com/thefloweringash/rewrite-tbd/"; - description = "Rewrite filepath in .tbd to Nix applicable format"; - mainProgram = "rewrite-tbd"; - platforms = platforms.unix; - license = licenses.mit; - }; -} diff --git a/pkgs/by-name/da/darwin/packages/signing-utils/auto-sign-hook.sh b/pkgs/by-name/da/darwin/packages/signing-utils/auto-sign-hook.sh deleted file mode 100644 index 6a254cd..0000000 --- a/pkgs/by-name/da/darwin/packages/signing-utils/auto-sign-hook.sh +++ /dev/null @@ -1,31 +0,0 @@ -postFixupHooks+=(signDarwinBinariesInAllOutputs) - -# Uses signingUtils, see definition of autoSignDarwinBinariesHook in -# darwin-packages.nix - -signDarwinBinariesIn() { - local dir="$1" - - if [ ! -d "$dir" ]; then - return 0 - fi - - if [ "${darwinDontCodeSign:-}" ]; then - return 0 - fi - - echo "signing $dir" - - while IFS= read -r -d $'\0' f; do - signIfRequired "$f" - done < <(find "$dir" -type f -print0) -} - -# Apply fixup to each output. -signDarwinBinariesInAllOutputs() { - local output - - for output in $(getAllOutputNames); do - signDarwinBinariesIn "${!output}" - done -} diff --git a/pkgs/by-name/da/darwin/packages/signing-utils/default.nix b/pkgs/by-name/da/darwin/packages/signing-utils/default.nix deleted file mode 100644 index 035ac59..0000000 --- a/pkgs/by-name/da/darwin/packages/signing-utils/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ stdenvNoCC -, sigtool -, cctools -}: - -let - stdenv = stdenvNoCC; -in - -stdenv.mkDerivation { - name = "signing-utils"; - - dontUnpack = true; - dontConfigure = true; - dontBuild = true; - - installPhase = '' - substituteAll ${./utils.sh} $out - ''; - - # Substituted variables - inherit sigtool; - codesignAllocate = "${cctools}/bin/${cctools.targetPrefix}codesign_allocate"; -} 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 deleted file mode 100644 index 13595e3..0000000 --- a/pkgs/by-name/da/darwin/packages/signing-utils/post-link-sign-hook.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ writeTextFile, cctools, sigtool }: - -writeTextFile { - name = "post-link-sign-hook"; - executable = true; - - text = '' - if [ "$linkerOutput" != "/dev/null" ]; then - CODESIGN_ALLOCATE=${cctools}/bin/${cctools.targetPrefix}codesign_allocate \ - ${sigtool}/bin/codesign -f -s - "$linkerOutput" - fi - ''; -} diff --git a/pkgs/by-name/da/darwin/packages/signing-utils/utils.sh b/pkgs/by-name/da/darwin/packages/signing-utils/utils.sh deleted file mode 100644 index 6d23a46..0000000 --- a/pkgs/by-name/da/darwin/packages/signing-utils/utils.sh +++ /dev/null @@ -1,43 +0,0 @@ -# Work around for some odd behaviour where we can't codesign a file -# in-place if it has been called before. This happens for example if -# you try to fix-up a binary using strip/install_name_tool, after it -# had been used previous. The solution is to copy the binary (with -# the corrupted signature from strip/install_name_tool) to some -# location, sign it there and move it back into place. -# -# This does not appear to happen with the codesign tool that ships -# with recent macOS BigSur installs on M1 arm64 machines. However it -# had also been happening with the tools that shipped with the DTKs. -sign() { - local tmpdir - tmpdir=$(mktemp -d) - - # $1 is the file - - cp "$1" "$tmpdir" - CODESIGN_ALLOCATE=@codesignAllocate@ \ - @sigtool@/bin/codesign -f -s - "$tmpdir/$(basename "$1")" - mv "$tmpdir/$(basename "$1")" "$1" - rmdir "$tmpdir" -} - -checkRequiresSignature() { - local file=$1 - local rc=0 - - @sigtool@/bin/sigtool --file "$file" check-requires-signature || rc=$? - - if [ "$rc" -eq 0 ] || [ "$rc" -eq 1 ]; then - return "$rc" - fi - - echo "Unexpected exit status from sigtool: $rc" - exit 1 -} - -signIfRequired() { - local file=$1 - if checkRequiresSignature "$file"; then - sign "$file" - fi -} diff --git a/pkgs/by-name/da/darwin/packages/sigtool/default.nix b/pkgs/by-name/da/darwin/packages/sigtool/default.nix deleted file mode 100644 index eb323a8..0000000 --- a/pkgs/by-name/da/darwin/packages/sigtool/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, pkg-config, openssl }: - -stdenv.mkDerivation rec { - pname = "sigtool"; - version = "0.1.3"; - - src = fetchFromGitHub { - owner = "thefloweringash"; - repo = "sigtool"; - rev = "v${version}"; - sha256 = "sha256-K3VSFaqcZEomF7kROJz+AwxdW1MmxxEFDaRnWnzcw54="; - }; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ openssl ]; - - installFlags = [ "PREFIX=$(out)" ]; - - meta = with lib; { - description = "A tool for working with embedded signatures in Mach-O files"; - homepage = "https://github.com/thefloweringash/sigtool"; - license = licenses.mit; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/da/darwin/packages/stubs/default.nix b/pkgs/by-name/da/darwin/packages/stubs/default.nix deleted file mode 100644 index 862305a..0000000 --- a/pkgs/by-name/da/darwin/packages/stubs/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ 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 - -{ - setfile = fake "SetFile"; - rez = fake "Rez"; - derez = fake "DeRez"; -} diff --git a/pkgs/by-name/da/darwin/packages/swift-corelibs/0001-Add-missing-TARGET_OS_-defines.patch b/pkgs/by-name/da/darwin/packages/swift-corelibs/0001-Add-missing-TARGET_OS_-defines.patch deleted file mode 100644 index db17c51..0000000 --- a/pkgs/by-name/da/darwin/packages/swift-corelibs/0001-Add-missing-TARGET_OS_-defines.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 549160574ee44656d50997b27ef83736e0848201 Mon Sep 17 00:00:00 2001 -From: toonn -Date: Mon, 26 Apr 2021 20:51:05 +0200 -Subject: [PATCH] Add missing TARGET_OS_* defines - ---- - .../Base.subproj/SwiftRuntime/TargetConditionals.h | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/CoreFoundation/Base.subproj/SwiftRuntime/TargetConditionals.h b/CoreFoundation/Base.subproj/SwiftRuntime/TargetConditionals.h -index 6d42b873..abf746c9 100644 ---- a/CoreFoundation/Base.subproj/SwiftRuntime/TargetConditionals.h -+++ b/CoreFoundation/Base.subproj/SwiftRuntime/TargetConditionals.h -@@ -118,6 +118,13 @@ - - #define TARGET_OS_WIN32 TARGET_OS_WINDOWS - #define TARGET_OS_MAC TARGET_OS_DARWIN -+#define TARGET_OS_OSX TARGET_OS_DARWIN -+ -+#define TARGET_OS_IPHONE 0 -+#define TARGET_OS_WATCH 0 -+#define TARGET_OS_TV 0 -+#define TARGET_OS_EMBEDDED 0 -+ - - #if __x86_64__ - #define TARGET_CPU_PPC 0 --- -2.17.2 (Apple Git-113) - diff --git a/pkgs/by-name/da/darwin/packages/swift-corelibs/0002-Add-missing-launchd-header.patch b/pkgs/by-name/da/darwin/packages/swift-corelibs/0002-Add-missing-launchd-header.patch deleted file mode 100644 index b1187c5..0000000 --- a/pkgs/by-name/da/darwin/packages/swift-corelibs/0002-Add-missing-launchd-header.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/CoreFoundation/RunLoop.subproj/CFMessagePort.c 1969-12-31 19:00:01.000000000 -0500 -+++ b/CoreFoundation/RunLoop.subproj/CFMessagePort.c 2023-06-09 20:25:28.599209755 -0400 -@@ -28,6 +28,8 @@ - #endif - #endif - -+#include -+ - extern pid_t getpid(void); - - #define __kCFMessagePortMaxNameLengthMax 255 diff --git a/pkgs/by-name/da/darwin/packages/swift-corelibs/0003-Fix-incompatible-pointer-conversion.patch b/pkgs/by-name/da/darwin/packages/swift-corelibs/0003-Fix-incompatible-pointer-conversion.patch deleted file mode 100644 index 910b622..0000000 --- a/pkgs/by-name/da/darwin/packages/swift-corelibs/0003-Fix-incompatible-pointer-conversion.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff -u a/CoreFoundation/URL.subproj/CFURLComponents.c b/CoreFoundation/URL.subproj/CFURLComponents.c ---- a/CoreFoundation/URL.subproj/CFURLComponents.c 1969-12-31 19:00:01.000000000 -0500 -+++ b/CoreFoundation/URL.subproj/CFURLComponents.c 2023-06-09 20:36:52.995514573 -0400 -@@ -66,7 +66,8 @@ - return CFRetain(CFSTR("A really nice CFURLComponents object")); - } - --CF_CROSS_PLATFORM_EXPORT void __CFURLComponentsDeallocate(CFURLComponentsRef instance) { -+CF_CROSS_PLATFORM_EXPORT void __CFURLComponentsDeallocate(CFTypeRef cf) { -+ CFURLComponentsRef instance = (CFURLComponentsRef)cf; - __CFGenericValidateType(instance, _CFURLComponentsGetTypeID()); - - if (instance->_urlString) CFRelease(instance->_urlString); -diff -u a/CoreFoundation/URL.subproj/CFURLComponents.h b/CoreFoundation/URL.subproj/CFURLComponents.h ---- a/CoreFoundation/URL.subproj/CFURLComponents.h 1969-12-31 19:00:01.000000000 -0500 -+++ b/CoreFoundation/URL.subproj/CFURLComponents.h 2023-06-09 20:39:36.967857713 -0400 -@@ -38,7 +38,7 @@ - - CF_EXPORT CFTypeID _CFURLComponentsGetTypeID(void); - --CF_CROSS_PLATFORM_EXPORT void __CFURLComponentsDeallocate(CFURLComponentsRef); -+CF_CROSS_PLATFORM_EXPORT void __CFURLComponentsDeallocate(CFTypeRef); - - // URLComponents are always mutable. - CF_EXPORT _Nullable CFURLComponentsRef _CFURLComponentsCreate(CFAllocatorRef alloc); diff --git a/pkgs/by-name/da/darwin/packages/swift-corelibs/0004-Fix-Darwin-cmake-build.patch b/pkgs/by-name/da/darwin/packages/swift-corelibs/0004-Fix-Darwin-cmake-build.patch deleted file mode 100644 index afffa1a..0000000 --- a/pkgs/by-name/da/darwin/packages/swift-corelibs/0004-Fix-Darwin-cmake-build.patch +++ /dev/null @@ -1,66 +0,0 @@ ---- a/CoreFoundation/CMakeLists.txt 1969-12-31 19:00:01.000000000 -0500 -+++ b/CoreFoundation/CMakeLists.txt 2023-06-29 18:52:49.096019700 -0400 -@@ -129,7 +129,7 @@ - Base.subproj/CFByteOrder.h - Base.subproj/CFUUID.h - Base.subproj/CFUtilities.h -- Base.subproj/SwiftRuntime/CoreFoundation.h -+ Base.subproj/CoreFoundation.h # The SwiftRuntime version of this file causes linker errors and is not correct for standalone CF. - Base.subproj/SwiftRuntime/TargetConditionals.h - # Collections - Collections.subproj/CFArray.h -@@ -245,6 +245,8 @@ - # RunLoop - RunLoop.subproj/CFRunLoop.c - RunLoop.subproj/CFSocket.c -+ RunLoop.subproj/CFMachPort.c # These files are missing from the upstream `CMakeLists.txt` but required to build on Darwin. -+ RunLoop.subproj/CFMessagePort.c - # Stream - Stream.subproj/CFConcreteStreams.c - Stream.subproj/CFSocketStream.c -@@ -336,6 +338,11 @@ - target_include_directories(CoreFoundation - PRIVATE - ${CURL_INCLUDE_DIRS}) -+elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin) -+ find_package(CURL REQUIRED) -+ target_include_directories(CoreFoundation PRIVATE ${CURL_INCLUDE_DIRS}) -+ find_package(LibXml2 REQUIRED) -+ target_include_directories(CoreFoundation PRIVATE ${LIBXML2_INCLUDE_DIR}) - else() - target_include_directories(CoreFoundation - PRIVATE -@@ -365,6 +372,10 @@ - PRIVATE - ${CURL_LIBRARIES} - ${LIBXML2_LIBRARIES}) -+elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin) -+ target_link_libraries(CoreFoundation PRIVATE -+ ${CURL_LIBRARIES} -+ ${LIBXML2_LIBRARIES}) - else() - target_link_libraries(CoreFoundation - PRIVATE -@@ -398,9 +400,19 @@ - target_link_libraries(CoreFoundation - PRIVATE - icucore) -- set_target_properties(CoreFoundation -- PROPERTIES LINK_FLAGS -- -Xlinker;-alias_list;-Xlinker;Base.subproj/DarwinSymbolAliases;-twolevel_namespace;-sectcreate;__UNICODE;__csbitmaps;CharacterSets/CFCharacterSetBitmaps.bitmap;-sectcreate;__UNICODE;__properties;CharacterSets/CFUniCharPropertyDatabase.data;-sectcreate;__UNICODE;__data;CharacterSets/CFUnicodeData-L.mapping;-segprot;__UNICODE;r;r) -+ target_link_options(CoreFoundation -+ PUBLIC -+ "LINKER:-alias_list,../Base.subproj/DarwinSymbolAliases" -+ "LINKER:-twolevel_namespace" -+ "LINKER:-sectcreate,__UNICODE,__csbitmaps,../CharacterSets/CFCharacterSetBitmaps.bitmap" -+ "LINKER:-sectcreate,__UNICODE,__properties,../CharacterSets/CFUniCharPropertyDatabase.data" -+ "LINKER:-sectcreate,__UNICODE,__data,../CharacterSets/CFUnicodeData-L.mapping" -+ "LINKER:-segprot,__UNICODE,r,r" -+ "LINKER:-current_version,1454.90.0" -+ "LINKER:-compatibility_version,150.0.0" -+ "LINKER:-init,___CFInitialize") -+ set(CMAKE_SHARED_LIBRARY_PREFIX "") -+ set(CMAKE_SHARED_LIBRARY_SUFFIX "") - endif() - - install(TARGETS diff --git a/pkgs/by-name/da/darwin/packages/swift-corelibs/0005-Fix-framework-installation-path.patch b/pkgs/by-name/da/darwin/packages/swift-corelibs/0005-Fix-framework-installation-path.patch deleted file mode 100644 index e771ab3..0000000 --- a/pkgs/by-name/da/darwin/packages/swift-corelibs/0005-Fix-framework-installation-path.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -u aa/CoreFoundation/CMakeLists.txt b/CoreFoundation/CMakeLists.txt ---- a/CoreFoundation/CMakeLists.txt 1969-12-31 19:00:01.000000000 -0500 -+++ b/CoreFoundation/CMakeLists.txt 2023-06-29 18:59:19.492601179 -0400 - -@@ -424,16 +424,11 @@ - set(CMAKE_SHARED_LIBRARY_SUFFIX "") - endif() - --install(TARGETS -- CoreFoundation -- DESTINATION -- "${CMAKE_INSTALL_FULL_LIBDIR}") - install(DIRECTORY - ${CoreFoundation_FRAMEWORK_DIRECTORY} - DESTINATION -- ${CMAKE_INSTALL_PREFIX}/System/Library/Frameworks -- USE_SOURCE_PERMISSIONS -- PATTERN PrivateHeaders EXCLUDE) -+ ${CMAKE_INSTALL_PREFIX}/Library/Frameworks -+ USE_SOURCE_PERMISSIONS) - - - # TODO(compnerd) formalize this diff --git a/pkgs/by-name/da/darwin/packages/swift-corelibs/0006-System-CF-framework-compatibility.patch b/pkgs/by-name/da/darwin/packages/swift-corelibs/0006-System-CF-framework-compatibility.patch deleted file mode 100644 index 248cb5f..0000000 --- a/pkgs/by-name/da/darwin/packages/swift-corelibs/0006-System-CF-framework-compatibility.patch +++ /dev/null @@ -1,84 +0,0 @@ -diff -u a/CoreFoundation/CMakeLists.txt b/CoreFoundation/CMakeLists.txt ---- a/CoreFoundation/CMakeLists.txt 1969-12-31 19:00:01.000000000 -0500 -+++ b/CoreFoundation/CMakeLists.txt 2023-06-29 18:59:08.659632504 -0400 -@@ -1,5 +1,5 @@ - --cmake_minimum_required(VERSION 3.4.3) -+cmake_minimum_required(VERSION 3.14) - list(APPEND CMAKE_MODULE_PATH - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules") - -@@ -45,6 +45,8 @@ - ${FRAMEWORK_LIBRARY_TYPE} - FRAMEWORK_DIRECTORY - CoreFoundation_FRAMEWORK_DIRECTORY -+ VERSION -+ A - MODULE_MAP - Base.subproj/module.modulemap - PRIVATE_HEADERS -diff -u a/CoreFoundation/cmake/modules/CoreFoundationAddFramework.cmake b/CoreFoundation/cmake/modules/CoreFoundationAddFramework.cmake ---- a/CoreFoundation/cmake/modules/CoreFoundationAddFramework.cmake 1969-12-31 19:00:01.000000000 -0500 -+++ b/CoreFoundation/cmake/modules/CoreFoundationAddFramework.cmake 2023-06-29 18:57:55.792860996 -0400 -@@ -3,7 +3,7 @@ - - function(add_framework NAME) - set(options STATIC SHARED) -- set(single_value_args MODULE_MAP FRAMEWORK_DIRECTORY) -+ set(single_value_args MODULE_MAP FRAMEWORK_DIRECTORY VERSION) - set(multiple_value_args PRIVATE_HEADERS PUBLIC_HEADERS SOURCES) - cmake_parse_arguments(AF "${options}" "${single_value_args}" "${multiple_value_args}" ${ARGN}) - -@@ -14,26 +14,32 @@ - set(AF_TYPE SHARED) - endif() - -+ file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/${NAME}.framework/Versions/${AF_VERSION}) -+ file(CREATE_LINK ${AF_VERSION} ${CMAKE_BINARY_DIR}/${NAME}.framework/Versions/Current SYMBOLIC) -+ - if(AF_MODULE_MAP) - file(COPY - ${AF_MODULE_MAP} - DESTINATION -- ${CMAKE_BINARY_DIR}/${NAME}.framework/Modules -+ ${CMAKE_BINARY_DIR}/${NAME}.framework/Versions/Current/Modules - NO_SOURCE_PERMISSIONS) -+ file(CREATE_LINK Versions/Current/Modules ${CMAKE_BINARY_DIR}/${NAME}.framework/Modules SYMBOLIC) - endif() - if(AF_PUBLIC_HEADERS) - file(COPY - ${AF_PUBLIC_HEADERS} - DESTINATION -- ${CMAKE_BINARY_DIR}/${NAME}.framework/Headers -+ ${CMAKE_BINARY_DIR}/${NAME}.framework/Versions/Current/Headers - NO_SOURCE_PERMISSIONS) -+ file(CREATE_LINK Versions/Current/Headers ${CMAKE_BINARY_DIR}/${NAME}.framework/Headers SYMBOLIC) - endif() - if(AF_PRIVATE_HEADERS) - file(COPY - ${AF_PRIVATE_HEADERS} - DESTINATION -- ${CMAKE_BINARY_DIR}/${NAME}.framework/PrivateHeaders -+ ${CMAKE_BINARY_DIR}/${NAME}.framework/Versions/Current/PrivateHeaders - NO_SOURCE_PERMISSIONS) -+ file(CREATE_LINK Versions/Current/PrivateHeaders ${CMAKE_BINARY_DIR}/${NAME}.framework/PrivateHeaders SYMBOLIC) - endif() - add_custom_target(${NAME}_POPULATE_HEADERS - DEPENDS -@@ -51,13 +57,15 @@ - set_target_properties(${NAME} - PROPERTIES - LIBRARY_OUTPUT_DIRECTORY -- ${CMAKE_BINARY_DIR}/${NAME}.framework) -+ ${CMAKE_BINARY_DIR}/${NAME}.framework/Versions/Current) - target_compile_options(${NAME} - PRIVATE - -F;${CMAKE_BINARY_DIR} - -I;${CMAKE_BINARY_DIR}/${NAME}.framework/PrivateHeaders) - add_dependencies(${NAME} ${NAME}_POPULATE_HEADERS) - -+ file(CREATE_LINK Versions/Current/${NAME} ${CMAKE_BINARY_DIR}/${NAME}.framework/${NAME} SYMBOLIC) -+ - if(AF_FRAMEWORK_DIRECTORY) - set(${AF_FRAMEWORK_DIRECTORY} ${CMAKE_BINARY_DIR}/${NAME}.framework PARENT_SCOPE) - endif() diff --git a/pkgs/by-name/da/darwin/packages/swift-corelibs/0007-Use-nixpkgs-icu.patch b/pkgs/by-name/da/darwin/packages/swift-corelibs/0007-Use-nixpkgs-icu.patch deleted file mode 100644 index 78fa517..0000000 --- a/pkgs/by-name/da/darwin/packages/swift-corelibs/0007-Use-nixpkgs-icu.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff -ur d/CoreFoundation/CMakeLists.txt e/CoreFoundation/CMakeLists.txt ---- d/CoreFoundation/CMakeLists.txt 1969-12-31 19:00:01.000000000 -0500 -+++ e/CoreFoundation/CMakeLists.txt 2023-06-29 19:13:15.561253229 -0400 -@@ -343,6 +343,7 @@ - elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin) - find_package(CURL REQUIRED) - target_include_directories(CoreFoundation PRIVATE ${CURL_INCLUDE_DIRS}) -+ find_package(ICU COMPONENTS uc i18n data REQUIRED) - find_package(LibXml2 REQUIRED) - target_include_directories(CoreFoundation PRIVATE ${LIBXML2_INCLUDE_DIR}) - else() -@@ -377,6 +378,9 @@ - elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin) - target_link_libraries(CoreFoundation PRIVATE - ${CURL_LIBRARIES} -+ ICU::uc -+ ICU::i18n -+ ICU::data - ${LIBXML2_LIBRARIES}) - else() - target_link_libraries(CoreFoundation -@@ -408,9 +412,6 @@ - PROPERTIES LINK_FLAGS - -Xlinker;@${CMAKE_SOURCE_DIR}/linux.ld;-Bsymbolic) - elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin) -- target_link_libraries(CoreFoundation -- PRIVATE -- icucore) - target_link_options(CoreFoundation - PUBLIC - "LINKER:-alias_list,../Base.subproj/DarwinSymbolAliases" diff --git a/pkgs/by-name/da/darwin/packages/swift-corelibs/0008-Dont-link-libcurl.patch b/pkgs/by-name/da/darwin/packages/swift-corelibs/0008-Dont-link-libcurl.patch deleted file mode 100644 index 4207bf1..0000000 --- a/pkgs/by-name/da/darwin/packages/swift-corelibs/0008-Dont-link-libcurl.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff -u a/CoreFoundation/CMakeLists.txt b/CoreFoundation/CMakeLists.txt ---- a/CoreFoundation/CMakeLists.txt 1969-12-31 19:00:01.000000000 -0500 -+++ b/CoreFoundation/CMakeLists.txt 2023-06-29 19:39:30.074449222 -0400 -@@ -104,7 +104,6 @@ - # URL - URL.subproj/CFURL.inc.h - URL.subproj/CFURLPriv.h -- URL.subproj/CFURLSessionInterface.h - PUBLIC_HEADERS - # FIXME: PrivateHeaders referenced by public headers - Base.subproj/CFKnownLocations.h -@@ -120,7 +119,6 @@ - String.subproj/CFRegularExpression.h - String.subproj/CFRunArray.h - URL.subproj/CFURLPriv.h -- URL.subproj/CFURLSessionInterface.h - - # AppServices - AppServices.subproj/CFNotificationCenter.h -@@ -280,8 +278,7 @@ - URL.subproj/CFURL.c - URL.subproj/CFURLAccess.c - URL.subproj/CFURLComponents.c -- URL.subproj/CFURLComponents_URIParser.c -- URL.subproj/CFURLSessionInterface.c) -+ URL.subproj/CFURLComponents_URIParser.c) - if(CMAKE_SYSTEM_NAME STREQUAL Linux OR CMAKE_SYSTEM_NAME STREQUAL Android) - target_compile_definitions(CoreFoundation - PRIVATE -@@ -341,8 +338,6 @@ - PRIVATE - ${CURL_INCLUDE_DIRS}) - elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin) -- find_package(CURL REQUIRED) -- target_include_directories(CoreFoundation PRIVATE ${CURL_INCLUDE_DIRS}) - find_package(ICU COMPONENTS uc i18n data REQUIRED) - find_package(LibXml2 REQUIRED) - target_include_directories(CoreFoundation PRIVATE ${LIBXML2_INCLUDE_DIR}) -@@ -377,7 +372,6 @@ - ${LIBXML2_LIBRARIES}) - elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin) - target_link_libraries(CoreFoundation PRIVATE -- ${CURL_LIBRARIES} - ICU::uc - ICU::i18n - ICU::data diff --git a/pkgs/by-name/da/darwin/packages/swift-corelibs/corefoundation.nix b/pkgs/by-name/da/darwin/packages/swift-corelibs/corefoundation.nix deleted file mode 100644 index 5c593b1..0000000 --- a/pkgs/by-name/da/darwin/packages/swift-corelibs/corefoundation.nix +++ /dev/null @@ -1,91 +0,0 @@ -{ 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"; - sha256 = "0krfyghj4f096arvvpf884ra5czqlmbrgf8yyc0b3avqmb613pcc"; - }; -in - -stdenv.mkDerivation { - pname = "swift-corefoundation"; - version = "unstable-2018-09-14"; - - src = fetchFromGitHub { - owner = "apple"; - repo = "swift-corelibs-foundation"; - rev = "71aaba20e1450a82c516af1342fe23268e15de0a"; - sha256 = "17kpql0f27xxz4jjw84vpas5f5sn4vdqwv10g151rc3rswbwln1z"; - }; - - nativeBuildInputs = [ cmake pkg-config python3Minimal ]; - buildInputs = [ (lib.getDev launchd) libdispatch libxml2 objc4 icu ]; - - patches = [ - ./0001-Add-missing-TARGET_OS_-defines.patch - # CFMessagePort.h uses `bootstrap_check_in` without declaring it, which is defined in the launchd headers. - ./0002-Add-missing-launchd-header.patch - # CFURLComponents fails to build with clang 16 due to an invalid pointer conversion. This is fixed upstream. - ./0003-Fix-incompatible-pointer-conversion.patch - # Fix `CMakeLists.txt` to allow it to be used instead of `build.py` to build on Darwin. - ./0004-Fix-Darwin-cmake-build.patch - # Install CF framework in `$out/Library/Frameworks` instead of `$out/System/Frameworks`. - ./0005-Fix-framework-installation-path.patch - # Build a framework that matches the contents of the system CoreFoundation. This patch adds - # versioning and drops the prefix and suffix, so the dynamic library is named `CoreFoundation` - # instead of `libCoreFoundation.dylib`. - ./0006-System-CF-framework-compatibility.patch - # Link against the nixpkgs ICU instead of using Apple’s vendored version. - ./0007-Use-nixpkgs-icu.patch - # Don’t link against libcurl. This breaks a cycle between CF and curl, which depends on CF and - # uses the SystemConfiguration framework to support NAT64. - # This is safe because the symbols provided in CFURLSessionInterface are not provided by the - # system CoreFoundation. They are meant to be used by the implementation of `NSURLSession` in - # swift-corelibs-foundation, which is not built because it is not fully compatible with the - # system Foundation used on Darwin. - ./0008-Dont-link-libcurl.patch - ]; - - postPatch = '' - cd CoreFoundation - - cp ${sysdir-free-system-directories} Base.subproj/CFSystemDirectories.c - - # Includes xpc for some initialization routine that they don't define anyway, so no harm here - substituteInPlace PlugIn.subproj/CFBundlePriv.h \ - --replace '#if (TARGET_OS_MAC' '#if (0' - - # Why do we define __GNU__? Is that normal? - substituteInPlace Base.subproj/CFAsmMacros.h \ - --replace '#if defined(__GNU__) ||' '#if 0 &&' - - # The MIN macro doesn't seem to be defined sensibly for us. Not sure if our stdenv or their bug - substituteInPlace Base.subproj/CoreFoundation_Prefix.h \ - --replace '#if DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX' '#if 1' - ''; - - env.NIX_CFLAGS_COMPILE = toString [ - # Silence warnings regarding other targets - "-Wno-error=undef-prefix" - # Avoid redefinitions when including objc headers - "-DINCLUDE_OBJC=1" - ]; - - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - "-DCF_ENABLE_LIBDISPATCH=OFF" - ]; - - enableParallelBuilding = true; - - postInstall = '' - install_name_tool -id '@rpath/CoreFoundation.framework/Versions/A/CoreFoundation' \ - "$out/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation" - - mkdir -p "$out/nix-support" - substituteAll ${./pure-corefoundation-hook.sh} "$out/nix-support/setup-hook" - ''; -} diff --git a/pkgs/by-name/da/darwin/packages/swift-corelibs/libdispatch.nix b/pkgs/by-name/da/darwin/packages/swift-corelibs/libdispatch.nix deleted file mode 100644 index a5b4b2a..0000000 --- a/pkgs/by-name/da/darwin/packages/swift-corelibs/libdispatch.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ stdenv, fetchFromGitHub, cmake, apple_sdk_sierra, xnu-new }: - -stdenv.mkDerivation rec { - name = "swift-corelibs-libdispatch"; - src = fetchFromGitHub { - owner = "apple"; - repo = name; - rev = "f83b5a498bad8e9ff8916183cf6e8ccf677c346b"; - sha256 = "1czkyyc9llq2mnqfp19mzcfsxzas0y8zrk0gr5hg60acna6jkz2l"; - }; - nativeBuildInputs = [ cmake ]; - buildInputs = [ apple_sdk_sierra.sdk xnu-new ]; -} diff --git a/pkgs/by-name/da/darwin/packages/swift-corelibs/pure-corefoundation-hook.sh b/pkgs/by-name/da/darwin/packages/swift-corelibs/pure-corefoundation-hook.sh deleted file mode 100644 index d5539f5..0000000 --- a/pkgs/by-name/da/darwin/packages/swift-corelibs/pure-corefoundation-hook.sh +++ /dev/null @@ -1,7 +0,0 @@ -usePureCoreFoundation() { -# Avoid overriding value set by the impure CF - if [ -z "${NIX_COREFOUNDATION_RPATH:-}" ]; then - export NIX_COREFOUNDATION_RPATH=@out@/Library/Frameworks - fi -} -addEnvHooks "$hostOffset" usePureCoreFoundation diff --git a/pkgs/by-name/da/darwin/packages/trash/default.nix b/pkgs/by-name/da/darwin/packages/trash/default.nix deleted file mode 100644 index a239f66..0000000 --- a/pkgs/by-name/da/darwin/packages/trash/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, perl, AppKit, Cocoa, ScriptingBridge }: - -stdenv.mkDerivation rec { - version = "0.9.2"; - pname = "trash"; - - src = fetchFromGitHub { - owner = "ali-rantakari"; - repo = "trash"; - rev = "v${version}"; - sha256 = "1d3rc03vgz32faj7qi18iiggxvxlqrj9lsk5jkpa9r1mcs5d89my"; - }; - - buildInputs = [ perl Cocoa AppKit ScriptingBridge ]; - - patches = [ ./trash.diff ]; - - buildPhase = "make all docs"; - - installPhase = '' - mkdir -p $out/bin - mkdir -p $out/share/man/man1 - install -m 0755 trash $out/bin - install -m 0444 trash.1 $out/share/man/man1 - ''; - - meta = { - homepage = "https://github.com/ali-rantakari/trash"; - description = "Small command-line program for OS X that moves files or - folders to the trash."; - platforms = lib.platforms.darwin; - license = lib.licenses.mit; - }; -} diff --git a/pkgs/by-name/da/darwin/packages/trash/trash.diff b/pkgs/by-name/da/darwin/packages/trash/trash.diff deleted file mode 100644 index d96f6c9..0000000 --- a/pkgs/by-name/da/darwin/packages/trash/trash.diff +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/Makefile b/Makefile -index 5e4306f..9c975fc 100644 ---- a/Makefile -+++ b/Makefile -@@ -10,7 +10,7 @@ trash: $(SOURCE_FILES) - @echo - @echo ---- Compiling: - @echo ====================================== -- $(CC) -O2 -Wall -Wextra -Wpartial-availability -Wno-unguarded-availability -force_cpusubtype_ALL -mmacosx-version-min=10.7 -arch i386 -arch x86_64 -framework AppKit -framework ScriptingBridge -o $@ $(SOURCE_FILES) -+ $(CC) -O2 -Wall -Wextra -Wpartial-availability -Wno-unguarded-availability -framework AppKit -framework ScriptingBridge -o $@ $(SOURCE_FILES) - - analyze: - @echo diff --git a/pkgs/by-name/da/darwin/packages/xattr/default.nix b/pkgs/by-name/da/darwin/packages/xattr/default.nix deleted file mode 100644 index 7fe0f84..0000000 --- a/pkgs/by-name/da/darwin/packages/xattr/default.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, buildPythonPackage -, python -, ed -, unifdef -}: - -buildPythonPackage rec { - pname = "xattr"; - version = "61.60.1"; - - src = fetchFromGitHub { - owner = "apple-oss-distributions"; - repo = "python_modules"; - rev = "python_modules-${version}"; - hash = "sha256-kfMGPzNAJsPvvUCSzcR0kgg85U6/NFf/ie1uwg9tfqY="; - }; - - sourceRoot = "${src.name}/Modules/xattr-0.6.4"; - format = "other"; - - nativeBuildInputs = [ - ed - unifdef - python.pkgs.setuptools - ]; - - makeFlags = [ - "OBJROOT=$(PWD)" - "DSTROOT=${placeholder "out"}" - "OSL=${placeholder "doc"}/share/xattr/OpenSourceLicenses" - "OSV=${placeholder "doc"}/share/xattr/OpenSourceVersions" - ]; - - # need to use `out` instead of `bin` since buildPythonPackage ignores the latter - outputs = [ "out" "doc" "python" ]; - - # We need to patch a reference to gnutar in an included Makefile - postUnpack = '' - chmod u+w $sourceRoot/.. - ''; - - postPatch = '' - substituteInPlace ../Makefile.inc --replace gnutar tar - substituteInPlace Makefile --replace "/usr" "" - ''; - - preInstall = '' - # prevent setup.py from trying to download setuptools - sed -i xattr-*/setup.py -e '/ez_setup/d' - - # create our custom target dirs we patch in - mkdir -p "$doc/share/xattr/"OpenSource{Licenses,Versions} - mkdir -p "$python/lib/${python.libPrefix}" - ''; - - # move python package to its own output to reduce clutter - postInstall = '' - mv "$out/lib/python" "$python/${python.sitePackages}" - rmdir "$out/lib" - ''; - - makeWrapperArgs = [ - "--prefix" - "PYTHONPATH" - ":" - "${placeholder "python"}/${python.sitePackages}" - ]; - - meta = with lib; { - description = "Display and manipulate extended attributes"; - 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 deleted file mode 100644 index 1b7949d..0000000 --- a/pkgs/by-name/da/darwin/packages/xcode/default.nix +++ /dev/null @@ -1,87 +0,0 @@ -{ stdenv, requireFile, lib }: - -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 - ''; - - 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; - }; - - in app.overrideAttrs ( oldAttrs: oldAttrs // { inherit meta; }); - -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="; - xcode_9_2 = requireXcode "9.2" "sha256-jMiG2G2zoGw4m00CjkGE+2cn0qeOdSUcXosZI2577q0="; - xcode_9_3 = requireXcode "9.3" "sha256-XIQYjfDVSmrYbyolnZIUtmOMhj9uhyWIn0KncsiaqYo="; - xcode_9_4 = requireXcode "9.4" "sha256-ZzE4F4UHVgKlJIn36kfs6Pba8iUAe6P/rh/VmxwLXwE="; - xcode_9_4_1 = requireXcode "9.4.1" "sha256-fFGB/XMZJQ2u9qh+2LYBHFh6mj5lr6gMlSQwgyS8M3k="; - xcode_10_1 = requireXcode "10.1" "sha256-u4Br3SsWbPCv6r4vGHFQUQmfPb9oUEmcdCFktMlbTes="; - xcode_10_2 = requireXcode "10.2" "sha256-592xNBS3Obp/3sDROyI4SxPN77cKMk45Lnis/QJd/vc="; - xcode_10_2_1 = requireXcode "10.2.1" "sha256-r65DbLDpiFJ78VH2hvfp7ZVpehoI44PSnaeDbElZTYc="; - xcode_10_3 = requireXcode "10.3" "sha256-61lDed7/Wi6uVBaj6/fUELISvmH3j69dQE19Y91GwsQ="; - xcode_11 = requireXcode "11" "sha256-EDM5tjuzGTzlVUg6MJKup/Q2OBrFXjzFdXSRO+eQA+Q="; - xcode_11_1 = requireXcode "11.1" "sha256-gXGVkEG+dFEoDbRjtfyN8MeUcoA6hcfsUaVDKAn7T7A="; - xcode_11_2 = requireXcode "11.2" "sha256-8qFEgRVhgOomSnJk23WaM/nACK9JFmiIICjUfT/Co9I="; - xcode_11_3 = requireXcode "11.3" "sha256-6nPCY0rIU2c7nRYDXMWcDHrCm34eqZq6wx157mk3OxM="; - xcode_11_3_1 = requireXcode "11.3.1" "sha256-BI8Olfqyxh51jyNpydiRkPwTQ4OK+ZpHUybPkCSL1tw="; - xcode_11_4 = requireXcode "11.4" "sha256-x/sLazHPs4SoCPKJ0CgFbTEmxlzJeZ7HtinMlse6uRg="; - xcode_11_5 = requireXcode "11.5" "sha256-fLqMcIOM6ZqacTBMF6N0swJzOmnt+FfYlDt8m/BXP7Y="; - xcode_11_6 = requireXcode "11.6" "sha256-nVDsbD7pGCM2jgXzRtV+VIFc/klmX05W6x/eOAOHjvg="; - xcode_11_7 = requireXcode "11.7" "sha256-stKqjXmERNQ4qF/73EE34oLtfF9+WZXK9BwXSVjLQhA="; - xcode_12 = requireXcode "12" "sha256-H8Hcre9dB2v2VT8/SrEkU+RZ2rZRiM0JqMX6i4yoffA="; - xcode_12_0_1 = requireXcode "12.0.1" "sha256-gK7PZ22aR3ow72pSjr7tUIOsgoAEUqcMZgNCEFVp29w="; - xcode_12_1 = requireXcode "12.1" "sha256-l4+MW8IWMqR/9dxd9FVtfxJs3M/qtIcj6nyQ2cjxLfI="; - xcode_12_2 = requireXcode "12.2" "sha256-G8jku/9WB8Q1zgKWGbSv06bSWE385sPlc7xnfonjIJ4="; - xcode_12_3 = requireXcode "12.3" "sha256-CYU2fAeT+DWiK/mpRoGv57RjGfseL23BDU57SokPjk8="; - xcode_12_4 = requireXcode "12.4" "sha256-Qw4j+XFry85/AviHQVhjjjKLAfmRNNwMGN5G8FheJwQ="; - xcode_12_5 = requireXcode "12.5" "sha256-xiGffnV0P9Ojd6IrJSXILUX4oznPif7zm00WAksn3qU="; - xcode_12_5_1 = requireXcode "12.5.1" "sha256-zL0kS86ZzBkIrKLPKvWguDvXj9Tqbr7uR/VZaT/uZ9A="; - xcode_13 = requireXcode "13" "sha256-uTY6d5DBu4OOQLkxs3ExDfLXh50rE2LLlqtCbk3Qn6E="; - xcode_13_1 = requireXcode "13.1" "sha256-vd+4eFVaAyvXsdaExcfbDZSXOwkpt+rEbkBYSMjdUEA="; - xcode_13_2 = requireXcode "13.2" "sha256-guJXm/QnMfvUZwAcJwoy0QeO+DpDcUhs8AxVKvm9tYQ="; - xcode_13_2_1 = requireXcode "13.2.1" "sha256-r832Uu+Q8utK4zN0CtwiMCvMYT5HstWInyq4cNIaZJM="; - xcode_13_3 = requireXcode "13.3" "sha256-p2zaWMpmUeNHQtYOOaVdhCt3cgapvzL3l73/J+UwzCE="; - xcode_13_3_1 = requireXcode "13.3.1" "sha256-j71vpJVJpyj/IOlL+4+5lYgOlhf/zn+7ExIHbxL51cQ="; - xcode_13_4 = requireXcode "13.4" "sha256-IY1coss90GlBeJg/HQPMU8v2rOOxsqlY5q+2Qxe8nnY="; - xcode_13_4_1 = requireXcode "13.4.1" "sha256-Jk8fLgvnODoIhuVJqfV0KrpBBL40fRrHJbFmm44NRKE="; - xcode_14 = requireXcode "14" "sha256-E+wjPgQx/lbYAsauksdmGsygL5VPBA8R9pHB93eA7T0="; - 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")}"; -}) diff --git a/pkgs/by-name/da/darwin/packages/xcode/sdk-pkgs.nix b/pkgs/by-name/da/darwin/packages/xcode/sdk-pkgs.nix deleted file mode 100644 index 45cb12b..0000000 --- a/pkgs/by-name/da/darwin/packages/xcode/sdk-pkgs.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ stdenv -, clang-unwrapped -, binutils-unwrapped -, runCommand - -, wrapBintoolsWith -, wrapCCWith -, buildIosSdk, targetIosSdkPkgs -, xcode -, lib -}: - -let - -minSdkVersion = stdenv.targetPlatform.minSdkVersion or "9.0"; - -in - -rec { - sdk = rec { - name = "ios-sdk"; - type = "derivation"; - outPath = xcode + "/Contents/Developer/Platforms/${platform}.platform/Developer/SDKs/${platform}${version}.sdk"; - - platform = stdenv.targetPlatform.xcodePlatform or ""; - version = stdenv.targetPlatform.sdkVer or ""; - }; - - binutils = wrapBintoolsWith { - libc = targetIosSdkPkgs.libraries; - 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 = { - 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/CVE-2017-10140-4.8-cwd-db_config.patch b/pkgs/by-name/db/db/CVE-2017-10140-4.8-cwd-db_config.patch deleted file mode 100644 index ed916fc..0000000 --- a/pkgs/by-name/db/db/CVE-2017-10140-4.8-cwd-db_config.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/env/env_open.c.old 2017-06-26 10:32:11.011419981 +0200 -+++ b/env/env_open.c 2017-06-26 10:32:46.893721233 +0200 -@@ -473,7 +473,7 @@ - env->db_mode = mode == 0 ? DB_MODE_660 : mode; - - /* Read the DB_CONFIG file. */ -- if ((ret = __env_read_db_config(env)) != 0) -+ if (env->db_home != NULL && (ret = __env_read_db_config(env)) != 0) - return (ret); - - /* diff --git a/pkgs/by-name/db/db/CVE-2017-10140-cwd-db_config.patch b/pkgs/by-name/db/db/CVE-2017-10140-cwd-db_config.patch deleted file mode 100644 index 652e962..0000000 --- a/pkgs/by-name/db/db/CVE-2017-10140-cwd-db_config.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- db-5.3.28/src/env/env_open.c.old 2017-06-26 10:32:11.011419981 +0200 -+++ db-5.3.28/src/env/env_open.c 2017-06-26 10:32:46.893721233 +0200 -@@ -473,7 +473,7 @@ - env->db_mode = mode == 0 ? DB_MODE_660 : mode; - - /* Read the DB_CONFIG file. */ -- if ((ret = __env_read_db_config(env)) != 0) -+ if (env->db_home != NULL && (ret = __env_read_db_config(env)) != 0) - return (ret); - - /* diff --git a/pkgs/by-name/db/db/clang-4.8.patch b/pkgs/by-name/db/db/clang-4.8.patch deleted file mode 100644 index 0aff876..0000000 --- a/pkgs/by-name/db/db/clang-4.8.patch +++ /dev/null @@ -1,205 +0,0 @@ -diff --git a/dbinc/atomic.h b/dbinc/atomic.h -index 0034dcc..160c8ea 100644 ---- a/dbinc/atomic.h -+++ b/dbinc/atomic.h -@@ -70,7 +70,7 @@ typedef struct { - * These have no memory barriers; the caller must include them when necessary. - */ - #define atomic_read(p) ((p)->value) --#define atomic_init(p, val) ((p)->value = (val)) -+#define atomic_init_db(p, val) ((p)->value = (val)) - - #ifdef HAVE_ATOMIC_SUPPORT - -@@ -144,7 +144,7 @@ typedef LONG volatile *interlocked_val; - #define atomic_inc(env, p) __atomic_inc(p) - #define atomic_dec(env, p) __atomic_dec(p) - #define atomic_compare_exchange(env, p, o, n) \ -- __atomic_compare_exchange((p), (o), (n)) -+ __atomic_compare_exchange_int((p), (o), (n)) - static inline int __atomic_inc(db_atomic_t *p) - { - int temp; -@@ -176,7 +176,7 @@ static inline int __atomic_dec(db_atomic_t *p) - * http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html - * which configure could be changed to use. - */ --static inline int __atomic_compare_exchange( -+static inline int __atomic_compare_exchange_int( - db_atomic_t *p, atomic_value_t oldval, atomic_value_t newval) - { - atomic_value_t was; -@@ -206,7 +206,7 @@ static inline int __atomic_compare_exchange( - #define atomic_dec(env, p) (--(p)->value) - #define atomic_compare_exchange(env, p, oldval, newval) \ - (DB_ASSERT(env, atomic_read(p) == (oldval)), \ -- atomic_init(p, (newval)), 1) -+ atomic_init_db(p, (newval)), 1) - #else - #define atomic_inc(env, p) __atomic_inc(env, p) - #define atomic_dec(env, p) __atomic_dec(env, p) -diff --git a/mp/mp_fget.c b/mp/mp_fget.c -index 5fdee5a..0b75f57 100644 ---- a/mp/mp_fget.c -+++ b/mp/mp_fget.c -@@ -617,7 +617,7 @@ alloc: /* Allocate a new buffer header and data space. */ - - /* Initialize enough so we can call __memp_bhfree. */ - alloc_bhp->flags = 0; -- atomic_init(&alloc_bhp->ref, 1); -+ atomic_init_db(&alloc_bhp->ref, 1); - #ifdef DIAGNOSTIC - if ((uintptr_t)alloc_bhp->buf & (sizeof(size_t) - 1)) { - __db_errx(env, -@@ -911,7 +911,7 @@ alloc: /* Allocate a new buffer header and data space. */ - MVCC_MPROTECT(bhp->buf, mfp->stat.st_pagesize, - PROT_READ); - -- atomic_init(&alloc_bhp->ref, 1); -+ atomic_init_db(&alloc_bhp->ref, 1); - MUTEX_LOCK(env, alloc_bhp->mtx_buf); - alloc_bhp->priority = bhp->priority; - alloc_bhp->pgno = bhp->pgno; -diff --git a/mp/mp_mvcc.c b/mp/mp_mvcc.c -index 34467d2..f05aa0c 100644 ---- a/mp/mp_mvcc.c -+++ b/mp/mp_mvcc.c -@@ -276,7 +276,7 @@ __memp_bh_freeze(dbmp, infop, hp, bhp, need_frozenp) - #else - memcpy(frozen_bhp, bhp, SSZA(BH, buf)); - #endif -- atomic_init(&frozen_bhp->ref, 0); -+ atomic_init_db(&frozen_bhp->ref, 0); - if (mutex != MUTEX_INVALID) - frozen_bhp->mtx_buf = mutex; - else if ((ret = __mutex_alloc(env, MTX_MPOOL_BH, -@@ -428,7 +428,7 @@ __memp_bh_thaw(dbmp, infop, hp, frozen_bhp, alloc_bhp) - #endif - alloc_bhp->mtx_buf = mutex; - MUTEX_LOCK(env, alloc_bhp->mtx_buf); -- atomic_init(&alloc_bhp->ref, 1); -+ atomic_init_db(&alloc_bhp->ref, 1); - F_CLR(alloc_bhp, BH_FROZEN); - } - -diff --git a/mp/mp_region.c b/mp/mp_region.c -index e6cece9..ddbe906 100644 ---- a/mp/mp_region.c -+++ b/mp/mp_region.c -@@ -224,7 +224,7 @@ __memp_init(env, dbmp, reginfo_off, htab_buckets, max_nreg) - MTX_MPOOL_FILE_BUCKET, 0, &htab[i].mtx_hash)) != 0) - return (ret); - SH_TAILQ_INIT(&htab[i].hash_bucket); -- atomic_init(&htab[i].hash_page_dirty, 0); -+ atomic_init_db(&htab[i].hash_page_dirty, 0); - } - - /* -@@ -269,7 +269,7 @@ __memp_init(env, dbmp, reginfo_off, htab_buckets, max_nreg) - hp->mtx_hash = (mtx_base == MUTEX_INVALID) ? MUTEX_INVALID : - mtx_base + i; - SH_TAILQ_INIT(&hp->hash_bucket); -- atomic_init(&hp->hash_page_dirty, 0); -+ atomic_init_db(&hp->hash_page_dirty, 0); - #ifdef HAVE_STATISTICS - hp->hash_io_wait = 0; - hp->hash_frozen = hp->hash_thawed = hp->hash_frozen_freed = 0; -diff --git a/mutex/mut_method.c b/mutex/mut_method.c -index 2588763..5c6d516 100644 ---- a/mutex/mut_method.c -+++ b/mutex/mut_method.c -@@ -426,7 +426,7 @@ atomic_compare_exchange(env, v, oldval, newval) - MUTEX_LOCK(env, mtx); - ret = atomic_read(v) == oldval; - if (ret) -- atomic_init(v, newval); -+ atomic_init_db(v, newval); - MUTEX_UNLOCK(env, mtx); - - return (ret); -diff --git a/mutex/mut_tas.c b/mutex/mut_tas.c -index f3922e0..e40fcdf 100644 ---- a/mutex/mut_tas.c -+++ b/mutex/mut_tas.c -@@ -46,7 +46,7 @@ __db_tas_mutex_init(env, mutex, flags) - - #ifdef HAVE_SHARED_LATCHES - if (F_ISSET(mutexp, DB_MUTEX_SHARED)) -- atomic_init(&mutexp->sharecount, 0); -+ atomic_init_db(&mutexp->sharecount, 0); - else - #endif - if (MUTEX_INIT(&mutexp->tas)) { -@@ -486,7 +486,7 @@ __db_tas_mutex_unlock(env, mutex) - F_CLR(mutexp, DB_MUTEX_LOCKED); - /* Flush flag update before zeroing count */ - MEMBAR_EXIT(); -- atomic_init(&mutexp->sharecount, 0); -+ atomic_init_db(&mutexp->sharecount, 0); - } else { - DB_ASSERT(env, sharecount > 0); - MEMBAR_EXIT(); -diff -ur a/dist/aclocal/clock.m4 b/dist/aclocal/clock.m4 ---- a/dist/aclocal/clock.m4 1969-12-31 19:00:01.000000000 -0500 -+++ b/dist/aclocal/clock.m4 2023-06-05 19:14:02.007080500 -0400 -@@ -21,6 +21,7 @@ - AC_CACHE_CHECK([for clock_gettime monotonic clock], db_cv_clock_monotonic, [ - AC_TRY_RUN([ - #include -+int - main() { - struct timespec t; - return (clock_gettime(CLOCK_MONOTONIC, &t) != 0); -diff -ur a/dist/aclocal/mutex.m4 b/dist/aclocal/mutex.m4 ---- a/dist/aclocal/mutex.m4 1969-12-31 19:00:01.000000000 -0500 -+++ b/dist/aclocal/mutex.m4 2023-06-05 19:14:47.214158196 -0400 -@@ -4,6 +4,7 @@ - AC_DEFUN(AM_PTHREADS_SHARED, [ - AC_TRY_RUN([ - #include -+int - main() { - pthread_cond_t cond; - pthread_mutex_t mutex; -@@ -46,6 +47,7 @@ - AC_DEFUN(AM_PTHREADS_PRIVATE, [ - AC_TRY_RUN([ - #include -+int - main() { - pthread_cond_t cond; - pthread_mutex_t mutex; -diff -ur a/dist/aclocal/sequence.m4 b/dist/aclocal/sequence.m4 ---- a/dist/aclocal/sequence.m4 1969-12-31 19:00:01.000000000 -0500 -+++ b/dist/aclocal/sequence.m4 2023-06-05 19:14:02.007869956 -0400 -@@ -43,6 +43,9 @@ - # test, which won't test for the appropriate printf format strings. - if test "$db_cv_build_sequence" = "yes"; then - AC_TRY_RUN([ -+ #include -+ #include -+ int - main() { - $db_cv_seq_type l; - unsigned $db_cv_seq_type u; -@@ -59,7 +62,9 @@ - return (1); - return (0); - }],, [db_cv_build_sequence="no"], -- AC_TRY_LINK(,[ -+ AC_TRY_LINK([ -+ #include -+ #include ],[ - $db_cv_seq_type l; - unsigned $db_cv_seq_type u; - char buf@<:@100@:>@; -diff -ur a/dist/RELEASE b/dist/RELEASE ---- a/dist/RELEASE 1969-12-31 19:00:01.000000000 -0500 -+++ b/dist/RELEASE 2023-07-02 17:32:34.703953049 -0400 -@@ -7,5 +7,5 @@ - - DB_VERSION_UNIQUE_NAME=`printf "_%d%03d" $DB_VERSION_MAJOR $DB_VERSION_MINOR` - --DB_RELEASE_DATE=`date "+%B %e, %Y"` -+DB_RELEASE_DATE="April 9, 2010" - DB_VERSION_STRING="Berkeley DB $DB_VERSION: ($DB_RELEASE_DATE)" diff --git a/pkgs/by-name/db/db/clang-5.3.patch b/pkgs/by-name/db/db/clang-5.3.patch deleted file mode 100644 index 823a71d..0000000 --- a/pkgs/by-name/db/db/clang-5.3.patch +++ /dev/null @@ -1,249 +0,0 @@ -diff --git a/src/dbinc/atomic.h b/src/dbinc/atomic.h -index 6a858f7..9f338dc 100644 ---- a/src/dbinc/atomic.h -+++ b/src/dbinc/atomic.h -@@ -70,7 +70,7 @@ typedef struct { - * These have no memory barriers; the caller must include them when necessary. - */ - #define atomic_read(p) ((p)->value) --#define atomic_init(p, val) ((p)->value = (val)) -+#define atomic_init_db(p, val) ((p)->value = (val)) - - #ifdef HAVE_ATOMIC_SUPPORT - -@@ -144,7 +144,7 @@ typedef LONG volatile *interlocked_val; - #define atomic_inc(env, p) __atomic_inc(p) - #define atomic_dec(env, p) __atomic_dec(p) - #define atomic_compare_exchange(env, p, o, n) \ -- __atomic_compare_exchange((p), (o), (n)) -+ __atomic_compare_exchange_int((p), (o), (n)) - static inline int __atomic_inc(db_atomic_t *p) - { - int temp; -@@ -176,7 +176,7 @@ static inline int __atomic_dec(db_atomic_t *p) - * http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html - * which configure could be changed to use. - */ --static inline int __atomic_compare_exchange( -+static inline int __atomic_compare_exchange_int( - db_atomic_t *p, atomic_value_t oldval, atomic_value_t newval) - { - atomic_value_t was; -@@ -206,7 +206,7 @@ static inline int __atomic_compare_exchange( - #define atomic_dec(env, p) (--(p)->value) - #define atomic_compare_exchange(env, p, oldval, newval) \ - (DB_ASSERT(env, atomic_read(p) == (oldval)), \ -- atomic_init(p, (newval)), 1) -+ atomic_init_db(p, (newval)), 1) - #else - #define atomic_inc(env, p) __atomic_inc(env, p) - #define atomic_dec(env, p) __atomic_dec(env, p) -diff --git a/src/mp/mp_fget.c b/src/mp/mp_fget.c -index 16de695..d0dcc29 100644 ---- a/src/mp/mp_fget.c -+++ b/src/mp/mp_fget.c -@@ -649,7 +649,7 @@ alloc: /* Allocate a new buffer header and data space. */ - - /* Initialize enough so we can call __memp_bhfree. */ - alloc_bhp->flags = 0; -- atomic_init(&alloc_bhp->ref, 1); -+ atomic_init_db(&alloc_bhp->ref, 1); - #ifdef DIAGNOSTIC - if ((uintptr_t)alloc_bhp->buf & (sizeof(size_t) - 1)) { - __db_errx(env, DB_STR("3025", -@@ -955,7 +955,7 @@ alloc: /* Allocate a new buffer header and data space. */ - MVCC_MPROTECT(bhp->buf, mfp->pagesize, - PROT_READ); - -- atomic_init(&alloc_bhp->ref, 1); -+ atomic_init_db(&alloc_bhp->ref, 1); - MUTEX_LOCK(env, alloc_bhp->mtx_buf); - alloc_bhp->priority = bhp->priority; - alloc_bhp->pgno = bhp->pgno; -diff --git a/src/mp/mp_mvcc.c b/src/mp/mp_mvcc.c -index 770bad8..e28cce0 100644 ---- a/src/mp/mp_mvcc.c -+++ b/src/mp/mp_mvcc.c -@@ -276,7 +276,7 @@ __memp_bh_freeze(dbmp, infop, hp, bhp, need_frozenp) - #else - memcpy(frozen_bhp, bhp, SSZA(BH, buf)); - #endif -- atomic_init(&frozen_bhp->ref, 0); -+ atomic_init_db(&frozen_bhp->ref, 0); - if (mutex != MUTEX_INVALID) - frozen_bhp->mtx_buf = mutex; - else if ((ret = __mutex_alloc(env, MTX_MPOOL_BH, -@@ -428,7 +428,7 @@ __memp_bh_thaw(dbmp, infop, hp, frozen_bhp, alloc_bhp) - #endif - alloc_bhp->mtx_buf = mutex; - MUTEX_LOCK(env, alloc_bhp->mtx_buf); -- atomic_init(&alloc_bhp->ref, 1); -+ atomic_init_db(&alloc_bhp->ref, 1); - F_CLR(alloc_bhp, BH_FROZEN); - } - -diff --git a/src/mp/mp_region.c b/src/mp/mp_region.c -index 4952030..47645f8 100644 ---- a/src/mp/mp_region.c -+++ b/src/mp/mp_region.c -@@ -245,7 +245,7 @@ __memp_init(env, dbmp, reginfo_off, htab_buckets, max_nreg) - MTX_MPOOL_FILE_BUCKET, 0, &htab[i].mtx_hash)) != 0) - return (ret); - SH_TAILQ_INIT(&htab[i].hash_bucket); -- atomic_init(&htab[i].hash_page_dirty, 0); -+ atomic_init_db(&htab[i].hash_page_dirty, 0); - } - - /* -@@ -302,7 +302,7 @@ no_prealloc: - } else - hp->mtx_hash = mtx_base + (i % dbenv->mp_mtxcount); - SH_TAILQ_INIT(&hp->hash_bucket); -- atomic_init(&hp->hash_page_dirty, 0); -+ atomic_init_db(&hp->hash_page_dirty, 0); - #ifdef HAVE_STATISTICS - hp->hash_io_wait = 0; - hp->hash_frozen = hp->hash_thawed = hp->hash_frozen_freed = 0; -diff --git a/src/mutex/mut_method.c b/src/mutex/mut_method.c -index 09353b0..177353c 100644 ---- a/src/mutex/mut_method.c -+++ b/src/mutex/mut_method.c -@@ -474,7 +474,7 @@ atomic_compare_exchange(env, v, oldval, newval) - MUTEX_LOCK(env, mtx); - ret = atomic_read(v) == oldval; - if (ret) -- atomic_init(v, newval); -+ atomic_init_db(v, newval); - MUTEX_UNLOCK(env, mtx); - - return (ret); -diff --git a/src/mutex/mut_tas.c b/src/mutex/mut_tas.c -index 106b161..fc4de9d 100644 ---- a/src/mutex/mut_tas.c -+++ b/src/mutex/mut_tas.c -@@ -47,7 +47,7 @@ __db_tas_mutex_init(env, mutex, flags) - - #ifdef HAVE_SHARED_LATCHES - if (F_ISSET(mutexp, DB_MUTEX_SHARED)) -- atomic_init(&mutexp->sharecount, 0); -+ atomic_init_db(&mutexp->sharecount, 0); - else - #endif - if (MUTEX_INIT(&mutexp->tas)) { -@@ -536,7 +536,7 @@ __db_tas_mutex_unlock(env, mutex) - F_CLR(mutexp, DB_MUTEX_LOCKED); - /* Flush flag update before zeroing count */ - MEMBAR_EXIT(); -- atomic_init(&mutexp->sharecount, 0); -+ atomic_init_db(&mutexp->sharecount, 0); - } else { - DB_ASSERT(env, sharecount > 0); - MEMBAR_EXIT(); -diff -ur a/dist/aclocal/clock.m4 b/dist/aclocal/clock.m4 ---- a/dist/aclocal/clock.m4 1969-12-31 19:00:01.000000000 -0500 -+++ b/dist/aclocal/clock.m4 2023-06-05 19:14:02.007080500 -0400 -@@ -21,6 +21,7 @@ - AC_CACHE_CHECK([for clock_gettime monotonic clock], db_cv_clock_monotonic, [ - AC_TRY_RUN([ - #include -+int - main() { - struct timespec t; - return (clock_gettime(CLOCK_MONOTONIC, &t) != 0); -diff -ur a/dist/aclocal/mmap.m4 b/dist/aclocal/mmap.m4 ---- a/dist/aclocal/mmap.m4 1969-12-31 19:00:01.000000000 -0500 -+++ b/dist/aclocal/mmap.m4 2023-06-05 19:14:02.007323624 -0400 -@@ -29,6 +29,8 @@ - * system to system. - */ - #include -+ #include -+ #include - #include - #include - #include -@@ -42,12 +44,13 @@ - #define MAP_FAILED (-1) - #endif - -- int catch_sig(sig) -+ void catch_sig(sig) - int sig; - { - exit(1); - } - -+ int - main() { - const char *underlying; - unsigned gapsize; -@@ -88,8 +91,8 @@ - return (4); - } - -- (void) signal(SIGSEGV, catch_sig); -- (void) signal(SIGBUS, catch_sig); -+ (void) signal(SIGSEGV, &catch_sig); -+ (void) signal(SIGBUS, &catch_sig); - - for (i = sizeof(buf); i < total_size; i += gapsize) - base[i] = 'A'; -diff -ur a/dist/aclocal/mutex.m4 b/dist/aclocal/mutex.m4 ---- a/dist/aclocal/mutex.m4 1969-12-31 19:00:01.000000000 -0500 -+++ b/dist/aclocal/mutex.m4 2023-06-05 19:14:47.214158196 -0400 -@@ -5,6 +5,7 @@ - AC_TRY_RUN([ - #include - #include -+int - main() { - pthread_cond_t cond; - pthread_mutex_t mutex; -@@ -49,6 +50,7 @@ - AC_TRY_RUN([ - #include - #include -+int - main() { - pthread_cond_t cond; - pthread_mutex_t mutex; -@@ -89,6 +91,7 @@ - AC_TRY_RUN([ - #include - #include -+int - main() { - pthread_cond_t cond; - pthread_condattr_t condattr; -@@ -110,6 +113,7 @@ - AC_TRY_RUN([ - #include - #include -+int - main() { - pthread_rwlock_t rwlock; - pthread_rwlockattr_t rwlockattr; -diff -ur a/dist/aclocal/sequence.m4 b/dist/aclocal/sequence.m4 ---- a/dist/aclocal/sequence.m4 1969-12-31 19:00:01.000000000 -0500 -+++ b/dist/aclocal/sequence.m4 2023-06-05 19:14:02.007869956 -0400 -@@ -43,6 +43,9 @@ - # test, which won't test for the appropriate printf format strings. - if test "$db_cv_build_sequence" = "yes"; then - AC_TRY_RUN([ -+ #include -+ #include -+ int - main() { - $db_cv_seq_type l; - unsigned $db_cv_seq_type u; -@@ -59,7 +62,9 @@ - return (1); - return (0); - }],, [db_cv_build_sequence="no"], -- AC_TRY_LINK(,[ -+ AC_TRY_LINK([ -+ #include -+ #include ],[ - $db_cv_seq_type l; - unsigned $db_cv_seq_type u; - char buf@<:@100@:>@; diff --git a/pkgs/by-name/db/db/clang-6.0.patch b/pkgs/by-name/db/db/clang-6.0.patch deleted file mode 100644 index a411e60..0000000 --- a/pkgs/by-name/db/db/clang-6.0.patch +++ /dev/null @@ -1,123 +0,0 @@ -diff --git a/src/dbinc/atomic.h b/src/dbinc/atomic.h -index e4420aa..4799b5f 100644 ---- a/src/dbinc/atomic.h -+++ b/src/dbinc/atomic.h -@@ -70,7 +70,7 @@ typedef struct { - * These have no memory barriers; the caller must include them when necessary. - */ - #define atomic_read(p) ((p)->value) --#define atomic_init(p, val) ((p)->value = (val)) -+#define atomic_init_db(p, val) ((p)->value = (val)) - - #ifdef HAVE_ATOMIC_SUPPORT - -@@ -225,7 +225,7 @@ static inline int __atomic_compare_exchange_int( - #define atomic_dec(env, p) (--(p)->value) - #define atomic_compare_exchange(env, p, oldval, newval) \ - (DB_ASSERT(env, atomic_read(p) == (oldval)), \ -- atomic_init(p, (newval)), 1) -+ atomic_init_db(p, (newval)), 1) - #else - #define atomic_inc(env, p) __atomic_inc_int(env, p) - #define atomic_dec(env, p) __atomic_dec_int(env, p) -diff --git a/src/mp/mp_fget.c b/src/mp/mp_fget.c -index 59fe9fe..fa4ced7 100644 ---- a/src/mp/mp_fget.c -+++ b/src/mp/mp_fget.c -@@ -654,7 +654,7 @@ alloc: /* Allocate a new buffer header and data space. */ - - /* Initialize enough so we can call __memp_bhfree. */ - alloc_bhp->flags = 0; -- atomic_init(&alloc_bhp->ref, 1); -+ atomic_init_db(&alloc_bhp->ref, 1); - #ifdef DIAGNOSTIC - if ((uintptr_t)alloc_bhp->buf & (sizeof(size_t) - 1)) { - __db_errx(env, DB_STR("3025", -@@ -969,7 +969,7 @@ alloc: /* Allocate a new buffer header and data space. */ - MVCC_MPROTECT(bhp->buf, mfp->pagesize, - PROT_READ); - -- atomic_init(&alloc_bhp->ref, 1); -+ atomic_init_db(&alloc_bhp->ref, 1); - MUTEX_LOCK(env, alloc_bhp->mtx_buf); - alloc_bhp->priority = bhp->priority; - alloc_bhp->pgno = bhp->pgno; -diff --git a/src/mp/mp_mvcc.c b/src/mp/mp_mvcc.c -index 83c4d72..0a47202 100644 ---- a/src/mp/mp_mvcc.c -+++ b/src/mp/mp_mvcc.c -@@ -281,7 +281,7 @@ __memp_bh_freeze(dbmp, infop, hp, bhp, need_frozenp) - #else - memcpy(frozen_bhp, bhp, SSZA(BH, buf)); - #endif -- atomic_init(&frozen_bhp->ref, 0); -+ atomic_init_db(&frozen_bhp->ref, 0); - if (mutex != MUTEX_INVALID) - frozen_bhp->mtx_buf = mutex; - else if ((ret = __mutex_alloc(env, MTX_MPOOL_BH, -@@ -440,7 +440,7 @@ __memp_bh_thaw(dbmp, infop, hp, frozen_bhp, alloc_bhp) - #endif - alloc_bhp->mtx_buf = mutex; - MUTEX_LOCK(env, alloc_bhp->mtx_buf); -- atomic_init(&alloc_bhp->ref, 1); -+ atomic_init_db(&alloc_bhp->ref, 1); - F_CLR(alloc_bhp, BH_FROZEN); - } - -diff --git a/src/mp/mp_region.c b/src/mp/mp_region.c -index 4d95e4f..e97459c 100644 ---- a/src/mp/mp_region.c -+++ b/src/mp/mp_region.c -@@ -278,7 +278,7 @@ __memp_init(env, dbmp, reginfo_off, htab_buckets, max_nreg) - MTX_MPOOL_FILE_BUCKET, 0, &htab[i].mtx_hash)) != 0) - return (ret); - SH_TAILQ_INIT(&htab[i].hash_bucket); -- atomic_init(&htab[i].hash_page_dirty, 0); -+ atomic_init_db(&htab[i].hash_page_dirty, 0); - } - - mtx_base = mtx_prev = MUTEX_INVALID; -@@ -332,7 +332,7 @@ no_prealloc: - DB_MUTEX_SHARED, &hp->mtx_hash)) != 0) - return (ret); - SH_TAILQ_INIT(&hp->hash_bucket); -- atomic_init(&hp->hash_page_dirty, 0); -+ atomic_init_db(&hp->hash_page_dirty, 0); - #ifdef HAVE_STATISTICS - hp->hash_io_wait = 0; - hp->hash_frozen = hp->hash_thawed = hp->hash_frozen_freed = 0; -diff --git a/src/mutex/mut_method.c b/src/mutex/mut_method.c -index 72b34de..a9f9868 100644 ---- a/src/mutex/mut_method.c -+++ b/src/mutex/mut_method.c -@@ -501,7 +501,7 @@ __atomic_compare_exchange_int(env, v, oldval, newval) - MUTEX_LOCK(env, mtx); - ret = atomic_read(v) == oldval; - if (ret) -- atomic_init(v, newval); -+ atomic_init_db(v, newval); - MUTEX_UNLOCK(env, mtx); - - return (ret); -diff --git a/src/mutex/mut_tas.c b/src/mutex/mut_tas.c -index 7899c4b..d9420fa 100644 ---- a/src/mutex/mut_tas.c -+++ b/src/mutex/mut_tas.c -@@ -47,7 +47,7 @@ __db_tas_mutex_init(env, mutex, flags) - - #ifdef HAVE_SHARED_LATCHES - if (F_ISSET(mutexp, DB_MUTEX_SHARED)) -- atomic_init(&mutexp->sharecount, 0); -+ atomic_init_db(&mutexp->sharecount, 0); - else - #endif - if (MUTEX_INIT(&mutexp->tas)) { -@@ -643,7 +643,7 @@ was_not_locked: - F_CLR(mutexp, DB_MUTEX_LOCKED); - /* Flush flag update before zeroing count */ - MEMBAR_EXIT(); -- atomic_init(&mutexp->sharecount, 0); -+ atomic_init_db(&mutexp->sharecount, 0); - } else { - DB_ASSERT(env, sharecount > 0); - MEMBAR_EXIT(); diff --git a/pkgs/by-name/db/db/darwin-mutexes-4.8.patch b/pkgs/by-name/db/db/darwin-mutexes-4.8.patch deleted file mode 100644 index 09d5b81..0000000 --- a/pkgs/by-name/db/db/darwin-mutexes-4.8.patch +++ /dev/null @@ -1,55 +0,0 @@ -diff -ur a/dist/aclocal/mutex.m4 b/dist/aclocal/mutex.m4 ---- a/dist/aclocal/mutex.m4 1969-12-31 19:00:01.000000000 -0500 -+++ b/dist/aclocal/mutex.m4 2023-06-05 19:14:47.214158196 -0400 -@@ -372,10 +376,11 @@ - - # _spin_lock_try/_spin_unlock: Apple/Darwin - if test "$db_cv_mutex" = no; then --AC_TRY_LINK(,[ -- int x; -- _spin_lock_try(&x); -- _spin_unlock(&x); -+AC_TRY_LINK([ -+#include ],[ -+ os_unfair_lock x = OS_UNFAIR_LOCK_INIT; -+ bool _ = os_unfair_lock_trylock(&x); -+ os_unfair_lock_unlock(&x); - ], [db_cv_mutex=Darwin/_spin_lock_try]) - fi - -diff -ur a/dbinc/mutex_int.h b/dbinc/mutex_int.h ---- a/dbinc/mutex_int.h 1969-12-31 19:00:01.000000000 -0500 -+++ b/dbinc/mutex_int.h 2023-06-05 19:15:37.510514745 -0400 -@@ -154,14 +154,13 @@ - * Apple/Darwin library functions. - *********************************************************************/ - #ifdef HAVE_MUTEX_DARWIN_SPIN_LOCK_TRY --typedef u_int32_t tsl_t; -+#include -+typedef os_unfair_lock tsl_t; - - #ifdef LOAD_ACTUAL_MUTEX_CODE --extern int _spin_lock_try(tsl_t *); --extern void _spin_unlock(tsl_t *); --#define MUTEX_SET(tsl) _spin_lock_try(tsl) --#define MUTEX_UNSET(tsl) _spin_unlock(tsl) --#define MUTEX_INIT(tsl) (MUTEX_UNSET(tsl), 0) -+#define MUTEX_SET(tsl) os_unfair_lock_trylock(tsl) -+#define MUTEX_UNSET(tsl) os_unfair_lock_unlock(tsl) -+#define MUTEX_INIT(tsl) ({ *(tsl) = OS_UNFAIR_LOCK_INIT; tsl; }) - #endif - #endif - -diff -ur a/dbinc/mutex_int.h b/dbinc/mutex_int.h ---- a/dbinc_auto/mutex_ext.h 1969-12-31 19:00:01.000000000 -0500 -+++ b/dbinc_auto/mutex_ext.h 2023-07-01 22:38:20.749201366 -0400 -@@ -34,6 +34,9 @@ - #if !defined(HAVE_ATOMIC_SUPPORT) && defined(HAVE_MUTEX_SUPPORT) - atomic_value_t __atomic_dec __P((ENV *, db_atomic_t *)); - #endif -+#if !defined(HAVE_ATOMIC_SUPPORT) && defined(HAVE_MUTEX_SUPPORT) -+int atomic_compare_exchange __P((ENV *, db_atomic_t *, atomic_value_t, atomic_value_t)); -+#endif - int __db_pthread_mutex_init __P((ENV *, db_mutex_t, u_int32_t)); - int __db_pthread_mutex_lock __P((ENV *, db_mutex_t)); - #if defined(HAVE_SHARED_LATCHES) diff --git a/pkgs/by-name/db/db/darwin-mutexes.patch b/pkgs/by-name/db/db/darwin-mutexes.patch deleted file mode 100644 index c0616fd..0000000 --- a/pkgs/by-name/db/db/darwin-mutexes.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff -ur a/dist/aclocal/mutex.m4 b/dist/aclocal/mutex.m4 ---- a/dist/aclocal/mutex.m4 1969-12-31 19:00:01.000000000 -0500 -+++ b/dist/aclocal/mutex.m4 2023-06-05 19:14:47.214158196 -0400 -@@ -441,10 +445,11 @@ - - # _spin_lock_try/_spin_unlock: Apple/Darwin - if test "$db_cv_mutex" = no; then --AC_TRY_LINK(,[ -- int x; -- _spin_lock_try(&x); -- _spin_unlock(&x); -+AC_TRY_LINK([ -+#include ],[ -+ os_unfair_lock x = OS_UNFAIR_LOCK_INIT; -+ bool _ = os_unfair_lock_trylock(&x); -+ os_unfair_lock_unlock(&x); - ], [db_cv_mutex=Darwin/_spin_lock_try]) - fi - -diff -ur a/src/dbinc/mutex_int.h b/src/dbinc/mutex_int.h ---- a/src/dbinc/mutex_int.h 1969-12-31 19:00:01.000000000 -0500 -+++ b/src/dbinc/mutex_int.h 2023-06-05 19:15:37.510514745 -0400 -@@ -154,14 +154,13 @@ - * Apple/Darwin library functions. - *********************************************************************/ - #ifdef HAVE_MUTEX_DARWIN_SPIN_LOCK_TRY --typedef u_int32_t tsl_t; -+#include -+typedef os_unfair_lock tsl_t; - - #ifdef LOAD_ACTUAL_MUTEX_CODE --extern int _spin_lock_try(tsl_t *); --extern void _spin_unlock(tsl_t *); --#define MUTEX_SET(tsl) _spin_lock_try(tsl) --#define MUTEX_UNSET(tsl) _spin_unlock(tsl) --#define MUTEX_INIT(tsl) (MUTEX_UNSET(tsl), 0) -+#define MUTEX_SET(tsl) os_unfair_lock_trylock(tsl) -+#define MUTEX_UNSET(tsl) os_unfair_lock_unlock(tsl) -+#define MUTEX_INIT(tsl) ({ *(tsl) = OS_UNFAIR_LOCK_INIT; tsl; }) - #endif - #endif - diff --git a/pkgs/by-name/db/db/db-4.8.nix b/pkgs/by-name/db/db/db-4.8.nix deleted file mode 100644 index 8170537..0000000 --- a/pkgs/by-name/db/db/db-4.8.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ 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 - ]; - - 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 deleted file mode 100644 index 2362cc9..0000000 --- a/pkgs/by-name/db/db/db-5.3.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ 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 - ]; -}) diff --git a/pkgs/by-name/db/db/db-6.0.nix b/pkgs/by-name/db/db/db-6.0.nix deleted file mode 100644 index d92d28d..0000000 --- a/pkgs/by-name/db/db/db-6.0.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ 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 - ]; -}) diff --git a/pkgs/by-name/db/db/db-6.2.nix b/pkgs/by-name/db/db/db-6.2.nix deleted file mode 100644 index fd5a532..0000000 --- a/pkgs/by-name/db/db/db-6.2.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ 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 - ]; -}) diff --git a/pkgs/by-name/db/db/generic.nix b/pkgs/by-name/db/db/generic.nix deleted file mode 100644 index d715c1f..0000000 --- a/pkgs/by-name/db/db/generic.nix +++ /dev/null @@ -1,95 +0,0 @@ -{ lib, stdenv, fetchurl, autoreconfHook -, cxxSupport ? true -, compat185 ? true -, dbmSupport ? false - -# Options from inherited versions -, version, sha256 -, extraPatches ? [ ] -, license ? lib.licenses.sleepycat -, drvArgs ? {} -}: - -stdenv.mkDerivation (rec { - pname = "db"; - inherit version; - - 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 ]; - - patches = extraPatches; - - outputs = [ "bin" "out" "dev" ]; - - # 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 - ''; - - # 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 - ) - popd - ''; - - 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"; - - preConfigure = '' - cd build_unix - configureScript=../dist/configure - ''; - - postInstall = '' - rm -rf $out/docs - ''; - - enableParallelBuilding = true; - - doCheck = true; - - 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) diff --git a/pkgs/by-name/db/db/packages.nix b/pkgs/by-name/db/db/packages.nix deleted file mode 100644 index ff5dee7..0000000 --- a/pkgs/by-name/db/db/packages.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - # Make bdb5 the default as it is the last release under the custom - # bsd-like license - db = db5; - db4 = db48; - db48 = callPackage ./db-4.8.nix { }; - db5 = db53; - db53 = callPackage ./db-5.3.nix { }; - db6 = db60; - db60 = callPackage ./db-6.0.nix { }; - db62 = callPackage ./db-6.2.nix { }; -} diff --git a/pkgs/by-name/db/dblatex/default.nix b/pkgs/by-name/db/dblatex/default.nix deleted file mode 100644 index d615cef..0000000 --- a/pkgs/by-name/db/dblatex/default.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ 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 - ]) -}: - -# NOTE: enableAllFeatures just purifies the expression, it doesn't actually -# enable any extra features. - -stdenv.mkDerivation rec { - pname = "dblatex${lib.optionalString enableAllFeatures "-full"}"; - version = "0.3.12"; - - src = fetchurl { - url = "mirror://sourceforge/dblatex/${pname}3-${version}.tar.bz2"; - sha256 = "0yd09nypswy3q4scri1dg7dr99d7gd6r2dwx0xm81l9f4y32gs0n"; - }; - - 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 - ''; - - dontBuild = true; - - installPhase = '' - ${python3.interpreter} ./setup.py install --prefix="$out" --use-python-path --verbose - ''; - - passthru = { inherit tex; }; - - meta = { - description = "A program to convert DocBook to DVI, PostScript or PDF via LaTeX or ConTeXt"; - mainProgram = "dblatex"; - homepage = "https://dblatex.sourceforge.net/"; - license = lib.licenses.gpl2Plus; - platforms = lib.platforms.unix; - }; -} diff --git a/pkgs/by-name/db/dblatex/packages.nix b/pkgs/by-name/db/dblatex/packages.nix deleted file mode 100644 index c3deb97..0000000 --- a/pkgs/by-name/db/dblatex/packages.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index cb5fe9e..0000000 --- a/pkgs/by-name/db/dbus/default.nix +++ /dev/null @@ -1,124 +0,0 @@ -{ 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 { - pname = "dbus"; - version = "1.14.10"; - - src = fetchurl { - url = "https://dbus.freedesktop.org/releases/dbus/dbus-${version}.tar.xz"; - sha256 = "sha256-uh8h0r2dM52i1KqHgMCd8y/qh5mLc9ok9Jq53x42pQ8="; - }; - - 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"' - ''; - - outputs = [ "out" "dev" "lib" "doc" "man" ]; - separateDebugInfo = true; - - strictDeps = true; - nativeBuildInputs = [ - autoreconfHook - autoconf-archive - pkg-config - docbook_xml_dtd_44 - docbook-xsl-nons - xmlto - ]; - - propagatedBuildInputs = [ - expat - ]; - - buildInputs = - 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" ]; - - NIX_CFLAGS_LINK = lib.optionalString (!stdenv.isDarwin) "-Wl,--as-needed"; - - enableParallelBuilding = true; - - doCheck = true; - - makeFlags = [ - # Fix paths in XML catalog broken by mismatching build/install datadir. - "dtddir=${placeholder "out"}/share/xml/dbus-1" - ]; - - installFlags = [ - "sysconfdir=${placeholder "out"}/etc" - "datadir=${placeholder "out"}/share" - ]; - - # it's executed from $lib by absolute path - postFixup = '' - moveToOutput bin/dbus-launch "$lib" - ln -s "$lib/bin/dbus-launch" "$out/bin/" - ''; - - passthru = { - dbus-launch = "${dbus.lib}/bin/dbus-launch"; - }; - - meta = with lib; { - description = "Simple interprocess messaging system"; - homepage = "https://www.freedesktop.org/wiki/Software/dbus/"; - changelog = "https://gitlab.freedesktop.org/dbus/dbus/-/blob/dbus-${version}/NEWS"; - license = licenses.gpl2Plus; # most is also under AFL-2.1 - maintainers = teams.freedesktop.members ++ (with maintainers; [ ]); - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/db/dbus/implement-getgrouplist.patch b/pkgs/by-name/db/dbus/implement-getgrouplist.patch deleted file mode 100644 index e3a4a25..0000000 --- a/pkgs/by-name/db/dbus/implement-getgrouplist.patch +++ /dev/null @@ -1,108 +0,0 @@ -Compatibility patch for Illumos/Solaris and possibly other platforms. -Implements getgrouplist when not provided by OS. -Without it, only the user's primary group is used in authentication! ---- 1970-01-01 00:00:00.000000000 +0000 -+++ dbus-1.6.8/dbus/getgrouplist.c 2013-02-28 13:10:51.081792722 +0000 -@@ -0,0 +1,89 @@ -+/* $OpenBSD: getgrouplist.c,v 1.12 2005/08/08 08:05:34 espie Exp $ */ -+/* -+ * Copyright (c) 1991, 1993 -+ * The Regents of the University of California. All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * 3. Neither the name of the University nor the names of its contributors -+ * may be used to endorse or promote products derived from this software -+ * without specific prior written permission. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ */ -+ -+/* OPENBSD ORIGINAL: lib/libc/gen/getgrouplist.c */ -+ -+/* -+ * get credential -+ */ -+#include -+#include -+#include -+#include -+ -+int -+getgrouplist(const char *uname, gid_t agroup, gid_t *groups, int *grpcnt) -+{ -+ struct group *grp; -+ int i, ngroups; -+ int ret, maxgroups; -+ int bail; -+ -+ ret = 0; -+ ngroups = 0; -+ maxgroups = *grpcnt; -+ -+ /* -+ * install primary group -+ */ -+ if (ngroups >= maxgroups) { -+ *grpcnt = ngroups; -+ return (-1); -+ } -+ groups[ngroups++] = agroup; -+ -+ /* -+ * Scan the group file to find additional groups. -+ */ -+ setgrent(); -+ while ((grp = getgrent())) { -+ if (grp->gr_gid == agroup) -+ continue; -+ for (bail = 0, i = 0; bail == 0 && i < ngroups; i++) -+ if (groups[i] == grp->gr_gid) -+ bail = 1; -+ if (bail) -+ continue; -+ for (i = 0; grp->gr_mem[i]; i++) { -+ if (!strcmp(grp->gr_mem[i], uname)) { -+ if (ngroups >= maxgroups) { -+ ret = -1; -+ goto out; -+ } -+ groups[ngroups++] = grp->gr_gid; -+ break; -+ } -+ } -+ } -+out: -+ endgrent(); -+ *grpcnt = ngroups; -+ return (ret); -+} ---- dbus-1.6.8/dbus/dbus-sysdeps-unix.c.orig 2013-02-28 13:08:52.171215237 +0000 -+++ dbus-1.6.8/dbus/dbus-sysdeps-unix.c 2013-02-28 13:13:52.224615146 +0000 -@@ -21,6 +21,10 @@ - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - */ -+#ifndef HAVE_GETGROUPLIST -+#include "getgrouplist.c" -+#define HAVE_GETGROUPLIST -+#endif - - #include - diff --git a/pkgs/by-name/db/dbus/make-dbus-conf.nix b/pkgs/by-name/db/dbus/make-dbus-conf.nix deleted file mode 100644 index 0a8b630..0000000 --- a/pkgs/by-name/db/dbus/make-dbus-conf.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ 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. - */ -runCommand "dbus-1" - { - inherit serviceDirectories suidHelper apparmor; - preferLocalBuild = true; - allowSubstitutes = false; - - nativeBuildInputs = [ - libxslt.bin - findXMLCatalogs - ]; - - buildInputs = [ - dbus.out - ]; - } - '' - mkdir -p $out - - xsltproc --nonet \ - --stringparam serviceDirectories "$serviceDirectories" \ - --stringparam suidHelper "$suidHelper" \ - --stringparam apparmor "$apparmor" \ - ${./make-system-conf.xsl} ${dbus}/share/dbus-1/system.conf \ - > $out/system.conf - xsltproc --nonet \ - --stringparam serviceDirectories "$serviceDirectories" \ - --stringparam apparmor "$apparmor" \ - ${./make-session-conf.xsl} ${dbus}/share/dbus-1/session.conf \ - > $out/session.conf - - # check if files are empty or only contain space characters - grep -q '[^[:space:]]' "$out/system.conf" || (echo "\"$out/system.conf\" was generated incorrectly and is empty, try building again." && exit 1) - grep -q '[^[:space:]]' "$out/session.conf" || (echo "\"$out/session.conf\" was generated incorrectly and is empty, try building again." && exit 1) - '' diff --git a/pkgs/by-name/db/dbus/make-session-conf.xsl b/pkgs/by-name/db/dbus/make-session-conf.xsl deleted file mode 100644 index a744905..0000000 --- a/pkgs/by-name/db/dbus/make-session-conf.xsl +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - /share/dbus-1/services - /etc/dbus-1/session.d - /share/dbus-1/session.d - - - - - diff --git a/pkgs/by-name/db/dbus/make-system-conf.xsl b/pkgs/by-name/db/dbus/make-system-conf.xsl deleted file mode 100644 index 06233e7..0000000 --- a/pkgs/by-name/db/dbus/make-system-conf.xsl +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - /share/dbus-1/system-services - /etc/dbus-1/system.d - /share/dbus-1/system.d - - - - - diff --git a/pkgs/by-name/de/dejagnu/default.nix b/pkgs/by-name/de/dejagnu/default.nix deleted file mode 100644 index 5c7720a..0000000 --- a/pkgs/by-name/de/dejagnu/default.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ fetchurl, lib, stdenv, expect, makeWrapper }: - -stdenv.mkDerivation rec { - pname = "dejagnu"; - version = "1.6.3"; - - src = fetchurl { - url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz"; - sha256 = "1qx2cv6qkxbiqg87jh217jb62hk3s7dmcs4cz1llm2wmsynfznl7"; - }; - - nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ expect ]; - - # dejagnu-1.6.3 can't successfully run tests in source tree: - # https://wiki.linuxfromscratch.org/lfs/ticket/4871 - preConfigure = '' - mkdir build - cd build - ''; - configureScript = "../configure"; - - doCheck = !(with stdenv; isDarwin && isAarch64); - - # Note: The test-suite *requires* /dev/pts among the `build-chroot-dirs' of - # the build daemon when building in a chroot. See - # for - # details. - - # The test-suite needs to have a non-empty stdin: - # https://lists.gnu.org/archive/html/bug-dejagnu/2003-06/msg00002.html - checkPhase = '' - # Provide `runtest' with a log name, otherwise it tries to run - # `whoami', which fails when in a chroot. - LOGNAME="nix-build-daemon" make check < /dev/zero - ''; - - postInstall = '' - # 'runtest' and 'dejagnu' look up 'expect' in their 'bin' path - # first. We avoid use of 'wrapProgram' here because wrapping - # of shell scripts does not preserve argv[0] for schell scripts: - # https://sourceware.org/PR30052#c5 - ln -s ${expect}/bin/expect $out/bin/expect - ''; - - meta = with lib; { - description = "Framework for testing other programs"; - - longDescription = '' - DejaGnu is a framework for testing other programs. Its purpose - is to provide a single front end for all tests. Think of it as a - custom library of Tcl procedures crafted to support writing a - test harness. A test harness is the testing infrastructure that - is created to support a specific program or tool. Each program - can have multiple testsuites, all supported by a single test - harness. DejaGnu is written in Expect, which in turn uses Tcl -- - Tool command language. - ''; - - homepage = "https://www.gnu.org/software/dejagnu/"; - license = licenses.gpl2Plus; - - platforms = platforms.unix; - maintainers = with maintainers; [ vrthra ]; - }; -} diff --git a/pkgs/by-name/de/dejavu-fonts/default.nix b/pkgs/by-name/de/dejavu-fonts/default.nix deleted file mode 100644 index ba9fed1..0000000 --- a/pkgs/by-name/de/dejavu-fonts/default.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ fetchFromGitHub, lib, stdenv, fontforge, perl, perlPackages }: - -let - version = "2.37"; - - meta = { - description = "A typeface family based on the Bitstream Vera fonts"; - longDescription = '' - The DejaVu fonts are TrueType fonts based on the BitStream Vera fonts, - providing more styles and with greater coverage of Unicode. - - This package includes DejaVu Sans, DejaVu Serif, DejaVu Sans Mono, and - the TeX Gyre DejaVu Math font. - ''; - homepage = "https://dejavu-fonts.github.io/"; - - # Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. - # Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. - # DejaVu changes are in public domain - # See http://dejavu-fonts.org/wiki/License for details - license = lib.licenses.free; - - platforms = lib.platforms.all; - }; - - full-ttf = stdenv.mkDerivation { - pname = "dejavu-fonts-full"; - inherit version; - nativeBuildInputs = [fontforge perl perlPackages.IOString perlPackages.FontTTF]; - - src = fetchFromGitHub { - owner = "dejavu-fonts"; - repo = "dejavu-fonts"; - rev = "version_${lib.replaceStrings ["."] ["_"] version}"; - sha256 = "1xknlg2h287dx34v2n5r33bpcl4biqf0cv7nak657rjki7s0k4bk"; - }; - - buildFlags = [ "full-ttf" ]; - - preBuild = "patchShebangs scripts"; - - installPhase = "install -m444 -Dt $out/share/fonts/truetype build/*.ttf"; - - inherit meta; - }; - - minimal = stdenv.mkDerivation { - pname = "dejavu-fonts-minimal"; - inherit version; - buildCommand = '' - install -m444 -Dt $out/share/fonts/truetype ${full-ttf}/share/fonts/truetype/DejaVuSans.ttf - ''; - inherit meta; - }; -in stdenv.mkDerivation { - pname = "dejavu-fonts"; - inherit version; - buildCommand = '' - install -m444 -Dt $out/share/fonts/truetype ${full-ttf}/share/fonts/truetype/*.ttf - ln -s --relative --force --target-directory=$out/share/fonts/truetype ${minimal}/share/fonts/truetype/DejaVuSans.ttf - ''; - inherit meta; - - 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 deleted file mode 100644 index 0c1f43f..0000000 --- a/pkgs/by-name/de/dejavu-fonts/packages.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - dejavu_fonts = lowPrio (callPackage ./. {}); - - # solve collision for nix-env before https://github.com/NixOS/nix/pull/815 - dejavu_fontsEnv = buildEnv { - name = dejavu_fonts.name; - paths = [ dejavu_fonts.out ]; - }; -} diff --git a/pkgs/by-name/di/diffutils/default.nix b/pkgs/by-name/di/diffutils/default.nix deleted file mode 100644 index 8c4a160..0000000 --- a/pkgs/by-name/di/diffutils/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ 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 -# cgit) that are needed here should be included directly in Nixpkgs as -# files. - -stdenv.mkDerivation rec { - pname = "diffutils"; - version = "3.10"; - - src = fetchurl { - url = "mirror://gnu/diffutils/diffutils-${version}.tar.xz"; - hash = "sha256-kOXpPMck5OvhLt6A3xY0Bjx6hVaSaFkZv+YLVWyb0J4="; - }; - - outputs = [ "out" "info" ]; - - nativeBuildInputs = [ (lib.getBin xz) ]; - /* 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; - - configureFlags = - # "pr" need not be on the PATH as a run-time dep, so we need to tell - # configure where it is. Covers the cross and native case alike. - lib.optional (coreutils != null) "PR_PROGRAM=${coreutils}/bin/pr" - ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "gl_cv_func_getopt_gnu=yes"; - - # Test failure on QEMU only (#300550) - doCheck = !stdenv.buildPlatform.isRiscV64; - - meta = with lib; { - homepage = "https://www.gnu.org/software/diffutils/diffutils.html"; - description = "Commands for showing the differences between files (diff, cmp, etc.)"; - license = licenses.gpl3; - platforms = platforms.unix; - maintainers = with maintainers; [ das_j ]; - }; -} diff --git a/pkgs/by-name/dj/djvulibre/CVE-2021-3500+CVE-2021-32490+CVE-2021-32491+CVE-2021-32492+CVE-2021-32493.patch b/pkgs/by-name/dj/djvulibre/CVE-2021-3500+CVE-2021-32490+CVE-2021-32491+CVE-2021-32492+CVE-2021-32493.patch deleted file mode 100644 index e305c56..0000000 --- a/pkgs/by-name/dj/djvulibre/CVE-2021-3500+CVE-2021-32490+CVE-2021-32491+CVE-2021-32492+CVE-2021-32493.patch +++ /dev/null @@ -1,105 +0,0 @@ -From cd8b5c97b27a5c1dc83046498b6ca49ad20aa9b6 Mon Sep 17 00:00:00 2001 -From: Leon Bottou -Date: Tue, 11 May 2021 14:44:09 -0400 -Subject: [PATCH] Reviewed Fedora patches and adopted some of them (or variants - thereof) - - - Patch0: djvulibre-3.5.22-cdefs.patch (forward ported) -Does not make imuch sense. GSmartPointer.h already includes "stddef.h" - - Patch6: djvulibre-3.5.27-export-file.patch (forward ported) -Incorrect: inkscape command is --export-png, not --export-filename. - - Patch8: djvulibre-3.5.27-check-image-size.patch (forward ported) -Correct: adopted a variant of this - - Patch9: djvulibre-3.5.27-integer-overflow.patch (forward ported) -Correct: adopted a variant of this - - Patch10: djvulibre-3.5.27-check-input-pool.patch (forward ported) -Adopted: input validation never hurts - - Patch11: djvulibre-3.5.27-djvuport-stack-overflow.patch (forward ported) -Dubious: Instead I changed djvufile to prevent a file from including itself -which is the only way I can imagine to create an file creation loop. - - Patch12: djvulibre-3.5.27-unsigned-short-overflow.patch (forward ported) -Adopted: but without including limits.h ---- - libdjvu/DataPool.cpp | 3 ++- - libdjvu/DjVuFile.cpp | 2 ++ - libdjvu/GBitmap.cpp | 2 ++ - libdjvu/IW44Image.cpp | 4 ++++ - tools/ddjvu.cpp | 7 +++++-- - 5 files changed, 15 insertions(+), 3 deletions(-) - -diff --git a/libdjvu/DataPool.cpp b/libdjvu/DataPool.cpp -index 5fcbedf..b58fc45 100644 ---- a/libdjvu/DataPool.cpp -+++ b/libdjvu/DataPool.cpp -@@ -790,7 +790,8 @@ DataPool::create(const GP & pool, int start, int length) - { - DEBUG_MSG("DataPool::DataPool: pool=" << (void *)((DataPool *)pool) << " start=" << start << " length= " << length << "\n"); - DEBUG_MAKE_INDENT(3); -- -+ if (!pool) -+ G_THROW( ERR_MSG("DataPool.zero_DataPool") ); - DataPool *xpool=new DataPool(); - GP retval=xpool; - xpool->init(); -diff --git a/libdjvu/DjVuFile.cpp b/libdjvu/DjVuFile.cpp -index 143346b..2587491 100644 ---- a/libdjvu/DjVuFile.cpp -+++ b/libdjvu/DjVuFile.cpp -@@ -576,6 +576,8 @@ DjVuFile::process_incl_chunk(ByteStream & str, int file_num) - GURL incl_url=pcaster->id_to_url(this, incl_str); - if (incl_url.is_empty()) // Fallback. Should never be used. - incl_url=GURL::UTF8(incl_str,url.base()); -+ if (incl_url == url) // Infinite loop avoidance -+ G_THROW( ERR_MSG("DjVuFile.malformed") ); - - // Now see if there is already a file with this *name* created - { -diff --git a/libdjvu/GBitmap.cpp b/libdjvu/GBitmap.cpp -index c2fdbe4..8ad64b2 100644 ---- a/libdjvu/GBitmap.cpp -+++ b/libdjvu/GBitmap.cpp -@@ -1284,6 +1284,8 @@ GBitmap::decode(unsigned char *runs) - // initialize pixel array - if (nrows==0 || ncolumns==0) - G_THROW( ERR_MSG("GBitmap.not_init") ); -+ if (ncolumns + border != (unsigned short)(ncolumns+border)) -+ G_THROW("GBitmap: image size exceeds maximum (corrupted file?)"); - bytes_per_row = ncolumns + border; - if (runs==0) - G_THROW( ERR_MSG("GBitmap.null_arg") ); -diff --git a/libdjvu/IW44Image.cpp b/libdjvu/IW44Image.cpp -index e8d4b44..4a1797e 100644 ---- a/libdjvu/IW44Image.cpp -+++ b/libdjvu/IW44Image.cpp -@@ -676,9 +676,13 @@ IW44Image::Map::image(signed char *img8, int rowsize, int pixsep, int fast) - // Allocate reconstruction buffer - short *data16; - size_t sz = bw * bh; -+ if (sz == 0) -+ G_THROW("IW44Image: image size is zero (corrupted file?)"); - if (sz / (size_t)bw != (size_t)bh) // multiplication overflow - G_THROW("IW44Image: image size exceeds maximum (corrupted file?)"); - GPBuffer gdata16(data16,sz); -+ if (data16 == 0) -+ G_THROW("IW44Image: unable to allocate image buffer"); - // Copy coefficients - int i; - short *p = data16; -diff --git a/tools/ddjvu.cpp b/tools/ddjvu.cpp -index 7109952..e7b489b 100644 ---- a/tools/ddjvu.cpp -+++ b/tools/ddjvu.cpp -@@ -393,8 +393,11 @@ render(ddjvu_page_t *page, int pageno) - } else if (style == DDJVU_FORMAT_GREY8) - rowsize = rrect.w; - else -- rowsize = rrect.w * 3; -- if (! (image = (char*)malloc(rowsize * rrect.h))) -+ rowsize = rrect.w * 3; -+ size_t bufsize = (size_t)rowsize * rrect.h; -+ if (bufsize / rowsize != rrect.h) -+ die(i18n("Integer overflow when allocating image buffer for page %d"), pageno); -+ if (! (image = (char*)malloc(bufsize))) - die(i18n("Cannot allocate image buffer for page %d"), pageno); - - /* Render */ \ No newline at end of file diff --git a/pkgs/by-name/dj/djvulibre/c++17-register-class.patch b/pkgs/by-name/dj/djvulibre/c++17-register-class.patch deleted file mode 100644 index 88251b3..0000000 --- a/pkgs/by-name/dj/djvulibre/c++17-register-class.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -ur a/libdjvu/GBitmap.h b/libdjvu/GBitmap.h ---- a/libdjvu/GBitmap.h 2020-11-20 09:57:32.000000000 -0700 -+++ b/libdjvu/GBitmap.h 2023-07-07 07:07:45.519912414 -0600 -@@ -620,7 +620,7 @@ - inline int - GBitmap::read_run(unsigned char *&data) - { -- register int z=*data++; -+ int z=*data++; - return (z>=RUNOVERFLOWVALUE)? - ((z&~RUNOVERFLOWVALUE)<<8)|(*data++):z; - } -@@ -628,7 +628,7 @@ - inline int - GBitmap::read_run(const unsigned char *&data) - { -- register int z=*data++; -+ int z=*data++; - return (z>=RUNOVERFLOWVALUE)? - ((z&~RUNOVERFLOWVALUE)<<8)|(*data++):z; - } diff --git a/pkgs/by-name/dj/djvulibre/default.nix b/pkgs/by-name/dj/djvulibre/default.nix deleted file mode 100644 index 073a6e3..0000000 --- a/pkgs/by-name/dj/djvulibre/default.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ lib, stdenv -, fetchurl -, libjpeg -, libtiff -, librsvg -, libiconv -, bash -}: - -stdenv.mkDerivation rec { - pname = "djvulibre"; - version = "3.5.28"; - - src = fetchurl { - url = "mirror://sourceforge/djvu/${pname}-${version}.tar.gz"; - sha256 = "1p1fiygq9ny8aimwc4vxwjc6k9ykgdsq1sq06slfbzalfvm0kl7w"; - }; - - outputs = [ "bin" "dev" "out" ]; - - strictDeps = true; - nativeBuildInputs = [ - librsvg - ]; - - buildInputs = [ - libjpeg - libtiff - libiconv - bash - ]; - - enableParallelBuilding = true; - - patches = [ - # Remove uses of the `register` storage class specifier, which was removed in C++17. - # Fixes compilation with clang 16, which defaults to C++17. - ./c++17-register-class.patch - - ./CVE-2021-3500+CVE-2021-32490+CVE-2021-32491+CVE-2021-32492+CVE-2021-32493.patch - ]; - - meta = with lib; { - description = "The big set of CLI tools to make/modify/optimize/show/export DJVU files"; - homepage = "https://djvu.sourceforge.net"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ Anton-Latukha ]; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/do/docbook/packages.nix b/pkgs/by-name/do/docbook/packages.nix deleted file mode 100644 index adc0263..0000000 --- a/pkgs/by-name/do/docbook/packages.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 { }; - docbook_xml_dtd_412 = callPackage ./schemas/xml-dtd/docbook/4.1.2.nix { }; - docbook_xml_dtd_42 = callPackage ./schemas/xml-dtd/docbook/4.2.nix { }; - docbook_xml_dtd_43 = callPackage ./schemas/xml-dtd/docbook/4.3.nix { }; - docbook_xml_dtd_44 = callPackage ./schemas/xml-dtd/docbook/4.4.nix { }; - 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; - - # TODO: move this to aliases - docbook_xsl = docbook-xsl-nons; - docbook_xsl_ns = docbook-xsl-ns; -} 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 deleted file mode 100644 index 68bc610..0000000 --- a/pkgs/by-name/do/docbook/schemas/docbook-5.0/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, stdenv, fetchurl, unzip }: - -stdenv.mkDerivation rec { - pname = "docbook5"; - version = "5.0.1"; - - src = fetchurl { - url = "http://www.docbook.org/xml/${version}/docbook-${version}.zip"; - sha256 = "1iz3hq1lqgnshvlz4j9gvh4jy1ml74qf90vqf2ikbq0h4i2xzybs"; - }; - - nativeBuildInputs = [ unzip ]; - - installPhase = - '' - dst=$out/share/xml/docbook-5.0 - mkdir -p $dst - cp -prv * $dst/ - - substituteInPlace $dst/catalog.xml --replace 'uri="' "uri=\"$dst/" - - 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 - ''; - - meta = { - description = "Schemas for DocBook 5.0, a semantic markup language for technical documentation"; - homepage = "https://docbook.org/xml/5.0/"; - maintainers = [ lib.maintainers.eelco ]; - platforms = lib.platforms.all; - }; -} 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 deleted file mode 100644 index b1db363..0000000 --- a/pkgs/by-name/do/docbook/schemas/sgml-dtd/docbook/3.1.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchurl, unzip }: - -let - - src = fetchurl { - url = "http://www.oasis-open.org/docbook/sgml/3.1/docbk31.zip"; - sha256 = "0f25ch7bywwhdxb1qa0hl28mgq1blqdap3rxzamm585rf4kis9i0"; - }; - - isoents = fetchurl { - url = "http://www.oasis-open.org/cover/ISOEnts.zip"; - sha256 = "1clrkaqnvc1ja4lj8blr0rdlphngkcda3snm7b9jzvcn76d3br6w"; - }; - -in - -stdenv.mkDerivation { - name = "docbook-sgml-3.1"; - - dontUnpack = true; - - 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 - ''; - - 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 deleted file mode 100644 index 85d7ab1..0000000 --- a/pkgs/by-name/do/docbook/schemas/sgml-dtd/docbook/4.1.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchurl, unzip }: - -let - - src = fetchurl { - url = "http://www.oasis-open.org/docbook/sgml/4.1/docbk41.zip"; - sha256 = "04b3gp4zkh9c5g9kvnywdkdfkcqx3kjc04j4mpkr4xk7lgqgrany"; - }; - - isoents = fetchurl { - url = "http://www.oasis-open.org/cover/ISOEnts.zip"; - sha256 = "1clrkaqnvc1ja4lj8blr0rdlphngkcda3snm7b9jzvcn76d3br6w"; - }; - -in - -stdenv.mkDerivation { - name = "docbook-sgml-4.1"; - - dontUnpack = true; - - 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 - ''; - - 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 deleted file mode 100644 index 6be2e89..0000000 --- a/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook-ebnf/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{lib, stdenv, fetchurl}: - -stdenv.mkDerivation rec { - pname = "docbook-xml-ebnf"; - version = "1.2b1"; - - dtd = fetchurl { - url = "https://docbook.org/xml/ebnf/${version}/dbebnf.dtd"; - sha256 = "0min5dsc53my13b94g2yd65q1nkjcf4x1dak00bsc4ckf86mrx95"; - }; - catalog = ./docbook-ebnf.cat; - - unpackPhase = '' - mkdir -p $out/xml/dtd/docbook-ebnf - cd $out/xml/dtd/docbook-ebnf - ''; - - installPhase = '' - cp -p $dtd dbebnf.dtd - cp -p $catalog $(stripHash $catalog) - ''; - - meta = { - platforms = lib.platforms.unix; - }; -} diff --git a/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook-ebnf/docbook-ebnf.cat b/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook-ebnf/docbook-ebnf.cat deleted file mode 100644 index 896a833..0000000 --- a/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook-ebnf/docbook-ebnf.cat +++ /dev/null @@ -1,2 +0,0 @@ -PUBLIC "-//OASIS//DTD DocBook EBNF Module V1.0//EN" - "dbebnf.dtd" 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 deleted file mode 100644 index c367e2a..0000000 --- a/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.1.2.nix +++ /dev/null @@ -1,22 +0,0 @@ -{lib, stdenv, fetchurl, unzip, findXMLCatalogs}: - -let - # Urgh, DocBook 4.1.2 doesn't come with an XML catalog. Use the one - # from 4.2. - docbook42catalog = fetchurl { - url = "https://docbook.org/xml/4.2/catalog.xml"; - sha256 = "18lhp6q2l0753s855r638shkbdwq9blm6akdjsc9nrik24k38j17"; - }; -in - -import ./generic.nix { - inherit lib stdenv unzip findXMLCatalogs; - version = "4.1.2"; - src = fetchurl { - url = "https://docbook.org/xml/4.1.2/docbkx412.zip"; - sha256 = "0wkp5rvnqj0ghxia0558mnn4c7s3n501j99q2isp3sp0ci069w1h"; - }; - postInstall = " - sed 's|V4.2|V4.1.2|g' < ${docbook42catalog} > catalog.xml - "; -} 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 deleted file mode 100644 index 8f778ea..0000000 --- a/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.2.nix +++ /dev/null @@ -1,10 +0,0 @@ -{lib, stdenv, fetchurl, unzip, findXMLCatalogs}: - -import ./generic.nix { - inherit lib stdenv unzip findXMLCatalogs; - version = "4.2"; - src = fetchurl { - url = "https://docbook.org/xml/4.2/docbook-xml-4.2.zip"; - sha256 = "acc4601e4f97a196076b7e64b368d9248b07c7abf26b34a02cca40eeebe60fa2"; - }; -} 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 deleted file mode 100644 index a58370e..0000000 --- a/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.3.nix +++ /dev/null @@ -1,10 +0,0 @@ -{lib, stdenv, fetchurl, unzip, findXMLCatalogs}: - -import ./generic.nix { - inherit lib stdenv unzip findXMLCatalogs; - version = "4.3"; - src = fetchurl { - url = "https://docbook.org/xml/4.3/docbook-xml-4.3.zip"; - sha256 = "0r1l2if1z4wm2v664sqdizm4gak6db1kx9y50jq89m3gxaa8l1i3"; - }; -} 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 deleted file mode 100644 index 3b46fe8..0000000 --- a/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.4.nix +++ /dev/null @@ -1,10 +0,0 @@ -{lib, stdenv, fetchurl, unzip, findXMLCatalogs}: - -import ./generic.nix { - inherit lib stdenv unzip findXMLCatalogs; - version = "4.4"; - src = fetchurl { - url = "https://docbook.org/xml/4.4/docbook-xml-4.4.zip"; - sha256 = "141h4zsyc71sfi2zzd89v4bb4qqq9ca1ri9ix2als9f4i3mmkw82"; - }; -} 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 deleted file mode 100644 index c4ab1f6..0000000 --- a/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.5.nix +++ /dev/null @@ -1,10 +0,0 @@ -{lib, stdenv, fetchurl, unzip, findXMLCatalogs}: - -import ./generic.nix { - inherit lib stdenv unzip findXMLCatalogs; - version = "4.5"; - src = fetchurl { - url = "https://docbook.org/xml/4.5/docbook-xml-4.5.zip"; - sha256 = "1d671lcjckjri28xfbf6dq7y3xnkppa910w1jin8rjc35dx06kjf"; - }; -} 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 deleted file mode 100644 index 7a635f6..0000000 --- a/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/generic.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib, stdenv, unzip, src, version, postInstall ? "true", findXMLCatalogs }: - -stdenv.mkDerivation { - inherit version src postInstall; - pname = "docbook-xml"; - - nativeBuildInputs = [ unzip ]; - propagatedNativeBuildInputs = [ findXMLCatalogs ]; - - unpackPhase = '' - mkdir -p $out/xml/dtd/docbook - cd $out/xml/dtd/docbook - unpackFile $src - ''; - - installPhase = '' - find . -type f -exec chmod -x {} \; - runHook postInstall - ''; - - meta = { - branch = version; - platforms = lib.platforms.unix; - }; -} diff --git a/pkgs/by-name/do/docbook/stylesheets/xslt/docbook-xsl/catalog-legacy-uris.patch b/pkgs/by-name/do/docbook/stylesheets/xslt/docbook-xsl/catalog-legacy-uris.patch deleted file mode 100644 index 72922ee..0000000 --- a/pkgs/by-name/do/docbook/stylesheets/xslt/docbook-xsl/catalog-legacy-uris.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/catalog.xml -+++ b/catalog.xml -@@ -5,4 +5,7 @@ - - - -+ -+ -+ - 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 deleted file mode 100644 index a81d73a..0000000 --- a/pkgs/by-name/do/docbook/stylesheets/xslt/docbook-xsl/default.nix +++ /dev/null @@ -1,91 +0,0 @@ -{ 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"; - - 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; - -in { - - docbook-xsl-nons = common { - pname = "docbook-xsl-nons"; - suffix = "-nons"; - sha256 = "00i1hdyxim8jymv2dz68ix3wbs5w6isxm8ijb03qk3vs1g59x2zf"; - }; - - docbook-xsl-ns = common { - pname = "docbook-xsl-ns"; - sha256 = "0wd33z41kdsybyx3ay21w6bdlmgpd9kyn3mr5y520lsf8km28r9i"; - }; -} diff --git a/pkgs/by-name/do/docbook/stylesheets/xslt/docbook-xsl/fix-man-options-duplication.patch b/pkgs/by-name/do/docbook/stylesheets/xslt/docbook-xsl/fix-man-options-duplication.patch deleted file mode 100644 index 304d978..0000000 --- a/pkgs/by-name/do/docbook/stylesheets/xslt/docbook-xsl/fix-man-options-duplication.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/manpages/lists.xsl -+++ b/manpages/lists.xsl -@@ -110,7 +110,7 @@ - .RE - - -- -+ - - - {options}->{'list-files'}; -+ } else { -+ $openstr = '>-'; -+ } - } - } diff --git a/pkgs/by-name/do/docbook2x/default.nix b/pkgs/by-name/do/docbook2x/default.nix deleted file mode 100644 index 3fa76f5..0000000 --- a/pkgs/by-name/do/docbook2x/default.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ fetchurl, lib, stdenv, texinfo, perlPackages -, groff, libxml2, libxslt, gnused, libiconv, opensp -, docbook_xml_dtd_43, bash -, makeWrapper }: - -stdenv.mkDerivation rec { - pname = "docbook2X"; - version = "0.8.8"; - - src = fetchurl { - url = "mirror://sourceforge/docbook2x/docbook2X-${version}.tar.gz"; - sha256 = "0ifwzk99rzjws0ixzimbvs83x6cxqk1xzmg84wa1p7bs6rypaxs0"; - }; - - # This patch makes sure that `docbook2texi --to-stdout' actually - # 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 ]); - - postConfigure = '' - # Broken substitution is used for `perl/config.pl', which leaves literal - # `$prefix' in it. - substituteInPlace "perl/config.pl" \ - --replace '${"\$" + "{prefix}"}' "$out" - ''; - - doCheck = false; # fails a lot of tests - - postInstall = '' - perlPrograms="db2x_manxml db2x_texixml db2x_xsltproc - docbook2man docbook2texi"; - for i in $perlPrograms - do - # 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 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 - - wrapProgram $out/bin/sgml2xml-isoent --prefix PATH : \ - "${gnused}/bin" - ''; - - meta = with lib; { - longDescription = '' - docbook2X is a software package that converts DocBook documents - into the traditional Unix man page format and the GNU Texinfo - format. - ''; - license = licenses.mit; - homepage = "https://docbook2x.sourceforge.net/"; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/do/doxygen/default.nix b/pkgs/by-name/do/doxygen/default.nix deleted file mode 100644 index 35fcdc7..0000000 --- a/pkgs/by-name/do/doxygen/default.nix +++ /dev/null @@ -1,80 +0,0 @@ -{ lib -, stdenv -, cmake -, fetchFromGitHub -, fetchpatch -, python3 -, flex -, bison -, qt5 -, CoreServices -, libiconv -, spdlog -, sqlite -}: - -stdenv.mkDerivation rec { - pname = "doxygen"; - version = "1.10.0"; - - src = fetchFromGitHub { - owner = "doxygen"; - repo = "doxygen"; - rev = "Release_${lib.replaceStrings [ "." ] [ "_" ] version}"; - sha256 = "sha256-FPI5ICdn9Tne/g9SP6jAQS813AAyoDNooDR/Hyvq6R4="; - }; - - patches = [ - (fetchpatch { - name = "sys-spdlog-fix.patch"; - url = "https://github.com/doxygen/doxygen/commit/0df6da616f01057d28b11c8bee28443c102dd424.patch"; - hash = "sha256-7efkCQFYGslwqhIuPsLYTEiA1rq+mO0DuyQBMt0O+m0="; - }) - ]; - - nativeBuildInputs = [ - cmake - python3 - flex - bison - ]; - - buildInputs = [ libiconv spdlog sqlite ] - ++ lib.optionals (qt5 != null) (with qt5; [ qtbase wrapQtAppsHook ]) - ++ lib.optionals stdenv.isDarwin [ CoreServices ]; - - cmakeFlags = [ - "-DICONV_INCLUDE_DIR=${libiconv}/include" - "-Duse_sys_spdlog=ON" - "-Duse_sys_sqlite3=ON" - ] ++ lib.optional (qt5 != null) "-Dbuild_wizard=YES"; - - 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" ]; - postInstall = '' - cp -r ../examples $examples - ''; - - meta = { - license = lib.licenses.gpl2Plus; - homepage = "https://www.doxygen.nl/"; - changelog = "https://www.doxygen.nl/manual/changelog.html"; - description = "Source code documentation generator tool"; - mainProgram = "doxygen"; - - longDescription = '' - Doxygen is the de facto standard tool for generating documentation from - annotated C++ sources, but it also supports other popular programming - languages such as C, Objective-C, C#, PHP, Java, Python, IDL (Corba, - Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL and to some extent - D. It can generate an on-line documentation browser (in HTML) and/or an - off-line reference manual (in LaTeX) from a set of documented source - files. - ''; - - platforms = if qt5 != null then lib.platforms.linux else lib.platforms.unix; - }; -} diff --git a/pkgs/by-name/do/doxygen/packages.nix b/pkgs/by-name/do/doxygen/packages.nix deleted file mode 100644 index 28e78cd..0000000 --- a/pkgs/by-name/do/doxygen/packages.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - doxygen = darwin.apple_sdk_11_0.callPackage ./. { - qt5 = null; - inherit (darwin.apple_sdk_11_0.frameworks) CoreServices; - }; - - doxygen_gui = lowPrio (doxygen.override { inherit qt5; }); -} diff --git a/pkgs/by-name/e2/e2fsprogs/default.nix b/pkgs/by-name/e2/e2fsprogs/default.nix deleted file mode 100644 index fd9a71a..0000000 --- a/pkgs/by-name/e2/e2fsprogs/default.nix +++ /dev/null @@ -1,96 +0,0 @@ -{ lib, stdenv, buildPackages, fetchurl, fetchpatch, pkg-config, libuuid, gettext, texinfo -, withFuse ? stdenv.isLinux, fuse -, shared ? !stdenv.hostPlatform.isStatic -# for passthru.tests -# , e2fsprogs, runCommand -}: - -stdenv.mkDerivation rec { - pname = "e2fsprogs"; - version = "1.47.0"; - - src = fetchurl { - url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz"; - hash = "sha256-Zmev3lbu8MavJmhJdEAOTSKI6knpRBv15iKRldUaNXg="; - }; - - # fuse2fs adds 14mb of dependencies - 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 ]; - - patches = [ - (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" ]; - extraPrefix = ""; - }) - # Avoid trouble with older systems like NixOS 23.05. - # TODO: most likely drop this at some point, e.g. when 23.05 loses support. - (fetchurl { - name = "mke2fs-avoid-incompatible-features.patch"; - url = "https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/plain/debian/patches/disable-metadata_csum_seed-and-orphan_file-by-default?h=debian/master&id=3fb3d18baba90e5d48d94f4c0b79b2d271b0c913"; - hash = "sha256-YD11K4s2bqv0rvzrxtaiodzLp3ztULlOlPUf1XcpxRY="; - }) - ]; - - 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" - ]; - - 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 - ''; - - enableParallelBuilding = true; - - # passthru.tests = { - # simple-filesystem = runCommand "e2fsprogs-create-fs" {} '' - # mkdir -p $out - # truncate -s10M $out/disc - # ${e2fsprogs}/bin/mkfs.ext4 $out/disc | tee $out/success - # ${e2fsprogs}/bin/e2fsck -n $out/disc | tee $out/success - # [ -e $out/success ] - # ''; - # }; - meta = with lib; { - homepage = "https://e2fsprogs.sourceforge.net/"; - changelog = "https://e2fsprogs.sourceforge.net/e2fsprogs-release.html#${version}"; - description = "Tools for creating and checking ext2/ext3/ext4 filesystems"; - license = with licenses; [ - gpl2Plus - lgpl2Plus # lib/ext2fs, lib/e2p - 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 deleted file mode 100644 index c1f99de..0000000 --- a/pkgs/by-name/ed/ed/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ lib, pkgs }: - -lib.makeScope pkgs.newScope (self: - let - inherit (self) callPackage; - in { - sources = import ./sources.nix { - inherit lib; - inherit (pkgs) fetchurl; - }; - - 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 deleted file mode 100644 index 70ec6ba..0000000 --- a/pkgs/by-name/ed/ed/generic.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ 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 -}: - -stdenv.mkDerivation { - inherit pname version src patches; - - nativeBuildInputs = [ lzip ]; - - configureFlags = [ - "CC=${stdenv.cc.targetPrefix}cc" - ]; - - doCheck = true; - - inherit meta; -} diff --git a/pkgs/by-name/ed/ed/packages.nix b/pkgs/by-name/ed/ed/packages.nix deleted file mode 100644 index daefac3..0000000 --- a/pkgs/by-name/ed/ed/packages.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index 77e13da..0000000 --- a/pkgs/by-name/ed/ed/sources.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ lib -, fetchurl -}: - -let - meta = { - description = "The GNU implementation of the standard Unix editor"; - longDescription = '' - GNU ed is a line-oriented text editor. It is used to create, display, - modify and otherwise manipulate text files, both interactively and via - shell scripts. A restricted version of ed, red, can only edit files in the - current directory and cannot execute shell commands. Ed is the 'standard' - text editor in the sense that it is the original editor for Unix, and thus - widely available. For most purposes, however, it is superseded by - full-screen editors such as GNU Emacs or GNU Moe. - ''; - license = lib.licenses.gpl3Plus; - homepage = "https://www.gnu.org/software/ed/"; - maintainers = with lib.maintainers; [ AndersonTorres ]; - platforms = lib.platforms.unix; - }; -in -{ - 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; - }; - - 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; - }; -} diff --git a/pkgs/by-name/ed/editline/default.nix b/pkgs/by-name/ed/editline/default.nix deleted file mode 100644 index 4f891a2..0000000 --- a/pkgs/by-name/ed/editline/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, autoreconfHook, nix-update-script, fetchpatch }: - -stdenv.mkDerivation rec { - pname = "editline"; - version = "1.17.1"; - src = fetchFromGitHub { - owner = "troglobit"; - repo = "editline"; - rev = version; - sha256 = "sha256-0FeDUVCUahbweH24nfaZwa7j7lSfZh1TnQK7KYqO+3g="; - }; - - patches = [ - (fetchpatch { - name = "fix-for-home-end-in-tmux.patch"; - url = "https://github.com/troglobit/editline/commit/265c1fb6a0b99bedb157dc7c320f2c9629136518.patch"; - sha256 = "sha256-9fhQH0hT8BcykGzOUoT18HBtWjjoXnePSGDJQp8GH30="; - }) - - # Pending autoconf-2.72 upstream support: - # https://github.com/troglobit/editline/pull/64 - (fetchpatch { - name = "autoconf-2.72.patch"; - url = "https://github.com/troglobit/editline/commit/f444a316f5178b8e20fe31e7b2d979e651da077e.patch"; - hash = "sha256-m3jExTkPvE+ZBwHzf/A+ugzzfbLmeWYn726l7Po7f10="; - }) - ]; - - nativeBuildInputs = [ autoreconfHook ]; - - outputs = [ "out" "dev" "man" "doc" ]; - - passthru.updateScript = nix-update-script { }; - - meta = with lib; { - homepage = "https://troglobit.com/projects/editline/"; - description = "A readline() replacement for UNIX without termcap (ncurses)"; - license = licenses.bsdOriginal; - 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 deleted file mode 100644 index 72166bb..0000000 --- a/pkgs/by-name/el/elf-header/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ 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"; -in - -stdenvNoCC.mkDerivation { - pname = "elf-header"; - inherit (libc) version; - - src = null; - - dontUnpack = true; - - dontBuild = true; - - installPhase = '' - mkdir -p "$out/include"; - tar -xf \ - ${lib.escapeShellArg libc.src} \ - ${lib.escapeShellArg headerPath} \ - --to-stdout \ - | sed -e '/features\.h/d' \ - > "$out/include/elf.h" - ''; - - meta = libc.meta // { - outputsToInstall = [ "out" ]; - description = "The datastructures of ELF according to the target platform's libc"; - longDescription = '' - The Executable and Linkable Format (ELF, formerly named Extensible Linking - Format), is usually defined in a header like this. - ''; - platforms = lib.platforms.all; - maintainers = [ lib.maintainers.ericson2314 ]; - }; -} diff --git a/pkgs/by-name/el/elf-header/packages.nix b/pkgs/by-name/el/elf-header/packages.nix deleted file mode 100644 index da6e0fb..0000000 --- a/pkgs/by-name/el/elf-header/packages.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: -res: pkgs: super: - -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; - - elf-header-real = callPackage ./. { }; -} diff --git a/pkgs/by-name/el/elfutils/debug-info-from-env.patch b/pkgs/by-name/el/elfutils/debug-info-from-env.patch deleted file mode 100644 index 409f131..0000000 --- a/pkgs/by-name/el/elfutils/debug-info-from-env.patch +++ /dev/null @@ -1,27 +0,0 @@ -Look up .build-id files relative to the directories in the -colon-separated environment variable NIX_DEBUG_INFO_DIRS, unless -overriden by --debuginfo-path. - -diff -ru elfutils-0.169-orig/libdwfl/argp-std.c elfutils-0.169/libdwfl/argp-std.c ---- elfutils-0.169-orig/libdwfl/argp-std.c 2017-05-02 23:05:52.000000000 +0200 -+++ elfutils-0.169/libdwfl/argp-std.c 2017-07-28 16:08:06.739558106 +0200 -@@ -376,5 +376,7 @@ - const struct argp * - dwfl_standard_argp (void) - { -+ debuginfo_path = getenv("NIX_DEBUG_INFO_DIRS"); -+ - return &libdwfl_argp; - } -diff -ru elfutils-0.169-orig/src/stack.c elfutils-0.169/src/stack.c ---- elfutils-0.169-orig/src/stack.c 2017-02-24 11:55:28.000000000 +0100 -+++ elfutils-0.169/src/stack.c 2017-07-28 15:50:06.743196696 +0200 -@@ -631,6 +631,8 @@ - /* Set locale. */ - (void) setlocale (LC_ALL, ""); - -+ debuginfo_path = getenv("NIX_DEBUG_INFO_DIRS"); -+ - const struct argp_option options[] = - { - { NULL, 0, NULL, 0, N_("Input selection options:"), 0 }, diff --git a/pkgs/by-name/el/elfutils/default.nix b/pkgs/by-name/el/elfutils/default.nix deleted file mode 100644 index 6de0780..0000000 --- a/pkgs/by-name/el/elfutils/default.nix +++ /dev/null @@ -1,108 +0,0 @@ -{ 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. -stdenv.mkDerivation rec { - pname = "elfutils"; - version = "0.191"; - - src = fetchurl { - url = "https://sourceware.org/elfutils/ftp/${version}/${pname}-${version}.tar.bz2"; - hash = "sha256-33bbcTZtHXCDZfx6bGDKSDmPFDZ+sriVTvyIlxR62HE="; - }; - - patches = [ - ./debug-info-from-env.patch - (fetchpatch { - name = "fix-aarch64_fregs.patch"; - url = "https://git.alpinelinux.org/aports/plain/main/elfutils/fix-aarch64_fregs.patch?id=2e3d4976eeffb4704cf83e2cc3306293b7c7b2e9"; - sha256 = "zvncoRkQx3AwPx52ehjA2vcFroF+yDC2MQR5uS6DATs="; - }) - (fetchpatch { - name = "musl-asm-ptrace-h.patch"; - url = "https://git.alpinelinux.org/aports/plain/main/elfutils/musl-asm-ptrace-h.patch?id=2e3d4976eeffb4704cf83e2cc3306293b7c7b2e9"; - sha256 = "8D1wPcdgAkE/TNBOgsHaeTZYhd9l+9TrZg8d5C7kG6k="; - }) - (fetchpatch { - name = "musl-macros.patch"; - url = "https://git.alpinelinux.org/aports/plain/main/elfutils/musl-macros.patch?id=2e3d4976eeffb4704cf83e2cc3306293b7c7b2e9"; - sha256 = "tp6O1TRsTAMsFe8vw3LMENT/vAu6OmyA8+pzgThHeA8="; - }) - (fetchpatch { - name = "musl-strndupa.patch"; - url = "https://git.alpinelinux.org/aports/plain/main/elfutils/musl-strndupa.patch?id=2e3d4976eeffb4704cf83e2cc3306293b7c7b2e9"; - sha256 = "sha256-7daehJj1t0wPtQzTv+/Rpuqqs5Ng/EYnZzrcf2o/Lb0="; - }) - ] ++ 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 - ''; - - 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 ] - ++ lib.optionals stdenv.hostPlatform.isMusl [ - argp-standalone - musl-fts - musl-obstack - ] ++ lib.optionals enableDebuginfod [ - sqlite - curl - libmicrohttpd - libarchive - ]; - - propagatedNativeBuildInputs = [ setupDebugInfoDirs ]; - - configureFlags = [ - "--program-prefix=eu-" # prevent collisions with binutils - "--enable-deterministic-archives" - (lib.enableFeature enableDebuginfod "libdebuginfod") - (lib.enableFeature enableDebuginfod "debuginfod") - ]; - - enableParallelBuilding = true; - - - doCheck = - # Backtrace unwinding tests rely on glibc-internal symbol names. - # Musl provides slightly different forms and fails. - # Let's disable tests there until musl support is fully upstreamed. - !stdenv.hostPlatform.isMusl - # 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); - - passthru.updateScript = gitUpdater { - url = "https://sourceware.org/git/elfutils.git"; - rev-prefix = "elfutils-"; - }; - - meta = with lib; { - homepage = "https://sourceware.org/elfutils/"; - description = "A set of utilities to handle ELF objects"; - platforms = platforms.linux; - # https://lists.fedorahosted.org/pipermail/elfutils-devel/2014-November/004223.html - 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 ]; - }; -} diff --git a/pkgs/by-name/el/elfutils/musl-error_h.patch b/pkgs/by-name/el/elfutils/musl-error_h.patch deleted file mode 100644 index 7119280..0000000 --- a/pkgs/by-name/el/elfutils/musl-error_h.patch +++ /dev/null @@ -1,66 +0,0 @@ -diff -crb --new-file a/lib/error.h b/lib/error.h -*** a/lib/error.h 1969-12-31 19:00:00.000000000 -0500 ---- b/lib/error.h 2021-01-21 04:38:25.000000000 -0500 -*************** -*** 0 **** ---- 1,27 ---- -+ #ifndef _ERROR_H_ -+ #define _ERROR_H_ -+ -+ #include -+ #include -+ #include -+ #include -+ #include -+ -+ static unsigned int error_message_count = 0; -+ -+ static inline void error(int status, int errnum, const char* format, ...) -+ { -+ va_list ap; -+ fprintf(stderr, "%s: ", program_invocation_name); -+ va_start(ap, format); -+ vfprintf(stderr, format, ap); -+ va_end(ap); -+ if (errnum) -+ fprintf(stderr, ": %s", strerror(errnum)); -+ fprintf(stderr, "\n"); -+ error_message_count++; -+ if (status) -+ exit(status); -+ } -+ -+ #endif /* _ERROR_H_ */ -diff -crb --new-file a/src/error.h b/src/error.h -*** a/src/error.h 1969-12-31 19:00:00.000000000 -0500 ---- b/src/error.h 2021-01-21 04:38:29.000000000 -0500 -*************** -*** 0 **** ---- 1,27 ---- -+ #ifndef _ERROR_H_ -+ #define _ERROR_H_ -+ -+ #include -+ #include -+ #include -+ #include -+ #include -+ -+ static unsigned int error_message_count = 0; -+ -+ static inline void error(int status, int errnum, const char* format, ...) -+ { -+ va_list ap; -+ fprintf(stderr, "%s: ", program_invocation_name); -+ va_start(ap, format); -+ vfprintf(stderr, format, ap); -+ va_end(ap); -+ if (errnum) -+ fprintf(stderr, ": %s", strerror(errnum)); -+ fprintf(stderr, "\n"); -+ error_message_count++; -+ if (status) -+ exit(status); -+ } -+ -+ #endif /* _ERROR_H_ */ diff --git a/pkgs/by-name/el/ell/default.nix b/pkgs/by-name/el/ell/default.nix deleted file mode 100644 index 9c16a34..0000000 --- a/pkgs/by-name/el/ell/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ lib, stdenv -, fetchgit -, autoreconfHook -, pkg-config -, dbus -, sysctl -, gitUpdater -}: - -stdenv.mkDerivation rec { - pname = "ell"; - version = "0.64"; - - outputs = [ "out" "dev" ]; - - src = fetchgit { - url = "https://git.kernel.org/pub/scm/libs/ell/ell.git"; - rev = version; - hash = "sha256-LONfgFgPg8KCDwtw//WTOYQT9RpnIskdHAWcgafOhcg="; - }; - - nativeBuildInputs = [ - pkg-config - autoreconfHook - ]; - - nativeCheckInputs = [ - dbus - # required as the sysctl test works on some machines - sysctl - ]; - - enableParallelBuilding = true; - - # tests sporadically fail on musl - doCheck = !stdenv.hostPlatform.isMusl; - - passthru = { - updateScript = gitUpdater { - url = "https://git.kernel.org/pub/scm/libs/ell/ell.git"; - }; - }; - - meta = with lib; { - homepage = "https://git.kernel.org/pub/scm/libs/ell/ell.git"; - description = "Embedded Linux Library"; - longDescription = '' - The Embedded Linux* Library (ELL) provides core, low-level functionality for system daemons. It typically has no dependencies other than the Linux kernel, C standard library, and libdl (for dynamic linking). While ELL is designed to be efficient and compact enough for use on embedded Linux platforms, it is not limited to resource-constrained systems. - ''; - 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 ]; - }; -} diff --git a/pkgs/by-name/ep/epubcheck/default.nix b/pkgs/by-name/ep/epubcheck/default.nix deleted file mode 100644 index abd2803..0000000 --- a/pkgs/by-name/ep/epubcheck/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ lib, stdenv, fetchzip -, jre, makeWrapper }: - -stdenv.mkDerivation rec { - pname = "epubcheck"; - version = "5.1.0"; - - src = fetchzip { - url = "https://github.com/w3c/epubcheck/releases/download/v${version}/epubcheck-${version}.zip"; - sha256 = "sha256-gskQ02lGka3nBHSDXO3TpKSQzaoaJUQY9AvWG7L+1YM="; - }; - - nativeBuildInputs = [ makeWrapper ]; - - dontBuild = true; - - installPhase = '' - mkdir -p $out/lib - cp -r lib/* $out/lib - - mkdir -p $out/libexec/epubcheck - cp epubcheck.jar $out/libexec/epubcheck - - classpath=$out/libexec/epubcheck/epubcheck.jar - for jar in $out/lib/*.jar; do - classpath="$classpath:$jar" - done - - mkdir -p $out/bin - makeWrapper ${jre}/bin/java $out/bin/epubcheck \ - --add-flags "-classpath $classpath com.adobe.epubcheck.tool.Checker" - ''; - - meta = with lib; { - homepage = "https://github.com/w3c/epubcheck"; - description = "Validation tool for EPUB"; - mainProgram = "epubcheck"; - sourceProvenance = with sourceTypes; [ binaryBytecode ]; - 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 deleted file mode 100644 index 34775b2..0000000 --- a/pkgs/by-name/ex/expat/default.nix +++ /dev/null @@ -1,76 +0,0 @@ -{ lib -, stdenv -, fetchurl -# for passthru.tests -# , python3 -# , perlPackages -# , haskellPackages -# , luaPackages -# , ocamlPackages -# , testers -}: - -# 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 = "2.6.2"; - 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"; - hash = "sha256-7hS0xdiQixvsN62TdgfqsYPU2YBqCK3uRyw8MSHSc2Q="; - }; - - strictDeps = true; - - outputs = [ "out" "dev" ]; # TODO: fix referrers - outputBin = "dev"; - - enableParallelBuilding = true; - - configureFlags = lib.optional stdenv.isFreeBSD "--with-pic"; - - outputMan = "dev"; # tiny page for a dev tool - - doCheck = true; # not cross; - - preCheck = '' - patchShebangs ./run.sh ./test-driver-wrapper.sh - ''; - - # CMake files incorrectly calculate library path from dev prefix - # https://github.com/libexpat/libexpat/issues/501 - postFixup = '' - substituteInPlace $dev/lib/cmake/expat-${finalAttrs.version}/expat-noconfig.cmake \ - --replace "$"'{_IMPORT_PREFIX}' $out - ''; - - # passthru.tests = { - # inherit python3; - # inherit (python3.pkgs) xmltodict; - # inherit (haskellPackages) hexpat; - # inherit (perlPackages) XMLSAXExpat XMLParser; - # inherit (luaPackages) luaexpat; - # inherit (ocamlPackages) ocaml_expat; - # pkg-config = testers.hasPkgConfigModules { - # package = finalAttrs.finalPackage; - # }; - # }; - - meta = with lib; { - changelog = "https://github.com/libexpat/libexpat/blob/${tag}/expat/Changes"; - homepage = "https://libexpat.github.io/"; - description = "A stream-oriented XML parser library written in C"; - mainProgram = "xmlwf"; - platforms = platforms.all; - license = licenses.mit; # expat version - pkgConfigModules = [ "expat" ]; - }; -}) diff --git a/pkgs/by-name/ex/expect/default.nix b/pkgs/by-name/ex/expect/default.nix deleted file mode 100644 index e2457ad..0000000 --- a/pkgs/by-name/ex/expect/default.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ lib, stdenv, buildPackages, fetchurl, tcl, makeWrapper, autoreconfHook, fetchpatch, substituteAll }: - -tcl.mkTclDerivation rec { - pname = "expect"; - version = "5.45.4"; - - src = fetchurl { - url = "mirror://sourceforge/expect/Expect/${version}/expect${version}.tar.gz"; - hash = "sha256-Safag7C92fRtBKBN7sGcd2e7mjI+QMR4H4nK92C5LDQ="; - }; - - patches = [ - (fetchpatch { - url = "https://raw.githubusercontent.com/buildroot/buildroot/c05e6aa361a4049eabd8b21eb64a34899ef83fc7/package/expect/0001-enable-cross-compilation.patch"; - hash = "sha256-yyzE0Jjac5qaj7Svn4VpMiAqSNLYrw7VZbtFqgMVncs="; - }) - (substituteAll { - src = ./fix-cross-compilation.patch; - tcl = "${buildPackages.tcl}/bin/tclsh"; - }) - # The following patches fix compilation with clang 15+ - (fetchpatch { - url = "https://sourceforge.net/p/expect/patches/24/attachment/0001-Add-prototype-to-function-definitions.patch"; - hash = "sha256-X2Vv6VVM3KjmBHo2ukVWe5YTVXRmqe//Kw2kr73OpZs="; - }) - (fetchpatch { - url = "https://sourceforge.net/p/expect/patches/_discuss/thread/b813ca9895/6759/attachment/expect-configure-c99.patch"; - hash = "sha256-PxQQ9roWgVXUoCMxkXEgu+it26ES/JuzHF6oML/nk54="; - }) - # Include `sys/ioctl.h` and `util.h` on Darwin, which are required for `ioctl` and `openpty`. - ./fix-darwin-clang16.patch - ]; - - postPatch = '' - sed -i "s,/bin/stty,$(type -p stty),g" configure.in - ''; - - nativeBuildInputs = [ autoreconfHook makeWrapper ]; - - strictDeps = true; - hardeningDisable = [ "format" ]; - - postInstall = '' - tclWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ tcl ]}) - ${lib.optionalString stdenv.isDarwin "tclWrapperArgs+=(--prefix DYLD_LIBRARY_PATH : $out/lib/expect${version})"} - ''; - - outputs = [ "out" "dev" ]; - - meta = with lib; { - description = "A tool for automating interactive applications"; - homepage = "https://expect.sourceforge.net/"; - license = licenses.publicDomain; - platforms = platforms.unix; - mainProgram = "expect"; - maintainers = with maintainers; [ SuperSandro2000 ]; - }; -} diff --git a/pkgs/by-name/ex/expect/fix-cross-compilation.patch b/pkgs/by-name/ex/expect/fix-cross-compilation.patch deleted file mode 100644 index 8edc4be..0000000 --- a/pkgs/by-name/ex/expect/fix-cross-compilation.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/Makefile.in 2022-09-07 21:46:37.090519258 +0200 -+++ b/Makefile.in 2022-09-07 21:46:21.462592279 +0200 -@@ -380,7 +380,7 @@ - cp $(DIST_ROOT)/$(PKG_DIR).tar.gz $(top_builddir) - - $(SCRIPTS): -- $(TCLSH) $(srcdir)/fixline1 $(SHORT_BINDIR) < $(srcdir)/example/$@ > $@ -+ @tcl@ $(srcdir)/fixline1 $(SHORT_BINDIR) < $(srcdir)/example/$@ > $@ - - ## We cannot use TCL_LIBS below (after TCL_LIB_SPEC) because its - ## expansion references the contents of LIBS, which contains linker diff --git a/pkgs/by-name/ex/expect/fix-darwin-clang16.patch b/pkgs/by-name/ex/expect/fix-darwin-clang16.patch deleted file mode 100644 index 9454769..0000000 --- a/pkgs/by-name/ex/expect/fix-darwin-clang16.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff -ur a/exp_win.c b/exp_win.c ---- a/exp_win.c 2018-02-02 14:15:52.000000000 -0500 -+++ b/exp_win.c 2023-10-10 07:47:33.082690432 -0400 -@@ -39,7 +39,8 @@ - /* Sigh. On AIX 2.3, termios.h exists but does not define TIOCGWINSZ */ - /* Instead, it has to come from ioctl.h. However, As I said above, this */ - /* can't be cavalierly included on all machines, even when it exists. */ --#if defined(HAVE_TERMIOS) && !defined(HAVE_TIOCGWINSZ_IN_TERMIOS_H) -+/* Darwin also has termios.h, but it requires ioctl.h for `ioctl`. */ -+#if defined(HAVE_TERMIOS) && (defined(__APPLE__) || !defined(HAVE_TIOCGWINSZ_IN_TERMIOS_H)) - # include - #endif - -diff -ur d/pty_termios.c c/pty_termios.c ---- d/pty_termios.c 2023-10-10 07:59:23.244452442 -0400 -+++ c/pty_termios.c 2023-10-10 08:00:35.303231582 -0400 -@@ -7,7 +7,13 @@ - - */ - --#include /* openpty */ -+/* openpty */ -+#ifdef __APPLE__ -+#include -+#else /* pty.h is Linux-specific */ -+#include -+#endif -+ - #include - #include - diff --git a/pkgs/by-name/fi/file/32-bit-time_t.patch b/pkgs/by-name/fi/file/32-bit-time_t.patch deleted file mode 100644 index 19c5952..0000000 --- a/pkgs/by-name/fi/file/32-bit-time_t.patch +++ /dev/null @@ -1,38 +0,0 @@ -https://github.com/file/file/commit/218fdf813fd5ccecbb8887a1b62509cd1c6dd3a1.patch - -From 218fdf813fd5ccecbb8887a1b62509cd1c6dd3a1 Mon Sep 17 00:00:00 2001 -From: Christos Zoulas -Date: Fri, 28 Jul 2023 14:38:25 +0000 -Subject: [PATCH] deal with 32 bit time_t - ---- - src/file.h | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -diff --git a/src/file.h b/src/file.h -index 2e0494d2f..78f574ea1 100644 ---- a/src/file.h -+++ b/src/file.h -@@ -27,7 +27,7 @@ - */ - /* - * file.h - definitions for file(1) program -- * @(#)$File: file.h,v 1.247 2023/07/27 19:40:22 christos Exp $ -+ * @(#)$File: file.h,v 1.248 2023/07/28 14:38:25 christos Exp $ - */ - - #ifndef __file_h__ -@@ -159,9 +159,11 @@ - /* - * Dec 31, 23:59:59 9999 - * we need to make sure that we don't exceed 9999 because some libc -- * implementations like muslc crash otherwise -+ * implementations like muslc crash otherwise. If you are unlucky -+ * to be running on a system with a 32 bit time_t, then it is even less. - */ --#define MAX_CTIME CAST(time_t, 0x3afff487cfULL) -+#define MAX_CTIME \ -+ CAST(time_t, sizeof(time_t) > 4 ? 0x3afff487cfULL : 0x7fffffffULL) - - #define FILE_BADSIZE CAST(size_t, ~0ul) - #define MAXDESC 64 /* max len of text description/MIME type */ diff --git a/pkgs/by-name/fi/file/default.nix b/pkgs/by-name/fi/file/default.nix deleted file mode 100644 index 8cff5cc..0000000 --- a/pkgs/by-name/fi/file/default.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ lib, stdenv, fetchurl, file, zlib, libgnurx -, testers -}: - -# 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. - -stdenv.mkDerivation (finalAttrs: { - pname = "file"; - version = "5.45"; - - src = fetchurl { - urls = [ - "https://astron.com/pub/file/${finalAttrs.pname}-${finalAttrs.version}.tar.gz" - "https://distfiles.macports.org/file/${finalAttrs.pname}-${finalAttrs.version}.tar.gz" - ]; - hash = "sha256-/Jf1ECm7DiyfTjv/79r2ePDgOe6HK53lwAKm0Jx4TYI="; - }; - - outputs = [ "out" "dev" "man" ]; - - patches = [ - # Upstream patch to fix 32-bit tests. - # Will be included in 5.46+ releases. - ./32-bit-time_t.patch - ]; - - strictDeps = true; - enableParallelBuilding = true; - - nativeBuildInputs = lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) file; - buildInputs = [ zlib ] - ++ lib.optional stdenv.hostPlatform.isWindows libgnurx; - - # https://bugs.astron.com/view.php?id=382 - doCheck = !stdenv.buildPlatform.isMusl; - - makeFlags = lib.optional stdenv.hostPlatform.isWindows "FILE_COMPILE=file"; - - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - - meta = with lib; { - homepage = "https://darwinsys.com/file"; - description = "A program that shows the type of files"; - maintainers = with maintainers; [ doronbehar ]; - license = licenses.bsd2; - pkgConfigModules = [ "libmagic" ]; - platforms = platforms.all; - mainProgram = "file"; - }; -}) diff --git a/pkgs/by-name/fi/file/packages.nix b/pkgs/by-name/fi/file/packages.nix deleted file mode 100644 index 00ab6a0..0000000 --- a/pkgs/by-name/fi/file/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index b37eaea..0000000 --- a/pkgs/by-name/fi/findutils/default.nix +++ /dev/null @@ -1,96 +0,0 @@ -{ lib, stdenv, fetchurl -, coreutils -}: - -# 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. - -stdenv.mkDerivation rec { - pname = "findutils"; - version = "4.9.0"; - - src = fetchurl { - url = "mirror://gnu/findutils/${pname}-${version}.tar.xz"; - sha256 = "sha256-or+4wJ1DZ3DtxZ9Q+kg+eFsWGjt7nVR1c8sIBl/UYv4="; - }; - - postPatch = '' - substituteInPlace xargs/xargs.c --replace 'char default_cmd[] = "echo";' 'char default_cmd[] = "${coreutils}/bin/echo";' - ''; - - patches = [ ./no-install-statedir.patch ]; - - 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 - && !(stdenv.hostPlatform.libc == "glibc" && stdenv.hostPlatform.isi686) - && (stdenv.hostPlatform.libc != "musl") - && stdenv.hostPlatform == stdenv.buildPlatform; - - outputs = [ "out" "info" "locate"]; - - configureFlags = [ - # "sort" need not be on the PATH as a run-time dep, so we need to tell - # configure where it is. Covers the cross and native case alike. - "SORT=${coreutils}/bin/sort" - "--localstatedir=/var/cache" - ]; - - CFLAGS = lib.optionals stdenv.isDarwin [ - # TODO: Revisit upstream issue https://savannah.gnu.org/bugs/?59972 - # https://github.com/Homebrew/homebrew-core/pull/69761#issuecomment-770268478 - "-D__nonnull\\(params\\)=" - ]; - - postInstall = '' - moveToOutput bin/locate $locate - moveToOutput bin/updatedb $locate - ''; - - # can't move man pages in postInstall because the multi-output hook will move them back to $out - postFixup = '' - moveToOutput share/man/man5 $locate - moveToOutput share/man/man1/locate.1.gz $locate - moveToOutput share/man/man1/updatedb.1.gz $locate - ''; - - enableParallelBuilding = true; - - # 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 - hardeningDisable = lib.optional (stdenv.hostPlatform.libc == "bionic") "fortify"; - - meta = { - homepage = "https://www.gnu.org/software/findutils/"; - description = "GNU Find Utilities, the basic directory searching utilities of the GNU operating system"; - - longDescription = '' - The GNU Find Utilities are the basic directory searching - utilities of the GNU operating system. These programs are - typically used in conjunction with other programs to provide - modular and powerful directory search and file locating - capabilities to other commands. - - The tools supplied with this package are: - - * find - search for files in a directory hierarchy; - * xargs - build and execute command lines from standard input. - - The following are available in the locate output: - - * locate - list files in databases that match a pattern; - * updatedb - update a file name database; - ''; - - platforms = lib.platforms.all; - - license = lib.licenses.gpl3Plus; - - mainProgram = "find"; - }; -} diff --git a/pkgs/by-name/fi/findutils/no-install-statedir.patch b/pkgs/by-name/fi/findutils/no-install-statedir.patch deleted file mode 100644 index a7a4803..0000000 --- a/pkgs/by-name/fi/findutils/no-install-statedir.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/locate/Makefile.in -+++ b/locate/Makefile.in -@@ -2357,7 +2357,7 @@ updatedb: updatedb.sh Makefile - chmod +x $@ - - install-data-hook: -- $(top_srcdir)/build-aux/mkinstalldirs $(DESTDIR)$(localstatedir) -+ #$(top_srcdir)/build-aux/mkinstalldirs $(DESTDIR)$(localstatedir) - - dblocation.texi: - echo '@set LOCATE_DB $(LOCATE_DB)' > $@.tmp diff --git a/pkgs/by-name/fl/flex/2.5.35.nix b/pkgs/by-name/fl/flex/2.5.35.nix deleted file mode 100644 index d6a0992..0000000 --- a/pkgs/by-name/fl/flex/2.5.35.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ 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"; - sha256 = "0wh06nix8bd4w1aq4k2fbbkdq5i30a9lxz3xczf3ff28yy0kfwzm"; - }; - - postPatch = '' - patchShebangs tests - ''; - - nativeBuildInputs = [ flex bison texinfo help2man autoreconfHook ]; - - propagatedBuildInputs = [ m4 ]; - - preConfigure = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - ''; - - doCheck = false; # fails 2 out of 46 tests - - meta = with lib; { - branch = "2.5.35"; - homepage = "https://flex.sourceforge.net/"; - description = "A fast lexical analyser generator"; - mainProgram = "flex"; - license = licenses.bsd2; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/fl/flex/default.nix b/pkgs/by-name/fl/flex/default.nix deleted file mode 100644 index 8991c14..0000000 --- a/pkgs/by-name/fl/flex/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ lib, stdenv, buildPackages, fetchurl, bison, m4 -, autoreconfHook, help2man -}: - -# Avoid 'fetchpatch' to allow 'flex' to be used as a possible 'gcc' -# dependency during bootstrap. Useful when gcc is built from snapshot -# or from a git tree (flex lexers are not pre-generated there). - -stdenv.mkDerivation rec { - pname = "flex"; - version = "2.6.4"; - - src = fetchurl { - url = "https://github.com/westes/flex/releases/download/v${version}/flex-${version}.tar.gz"; - sha256 = "15g9bv236nzi665p9ggqjlfn4dwck5835vf0bbw2cz7h5c1swyp8"; - }; - - # 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"; - })]; - - 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: ' - ''; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ autoreconfHook help2man ]; - buildInputs = [ bison ]; - propagatedBuildInputs = [ m4 ]; - - preConfigure = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' - export ac_cv_func_malloc_0_nonnull=yes - export ac_cv_func_realloc_0_nonnull=yes - ''; - - postConfigure = lib.optionalString (stdenv.isDarwin || stdenv.isCygwin) '' - sed -i Makefile -e 's/-no-undefined//;' - ''; - - dontDisableStatic = stdenv.buildPlatform != stdenv.hostPlatform; - - postInstall = '' - ln -s $out/bin/flex $out/bin/lex - ''; - - meta = with lib; { - homepage = "https://github.com/westes/flex"; - description = "A fast lexical analyser generator"; - license = licenses.bsd2; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/fl/flex/packages.nix b/pkgs/by-name/fl/flex/packages.nix deleted file mode 100644 index 248e6d0..0000000 --- a/pkgs/by-name/fl/flex/packages.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index 9866be4..0000000 --- a/pkgs/by-name/fm/fmt/default.nix +++ /dev/null @@ -1,73 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub, fetchpatch -, cmake -, enableShared ? !stdenv.hostPlatform.isStatic - -# for passthru.tests -# , mpd -# , openimageio -# , fcitx5 -# , spdlog -}: - -let - generic = { version, sha256, patches ? [ ] }: - stdenv.mkDerivation { - pname = "fmt"; - inherit version; - - outputs = [ "out" "dev" ]; - - src = fetchFromGitHub { - owner = "fmtlib"; - repo = "fmt"; - rev = version; - inherit sha256; - }; - - inherit patches; - - nativeBuildInputs = [ cmake ]; - - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=${if enableShared then "ON" else "OFF"}" - ]; - - doCheck = true; - - # passthru.tests = { - # inherit mpd openimageio fcitx5 spdlog; - # }; - - meta = with lib; { - description = "Small, safe and fast formatting library"; - longDescription = '' - fmt (formerly cppformat) is an open-source formatting library. It can be - used as a fast and safe alternative to printf and IOStreams. - ''; - homepage = "https://fmt.dev/"; - changelog = "https://github.com/fmtlib/fmt/blob/${version}/ChangeLog.rst"; - downloadPage = "https://github.com/fmtlib/fmt/"; - maintainers = [ maintainers.jdehaas ]; - license = licenses.mit; - platforms = platforms.all; - }; - }; -in -{ - fmt_8 = generic { - version = "8.1.1"; - sha256 = "sha256-leb2800CwdZMJRWF5b1Y9ocK0jXpOX/nwo95icDf308="; - }; - - fmt_9 = generic { - version = "9.1.0"; - sha256 = "sha256-rP6ymyRc7LnKxUXwPpzhHOQvpJkpnRFOt2ctvUNlYI0="; - }; - - fmt_10 = generic { - version = "10.2.1"; - sha256 = "sha256-pEltGLAHLZ3xypD/Ur4dWPWJ9BGVXwqQyKcDWVmC3co="; - }; -} diff --git a/pkgs/by-name/fm/fmt/packages.nix b/pkgs/by-name/fm/fmt/packages.nix deleted file mode 100644 index 14fd8b1..0000000 --- a/pkgs/by-name/fm/fmt/packages.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index a3150ca..0000000 --- a/pkgs/by-name/fo/fontconfig/default.nix +++ /dev/null @@ -1,96 +0,0 @@ -{ stdenv -, lib -, fetchurl -, pkg-config -, python3 -, freetype -, expat -, libxslt -, gperf -, dejavu_fonts -, autoreconfHook -, CoreFoundation -# for passthru.tests -# , testers -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "fontconfig"; - version = "2.15.0"; - - 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"; - hash = "sha256-Y6BljQ4G4PqIYQZFK1jvBPIfWCAuoCqUw53g0zNdfA4="; - }; - - nativeBuildInputs = [ - autoreconfHook - gperf - libxslt - pkg-config - python3 - ]; - - buildInputs = [ - expat - ] ++ lib.optional stdenv.isDarwin CoreFoundation; - - 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}" - ]; - - enableParallelBuilding = true; - - doCheck = true; - - installFlags = [ - # Don't try to write to /var/cache/fontconfig at install time. - "fc_cachedir=$(TMPDIR)/dummy" - "RUN_FC_CACHE_TEST=false" - "sysconfdir=${placeholder "out"}/etc" - ]; - - postInstall = '' - cd "$out/etc/fonts" - xsltproc --stringparam fontDirectories "${dejavu_fonts.minimal}" \ - --path $out/share/xml/fontconfig \ - ${./make-fonts-conf.xsl} $out/etc/fonts/fonts.conf \ - > fonts.conf.tmp - mv fonts.conf.tmp $out/etc/fonts/fonts.conf - # We don't keep section 3 of the manpages, as they are quite large and - # probably not so useful. - rm -r $bin/share/man/man3 - ''; - - # passthru.tests = { - # pkg-config = testers.hasPkgConfigModules { - # package = finalAttrs.finalPackage; - # }; - # }; - - meta = with lib; { - description = "A library for font customization and configuration"; - homepage = "http://fontconfig.org/"; - license = licenses.bsd2; # custom but very bsd-like - platforms = platforms.all; - maintainers = with maintainers; [ ]; - pkgConfigModules = [ "fontconfig" ]; - }; -}) diff --git a/pkgs/by-name/fo/fontconfig/make-fonts-cache.nix b/pkgs/by-name/fo/fontconfig/make-fonts-cache.nix deleted file mode 100644 index 47884b9..0000000 --- a/pkgs/by-name/fo/fontconfig/make-fonts-cache.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ runCommand, lib, fontconfig, fontDirectories }: - -runCommand "fc-cache" - { - nativeBuildInputs = [ fontconfig.bin ]; - preferLocalBuild = true; - allowSubstitutes = false; - passAsFile = [ "fontDirs" ]; - fontDirs = '' - - ${lib.concatStringsSep "\n" (map (font: "${font}") fontDirectories)} - ''; - } - '' - export FONTCONFIG_FILE=$(pwd)/fonts.conf - - cat > fonts.conf << EOF - - - - ${fontconfig.out}/etc/fonts/fonts.conf - $out - EOF - cat "$fontDirsPath" >> fonts.conf - echo "" >> fonts.conf - - mkdir -p $out - fc-cache -sv - - # This is not a cache dir in the normal sense -- it won't be automatically - # recreated. - rm -f "$out/CACHEDIR.TAG" - '' diff --git a/pkgs/by-name/fo/fontconfig/make-fonts-conf.nix b/pkgs/by-name/fo/fontconfig/make-fonts-conf.nix deleted file mode 100644 index a03f744..0000000 --- a/pkgs/by-name/fo/fontconfig/make-fonts-conf.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ 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" ] -}: - -runCommand "fonts.conf" - { - nativeBuildInputs = [ libxslt ]; - buildInputs = [ fontconfig ]; - inherit fontDirectories; - # Add a default font for non-nixos systems, <1MB and in nixos defaults. - impureFontDirectories = impureFontDirectories ++ [ dejavu_fonts.minimal ]; - } - '' - xsltproc --stringparam fontDirectories "$fontDirectories" \ - --stringparam impureFontDirectories "$impureFontDirectories" \ - --path ${fontconfig.out}/share/xml/fontconfig \ - ${./make-fonts-conf.xsl} ${fontconfig.out}/etc/fonts/fonts.conf \ - > $out - '' diff --git a/pkgs/by-name/fo/fontconfig/make-fonts-conf.xsl b/pkgs/by-name/fo/fontconfig/make-fonts-conf.xsl deleted file mode 100644 index d04e4ff..0000000 --- a/pkgs/by-name/fo/fontconfig/make-fonts-conf.xsl +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - - - fontconfig - - - /var/cache/fontconfig - - - - /etc/fonts/conf.d - - - fonts - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/pkgs/by-name/fo/fontconfig/packages.nix b/pkgs/by-name/fo/fontconfig/packages.nix deleted file mode 100644 index 8670a20..0000000 --- a/pkgs/by-name/fo/fontconfig/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index d7a083b..0000000 --- a/pkgs/by-name/fo/fontforge/default.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ 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; - -stdenv.mkDerivation rec { - pname = "fontforge"; - version = "20230101"; - - src = fetchFromGitHub { - owner = pname; - repo = pname; - rev = version; - sha256 = "sha256-/RYhvL+Z4n4hJ8dmm+jbA1Ful23ni2DbCRZC5A3+pP0="; - }; - - patches = [ - (fetchpatch { - name = "CVE-2024-25081.CVE-2024-25082.patch"; - url = "https://github.com/fontforge/fontforge/commit/216eb14b558df344b206bf82e2bdaf03a1f2f429.patch"; - hash = "sha256-aRnir09FSQMT50keoB7z6AyhWAVBxjSQsTRvBzeBuHU="; - }) - ]; - - # use $SOURCE_DATE_EPOCH instead of non-deterministic timestamps - postPatch = '' - find . -type f -name '*.c' -exec sed -r -i 's#\btime\(&(.+)\)#if (getenv("SOURCE_DATE_EPOCH")) \1=atol(getenv("SOURCE_DATE_EPOCH")); else &#g' {} \; - sed -r -i 's#author\s*!=\s*NULL#& \&\& !getenv("SOURCE_DATE_EPOCH")#g' fontforge/cvexport.c fontforge/dumppfa.c fontforge/print.c fontforge/svg.c fontforge/splineutil2.c - sed -r -i 's#\bb.st_mtime#getenv("SOURCE_DATE_EPOCH") ? atol(getenv("SOURCE_DATE_EPOCH")) : &#g' fontforge/parsepfa.c fontforge/sfd.c fontforge/svg.c - sed -r -i 's#^\s*ttf_fftm_dump#if (!getenv("SOURCE_DATE_EPOCH")) ttf_fftm_dump#g' fontforge/tottf.c - sed -r -i 's#sprintf\(.+ author \);#if (!getenv("SOURCE_DATE_EPOCH")) &#g' fontforgeexe/fontinfo.c - ''; - - # 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 - ] - ++ lib.optionals withSpiro [ libspiro ] - ++ lib.optionals withGUI [ gtk3 cairo pango ] - ++ lib.optionals stdenv.isDarwin [ Carbon Cocoa ]; - - 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" - ++ lib.optional withExtras "-DENABLE_FONTFORGE_EXTRAS=ON"; - - preConfigure = '' - # The way $version propagates to $version of .pe-scripts (https://github.com/dejavu-fonts/dejavu-fonts/blob/358190f/scripts/generate.pe#L19) - export SOURCE_DATE_EPOCH=$(date -d ${version} +%s) - ''; - - postInstall = - # get rid of the runtime dependency on python - lib.optionalString (!withPython) '' - rm -r "$out/share/fontforge/python" - ''; - - meta = with lib; { - description = "A font editor"; - homepage = "https://fontforge.github.io"; - platforms = platforms.all; - license = licenses.bsd3; - maintainers = [ maintainers.erictapen ]; - }; -} diff --git a/pkgs/by-name/fo/fontforge/fontforge-fonttools.nix b/pkgs/by-name/fo/fontforge/fontforge-fonttools.nix deleted file mode 100644 index ea4acfc..0000000 --- a/pkgs/by-name/fo/fontforge/fontforge-fonttools.nix +++ /dev/null @@ -1 +0,0 @@ -{ fontforge }: fontforge.override { withExtras = true; } diff --git a/pkgs/by-name/fo/fontforge/packages.nix b/pkgs/by-name/fo/fontforge/packages.nix deleted file mode 100644 index fe4c9f3..0000000 --- a/pkgs/by-name/fo/fontforge/packages.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - fontforge = lowPrio (callPackage ./. { - inherit (darwin.apple_sdk.frameworks) Carbon Cocoa; - python = python3; - }); - fontforge-gtk = fontforge.override { - withSpiro = true; - withGTK = true; - gtk3 = gtk3-x11; - inherit (darwin.apple_sdk.frameworks) Carbon Cocoa; - }; - - fontforge-fonttools = callPackage ./fontforge-fonttools.nix { }; -} diff --git a/pkgs/by-name/fo/fop/default.nix b/pkgs/by-name/fo/fop/default.nix deleted file mode 100644 index 94a2421..0000000 --- a/pkgs/by-name/fo/fop/default.nix +++ /dev/null @@ -1,81 +0,0 @@ -{ lib -, stdenv -, fetchurl -, ant -, jdk -, jre -, makeWrapper -, stripJavaArchivesHook -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "fop"; - version = "2.8"; - - src = fetchurl { - url = "mirror://apache/xmlgraphics/fop/fop-${finalAttrs.version}-src.tar.gz"; - hash = "sha256-b7Av17wu6Ar/npKOiwYqzlvBFSIuXTpqTacM1sxtBvc="; - }; - - nativeBuildInputs = [ - ant - jdk - makeWrapper - stripJavaArchivesHook - ]; - - # Note: not sure if this is needed anymore - env.JAVA_TOOL_OPTIONS = "-Dfile.encoding=UTF8"; - - buildPhase = '' - runHook preBuild - - # build only the "package" target, which generates the fop command. - ant -f fop/build.xml package - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - mkdir -p $out/lib $out/share/doc/fop - cp fop/build/*.jar fop/lib/*.jar $out/lib/ - cp -r README fop/examples/ $out/share/doc/fop/ - - # There is a fop script in the source archive, but it has many impurities. - # Instead of patching out 90 % of the script, we write our own. - makeWrapper ${jre}/bin/java $out/bin/fop \ - --add-flags "-Djava.awt.headless=true" \ - --add-flags "-classpath $out/lib/\*" \ - --add-flags "org.apache.fop.cli.Main" - - runHook postInstall - ''; - - meta = { - changelog = "https://xmlgraphics.apache.org/fop/changes.html"; - description = "XML formatter driven by XSL Formatting Objects (XSL-FO)"; - longDescription = '' - FOP is a Java application that reads a formatting object tree and then - turns it into a wide variety of output presentations (including AFP, PCL, - PDF, PNG, PostScript, RTF, TIFF, and plain text), or displays the result - on-screen. - - The formatting object tree can be in the form of an XML document (output - by an XSLT engine like xalan) or can be passed in memory as a DOM - Document or (in the case of xalan) SAX events. - - This package contains the fop command line tool. - ''; - homepage = "https://xmlgraphics.apache.org/fop/"; - license = lib.licenses.asl20; - mainProgram = "fop"; - maintainers = with lib.maintainers; [ bjornfor tomasajt ]; - platforms = jre.meta.platforms; - sourceProvenance = with lib.sourceTypes; [ - fromSource - binaryBytecode # source bundles dependencies as jars - ]; - }; -}) diff --git a/pkgs/by-name/fo/fortify-headers/default.nix b/pkgs/by-name/fo/fortify-headers/default.nix deleted file mode 100644 index 1f418af..0000000 --- a/pkgs/by-name/fo/fortify-headers/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ lib -, stdenv -, fetchurl -}: - -stdenv.mkDerivation { - pname = "fortify-headers"; - version = "1.1alpine3"; - - # upstream only accessible via git - unusable during bootstrap, hence - # 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 - hash = "sha256-8A8JcKHIBgXpUuIP4zs3Q1yBs5jCGd5F3H2E8UN/S2g="; - }; - - patches = [ - ./wchar-imports-skip.patch - ./restore-macros.patch - ]; - - installPhase = '' - runHook preInstall - - mkdir -p $out - cp -r include/fortify $out/include - - runHook postInstall - ''; - - meta = { - description = "Standalone header-based fortify-source implementation"; - homepage = "https://git.2f30.org/fortify-headers"; - license = lib.licenses.bsd0; - platforms = lib.platforms.all; - maintainers = with lib.maintainers; [ ris ]; - }; -} diff --git a/pkgs/by-name/fo/fortify-headers/restore-macros.patch b/pkgs/by-name/fo/fortify-headers/restore-macros.patch deleted file mode 100644 index f7d31a3..0000000 --- a/pkgs/by-name/fo/fortify-headers/restore-macros.patch +++ /dev/null @@ -1,283 +0,0 @@ -restore #undef'ed macro values after we're done - -some programs that define these miss them if removed - -push_macro and pop_macro pragmas allegedly well supported -by gcc, clang and msvc - ---- a/include/fortify/poll.h -+++ b/include/fortify/poll.h -@@ -29,6 +29,7 @@ __extension__ - extern "C" { - #endif - -+#pragma push_macro("poll") - #undef poll - - _FORTIFY_FN(poll) int poll(struct pollfd * _FORTIFY_POS0 __f, nfds_t __n, int __s) -@@ -40,6 +41,8 @@ _FORTIFY_FN(poll) int poll(struct pollfd * _FORTIFY_POS0 __f, nfds_t __n, int __ - return __orig_poll(__f, __n, __s); - } - -+#pragma pop_macro("poll") -+ - #ifdef __cplusplus - } - #endif ---- a/include/fortify/stdio.h -+++ b/include/fortify/stdio.h -@@ -29,12 +29,19 @@ __extension__ - extern "C" { - #endif - -+#pragma push_macro("fgets") - #undef fgets -+#pragma push_macro("fread") - #undef fread -+#pragma push_macro("fwrite") - #undef fwrite -+#pragma push_macro("vsprintf") - #undef vsprintf -+#pragma push_macro("vsnprintf") - #undef vsnprintf -+#pragma push_macro("snprintf") - #undef snprintf -+#pragma push_macro("sprintf") - #undef sprintf - - _FORTIFY_FN(fgets) char *fgets(char * _FORTIFY_POS0 __s, int __n, FILE *__f) -@@ -140,6 +147,14 @@ _FORTIFY_FN(sprintf) int sprintf(char *__s, const char *__f, ...) - #endif /* __has_builtin(__builtin_va_arg_pack) */ - #endif /* defined(__has_builtin) */ - -+#pragma pop_macro("fgets") -+#pragma pop_macro("fread") -+#pragma pop_macro("fwrite") -+#pragma pop_macro("vsprintf") -+#pragma pop_macro("vsnprintf") -+#pragma pop_macro("snprintf") -+#pragma pop_macro("sprintf") -+ - #ifdef __cplusplus - } - #endif ---- a/include/fortify/stdlib.h -+++ b/include/fortify/stdlib.h -@@ -38,7 +38,10 @@ extern "C" { - - /* FIXME clang */ - #if (defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)) && !defined(__clang__) -+ -+#pragma push_macro("realpath") - #undef realpath -+ - _FORTIFY_FN(realpath) char *realpath(const char *__p, char *__r) - { - #ifndef PATH_MAX -@@ -60,6 +63,9 @@ _FORTIFY_FN(realpath) char *realpath(const char *__p, char *__r) - return __orig_realpath(__p, __r); - #endif - } -+ -+#pragma pop_macro("realpath") -+ - #endif - - #ifdef __cplusplus ---- a/include/fortify/string.h -+++ b/include/fortify/string.h -@@ -29,12 +29,19 @@ __extension__ - extern "C" { - #endif - -+#pragma push_macro("memcpy") - #undef memcpy -+#pragma push_macro("memmove") - #undef memmove -+#pragma push_macro("memset") - #undef memset -+#pragma push_macro("strcat") - #undef strcat -+#pragma push_macro("strcpy") - #undef strcpy -+#pragma push_macro("strncat") - #undef strncat -+#pragma push_macro("strncpy") - #undef strncpy - - _FORTIFY_FN(memcpy) void *memcpy(void * _FORTIFY_POS0 __od, -@@ -183,6 +190,14 @@ _FORTIFY_FN(strlcpy) size_t strlcpy(char * _FORTIFY_POS0 __d, - } - #endif - -+#pragma pop_macro("memcpy") -+#pragma pop_macro("memmove") -+#pragma pop_macro("memset") -+#pragma pop_macro("strcat") -+#pragma pop_macro("strcpy") -+#pragma pop_macro("strncat") -+#pragma pop_macro("strncpy") -+ - #ifdef __cplusplus - } - #endif ---- a/include/fortify/strings.h -+++ b/include/fortify/strings.h -@@ -29,8 +29,12 @@ extern "C" { - #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_POSIX_SOURCE) \ - || (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE+0 < 200809L) \ - || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700) -+ -+#pragma push_macro("bcopy") - #undef bcopy -+#pragma push_macro("bzero") - #undef bzero -+ - _FORTIFY_FN(bcopy) void bcopy(const void * _FORTIFY_POS0 __s, - void * _FORTIFY_POS0 __d, size_t __n) - { -@@ -52,6 +56,9 @@ _FORTIFY_FN(bzero) void bzero(void * _FORTIFY_POS0 __s, size_t __n) - } - #endif - -+#pragma pop_macro("bcopy") -+#pragma pop_macro("bzero") -+ - #ifdef __cplusplus - } - #endif ---- a/include/fortify/sys/socket.h -+++ b/include/fortify/sys/socket.h -@@ -29,9 +29,13 @@ __extension__ - extern "C" { - #endif - -+#pragma push_macro("recv") - #undef recv -+#pragma push_macro("recvfrom") - #undef recvfrom -+#pragma push_macro("send") - #undef send -+#pragma push_macro("sendto") - #undef sendto - - _FORTIFY_FN(recv) ssize_t recv(int __f, void * _FORTIFY_POS0 __s, size_t __n, -@@ -76,6 +80,11 @@ _FORTIFY_FN(sendto) ssize_t sendto(int __f, const void * _FORTIFY_POS0 __s, - return __orig_sendto(__f, __s, __n, __fl, __a, __l); - } - -+#pragma push_macro("recv") -+#pragma push_macro("recvfrom") -+#pragma push_macro("send") -+#pragma push_macro("sendto") -+ - #ifdef __cplusplus - } - #endif ---- a/include/fortify/unistd.h -+++ b/include/fortify/unistd.h -@@ -29,16 +29,27 @@ __extension__ - extern "C" { - #endif - -+#pragma push_macro("confstr") - #undef confstr -+#pragma push_macro("getcwd") - #undef getcwd -+#pragma push_macro("getgroups") - #undef getgroups -+#pragma push_macro("gethostname") - #undef gethostname -+#pragma push_macro("getlogin_r") - #undef getlogin_r -+#pragma push_macro("pread") - #undef pread -+#pragma push_macro("read") - #undef read -+#pragma push_macro("readlink") - #undef readlink -+#pragma push_macro("readlinkat") - #undef readlinkat -+#pragma push_macro("ttyname_r") - #undef ttyname_r -+#pragma push_macro("write") - #undef write - - _FORTIFY_FN(confstr) size_t confstr(int __n, char * _FORTIFY_POS0 __s, size_t __l) -@@ -158,6 +169,18 @@ _FORTIFY_FN(write) ssize_t write(int __f, const void * _FORTIFY_POS0 __s, - return __orig_write(__f, __s, __n); - } - -+#pragma pop_macro("confstr") -+#pragma pop_macro("getcwd") -+#pragma pop_macro("getgroups") -+#pragma pop_macro("gethostname") -+#pragma pop_macro("getlogin_r") -+#pragma pop_macro("pread") -+#pragma pop_macro("read") -+#pragma pop_macro("readlink") -+#pragma pop_macro("readlinkat") -+#pragma pop_macro("ttyname_r") -+#pragma pop_macro("write") -+ - #ifdef __cplusplus - } - #endif ---- a/include/fortify/wchar.h -+++ b/include/fortify/wchar.h -@@ -43,19 +43,33 @@ __extension__ - extern "C" { - #endif - -+#pragma push_macro("fgetws") - #undef fgetws -+#pragma push_macro("mbsrtowcs") - #undef mbsrtowcs -+#pragma push_macro("mbstowcs") - #undef mbstowcs -+#pragma push_macro("wcrtomb") - #undef wcrtomb -+#pragma push_macro("wcscat") - #undef wcscat -+#pragma push_macro("wcscpy") - #undef wcscpy -+#pragma push_macro("wcsncat") - #undef wcsncat -+#pragma push_macro("wcsncpy") - #undef wcsncpy -+#pragma push_macro("wcsrtombs") - #undef wcsrtombs -+#pragma push_macro("wcstombs") - #undef wcstombs -+#pragma push_macro("wctomb") - #undef wctomb -+#pragma push_macro("wmemcpy") - #undef wmemcpy -+#pragma push_macro("wmemmove") - #undef wmemmove -+#pragma push_macro("wmemset") - #undef wmemset - - _FORTIFY_FN(fgetws) wchar_t *fgetws(wchar_t * _FORTIFY_POS0 __s, -@@ -269,6 +283,21 @@ _FORTIFY_FN(wmemset) wchar_t *wmemset(wchar_t * _FORTIFY_POS0 __s, - return __orig_wmemset(__s, __c, __n); - } - -+#pragma pop_macro("fgetws") -+#pragma pop_macro("mbsrtowcs") -+#pragma pop_macro("mbstowcs") -+#pragma pop_macro("wcrtomb") -+#pragma pop_macro("wcscat") -+#pragma pop_macro("wcscpy") -+#pragma pop_macro("wcsncat") -+#pragma pop_macro("wcsncpy") -+#pragma pop_macro("wcsrtombs") -+#pragma pop_macro("wcstombs") -+#pragma pop_macro("wctomb") -+#pragma pop_macro("wmemcpy") -+#pragma pop_macro("wmemmove") -+#pragma pop_macro("wmemset") -+ - #ifdef __cplusplus - } - #endif diff --git a/pkgs/by-name/fo/fortify-headers/wchar-imports-skip.patch b/pkgs/by-name/fo/fortify-headers/wchar-imports-skip.patch deleted file mode 100644 index 255ceba..0000000 --- a/pkgs/by-name/fo/fortify-headers/wchar-imports-skip.patch +++ /dev/null @@ -1,41 +0,0 @@ -wchar.h: only include other headers if _FORTIFY_SOURCE is enabled - -unexpectedly including other headers can cause problems with -sensitive/brittle code, particularly with alternative compilers -(clang) which are already operating on the margins of what's -supported/expected by some projects. - -having a way to almost entirely short-circuit these headers (by -disabling _FORTIFY_SOURCE) is therefore important. - ---- a/include/fortify/wchar.h -+++ b/include/fortify/wchar.h -@@ -20,21 +20,23 @@ - #if !defined(__cplusplus) && !defined(__clang__) - __extension__ - #endif --#include_next -+#include_next -+ -+#if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0 && defined(__OPTIMIZE__) && __OPTIMIZE__ > 0 -+ - #if !defined(__cplusplus) && !defined(__clang__) - __extension__ - #endif --#include_next -+#include_next - #if !defined(__cplusplus) && !defined(__clang__) - __extension__ - #endif --#include_next -+#include_next - #if !defined(__cplusplus) && !defined(__clang__) - __extension__ - #endif --#include_next -+#include_next - --#if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0 && defined(__OPTIMIZE__) && __OPTIMIZE__ > 0 - #include "fortify-headers.h" - - #ifdef __cplusplus diff --git a/pkgs/by-name/fr/freetype/default.nix b/pkgs/by-name/fr/freetype/default.nix deleted file mode 100644 index 0d56ab1..0000000 --- a/pkgs/by-name/fr/freetype/default.nix +++ /dev/null @@ -1,122 +0,0 @@ -{ 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). - # 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 - - # for passthru.tests -# , cairo -# , fontforge -# , ghostscript -# , graphicsmagick -# , gtk3 -# , harfbuzz -# , imagemagick -# , pango -# , poppler -# , python3 -# , qt5 -# , texmacs -# , ttfautohint -# , 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="; - }; - - propagatedBuildInputs = [ zlib bzip2 brotli libpng ]; # needed when linking against freetype - - # dependence on harfbuzz is looser than the reverse dependence - 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; - - patches = [ - ./enable-table-validation.patch - ] ++ lib.optional useEncumberedCode ./enable-subpixel-rendering.patch; - - outputs = [ "out" "dev" ]; - - 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" - + lib.optionalString stdenv.hostPlatform.is32bit " -D_FILE_OFFSET_BITS=64"; - - enableParallelBuilding = true; - - doCheck = true; - - 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) '' - - wrapProgram "$dev/bin/freetype-config" \ - --set PKG_CONFIG_PATH "$PKG_CONFIG_PATH:$dev/lib/pkgconfig" - ''; - - # passthru.tests = { - # inherit - # cairo - # fontforge - # ghostscript - # graphicsmagick - # gtk3 - # harfbuzz - # imagemagick - # pango - # poppler - # texmacs - # ttfautohint; - # inherit (python3.pkgs) freetype-py; - # inherit (qt5) qtbase; - # pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - # }; - - meta = with lib; { - description = "A font rendering engine"; - mainProgram = "freetype-config"; - longDescription = '' - FreeType is a portable and efficient library for rendering fonts. It - supports TrueType, Type 1, CFF fonts, and WOFF, PCF, FNT, BDF and PFR - fonts. It has a bytecode interpreter and has an automatic hinter called - autofit which can be used instead of hinting instructions included in - fonts. - ''; - homepage = "https://www.freetype.org/"; - 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" ]; - maintainers = with maintainers; [ ]; - }; -}) diff --git a/pkgs/by-name/fr/freetype/enable-subpixel-rendering.patch b/pkgs/by-name/fr/freetype/enable-subpixel-rendering.patch deleted file mode 100644 index 6b3577e..0000000 --- a/pkgs/by-name/fr/freetype/enable-subpixel-rendering.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: freetype-2.10.0/include/freetype/config/ftoption.h ---- a/include/freetype/config/ftoption.h -+++ b/include/freetype/config/ftoption.h -@@ -126,7 +126,7 @@ FT_BEGIN_HEADER - * macro is not defined, FreeType offers alternative LCD rendering - * technology that produces excellent output without LCD filtering. - */ --/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */ -+#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING - - - /************************************************************************** diff --git a/pkgs/by-name/fr/freetype/enable-table-validation.patch b/pkgs/by-name/fr/freetype/enable-table-validation.patch deleted file mode 100644 index bd964c3..0000000 --- a/pkgs/by-name/fr/freetype/enable-table-validation.patch +++ /dev/null @@ -1,20 +0,0 @@ -Index: freetype-2.10.0/modules.cfg -=================================================================== ---- freetype-2.10.0.orig/modules.cfg -+++ freetype-2.10.0/modules.cfg -@@ -120,6 +120,6 @@ AUX_MODULES += cache - # TrueType GX/AAT table validation. Needs ftgxval.c below. - # --# AUX_MODULES += gxvalid -+AUX_MODULES += gxvalid - - # Support for streams compressed with gzip (files with suffix .gz). - # -@@ -143,6 +143,6 @@ AUX_MODULES += bzip2 - # OpenType table validation. Needs ftotval.c below. - # --# AUX_MODULES += otvalid -+AUX_MODULES += otvalid - - # Auxiliary PostScript driver component to share common code. - # diff --git a/pkgs/by-name/fu/fuse/common.nix b/pkgs/by-name/fu/fuse/common.nix deleted file mode 100644 index f4b8bfc..0000000 --- a/pkgs/by-name/fu/fuse/common.nix +++ /dev/null @@ -1,108 +0,0 @@ -{ version, hash }: - -{ 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 { - pname = "fuse"; - inherit version; - - src = fetchFromGitHub { - owner = "libfuse"; - repo = "libfuse"; - rev = "${pname}-${version}"; - inherit hash; - }; - - 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="; - }) - ]); - - nativeBuildInputs = if isFuse3 - then [ meson ninja pkg-config ] - else [ autoreconfHook gettext ]; - - outputs = [ "out" ] ++ lib.optional isFuse3 "common"; - - mesonFlags = lib.optionals isFuse3 [ - "-Dudevrulesdir=/udev/rules.d" - "-Duseroot=false" - "-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 - - # 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 - ''); - - nativeCheckInputs = [ which ] ++ (with python3Packages; [ python pytest ]); - - checkPhase = '' - python3 -m pytest test/ - ''; - - 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 - ''); - - meta = with lib; { - description = "Library that allows filesystems to be implemented in user space"; - longDescription = '' - FUSE (Filesystem in Userspace) is an interface for userspace programs to - export a filesystem to the Linux kernel. The FUSE project consists of two - components: The fuse kernel module (maintained in the regular kernel - repositories) and the libfuse userspace library (this package). libfuse - provides the reference implementation for communicating with the FUSE - kernel module. - ''; - homepage = "https://github.com/libfuse/libfuse"; - changelog = "https://github.com/libfuse/libfuse/releases/tag/fuse-${version}"; - platforms = platforms.linux; - 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 deleted file mode 100644 index f692c2f..0000000 --- a/pkgs/by-name/fu/fuse/default.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ callPackage, util-linux }: - -let - mkFuse = args: callPackage (import ./common.nix args) { - inherit util-linux; - }; -in { - fuse_2 = mkFuse { - version = "2.9.9"; - hash = "sha256-dgjM6M7xk5MHi9xPyCyvF0vq0KM8UCsEYBcMhkrdvfs="; - }; - - fuse_3 = mkFuse { - version = "3.16.2"; - hash = "sha256-QO9s+IkR0rkqIYNqt2IYST6AVBkCr56jcuuz5nKJuA4="; - }; -} diff --git a/pkgs/by-name/fu/fuse/fuse2-Do-not-set-FUSERMOUNT_DIR.patch b/pkgs/by-name/fu/fuse/fuse2-Do-not-set-FUSERMOUNT_DIR.patch deleted file mode 100644 index 8ff40f3..0000000 --- a/pkgs/by-name/fu/fuse/fuse2-Do-not-set-FUSERMOUNT_DIR.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/lib/Makefile.am -+++ b/lib/Makefile.am -@@ -1,7 +1,7 @@ - ## Process this file with automake to produce Makefile.in - - AUTOMAKE_OPTIONS = subdir-objects --AM_CPPFLAGS = -I$(top_srcdir)/include -DFUSERMOUNT_DIR=\"$(bindir)\" \ -+AM_CPPFLAGS = -I$(top_srcdir)/include \ - -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26 - - lib_LTLIBRARIES = libfuse.la libulockmgr.la diff --git a/pkgs/by-name/fu/fuse/fuse3-Do-not-set-FUSERMOUNT_DIR.patch b/pkgs/by-name/fu/fuse/fuse3-Do-not-set-FUSERMOUNT_DIR.patch deleted file mode 100644 index 582d3eb..0000000 --- a/pkgs/by-name/fu/fuse/fuse3-Do-not-set-FUSERMOUNT_DIR.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/lib/meson.build b/lib/meson.build ---- a/lib/meson.build -+++ b/lib/meson.build -@@ -37,8 +37,7 @@ libfuse = library('fuse3', libfuse_sources, version: meson.project_version(), - soversion: '3', include_directories: include_dirs, - dependencies: deps, install: true, - link_depends: 'fuse_versionscript', -- c_args: [ '-DFUSE_USE_VERSION=312', -- '-DFUSERMOUNT_DIR="@0@"'.format(fusermount_path) ], -+ c_args: [ '-DFUSE_USE_VERSION=312' ], - link_args: ['-Wl,--version-script,' + meson.current_source_dir() - + '/fuse_versionscript' ]) - diff --git a/pkgs/by-name/fu/fuse/fuse3-install.patch b/pkgs/by-name/fu/fuse/fuse3-install.patch deleted file mode 100644 index 769e308..0000000 --- a/pkgs/by-name/fu/fuse/fuse3-install.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- a/util/install_helper.sh 2023-08-26 22:12:11.028651669 +0200 -+++ b/util/install_helper.sh 2023-08-26 22:38:03.165058694 +0200 -@@ -39,12 +39,12 @@ - - if [ "${udevrulesdir}" != "" ]; then - install -D -m 644 "${MESON_SOURCE_ROOT}/util/udev.rules" \ -- "${DESTDIR}${udevrulesdir}/99-fuse3.rules" -+ "${sysconfdir}${udevrulesdir}/99-fuse3.rules" - fi - - if [ "$initscriptdir" != "" ]; then - install -D -m 755 "${MESON_SOURCE_ROOT}/util/init_script" \ -- "${DESTDIR}${initscriptdir}/fuse3" -+ "${sysconfdir}${initscriptdir}/fuse3" - - if test -x /usr/sbin/update-rc.d && test -z "${DESTDIR}"; then - /usr/sbin/update-rc.d fuse3 start 34 S . start 41 0 6 . || /bin/true -diff --git a/util/meson.build b/util/meson.build -index aa0e734..06d4378 100644 ---- a/util/meson.build -+++ b/util/meson.build -@@ -1,4 +1,4 @@ --fuseconf_path = join_paths(get_option('prefix'), get_option('sysconfdir'), 'fuse.conf') -+fuseconf_path = join_paths('/', get_option('sysconfdir'), 'fuse.conf') - - executable('fusermount3', ['fusermount.c', '../lib/mount_util.c'], - include_directories: include_dirs, diff --git a/pkgs/by-name/fu/fuse/packages.nix b/pkgs/by-name/fu/fuse/packages.nix deleted file mode 100644 index 7f1604c..0000000 --- a/pkgs/by-name/fu/fuse/packages.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ ... }: -res: pkgs: super: - -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; - fuse-common = hiPrio fusePackages.fuse_3.common; -} diff --git a/pkgs/by-name/ga/gawk/default.nix b/pkgs/by-name/ga/gawk/default.nix deleted file mode 100644 index d85880e..0000000 --- a/pkgs/by-name/ga/gawk/default.nix +++ /dev/null @@ -1,87 +0,0 @@ -{ 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 -}: - -assert (doCheck && stdenv.isLinux) -> glibcLocales != null; - -stdenv.mkDerivation rec { - pname = "gawk" + lib.optionalString interactive "-interactive"; - version = "5.2.2"; - - src = fetchurl { - url = "mirror://gnu/gawk/gawk-${version}.tar.xz"; - hash = "sha256-PB/OFEa0y+4c0nO9fsZLyH2J9hU3RxzT4F4zqWWiUOk="; - }; - - # PIE is incompatible with the "persistent malloc" ("pma") feature. - # While build system attempts to pass -no-pie to gcc. nixpkgs' `ld` - # wrapped still passes `-pie` flag to linker and breaks linkage. - # Let's disable "pie" until `ld` is fixed to do the right thing. - hardeningDisable = [ "pie" ]; - - # When we do build separate interactive version, it makes sense to always include man. - outputs = [ "out" "info" ] - ++ lib.optional (!interactive) "man"; - - # no-pma fix - nativeBuildInputs = [ autoreconfHook ] - ++ lib.optional (doCheck && stdenv.isLinux) glibcLocales; - - buildInputs = lib.optional withSigsegv libsigsegv - ++ lib.optional interactive readline - ++ lib.optional stdenv.isDarwin locale; - - configureFlags = [ - (if withSigsegv then "--with-libsigsegv-prefix=${libsigsegv}" else "--without-libsigsegv") - (if interactive then "--with-readline=${readline.dev}" else "--without-readline") - ]; - - makeFlags = [ - "AR=${stdenv.cc.targetPrefix}ar" - ]; - - inherit doCheck; - - postInstall = '' - rm "$out"/bin/gawk-* - ln -s gawk.1 "''${!outputMan}"/share/man/man1/awk.1 - ''; - - passthru = { - libsigsegv = if withSigsegv then libsigsegv else null; # for stdenv bootstrap - }; - - meta = with lib; { - homepage = "https://www.gnu.org/software/gawk/"; - description = "GNU implementation of the Awk programming language"; - longDescription = '' - Many computer users need to manipulate text files: extract and then - operate on data from parts of certain lines while discarding the rest, - make changes in various text files wherever certain patterns appear, - and so on. To write a program to do these things in a language such as - C or Pascal is a time-consuming inconvenience that may take many lines - of code. The job is easy with awk, especially the GNU implementation: - Gawk. - - The awk utility interprets a special-purpose programming language that - makes it possible to handle many data-reformatting jobs with just a few - lines of code. - ''; - license = licenses.gpl3Plus; - platforms = platforms.unix ++ platforms.windows; - maintainers = [ ]; - mainProgram = "gawk"; - }; -} diff --git a/pkgs/by-name/ga/gawk/fix-typos-corrected-in-libharu-2.4.4.patch b/pkgs/by-name/ga/gawk/fix-typos-corrected-in-libharu-2.4.4.patch deleted file mode 100644 index 6b4a416..0000000 --- a/pkgs/by-name/ga/gawk/fix-typos-corrected-in-libharu-2.4.4.patch +++ /dev/null @@ -1,62 +0,0 @@ -diff --git a/haru/pdf.c b/haru/pdf.c -index d16f573..3129427 100644 ---- a/haru/pdf.c -+++ b/haru/pdf.c -@@ -105,7 +105,7 @@ static awk_scalar_t HPDF_CS_PATTERN_node; - /* LineCap */ - static awk_scalar_t HPDF_BUTT_END_node; - static awk_scalar_t HPDF_ROUND_END_node; --static awk_scalar_t HPDF_PROJECTING_SCUARE_END_node; -+static awk_scalar_t HPDF_PROJECTING_SQUARE_END_node; - - /* _LineJoin */ - static awk_scalar_t HPDF_MITER_JOIN_node; -@@ -248,7 +248,7 @@ static awk_scalar_t HPDF_ENCODER_UNKNOWN_node; - /* ByteType */ - static awk_scalar_t HPDF_BYTE_TYPE_SINGLE_node; - static awk_scalar_t HPDF_BYTE_TYPE_LEAD_node; --static awk_scalar_t HPDF_BYTE_TYPE_TRIAL_node; -+static awk_scalar_t HPDF_BYTE_TYPE_TRAIL_node; - static awk_scalar_t HPDF_BYTE_TYPE_UNKNOWN_node; - - /* TextAlignment */ -@@ -308,7 +308,7 @@ static const struct varinit varinit[] = { - ENTRY(HPDF_CS_PATTERN, 1) - ENTRY(HPDF_BUTT_END, 1) - ENTRY(HPDF_ROUND_END, 1) -- ENTRY(HPDF_PROJECTING_SCUARE_END, 1) -+ ENTRY(HPDF_PROJECTING_SQUARE_END, 1) - ENTRY(HPDF_MITER_JOIN, 1) - ENTRY(HPDF_ROUND_JOIN, 1) - ENTRY(HPDF_BEVEL_JOIN, 1) -@@ -417,7 +417,7 @@ static const struct varinit varinit[] = { - ENTRY(HPDF_ENCODER_UNKNOWN, 1) - ENTRY(HPDF_BYTE_TYPE_SINGLE, 1) - ENTRY(HPDF_BYTE_TYPE_LEAD, 1) -- ENTRY(HPDF_BYTE_TYPE_TRIAL, 1) -+ ENTRY(HPDF_BYTE_TYPE_TRAIL, 1) - ENTRY(HPDF_BYTE_TYPE_UNKNOWN, 1) - ENTRY(HPDF_TALIGN_LEFT, 1) - ENTRY(HPDF_TALIGN_RIGHT, 1) -diff --git a/haru/pdf.h b/haru/pdf.h -index a4ef39a..07cf168 100644 ---- a/haru/pdf.h -+++ b/haru/pdf.h -@@ -86,7 +86,7 @@ - - #define DEFAULT_HPDF_BUTT_END HPDF_BUTT_END - #define DEFAULT_HPDF_ROUND_END HPDF_ROUND_END --#define DEFAULT_HPDF_PROJECTING_SCUARE_END HPDF_PROJECTING_SCUARE_END -+#define DEFAULT_HPDF_PROJECTING_SQUARE_END HPDF_PROJECTING_SQUARE_END - - /* _LineJoin */ - #define DEFAULT_HPDF_MITER_JOIN HPDF_MITER_JOIN -@@ -229,7 +229,7 @@ - /* ByteType */ - #define DEFAULT_HPDF_BYTE_TYPE_SINGLE HPDF_BYTE_TYPE_SINGLE - #define DEFAULT_HPDF_BYTE_TYPE_LEAD HPDF_BYTE_TYPE_LEAD --#define DEFAULT_HPDF_BYTE_TYPE_TRIAL HPDF_BYTE_TYPE_TRIAL -+#define DEFAULT_HPDF_BYTE_TYPE_TRAIL HPDF_BYTE_TYPE_TRAIL - #define DEFAULT_HPDF_BYTE_TYPE_UNKNOWN HPDF_BYTE_TYPE_UNKNOWN - - /* TextAlignment */ diff --git a/pkgs/by-name/ga/gawk/gawk-with-extensions.nix b/pkgs/by-name/ga/gawk/gawk-with-extensions.nix deleted file mode 100644 index 1b82d79..0000000 --- a/pkgs/by-name/ga/gawk/gawk-with-extensions.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ 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 -'' diff --git a/pkgs/by-name/ga/gawk/gawkextlib.nix b/pkgs/by-name/ga/gawk/gawkextlib.nix deleted file mode 100644 index 86bf2be..0000000 --- a/pkgs/by-name/ga/gawk/gawkextlib.nix +++ /dev/null @@ -1,157 +0,0 @@ -{ 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"; - - src = fetchgit { - url = "git://git.code.sf.net/p/gawkextlib/code"; - rev = "f6c75b4ac1e0cd8d70c2f6c7a8d58b4d94cfde97"; - sha256 = "sha256-0p3CrQ3TBl7UcveZytK/9rkAzn69RRM2GwY2eCeqlkg="; - }; - - inherit patches; - - 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. - ''; - license = licenses.gpl3Plus; - platforms = platforms.unix; - maintainers = with maintainers; [ tomberek ]; - }; - }); - gawkextlib = buildExtension { - gawkextlib = null; - name = "lib"; - }; - libs = { - abort = buildExtension { - inherit gawkextlib; - name = "abort"; - }; - aregex = buildExtension { - inherit gawkextlib; - name = "aregex"; - extraBuildInputs = [ tre ]; - }; - csv = buildExtension { - inherit gawkextlib; - name = "csv"; - }; - errno = buildExtension { - inherit gawkextlib; - name = "errno"; - }; - gd = buildExtension { - inherit gawkextlib; - name = "gd"; - extraBuildInputs = [ gd ]; - }; - haru = buildExtension { - inherit gawkextlib; - name = "haru"; - extraBuildInputs = [ libharu ]; - patches = [ - # Renames references to two identifiers with typos that libharu fixed in 2.4.4 - # https://github.com/libharu/libharu/commit/88271b73c68c521a49a15e3555ef00395aa40810 - ./fix-typos-corrected-in-libharu-2.4.4.patch - ]; - }; - json = buildExtension { - inherit gawkextlib; - name = "json"; - extraBuildInputs = [ rapidjson ]; - }; - lmdb = buildExtension { - inherit gawkextlib; - name = "lmdb"; - extraBuildInputs = [ lmdb ]; - # mdb_env_open(env, /dev/null) - #! No such device - # mdb_env_open(env, /dev/null) - #! Operation not supported by device - doCheck = !stdenv.isDarwin; - }; - mbs = buildExtension { - inherit gawkextlib; - name = "mbs"; - extraBuildInputs = [ glibcLocales ]; - #! "spät": length: 5, mbs_length: 6, wcswidth: 4 - doCheck = !stdenv.isDarwin; - }; - mpfr = buildExtension { - inherit gawkextlib; - name = "mpfr"; - extraBuildInputs = [ gmp mpfr ]; - }; - nl_langinfo = buildExtension { - inherit gawkextlib; - name = "nl_langinfo"; - }; - pgsql = buildExtension { - inherit gawkextlib; - name = "pgsql"; - extraBuildInputs = [ postgresql ]; - }; - redis = buildExtension { - inherit gawkextlib; - name = "redis"; - extraBuildInputs = [ hiredis ]; - }; - select = buildExtension { - inherit gawkextlib; - name = "select"; - }; - timex = buildExtension { - inherit gawkextlib; - name = "timex"; - }; - xml = buildExtension { - inherit gawkextlib; - name = "xml"; - extraBuildInputs = [ expat libiconv ]; - }; - }; -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 deleted file mode 100644 index 635e621..0000000 --- a/pkgs/by-name/ga/gawk/packages.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - gawk = callPackage ./. { - inherit (darwin) locale; - }; - - 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/ga/gawk/setup-hook.sh b/pkgs/by-name/ga/gawk/setup-hook.sh deleted file mode 100644 index d568cb8..0000000 --- a/pkgs/by-name/ga/gawk/setup-hook.sh +++ /dev/null @@ -1,6 +0,0 @@ -local oldOpts="-u" -shopt -qo nounset || oldOpts="+u" -set +u -. @gawk@/etc/profile.d/gawk.sh -gawklibpath_append @out@/lib/gawk -set "$oldOpts" diff --git a/pkgs/by-name/gc/gcc/all.nix b/pkgs/by-name/gc/gcc/all.nix deleted file mode 100644 index 70b4b75..0000000 --- a/pkgs/by-name/gc/gcc/all.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ 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: - 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; - }))); - in - 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 deleted file mode 100644 index 25c5646..0000000 --- a/pkgs/by-name/gc/gcc/common/builder.nix +++ /dev/null @@ -1,295 +0,0 @@ -{ lib -, stdenv -, enableMultilib -, targetConfig -}: - -let - 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 - - 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 - - # 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 - - 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}" - - 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 - - # 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")) - - # 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 - - 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 - - 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" - 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 - - # 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 -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 - - # Perform the build in a different directory. - mkdir ../build - cd ../build - configureScript=../$sourceRoot/configure - ''; - - 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 - ''; - - 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" - ''; - - 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}" - - if [ -z "$enableShared" ]; then - moveToOutput "''${targetConfig+$targetConfig/}lib/lib*.a" "''${!outputLib}" - fi - - for i in "''${!outputLib}/''${targetConfig}"/lib/*.{la,py}; do - substituteInPlace "$i" --replace "$out" "''${!outputLib}" - done - - 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}" - - for i in "''${!outputLib}/''${targetConfig}"/lib64/*.{la,py}; do - substituteInPlace "$i" --replace "$out" "''${!outputLib}" - done - 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 - - # More dependencies with the previous gcc or some libs (gccbug stores the build command line) - rm -rf $out/bin/gccbug - - 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 - ''; -})) diff --git a/pkgs/by-name/gc/gcc/common/checksum.nix b/pkgs/by-name/gc/gcc/common/checksum.nix deleted file mode 100644 index 7a20ed1..0000000 --- a/pkgs/by-name/gc/gcc/common/checksum.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ lib -, stdenv -, nukeReferences -, langC -, langCC -, runtimeShell -}: - -let - 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 - ''; -})) diff --git a/pkgs/by-name/gc/gcc/common/configure-flags.nix b/pkgs/by-name/gc/gcc/common/configure-flags.nix deleted file mode 100644 index b8dccf9..0000000 --- a/pkgs/by-name/gc/gcc/common/configure-flags.nix +++ /dev/null @@ -1,261 +0,0 @@ -{ lib, stdenv -, targetPackages - -, withoutTargetLibc, libcCross -, threadsCross -, version - -, binutils, gmp, mpfr, libmpc, isl -, cloog ? null - -, 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 -}: - -assert !enablePlugin -> disableGdbPlugin; -assert langJava -> lib.versionOlder version "7"; - -# Note [Windows Exception Handling] -# sjlj (short jump long jump) exception handling makes no sense on x86_64, -# it's forcably slowing programs down as it produces a constant overhead. -# On x86_64 we have SEH (Structured Exception Handling) and we should use -# that. On i686, we do not have SEH, and have to use sjlj with dwarf2. -# Hence it's now conditional on x86_32 (i686 is 32bit). -# -# ref: https://stackoverflow.com/questions/15670169/what-is-difference-between-sjlj-vs-dwarf-vs-seh - - -let - inherit (stdenv) - buildPlatform hostPlatform targetPlatform; - - # See https://github.com/NixOS/nixpkgs/pull/209870#issuecomment-1500550903 - disableBootstrap' = disableBootstrap && !langFortran && !langGo; - - crossMingw = targetPlatform != hostPlatform && targetPlatform.isMinGW; - crossDarwin = targetPlatform != hostPlatform && targetPlatform.libc == "libSystem"; - - 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-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" - ); - - configureFlags = - # Basic dependencies - [ - "--with-gmp-include=${gmp.dev}/include" - "--with-gmp-lib=${gmp.out}/lib" - "--with-mpfr-include=${mpfr.dev}/include" - "--with-mpfr-lib=${mpfr.out}/lib" - "--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"}") - # 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: - # ${with_build_sysroot}${native_system_header_dir} - # or ${test_exec_prefix}/${target_noncanonical}/sys-include - # or ${with_sysroot}${native_system_header_dir} - # While native build (build == host == target) uses passed headers - # path as is: - # ${with_build_sysroot}${native_system_header_dir} - # - # Nixpkgs uses flat directory structure for both native and cross - # cases. As a result libc headers don't get found for cross case - # and many modern features get disabled (libssp is used instead of - # target-specific implementations and similar). More details at: - # https://github.com/NixOS/nixpkgs/pull/181802#issuecomment-1186822355 - # - # We pick "/" path to effectively avoid sysroot offset and make it work - # as a native case. - "--with-build-sysroot=/" - # Same with the stdlibc++ headers embedded in the gcc output - "--with-gxx-include-dir=${placeholder "out"}/include/c++/${version}/" - ] - - # Basic configuration - ++ [ - # Force target prefix. The behavior if `--target` and `--host` - # are specified is inconsistent: Sometimes specifying `--target` - # always causes a prefix to be generated, sometimes it's only - # added if the `--host` and `--target` differ. This means that - # sometimes there may be a prefix even though nixpkgs doesn't - # expect one and sometimes there may be none even though nixpkgs - # expects one (since not all information is serialized into the - # config attribute). The easiest way out of these problems is to - # always set the program prefix, so gcc will conform to our - # expectations. - "--program-prefix=${targetPrefix}" - - (lib.enableFeature enableLTO "lto") - "--disable-libstdcxx-pch" - "--without-included-gettext" - "--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" - ) - }" - ] - - ++ (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" - - # Fix "unknown long double size, cannot define BFP_FMT" - ++ lib.optional (targetPlatform.isPower && targetPlatform.isMusl) - "--disable-decimal-float" - - # Optional features - ++ lib.optional (isl != null) "--with-isl=${isl}" - ++ lib.optionals (lib.versionOlder version "5" && cloog != null) [ - "--with-cloog=${cloog}" - "--disable-cloog-version-check" - "--enable-cloog-backend=isl" - ] - - # 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") - - # Java options - ++ lib.optionals langJava [ - "--with-ecj-jar=${javaEcj}" - - # Follow Sun's layout for the convenience of IcedTea/OpenJDK. See - # . - "--enable-java-home" - "--with-java-home=\${prefix}/lib/jvm/jre" - ] - ++ 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; } - ++ 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.isNetBSD "--disable-libssp" # Provided by libc. - ++ lib.optionals hostPlatform.isSunOS [ - "--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" - ] - ++ 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" - ] - # 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.isAlpha [ - # Workaround build failures like: - # cc1: error: fp software completion requires '-mtrap-precision=i' [-Werror] - "--disable-werror" - ] - ; - -in configureFlags diff --git a/pkgs/by-name/gc/gcc/common/dependencies.nix b/pkgs/by-name/gc/gcc/common/dependencies.nix deleted file mode 100644 index a38cdcb..0000000 --- a/pkgs/by-name/gc/gcc/common/dependencies.nix +++ /dev/null @@ -1,92 +0,0 @@ -{ 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 - inherit (lib) optionals; - inherit (stdenv) buildPlatform hostPlatform targetPlatform; -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 ] - ; - - # 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 - ] - ) - ++ 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 ] - ; - - # 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 ]; -} diff --git a/pkgs/by-name/gc/gcc/common/extra-target-flags.nix b/pkgs/by-name/gc/gcc/common/extra-target-flags.nix deleted file mode 100644 index 30a2418..0000000 --- a/pkgs/by-name/gc/gcc/common/extra-target-flags.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ lib, stdenv, withoutTargetLibc, langD ? false, libcCross, threadsCross }: - -let - inherit (stdenv) hostPlatform targetPlatform; -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_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 deleted file mode 100644 index 991efc2..0000000 --- a/pkgs/by-name/gc/gcc/common/libgcc-buildstuff.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ lib -, stdenv -}: - -# Trick to build a gcc that is capable of emitting shared libraries *without* having the -# targetPlatform libc available beforehand. Taken from: -# https://web.archive.org/web/20170222224855/http://frank.harvard.edu/~coldwell/toolchain/ -# https://web.archive.org/web/20170224235700/http://frank.harvard.edu/~coldwell/toolchain/t-linux.diff -let - # crt{i,n}.o are the first and last (respectively) object file - # linked when producing an executable. Traditionally these - # files are delivered as part of the C library, but on GNU - # systems they are in fact built by GCC. Since libgcc needs to - # build before glibc, we can't wait for them to be copied by - # 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"; - - # Normally, `SHLIB_LC` is set to `-lc`, which means that - # `libgcc_s.so` cannot be built until `libc.so` is available. - # The assignment below clobbers this variable, removing the - # `-lc`. - # - # On PowerPC we add `-mnewlib`, which means "libc has not been - # built yet". This causes libgcc's Makefile to use the - # gcc-built `{e,n}crt{n,i}.o` instead of failing to find the - # versions which have been repackaged in libc as `crt{n,i}.o` - # - SHLIB_LC = lib.optionalString stdenv.targetPlatform.isPower "-mnewlib"; - -in -'' - echo 'libgcc.a: ${crtstuff-ofiles}' >> libgcc/Makefile.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 -'' diff --git a/pkgs/by-name/gc/gcc/common/libgcc.nix b/pkgs/by-name/gc/gcc/common/libgcc.nix deleted file mode 100644 index a7de840..0000000 --- a/pkgs/by-name/gc/gcc/common/libgcc.nix +++ /dev/null @@ -1,160 +0,0 @@ -{ lib -, stdenv -, version -, langC -, langCC -, langJit -, enableShared -, targetPlatform -, hostPlatform -, withoutTargetLibc -, libcCross -}: - -assert !stdenv.targetPlatform.hasSharedLibraries -> !enableShared; - -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"; - })) - -] ++ - -# 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}/"; - - # 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 - ; - - # 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 -[ - -(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* - '' - - # 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 deleted file mode 100644 index 5ce4cec..0000000 --- a/pkgs/by-name/gc/gcc/common/meta.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib, version, }: - -let - inherit (lib) - licenses - # maintainers - platforms - # teams - versionOlder - ; -in -{ - homepage = "https://gcc.gnu.org/"; - license = licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+ - description = "GNU Compiler Collection, version ${version}"; - longDescription = '' - The GNU Compiler Collection includes compiler front ends for C, C++, - Objective-C, Fortran, OpenMP for C/C++/Fortran, and Ada, as well as - libraries for these languages (libstdc++, libgomp,...). - - GCC development is a part of the GNU Project, aiming to improve the - compiler used in the GNU system including the GNU/Linux variant. - ''; - - platforms = platforms.unix; - # maintainers = if versionOlder version "5" then [ maintainers.veprbl ] else teams.gcc.members; - -} diff --git a/pkgs/by-name/gc/gcc/common/platform-flags.nix b/pkgs/by-name/gc/gcc/common/platform-flags.nix deleted file mode 100644 index cc6a67d..0000000 --- a/pkgs/by-name/gc/gcc/common/platform-flags.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib, targetPlatform }: - -let - isAarch64Darwin = targetPlatform.isDarwin && targetPlatform.isAarch64; - 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". - (lib.optional (!isAarch64Darwin && p ? cpu) "--with-cpu=${p.cpu}") - (lib.optional (p ? abi) "--with-abi=${p.abi}") - (lib.optional (p ? fpu) "--with-fpu=${p.fpu}") - (lib.optional (p ? float) "--with-float=${p.float}") - (lib.optional (p ? mode) "--with-mode=${p.mode}") - (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.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 deleted file mode 100644 index 77179d7..0000000 --- a/pkgs/by-name/gc/gcc/common/pre-configure.nix +++ /dev/null @@ -1,129 +0,0 @@ -{ 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) '' - 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 '' - export lib=$out; -'' + lib.optionalString langAda '' - export PATH=${gnat-bootstrap}/bin:$PATH -'' - -# For a cross-built native compiler, i.e. build!=(host==target), the -# bundled libgfortran needs a gfortran which can run on the -# 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 -'' - -# 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 -# integrated assembler, but not by the GNU assembler in cctools-port that Nix -# usually in the x86_64-darwin stdenv. In particular, x86_64-darwin gnat-bootstrap -# emits MOVQ as the mnemonic for quadword interunit moves, such as between XMM -# and general registers (e.g "movq %xmm0, %rbp"); the cctools-port assembler, -# however, only recognises MOVD for such moves. -# -# Therefore, for native x86_64-darwin builds that support Ada, we have to use -# the Clang integrated assembler to build (at least stage 1 of) GCC, but have to -# target GCC at the cctools-port GNU assembler. In the wrapped x86_64-darwin -# 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 -'' - -# NOTE 2020/3/18: This environment variable prevents configure scripts from -# detecting the presence of aligned_alloc on Darwin. There are many facts that -# collectively make this fix necessary: -# - Nix uses a fixed set of standard library headers on all MacOS systems, -# regardless of their actual version. (Nix uses version 10.12 headers.) -# - Nix uses the native standard library binaries for the build system. That -# means the standard library binaries may not exactly match the standard -# library headers. -# - The aligned_alloc procedure is present in MacOS 10.15 (Catalina), but not -# in earlier versions. Therefore on Catalina systems, aligned_alloc is -# linkable (i.e. present in the binary libraries) but not present in the -# headers. -# - Configure scripts detect a procedure's existence by checking whether it is -# linkable. They do not check whether it is present in the headers. -# - GCC throws an error during compilation because aligned_alloc is not -# defined in the headers---even though the linker can see it. -# -# This fix would not be necessary if ANY of the above were false: -# - If Nix used native headers for each different MacOS version, aligned_alloc -# would be in the headers on Catalina. -# - If Nix used the same library binaries for each MacOS version, aligned_alloc -# would not be in the library binaries. -# - If Catalina did not include aligned_alloc, this wouldn't be a problem. -# - If the configure scripts looked for header presence as well as -# linkability, they would see that aligned_alloc is missing. -# - If GCC allowed implicit declaration of symbols, it would not fail during -# 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 -'' - -# In order to properly install libgccjit on macOS Catalina, strip(1) -# upon installation must not remove external symbols, otherwise the -# install step errors with "symbols referenced by indirect symbol -# table entries that can't be stripped". -+ lib.optionalString (hostPlatform.isDarwin && langJit) '' - export STRIP='strip -x' -'' - -# 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 -'' - -# 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 && 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 deleted file mode 100644 index f2f0efb..0000000 --- a/pkgs/by-name/gc/gcc/common/strip-attributes.nix +++ /dev/null @@ -1,70 +0,0 @@ -{ lib, stdenv, langJit }: - -{ - # Note [Cross-compiler stripping] - # gcc requires delicate stripping as it installs ELF files for both - # HOST and TARGET platforms. It requires according strip tool otherwise - # strip could remove sections it's not aware of. - # Example ARM breakage by x86_64 strip: https://bugs.gentoo.org/697428 - # - # Let's recap the file layout for directories with object files for a - # cross-compiler: - # - # $out (host != target) - # `- bin: HOST - # lib/*.{a,o}: HOST - # `- gcc///*.{a,o}: TARGET - # `- plugin/: HOST - # `- lib{,32,64,x32}: symlink to lib or identical layout - # `- libexec/: HOST - # `- /: TARGET - # - # $out (host == target) has identical directory layout. - # - # $lib (host != target): - # `- /lib/*.{la,so}: TARGET - # - # $lib (host == target): - # `- lib/*.{la,so}: HOST - - # The rest of stripDebugList{Host,Target} will be populated in - # postInstall to disambiguate lib/ object files. - 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 - - 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" - - 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 deleted file mode 100644 index 748cbdd..0000000 --- a/pkgs/by-name/gc/gcc/default.nix +++ /dev/null @@ -1,472 +0,0 @@ -{ 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 -}: - -let - inherit (lib) - callPackageWith - filter - getBin - # maintainers - makeLibraryPath - makeSearchPathOutput - mapAttrs - optional - optionalAttrs - optionals - optionalString - pipe - platforms - versionAtLeast - versions - ; - - gccVersions = import ./versions.nix; - version = gccVersions.fromMajorMinor majorMinorVersion; - - majorVersion = versions.major version; - atLeast13 = versionAtLeast version "13"; - 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"; - is13 = majorVersion == "13"; - is12 = majorVersion == "12"; - is11 = majorVersion == "11"; - is10 = majorVersion == "10"; - 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); - - inherit (stdenv) buildPlatform hostPlatform targetPlatform; - targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null; - - 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}-"; - - javaAwtGtk = langJava && x11Support; - xlibs = [ - libX11 libXt libSM libICE libXtst libXrender libXrandr libXi - xorgproto - ]; - callFile = callPackageWith ({ - # lets - inherit - majorVersion - version - buildPlatform - hostPlatform - targetPlatform - targetConfig - patches - 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 - buildPackages - cloog - withoutTargetLibc - disableBootstrap - disableGdbPlugin - enableLTO - enableMultilib - enablePlugin - enableShared - fetchpatch - fetchurl - gettext - gmp - gnat-bootstrap - gnused - isl - langAda - langC - langCC - langD - langFortran - langGo - langJit - langObjC - langObjCpp - lib - libcCross - libmpc - libucontext - libxcrypt - mpfr - name - noSysDirs - nukeReferences - patchelf - perl - pkgsBuildTarget - profiledCompiler - reproducibleBuild - staticCompiler - stdenv - targetPackages - texinfo - threadsCross - which - zip - zlib - ; - } // optionalAttrs (!atLeast7) { - inherit - boehmgc - flex - gnat-bootstrap - gtk2 - langAda - langJava - libICE - libSM - libX11 - libXi - libXrandr - libXrender - libXt - libXtst - libart_lgpl - pkg-config - unzip - x11Support - xorgproto - javaAwtGtk - xlibs - ; - javaEcj = fetchurl { - # The `$(top_srcdir)/ecj.jar' file is automatically picked up at - # `configure' time. - - # XXX: Eventually we might want to take it from upstream. - url = "ftp://sourceware.org/pub/java/ecj-4.3.jar"; - sha256 = "0jz7hvc0s6iydmhgh5h2m15yza7p2rlss2vkif30vm9y77m97qcx"; - }; - - # Antlr (optional) allows the Java `gjdoc' tool to be built. We want a - # binary distribution here to allow the whole chain to be bootstrapped. - javaAntlr = fetchurl { - 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' - -# Make sure we get GNU sed. -assert stdenv.buildPlatform.isDarwin -> gnused != null; - -# The go frontend is written in c++ -assert langGo -> langCC; -assert (atLeast6 && !is7 && !is8) -> (langAda -> gnat-bootstrap != null); - -# TODO: fixup D bootstapping, probably by using gdc11 (and maybe other changes). -# error: GDC is required to build d -assert atLeast12 -> !langD; - -# threadsCross is just for MinGW -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)) == []); - -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; - }; - - 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" ]; - - setOutputFlags = false; - - libc_dev = stdenv.cc.libc_dev; - - 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' - '' - ) - )) - + optionalString (atLeast7 && targetPlatform.isAvr) ('' - makeFlagsArray+=( - '-s' # workaround for hitting hydra log limit - 'LIMITS_H_TEST=false' - ) - ''); - - inherit noSysDirs staticCompiler withoutTargetLibc - libcCross crossMingw; - - 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 - ''; - - dontDisableStatic = true; - - 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"; - - 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"); - - inherit (callFile ./common/strip-attributes.nix { }) - stripDebugList - stripDebugListTarget - preFixup; - - # https://gcc.gnu.org/PR109898 - enableParallelInstalling = false; - - env = mapAttrs (_: v: toString v) ({ - - 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"; - - # 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 ] - )); - - 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"; - }); - - 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; }) -]) - diff --git a/pkgs/by-name/gc/gcc/packages.nix b/pkgs/by-name/gc/gcc/packages.nix deleted file mode 100644 index 9937bd2..0000000 --- a/pkgs/by-name/gc/gcc/packages.nix +++ /dev/null @@ -1,379 +0,0 @@ -{ noSysDirs, ... }: -res: pkgs: super: - -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 - else - stdenv.override { - cc = buildPackages.gcc; - allowedRequisites = null; - # Remove libcxx/libcxxabi, and add clang for AS if on darwin (it uses - # clang's internal assembler). - extraBuildInputs = lib.optional stdenv.hostPlatform.isDarwin clang.cc; - }; - - gcc49Stdenv = overrideCC gccStdenv buildPackages.gcc49; - gcc6Stdenv = overrideCC gccStdenv buildPackages.gcc6; - gcc7Stdenv = overrideCC gccStdenv buildPackages.gcc7; - gcc8Stdenv = overrideCC gccStdenv buildPackages.gcc8; - gcc9Stdenv = overrideCC gccStdenv buildPackages.gcc9; - gcc10Stdenv = overrideCC gccStdenv buildPackages.gcc10; - gcc11Stdenv = overrideCC gccStdenv buildPackages.gcc11; - gcc12Stdenv = overrideCC gccStdenv buildPackages.gcc12; - gcc13Stdenv = overrideCC gccStdenv buildPackages.gcc13; - - # This is not intended for use in nixpkgs but for providing a faster-running - # compiler to nixpkgs users by building gcc with reproducibility-breaking - # profile-guided optimizations - fastStdenv = overrideCC gccStdenv (wrapNonDeterministicGcc gccStdenv buildPackages.gcc_latest); - - wrapCCMulti = cc: - if stdenv.targetPlatform.system == "x86_64-linux" then - let - # Binutils with glibc multi - bintools = cc.bintools.override { - libc = glibc_multi; - }; - in - lowPrio (wrapCCWith { - cc = cc.cc.override { - stdenv = overrideCC stdenv (wrapCCWith { - cc = cc.cc; - inherit bintools; - libc = glibc_multi; - }); - profiledCompiler = false; - enableMultilib = true; - }; - libc = glibc_multi; - inherit bintools; - extraBuildCommands = '' - echo "dontMoveLib64=1" >> $out/nix-support/setup-hook - ''; - }) 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; - })); - - 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; - - reproducibleBuild = true; - profiledCompiler = false; - - 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 - - # 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 = [ ]; - }; - - inherit (callPackage ./all.nix { inherit noSysDirs; }) - gcc48 gcc49 gcc6 gcc7 gcc8 gcc9 gcc10 gcc11 gcc12 gcc13; - - gcc_latest = gcc13; - - libgcc = stdenv.cc.cc.libgcc or null; - - # This is for e.g. LLVM libraries on linux. - gccForLibs = - 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; - - 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); - }; - }; - }) 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; - }); - - 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; - }); - - 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; - }); - - 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; - }); - - 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; - }); - - 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; - }); - - libgccjit = gcc.cc.override { - name = "libgccjit"; - langFortran = false; - langCC = false; - langC = false; - profiledCompiler = false; - langJit = true; - enableLTO = false; - }; - - 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; - }); - - 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; - }); - - 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; - }); - - 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; - }); - - gnat12Packages = recurseIntoAttrs (callPackage ./ada-packages.nix { gnat = buildPackages.gnat12; }); - gnat13Packages = recurseIntoAttrs (callPackage ./ada-packages.nix { gnat = buildPackages.gnat13; }); - gnatPackages = gnat12Packages; - - inherit (gnatPackages) - gprbuild - gnatprove; - - gccgo = wrapCC (gcc.cc.override - { - name = "gccgo"; - 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; - }); - - gccgo12 = wrapCC (gcc12.cc.override - { - name = "gccgo"; - 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; - }); - - gccgo13 = wrapCC (gcc13.cc.override - { - name = "gccgo"; - 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; - }); - - - # 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; - }); -} diff --git a/pkgs/by-name/gc/gcc/patches/10/Added-mcf-thread-model-support-from-mcfgthread.patch b/pkgs/by-name/gc/gcc/patches/10/Added-mcf-thread-model-support-from-mcfgthread.patch deleted file mode 100644 index d9809e8..0000000 --- a/pkgs/by-name/gc/gcc/patches/10/Added-mcf-thread-model-support-from-mcfgthread.patch +++ /dev/null @@ -1,306 +0,0 @@ -From 86f2f767ddffd9f7c6f1470b987ae7b0d251b988 Mon Sep 17 00:00:00 2001 -From: Liu Hao -Date: Wed, 25 Apr 2018 21:54:19 +0800 -Subject: [PATCH] Added 'mcf' thread model support from mcfgthread. - -Signed-off-by: Liu Hao ---- - config/gthr.m4 | 1 + - gcc/config.gcc | 3 +++ - gcc/config/i386/mingw-mcfgthread.h | 1 + - gcc/config/i386/mingw-w64.h | 2 +- - gcc/config/i386/mingw32.h | 11 ++++++++++- - gcc/configure | 2 +- - gcc/configure.ac | 2 +- - libatomic/configure.tgt | 2 +- - libgcc/config.host | 6 ++++++ - libgcc/config/i386/gthr-mcf.h | 1 + - libgcc/config/i386/t-mingw-mcfgthread | 2 ++ - libgcc/configure | 1 + - libstdc++-v3/configure | 1 + - libstdc++-v3/libsupc++/atexit_thread.cc | 18 ++++++++++++++++++ - libstdc++-v3/libsupc++/guard.cc | 23 +++++++++++++++++++++++ - libstdc++-v3/src/c++11/thread.cc | 9 +++++++++ - 16 files changed, 80 insertions(+), 5 deletions(-) - create mode 100644 gcc/config/i386/mingw-mcfgthread.h - create mode 100644 libgcc/config/i386/gthr-mcf.h - create mode 100644 libgcc/config/i386/t-mingw-mcfgthread - -diff --git a/config/gthr.m4 b/config/gthr.m4 -index 7b29f1f3327..82e21fe1709 100644 ---- a/config/gthr.m4 -+++ b/config/gthr.m4 -@@ -21,6 +21,7 @@ case $1 in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - AC_SUBST(thread_header) - ]) -diff --git a/gcc/config.gcc b/gcc/config.gcc -index 46a9029acec..112c24e95a3 100644 ---- a/gcc/config.gcc -+++ b/gcc/config.gcc -@@ -1758,6 +1758,9 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) - if test x$enable_threads = xposix ; then - tm_file="${tm_file} i386/mingw-pthread.h" - fi -+ if test x$enable_threads = xmcf ; then -+ tm_file="${tm_file} i386/mingw-mcfgthread.h" -+ fi - tm_file="${tm_file} i386/mingw32.h" - # This makes the logic if mingw's or the w64 feature set has to be used - case ${target} in -diff --git a/gcc/config/i386/mingw-mcfgthread.h b/gcc/config/i386/mingw-mcfgthread.h -new file mode 100644 -index 00000000000..ec381a7798f ---- /dev/null -+++ b/gcc/config/i386/mingw-mcfgthread.h -@@ -0,0 +1 @@ -+#define TARGET_USE_MCFGTHREAD 1 -diff --git a/gcc/config/i386/mingw-w64.h b/gcc/config/i386/mingw-w64.h -index 484dc7a9e9f..a15bbeea500 100644 ---- a/gcc/config/i386/mingw-w64.h -+++ b/gcc/config/i386/mingw-w64.h -@@ -48,7 +48,7 @@ along with GCC; see the file COPYING3. If not see - "%{mwindows:-lgdi32 -lcomdlg32} " \ - "%{fvtable-verify=preinit:-lvtv -lpsapi; \ - fvtable-verify=std:-lvtv -lpsapi} " \ -- "-ladvapi32 -lshell32 -luser32 -lkernel32" -+ LIB_MCFGTHREAD "-ladvapi32 -lshell32 -luser32 -lkernel32" - - #undef SPEC_32 - #undef SPEC_64 -diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h -index 0612b87199a..76cea94f3b7 100644 ---- a/gcc/config/i386/mingw32.h -+++ b/gcc/config/i386/mingw32.h -@@ -32,6 +32,14 @@ along with GCC; see the file COPYING3. If not see - | MASK_STACK_PROBE | MASK_ALIGN_DOUBLE \ - | MASK_MS_BITFIELD_LAYOUT) - -+#ifndef TARGET_USE_MCFGTHREAD -+#define CPP_MCFGTHREAD() ((void)0) -+#define LIB_MCFGTHREAD "" -+#else -+#define CPP_MCFGTHREAD() (builtin_define("__USING_MCFGTHREAD__")) -+#define LIB_MCFGTHREAD " -lmcfgthread " -+#endif -+ - /* See i386/crtdll.h for an alternative definition. _INTEGRAL_MAX_BITS - is for compatibility with native compiler. */ - #define EXTRA_OS_CPP_BUILTINS() \ -@@ -50,6 +58,7 @@ along with GCC; see the file COPYING3. If not see - builtin_define_std ("WIN64"); \ - builtin_define ("_WIN64"); \ - } \ -+ CPP_MCFGTHREAD(); \ - } \ - while (0) - -@@ -93,7 +102,7 @@ along with GCC; see the file COPYING3. If not see - "%{mwindows:-lgdi32 -lcomdlg32} " \ - "%{fvtable-verify=preinit:-lvtv -lpsapi; \ - fvtable-verify=std:-lvtv -lpsapi} " \ -- "-ladvapi32 -lshell32 -luser32 -lkernel32" -+ LIB_MCFGTHREAD "-ladvapi32 -lshell32 -luser32 -lkernel32" - - /* Weak symbols do not get resolved if using a Windows dll import lib. - Make the unwind registration references strong undefs. */ -diff --git a/gcc/configure b/gcc/configure -index 6121e163259..52f0e00efe6 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -11693,7 +11693,7 @@ case ${enable_threads} in - target_thread_file='single' - ;; - aix | dce | lynx | mipssde | posix | rtems | \ -- single | tpf | vxworks | win32) -+ single | tpf | vxworks | win32 | mcf) - target_thread_file=${enable_threads} - ;; - *) -diff --git a/gcc/configure.ac b/gcc/configure.ac -index b066cc609e1..4ecdba88de7 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1612,7 +1612,7 @@ case ${enable_threads} in - target_thread_file='single' - ;; - aix | dce | lynx | mipssde | posix | rtems | \ -- single | tpf | vxworks | win32) -+ single | tpf | vxworks | win32 | mcf) - target_thread_file=${enable_threads} - ;; - *) -diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt -index ea8c34f8c71..23134ad7363 100644 ---- a/libatomic/configure.tgt -+++ b/libatomic/configure.tgt -@@ -145,7 +145,7 @@ case "${target}" in - *-*-mingw*) - # OS support for atomic primitives. - case ${target_thread_file} in -- win32) -+ win32 | mcf) - config_path="${config_path} mingw" - ;; - posix) -diff --git a/libgcc/config.host b/libgcc/config.host -index 11b4acaff55..9fbd38650bd 100644 ---- a/libgcc/config.host -+++ b/libgcc/config.host -@@ -737,6 +737,9 @@ i[34567]86-*-mingw*) - posix) - tmake_file="i386/t-mingw-pthread $tmake_file" - ;; -+ mcf) -+ tmake_file="i386/t-mingw-mcfgthread $tmake_file" -+ ;; - esac - # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h - if test x$ac_cv_sjlj_exceptions = xyes; then -@@ -761,6 +764,9 @@ x86_64-*-mingw*) - posix) - tmake_file="i386/t-mingw-pthread $tmake_file" - ;; -+ mcf) -+ tmake_file="i386/t-mingw-mcfgthread $tmake_file" -+ ;; - esac - # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h - if test x$ac_cv_sjlj_exceptions = xyes; then -diff --git a/libgcc/config/i386/gthr-mcf.h b/libgcc/config/i386/gthr-mcf.h -new file mode 100644 -index 00000000000..5ea2908361f ---- /dev/null -+++ b/libgcc/config/i386/gthr-mcf.h -@@ -0,0 +1 @@ -+#include -diff --git a/libgcc/config/i386/t-mingw-mcfgthread b/libgcc/config/i386/t-mingw-mcfgthread -new file mode 100644 -index 00000000000..4b9b10e32d6 ---- /dev/null -+++ b/libgcc/config/i386/t-mingw-mcfgthread -@@ -0,0 +1,2 @@ -+SHLIB_PTHREAD_CFLAG = -+SHLIB_PTHREAD_LDFLAG = -lmcfgthread -diff --git a/libgcc/configure b/libgcc/configure -index b2f3f870844..eff889dc3b3 100644 ---- a/libgcc/configure -+++ b/libgcc/configure -@@ -5451,6 +5451,7 @@ case $target_thread_file in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - - -diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure -index ba094be6f15..979a5ab9ace 100755 ---- a/libstdc++-v3/configure -+++ b/libstdc++-v3/configure -@@ -15187,6 +15187,7 @@ case $target_thread_file in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - - -diff --git a/libstdc++-v3/libsupc++/atexit_thread.cc b/libstdc++-v3/libsupc++/atexit_thread.cc -index de920d714c6..665fb74bd6b 100644 ---- a/libstdc++-v3/libsupc++/atexit_thread.cc -+++ b/libstdc++-v3/libsupc++/atexit_thread.cc -@@ -25,6 +25,22 @@ - #include - #include - #include "bits/gthr.h" -+ -+#ifdef __USING_MCFGTHREAD__ -+ -+#include -+ -+extern "C" int -+__cxxabiv1::__cxa_thread_atexit (void (*dtor)(void *), -+ void *obj, void *dso_handle) -+ _GLIBCXX_NOTHROW -+{ -+ return ::_MCFCRT_AtThreadExit((void (*)(_MCFCRT_STD intptr_t))dtor, (_MCFCRT_STD intptr_t)obj) ? 0 : -1; -+ (void)dso_handle; -+} -+ -+#else // __USING_MCFGTHREAD__ -+ - #ifdef _GLIBCXX_THREAD_ATEXIT_WIN32 - #define WIN32_LEAN_AND_MEAN - #include -@@ -167,3 +183,5 @@ __cxxabiv1::__cxa_thread_atexit (void (*dtor)(void *), void *obj, void */*dso_ha - } - - #endif /* _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL */ -+ -+#endif // __USING_MCFGTHREAD__ -diff --git a/libstdc++-v3/libsupc++/guard.cc b/libstdc++-v3/libsupc++/guard.cc -index 3a2ec3ad0d6..8b4cc96199b 100644 ---- a/libstdc++-v3/libsupc++/guard.cc -+++ b/libstdc++-v3/libsupc++/guard.cc -@@ -28,6 +28,27 @@ - #include - #include - #include -+ -+#ifdef __USING_MCFGTHREAD__ -+ -+#include -+ -+namespace __cxxabiv1 { -+ -+extern "C" int __cxa_guard_acquire(__guard *g){ -+ return ::_MCFCRT_WaitForOnceFlagForever((::_MCFCRT_OnceFlag *)g) == ::_MCFCRT_kOnceResultInitial; -+} -+extern "C" void __cxa_guard_abort(__guard *g) throw() { -+ ::_MCFCRT_SignalOnceFlagAsAborted((::_MCFCRT_OnceFlag *)g); -+} -+extern "C" void __cxa_guard_release(__guard *g) throw() { -+ ::_MCFCRT_SignalOnceFlagAsFinished((::_MCFCRT_OnceFlag *)g); -+} -+ -+} -+ -+#else // __USING_MCFGTHREAD__ -+ - #include - #include - #include -@@ -425,3 +446,5 @@ namespace __cxxabiv1 - #endif - } - } -+ -+#endif -diff --git a/libstdc++-v3/src/c++11/thread.cc b/libstdc++-v3/src/c++11/thread.cc -index 8238817c2e9..0c6a1f85f6f 100644 ---- a/libstdc++-v3/src/c++11/thread.cc -+++ b/libstdc++-v3/src/c++11/thread.cc -@@ -55,6 +55,15 @@ static inline int get_nprocs() - #elif defined(_GLIBCXX_USE_SC_NPROC_ONLN) - # include - # define _GLIBCXX_NPROCS sysconf(_SC_NPROC_ONLN) -+#elif defined(_WIN32) -+# include -+static inline int get_nprocs() -+{ -+ SYSTEM_INFO sysinfo; -+ GetSystemInfo(&sysinfo); -+ return (int)sysinfo.dwNumberOfProcessors; -+} -+# define _GLIBCXX_NPROCS get_nprocs() - #else - # define _GLIBCXX_NPROCS 0 - #endif --- -2.17.0 - diff --git a/pkgs/by-name/gc/gcc/patches/11/Added-mcf-thread-model-support-from-mcfgthread.patch b/pkgs/by-name/gc/gcc/patches/11/Added-mcf-thread-model-support-from-mcfgthread.patch deleted file mode 100644 index 7720243..0000000 --- a/pkgs/by-name/gc/gcc/patches/11/Added-mcf-thread-model-support-from-mcfgthread.patch +++ /dev/null @@ -1,306 +0,0 @@ -From 86f2f767ddffd9f7c6f1470b987ae7b0d251b988 Mon Sep 17 00:00:00 2001 -From: Liu Hao -Date: Wed, 25 Apr 2018 21:54:19 +0800 -Subject: [PATCH] Added 'mcf' thread model support from mcfgthread. - -Signed-off-by: Liu Hao ---- - config/gthr.m4 | 1 + - gcc/config.gcc | 3 +++ - gcc/config/i386/mingw-mcfgthread.h | 1 + - gcc/config/i386/mingw-w64.h | 2 +- - gcc/config/i386/mingw32.h | 11 ++++++++++- - gcc/configure | 2 +- - gcc/configure.ac | 2 +- - libatomic/configure.tgt | 2 +- - libgcc/config.host | 6 ++++++ - libgcc/config/i386/gthr-mcf.h | 1 + - libgcc/config/i386/t-mingw-mcfgthread | 2 ++ - libgcc/configure | 1 + - libstdc++-v3/configure | 1 + - libstdc++-v3/libsupc++/atexit_thread.cc | 18 ++++++++++++++++++ - libstdc++-v3/libsupc++/guard.cc | 23 +++++++++++++++++++++++ - libstdc++-v3/src/c++11/thread.cc | 9 +++++++++ - 16 files changed, 80 insertions(+), 5 deletions(-) - create mode 100644 gcc/config/i386/mingw-mcfgthread.h - create mode 100644 libgcc/config/i386/gthr-mcf.h - create mode 100644 libgcc/config/i386/t-mingw-mcfgthread - -diff --git a/config/gthr.m4 b/config/gthr.m4 -index 7b29f1f3327..82e21fe1709 100644 ---- a/config/gthr.m4 -+++ b/config/gthr.m4 -@@ -21,6 +21,7 @@ case $1 in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - AC_SUBST(thread_header) - ]) -diff --git a/gcc/config.gcc b/gcc/config.gcc -index 46a9029acec..112c24e95a3 100644 ---- a/gcc/config.gcc -+++ b/gcc/config.gcc -@@ -1758,6 +1758,9 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) - if test x$enable_threads = xposix ; then - tm_file="${tm_file} i386/mingw-pthread.h" - fi -+ if test x$enable_threads = xmcf ; then -+ tm_file="${tm_file} i386/mingw-mcfgthread.h" -+ fi - tm_file="${tm_file} i386/mingw32.h" - # This makes the logic if mingw's or the w64 feature set has to be used - case ${target} in -diff --git a/gcc/config/i386/mingw-mcfgthread.h b/gcc/config/i386/mingw-mcfgthread.h -new file mode 100644 -index 00000000000..ec381a7798f ---- /dev/null -+++ b/gcc/config/i386/mingw-mcfgthread.h -@@ -0,0 +1 @@ -+#define TARGET_USE_MCFGTHREAD 1 -diff --git a/gcc/config/i386/mingw-w64.h b/gcc/config/i386/mingw-w64.h -index 484dc7a9e9f..a15bbeea500 100644 ---- a/gcc/config/i386/mingw-w64.h -+++ b/gcc/config/i386/mingw-w64.h -@@ -48,7 +48,7 @@ along with GCC; see the file COPYING3. If not see - "%{mwindows:-lgdi32 -lcomdlg32} " \ - "%{fvtable-verify=preinit:-lvtv -lpsapi; \ - fvtable-verify=std:-lvtv -lpsapi} " \ -- "-ladvapi32 -lshell32 -luser32 -lkernel32" -+ LIB_MCFGTHREAD "-ladvapi32 -lshell32 -luser32 -lkernel32" - - #undef SPEC_32 - #undef SPEC_64 -diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h -index 0612b87199a..76cea94f3b7 100644 ---- a/gcc/config/i386/mingw32.h -+++ b/gcc/config/i386/mingw32.h -@@ -32,6 +32,14 @@ along with GCC; see the file COPYING3. If not see - | MASK_STACK_PROBE | MASK_ALIGN_DOUBLE \ - | MASK_MS_BITFIELD_LAYOUT) - -+#ifndef TARGET_USE_MCFGTHREAD -+#define CPP_MCFGTHREAD() ((void)0) -+#define LIB_MCFGTHREAD "" -+#else -+#define CPP_MCFGTHREAD() (builtin_define("__USING_MCFGTHREAD__")) -+#define LIB_MCFGTHREAD " -lmcfgthread " -+#endif -+ - /* See i386/crtdll.h for an alternative definition. _INTEGRAL_MAX_BITS - is for compatibility with native compiler. */ - #define EXTRA_OS_CPP_BUILTINS() \ -@@ -50,6 +58,7 @@ along with GCC; see the file COPYING3. If not see - builtin_define_std ("WIN64"); \ - builtin_define ("_WIN64"); \ - } \ -+ CPP_MCFGTHREAD(); \ - } \ - while (0) - -@@ -93,7 +102,7 @@ along with GCC; see the file COPYING3. If not see - "%{mwindows:-lgdi32 -lcomdlg32} " \ - "%{fvtable-verify=preinit:-lvtv -lpsapi; \ - fvtable-verify=std:-lvtv -lpsapi} " \ -- "-ladvapi32 -lshell32 -luser32 -lkernel32" -+ LIB_MCFGTHREAD "-ladvapi32 -lshell32 -luser32 -lkernel32" - - /* Weak symbols do not get resolved if using a Windows dll import lib. - Make the unwind registration references strong undefs. */ -diff --git a/gcc/configure b/gcc/configure -index 6121e163259..52f0e00efe6 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -11693,7 +11693,7 @@ case ${enable_threads} in - target_thread_file='single' - ;; - aix | dce | lynx | mipssde | posix | rtems | \ -- single | tpf | vxworks | win32) -+ single | tpf | vxworks | win32 | mcf) - target_thread_file=${enable_threads} - ;; - *) -diff --git a/gcc/configure.ac b/gcc/configure.ac -index b066cc609e1..4ecdba88de7 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1612,7 +1612,7 @@ case ${enable_threads} in - target_thread_file='single' - ;; - aix | dce | lynx | mipssde | posix | rtems | \ -- single | tpf | vxworks | win32) -+ single | tpf | vxworks | win32 | mcf) - target_thread_file=${enable_threads} - ;; - *) -diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt -index ea8c34f8c71..23134ad7363 100644 ---- a/libatomic/configure.tgt -+++ b/libatomic/configure.tgt -@@ -145,7 +145,7 @@ case "${target}" in - *-*-mingw*) - # OS support for atomic primitives. - case ${target_thread_file} in -- win32) -+ win32 | mcf) - config_path="${config_path} mingw" - ;; - posix) -diff --git a/libgcc/config.host b/libgcc/config.host -index 11b4acaff55..9fbd38650bd 100644 ---- a/libgcc/config.host -+++ b/libgcc/config.host -@@ -737,6 +737,9 @@ i[34567]86-*-mingw*) - posix) - tmake_file="i386/t-mingw-pthread $tmake_file" - ;; -+ mcf) -+ tmake_file="i386/t-mingw-mcfgthread $tmake_file" -+ ;; - esac - # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h - if test x$ac_cv_sjlj_exceptions = xyes; then -@@ -761,6 +764,9 @@ x86_64-*-mingw*) - posix) - tmake_file="i386/t-mingw-pthread $tmake_file" - ;; -+ mcf) -+ tmake_file="i386/t-mingw-mcfgthread $tmake_file" -+ ;; - esac - # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h - if test x$ac_cv_sjlj_exceptions = xyes; then -diff --git a/libgcc/config/i386/gthr-mcf.h b/libgcc/config/i386/gthr-mcf.h -new file mode 100644 -index 00000000000..5ea2908361f ---- /dev/null -+++ b/libgcc/config/i386/gthr-mcf.h -@@ -0,0 +1 @@ -+#include -diff --git a/libgcc/config/i386/t-mingw-mcfgthread b/libgcc/config/i386/t-mingw-mcfgthread -new file mode 100644 -index 00000000000..4b9b10e32d6 ---- /dev/null -+++ b/libgcc/config/i386/t-mingw-mcfgthread -@@ -0,0 +1,2 @@ -+SHLIB_PTHREAD_CFLAG = -+SHLIB_PTHREAD_LDFLAG = -lmcfgthread -diff --git a/libgcc/configure b/libgcc/configure -index b2f3f870844..eff889dc3b3 100644 ---- a/libgcc/configure -+++ b/libgcc/configure -@@ -5451,6 +5451,7 @@ case $target_thread_file in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - - -diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure -index ba094be6f15..979a5ab9ace 100755 ---- a/libstdc++-v3/configure -+++ b/libstdc++-v3/configure -@@ -15187,6 +15187,7 @@ case $target_thread_file in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - - -diff --git a/libstdc++-v3/libsupc++/atexit_thread.cc b/libstdc++-v3/libsupc++/atexit_thread.cc -index de920d714c6..665fb74bd6b 100644 ---- a/libstdc++-v3/libsupc++/atexit_thread.cc -+++ b/libstdc++-v3/libsupc++/atexit_thread.cc -@@ -25,6 +25,22 @@ - #include - #include - #include "bits/gthr.h" -+ -+#ifdef __USING_MCFGTHREAD__ -+ -+#include -+namespace __cxxabiv1 { -+extern "C" int -+__cxa_thread_atexit (void (_GLIBCXX_CDTOR_CALLABI *dtor)(void *), -+ void *obj, void *dso_handle) -+ _GLIBCXX_NOTHROW -+{ -+ return ::_MCFCRT_AtThreadExit((void (*)(_MCFCRT_STD intptr_t))dtor, (_MCFCRT_STD intptr_t)obj) ? 0 : -1; -+ (void)dso_handle; -+} -+} -+#else // __USING_MCFGTHREAD__ -+ - #ifdef _GLIBCXX_THREAD_ATEXIT_WIN32 - #define WIN32_LEAN_AND_MEAN - #include -@@ -167,3 +183,5 @@ __cxxabiv1::__cxa_thread_atexit (void (*dtor)(void *), void *obj, void */*dso_ha - } - - #endif /* _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL */ -+ -+#endif // __USING_MCFGTHREAD__ -diff --git a/libstdc++-v3/libsupc++/guard.cc b/libstdc++-v3/libsupc++/guard.cc -index 3a2ec3ad0d6..8b4cc96199b 100644 ---- a/libstdc++-v3/libsupc++/guard.cc -+++ b/libstdc++-v3/libsupc++/guard.cc -@@ -28,6 +28,27 @@ - #include - #include - #include -+ -+#ifdef __USING_MCFGTHREAD__ -+ -+#include -+ -+namespace __cxxabiv1 { -+ -+extern "C" int __cxa_guard_acquire(__guard *g){ -+ return ::_MCFCRT_WaitForOnceFlagForever((::_MCFCRT_OnceFlag *)g) == ::_MCFCRT_kOnceResultInitial; -+} -+extern "C" void __cxa_guard_abort(__guard *g) throw() { -+ ::_MCFCRT_SignalOnceFlagAsAborted((::_MCFCRT_OnceFlag *)g); -+} -+extern "C" void __cxa_guard_release(__guard *g) throw() { -+ ::_MCFCRT_SignalOnceFlagAsFinished((::_MCFCRT_OnceFlag *)g); -+} -+ -+} -+ -+#else // __USING_MCFGTHREAD__ -+ - #include - #include - #include -@@ -425,3 +446,5 @@ namespace __cxxabiv1 - #endif - } - } -+ -+#endif -diff --git a/libstdc++-v3/src/c++11/thread.cc b/libstdc++-v3/src/c++11/thread.cc -index 8238817c2e9..0c6a1f85f6f 100644 ---- a/libstdc++-v3/src/c++11/thread.cc -+++ b/libstdc++-v3/src/c++11/thread.cc -@@ -55,6 +55,15 @@ static inline int get_nprocs() - #elif defined(_GLIBCXX_USE_SC_NPROC_ONLN) - # include - # define _GLIBCXX_NPROCS sysconf(_SC_NPROC_ONLN) -+#elif defined(_WIN32) -+# include -+static inline int get_nprocs() -+{ -+ SYSTEM_INFO sysinfo; -+ GetSystemInfo(&sysinfo); -+ return (int)sysinfo.dwNumberOfProcessors; -+} -+# define _GLIBCXX_NPROCS get_nprocs() - #else - # define _GLIBCXX_NPROCS 0 - #endif --- -2.17.0 - diff --git a/pkgs/by-name/gc/gcc/patches/11/gcc-issue-103910.patch b/pkgs/by-name/gc/gcc/patches/11/gcc-issue-103910.patch deleted file mode 100644 index c3edd96..0000000 --- a/pkgs/by-name/gc/gcc/patches/11/gcc-issue-103910.patch +++ /dev/null @@ -1,41 +0,0 @@ -From d243f4009d8071b734df16cd70f4c5d09a373769 Mon Sep 17 00:00:00 2001 -From: Andrew Pinski -Date: Wed, 5 Jan 2022 22:00:07 +0000 -Subject: [PATCH] Fix target/103910: missing GTY on x86_mfence causing PCH - usage to ICE - -With -O3 -march=opteron, a mfence builtin is added after the loop -to say the nontemporal stores are no longer needed. This all good -without precompiled headers as the function decl that is referneced -by x86_mfence is referenced in another variable but with precompiled -headers, x86_mfence is all messed up and the decl was GC'ed away. -This fixes the problem by marking x86_mfence as GTY to save/restore -during precompiled headers just like most other variables in -the header file. - -Committed as obvious after a bootstrap/test on x86_64-linux-gnu. - -gcc/ChangeLog: - - PR target/103910 - * config/i386/i386.h (x86_mfence): Mark with GTY. ---- - gcc/config/i386/i386.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h -index f027608eefa..3ac0f698ae2 100644 ---- a/gcc/config/i386/i386.h -+++ b/gcc/config/i386/i386.h -@@ -486,7 +486,7 @@ extern unsigned char ix86_prefetch_sse; - - /* Fence to use after loop using storent. */ - --extern tree x86_mfence; -+extern GTY(()) tree x86_mfence; - #define FENCE_FOLLOWING_MOVNT x86_mfence - - /* Once GDB has been enhanced to deal with functions without frame --- -2.31.1 - diff --git a/pkgs/by-name/gc/gcc/patches/11/libgcc-aarch64-darwin-detection.patch b/pkgs/by-name/gc/gcc/patches/11/libgcc-aarch64-darwin-detection.patch deleted file mode 100644 index 08dbfec..0000000 --- a/pkgs/by-name/gc/gcc/patches/11/libgcc-aarch64-darwin-detection.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -u a/libgcc/config.host b/libgcc/config.host ---- a/libgcc/config.host 2023-11-05 11:01:55.778638446 -0500 -+++ b/libgcc/config.host 2023-11-05 11:07:29.405103979 -0500 -@@ -227,7 +227,7 @@ - tmake_file="$tmake_file t-slibgcc-darwin" - # newer toolsets produce warnings when building for unsupported versions. - case ${host} in -- *-*-darwin1[89]* | *-*-darwin2* ) -+ *-*-darwin1[89]* | *-*-darwin2* | aarch64*-*-darwin*) - tmake_file="t-darwin-min-8 $tmake_file" - ;; - *-*-darwin9* | *-*-darwin1[0-7]*) -diff -ur a/libgcc/config/t-darwin-rpath b/libgcc/config/t-darwin-rpath ---- a/libgcc/config/t-darwin-rpath 2023-11-05 11:34:18.691150009 -0500 -+++ b/libgcc/config/t-darwin-rpath 2023-11-05 11:50:36.968920904 -0500 -@@ -2,4 +2,4 @@ - SHLIB_RPATH = @rpath - - # Which does not work for Darwin < 9 --HOST_LIBGCC2_CFLAGS += -mmacosx-version-min=10.5 -+SHLIB_LOADER_PATH = -Wl,-rpath,@loader_path diff --git a/pkgs/by-name/gc/gcc/patches/12/Added-mcf-thread-model-support-from-mcfgthread.patch b/pkgs/by-name/gc/gcc/patches/12/Added-mcf-thread-model-support-from-mcfgthread.patch deleted file mode 100644 index 7720243..0000000 --- a/pkgs/by-name/gc/gcc/patches/12/Added-mcf-thread-model-support-from-mcfgthread.patch +++ /dev/null @@ -1,306 +0,0 @@ -From 86f2f767ddffd9f7c6f1470b987ae7b0d251b988 Mon Sep 17 00:00:00 2001 -From: Liu Hao -Date: Wed, 25 Apr 2018 21:54:19 +0800 -Subject: [PATCH] Added 'mcf' thread model support from mcfgthread. - -Signed-off-by: Liu Hao ---- - config/gthr.m4 | 1 + - gcc/config.gcc | 3 +++ - gcc/config/i386/mingw-mcfgthread.h | 1 + - gcc/config/i386/mingw-w64.h | 2 +- - gcc/config/i386/mingw32.h | 11 ++++++++++- - gcc/configure | 2 +- - gcc/configure.ac | 2 +- - libatomic/configure.tgt | 2 +- - libgcc/config.host | 6 ++++++ - libgcc/config/i386/gthr-mcf.h | 1 + - libgcc/config/i386/t-mingw-mcfgthread | 2 ++ - libgcc/configure | 1 + - libstdc++-v3/configure | 1 + - libstdc++-v3/libsupc++/atexit_thread.cc | 18 ++++++++++++++++++ - libstdc++-v3/libsupc++/guard.cc | 23 +++++++++++++++++++++++ - libstdc++-v3/src/c++11/thread.cc | 9 +++++++++ - 16 files changed, 80 insertions(+), 5 deletions(-) - create mode 100644 gcc/config/i386/mingw-mcfgthread.h - create mode 100644 libgcc/config/i386/gthr-mcf.h - create mode 100644 libgcc/config/i386/t-mingw-mcfgthread - -diff --git a/config/gthr.m4 b/config/gthr.m4 -index 7b29f1f3327..82e21fe1709 100644 ---- a/config/gthr.m4 -+++ b/config/gthr.m4 -@@ -21,6 +21,7 @@ case $1 in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - AC_SUBST(thread_header) - ]) -diff --git a/gcc/config.gcc b/gcc/config.gcc -index 46a9029acec..112c24e95a3 100644 ---- a/gcc/config.gcc -+++ b/gcc/config.gcc -@@ -1758,6 +1758,9 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) - if test x$enable_threads = xposix ; then - tm_file="${tm_file} i386/mingw-pthread.h" - fi -+ if test x$enable_threads = xmcf ; then -+ tm_file="${tm_file} i386/mingw-mcfgthread.h" -+ fi - tm_file="${tm_file} i386/mingw32.h" - # This makes the logic if mingw's or the w64 feature set has to be used - case ${target} in -diff --git a/gcc/config/i386/mingw-mcfgthread.h b/gcc/config/i386/mingw-mcfgthread.h -new file mode 100644 -index 00000000000..ec381a7798f ---- /dev/null -+++ b/gcc/config/i386/mingw-mcfgthread.h -@@ -0,0 +1 @@ -+#define TARGET_USE_MCFGTHREAD 1 -diff --git a/gcc/config/i386/mingw-w64.h b/gcc/config/i386/mingw-w64.h -index 484dc7a9e9f..a15bbeea500 100644 ---- a/gcc/config/i386/mingw-w64.h -+++ b/gcc/config/i386/mingw-w64.h -@@ -48,7 +48,7 @@ along with GCC; see the file COPYING3. If not see - "%{mwindows:-lgdi32 -lcomdlg32} " \ - "%{fvtable-verify=preinit:-lvtv -lpsapi; \ - fvtable-verify=std:-lvtv -lpsapi} " \ -- "-ladvapi32 -lshell32 -luser32 -lkernel32" -+ LIB_MCFGTHREAD "-ladvapi32 -lshell32 -luser32 -lkernel32" - - #undef SPEC_32 - #undef SPEC_64 -diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h -index 0612b87199a..76cea94f3b7 100644 ---- a/gcc/config/i386/mingw32.h -+++ b/gcc/config/i386/mingw32.h -@@ -32,6 +32,14 @@ along with GCC; see the file COPYING3. If not see - | MASK_STACK_PROBE | MASK_ALIGN_DOUBLE \ - | MASK_MS_BITFIELD_LAYOUT) - -+#ifndef TARGET_USE_MCFGTHREAD -+#define CPP_MCFGTHREAD() ((void)0) -+#define LIB_MCFGTHREAD "" -+#else -+#define CPP_MCFGTHREAD() (builtin_define("__USING_MCFGTHREAD__")) -+#define LIB_MCFGTHREAD " -lmcfgthread " -+#endif -+ - /* See i386/crtdll.h for an alternative definition. _INTEGRAL_MAX_BITS - is for compatibility with native compiler. */ - #define EXTRA_OS_CPP_BUILTINS() \ -@@ -50,6 +58,7 @@ along with GCC; see the file COPYING3. If not see - builtin_define_std ("WIN64"); \ - builtin_define ("_WIN64"); \ - } \ -+ CPP_MCFGTHREAD(); \ - } \ - while (0) - -@@ -93,7 +102,7 @@ along with GCC; see the file COPYING3. If not see - "%{mwindows:-lgdi32 -lcomdlg32} " \ - "%{fvtable-verify=preinit:-lvtv -lpsapi; \ - fvtable-verify=std:-lvtv -lpsapi} " \ -- "-ladvapi32 -lshell32 -luser32 -lkernel32" -+ LIB_MCFGTHREAD "-ladvapi32 -lshell32 -luser32 -lkernel32" - - /* Weak symbols do not get resolved if using a Windows dll import lib. - Make the unwind registration references strong undefs. */ -diff --git a/gcc/configure b/gcc/configure -index 6121e163259..52f0e00efe6 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -11693,7 +11693,7 @@ case ${enable_threads} in - target_thread_file='single' - ;; - aix | dce | lynx | mipssde | posix | rtems | \ -- single | tpf | vxworks | win32) -+ single | tpf | vxworks | win32 | mcf) - target_thread_file=${enable_threads} - ;; - *) -diff --git a/gcc/configure.ac b/gcc/configure.ac -index b066cc609e1..4ecdba88de7 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1612,7 +1612,7 @@ case ${enable_threads} in - target_thread_file='single' - ;; - aix | dce | lynx | mipssde | posix | rtems | \ -- single | tpf | vxworks | win32) -+ single | tpf | vxworks | win32 | mcf) - target_thread_file=${enable_threads} - ;; - *) -diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt -index ea8c34f8c71..23134ad7363 100644 ---- a/libatomic/configure.tgt -+++ b/libatomic/configure.tgt -@@ -145,7 +145,7 @@ case "${target}" in - *-*-mingw*) - # OS support for atomic primitives. - case ${target_thread_file} in -- win32) -+ win32 | mcf) - config_path="${config_path} mingw" - ;; - posix) -diff --git a/libgcc/config.host b/libgcc/config.host -index 11b4acaff55..9fbd38650bd 100644 ---- a/libgcc/config.host -+++ b/libgcc/config.host -@@ -737,6 +737,9 @@ i[34567]86-*-mingw*) - posix) - tmake_file="i386/t-mingw-pthread $tmake_file" - ;; -+ mcf) -+ tmake_file="i386/t-mingw-mcfgthread $tmake_file" -+ ;; - esac - # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h - if test x$ac_cv_sjlj_exceptions = xyes; then -@@ -761,6 +764,9 @@ x86_64-*-mingw*) - posix) - tmake_file="i386/t-mingw-pthread $tmake_file" - ;; -+ mcf) -+ tmake_file="i386/t-mingw-mcfgthread $tmake_file" -+ ;; - esac - # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h - if test x$ac_cv_sjlj_exceptions = xyes; then -diff --git a/libgcc/config/i386/gthr-mcf.h b/libgcc/config/i386/gthr-mcf.h -new file mode 100644 -index 00000000000..5ea2908361f ---- /dev/null -+++ b/libgcc/config/i386/gthr-mcf.h -@@ -0,0 +1 @@ -+#include -diff --git a/libgcc/config/i386/t-mingw-mcfgthread b/libgcc/config/i386/t-mingw-mcfgthread -new file mode 100644 -index 00000000000..4b9b10e32d6 ---- /dev/null -+++ b/libgcc/config/i386/t-mingw-mcfgthread -@@ -0,0 +1,2 @@ -+SHLIB_PTHREAD_CFLAG = -+SHLIB_PTHREAD_LDFLAG = -lmcfgthread -diff --git a/libgcc/configure b/libgcc/configure -index b2f3f870844..eff889dc3b3 100644 ---- a/libgcc/configure -+++ b/libgcc/configure -@@ -5451,6 +5451,7 @@ case $target_thread_file in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - - -diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure -index ba094be6f15..979a5ab9ace 100755 ---- a/libstdc++-v3/configure -+++ b/libstdc++-v3/configure -@@ -15187,6 +15187,7 @@ case $target_thread_file in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - - -diff --git a/libstdc++-v3/libsupc++/atexit_thread.cc b/libstdc++-v3/libsupc++/atexit_thread.cc -index de920d714c6..665fb74bd6b 100644 ---- a/libstdc++-v3/libsupc++/atexit_thread.cc -+++ b/libstdc++-v3/libsupc++/atexit_thread.cc -@@ -25,6 +25,22 @@ - #include - #include - #include "bits/gthr.h" -+ -+#ifdef __USING_MCFGTHREAD__ -+ -+#include -+namespace __cxxabiv1 { -+extern "C" int -+__cxa_thread_atexit (void (_GLIBCXX_CDTOR_CALLABI *dtor)(void *), -+ void *obj, void *dso_handle) -+ _GLIBCXX_NOTHROW -+{ -+ return ::_MCFCRT_AtThreadExit((void (*)(_MCFCRT_STD intptr_t))dtor, (_MCFCRT_STD intptr_t)obj) ? 0 : -1; -+ (void)dso_handle; -+} -+} -+#else // __USING_MCFGTHREAD__ -+ - #ifdef _GLIBCXX_THREAD_ATEXIT_WIN32 - #define WIN32_LEAN_AND_MEAN - #include -@@ -167,3 +183,5 @@ __cxxabiv1::__cxa_thread_atexit (void (*dtor)(void *), void *obj, void */*dso_ha - } - - #endif /* _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL */ -+ -+#endif // __USING_MCFGTHREAD__ -diff --git a/libstdc++-v3/libsupc++/guard.cc b/libstdc++-v3/libsupc++/guard.cc -index 3a2ec3ad0d6..8b4cc96199b 100644 ---- a/libstdc++-v3/libsupc++/guard.cc -+++ b/libstdc++-v3/libsupc++/guard.cc -@@ -28,6 +28,27 @@ - #include - #include - #include -+ -+#ifdef __USING_MCFGTHREAD__ -+ -+#include -+ -+namespace __cxxabiv1 { -+ -+extern "C" int __cxa_guard_acquire(__guard *g){ -+ return ::_MCFCRT_WaitForOnceFlagForever((::_MCFCRT_OnceFlag *)g) == ::_MCFCRT_kOnceResultInitial; -+} -+extern "C" void __cxa_guard_abort(__guard *g) throw() { -+ ::_MCFCRT_SignalOnceFlagAsAborted((::_MCFCRT_OnceFlag *)g); -+} -+extern "C" void __cxa_guard_release(__guard *g) throw() { -+ ::_MCFCRT_SignalOnceFlagAsFinished((::_MCFCRT_OnceFlag *)g); -+} -+ -+} -+ -+#else // __USING_MCFGTHREAD__ -+ - #include - #include - #include -@@ -425,3 +446,5 @@ namespace __cxxabiv1 - #endif - } - } -+ -+#endif -diff --git a/libstdc++-v3/src/c++11/thread.cc b/libstdc++-v3/src/c++11/thread.cc -index 8238817c2e9..0c6a1f85f6f 100644 ---- a/libstdc++-v3/src/c++11/thread.cc -+++ b/libstdc++-v3/src/c++11/thread.cc -@@ -55,6 +55,15 @@ static inline int get_nprocs() - #elif defined(_GLIBCXX_USE_SC_NPROC_ONLN) - # include - # define _GLIBCXX_NPROCS sysconf(_SC_NPROC_ONLN) -+#elif defined(_WIN32) -+# include -+static inline int get_nprocs() -+{ -+ SYSTEM_INFO sysinfo; -+ GetSystemInfo(&sysinfo); -+ return (int)sysinfo.dwNumberOfProcessors; -+} -+# define _GLIBCXX_NPROCS get_nprocs() - #else - # define _GLIBCXX_NPROCS 0 - #endif --- -2.17.0 - diff --git a/pkgs/by-name/gc/gcc/patches/12/lambda-ICE-PR109241.patch b/pkgs/by-name/gc/gcc/patches/12/lambda-ICE-PR109241.patch deleted file mode 100644 index a27a8a0..0000000 --- a/pkgs/by-name/gc/gcc/patches/12/lambda-ICE-PR109241.patch +++ /dev/null @@ -1,77 +0,0 @@ -https://gcc.gnu.org/PR109241 - -Fix ICE on ccache. - -From 396a4e76afec30d2461638f569cae18955eb4ad2 Mon Sep 17 00:00:00 2001 -From: Jason Merrill -Date: Wed, 22 Mar 2023 16:11:47 -0400 -Subject: [PATCH] c++: local class in nested generic lambda [PR109241] - -In this testcase, the tree walk to look for bare parameter packs was -confused by finding a type with no TREE_BINFO. But it should be fine that -it's unset; we already checked for unexpanded packs at parse time. - -I also tried doing the partial instantiation of the local class, which is -probably the long-term direction we want to go, but for stage 4 let's go -with this safer change. - - PR c++/109241 - -gcc/cp/ChangeLog: - - * pt.cc (find_parameter_packs_r): Handle null TREE_BINFO. - -gcc/testsuite/ChangeLog: - - * g++.dg/cpp1y/lambda-generic-local-class2.C: New test. ---- - gcc/cp/pt.cc | 12 ++++++++---- - .../g++.dg/cpp1y/lambda-generic-local-class2.C | 13 +++++++++++++ - 2 files changed, 21 insertions(+), 4 deletions(-) - create mode 100644 gcc/testsuite/g++.dg/cpp1y/lambda-generic-local-class2.C - -diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc -index c7f4a95a723..79bc9c014c8 100644 ---- a/gcc/cp/pt.cc -+++ b/gcc/cp/pt.cc -@@ -4106,10 +4106,14 @@ find_parameter_packs_r (tree *tp, int *walk_subtrees, void* data) - case TAG_DEFN: - t = TREE_TYPE (t); - if (CLASS_TYPE_P (t)) -- /* Local class, need to look through the whole definition. */ -- for (tree bb : BINFO_BASE_BINFOS (TYPE_BINFO (t))) -- cp_walk_tree (&BINFO_TYPE (bb), &find_parameter_packs_r, -- ppd, ppd->visited); -+ { -+ /* Local class, need to look through the whole definition. -+ TYPE_BINFO might be unset for a partial instantiation. */ -+ if (TYPE_BINFO (t)) -+ for (tree bb : BINFO_BASE_BINFOS (TYPE_BINFO (t))) -+ cp_walk_tree (&BINFO_TYPE (bb), &find_parameter_packs_r, -+ ppd, ppd->visited); -+ } - else - /* Enum, look at the values. */ - for (tree l = TYPE_VALUES (t); l; l = TREE_CHAIN (l)) -diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-local-class2.C b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-local-class2.C -new file mode 100644 -index 00000000000..83856de1f41 ---- /dev/null -+++ b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-local-class2.C -@@ -0,0 +1,13 @@ -+// PR c++/109241 -+// { dg-do compile { target c++14 } } -+// { dg-options "" } no pedantic -+ -+void g() { -+ [](auto) { -+ [](auto) { -+ ({ -+ struct A {}; -+ }); -+ }; -+ }(1); -+} --- -2.40.1 - diff --git a/pkgs/by-name/gc/gcc/patches/12/mangle-NIX_STORE-in-__FILE__.patch b/pkgs/by-name/gc/gcc/patches/12/mangle-NIX_STORE-in-__FILE__.patch deleted file mode 100644 index 8a09af2..0000000 --- a/pkgs/by-name/gc/gcc/patches/12/mangle-NIX_STORE-in-__FILE__.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 30908556fece379ffd7c0da96c774d8bd297e459 Mon Sep 17 00:00:00 2001 -From: Sergei Trofimovich -Date: Fri, 22 Sep 2023 22:41:49 +0100 -Subject: [PATCH] gcc/file-prefix-map.cc: always mangle __FILE__ into invalid - store path - -Without the change `__FILE__` used in static inline functions in headers -embed paths to header files into executable images. For local headers -it's not a problem, but for headers in `/nix/store` this causes `-dev` -inputs to be retained in runtime closure. - -Typical examples are `nix` -> `nlohmann_json` and `pipewire` -> -`lttng-ust.dev`. - -For this reason we want to remove the occurrences of hashes in the -expansion of `__FILE__`. `nuke-references` does it by replacing hashes -by `eeeeee...`. It is handy to be able to invert the transformation to -go back to the original store path. The chosen solution is to make the -hash uppercase: -- it does not trigger runtime references (except for all digit hashes, - which are unlikely enough) -- it visually looks like a bogus store path -- it is easy to find the original store path if required - -Ideally we would like to use `-fmacro-prefix-map=` feature of `gcc` as: - - -fmacro-prefix-map=/nix/store/$hash1-nlohmann-json-ver=/nix/store/$HASH1-nlohmann-json-ver - -fmacro-prefix-map=/nix/... - -In practice it quickly exhausts argument length limit due to `gcc` -deficiency: https://gcc.gnu.org/PR111527 - -Until it's fixed let's hardcode header mangling if $NIX_STORE variable -is present in the environment. - -Tested as: - - $ printf "# 0 \"/nix/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-pppppp-vvvvvvv\" \nconst char * f(void) { return __FILE__; }" | NIX_STORE=/nix/store ./gcc/xgcc -Bgcc -x c - -S -o - - ... - .string "/nix/store/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-pppppp-vvvvvvv" - ... - -Mangled successfully. - -To reverse the effect of the mangle use new `NIX_GCC_DONT_MANGLE_PREFIX_MAP` -environment variable. It should not normally be needed. ---- a/gcc/file-prefix-map.cc -+++ b/gcc/file-prefix-map.cc -@@ -65,7 +65,7 @@ add_prefix_map (file_prefix_map *&maps, const char *arg, const char *opt) - remapping was performed. */ - - static const char * --remap_filename (file_prefix_map *maps, const char *filename) -+remap_filename (file_prefix_map *maps, const char *filename, bool mangle_nix_store = false) - { - file_prefix_map *map; - char *s; -@@ -76,7 +76,31 @@ remap_filename (file_prefix_map *maps, const char *filename) - if (filename_ncmp (filename, map->old_prefix, map->old_len) == 0) - break; - if (!map) -- return filename; -+ { -+ if (mangle_nix_store && getenv("NIX_GCC_DONT_MANGLE_PREFIX_MAP") == NULL) -+ { -+ /* Remap the 32 characters after $NIX_STORE/ to uppercase -+ * -+ * That way we avoid argument parameters explosion -+ * and still avoid embedding headers into runtime closure: -+ * https://gcc.gnu.org/PR111527 -+ */ -+ char * nix_store = getenv("NIX_STORE"); -+ size_t nix_store_len = nix_store ? strlen(nix_store) : 0; -+ const char * name = filename; -+ size_t name_len = strlen(name); -+ if (nix_store && name_len >= nix_store_len + 1 + 32 && memcmp(name, nix_store, nix_store_len) == 0) -+ { -+ s = (char *) ggc_alloc_atomic (name_len + 1); -+ memcpy(s, name, name_len + 1); -+ for (size_t i = nix_store_len + 1; i < nix_store_len + 1 + 32; i++) { -+ s[i] = TOUPPER(s[i]); -+ } -+ return s; -+ } -+ } -+ return filename; -+ } - name = filename + map->old_len; - name_len = strlen (name) + 1; - -@@ -129,7 +153,7 @@ add_profile_prefix_map (const char *arg) - const char * - remap_macro_filename (const char *filename) - { -- return remap_filename (macro_prefix_maps, filename); -+ return remap_filename (macro_prefix_maps, filename, true); - } - - /* Remap using -fdebug-prefix-map. Return the GC-allocated new name diff --git a/pkgs/by-name/gc/gcc/patches/13/ICE-PR110280.patch b/pkgs/by-name/gc/gcc/patches/13/ICE-PR110280.patch deleted file mode 100644 index 7338b3d..0000000 --- a/pkgs/by-name/gc/gcc/patches/13/ICE-PR110280.patch +++ /dev/null @@ -1,60 +0,0 @@ -From f4029de35fb1b293a4fd586574b1b4b73ddf7880 Mon Sep 17 00:00:00 2001 -From: Prathamesh Kulkarni -Date: Wed, 26 Jul 2023 22:36:26 +0530 -Subject: [PATCH] [aarch64/match.pd] Fix ICE observed in PR110280. - -gcc/ChangeLog: - PR tree-optimization/110280 - * match.pd (vec_perm_expr(v, v, mask) -> v): Explicitly build vector - using build_vector_from_val with the element of input operand, and - mask's type if operand and mask's types don't match. - -gcc/testsuite/ChangeLog: - PR tree-optimization/110280 - * gcc.target/aarch64/sve/pr110280.c: New test. - -(cherry picked from commit 85d8e0d8d5342ec8b4e6a54e22741c30b33c6f04) ---- - gcc/match.pd | 9 ++++++++- - gcc/testsuite/gcc.target/aarch64/sve/pr110280.c | 12 ++++++++++++ - 2 files changed, 20 insertions(+), 1 deletion(-) - create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/pr110280.c - -diff --git a/gcc/match.pd b/gcc/match.pd -index 9118244825054..c3bb4fbc0a7a2 100644 ---- a/gcc/match.pd -+++ b/gcc/match.pd -@@ -8292,7 +8292,14 @@ and, - - (simplify - (vec_perm vec_same_elem_p@0 @0 @1) -- @0) -+ (if (types_match (type, TREE_TYPE (@0))) -+ @0 -+ (with -+ { -+ tree elem = uniform_vector_p (@0); -+ } -+ (if (elem) -+ { build_vector_from_val (type, elem); })))) - - /* Push VEC_PERM earlier if that may help FMA perception (PR101895). */ - (simplify -diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pr110280.c b/gcc/testsuite/gcc.target/aarch64/sve/pr110280.c -new file mode 100644 -index 0000000000000..d3279f383629f ---- /dev/null -+++ b/gcc/testsuite/gcc.target/aarch64/sve/pr110280.c -@@ -0,0 +1,12 @@ -+/* { dg-do compile } */ -+/* { dg-options "-O3 -fdump-tree-optimized" } */ -+ -+#include "arm_sve.h" -+ -+svuint32_t l() -+{ -+ _Alignas(16) const unsigned int lanes[4] = {0, 0, 0, 0}; -+ return svld1rq_u32(svptrue_b8(), lanes); -+} -+ -+/* { dg-final { scan-tree-dump-not "VEC_PERM_EXPR" "optimized" } } */ diff --git a/pkgs/by-name/gc/gcc/patches/13/mangle-NIX_STORE-in-__FILE__.patch b/pkgs/by-name/gc/gcc/patches/13/mangle-NIX_STORE-in-__FILE__.patch deleted file mode 100644 index 87613c2..0000000 --- a/pkgs/by-name/gc/gcc/patches/13/mangle-NIX_STORE-in-__FILE__.patch +++ /dev/null @@ -1,97 +0,0 @@ -From e160a8cd4a704f4b7724df02b62394f677cc4198 Mon Sep 17 00:00:00 2001 -From: Sergei Trofimovich -Date: Fri, 22 Sep 2023 22:41:49 +0100 -Subject: [PATCH] gcc/file-prefix-map.cc: always mangle __FILE__ into invalid - store path - -Without the change `__FILE__` used in static inline functions in headers -embed paths to header files into executable images. For local headers -it's not a problem, but for headers in `/nix/store` this causes `-dev` -inputs to be retained in runtime closure. - -Typical examples are `nix` -> `nlohmann_json` and `pipewire` -> -`lttng-ust.dev`. - -For this reason we want to remove the occurrences of hashes in the -expansion of `__FILE__`. `nuke-references` does it by replacing hashes -by `eeeeee...`. It is handy to be able to invert the transformation to -go back to the original store path. The chosen solution is to make the -hash uppercase: -- it does not trigger runtime references (except for all digit hashes, - which are unlikely enough) -- it visually looks like a bogus store path -- it is easy to find the original store path if required - -Ideally we would like to use `-fmacro-prefix-map=` feature of `gcc` as: - - -fmacro-prefix-map=/nix/store/$hash1-nlohmann-json-ver=/nix/store/$HASH1-nlohmann-json-ver - -fmacro-prefix-map=/nix/... - -In practice it quickly exhausts argument length limit due to `gcc` -deficiency: https://gcc.gnu.org/PR111527 - -Until it's fixed let's hardcode header mangling if $NIX_STORE variable -is present in the environment. - -Tested as: - - $ printf "# 0 \"/nix/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-pppppp-vvvvvvv\" \nconst char * f(void) { return __FILE__; }" | NIX_STORE=/nix/store ./gcc/xgcc -Bgcc -x c - -S -o - - ... - .string "/nix/store/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-pppppp-vvvvvvv" - ... - -Mangled successfully. - -To reverse the effect of the mangle use new `NIX_GCC_DONT_MANGLE_PREFIX_MAP` -environment variable. It should not normally be needed. ---- a/gcc/file-prefix-map.cc -+++ b/gcc/file-prefix-map.cc -@@ -74,7 +74,7 @@ add_prefix_map (file_prefix_map *&maps, const char *arg, const char *opt) - remapping was performed. */ - - static const char * --remap_filename (file_prefix_map *maps, const char *filename) -+remap_filename (file_prefix_map *maps, const char *filename, bool mangle_nix_store = false) - { - file_prefix_map *map; - char *s; -@@ -102,6 +102,30 @@ remap_filename (file_prefix_map *maps, const char *filename) - break; - if (!map) - { -+ if (mangle_nix_store && getenv("NIX_GCC_DONT_MANGLE_PREFIX_MAP") == NULL) -+ { -+ /* Remap all fo $NIX_STORE/.{32} paths to uppercase -+ * -+ * That way we avoid argument parameters explosion -+ * and still avoid embedding headers into runtime closure: -+ * https://gcc.gnu.org/PR111527 -+ */ -+ char * nix_store = getenv("NIX_STORE"); -+ size_t nix_store_len = nix_store ? strlen(nix_store) : 0; -+ const char * name = realname ? realname : filename; -+ size_t name_len = strlen(name); -+ if (nix_store && name_len >= nix_store_len + 1 + 32 && memcmp(name, nix_store, nix_store_len) == 0) -+ { -+ s = (char *) ggc_alloc_atomic (name_len + 1); -+ memcpy(s, name, name_len + 1); -+ for (size_t i = nix_store_len + 1; i < nix_store_len + 1 + 32; i++) { -+ s[i] = TOUPPER(s[i]); -+ } -+ if (realname != filename) -+ free (const_cast (realname)); -+ return s; -+ } -+ } - if (realname != filename) - free (const_cast (realname)); - return filename; -@@ -163,7 +187,7 @@ add_profile_prefix_map (const char *arg) - const char * - remap_macro_filename (const char *filename) - { -- return remap_filename (macro_prefix_maps, filename); -+ return remap_filename (macro_prefix_maps, filename, true); - } - - /* Remap using -fdebug-prefix-map. Return the GC-allocated new name diff --git a/pkgs/by-name/gc/gcc/patches/13/no-sys-dirs-riscv.patch b/pkgs/by-name/gc/gcc/patches/13/no-sys-dirs-riscv.patch deleted file mode 100644 index add4d59..0000000 --- a/pkgs/by-name/gc/gcc/patches/13/no-sys-dirs-riscv.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/gcc/config/riscv/linux.h -+++ b/gcc/config/riscv/linux.h -@@ -69,9 +69,5 @@ - - #define TARGET_ASM_FILE_END file_end_indicate_exec_stack - --#define STARTFILE_PREFIX_SPEC \ -- "/lib" XLEN_SPEC "/" ABI_SPEC "/ " \ -- "/usr/lib" XLEN_SPEC "/" ABI_SPEC "/ " \ -- "/lib/ " \ -- "/usr/lib/ " -+#define STARTFILE_PREFIX_SPEC "" - diff --git a/pkgs/by-name/gc/gcc/patches/4.9/darwin-clang-as.patch b/pkgs/by-name/gc/gcc/patches/4.9/darwin-clang-as.patch deleted file mode 100644 index 095713e..0000000 --- a/pkgs/by-name/gc/gcc/patches/4.9/darwin-clang-as.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff -ur a/libgcc/config/t-darwin b/libgcc/config/t-darwin ---- a/libgcc/config/t-darwin 2012-07-14 09:50:59.000000000 -0400 -+++ b/libgcc/config/t-darwin 2023-11-05 21:26:11.696825584 -0500 -@@ -7,12 +7,6 @@ - crttme.o: $(srcdir)/config/darwin-crt-tm.c - $(crt_compile) $(DARWIN_EXTRA_CRT_BUILD_CFLAGS) -DEND -c $< - --# -pipe because there's an assembler bug, 4077127, which causes --# it to not properly process the first # directive, causing temporary --# file names to appear in stabs, causing the bootstrap to fail. Using -pipe --# works around this by not having any temporary file names. --HOST_LIBGCC2_CFLAGS += -pipe -- - # Use unwind-dw2-fde-darwin - LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/config/unwind-dw2-fde-darwin.c \ - $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c diff --git a/pkgs/by-name/gc/gcc/patches/4.9/libsanitizer.patch b/pkgs/by-name/gc/gcc/patches/4.9/libsanitizer.patch deleted file mode 100644 index f1a438a..0000000 --- a/pkgs/by-name/gc/gcc/patches/4.9/libsanitizer.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h -index aec950454..5bda9b3a3 100644 ---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h -+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h -@@ -156,18 +156,13 @@ namespace __sanitizer { - #elif defined(__sparc__) - # if defined(__arch64__) - unsigned mode; -- unsigned short __pad1; --# else -- unsigned short __pad1; -- unsigned short mode; - unsigned short __pad2; - # endif - unsigned short __seq; - unsigned long long __unused1; - unsigned long long __unused2; - #else -- unsigned short mode; -- unsigned short __pad1; -+ unsigned int mode; - unsigned short __seq; - unsigned short __pad2; - #if defined(__x86_64__) && !defined(_LP64) diff --git a/pkgs/by-name/gc/gcc/patches/4.9/parallel-strsignal.patch b/pkgs/by-name/gc/gcc/patches/4.9/parallel-strsignal.patch deleted file mode 100644 index 4c98ca2..0000000 --- a/pkgs/by-name/gc/gcc/patches/4.9/parallel-strsignal.patch +++ /dev/null @@ -1,61 +0,0 @@ -gcc/Makefile.in: fix parallel building failure - -The gcc-ar.o, gcc-nm.o, gcc-ranlib.o and errors.o included -config.h which was a generated file. But no explicity rule -to clarify the dependency. There was potential building -failure while parallel make. - -For gcc-ar.o, gcc-nm.o and gcc-ranlib.o, they were compiled from one C -source file gcc-ar.c, we add them to ALL_HOST_BACKEND_OBJS, so the -'$(ALL_HOST_OBJS) : | $(generated_files)' rule could work for these -objects. - -For errors.o, it is part of gengtype, and the gengtype generator program -is special: Two versions are built. One is for the build machine, and one -is for the host. We refered what gengtype-parse.o did (which also is part -of gengtype). - -[GCC #61899] -https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61899 - -Upstream-Status: Send to gcc-patches@gcc.gnu.org mailing list - -Signed-off-by: Hongxu Jia ---- - gcc/Makefile.in | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/gcc/Makefile.in b/gcc/Makefile.in -index 6475cba..56e50bb 100644 ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -1481,13 +1481,16 @@ OBJS-libcommon-target = $(common_out_object_file) prefix.o params.o \ - opts.o opts-common.o options.o vec.o hooks.o common/common-targhooks.o \ - hash-table.o file-find.o - -+# Objects compiled from one C source file gcc-ar.c -+OBJS-gcc-ar = gcc-ar.o gcc-nm.o gcc-ranlib.o -+ - # This lists all host objects for the front ends. - ALL_HOST_FRONTEND_OBJS = $(foreach v,$(CONFIG_LANGUAGES),$($(v)_OBJS)) - - ALL_HOST_BACKEND_OBJS = $(GCC_OBJS) $(OBJS) $(OBJS-libcommon) \ - $(OBJS-libcommon-target) @TREEBROWSER@ main.o c-family/cppspec.o \ - $(COLLECT2_OBJS) $(EXTRA_GCC_OBJS) $(GCOV_OBJS) $(GCOV_DUMP_OBJS) \ -- lto-wrapper.o -+ lto-wrapper.o $(OBJS-gcc-ar) - - # This lists all host object files, whether they are included in this - # compilation or not. -@@ -2437,6 +2440,8 @@ gengtype-parse.o: $(CONFIG_H) - CFLAGS-build/gengtype-parse.o += -DGENERATOR_FILE - build/gengtype-parse.o: $(BCONFIG_H) - -+errors.o : $(CONFIG_H) -+ - gengtype-state.o build/gengtype-state.o: gengtype-state.c $(SYSTEM_H) \ - gengtype.h errors.h double-int.h version.h $(HASHTAB_H) $(OBSTACK_H) \ - $(XREGEX_H) --- -1.8.1.2 - diff --git a/pkgs/by-name/gc/gcc/patches/6/0001-Fix-build-for-glibc-2.31.patch b/pkgs/by-name/gc/gcc/patches/6/0001-Fix-build-for-glibc-2.31.patch deleted file mode 100644 index 0cd04e2..0000000 --- a/pkgs/by-name/gc/gcc/patches/6/0001-Fix-build-for-glibc-2.31.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 8b55f1047cf3491429c1af607e5dac08a81db6e1 Mon Sep 17 00:00:00 2001 -From: Maximilian Bosch -Date: Thu, 20 Feb 2020 15:08:36 +0100 -Subject: [PATCH] Fix build for glibc 2.31 - ---- - .../sanitizer_platform_limits_posix.cc | 5 +++-- - .../sanitizer_platform_limits_posix.h | 15 +-------------- - 2 files changed, 4 insertions(+), 16 deletions(-) - -diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc -index 069d8d557..c49c28c6e 100644 ---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc -+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc -@@ -1130,8 +1130,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, cgid); - #ifndef __GLIBC_PREREQ - #define __GLIBC_PREREQ(x, y) 0 - #endif --#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21) --/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */ -+#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31) -+/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit -+ on many architectures. */ - CHECK_SIZE_AND_OFFSET(ipc_perm, mode); - #endif - -diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h -index 304d04e39..568081a79 100644 ---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h -+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h -@@ -200,27 +200,14 @@ namespace __sanitizer { - unsigned __seq; - u64 __unused1; - u64 __unused2; --#elif defined(__mips__) || defined(__aarch64__) -- unsigned int mode; -- unsigned short __seq; -- unsigned short __pad1; -- unsigned long __unused1; -- unsigned long __unused2; - #elif defined(__sparc__) --# if defined(__arch64__) - unsigned mode; -- unsigned short __pad1; --# else -- unsigned short __pad1; -- unsigned short mode; - unsigned short __pad2; --# endif - unsigned short __seq; - unsigned long long __unused1; - unsigned long long __unused2; - #else -- unsigned short mode; -- unsigned short __pad1; -+ unsigned int mode; - unsigned short __seq; - unsigned short __pad2; - #if defined(__x86_64__) && !defined(_LP64) --- -2.25.0 - diff --git a/pkgs/by-name/gc/gcc/patches/6/Added-mcf-thread-model-support-from-mcfgthread.patch b/pkgs/by-name/gc/gcc/patches/6/Added-mcf-thread-model-support-from-mcfgthread.patch deleted file mode 100644 index 25e3a90..0000000 --- a/pkgs/by-name/gc/gcc/patches/6/Added-mcf-thread-model-support-from-mcfgthread.patch +++ /dev/null @@ -1,285 +0,0 @@ -From 30534f48c6ede142dad0008d1641392d82b8a137 Mon Sep 17 00:00:00 2001 -From: Liu Hao -Date: Mon, 18 Apr 2016 11:50:55 +0800 -Subject: [PATCH] Added 'mcf' thread model support from mcfgthread. - -Signed-off-by: Liu Hao ---- - config/gthr.m4 | 1 + - gcc/config.gcc | 3 +++ - gcc/config/i386/mingw-mcfgthread.h | 1 + - gcc/config/i386/mingw-w64.h | 2 +- - gcc/config/i386/mingw32.h | 11 ++++++++++- - gcc/configure | 2 +- - gcc/configure.ac | 2 +- - libatomic/configure.tgt | 2 +- - libgcc/config.host | 6 ++++++ - libgcc/config/i386/gthr-mcf.h | 1 + - libgcc/config/i386/t-mingw-mcfgthread | 2 ++ - libgcc/configure | 1 + - libstdc++-v3/configure | 1 + - libstdc++-v3/libsupc++/atexit_thread.cc | 18 ++++++++++++++++++ - libstdc++-v3/libsupc++/guard.cc | 23 +++++++++++++++++++++++ - 15 files changed, 71 insertions(+), 5 deletions(-) - create mode 100644 gcc/config/i386/mingw-mcfgthread.h - create mode 100644 libgcc/config/i386/gthr-mcf.h - create mode 100644 libgcc/config/i386/t-mingw-mcfgthread - -diff --git a/config/gthr.m4 b/config/gthr.m4 -index 7b29f1f3327..82e21fe1709 100644 ---- a/config/gthr.m4 -+++ b/config/gthr.m4 -@@ -21,6 +21,7 @@ case $1 in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - AC_SUBST(thread_header) - ]) -diff --git a/gcc/config.gcc b/gcc/config.gcc -index 858b878d4b3..6f745790d64 100644 ---- a/gcc/config.gcc -+++ b/gcc/config.gcc -@@ -1722,6 +1722,9 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) - if test x$enable_threads = xposix ; then - tm_file="${tm_file} i386/mingw-pthread.h" - fi -+ if test x$enable_threads = xmcf ; then -+ tm_file="${tm_file} i386/mingw-mcfgthread.h" -+ fi - tm_file="${tm_file} i386/mingw32.h" - # This makes the logic if mingw's or the w64 feature set has to be used - case ${target} in -diff --git a/gcc/config/i386/mingw-mcfgthread.h b/gcc/config/i386/mingw-mcfgthread.h -new file mode 100644 -index 00000000000..ec381a7798f ---- /dev/null -+++ b/gcc/config/i386/mingw-mcfgthread.h -@@ -0,0 +1 @@ -+#define TARGET_USE_MCFGTHREAD 1 -diff --git a/gcc/config/i386/mingw-w64.h b/gcc/config/i386/mingw-w64.h -index fe11333a2d1..cac85802f38 100644 ---- a/gcc/config/i386/mingw-w64.h -+++ b/gcc/config/i386/mingw-w64.h -@@ -48,7 +48,7 @@ along with GCC; see the file COPYING3. If not see - "%{mwindows:-lgdi32 -lcomdlg32} " \ - "%{fvtable-verify=preinit:-lvtv -lpsapi; \ - fvtable-verify=std:-lvtv -lpsapi} " \ -- "-ladvapi32 -lshell32 -luser32 -lkernel32" -+ LIB_MCFGTHREAD "-ladvapi32 -lshell32 -luser32 -lkernel32" - - #undef SPEC_32 - #undef SPEC_64 -diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h -index e04818966fa..7b75a372506 100644 ---- a/gcc/config/i386/mingw32.h -+++ b/gcc/config/i386/mingw32.h -@@ -32,6 +32,14 @@ along with GCC; see the file COPYING3. If not see - | MASK_STACK_PROBE | MASK_ALIGN_DOUBLE \ - | MASK_MS_BITFIELD_LAYOUT) - -+#ifndef TARGET_USE_MCFGTHREAD -+#define CPP_MCFGTHREAD() ((void)0) -+#define LIB_MCFGTHREAD "" -+#else -+#define CPP_MCFGTHREAD() (builtin_define("__USING_MCFGTHREAD__")) -+#define LIB_MCFGTHREAD " -lmcfgthread " -+#endif -+ - /* See i386/crtdll.h for an alternative definition. _INTEGRAL_MAX_BITS - is for compatibility with native compiler. */ - #define EXTRA_OS_CPP_BUILTINS() \ -@@ -50,6 +58,7 @@ along with GCC; see the file COPYING3. If not see - builtin_define_std ("WIN64"); \ - builtin_define ("_WIN64"); \ - } \ -+ CPP_MCFGTHREAD(); \ - } \ - while (0) - -@@ -93,7 +102,7 @@ along with GCC; see the file COPYING3. If not see - "%{mwindows:-lgdi32 -lcomdlg32} " \ - "%{fvtable-verify=preinit:-lvtv -lpsapi; \ - fvtable-verify=std:-lvtv -lpsapi} " \ -- "-ladvapi32 -lshell32 -luser32 -lkernel32" -+ LIB_MCFGTHREAD "-ladvapi32 -lshell32 -luser32 -lkernel32" - - /* Weak symbols do not get resolved if using a Windows dll import lib. - Make the unwind registration references strong undefs. */ -diff --git a/gcc/configure b/gcc/configure -index 954673c1c43..6b5667f1c70 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -11702,7 +11702,7 @@ case ${enable_threads} in - target_thread_file='single' - ;; - aix | dce | lynx | mipssde | posix | rtems | \ -- single | tpf | vxworks | win32) -+ single | tpf | vxworks | win32 | mcf) - target_thread_file=${enable_threads} - ;; - *) -diff --git a/gcc/configure.ac b/gcc/configure.ac -index 4c65d441e72..e6fa04ada4f 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1593,7 +1593,7 @@ case ${enable_threads} in - target_thread_file='single' - ;; - aix | dce | lynx | mipssde | posix | rtems | \ -- single | tpf | vxworks | win32) -+ single | tpf | vxworks | win32 | mcf) - target_thread_file=${enable_threads} - ;; - *) -diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt -index eab2765d7fd..f4058b6f4a2 100644 ---- a/libatomic/configure.tgt -+++ b/libatomic/configure.tgt -@@ -124,7 +124,7 @@ case "${target}" in - *-*-mingw*) - # OS support for atomic primitives. - case ${target_thread_file} in -- win32) -+ win32 | mcf) - config_path="${config_path} mingw" - ;; - posix) -diff --git a/libgcc/config.host b/libgcc/config.host -index 2b139b8befc..fb18d2a042e 100644 ---- a/libgcc/config.host -+++ b/libgcc/config.host -@@ -712,6 +712,9 @@ i[34567]86-*-mingw*) - posix) - tmake_file="i386/t-mingw-pthread $tmake_file" - ;; -+ mcf) -+ tmake_file="i386/t-mingw-mcfgthread $tmake_file" -+ ;; - esac - # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h - if test x$ac_cv_sjlj_exceptions = xyes; then -@@ -736,6 +739,9 @@ x86_64-*-mingw*) - posix) - tmake_file="i386/t-mingw-pthread $tmake_file" - ;; -+ mcf) -+ tmake_file="i386/t-mingw-mcfgthread $tmake_file" -+ ;; - esac - # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h - if test x$ac_cv_sjlj_exceptions = xyes; then -diff --git a/libgcc/config/i386/gthr-mcf.h b/libgcc/config/i386/gthr-mcf.h -new file mode 100644 -index 00000000000..5ea2908361f ---- /dev/null -+++ b/libgcc/config/i386/gthr-mcf.h -@@ -0,0 +1 @@ -+#include -diff --git a/libgcc/config/i386/t-mingw-mcfgthread b/libgcc/config/i386/t-mingw-mcfgthread -new file mode 100644 -index 00000000000..4b9b10e32d6 ---- /dev/null -+++ b/libgcc/config/i386/t-mingw-mcfgthread -@@ -0,0 +1,2 @@ -+SHLIB_PTHREAD_CFLAG = -+SHLIB_PTHREAD_LDFLAG = -lmcfgthread -diff --git a/libgcc/configure b/libgcc/configure -index e7d6c75a6f7..664d0f852c4 100644 ---- a/libgcc/configure -+++ b/libgcc/configure -@@ -5077,6 +5077,7 @@ case $target_thread_file in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - - -diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure -index b5ae4213f94..c484d3aee5f 100755 ---- a/libstdc++-v3/configure -+++ b/libstdc++-v3/configure -@@ -15177,6 +15177,7 @@ case $target_thread_file in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - - -diff --git a/libstdc++-v3/libsupc++/atexit_thread.cc b/libstdc++-v3/libsupc++/atexit_thread.cc -index e6520c1094f..3d6907796dd 100644 ---- a/libstdc++-v3/libsupc++/atexit_thread.cc -+++ b/libstdc++-v3/libsupc++/atexit_thread.cc -@@ -25,6 +25,22 @@ - #include - #include - #include "bits/gthr.h" -+ -+#ifdef __USING_MCFGTHREAD__ -+ -+#include -+ -+extern "C" int -+__cxxabiv1::__cxa_thread_atexit (void (*dtor)(void *), -+ void *obj, void *dso_handle) -+ _GLIBCXX_NOTHROW -+{ -+ return ::_MCFCRT_AtThreadExit((void (*)(_MCFCRT_STD intptr_t))dtor, (_MCFCRT_STD intptr_t)obj) ? 0 : -1; -+ (void)dso_handle; -+} -+ -+#else // __USING_MCFGTHREAD__ -+ - #ifdef _GLIBCXX_THREAD_ATEXIT_WIN32 - #define WIN32_LEAN_AND_MEAN - #include -@@ -163,3 +179,5 @@ __cxxabiv1::__cxa_thread_atexit (void (*dtor)(void *), void *obj, void */*dso_ha - } - - #endif /* _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL */ -+ -+#endif // __USING_MCFGTHREAD__ -diff --git a/libstdc++-v3/libsupc++/guard.cc b/libstdc++-v3/libsupc++/guard.cc -index 9b617998ffe..a441fdbb616 100644 ---- a/libstdc++-v3/libsupc++/guard.cc -+++ b/libstdc++-v3/libsupc++/guard.cc -@@ -28,6 +28,27 @@ - #include - #include - #include -+ -+#ifdef __USING_MCFGTHREAD__ -+ -+#include -+ -+namespace __cxxabiv1 { -+ -+extern "C" int __cxa_guard_acquire(__guard *g){ -+ return ::_MCFCRT_WaitForOnceFlagForever((::_MCFCRT_OnceFlag *)g) == ::_MCFCRT_kOnceResultInitial; -+} -+extern "C" void __cxa_guard_abort(__guard *g) throw() { -+ ::_MCFCRT_SignalOnceFlagAsAborted((::_MCFCRT_OnceFlag *)g); -+} -+extern "C" void __cxa_guard_release(__guard *g) throw() { -+ ::_MCFCRT_SignalOnceFlagAsFinished((::_MCFCRT_OnceFlag *)g); -+} -+ -+} -+ -+#else // __USING_MCFGTHREAD__ -+ - #include - #include - #if defined(__GTHREADS) && defined(__GTHREAD_HAS_COND) \ -@@ -424,3 +445,5 @@ namespace __cxxabiv1 - #endif - } - } -+ -+#endif --- -2.12.1 - diff --git a/pkgs/by-name/gc/gcc/patches/6/gnat-glibc234.patch b/pkgs/by-name/gc/gcc/patches/6/gnat-glibc234.patch deleted file mode 100644 index 2d29cd7..0000000 --- a/pkgs/by-name/gc/gcc/patches/6/gnat-glibc234.patch +++ /dev/null @@ -1,30 +0,0 @@ -Fix build with glibc 2.34. Adapted from: -https://github.com/gcc-mirror/gcc/commit/331763de7d4850702a0f67298f36017c73cdb103 ---- a/gcc/ada/init.c -+++ b/gcc/ada/init.c -@@ -579,12 +579,8 @@ - - #ifndef __ia64__ - #define HAVE_GNAT_ALTERNATE_STACK 1 --/* This must be in keeping with System.OS_Interface.Alternate_Stack_Size. -- It must be larger than MINSIGSTKSZ and hopefully near 2 * SIGSTKSZ. */ --# if 16 * 1024 < MINSIGSTKSZ --# error "__gnat_alternate_stack too small" --# endif --char __gnat_alternate_stack[16 * 1024]; -+/* This must be in keeping with System.OS_Interface.Alternate_Stack_Size. */ -+char __gnat_alternate_stack[32 * 1024]; - #endif - - #ifdef __XENO__ ---- a/gcc/ada/s-osinte-linux.ads -+++ b/gcc/ada/s-osinte-linux.ads -@@ -328,7 +328,7 @@ - oss : access stack_t) return int; - pragma Import (C, sigaltstack, "sigaltstack"); - -- Alternate_Stack_Size : constant := 16 * 1024; -+ Alternate_Stack_Size : constant := 32 * 1024; - -- This must be in keeping with init.c:__gnat_alternate_stack - - Alternate_Stack : aliased char_array (1 .. Alternate_Stack_Size); diff --git a/pkgs/by-name/gc/gcc/patches/6/gogcc-workaround-glibc-2.36.patch b/pkgs/by-name/gc/gcc/patches/6/gogcc-workaround-glibc-2.36.patch deleted file mode 100644 index bc11f99..0000000 --- a/pkgs/by-name/gc/gcc/patches/6/gogcc-workaround-glibc-2.36.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh -index dd456e907..24e607c7b 100755 ---- a/libgo/mksysinfo.sh -+++ b/libgo/mksysinfo.sh -@@ -148,9 +148,6 @@ cat > sysinfo.c < - #endif --#if defined(HAVE_LINUX_FS_H) --#include --#endif - #if defined(HAVE_LINUX_REBOOT_H) - #include - #endif diff --git a/pkgs/by-name/gc/gcc/patches/6/libstdc++-disable-flat_namespace.patch b/pkgs/by-name/gc/gcc/patches/6/libstdc++-disable-flat_namespace.patch deleted file mode 100644 index 5716444..0000000 --- a/pkgs/by-name/gc/gcc/patches/6/libstdc++-disable-flat_namespace.patch +++ /dev/null @@ -1,26 +0,0 @@ -Backported from GCC 7. - -diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host -index 304a7f5aff6..d1a189d93d0 100644 ---- a/libstdc++-v3/configure.host -+++ b/libstdc++-v3/configure.host -@@ -234,7 +234,7 @@ case "${host_os}" in - os_include_dir="os/newlib" - OPT_LDFLAGS="${OPT_LDFLAGS} \$(lt_host_flags)" - ;; -- darwin | darwin[1-7] | darwin[1-7].*) -+ darwin[1-7] | darwin[1-7].*) - # On Darwin, performance is improved if libstdc++ is single-module. - # Up to at least 10.3.7, -flat_namespace is required for proper - # treatment of coalesced symbols. -@@ -252,6 +252,10 @@ case "${host_os}" in - esac - os_include_dir="os/bsd/darwin" - ;; -+ darwin*) -+ # Post Darwin8, defaults should be sufficient. -+ os_include_dir="os/bsd/darwin" -+ ;; - *djgpp*) # leading * picks up "msdosdjgpp" - os_include_dir="os/djgpp" - error_constants_dir="os/djgpp" diff --git a/pkgs/by-name/gc/gcc/patches/7/0001-Fix-build-for-glibc-2.31.patch b/pkgs/by-name/gc/gcc/patches/7/0001-Fix-build-for-glibc-2.31.patch deleted file mode 100644 index d8aad14..0000000 --- a/pkgs/by-name/gc/gcc/patches/7/0001-Fix-build-for-glibc-2.31.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 2d03b6eaf823fc2db6a32b4a95e18f8a7474b47f Mon Sep 17 00:00:00 2001 -From: Maximilian Bosch -Date: Thu, 20 Feb 2020 01:56:42 +0100 -Subject: [PATCH] Fix build for glibc 2.31 - ---- - .../sanitizer_platform_limits_posix.cc | 5 +++-- - .../sanitizer_platform_limits_posix.h | 15 +-------------- - 2 files changed, 4 insertions(+), 16 deletions(-) - -diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc -index 97eae3fc7..4089d4695 100644 ---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc -+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc -@@ -1145,8 +1145,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid); - CHECK_SIZE_AND_OFFSET(ipc_perm, gid); - CHECK_SIZE_AND_OFFSET(ipc_perm, cuid); - CHECK_SIZE_AND_OFFSET(ipc_perm, cgid); --#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21) --/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */ -+#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31) -+/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit -+ on many architectures. */ - CHECK_SIZE_AND_OFFSET(ipc_perm, mode); - #endif - -diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h -index c13932283..3456fb2db 100644 ---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h -+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h -@@ -204,27 +204,14 @@ namespace __sanitizer { - unsigned __seq; - u64 __unused1; - u64 __unused2; --#elif defined(__mips__) || defined(__aarch64__) || defined(__s390x__) -- unsigned int mode; -- unsigned short __seq; -- unsigned short __pad1; -- unsigned long __unused1; -- unsigned long __unused2; - #elif defined(__sparc__) --# if defined(__arch64__) - unsigned mode; -- unsigned short __pad1; --# else -- unsigned short __pad1; -- unsigned short mode; - unsigned short __pad2; --# endif - unsigned short __seq; - unsigned long long __unused1; - unsigned long long __unused2; - #else -- unsigned short mode; -- unsigned short __pad1; -+ unsigned int mode; - unsigned short __seq; - unsigned short __pad2; - #if defined(__x86_64__) && !defined(_LP64) --- -2.25.0 - diff --git a/pkgs/by-name/gc/gcc/patches/7/Added-mcf-thread-model-support-from-mcfgthread.patch b/pkgs/by-name/gc/gcc/patches/7/Added-mcf-thread-model-support-from-mcfgthread.patch deleted file mode 100644 index 0c5d0ee..0000000 --- a/pkgs/by-name/gc/gcc/patches/7/Added-mcf-thread-model-support-from-mcfgthread.patch +++ /dev/null @@ -1,285 +0,0 @@ -From d3cb66e4751fcbd581b81a14a973de2d78fc02ad Mon Sep 17 00:00:00 2001 -From: Liu Hao -Date: Mon, 18 Apr 2016 11:50:55 +0800 -Subject: [PATCH] Added 'mcf' thread model support from mcfgthread. - -Signed-off-by: Liu Hao ---- - config/gthr.m4 | 1 + - gcc/config.gcc | 3 +++ - gcc/config/i386/mingw-mcfgthread.h | 1 + - gcc/config/i386/mingw-w64.h | 2 +- - gcc/config/i386/mingw32.h | 11 ++++++++++- - gcc/configure | 2 +- - gcc/configure.ac | 2 +- - libatomic/configure.tgt | 2 +- - libgcc/config.host | 6 ++++++ - libgcc/config/i386/gthr-mcf.h | 1 + - libgcc/config/i386/t-mingw-mcfgthread | 2 ++ - libgcc/configure | 1 + - libstdc++-v3/configure | 1 + - libstdc++-v3/libsupc++/atexit_thread.cc | 18 ++++++++++++++++++ - libstdc++-v3/libsupc++/guard.cc | 23 +++++++++++++++++++++++ - 15 files changed, 71 insertions(+), 5 deletions(-) - create mode 100644 gcc/config/i386/mingw-mcfgthread.h - create mode 100644 libgcc/config/i386/gthr-mcf.h - create mode 100644 libgcc/config/i386/t-mingw-mcfgthread - -diff --git a/config/gthr.m4 b/config/gthr.m4 -index 7b29f1f3327..82e21fe1709 100644 ---- a/config/gthr.m4 -+++ b/config/gthr.m4 -@@ -21,6 +21,7 @@ case $1 in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - AC_SUBST(thread_header) - ]) -diff --git a/gcc/config.gcc b/gcc/config.gcc -index 8f91197f34e..59db37cac04 100644 ---- a/gcc/config.gcc -+++ b/gcc/config.gcc -@@ -1719,6 +1719,9 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) - if test x$enable_threads = xposix ; then - tm_file="${tm_file} i386/mingw-pthread.h" - fi -+ if test x$enable_threads = xmcf ; then -+ tm_file="${tm_file} i386/mingw-mcfgthread.h" -+ fi - tm_file="${tm_file} i386/mingw32.h" - # This makes the logic if mingw's or the w64 feature set has to be used - case ${target} in -diff --git a/gcc/config/i386/mingw-mcfgthread.h b/gcc/config/i386/mingw-mcfgthread.h -new file mode 100644 -index 00000000000..ec381a7798f ---- /dev/null -+++ b/gcc/config/i386/mingw-mcfgthread.h -@@ -0,0 +1 @@ -+#define TARGET_USE_MCFGTHREAD 1 -diff --git a/gcc/config/i386/mingw-w64.h b/gcc/config/i386/mingw-w64.h -index 270ec0dd037..88966f79695 100644 ---- a/gcc/config/i386/mingw-w64.h -+++ b/gcc/config/i386/mingw-w64.h -@@ -48,7 +48,7 @@ along with GCC; see the file COPYING3. If not see - "%{mwindows:-lgdi32 -lcomdlg32} " \ - "%{fvtable-verify=preinit:-lvtv -lpsapi; \ - fvtable-verify=std:-lvtv -lpsapi} " \ -- "-ladvapi32 -lshell32 -luser32 -lkernel32" -+ LIB_MCFGTHREAD "-ladvapi32 -lshell32 -luser32 -lkernel32" - - #undef SPEC_32 - #undef SPEC_64 -diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h -index e5f014cb473..989cfbe894e 100644 ---- a/gcc/config/i386/mingw32.h -+++ b/gcc/config/i386/mingw32.h -@@ -32,6 +32,14 @@ along with GCC; see the file COPYING3. If not see - | MASK_STACK_PROBE | MASK_ALIGN_DOUBLE \ - | MASK_MS_BITFIELD_LAYOUT) - -+#ifndef TARGET_USE_MCFGTHREAD -+#define CPP_MCFGTHREAD() ((void)0) -+#define LIB_MCFGTHREAD "" -+#else -+#define CPP_MCFGTHREAD() (builtin_define("__USING_MCFGTHREAD__")) -+#define LIB_MCFGTHREAD " -lmcfgthread " -+#endif -+ - /* See i386/crtdll.h for an alternative definition. _INTEGRAL_MAX_BITS - is for compatibility with native compiler. */ - #define EXTRA_OS_CPP_BUILTINS() \ -@@ -50,6 +58,7 @@ along with GCC; see the file COPYING3. If not see - builtin_define_std ("WIN64"); \ - builtin_define ("_WIN64"); \ - } \ -+ CPP_MCFGTHREAD(); \ - } \ - while (0) - -@@ -93,7 +102,7 @@ along with GCC; see the file COPYING3. If not see - "%{mwindows:-lgdi32 -lcomdlg32} " \ - "%{fvtable-verify=preinit:-lvtv -lpsapi; \ - fvtable-verify=std:-lvtv -lpsapi} " \ -- "-ladvapi32 -lshell32 -luser32 -lkernel32" -+ LIB_MCFGTHREAD "-ladvapi32 -lshell32 -luser32 -lkernel32" - - /* Weak symbols do not get resolved if using a Windows dll import lib. - Make the unwind registration references strong undefs. */ -diff --git a/gcc/configure b/gcc/configure -index ea73b151a4e..317200e5620 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -11681,7 +11681,7 @@ case ${enable_threads} in - target_thread_file='single' - ;; - aix | dce | lynx | mipssde | posix | rtems | \ -- single | tpf | vxworks | win32) -+ single | tpf | vxworks | win32 | mcf) - target_thread_file=${enable_threads} - ;; - *) -diff --git a/gcc/configure.ac b/gcc/configure.ac -index 9d4c792a33f..d51899a5676 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1612,7 +1612,7 @@ case ${enable_threads} in - target_thread_file='single' - ;; - aix | dce | lynx | mipssde | posix | rtems | \ -- single | tpf | vxworks | win32) -+ single | tpf | vxworks | win32 | mcf) - target_thread_file=${enable_threads} - ;; - *) -diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt -index b8af3ab2546..73248438a8c 100644 ---- a/libatomic/configure.tgt -+++ b/libatomic/configure.tgt -@@ -125,7 +125,7 @@ case "${target}" in - *-*-mingw*) - # OS support for atomic primitives. - case ${target_thread_file} in -- win32) -+ win32 | mcf) - config_path="${config_path} mingw" - ;; - posix) -diff --git a/libgcc/config.host b/libgcc/config.host -index b279a6458f9..20d22f585da 100644 ---- a/libgcc/config.host -+++ b/libgcc/config.host -@@ -710,6 +710,9 @@ i[34567]86-*-mingw*) - posix) - tmake_file="i386/t-mingw-pthread $tmake_file" - ;; -+ mcf) -+ tmake_file="i386/t-mingw-mcfgthread $tmake_file" -+ ;; - esac - # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h - if test x$ac_cv_sjlj_exceptions = xyes; then -@@ -734,6 +737,9 @@ x86_64-*-mingw*) - posix) - tmake_file="i386/t-mingw-pthread $tmake_file" - ;; -+ mcf) -+ tmake_file="i386/t-mingw-mcfgthread $tmake_file" -+ ;; - esac - # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h - if test x$ac_cv_sjlj_exceptions = xyes; then -diff --git a/libgcc/config/i386/gthr-mcf.h b/libgcc/config/i386/gthr-mcf.h -new file mode 100644 -index 00000000000..5ea2908361f ---- /dev/null -+++ b/libgcc/config/i386/gthr-mcf.h -@@ -0,0 +1 @@ -+#include -diff --git a/libgcc/config/i386/t-mingw-mcfgthread b/libgcc/config/i386/t-mingw-mcfgthread -new file mode 100644 -index 00000000000..4b9b10e32d6 ---- /dev/null -+++ b/libgcc/config/i386/t-mingw-mcfgthread -@@ -0,0 +1,2 @@ -+SHLIB_PTHREAD_CFLAG = -+SHLIB_PTHREAD_LDFLAG = -lmcfgthread -diff --git a/libgcc/configure b/libgcc/configure -index 45c459788c3..8fc569ef16e 100644 ---- a/libgcc/configure -+++ b/libgcc/configure -@@ -5086,6 +5086,7 @@ case $target_thread_file in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - - -diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure -index 2406cb9d946..50e7e4ced89 100755 ---- a/libstdc++-v3/configure -+++ b/libstdc++-v3/configure -@@ -15182,6 +15182,7 @@ case $target_thread_file in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - - -diff --git a/libstdc++-v3/libsupc++/atexit_thread.cc b/libstdc++-v3/libsupc++/atexit_thread.cc -index 923a0707556..a55d85aad2d 100644 ---- a/libstdc++-v3/libsupc++/atexit_thread.cc -+++ b/libstdc++-v3/libsupc++/atexit_thread.cc -@@ -25,6 +25,22 @@ - #include - #include - #include "bits/gthr.h" -+ -+#ifdef __USING_MCFGTHREAD__ -+ -+#include -+ -+extern "C" int -+__cxxabiv1::__cxa_thread_atexit (void (*dtor)(void *), -+ void *obj, void *dso_handle) -+ _GLIBCXX_NOTHROW -+{ -+ return ::_MCFCRT_AtThreadExit((void (*)(_MCFCRT_STD intptr_t))dtor, (_MCFCRT_STD intptr_t)obj) ? 0 : -1; -+ (void)dso_handle; -+} -+ -+#else // __USING_MCFGTHREAD__ -+ - #ifdef _GLIBCXX_THREAD_ATEXIT_WIN32 - #define WIN32_LEAN_AND_MEAN - #include -@@ -167,3 +183,5 @@ __cxxabiv1::__cxa_thread_atexit (void (*dtor)(void *), void *obj, void */*dso_ha - } - - #endif /* _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL */ -+ -+#endif // __USING_MCFGTHREAD__ -diff --git a/libstdc++-v3/libsupc++/guard.cc b/libstdc++-v3/libsupc++/guard.cc -index 19953bc52f0..72fd5f26d5b 100644 ---- a/libstdc++-v3/libsupc++/guard.cc -+++ b/libstdc++-v3/libsupc++/guard.cc -@@ -28,6 +28,27 @@ - #include - #include - #include -+ -+#ifdef __USING_MCFGTHREAD__ -+ -+#include -+ -+namespace __cxxabiv1 { -+ -+extern "C" int __cxa_guard_acquire(__guard *g){ -+ return ::_MCFCRT_WaitForOnceFlagForever((::_MCFCRT_OnceFlag *)g) == ::_MCFCRT_kOnceResultInitial; -+} -+extern "C" void __cxa_guard_abort(__guard *g) throw() { -+ ::_MCFCRT_SignalOnceFlagAsAborted((::_MCFCRT_OnceFlag *)g); -+} -+extern "C" void __cxa_guard_release(__guard *g) throw() { -+ ::_MCFCRT_SignalOnceFlagAsFinished((::_MCFCRT_OnceFlag *)g); -+} -+ -+} -+ -+#else // __USING_MCFGTHREAD__ -+ - #include - #include - #include -@@ -425,3 +446,5 @@ namespace __cxxabiv1 - #endif - } - } -+ -+#endif --- -2.12.1 - diff --git a/pkgs/by-name/gc/gcc/patches/7/gcc8-asan-glibc-2.34.patch b/pkgs/by-name/gc/gcc/patches/7/gcc8-asan-glibc-2.34.patch deleted file mode 100644 index 5645b97..0000000 --- a/pkgs/by-name/gc/gcc/patches/7/gcc8-asan-glibc-2.34.patch +++ /dev/null @@ -1,70 +0,0 @@ -From ef195a39d0d3b929cc676302d074b42c25460601 Mon Sep 17 00:00:00 2001 -From: Jakub Jelinek -Date: Sat, 17 Apr 2021 11:27:14 +0200 -Subject: [PATCH] sanitizer: Fix asan against glibc 2.34 [PR100114] - -As mentioned in the PR, SIGSTKSZ is no longer a compile time constant in -glibc 2.34 and later, so -static const uptr kAltStackSize = SIGSTKSZ * 4; -needs dynamic initialization, but is used by a function called indirectly -from .preinit_array and therefore before the variable is constructed. -This results in using 0 size instead and all asan instrumented programs -die with: -==91==ERROR: AddressSanitizer failed to allocate 0x0 (0) bytes of SetAlternateSignalStack (error code: 22) - -Here is a cherry-pick from upstream to fix this. - -2021-04-17 Jakub Jelinek - - PR sanitizer/100114 - * sanitizer_common/sanitizer_posix_libcdep.cc: Cherry-pick - llvm-project revisions 82150606fb11d28813ae6da1101f5bda638165fe - and b93629dd335ffee2fc4b9b619bf86c3f9e6b0023. - -(cherry picked from commit 950bac27d63c1c2ac3a6ed867692d6a13f21feb3) ---- - .../sanitizer_common/sanitizer_posix_libcdep.cc | 13 ++++++++----- - 1 file changed, 8 insertions(+), 5 deletions(-) - -diff --git a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc -index 1a37118c299..066079b3954 100644 ---- a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc -+++ b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc -@@ -159,7 +159,11 @@ bool SupportsColoredOutput(fd_t fd) { - - #if !SANITIZER_GO - // TODO(glider): different tools may require different altstack size. --static const uptr kAltStackSize = SIGSTKSZ * 4; // SIGSTKSZ is not enough. -+static uptr GetAltStackSize() { -+ // SIGSTKSZ is not enough. -+ static const uptr kAltStackSize = SIGSTKSZ * 4; -+ return kAltStackSize; -+} - - void SetAlternateSignalStack() { - stack_t altstack, oldstack; -@@ -170,10 +174,9 @@ void SetAlternateSignalStack() { - // TODO(glider): the mapped stack should have the MAP_STACK flag in the - // future. It is not required by man 2 sigaltstack now (they're using - // malloc()). -- void* base = MmapOrDie(kAltStackSize, __func__); -- altstack.ss_sp = (char*) base; -+ altstack.ss_size = GetAltStackSize(); -+ altstack.ss_sp = (char *)MmapOrDie(altstack.ss_size, __func__); - altstack.ss_flags = 0; -- altstack.ss_size = kAltStackSize; - CHECK_EQ(0, sigaltstack(&altstack, nullptr)); - } - -@@ -181,7 +184,7 @@ void UnsetAlternateSignalStack() { - stack_t altstack, oldstack; - altstack.ss_sp = nullptr; - altstack.ss_flags = SS_DISABLE; -- altstack.ss_size = kAltStackSize; // Some sane value required on Darwin. -+ altstack.ss_size = GetAltStackSize(); // Some sane value required on Darwin. - CHECK_EQ(0, sigaltstack(&altstack, &oldstack)); - UnmapOrDie(oldstack.ss_sp, oldstack.ss_size); - } --- -2.27.0 - diff --git a/pkgs/by-name/gc/gcc/patches/7/riscv-no-relax.patch b/pkgs/by-name/gc/gcc/patches/7/riscv-no-relax.patch deleted file mode 100644 index 93d9cd1..0000000 --- a/pkgs/by-name/gc/gcc/patches/7/riscv-no-relax.patch +++ /dev/null @@ -1,109 +0,0 @@ -commit e7c570f37384d824cb9725f237920e9691e57269 -gpg: Signature made Tue 06 Mar 2018 04:52:46 PM PST -gpg: using RSA key 00CE76D1834960DFCE886DF8EF4CA1502CCBAB41 -gpg: issuer "palmer@dabbelt.com" -gpg: Good signature from "Palmer Dabbelt " [ultimate] -gpg: aka "Palmer Dabbelt " [ultimate] -Author: Palmer Dabbelt -Date: Thu Mar 1 12:01:06 2018 -0800 - - RISC-V: Add and document the "-mno-relax" option - - RISC-V relies on aggressive linker relaxation to get good code size. As - a result no text symbol addresses can be known until link time, which - means that alignment must be handled during the link. This alignment - pass is essentially just another linker relaxation, so this has the - unfortunate side effect that linker relaxation is required for - correctness on many RISC-V targets. - - The RISC-V assembler has supported an ".option norelax" for a long time - because there are situations in which linker relaxation is a bad idea -- - the canonical example is when trying to materialize the initial value of - the global pointer into a register, which would otherwise be relaxed to - a NOP. We've been relying on users who want to disable relaxation for - an entire link to pass "-Wl,--no-relax", but that still relies on the - linker relaxing R_RISCV_ALIGN to handle alignment despite it not being - strictly necessary. - - This patch adds a GCC option, "-mno-relax", that disable linker - relaxation by adding ".option norelax" to the top of every generated - assembly file. The assembler is smart enough to handle alignment at - assemble time for files that have never emitted a relaxable relocation, - so this is sufficient to really disable all relaxations in the linker, - which results in significantly faster link times for large objects. - - This also has the side effect of allowing toolchains that don't support - linker relaxation (LLVM and the Linux module loader) to function - correctly. Toolchains that don't support linker relaxation should - default to "-mno-relax" and error when presented with any R_RISCV_ALIGN - relocation as those need to be handled for correctness. - - gcc/ChangeLog - - 2018-03-01 Palmer Dabbelt - - * config/riscv/riscv.opt (mrelax): New option. - * config/riscv/riscv.c (riscv_file_start): Emit ".option - "norelax" when riscv_mrelax is disabled. - * doc/invoke.texi (RISC-V): Document "-mrelax" and "-mno-relax". - -diff --git a/gcc/config/riscv/riscv.c b/gcc/config/riscv/riscv.c -index c38f6c394d54..3e81874de232 100644 ---- a/gcc/config/riscv/riscv.c -+++ b/gcc/config/riscv/riscv.c -@@ -3979,6 +3979,11 @@ riscv_file_start (void) - - /* Instruct GAS to generate position-[in]dependent code. */ - fprintf (asm_out_file, "\t.option %spic\n", (flag_pic ? "" : "no")); -+ -+ /* If the user specifies "-mno-relax" on the command line then disable linker -+ relaxation in the assembler. */ -+ if (! riscv_mrelax) -+ fprintf (asm_out_file, "\t.option norelax\n"); - } - - /* Implement TARGET_ASM_OUTPUT_MI_THUNK. Generate rtl rather than asm text -diff --git a/gcc/config/riscv/riscv.opt b/gcc/config/riscv/riscv.opt -index 581a26bb5c1e..b37ac75d9bb4 100644 ---- a/gcc/config/riscv/riscv.opt -+++ b/gcc/config/riscv/riscv.opt -@@ -106,6 +106,11 @@ mexplicit-relocs - Target Report Mask(EXPLICIT_RELOCS) - Use %reloc() operators, rather than assembly macros, to load addresses. - -+mrelax -+Target Bool Var(riscv_mrelax) Init(1) -+Take advantage of linker relaxations to reduce the number of instructions -+required to materialize symbol addresses. -+ - Mask(64BIT) - - Mask(MUL) -diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi -index 8d366c626bae..deb48af2ecad 100644 ---- a/gcc/doc/invoke.texi -+++ b/gcc/doc/invoke.texi -@@ -1042,7 +1042,8 @@ See RS/6000 and PowerPC Options. - -msave-restore -mno-save-restore @gol - -mstrict-align -mno-strict-align @gol - -mcmodel=medlow -mcmodel=medany @gol ---mexplicit-relocs -mno-explicit-relocs @gol} -+-mexplicit-relocs -mno-explicit-relocs @gol -+-mrelax -mno-relax @gol} - - @emph{RL78 Options} - @gccoptlist{-msim -mmul=none -mmul=g13 -mmul=g14 -mallregs @gol -@@ -23102,6 +23103,12 @@ Use or do not use assembler relocation operators when dealing with symbolic - addresses. The alternative is to use assembler macros instead, which may - limit optimization. - -+@item -mrelax -+@itemx -mno-relax -+Take advantage of linker relaxations to reduce the number of instructions -+required to materialize symbol addresses. The default is to take advantage of -+linker relaxations. -+ - @end table - - @node RL78 Options - diff --git a/pkgs/by-name/gc/gcc/patches/7/riscv-pthread-reentrant.patch b/pkgs/by-name/gc/gcc/patches/7/riscv-pthread-reentrant.patch deleted file mode 100644 index c7527ff..0000000 --- a/pkgs/by-name/gc/gcc/patches/7/riscv-pthread-reentrant.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: gcc/config/riscv/linux.h -=================================================================== ---- a/gcc/config/riscv/linux.h (revision 257620) -+++ b/gcc/config/riscv/linux.h (revision 257621) -@@ -47,6 +47,8 @@ - - #define ICACHE_FLUSH_FUNC "__riscv_flush_icache" - -+#define CPP_SPEC "%{pthread:-D_REENTRANT}" -+ - #define LINK_SPEC "\ - -melf" XLEN_SPEC "lriscv \ - %{shared} \ diff --git a/pkgs/by-name/gc/gcc/patches/8/Added-mcf-thread-model-support-from-mcfgthread.patch b/pkgs/by-name/gc/gcc/patches/8/Added-mcf-thread-model-support-from-mcfgthread.patch deleted file mode 100644 index d9809e8..0000000 --- a/pkgs/by-name/gc/gcc/patches/8/Added-mcf-thread-model-support-from-mcfgthread.patch +++ /dev/null @@ -1,306 +0,0 @@ -From 86f2f767ddffd9f7c6f1470b987ae7b0d251b988 Mon Sep 17 00:00:00 2001 -From: Liu Hao -Date: Wed, 25 Apr 2018 21:54:19 +0800 -Subject: [PATCH] Added 'mcf' thread model support from mcfgthread. - -Signed-off-by: Liu Hao ---- - config/gthr.m4 | 1 + - gcc/config.gcc | 3 +++ - gcc/config/i386/mingw-mcfgthread.h | 1 + - gcc/config/i386/mingw-w64.h | 2 +- - gcc/config/i386/mingw32.h | 11 ++++++++++- - gcc/configure | 2 +- - gcc/configure.ac | 2 +- - libatomic/configure.tgt | 2 +- - libgcc/config.host | 6 ++++++ - libgcc/config/i386/gthr-mcf.h | 1 + - libgcc/config/i386/t-mingw-mcfgthread | 2 ++ - libgcc/configure | 1 + - libstdc++-v3/configure | 1 + - libstdc++-v3/libsupc++/atexit_thread.cc | 18 ++++++++++++++++++ - libstdc++-v3/libsupc++/guard.cc | 23 +++++++++++++++++++++++ - libstdc++-v3/src/c++11/thread.cc | 9 +++++++++ - 16 files changed, 80 insertions(+), 5 deletions(-) - create mode 100644 gcc/config/i386/mingw-mcfgthread.h - create mode 100644 libgcc/config/i386/gthr-mcf.h - create mode 100644 libgcc/config/i386/t-mingw-mcfgthread - -diff --git a/config/gthr.m4 b/config/gthr.m4 -index 7b29f1f3327..82e21fe1709 100644 ---- a/config/gthr.m4 -+++ b/config/gthr.m4 -@@ -21,6 +21,7 @@ case $1 in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - AC_SUBST(thread_header) - ]) -diff --git a/gcc/config.gcc b/gcc/config.gcc -index 46a9029acec..112c24e95a3 100644 ---- a/gcc/config.gcc -+++ b/gcc/config.gcc -@@ -1758,6 +1758,9 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) - if test x$enable_threads = xposix ; then - tm_file="${tm_file} i386/mingw-pthread.h" - fi -+ if test x$enable_threads = xmcf ; then -+ tm_file="${tm_file} i386/mingw-mcfgthread.h" -+ fi - tm_file="${tm_file} i386/mingw32.h" - # This makes the logic if mingw's or the w64 feature set has to be used - case ${target} in -diff --git a/gcc/config/i386/mingw-mcfgthread.h b/gcc/config/i386/mingw-mcfgthread.h -new file mode 100644 -index 00000000000..ec381a7798f ---- /dev/null -+++ b/gcc/config/i386/mingw-mcfgthread.h -@@ -0,0 +1 @@ -+#define TARGET_USE_MCFGTHREAD 1 -diff --git a/gcc/config/i386/mingw-w64.h b/gcc/config/i386/mingw-w64.h -index 484dc7a9e9f..a15bbeea500 100644 ---- a/gcc/config/i386/mingw-w64.h -+++ b/gcc/config/i386/mingw-w64.h -@@ -48,7 +48,7 @@ along with GCC; see the file COPYING3. If not see - "%{mwindows:-lgdi32 -lcomdlg32} " \ - "%{fvtable-verify=preinit:-lvtv -lpsapi; \ - fvtable-verify=std:-lvtv -lpsapi} " \ -- "-ladvapi32 -lshell32 -luser32 -lkernel32" -+ LIB_MCFGTHREAD "-ladvapi32 -lshell32 -luser32 -lkernel32" - - #undef SPEC_32 - #undef SPEC_64 -diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h -index 0612b87199a..76cea94f3b7 100644 ---- a/gcc/config/i386/mingw32.h -+++ b/gcc/config/i386/mingw32.h -@@ -32,6 +32,14 @@ along with GCC; see the file COPYING3. If not see - | MASK_STACK_PROBE | MASK_ALIGN_DOUBLE \ - | MASK_MS_BITFIELD_LAYOUT) - -+#ifndef TARGET_USE_MCFGTHREAD -+#define CPP_MCFGTHREAD() ((void)0) -+#define LIB_MCFGTHREAD "" -+#else -+#define CPP_MCFGTHREAD() (builtin_define("__USING_MCFGTHREAD__")) -+#define LIB_MCFGTHREAD " -lmcfgthread " -+#endif -+ - /* See i386/crtdll.h for an alternative definition. _INTEGRAL_MAX_BITS - is for compatibility with native compiler. */ - #define EXTRA_OS_CPP_BUILTINS() \ -@@ -50,6 +58,7 @@ along with GCC; see the file COPYING3. If not see - builtin_define_std ("WIN64"); \ - builtin_define ("_WIN64"); \ - } \ -+ CPP_MCFGTHREAD(); \ - } \ - while (0) - -@@ -93,7 +102,7 @@ along with GCC; see the file COPYING3. If not see - "%{mwindows:-lgdi32 -lcomdlg32} " \ - "%{fvtable-verify=preinit:-lvtv -lpsapi; \ - fvtable-verify=std:-lvtv -lpsapi} " \ -- "-ladvapi32 -lshell32 -luser32 -lkernel32" -+ LIB_MCFGTHREAD "-ladvapi32 -lshell32 -luser32 -lkernel32" - - /* Weak symbols do not get resolved if using a Windows dll import lib. - Make the unwind registration references strong undefs. */ -diff --git a/gcc/configure b/gcc/configure -index 6121e163259..52f0e00efe6 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -11693,7 +11693,7 @@ case ${enable_threads} in - target_thread_file='single' - ;; - aix | dce | lynx | mipssde | posix | rtems | \ -- single | tpf | vxworks | win32) -+ single | tpf | vxworks | win32 | mcf) - target_thread_file=${enable_threads} - ;; - *) -diff --git a/gcc/configure.ac b/gcc/configure.ac -index b066cc609e1..4ecdba88de7 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1612,7 +1612,7 @@ case ${enable_threads} in - target_thread_file='single' - ;; - aix | dce | lynx | mipssde | posix | rtems | \ -- single | tpf | vxworks | win32) -+ single | tpf | vxworks | win32 | mcf) - target_thread_file=${enable_threads} - ;; - *) -diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt -index ea8c34f8c71..23134ad7363 100644 ---- a/libatomic/configure.tgt -+++ b/libatomic/configure.tgt -@@ -145,7 +145,7 @@ case "${target}" in - *-*-mingw*) - # OS support for atomic primitives. - case ${target_thread_file} in -- win32) -+ win32 | mcf) - config_path="${config_path} mingw" - ;; - posix) -diff --git a/libgcc/config.host b/libgcc/config.host -index 11b4acaff55..9fbd38650bd 100644 ---- a/libgcc/config.host -+++ b/libgcc/config.host -@@ -737,6 +737,9 @@ i[34567]86-*-mingw*) - posix) - tmake_file="i386/t-mingw-pthread $tmake_file" - ;; -+ mcf) -+ tmake_file="i386/t-mingw-mcfgthread $tmake_file" -+ ;; - esac - # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h - if test x$ac_cv_sjlj_exceptions = xyes; then -@@ -761,6 +764,9 @@ x86_64-*-mingw*) - posix) - tmake_file="i386/t-mingw-pthread $tmake_file" - ;; -+ mcf) -+ tmake_file="i386/t-mingw-mcfgthread $tmake_file" -+ ;; - esac - # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h - if test x$ac_cv_sjlj_exceptions = xyes; then -diff --git a/libgcc/config/i386/gthr-mcf.h b/libgcc/config/i386/gthr-mcf.h -new file mode 100644 -index 00000000000..5ea2908361f ---- /dev/null -+++ b/libgcc/config/i386/gthr-mcf.h -@@ -0,0 +1 @@ -+#include -diff --git a/libgcc/config/i386/t-mingw-mcfgthread b/libgcc/config/i386/t-mingw-mcfgthread -new file mode 100644 -index 00000000000..4b9b10e32d6 ---- /dev/null -+++ b/libgcc/config/i386/t-mingw-mcfgthread -@@ -0,0 +1,2 @@ -+SHLIB_PTHREAD_CFLAG = -+SHLIB_PTHREAD_LDFLAG = -lmcfgthread -diff --git a/libgcc/configure b/libgcc/configure -index b2f3f870844..eff889dc3b3 100644 ---- a/libgcc/configure -+++ b/libgcc/configure -@@ -5451,6 +5451,7 @@ case $target_thread_file in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - - -diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure -index ba094be6f15..979a5ab9ace 100755 ---- a/libstdc++-v3/configure -+++ b/libstdc++-v3/configure -@@ -15187,6 +15187,7 @@ case $target_thread_file in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - - -diff --git a/libstdc++-v3/libsupc++/atexit_thread.cc b/libstdc++-v3/libsupc++/atexit_thread.cc -index de920d714c6..665fb74bd6b 100644 ---- a/libstdc++-v3/libsupc++/atexit_thread.cc -+++ b/libstdc++-v3/libsupc++/atexit_thread.cc -@@ -25,6 +25,22 @@ - #include - #include - #include "bits/gthr.h" -+ -+#ifdef __USING_MCFGTHREAD__ -+ -+#include -+ -+extern "C" int -+__cxxabiv1::__cxa_thread_atexit (void (*dtor)(void *), -+ void *obj, void *dso_handle) -+ _GLIBCXX_NOTHROW -+{ -+ return ::_MCFCRT_AtThreadExit((void (*)(_MCFCRT_STD intptr_t))dtor, (_MCFCRT_STD intptr_t)obj) ? 0 : -1; -+ (void)dso_handle; -+} -+ -+#else // __USING_MCFGTHREAD__ -+ - #ifdef _GLIBCXX_THREAD_ATEXIT_WIN32 - #define WIN32_LEAN_AND_MEAN - #include -@@ -167,3 +183,5 @@ __cxxabiv1::__cxa_thread_atexit (void (*dtor)(void *), void *obj, void */*dso_ha - } - - #endif /* _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL */ -+ -+#endif // __USING_MCFGTHREAD__ -diff --git a/libstdc++-v3/libsupc++/guard.cc b/libstdc++-v3/libsupc++/guard.cc -index 3a2ec3ad0d6..8b4cc96199b 100644 ---- a/libstdc++-v3/libsupc++/guard.cc -+++ b/libstdc++-v3/libsupc++/guard.cc -@@ -28,6 +28,27 @@ - #include - #include - #include -+ -+#ifdef __USING_MCFGTHREAD__ -+ -+#include -+ -+namespace __cxxabiv1 { -+ -+extern "C" int __cxa_guard_acquire(__guard *g){ -+ return ::_MCFCRT_WaitForOnceFlagForever((::_MCFCRT_OnceFlag *)g) == ::_MCFCRT_kOnceResultInitial; -+} -+extern "C" void __cxa_guard_abort(__guard *g) throw() { -+ ::_MCFCRT_SignalOnceFlagAsAborted((::_MCFCRT_OnceFlag *)g); -+} -+extern "C" void __cxa_guard_release(__guard *g) throw() { -+ ::_MCFCRT_SignalOnceFlagAsFinished((::_MCFCRT_OnceFlag *)g); -+} -+ -+} -+ -+#else // __USING_MCFGTHREAD__ -+ - #include - #include - #include -@@ -425,3 +446,5 @@ namespace __cxxabiv1 - #endif - } - } -+ -+#endif -diff --git a/libstdc++-v3/src/c++11/thread.cc b/libstdc++-v3/src/c++11/thread.cc -index 8238817c2e9..0c6a1f85f6f 100644 ---- a/libstdc++-v3/src/c++11/thread.cc -+++ b/libstdc++-v3/src/c++11/thread.cc -@@ -55,6 +55,15 @@ static inline int get_nprocs() - #elif defined(_GLIBCXX_USE_SC_NPROC_ONLN) - # include - # define _GLIBCXX_NPROCS sysconf(_SC_NPROC_ONLN) -+#elif defined(_WIN32) -+# include -+static inline int get_nprocs() -+{ -+ SYSTEM_INFO sysinfo; -+ GetSystemInfo(&sysinfo); -+ return (int)sysinfo.dwNumberOfProcessors; -+} -+# define _GLIBCXX_NPROCS get_nprocs() - #else - # define _GLIBCXX_NPROCS 0 - #endif --- -2.17.0 - diff --git a/pkgs/by-name/gc/gcc/patches/8/avr-gcc-8-darwin.patch b/pkgs/by-name/gc/gcc/patches/8/avr-gcc-8-darwin.patch deleted file mode 100644 index 3705ed9..0000000 --- a/pkgs/by-name/gc/gcc/patches/8/avr-gcc-8-darwin.patch +++ /dev/null @@ -1,16 +0,0 @@ -From https://gist.githubusercontent.com/DavidEGrayson/88bceb3f4e62f45725ecbb9248366300/raw/c1f515475aff1e1e3985569d9b715edb0f317648/gcc-11-arm-darwin.patch - -diff -ur a/gcc/config/host-darwin.c b/gcc/config/host-darwin.c ---- a/gcc/config/host-darwin.c 2021-04-27 03:00:13.000000000 -0700 -+++ b/gcc/config/host-darwin.c 2021-06-11 14:49:13.754000000 -0700 -@@ -22,6 +22,10 @@ - #include "coretypes.h" - #include "diagnostic-core.h" - #include "config/host-darwin.h" -+#include "hosthooks.h" -+#include "hosthooks-def.h" -+ -+const struct host_hooks host_hooks = HOST_HOOKS_INITIALIZER; - - /* Yes, this is really supposed to work. */ - /* This allows for a pagesize of 16384, which we have on Darwin20, but should \ No newline at end of file diff --git a/pkgs/by-name/gc/gcc/patches/8/gcc8-darwin-as-gstabs.patch b/pkgs/by-name/gc/gcc/patches/8/gcc8-darwin-as-gstabs.patch deleted file mode 100644 index 1ac870e..0000000 --- a/pkgs/by-name/gc/gcc/patches/8/gcc8-darwin-as-gstabs.patch +++ /dev/null @@ -1,96 +0,0 @@ -Backported from https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=b2cee5e1e89c8f939bc36fe9756befcb93d96982 - -diff -ur a/gcc/config/darwin.h b/gcc/config/darwin.h ---- a/gcc/config/darwin.h 2021-05-14 04:42:08.000000000 -0400 -+++ b/gcc/config/darwin.h 2023-11-06 08:53:27.629155053 -0500 -@@ -233,12 +233,18 @@ - - #define DSYMUTIL "\ndsymutil" - -+/* Spec that controls whether the debug linker is run automatically for -+ a link step. This needs to be done if there is a source file on the -+ command line which will result in a temporary object (and debug is -+ enabled). */ -+ - #define DSYMUTIL_SPEC \ - "%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\ - %{v} \ -- %{gdwarf-2:%{!gstabs*:%{%:debug-level-gt(0): -idsym}}}\ -- %{.c|.cc|.C|.cpp|.cp|.c++|.cxx|.CPP|.m|.mm: \ -- %{gdwarf-2:%{!gstabs*:%{%:debug-level-gt(0): -dsym}}}}}}}}}}}" -+ %{g*:%{!gstabs*:%{%:debug-level-gt(0): -idsym}}}\ -+ %{.c|.cc|.C|.cpp|.cp|.c++|.cxx|.CPP|.m|.mm|.s|.f|.f90|\ -+ .f95|.f03|.f77|.for|.F|.F90|.F95|.F03: \ -+ %{g*:%{!gstabs*:%{%:debug-level-gt(0): -dsym}}}}}}}}}}}" - - #define LINK_COMMAND_SPEC LINK_COMMAND_SPEC_A DSYMUTIL_SPEC - -@@ -469,18 +475,31 @@ - /* Default ASM_DEBUG_SPEC. Darwin's as cannot currently produce dwarf - debugging data. */ - -+#ifdef HAS_AS_STABS_DIRECTIVE -+/* We only pass a debug option to the assembler if that supports stabs, since -+ dwarf is not uniformly supported in the assemblers. */ - #define ASM_DEBUG_SPEC "%{g*:%{%:debug-level-gt(0):%{!gdwarf*:--gstabs}}}" -+#else -+#define ASM_DEBUG_SPEC "" -+#endif -+ -+#undef ASM_DEBUG_OPTION_SPEC -+#define ASM_DEBUG_OPTION_SPEC "" -+ - #define ASM_FINAL_SPEC \ - "%{gsplit-dwarf:%ngsplit-dwarf is not supported on this platform } %. */ - --/* Prefer DWARF2. */ --#undef PREFERRED_DEBUGGING_TYPE --#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG --#define DARWIN_PREFER_DWARF -- --/* Since DWARF2 is default, conditions for running dsymutil are different. */ --#undef DSYMUTIL_SPEC --#define DSYMUTIL_SPEC \ -- "%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\ -- %{v} \ -- %{g*:%{!gstabs*:%{%:debug-level-gt(0): -idsym}}}\ -- %{.c|.cc|.C|.cpp|.cp|.c++|.cxx|.CPP|.m|.mm|.s|.f|.f90|.f95|.f03|.f77|.for|.F|.F90|.F95|.F03: \ -- %{g*:%{!gstabs*:%{%:debug-level-gt(0): -dsym}}}}}}}}}}}" -- --/* Tell collect2 to run dsymutil for us as necessary. */ --#define COLLECT_RUN_DSYMUTIL 1 -- --/* Only ask as for debug data if the debug style is stabs (since as doesn't -- yet generate dwarf.) */ -- --#undef ASM_DEBUG_SPEC --#define ASM_DEBUG_SPEC "%{g*:%{%:debug-level-gt(0):%{gstabs:--gstabs}}}" -- - #undef ASM_OUTPUT_ALIGNED_COMMON - #define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \ - do { \ diff --git a/pkgs/by-name/gc/gcc/patches/9/Added-mcf-thread-model-support-from-mcfgthread.patch b/pkgs/by-name/gc/gcc/patches/9/Added-mcf-thread-model-support-from-mcfgthread.patch deleted file mode 100644 index d9809e8..0000000 --- a/pkgs/by-name/gc/gcc/patches/9/Added-mcf-thread-model-support-from-mcfgthread.patch +++ /dev/null @@ -1,306 +0,0 @@ -From 86f2f767ddffd9f7c6f1470b987ae7b0d251b988 Mon Sep 17 00:00:00 2001 -From: Liu Hao -Date: Wed, 25 Apr 2018 21:54:19 +0800 -Subject: [PATCH] Added 'mcf' thread model support from mcfgthread. - -Signed-off-by: Liu Hao ---- - config/gthr.m4 | 1 + - gcc/config.gcc | 3 +++ - gcc/config/i386/mingw-mcfgthread.h | 1 + - gcc/config/i386/mingw-w64.h | 2 +- - gcc/config/i386/mingw32.h | 11 ++++++++++- - gcc/configure | 2 +- - gcc/configure.ac | 2 +- - libatomic/configure.tgt | 2 +- - libgcc/config.host | 6 ++++++ - libgcc/config/i386/gthr-mcf.h | 1 + - libgcc/config/i386/t-mingw-mcfgthread | 2 ++ - libgcc/configure | 1 + - libstdc++-v3/configure | 1 + - libstdc++-v3/libsupc++/atexit_thread.cc | 18 ++++++++++++++++++ - libstdc++-v3/libsupc++/guard.cc | 23 +++++++++++++++++++++++ - libstdc++-v3/src/c++11/thread.cc | 9 +++++++++ - 16 files changed, 80 insertions(+), 5 deletions(-) - create mode 100644 gcc/config/i386/mingw-mcfgthread.h - create mode 100644 libgcc/config/i386/gthr-mcf.h - create mode 100644 libgcc/config/i386/t-mingw-mcfgthread - -diff --git a/config/gthr.m4 b/config/gthr.m4 -index 7b29f1f3327..82e21fe1709 100644 ---- a/config/gthr.m4 -+++ b/config/gthr.m4 -@@ -21,6 +21,7 @@ case $1 in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - AC_SUBST(thread_header) - ]) -diff --git a/gcc/config.gcc b/gcc/config.gcc -index 46a9029acec..112c24e95a3 100644 ---- a/gcc/config.gcc -+++ b/gcc/config.gcc -@@ -1758,6 +1758,9 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) - if test x$enable_threads = xposix ; then - tm_file="${tm_file} i386/mingw-pthread.h" - fi -+ if test x$enable_threads = xmcf ; then -+ tm_file="${tm_file} i386/mingw-mcfgthread.h" -+ fi - tm_file="${tm_file} i386/mingw32.h" - # This makes the logic if mingw's or the w64 feature set has to be used - case ${target} in -diff --git a/gcc/config/i386/mingw-mcfgthread.h b/gcc/config/i386/mingw-mcfgthread.h -new file mode 100644 -index 00000000000..ec381a7798f ---- /dev/null -+++ b/gcc/config/i386/mingw-mcfgthread.h -@@ -0,0 +1 @@ -+#define TARGET_USE_MCFGTHREAD 1 -diff --git a/gcc/config/i386/mingw-w64.h b/gcc/config/i386/mingw-w64.h -index 484dc7a9e9f..a15bbeea500 100644 ---- a/gcc/config/i386/mingw-w64.h -+++ b/gcc/config/i386/mingw-w64.h -@@ -48,7 +48,7 @@ along with GCC; see the file COPYING3. If not see - "%{mwindows:-lgdi32 -lcomdlg32} " \ - "%{fvtable-verify=preinit:-lvtv -lpsapi; \ - fvtable-verify=std:-lvtv -lpsapi} " \ -- "-ladvapi32 -lshell32 -luser32 -lkernel32" -+ LIB_MCFGTHREAD "-ladvapi32 -lshell32 -luser32 -lkernel32" - - #undef SPEC_32 - #undef SPEC_64 -diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h -index 0612b87199a..76cea94f3b7 100644 ---- a/gcc/config/i386/mingw32.h -+++ b/gcc/config/i386/mingw32.h -@@ -32,6 +32,14 @@ along with GCC; see the file COPYING3. If not see - | MASK_STACK_PROBE | MASK_ALIGN_DOUBLE \ - | MASK_MS_BITFIELD_LAYOUT) - -+#ifndef TARGET_USE_MCFGTHREAD -+#define CPP_MCFGTHREAD() ((void)0) -+#define LIB_MCFGTHREAD "" -+#else -+#define CPP_MCFGTHREAD() (builtin_define("__USING_MCFGTHREAD__")) -+#define LIB_MCFGTHREAD " -lmcfgthread " -+#endif -+ - /* See i386/crtdll.h for an alternative definition. _INTEGRAL_MAX_BITS - is for compatibility with native compiler. */ - #define EXTRA_OS_CPP_BUILTINS() \ -@@ -50,6 +58,7 @@ along with GCC; see the file COPYING3. If not see - builtin_define_std ("WIN64"); \ - builtin_define ("_WIN64"); \ - } \ -+ CPP_MCFGTHREAD(); \ - } \ - while (0) - -@@ -93,7 +102,7 @@ along with GCC; see the file COPYING3. If not see - "%{mwindows:-lgdi32 -lcomdlg32} " \ - "%{fvtable-verify=preinit:-lvtv -lpsapi; \ - fvtable-verify=std:-lvtv -lpsapi} " \ -- "-ladvapi32 -lshell32 -luser32 -lkernel32" -+ LIB_MCFGTHREAD "-ladvapi32 -lshell32 -luser32 -lkernel32" - - /* Weak symbols do not get resolved if using a Windows dll import lib. - Make the unwind registration references strong undefs. */ -diff --git a/gcc/configure b/gcc/configure -index 6121e163259..52f0e00efe6 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -11693,7 +11693,7 @@ case ${enable_threads} in - target_thread_file='single' - ;; - aix | dce | lynx | mipssde | posix | rtems | \ -- single | tpf | vxworks | win32) -+ single | tpf | vxworks | win32 | mcf) - target_thread_file=${enable_threads} - ;; - *) -diff --git a/gcc/configure.ac b/gcc/configure.ac -index b066cc609e1..4ecdba88de7 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1612,7 +1612,7 @@ case ${enable_threads} in - target_thread_file='single' - ;; - aix | dce | lynx | mipssde | posix | rtems | \ -- single | tpf | vxworks | win32) -+ single | tpf | vxworks | win32 | mcf) - target_thread_file=${enable_threads} - ;; - *) -diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt -index ea8c34f8c71..23134ad7363 100644 ---- a/libatomic/configure.tgt -+++ b/libatomic/configure.tgt -@@ -145,7 +145,7 @@ case "${target}" in - *-*-mingw*) - # OS support for atomic primitives. - case ${target_thread_file} in -- win32) -+ win32 | mcf) - config_path="${config_path} mingw" - ;; - posix) -diff --git a/libgcc/config.host b/libgcc/config.host -index 11b4acaff55..9fbd38650bd 100644 ---- a/libgcc/config.host -+++ b/libgcc/config.host -@@ -737,6 +737,9 @@ i[34567]86-*-mingw*) - posix) - tmake_file="i386/t-mingw-pthread $tmake_file" - ;; -+ mcf) -+ tmake_file="i386/t-mingw-mcfgthread $tmake_file" -+ ;; - esac - # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h - if test x$ac_cv_sjlj_exceptions = xyes; then -@@ -761,6 +764,9 @@ x86_64-*-mingw*) - posix) - tmake_file="i386/t-mingw-pthread $tmake_file" - ;; -+ mcf) -+ tmake_file="i386/t-mingw-mcfgthread $tmake_file" -+ ;; - esac - # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h - if test x$ac_cv_sjlj_exceptions = xyes; then -diff --git a/libgcc/config/i386/gthr-mcf.h b/libgcc/config/i386/gthr-mcf.h -new file mode 100644 -index 00000000000..5ea2908361f ---- /dev/null -+++ b/libgcc/config/i386/gthr-mcf.h -@@ -0,0 +1 @@ -+#include -diff --git a/libgcc/config/i386/t-mingw-mcfgthread b/libgcc/config/i386/t-mingw-mcfgthread -new file mode 100644 -index 00000000000..4b9b10e32d6 ---- /dev/null -+++ b/libgcc/config/i386/t-mingw-mcfgthread -@@ -0,0 +1,2 @@ -+SHLIB_PTHREAD_CFLAG = -+SHLIB_PTHREAD_LDFLAG = -lmcfgthread -diff --git a/libgcc/configure b/libgcc/configure -index b2f3f870844..eff889dc3b3 100644 ---- a/libgcc/configure -+++ b/libgcc/configure -@@ -5451,6 +5451,7 @@ case $target_thread_file in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - - -diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure -index ba094be6f15..979a5ab9ace 100755 ---- a/libstdc++-v3/configure -+++ b/libstdc++-v3/configure -@@ -15187,6 +15187,7 @@ case $target_thread_file in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - - -diff --git a/libstdc++-v3/libsupc++/atexit_thread.cc b/libstdc++-v3/libsupc++/atexit_thread.cc -index de920d714c6..665fb74bd6b 100644 ---- a/libstdc++-v3/libsupc++/atexit_thread.cc -+++ b/libstdc++-v3/libsupc++/atexit_thread.cc -@@ -25,6 +25,22 @@ - #include - #include - #include "bits/gthr.h" -+ -+#ifdef __USING_MCFGTHREAD__ -+ -+#include -+ -+extern "C" int -+__cxxabiv1::__cxa_thread_atexit (void (*dtor)(void *), -+ void *obj, void *dso_handle) -+ _GLIBCXX_NOTHROW -+{ -+ return ::_MCFCRT_AtThreadExit((void (*)(_MCFCRT_STD intptr_t))dtor, (_MCFCRT_STD intptr_t)obj) ? 0 : -1; -+ (void)dso_handle; -+} -+ -+#else // __USING_MCFGTHREAD__ -+ - #ifdef _GLIBCXX_THREAD_ATEXIT_WIN32 - #define WIN32_LEAN_AND_MEAN - #include -@@ -167,3 +183,5 @@ __cxxabiv1::__cxa_thread_atexit (void (*dtor)(void *), void *obj, void */*dso_ha - } - - #endif /* _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL */ -+ -+#endif // __USING_MCFGTHREAD__ -diff --git a/libstdc++-v3/libsupc++/guard.cc b/libstdc++-v3/libsupc++/guard.cc -index 3a2ec3ad0d6..8b4cc96199b 100644 ---- a/libstdc++-v3/libsupc++/guard.cc -+++ b/libstdc++-v3/libsupc++/guard.cc -@@ -28,6 +28,27 @@ - #include - #include - #include -+ -+#ifdef __USING_MCFGTHREAD__ -+ -+#include -+ -+namespace __cxxabiv1 { -+ -+extern "C" int __cxa_guard_acquire(__guard *g){ -+ return ::_MCFCRT_WaitForOnceFlagForever((::_MCFCRT_OnceFlag *)g) == ::_MCFCRT_kOnceResultInitial; -+} -+extern "C" void __cxa_guard_abort(__guard *g) throw() { -+ ::_MCFCRT_SignalOnceFlagAsAborted((::_MCFCRT_OnceFlag *)g); -+} -+extern "C" void __cxa_guard_release(__guard *g) throw() { -+ ::_MCFCRT_SignalOnceFlagAsFinished((::_MCFCRT_OnceFlag *)g); -+} -+ -+} -+ -+#else // __USING_MCFGTHREAD__ -+ - #include - #include - #include -@@ -425,3 +446,5 @@ namespace __cxxabiv1 - #endif - } - } -+ -+#endif -diff --git a/libstdc++-v3/src/c++11/thread.cc b/libstdc++-v3/src/c++11/thread.cc -index 8238817c2e9..0c6a1f85f6f 100644 ---- a/libstdc++-v3/src/c++11/thread.cc -+++ b/libstdc++-v3/src/c++11/thread.cc -@@ -55,6 +55,15 @@ static inline int get_nprocs() - #elif defined(_GLIBCXX_USE_SC_NPROC_ONLN) - # include - # define _GLIBCXX_NPROCS sysconf(_SC_NPROC_ONLN) -+#elif defined(_WIN32) -+# include -+static inline int get_nprocs() -+{ -+ SYSTEM_INFO sysinfo; -+ GetSystemInfo(&sysinfo); -+ return (int)sysinfo.dwNumberOfProcessors; -+} -+# define _GLIBCXX_NPROCS get_nprocs() - #else - # define _GLIBCXX_NPROCS 0 - #endif --- -2.17.0 - diff --git a/pkgs/by-name/gc/gcc/patches/9/fix-struct-redefinition-on-glibc-2.36.patch b/pkgs/by-name/gc/gcc/patches/9/fix-struct-redefinition-on-glibc-2.36.patch deleted file mode 100644 index 5b4abfd..0000000 --- a/pkgs/by-name/gc/gcc/patches/9/fix-struct-redefinition-on-glibc-2.36.patch +++ /dev/null @@ -1,31 +0,0 @@ -Derived from ../11/fix-struct-redefinition-on-glibc-2.36.patch (upstream commit d2356ebb0084a0d80dbfe33040c9afe938c15d19) - -diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc -index e8fce8a02..cb1ac806e 100644 ---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc -+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc -@@ -65,7 +65,9 @@ - #include - #include - #include -+#if SANITIZER_ANDROID - #include -+#endif - #include - #include - #include -@@ -846,10 +848,10 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); - unsigned IOCTL_EVIOCGPROP = IOCTL_NOT_PRESENT; - unsigned IOCTL_EVIOCSKEYCODE_V2 = IOCTL_NOT_PRESENT; - #endif -- unsigned IOCTL_FS_IOC_GETFLAGS = FS_IOC_GETFLAGS; -- unsigned IOCTL_FS_IOC_GETVERSION = FS_IOC_GETVERSION; -- unsigned IOCTL_FS_IOC_SETFLAGS = FS_IOC_SETFLAGS; -- unsigned IOCTL_FS_IOC_SETVERSION = FS_IOC_SETVERSION; -+ unsigned IOCTL_FS_IOC_GETFLAGS = _IOR('f', 1, long); -+ unsigned IOCTL_FS_IOC_GETVERSION = _IOR('v', 1, long); -+ unsigned IOCTL_FS_IOC_SETFLAGS = _IOW('f', 2, long); -+ unsigned IOCTL_FS_IOC_SETVERSION = _IOW('v', 2, long); - unsigned IOCTL_GIO_CMAP = GIO_CMAP; - unsigned IOCTL_GIO_FONT = GIO_FONT; - unsigned IOCTL_GIO_UNIMAP = GIO_UNIMAP; diff --git a/pkgs/by-name/gc/gcc/patches/9/gcc9-darwin-as-gstabs.patch b/pkgs/by-name/gc/gcc/patches/9/gcc9-darwin-as-gstabs.patch deleted file mode 100644 index 454139c..0000000 --- a/pkgs/by-name/gc/gcc/patches/9/gcc9-darwin-as-gstabs.patch +++ /dev/null @@ -1,99 +0,0 @@ -Backported from https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=b2cee5e1e89c8f939bc36fe9756befcb93d96982 - -diff -ur a/gcc/config/darwin.h b/gcc/config/darwin.h ---- a/gcc/config/darwin.h 2022-05-27 03:21:10.947379000 -0400 -+++ b/gcc/config/darwin.h 2023-11-06 12:18:27.209236423 -0500 -@@ -230,12 +230,18 @@ - - #define DSYMUTIL "\ndsymutil" - -+/* Spec that controls whether the debug linker is run automatically for -+ a link step. This needs to be done if there is a source file on the -+ command line which will result in a temporary object (and debug is -+ enabled). */ -+ - #define DSYMUTIL_SPEC \ - "%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\ - %{v} \ -- %{gdwarf-2:%{!gstabs*:%{%:debug-level-gt(0): -idsym}}}\ -- %{.c|.cc|.C|.cpp|.cp|.c++|.cxx|.CPP|.m|.mm: \ -- %{gdwarf-2:%{!gstabs*:%{%:debug-level-gt(0): -dsym}}}}}}}}}}}" -+ %{g*:%{!gstabs*:%{%:debug-level-gt(0): -idsym}}}\ -+ %{.c|.cc|.C|.cpp|.cp|.c++|.cxx|.CPP|.m|.mm|.s|.f|.f90|\ -+ .f95|.f03|.f77|.for|.F|.F90|.F95|.F03: \ -+ %{g*:%{!gstabs*:%{%:debug-level-gt(0): -dsym}}}}}}}}}}}" - - #define LINK_COMMAND_SPEC LINK_COMMAND_SPEC_A DSYMUTIL_SPEC - -@@ -463,21 +469,31 @@ - %{Zforce_cpusubtype_ALL:-force_cpusubtype_ALL} \ - %{static}" ASM_MMACOSX_VERSION_MIN_SPEC - --/* Default ASM_DEBUG_SPEC. Darwin's as cannot currently produce dwarf -- debugging data. */ -- -+#ifdef HAS_AS_STABS_DIRECTIVE -+/* We only pass a debug option to the assembler if that supports stabs, since -+ dwarf is not uniformly supported in the assemblers. */ - #define ASM_DEBUG_SPEC "%{g*:%{%:debug-level-gt(0):%{!gdwarf*:--gstabs}}}" -+#else -+#define ASM_DEBUG_SPEC "" -+#endif -+ -+#undef ASM_DEBUG_OPTION_SPEC -+#define ASM_DEBUG_OPTION_SPEC "" -+ - #define ASM_FINAL_SPEC \ - "%{gsplit-dwarf:%ngsplit-dwarf is not supported on this platform} %. */ - --/* Prefer DWARF2. */ --#undef PREFERRED_DEBUGGING_TYPE --#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG --#define DARWIN_PREFER_DWARF -- --/* Since DWARF2 is default, conditions for running dsymutil are different. */ --#undef DSYMUTIL_SPEC --#define DSYMUTIL_SPEC \ -- "%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\ -- %{v} \ -- %{g*:%{!gstabs*:%{%:debug-level-gt(0): -idsym}}}\ -- %{.c|.cc|.C|.cpp|.cp|.c++|.cxx|.CPP|.m|.mm|.s|.f|.f90|.f95|.f03|.f77|.for|.F|.F90|.F95|.F03: \ -- %{g*:%{!gstabs*:%{%:debug-level-gt(0): -dsym}}}}}}}}}}}" -- --/* Tell collect2 to run dsymutil for us as necessary. */ --#define COLLECT_RUN_DSYMUTIL 1 -- --/* Only ask as for debug data if the debug style is stabs (since as doesn't -- yet generate dwarf.) */ -- --#undef ASM_DEBUG_SPEC --#define ASM_DEBUG_SPEC "%{g*:%{%:debug-level-gt(0):%{gstabs:--gstabs}}}" -- - #undef ASM_OUTPUT_ALIGNED_COMMON - #define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \ - do { \ diff --git a/pkgs/by-name/gc/gcc/patches/ada-cctools-as-detection-configure.patch b/pkgs/by-name/gc/gcc/patches/ada-cctools-as-detection-configure.patch deleted file mode 100644 index e6b5b36..0000000 --- a/pkgs/by-name/gc/gcc/patches/ada-cctools-as-detection-configure.patch +++ /dev/null @@ -1,33 +0,0 @@ -As originally implemented, the error message check -described in the configure script -breaks detection of Ada compiler support on x86_64-darwin, -because the assembler in the version of cctools currently used -unconditionally emits a deprecation message to stdout, -with no way to disable it. - -Furthermore, GCC 3.4 was the minimum version needed to build GNAT -as far back as GCC 4.4 (see the GCC git repo, tags/releases/gcc-4.4.0, -gcc/doc/install.texi, lines 2052-2053 [1]); -GCC 3.4 is newer than any of the broken GCC versions -that the configure script works around -(see the part of the comment in the configure script -before the context in the patch below), -and GCC 4.4 is older than any GCC that Nix currently packages (GCC 4.8). - -We therefore choose to not check for error messages, -and just check for an error code. -There's no harm in still checking for an object file being created, though. - -[1]: https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/doc/install.texi;h=6bdfbece981f7fb6c26da672d45e5d3ba7879c69;hb=b7fc996728085c0591ea7c5d0e1c84a8f6a29bd8#l2052 ---- a/configure 2022-08-19 18:09:52.000000000 +1000 -+++ b/configure 2022-12-26 17:30:49.000000000 +1100 -@@ -5622,8 +5622,7 @@ - # Other compilers, like HP Tru64 UNIX cc, exit successfully when - # given a .adb file, but produce no object file. So we must check - # if an object file was really produced to guard against this. --errors=`(${CC} -c conftest.adb) 2>&1 || echo failure` --if test x"$errors" = x && test -f conftest.$ac_objext; then -+if ${CC} -c conftest.adb && test -f conftest.$ac_objext; then - acx_cv_cc_gcc_supports_ada=yes - fi - rm -f conftest.* diff --git a/pkgs/by-name/gc/gcc/patches/clang-genconditions.patch b/pkgs/by-name/gc/gcc/patches/clang-genconditions.patch deleted file mode 100644 index 655afd2..0000000 --- a/pkgs/by-name/gc/gcc/patches/clang-genconditions.patch +++ /dev/null @@ -1,34 +0,0 @@ -From https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92061#c5 - ---- a/gcc/genconditions.c 2019-01-01 12:37:19.064943662 +0100 -+++ b/gcc/genconditions.c 2019-10-11 10:57:11.464595789 +0200 -@@ -57,8 +57,9 @@ write_header (void) - \n\ - /* It is necessary, but not entirely safe, to include the headers below\n\ - in a generator program. As a defensive measure, don't do so when the\n\ -- table isn't going to have anything in it. */\n\ --#if GCC_VERSION >= 3001\n\ -+ table isn't going to have anything in it.\n\ -+ Clang 9 is buggy and doesn't handle __builtin_constant_p correctly. */\n\ -+#if GCC_VERSION >= 3001 && __clang_major__ < 9\n\ - \n\ - /* Do not allow checking to confuse the issue. */\n\ - #undef CHECKING_P\n\ -@@ -170,7 +171,7 @@ struct c_test\n\ - vary at run time. It works in 3.0.1 and later; 3.0 only when not\n\ - optimizing. */\n\ - \n\ --#if GCC_VERSION >= 3001\n\ -+#if GCC_VERSION >= 3001 && __clang_major__ < 9\n\ - static const struct c_test insn_conditions[] = {\n"); - - traverse_c_tests (write_one_condition, 0); -@@ -191,7 +192,7 @@ write_writer (void) - " unsigned int i;\n" - " const char *p;\n" - " puts (\"(define_conditions [\");\n" -- "#if GCC_VERSION >= 3001\n" -+ "#if GCC_VERSION >= 3001 && __clang_major__ < 9\n" - " for (i = 0; i < ARRAY_SIZE (insn_conditions); i++)\n" - " {\n" - " printf (\" (%d \\\"\", insn_conditions[i].value);\n" diff --git a/pkgs/by-name/gc/gcc/patches/default.nix b/pkgs/by-name/gc/gcc/patches/default.nix deleted file mode 100644 index 8f0c8f6..0000000 --- a/pkgs/by-name/gc/gcc/patches/default.nix +++ /dev/null @@ -1,338 +0,0 @@ -{ 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 - atLeast13 = lib.versionAtLeast version "13"; - 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"; - is13 = majorVersion == "13"; - is12 = majorVersion == "12"; - is11 = majorVersion == "11"; - is10 = majorVersion == "10"; - 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; -in - -# -# Patches below are organized into three general categories: -# 1. Patches relevant to gcc>=12 on every platform -# 2. Patches relevant to gcc>=12 on specific platforms -# 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 []) -) -++ optional (atLeast12 && langAda) ./gnat-cflags-11.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 - -# backport fixes to build gccgo with musl libc -++ optionals (stdenv.hostPlatform.isMusl && langGo && atLeast12) [ - (fetchpatch { - excludes = [ "gcc/go/gofrontend/MERGE" ]; - url = "https://github.com/gcc-mirror/gcc/commit/cf79b1117bd177d3d4c6ed24b6fa243c3628ac2d.diff"; - hash = "sha256-mS5ZiYi5D8CpGXrWg3tXlbhp4o86ew1imCTwaHLfl+I="; - }) - (fetchpatch { - excludes = [ "gcc/go/gofrontend/MERGE" ]; - url = "https://github.com/gcc-mirror/gcc/commit/7f195a2270910a6ed08bd76e3a16b0a6503f9faf.diff"; - hash = "sha256-Ze/cFM0dQofKH00PWPDoklXUlwWhwA1nyTuiDAZ6FKo="; - }) - (fetchpatch { - excludes = [ "gcc/go/gofrontend/MERGE" ]; - url = "https://github.com/gcc-mirror/gcc/commit/762fd5e5547e464e25b4bee435db6df4eda0de90.diff"; - hash = "sha256-o28upwTcHAnHG2Iq0OewzwSBEhHs+XpBGdIfZdT81pk="; - }) - (fetchpatch { - excludes = [ "gcc/go/gofrontend/MERGE" ]; - url = "https://github.com/gcc-mirror/gcc/commit/e73d9fcafbd07bc3714fbaf8a82db71d50015c92.diff"; - hash = "sha256-1SjYCVHLEUihdON2TOC3Z2ufM+jf2vH0LvYtZL+c1Fo="; - }) - (fetchpatch { - excludes = [ "gcc/go/gofrontend/MERGE" ]; - url = "https://github.com/gcc-mirror/gcc/commit/b6c6a3d64f2e4e9347733290aca3c75898c44b2e.diff"; - hash = "sha256-RycJ3YCHd3MXtYFjxP0zY2Wuw7/C4bWoBAQtTKJZPOQ="; - }) - (fetchpatch { - excludes = [ "gcc/go/gofrontend/MERGE" ]; - url = "https://github.com/gcc-mirror/gcc/commit/2b1a604a9b28fbf4f382060bebd04adb83acc2f9.diff"; - hash = "sha256-WiBQG0Xbk75rHk+AMDvsbrm+dc7lDH0EONJXSdEeMGE="; - }) - (fetchpatch { - url = "https://github.com/gcc-mirror/gcc/commit/c86b726c048eddc1be320c0bf64a897658bee13d.diff"; - hash = "sha256-QSIlqDB6JRQhbj/c3ejlmbfWz9l9FurdSWxpwDebnlI="; - }) -] - - -## 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 []) - -# 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 []) - - -## 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") - - - - -############################################################################## -## -## 3. Patches relevant only to gcc<12 -## -## Above this point are patches which might potentially be applied -## to gcc version 12 or newer. Below this point are patches which -## will *only* be used for gcc versions older than gcc12. -## -############################################################################## - - - - -## gcc 11.0 and older ############################################################################## - -# libgcc’s `configure` script misdetects aarch64-darwin, resulting in an invalid deployment target. -++ optional (is11 && stdenv.isDarwin && stdenv.isAarch64) ./11/libgcc-aarch64-darwin-detection.patch - -# 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="; -}) - -# Fix undefined symbol errors when building older versions with clang -++ optional (!atLeast11 && stdenv.cc.isClang && stdenv.hostPlatform.isDarwin) ./clang-genconditions.patch - - -## gcc 9.0 and older ############################################################################## - -++ optional (majorVersion == "9") ./9/fix-struct-redefinition-on-glibc-2.36.patch -++ optional (atLeast7 && !atLeast10 && targetPlatform.isNetBSD) ./libstdc++-netbsd-ctypes.patch - -# Make Darwin bootstrap respect whether the assembler supports `--gstabs`, -# 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 -++ optional (atLeast49 && !is49 && !atLeast9) ./libsanitizer-no-cyclades-9.patch -++ optional (is7 || is8) ./9/fix-struct-redefinition-on-glibc-2.36.patch - -# Make Darwin bootstrap respect whether the assembler supports `--gstabs`, -# which is not supported by the clang integrated assembler used by default on Darwin. -++ optional (is8 && hostPlatform.isDarwin) ./8/gcc8-darwin-as-gstabs.patch - -# 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 - - -## gcc 7.0 and older ############################################################################## - -++ 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"; -}) -++ optionals (is7) [ - # https://gcc.gnu.org/ml/gcc-patches/2018-02/msg00633.html - (./. + "/${majorVersion}/riscv-pthread-reentrant.patch") - # https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00297.html - (./. + "/${majorVersion}/riscv-no-relax.patch") - # Fix for asan w/glibc-2.34. Although there's no upstream backport to v7, - # the patch from gcc 8 seems to work perfectly fine. - (./. + "/${majorVersion}/gcc8-asan-glibc-2.34.patch") - (./. + "/${majorVersion}/0001-Fix-build-for-glibc-2.31.patch") -] -++ optional ((is6 || is7) && targetPlatform.libc == "musl" && targetPlatform.isx86_32) (fetchpatch { - 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 - - - -## gcc 6.0 and older ############################################################################## - -++ optional (is6 && langGo) ./gogcc-workaround-glibc-2.36.patch -++ optional (is49 || is6) ./9/fix-struct-redefinition-on-glibc-2.36.patch -++ optional (is49 || (is6 && !stdenv.targetPlatform.isRedox)) ./use-source-date-epoch.patch -++ optional (is6 && !stdenv.targetPlatform.isRedox) ./6/0001-Fix-build-for-glibc-2.31.patch -++ optionals (is6 && langAda) [ - ./gnat-cflags.patch - ./6/gnat-glibc234.patch -] - -# 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 - -# Building libstdc++ with flat namespaces results in trying to link CoreFoundation, which -# defaults to the impure, system location and causes the build to fail. -++ optional (is6 && hostPlatform.isDarwin) ./6/libstdc++-disable-flat_namespace.patch - -## gcc 4.9 and older ############################################################################## - -++ optional (!atLeast6) ./parallel-bconfig.patch -++ optionals (is49) [ - (./. + "/${lib.versions.major version}.${lib.versions.minor version}/parallel-strsignal.patch") - (./. + "/${lib.versions.major version}.${lib.versions.minor version}/libsanitizer.patch") - (fetchpatch { - name = "avoid-ustat-glibc-2.28.patch"; - url = "https://gitweb.gentoo.org/proj/gcc-patches.git/plain/4.9.4/gentoo/100_all_avoid-ustat-glibc-2.28.patch?id=55fcb515620a8f7d3bb77eba938aa0fcf0d67c96"; - sha256 = "0b32sb4psv5lq0ij9fwhi1b4pjbwdjnv24nqprsk14dsc6xmi1g0"; - }) - # has to be applied after "avoid-ustat-glibc-2.28.patch" - ./libsanitizer-no-cyclades-9.patch - # glibc-2.26 - ./struct-ucontext.patch - ./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"; }]) - -++ optional (is49 && !atLeast6) [ - # gcc-11 compatibility - (fetchpatch { - name = "gcc4-char-reload.patch"; - url = "https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff_plain;h=d57c99458933a21fdf94f508191f145ad8d5ec58"; - includes = [ "gcc/reload.h" ]; - sha256 = "sha256-66AMP7/ajunGKAN5WJz/yPn42URZ2KN51yPrFdsxEuM="; - }) -] - - -## gcc 4.8 only ############################################################################## - -++ optional (!atLeast49 && hostPlatform.isDarwin) ./gfortran-darwin-NXConstStr.patch -++ optionals is48 [ - (fetchpatch { - name = "libc_name_p.diff"; # needed to build with gcc6 - url = "https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff_plain;h=ec1cc0263f1"; - sha256 = "01jd7pdarh54ki498g6sz64ijl9a1l5f9v8q2696aaxalvh2vwzl"; - excludes = [ "gcc/cp/ChangeLog" ]; - }) - # glibc-2.26 - ./struct-ucontext-4.8.patch - ./sigsegv-not-declared.patch - ./res_state-not-declared.patch - # gcc-11 compatibility - (fetchpatch { - name = "gcc4-char-reload.patch"; - url = "https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff_plain;h=d57c99458933a21fdf94f508191f145ad8d5ec58"; - includes = [ "gcc/reload.h" ]; - sha256 = "sha256-66AMP7/ajunGKAN5WJz/yPn42URZ2KN51yPrFdsxEuM="; - }) -] diff --git a/pkgs/by-name/gc/gcc/patches/fix-bug-80431.patch b/pkgs/by-name/gc/gcc/patches/fix-bug-80431.patch deleted file mode 100644 index 2d688b8..0000000 --- a/pkgs/by-name/gc/gcc/patches/fix-bug-80431.patch +++ /dev/null @@ -1,92 +0,0 @@ -From de31f5445b12fd9ab9969dc536d821fe6f0edad0 Mon Sep 17 00:00:00 2001 -From: Patrick Palka -Date: Mon, 21 Jun 2021 07:54:26 -0400 -Subject: [PATCH] c++: conversion to base of vbase in NSDMI [PR80431] - -The delayed processing of conversions to a virtual base in an NSDMI -assumes the target base type is a (possibly indirect) virtual base of -the current class, but the target base type could also be a base of a -virtual base, as in the testcase below. Since such a base isn't a part -of CLASSTYPE_VBASECLASSES, we end up miscompiling the testcase due to -the call to build_base_path (with binfo=NULL_TREE) silently returning -error_mark_node. Fix this by using convert_to_base to build the -conversion instead. - - PR c++/80431 - -gcc/cp/ChangeLog: - - * tree.c (bot_replace): Use convert_to_base to build the - conversion to the (morally) virtual base. - -gcc/testsuite/ChangeLog: - - * g++.dg/cpp0x/nsdmi-virtual1a.C: New test. ---- - gcc/cp/tree.c | 14 ++++------ - gcc/testsuite/g++.dg/cpp0x/nsdmi-virtual1a.C | 28 ++++++++++++++++++++ - 2 files changed, 33 insertions(+), 9 deletions(-) - create mode 100644 gcc/testsuite/g++.dg/cpp0x/nsdmi-virtual1a.C - -diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c -index fec5afaa2be..297da2b1550 100644 ---- a/gcc/cp/tree.c -+++ b/gcc/cp/tree.c -@@ -3242,15 +3242,11 @@ bot_replace (tree* t, int* /*walk_subtrees*/, void* data_) - else if (TREE_CODE (*t) == CONVERT_EXPR - && CONVERT_EXPR_VBASE_PATH (*t)) - { -- /* In an NSDMI build_base_path defers building conversions to virtual -- bases, and we handle it here. */ -- tree basetype = TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (*t))); -- vec *vbases = CLASSTYPE_VBASECLASSES (current_class_type); -- int i; tree binfo; -- FOR_EACH_VEC_SAFE_ELT (vbases, i, binfo) -- if (BINFO_TYPE (binfo) == basetype) -- break; -- *t = build_base_path (PLUS_EXPR, TREE_OPERAND (*t, 0), binfo, true, -+ /* In an NSDMI build_base_path defers building conversions to morally -+ virtual bases, and we handle it here. */ -+ tree basetype = TREE_TYPE (*t); -+ *t = convert_to_base (TREE_OPERAND (*t, 0), basetype, -+ /*check_access=*/false, /*nonnull=*/true, - tf_warning_or_error); - } - -diff --git a/gcc/testsuite/g++.dg/cpp0x/nsdmi-virtual1a.C b/gcc/testsuite/g++.dg/cpp0x/nsdmi-virtual1a.C -new file mode 100644 -index 00000000000..dc847cc16e5 ---- /dev/null -+++ b/gcc/testsuite/g++.dg/cpp0x/nsdmi-virtual1a.C -@@ -0,0 +1,28 @@ -+// PR c++/80431 -+// { dg-do run { target c++11 } } -+ -+// A variant of nsdmi-virtual1.C where A is only a morally virtual base of B. -+ -+struct A -+{ -+ A(): i(42) { } -+ int i; -+ int f() { return i; } -+}; -+ -+struct D : A { int pad; }; -+ -+struct B : virtual D -+{ -+ int j = i + f(); -+ int k = A::i + A::f(); -+}; -+ -+struct C: B { int pad; }; -+ -+int main() -+{ -+ C c; -+ if (c.j != 84 || c.k != 84) -+ __builtin_abort(); -+} --- -2.31.1 - diff --git a/pkgs/by-name/gc/gcc/patches/gcc-12-gfortran-driving.patch b/pkgs/by-name/gc/gcc/patches/gcc-12-gfortran-driving.patch deleted file mode 100644 index 0ad1f25..0000000 --- a/pkgs/by-name/gc/gcc/patches/gcc-12-gfortran-driving.patch +++ /dev/null @@ -1,20 +0,0 @@ -This patch fixes interaction with Libtool. -See , for details. - ---- a/gcc/fortran/gfortranspec.cc -+++ b/gcc/fortran/gfortranspec.cc -@@ -461,8 +461,15 @@ For more information about these matters, see the file named COPYING\n\n")); - { - fprintf (stderr, _("Driving:")); - for (i = 0; i < g77_newargc; i++) -+ { -+ if (g77_new_decoded_options[i].opt_index == OPT_l) -+ /* Make sure no white space is inserted after `-l'. */ -+ fprintf (stderr, " -l%s", -+ g77_new_decoded_options[i].canonical_option[1]); -+ else - fprintf (stderr, " %s", - g77_new_decoded_options[i].orig_option_with_args_text); -+ } - fprintf (stderr, "\n"); - } diff --git a/pkgs/by-name/gc/gcc/patches/gcc-12-no-sys-dirs.patch b/pkgs/by-name/gc/gcc/patches/gcc-12-no-sys-dirs.patch deleted file mode 100644 index 67a9429..0000000 --- a/pkgs/by-name/gc/gcc/patches/gcc-12-no-sys-dirs.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- a/gcc/cppdefault.cc 2013-01-10 21:38:27.000000000 +0100 -+++ b/gcc/cppdefault.cc 2014-08-18 16:20:32.893944536 +0200 -@@ -35,6 +35,8 @@ - # undef CROSS_INCLUDE_DIR - #endif - -+#undef LOCAL_INCLUDE_DIR -+ - const struct default_include cpp_include_defaults[] - #ifdef INCLUDE_DEFAULTS - = INCLUDE_DEFAULTS; ---- a/gcc/gcc.cc 2014-03-23 12:30:57.000000000 +0100 -+++ b/gcc/gcc.cc 2014-08-18 13:19:32.689201690 +0200 -@@ -1162,10 +1162,10 @@ - /* Default prefixes to attach to command names. */ - - #ifndef STANDARD_STARTFILE_PREFIX_1 --#define STANDARD_STARTFILE_PREFIX_1 "/lib/" -+#define STANDARD_STARTFILE_PREFIX_1 "" - #endif - #ifndef STANDARD_STARTFILE_PREFIX_2 --#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/" -+#define STANDARD_STARTFILE_PREFIX_2 "" - #endif - - #ifdef CROSS_DIRECTORY_STRUCTURE /* Don't use these prefixes for a cross compiler. */ diff --git a/pkgs/by-name/gc/gcc/patches/gfortran-darwin-NXConstStr.patch b/pkgs/by-name/gc/gcc/patches/gfortran-darwin-NXConstStr.patch deleted file mode 100644 index a7e158c..0000000 --- a/pkgs/by-name/gc/gcc/patches/gfortran-darwin-NXConstStr.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 82f81877458ea372176eabb5de36329431dce99b Mon Sep 17 00:00:00 2001 -From: Iain Sandoe -Date: Sat, 21 Dec 2013 00:30:18 +0000 -Subject: [PATCH] don't try to mark local symbols as no-dead-strip - ---- - gcc/config/darwin.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c -index 40804b8..0080299 100644 ---- a/gcc/config/darwin.c -+++ b/gcc/config/darwin.c -@@ -1259,6 +1259,11 @@ darwin_encode_section_info (tree decl, rtx rtl, int first ATTRIBUTE_UNUSED) - void - darwin_mark_decl_preserved (const char *name) - { -+ /* Actually we shouldn't mark any local symbol this way, but for now -+ this only happens with ObjC meta-data. */ -+ if (darwin_label_is_anonymous_local_objc_name (name)) -+ return; -+ - fprintf (asm_out_file, "\t.no_dead_strip "); - assemble_name (asm_out_file, name); - fputc ('\n', asm_out_file); --- -2.2.1 diff --git a/pkgs/by-name/gc/gcc/patches/gfortran-driving.patch b/pkgs/by-name/gc/gcc/patches/gfortran-driving.patch deleted file mode 100644 index 7070888..0000000 --- a/pkgs/by-name/gc/gcc/patches/gfortran-driving.patch +++ /dev/null @@ -1,20 +0,0 @@ -This patch fixes interaction with Libtool. -See , for details. - ---- a/gcc/fortran/gfortranspec.c -+++ b/gcc/fortran/gfortranspec.c -@@ -461,8 +461,15 @@ For more information about these matters, see the file named COPYING\n\n")); - { - fprintf (stderr, _("Driving:")); - for (i = 0; i < g77_newargc; i++) -+ { -+ if (g77_new_decoded_options[i].opt_index == OPT_l) -+ /* Make sure no white space is inserted after `-l'. */ -+ fprintf (stderr, " -l%s", -+ g77_new_decoded_options[i].canonical_option[1]); -+ else - fprintf (stderr, " %s", - g77_new_decoded_options[i].orig_option_with_args_text); -+ } - fprintf (stderr, "\n"); - } diff --git a/pkgs/by-name/gc/gcc/patches/gnat-cflags-11.patch b/pkgs/by-name/gc/gcc/patches/gnat-cflags-11.patch deleted file mode 100644 index 03ef286..0000000 --- a/pkgs/by-name/gc/gcc/patches/gnat-cflags-11.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in -index 4e74252bd74..0d848b5b4e3 100644 ---- a/gcc/ada/gcc-interface/Makefile.in -+++ b/gcc/ada/gcc-interface/Makefile.in -@@ -111,7 +111,7 @@ NO_OMIT_ADAFLAGS = -fno-omit-frame-pointer - NO_SIBLING_ADAFLAGS = -fno-optimize-sibling-calls - NO_REORDER_ADAFLAGS = -fno-toplevel-reorder - GNATLIBFLAGS = -W -Wall -gnatg -nostdinc --GNATLIBCFLAGS = -g -O2 -+GNATLIBCFLAGS = -g -O2 $(CFLAGS_FOR_TARGET) - # Pretend that _Unwind_GetIPInfo is available for the target by default. This - # should be autodetected during the configuration of libada and passed down to - # here, but we need something for --disable-libada and hope for the best. -@@ -198,7 +198,7 @@ RTSDIR = rts$(subst /,_,$(MULTISUBDIR)) - # Link flags used to build gnat tools. By default we prefer to statically - # link with libgcc to avoid a dependency on shared libgcc (which is tricky - # to deal with as it may conflict with the libgcc provided by the system). --GCC_LINK_FLAGS=-static-libstdc++ -static-libgcc -+GCC_LINK_FLAGS=-static-libstdc++ -static-libgcc $(CFLAGS_FOR_TARGET) - - # End of variables for you to override. - -diff --git a/libada/Makefile.in b/libada/Makefile.in -index 522b9207326..ca866c74471 100644 ---- a/libada/Makefile.in -+++ b/libada/Makefile.in -@@ -59,7 +59,7 @@ LDFLAGS= - CFLAGS=-g - PICFLAG = @PICFLAG@ - GNATLIBFLAGS= -W -Wall -gnatpg -nostdinc --GNATLIBCFLAGS= -g -O2 -+GNATLIBCFLAGS= -g -O2 $(CFLAGS) - GNATLIBCFLAGS_FOR_C = -W -Wall $(GNATLIBCFLAGS) $(CFLAGS_FOR_TARGET) \ - -fexceptions -DIN_RTS @have_getipinfo@ @have_capability@ - diff --git a/pkgs/by-name/gc/gcc/patches/gnat-cflags.patch b/pkgs/by-name/gc/gcc/patches/gnat-cflags.patch deleted file mode 100644 index a16266b..0000000 --- a/pkgs/by-name/gc/gcc/patches/gnat-cflags.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in -index 4e74252bd74..0d848b5b4e3 100644 ---- a/gcc/ada/gcc-interface/Makefile.in -+++ b/gcc/ada/gcc-interface/Makefile.in -@@ -111,7 +111,7 @@ NO_OMIT_ADAFLAGS = -fno-omit-frame-pointer - NO_SIBLING_ADAFLAGS = -fno-optimize-sibling-calls - NO_REORDER_ADAFLAGS = -fno-toplevel-reorder - GNATLIBFLAGS = -W -Wall -gnatpg -nostdinc --GNATLIBCFLAGS = -g -O2 -+GNATLIBCFLAGS = -g -O2 $(CFLAGS_FOR_TARGET) - # Pretend that _Unwind_GetIPInfo is available for the target by default. This - # should be autodetected during the configuration of libada and passed down to - # here, but we need something for --disable-libada and hope for the best. -@@ -198,7 +198,7 @@ RTSDIR = rts$(subst /,_,$(MULTISUBDIR)) - # Link flags used to build gnat tools. By default we prefer to statically - # link with libgcc to avoid a dependency on shared libgcc (which is tricky - # to deal with as it may conflict with the libgcc provided by the system). --GCC_LINK_FLAGS=-static-libstdc++ -static-libgcc -+GCC_LINK_FLAGS=-static-libstdc++ -static-libgcc $(CFLAGS_FOR_TARGET) - - # End of variables for you to override. - -diff --git a/libada/Makefile.in b/libada/Makefile.in -index 522b9207326..ca866c74471 100644 ---- a/libada/Makefile.in -+++ b/libada/Makefile.in -@@ -59,7 +59,7 @@ LDFLAGS= - CFLAGS=-g - PICFLAG = @PICFLAG@ - GNATLIBFLAGS= -W -Wall -gnatpg -nostdinc --GNATLIBCFLAGS= -g -O2 -+GNATLIBCFLAGS= -g -O2 $(CFLAGS) - GNATLIBCFLAGS_FOR_C = -W -Wall $(GNATLIBCFLAGS) $(CFLAGS_FOR_TARGET) \ - -fexceptions -DIN_RTS @have_getipinfo@ @have_capability@ - diff --git a/pkgs/by-name/gc/gcc/patches/gnat-darwin-dylib-install-name-13.patch b/pkgs/by-name/gc/gcc/patches/gnat-darwin-dylib-install-name-13.patch deleted file mode 100644 index 19c405d..0000000 --- a/pkgs/by-name/gc/gcc/patches/gnat-darwin-dylib-install-name-13.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- a/gcc/ada/gcc-interface/Makefile.in -+++ b/gcc/ada/gcc-interface/Makefile.in -@@ -788,13 +788,13 @@ gnatlib-shared-darwin: - -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ - $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \ - $(SO_OPTS) \ -- -Wl,-install_name,@rpath/libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ -+ -Wl,-install_name,$(ADA_RTL_DSO_DIR)/libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ - $(MISCLIB) - cd $(RTSDIR); $(GCC_FOR_ADA_RTS) -dynamiclib $(PICFLAG_FOR_TARGET) \ - -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ - $(GNATRTL_TASKING_OBJS) \ - $(SO_OPTS) \ -- -Wl,-install_name,@rpath/libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ -+ -Wl,-install_name,$(ADA_RTL_DSO_DIR)/libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ - $(THREADSLIB) -Wl,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) - cd $(RTSDIR); $(LN_S) libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ - libgnat$(soext) diff --git a/pkgs/by-name/gc/gcc/patches/gnat-darwin-dylib-install-name.patch b/pkgs/by-name/gc/gcc/patches/gnat-darwin-dylib-install-name.patch deleted file mode 100644 index 01e5de8..0000000 --- a/pkgs/by-name/gc/gcc/patches/gnat-darwin-dylib-install-name.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- a/gcc/ada/gcc-interface/Makefile.in 2022-08-19 18:09:52.000000000 +1000 -+++ b/gcc/ada/gcc-interface/Makefile.in 2023-01-11 01:54:06.000000000 +1100 -@@ -795,14 +795,14 @@ - -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ - $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \ - $(SO_OPTS) \ -- -Wl,-install_name,@rpath/libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ -+ -Wl,-install_name,$(ADA_RTL_DSO_DIR)/libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ - $(MISCLIB) - cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \ - | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -dynamiclib $(PICFLAG_FOR_TARGET) \ - -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ - $(GNATRTL_TASKING_OBJS) \ - $(SO_OPTS) \ -- -Wl,-install_name,@rpath/libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ -+ -Wl,-install_name,$(ADA_RTL_DSO_DIR)/libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ - $(THREADSLIB) -Wl,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) - cd $(RTSDIR); $(LN_S) libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ - libgnat$(soext) diff --git a/pkgs/by-name/gc/gcc/patches/libgomp-dont-force-initial-exec.patch b/pkgs/by-name/gc/gcc/patches/libgomp-dont-force-initial-exec.patch deleted file mode 100644 index afd1f74..0000000 --- a/pkgs/by-name/gc/gcc/patches/libgomp-dont-force-initial-exec.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 01c433f4788441c0963005b9d3fad5b2865e6651 Mon Sep 17 00:00:00 2001 -From: Will Dietz -Date: Mon, 24 Sep 2018 19:57:50 -0500 -Subject: [PATCH] libgomp/configure.tgt: don't force initial-exec tls-model - ---- - libgomp/configure.tgt | 17 ----------------- - 1 file changed, 17 deletions(-) - -diff --git a/libgomp/configure.tgt b/libgomp/configure.tgt -index 74d95a570c7..b608c55f0c1 100644 ---- a/libgomp/configure.tgt -+++ b/libgomp/configure.tgt -@@ -10,23 +10,6 @@ - # XCFLAGS Add extra compile flags to use. - # XLDFLAGS Add extra link flags to use. - --# Optimize TLS usage by avoiding the overhead of dynamic allocation. --if test $gcc_cv_have_tls = yes ; then -- case "${target}" in -- -- *-*-k*bsd*-gnu*) -- ;; -- -- *-*-linux* | *-*-gnu*) -- XCFLAGS="${XCFLAGS} -ftls-model=initial-exec" -- ;; -- -- *-*-rtems*) -- XCFLAGS="${XCFLAGS} -ftls-model=local-exec" -- ;; -- esac --fi -- - # Since we require POSIX threads, assume a POSIX system by default. - config_path="posix" - --- -2.19.0 - diff --git a/pkgs/by-name/gc/gcc/patches/libphobos.patch b/pkgs/by-name/gc/gcc/patches/libphobos.patch deleted file mode 100644 index a16ea54..0000000 --- a/pkgs/by-name/gc/gcc/patches/libphobos.patch +++ /dev/null @@ -1,119 +0,0 @@ -diff --git a/Makefile.in b/Makefile.in -index a375471..83c5ecb 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -804,7 +804,7 @@ BASE_FLAGS_TO_PASS = \ - "STAGE1_LANGUAGES=$(STAGE1_LANGUAGES)" \ - "GNATBIND=$(GNATBIND)" \ - "GNATMAKE=$(GNATMAKE)" \ -- "GDC=$(GDC)" \ -+ "`echo 'GDC=$(GDC)' | sed -e 's/-idirafter [^ ]*//g'`" \ - "GDCFLAGS=$(GDCFLAGS)" \ - "AR_FOR_TARGET=$(AR_FOR_TARGET)" \ - "AS_FOR_TARGET=$(AS_FOR_TARGET)" \ -@@ -817,7 +817,7 @@ BASE_FLAGS_TO_PASS = \ - "GFORTRAN_FOR_TARGET=$(GFORTRAN_FOR_TARGET)" \ - "GOC_FOR_TARGET=$(GOC_FOR_TARGET)" \ - "GOCFLAGS_FOR_TARGET=$(GOCFLAGS_FOR_TARGET)" \ -- "GDC_FOR_TARGET=$(GDC_FOR_TARGET)" \ -+ "`echo 'GDC_FOR_TARGET=$(GDC_FOR_TARGET)' | sed -e 's/-idirafter [^ ]*//g'`" \ - "GDCFLAGS_FOR_TARGET=$(GDCFLAGS_FOR_TARGET)" \ - "LD_FOR_TARGET=$(LD_FOR_TARGET)" \ - "LIPO_FOR_TARGET=$(LIPO_FOR_TARGET)" \ -@@ -890,7 +890,7 @@ EXTRA_HOST_FLAGS = \ - 'DLLTOOL=$(DLLTOOL)' \ - 'GFORTRAN=$(GFORTRAN)' \ - 'GOC=$(GOC)' \ -- 'GDC=$(GDC)' \ -+ "`echo 'GDC=$(GDC)' | sed -e 's/-idirafter [^ ]*//g'`" \ - 'LD=$(LD)' \ - 'LIPO=$(LIPO)' \ - 'NM=$(NM)' \ -@@ -966,8 +966,11 @@ EXTRA_TARGET_FLAGS = \ - 'STAGE1_LDFLAGS=$$(POSTSTAGE1_LDFLAGS)' \ - 'STAGE1_LIBS=$$(POSTSTAGE1_LIBS)' \ - "TFLAGS=$$TFLAGS" -+EXTRA_TARGET_FLAGS_D = \ -+ "`echo $(EXTRA_TARGET_FLAGS) | sed -e 's/-idirafter [^ ]*//g'`" - - TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) -+TARGET_FLAGS_TO_PASS_D = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS_D) - - # Flags to pass down to gcc. gcc builds a library, libgcc.a, so it - # unfortunately needs the native compiler and the target ar and -@@ -47285,7 +47288,7 @@ check-target-libphobos: - s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ - $(NORMAL_TARGET_EXPORTS) \ - (cd $(TARGET_SUBDIR)/libphobos && \ -- $(MAKE) $(TARGET_FLAGS_TO_PASS) check) -+ $(MAKE) $(TARGET_FLAGS_TO_PASS_D) check) - - @endif target-libphobos - -@@ -47300,7 +47303,7 @@ install-target-libphobos: installdirs - s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ - $(NORMAL_TARGET_EXPORTS) \ - (cd $(TARGET_SUBDIR)/libphobos && \ -- $(MAKE) $(TARGET_FLAGS_TO_PASS) install) -+ $(MAKE) $(TARGET_FLAGS_TO_PASS_D) install) - - @endif target-libphobos - -@@ -47315,7 +47318,7 @@ install-strip-target-libphobos: installdirs - s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ - $(NORMAL_TARGET_EXPORTS) \ - (cd $(TARGET_SUBDIR)/libphobos && \ -- $(MAKE) $(TARGET_FLAGS_TO_PASS) install-strip) -+ $(MAKE) $(TARGET_FLAGS_TO_PASS_D) install-strip) - - @endif target-libphobos - -diff --git a/Makefile.tpl b/Makefile.tpl -index 41cae58..b3d32e7 100644 ---- a/Makefile.tpl -+++ b/Makefile.tpl -@@ -721,8 +721,11 @@ EXTRA_TARGET_FLAGS = \ - 'STAGE1_LDFLAGS=$$(POSTSTAGE1_LDFLAGS)' \ - 'STAGE1_LIBS=$$(POSTSTAGE1_LIBS)' \ - "TFLAGS=$$TFLAGS" -+EXTRA_TARGET_FLAGS_D = \ -+ "`echo $(EXTRA_TARGET_FLAGS) | sed -e 's/-idirafter [^ ]*//g'`" - - TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) -+TARGET_FLAGS_TO_PASS_D = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS_D) - - # Flags to pass down to gcc. gcc builds a library, libgcc.a, so it - # unfortunately needs the native compiler and the target ar and -diff --git a/libphobos/Makefile.in b/libphobos/Makefile.in -index e894417..2d18dcb 100644 ---- a/libphobos/Makefile.in -+++ b/libphobos/Makefile.in -@@ -365,6 +365,7 @@ AM_MAKEFLAGS = \ - "LIBCFLAGS=$(LIBCFLAGS)" \ - "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ - "MAKE=$(MAKE)" \ -+ "`echo 'MAKEFLAGS=$(MAKEFLAGS)' | sed -e 's/-j[0-9]+/-j1/'`" \ - "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ - "PICFLAG=$(PICFLAG)" \ - "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ -@@ -694,6 +695,8 @@ uninstall-am: - - .PRECIOUS: Makefile - -+.NOTPARALLEL: -+ - # GNU Make needs to see an explicit $(MAKE) variable in the command it - # runs to enable its job server during parallel builds. Hence the - # comments below. -diff --git a/libphobos/configure b/libphobos/configure -index b3cb5f3..25adf2b 100755 ---- a/libphobos/configure -+++ b/libphobos/configure -@@ -5122,6 +5122,7 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' - ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' - ac_compiler_gnu=$ac_cv_c_compiler_gnu - -+GDC=`$as_echo "$GDC" | sed -e 's/-idirafter [^ ]*//g'` - - ac_ext=d - ac_compile='$GDC -c $GDCFLAGS conftest.$ac_ext >&5' diff --git a/pkgs/by-name/gc/gcc/patches/libsanitizer-no-cyclades-9.patch b/pkgs/by-name/gc/gcc/patches/libsanitizer-no-cyclades-9.patch deleted file mode 100644 index 072403d..0000000 --- a/pkgs/by-name/gc/gcc/patches/libsanitizer-no-cyclades-9.patch +++ /dev/null @@ -1,82 +0,0 @@ -https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=2b40941d23b1570cdd90083b58fa0f66aa58c86e -https://gcc.gnu.org/PR100379 ---- a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc -+++ b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc -@@ -365,15 +365,6 @@ static void ioctl_table_fill() { - - #if SANITIZER_LINUX && !SANITIZER_ANDROID - // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE -- _(CYGETDEFTHRESH, WRITE, sizeof(int)); -- _(CYGETDEFTIMEOUT, WRITE, sizeof(int)); -- _(CYGETMON, WRITE, struct_cyclades_monitor_sz); -- _(CYGETTHRESH, WRITE, sizeof(int)); -- _(CYGETTIMEOUT, WRITE, sizeof(int)); -- _(CYSETDEFTHRESH, NONE, 0); -- _(CYSETDEFTIMEOUT, NONE, 0); -- _(CYSETTHRESH, NONE, 0); -- _(CYSETTIMEOUT, NONE, 0); - _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz); - _(EQL_ENSLAVE, WRITE, struct_ifreq_sz); - _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz); ---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc -+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc -@@ -157,7 +157,6 @@ typedef struct user_fpregs elf_fpregset_t; - # include - #endif - #include --#include - #include - #include - #include -@@ -466,7 +465,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); - - #if SANITIZER_LINUX && !SANITIZER_ANDROID - unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct); -- unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor); - #if EV_VERSION > (0x010000) - unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry); - #else -@@ -833,15 +831,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); - #endif // SANITIZER_LINUX || SANITIZER_FREEBSD - - #if SANITIZER_LINUX && !SANITIZER_ANDROID -- unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH; -- unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT; -- unsigned IOCTL_CYGETMON = CYGETMON; -- unsigned IOCTL_CYGETTHRESH = CYGETTHRESH; -- unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT; -- unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH; -- unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT; -- unsigned IOCTL_CYSETTHRESH = CYSETTHRESH; -- unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT; - unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE; - unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE; - unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG; ---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h -+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h -@@ -1040,7 +1040,6 @@ struct __sanitizer_cookie_io_functions_t { - - #if SANITIZER_LINUX && !SANITIZER_ANDROID - extern unsigned struct_ax25_parms_struct_sz; -- extern unsigned struct_cyclades_monitor_sz; - extern unsigned struct_input_keymap_entry_sz; - extern unsigned struct_ipx_config_data_sz; - extern unsigned struct_kbdiacrs_sz; -@@ -1385,15 +1384,6 @@ struct __sanitizer_cookie_io_functions_t { - #endif // SANITIZER_LINUX || SANITIZER_FREEBSD - - #if SANITIZER_LINUX && !SANITIZER_ANDROID -- extern unsigned IOCTL_CYGETDEFTHRESH; -- extern unsigned IOCTL_CYGETDEFTIMEOUT; -- extern unsigned IOCTL_CYGETMON; -- extern unsigned IOCTL_CYGETTHRESH; -- extern unsigned IOCTL_CYGETTIMEOUT; -- extern unsigned IOCTL_CYSETDEFTHRESH; -- extern unsigned IOCTL_CYSETDEFTIMEOUT; -- extern unsigned IOCTL_CYSETTHRESH; -- extern unsigned IOCTL_CYSETTIMEOUT; - extern unsigned IOCTL_EQL_EMANCIPATE; - extern unsigned IOCTL_EQL_ENSLAVE; - extern unsigned IOCTL_EQL_GETMASTRCFG; --- -2.27.0 diff --git a/pkgs/by-name/gc/gcc/patches/libstdc++-netbsd-ctypes.patch b/pkgs/by-name/gc/gcc/patches/libstdc++-netbsd-ctypes.patch deleted file mode 100644 index 28fff80..0000000 --- a/pkgs/by-name/gc/gcc/patches/libstdc++-netbsd-ctypes.patch +++ /dev/null @@ -1,141 +0,0 @@ -diff --git a/libstdc++-v3/config/os/bsd/netbsd/ctype_base.h b/libstdc++-v3/config/os/bsd/netbsd/ctype_base.h -index ff3ec893974..21eccf9fde1 100644 ---- a/libstdc++-v3/config/os/bsd/netbsd/ctype_base.h -+++ b/libstdc++-v3/config/os/bsd/netbsd/ctype_base.h -@@ -38,40 +38,46 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION - /// @brief Base class for ctype. - struct ctype_base - { -- // Non-standard typedefs. -- typedef const unsigned char* __to_type; - - // NB: Offsets into ctype::_M_table force a particular size - // on the mask type. Because of this, we don't use an enum. -- typedef unsigned char mask; - - #ifndef _CTYPE_U -- static const mask upper = _U; -- static const mask lower = _L; -- static const mask alpha = _U | _L; -- static const mask digit = _N; -- static const mask xdigit = _N | _X; -- static const mask space = _S; -- static const mask print = _P | _U | _L | _N | _B; -- static const mask graph = _P | _U | _L | _N; -- static const mask cntrl = _C; -- static const mask punct = _P; -- static const mask alnum = _U | _L | _N; -+ // Non-standard typedefs. -+ typedef const unsigned char* __to_type; -+ -+ typedef unsigned char mask; -+ -+ static const mask upper = _U; -+ static const mask lower = _L; -+ static const mask alpha = _U | _L; -+ static const mask digit = _N; -+ static const mask xdigit = _N | _X; -+ static const mask space = _S; -+ static const mask print = _P | _U | _L | _N | _B; -+ static const mask graph = _P | _U | _L | _N; -+ static const mask cntrl = _C; -+ static const mask punct = _P; -+ static const mask alnum = _U | _L | _N; - #else -- static const mask upper = _CTYPE_U; -- static const mask lower = _CTYPE_L; -- static const mask alpha = _CTYPE_U | _CTYPE_L; -- static const mask digit = _CTYPE_N; -- static const mask xdigit = _CTYPE_N | _CTYPE_X; -- static const mask space = _CTYPE_S; -- static const mask print = _CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_N | _CTYPE_B; -- static const mask graph = _CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_N; -- static const mask cntrl = _CTYPE_C; -- static const mask punct = _CTYPE_P; -- static const mask alnum = _CTYPE_U | _CTYPE_L | _CTYPE_N; -+ typedef const unsigned short* __to_type; -+ -+ typedef unsigned short mask; -+ -+ static const mask upper = _CTYPE_U; -+ static const mask lower = _CTYPE_L; -+ static const mask alpha = _CTYPE_A; -+ static const mask digit = _CTYPE_D; -+ static const mask xdigit = _CTYPE_X; -+ static const mask space = _CTYPE_S; -+ static const mask print = _CTYPE_R; -+ static const mask graph = _CTYPE_G; -+ static const mask cntrl = _CTYPE_C; -+ static const mask punct = _CTYPE_P; -+ static const mask alnum = _CTYPE_A | _CTYPE_D; - #endif - #if __cplusplus >= 201103L -- static const mask blank = space; -+ static const mask blank = space; - #endif - }; - -diff --git a/libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc b/libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc -index ed3b7cd0d6a..33358e8f5d8 100644 ---- a/libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc -+++ b/libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc -@@ -38,11 +38,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION - - // Information as gleaned from /usr/include/ctype.h - -- extern "C" const u_int8_t _C_ctype_[]; -- - const ctype_base::mask* - ctype::classic_table() throw() -- { return _C_ctype_ + 1; } -+ { return _C_ctype_tab_ + 1; } - - ctype::ctype(__c_locale, const mask* __table, bool __del, - size_t __refs) -@@ -69,14 +67,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION - - char - ctype::do_toupper(char __c) const -- { return ::toupper((int) __c); } -+ { return ::toupper((int)(unsigned char) __c); } - - const char* - ctype::do_toupper(char* __low, const char* __high) const - { - while (__low < __high) - { -- *__low = ::toupper((int) *__low); -+ *__low = ::toupper((int)(unsigned char) *__low); - ++__low; - } - return __high; -@@ -84,14 +82,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION - - char - ctype::do_tolower(char __c) const -- { return ::tolower((int) __c); } -+ { return ::tolower((int)(unsigned char) __c); } - - const char* - ctype::do_tolower(char* __low, const char* __high) const - { - while (__low < __high) - { -- *__low = ::tolower((int) *__low); -+ *__low = ::tolower((int)(unsigned char) *__low); - ++__low; - } - return __high; -diff --git a/libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h b/libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h -index ace1120fba2..3234ce17c70 100644 ---- a/libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h -+++ b/libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h -@@ -48,7 +48,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION - is(const char* __low, const char* __high, mask* __vec) const - { - while (__low < __high) -- *__vec++ = _M_table[*__low++]; -+ *__vec++ = _M_table[(unsigned char)*__low++]; - return __high; - } - diff --git a/pkgs/by-name/gc/gcc/patches/libstdc++-target.patch b/pkgs/by-name/gc/gcc/patches/libstdc++-target.patch deleted file mode 100644 index fb622b3..0000000 --- a/pkgs/by-name/gc/gcc/patches/libstdc++-target.patch +++ /dev/null @@ -1,32 +0,0 @@ -Patch to make the target libraries 'configure' scripts find the proper CPP. -I noticed that building the mingw32 cross compiler. -Looking at the build script for mingw in archlinux, I think that only nixos -needs this patch. I don't know why. -diff --git a/Makefile.in b/Makefile.in -index 93f66b6..d691917 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -266,6 +266,7 @@ BASE_TARGET_EXPORTS = \ - AR="$(AR_FOR_TARGET)"; export AR; \ - AS="$(COMPILER_AS_FOR_TARGET)"; export AS; \ - CC="$(CC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CC; \ -+ CPP="$(CC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS -E"; export CC; \ - CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ - CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \ -@@ -291,11 +292,13 @@ BASE_TARGET_EXPORTS = \ - RAW_CXX_TARGET_EXPORTS = \ - $(BASE_TARGET_EXPORTS) \ - CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \ -- CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX; -+ CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX; \ -+ CXXCPP="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS -E"; export CXX; - - NORMAL_TARGET_EXPORTS = \ - $(BASE_TARGET_EXPORTS) \ -- CXX="$(CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX; -+ CXX="$(CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX; \ -+ CXXCPP="$(CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS -E"; export CXX; - - # Where to find GMP - HOST_GMPLIBS = @gmplibs@ diff --git a/pkgs/by-name/gc/gcc/patches/no-sys-dirs-riscv-gcc9.patch b/pkgs/by-name/gc/gcc/patches/no-sys-dirs-riscv-gcc9.patch deleted file mode 100644 index afe3f26..0000000 --- a/pkgs/by-name/gc/gcc/patches/no-sys-dirs-riscv-gcc9.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/gcc/config/riscv/riscv.h b/gcc/config/riscv/riscv.h -index 701f5ea1544..8de333caf54 100644 ---- a/gcc/config/riscv/riscv.h -+++ b/gcc/config/riscv/riscv.h -@@ -886,11 +886,7 @@ extern unsigned riscv_stack_boundary; - "%{mabi=lp64f:lp64f}" \ - "%{mabi=lp64d:lp64d}" \ - --#define STARTFILE_PREFIX_SPEC \ -- "/lib" XLEN_SPEC "/" ABI_SPEC "/ " \ -- "/usr/lib" XLEN_SPEC "/" ABI_SPEC "/ " \ -- "/lib/ " \ -- "/usr/lib/ " -+#define STARTFILE_PREFIX_SPEC "" - - /* ISA constants needed for code generation. */ - #define OPCODE_LW 0x2003 diff --git a/pkgs/by-name/gc/gcc/patches/no-sys-dirs-riscv.patch b/pkgs/by-name/gc/gcc/patches/no-sys-dirs-riscv.patch deleted file mode 100644 index 00e2838..0000000 --- a/pkgs/by-name/gc/gcc/patches/no-sys-dirs-riscv.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/gcc/config/riscv/linux.h -+++ b/gcc/config/riscv/linux.h -@@ -69,8 +69,4 @@ - - #define TARGET_ASM_FILE_END file_end_indicate_exec_stack - --#define STARTFILE_PREFIX_SPEC \ -- "/lib" XLEN_SPEC "/" ABI_SPEC "/ " \ -- "/usr/lib" XLEN_SPEC "/" ABI_SPEC "/ " \ -- "/lib/ " \ -- "/usr/lib/ " -+#define STARTFILE_PREFIX_SPEC "" diff --git a/pkgs/by-name/gc/gcc/patches/no-sys-dirs.patch b/pkgs/by-name/gc/gcc/patches/no-sys-dirs.patch deleted file mode 100644 index 36df519..0000000 --- a/pkgs/by-name/gc/gcc/patches/no-sys-dirs.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff -ru -x '*~' gcc-4.8.3-orig/gcc/cppdefault.c gcc-4.8.3/gcc/cppdefault.c ---- gcc-4.8.3-orig/gcc/cppdefault.c 2013-01-10 21:38:27.000000000 +0100 -+++ gcc-4.8.3/gcc/cppdefault.c 2014-08-18 16:20:32.893944536 +0200 -@@ -35,6 +35,8 @@ - # undef CROSS_INCLUDE_DIR - #endif - -+#undef LOCAL_INCLUDE_DIR -+ - const struct default_include cpp_include_defaults[] - #ifdef INCLUDE_DEFAULTS - = INCLUDE_DEFAULTS; -diff -ru -x '*~' gcc-4.8.3-orig/gcc/gcc.c gcc-4.8.3/gcc/gcc.c ---- gcc-4.8.3-orig/gcc/gcc.c 2014-03-23 12:30:57.000000000 +0100 -+++ gcc-4.8.3/gcc/gcc.c 2014-08-18 13:19:32.689201690 +0200 -@@ -1162,10 +1162,10 @@ - /* Default prefixes to attach to command names. */ - - #ifndef STANDARD_STARTFILE_PREFIX_1 --#define STANDARD_STARTFILE_PREFIX_1 "/lib/" -+#define STANDARD_STARTFILE_PREFIX_1 "" - #endif - #ifndef STANDARD_STARTFILE_PREFIX_2 --#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/" -+#define STANDARD_STARTFILE_PREFIX_2 "" - #endif - - #ifdef CROSS_DIRECTORY_STRUCTURE /* Don't use these prefixes for a cross compiler. */ diff --git a/pkgs/by-name/gc/gcc/patches/parallel-bconfig.patch b/pkgs/by-name/gc/gcc/patches/parallel-bconfig.patch deleted file mode 100644 index bc56ac6..0000000 --- a/pkgs/by-name/gc/gcc/patches/parallel-bconfig.patch +++ /dev/null @@ -1,32 +0,0 @@ -Hacky work-around for highly parallel builds. -http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57125 - -diff --git a/gcc/Makefile.in b/gcc/Makefile.in -index aad927c..182f666 100644 ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -3908,21 +3908,21 @@ build/gengtype-lex.o: $(BCONFIG_H) - - gengtype-parse.o build/gengtype-parse.o : gengtype-parse.c gengtype.h \ - $(SYSTEM_H) --gengtype-parse.o: $(CONFIG_H) -+gengtype-parse.o: $(CONFIG_H) $(BCONFIG_H) - CFLAGS-gengtype-parse.o += -DGENERATOR_FILE - build/gengtype-parse.o: $(BCONFIG_H) - - gengtype-state.o build/gengtype-state.o: gengtype-state.c $(SYSTEM_H) \ - gengtype.h errors.h double-int.h version.h $(HASHTAB_H) $(OBSTACK_H) \ - $(XREGEX_H) --gengtype-state.o: $(CONFIG_H) -+gengtype-state.o: $(CONFIG_H) $(BCONFIG_H) - CFLAGS-gengtype-state.o += -DGENERATOR_FILE - build/gengtype-state.o: $(BCONFIG_H) - - gengtype.o build/gengtype.o : gengtype.c $(SYSTEM_H) gengtype.h \ - rtl.def insn-notes.def errors.h double-int.h version.h $(HASHTAB_H) \ - $(OBSTACK_H) $(XREGEX_H) --gengtype.o: $(CONFIG_H) -+gengtype.o: $(CONFIG_H) $(BCONFIG_H) - CFLAGS-gengtype.o += -DGENERATOR_FILE - build/gengtype.o: $(BCONFIG_H) - diff --git a/pkgs/by-name/gc/gcc/patches/ppc-musl.patch b/pkgs/by-name/gc/gcc/patches/ppc-musl.patch deleted file mode 100644 index bc90888..0000000 --- a/pkgs/by-name/gc/gcc/patches/ppc-musl.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h -index cbee89140dd..e1f26b0a096 100644 ---- a/gcc/config/rs6000/sysv4.h -+++ b/gcc/config/rs6000/sysv4.h -@@ -996,13 +996,7 @@ ncrtn.o%s" - { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, \ - GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, - --#ifdef LOCAL_INCLUDE_DIR --#define INCLUDE_DEFAULTS_MUSL_LOCAL \ -- { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, \ -- { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 }, --#else - #define INCLUDE_DEFAULTS_MUSL_LOCAL --#endif - - #ifdef PREFIX_INCLUDE_DIR - #define INCLUDE_DEFAULTS_MUSL_PREFIX \ diff --git a/pkgs/by-name/gc/gcc/patches/res_state-not-declared.patch b/pkgs/by-name/gc/gcc/patches/res_state-not-declared.patch deleted file mode 100644 index e970487..0000000 --- a/pkgs/by-name/gc/gcc/patches/res_state-not-declared.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/libsanitizer/tsan/tsan_platform_linux.cc b/libsanitizer/tsan/tsan_platform_linux.cc -index fe69430..49f5270 100644 ---- a/libsanitizer/tsan/tsan_platform_linux.cc -+++ b/libsanitizer/tsan/tsan_platform_linux.cc -@@ -351,7 +351,7 @@ bool IsGlobalVar(uptr addr) { - // closes within glibc. The code is a pure hack. - int ExtractResolvFDs(void *state, int *fds, int nfd) { - int cnt = 0; -- __res_state *statp = (__res_state*)state; -+ struct __res_state *statp = (struct __res_state*)state; - for (int i = 0; i < MAXNS && cnt < nfd; i++) { - if (statp->_u._ext.nsaddrs[i] && statp->_u._ext.nssocks[i] != -1) - fds[cnt++] = statp->_u._ext.nssocks[i]; diff --git a/pkgs/by-name/gc/gcc/patches/sigsegv-not-declared.patch b/pkgs/by-name/gc/gcc/patches/sigsegv-not-declared.patch deleted file mode 100644 index f9cfaec..0000000 --- a/pkgs/by-name/gc/gcc/patches/sigsegv-not-declared.patch +++ /dev/null @@ -1,13 +0,0 @@ -error: 'SIGSEGV' was not declared in this scope -diff --git a/libsanitizer/asan/asan_linux.cc b/libsanitizer/asan/asan_linux.cc -index 0692eb1..472f734 100644 ---- a/libsanitizer/asan/asan_linux.cc -+++ b/libsanitizer/asan/asan_linux.cc -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - #include - #include - #include diff --git a/pkgs/by-name/gc/gcc/patches/struct-sigaltstack-4.9.patch b/pkgs/by-name/gc/gcc/patches/struct-sigaltstack-4.9.patch deleted file mode 100644 index fc126b4..0000000 --- a/pkgs/by-name/gc/gcc/patches/struct-sigaltstack-4.9.patch +++ /dev/null @@ -1,78 +0,0 @@ -hand-resolved trivial conflicts for 4.9 from the upstream patch -72edc2c02f8b4768ad660f46a1c7e2400c0a8e06 -diff --git a/libsanitizer/sanitizer_common/sanitizer_linux.cc b/libsanitizer/sanitizer_common/sanitizer_linux.cc -index 69c9c10..8e53673 100644 ---- a/libsanitizer/sanitizer_common/sanitizer_linux.cc -+++ b/libsanitizer/sanitizer_common/sanitizer_linux.cc -@@ -599,8 +599,7 @@ uptr internal_prctl(int option, uptr arg2, uptr arg3, uptr arg4, uptr arg5) { - return internal_syscall(__NR_prctl, option, arg2, arg3, arg4, arg5); - } - --uptr internal_sigaltstack(const struct sigaltstack *ss, -- struct sigaltstack *oss) { -+uptr internal_sigaltstack(const void *ss, void *oss) { - return internal_syscall(__NR_sigaltstack, (uptr)ss, (uptr)oss); - } - -diff --git a/libsanitizer/sanitizer_common/sanitizer_linux.h b/libsanitizer/sanitizer_common/sanitizer_linux.h -index 6422df1..8e111d1 100644 ---- a/libsanitizer/sanitizer_common/sanitizer_linux.h -+++ b/libsanitizer/sanitizer_common/sanitizer_linux.h -@@ -18,7 +18,6 @@ - #include "sanitizer_platform_limits_posix.h" - - struct link_map; // Opaque type returned by dlopen(). --struct sigaltstack; - - namespace __sanitizer { - // Dirent structure for getdents(). Note that this structure is different from -@@ -28,8 +27,7 @@ struct linux_dirent; - // Syscall wrappers. - uptr internal_getdents(fd_t fd, struct linux_dirent *dirp, unsigned int count); - uptr internal_prctl(int option, uptr arg2, uptr arg3, uptr arg4, uptr arg5); --uptr internal_sigaltstack(const struct sigaltstack* ss, -- struct sigaltstack* oss); -+uptr internal_sigaltstack(const void* ss, void* oss); - uptr internal_sigaction(int signum, const __sanitizer_kernel_sigaction_t *act, - __sanitizer_kernel_sigaction_t *oldact); - uptr internal_sigprocmask(int how, __sanitizer_kernel_sigset_t *set, -diff --git a/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc b/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc -index 891386dc..234e8c6 100644 ---- a/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc -+++ b/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc -@@ -273,7 +273,7 @@ static int TracerThread(void* argument) { - - // Alternate stack for signal handling. - InternalScopedBuffer handler_stack_memory(kHandlerStackSize); -- struct sigaltstack handler_stack; -+ stack_t handler_stack; - internal_memset(&handler_stack, 0, sizeof(handler_stack)); - handler_stack.ss_sp = handler_stack_memory.data(); - handler_stack.ss_size = kHandlerStackSize; -diff --git a/libsanitizer/tsan/tsan_platform_linux.cc b/libsanitizer/tsan/tsan_platform_linux.cc -index 2ed5718..6f972ab 100644 ---- a/libsanitizer/tsan/tsan_platform_linux.cc -+++ b/libsanitizer/tsan/tsan_platform_linux.cc -@@ -287,7 +287,7 @@ void InitializePlatform() { - int ExtractResolvFDs(void *state, int *fds, int nfd) { - #if SANITIZER_LINUX && !SANITIZER_ANDROID - int cnt = 0; -- __res_state *statp = (__res_state*)state; -+ struct __res_state *statp = (struct __res_state*)state; - for (int i = 0; i < MAXNS && cnt < nfd; i++) { - if (statp->_u._ext.nsaddrs[i] && statp->_u._ext.nssocks[i] != -1) - fds[cnt++] = statp->_u._ext.nssocks[i]; - -error: 'SIGSEGV' was not declared in this scope -diff --git a/libsanitizer/asan/asan_linux.cc b/libsanitizer/asan/asan_linux.cc -index 0692eb1..472f734 100644 ---- a/libsanitizer/asan/asan_linux.cc -+++ b/libsanitizer/asan/asan_linux.cc -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - #include - #include - #include diff --git a/pkgs/by-name/gc/gcc/patches/struct-ucontext-4.8.patch b/pkgs/by-name/gc/gcc/patches/struct-ucontext-4.8.patch deleted file mode 100644 index 630ef65..0000000 --- a/pkgs/by-name/gc/gcc/patches/struct-ucontext-4.8.patch +++ /dev/null @@ -1,177 +0,0 @@ -From b685411208e0aaa79190d54faf945763514706b8 Mon Sep 17 00:00:00 2001 -From: jsm28 -Date: Tue, 4 Jul 2017 10:23:57 +0000 -Subject: [PATCH] Use ucontext_t not struct ucontext in linux-unwind.h files. - -Current glibc no longer gives the ucontext_t type the tag struct -ucontext, to conform with POSIX namespace rules. This requires -various linux-unwind.h files in libgcc, that were previously using -struct ucontext, to be fixed to use ucontext_t instead. This is -similar to the removal of the struct siginfo tag from siginfo_t some -years ago. - -This patch changes those files to use ucontext_t instead. As the -standard name that should be unconditionally safe, so this is not -restricted to architectures supported by glibc, or conditioned on the -glibc version. - -Tested compilation together with current glibc with glibc's -build-many-glibcs.py. - - * config/aarch64/linux-unwind.h (aarch64_fallback_frame_state), - config/alpha/linux-unwind.h (alpha_fallback_frame_state), - config/bfin/linux-unwind.h (bfin_fallback_frame_state), - config/i386/linux-unwind.h (x86_64_fallback_frame_state, - x86_fallback_frame_state), config/m68k/linux-unwind.h (struct - uw_ucontext), config/nios2/linux-unwind.h (struct nios2_ucontext), - config/pa/linux-unwind.h (pa32_fallback_frame_state), - config/sh/linux-unwind.h (sh_fallback_frame_state), - config/tilepro/linux-unwind.h (tile_fallback_frame_state), - config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Use - ucontext_t instead of struct ucontext. - - -git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-6-branch@249957 138bc75d-0d04-0410-961f-82ee72b054a4 ---- - libgcc/ChangeLog (REMOVED) | 14 ++++++++++++++ - libgcc/config/aarch64/linux-unwind.h | 2 +- - libgcc/config/alpha/linux-unwind.h | 2 +- - libgcc/config/bfin/linux-unwind.h | 2 +- - libgcc/config/i386/linux-unwind.h | 4 ++-- - libgcc/config/m68k/linux-unwind.h | 2 +- - libgcc/config/nios2/linux-unwind.h | 2 +- - libgcc/config/pa/linux-unwind.h | 2 +- - libgcc/config/sh/linux-unwind.h | 2 +- - libgcc/config/tilepro/linux-unwind.h | 2 +- - libgcc/config/xtensa/linux-unwind.h | 2 +- - 11 files changed, 25 insertions(+), 11 deletions(-) - -diff --git a/libgcc/config/aarch64/linux-unwind.h b/libgcc/config/aarch64/linux-unwind.h -index 4512efb..06de45a 100644 ---- a/libgcc/config/aarch64/linux-unwind.h -+++ b/libgcc/config/aarch64/linux-unwind.h -@@ -52,7 +52,7 @@ aarch64_fallback_frame_state (struct _Unwind_Context *context, - struct rt_sigframe - { - siginfo_t info; -- struct ucontext uc; -+ ucontext_t uc; - }; - - struct rt_sigframe *rt_; -diff --git a/libgcc/config/alpha/linux-unwind.h b/libgcc/config/alpha/linux-unwind.h -index bdbba4a..e84812e 100644 ---- a/libgcc/config/alpha/linux-unwind.h -+++ b/libgcc/config/alpha/linux-unwind.h -@@ -51,7 +51,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context, - { - struct rt_sigframe { - siginfo_t info; -- struct ucontext uc; -+ ucontext_t uc; - } *rt_ = context->cfa; - sc = &rt_->uc.uc_mcontext; - } -diff --git a/libgcc/config/bfin/linux-unwind.h b/libgcc/config/bfin/linux-unwind.h -index 77b7c23..8bf5e82 100644 ---- a/libgcc/config/bfin/linux-unwind.h -+++ b/libgcc/config/bfin/linux-unwind.h -@@ -52,7 +52,7 @@ bfin_fallback_frame_state (struct _Unwind_Context *context, - void *puc; - char retcode[8]; - siginfo_t info; -- struct ucontext uc; -+ ucontext_t uc; - } *rt_ = context->cfa; - - /* The void * cast is necessary to avoid an aliasing warning. -diff --git a/libgcc/config/i386/linux-unwind.h b/libgcc/config/i386/linux-unwind.h -index 540a0a2..29efbe3 100644 ---- a/libgcc/config/i386/linux-unwind.h -+++ b/libgcc/config/i386/linux-unwind.h -@@ -58,7 +58,7 @@ x86_64_fallback_frame_state (struct _Unwind_Context *context, - if (*(unsigned char *)(pc+0) == 0x48 - && *(unsigned long long *)(pc+1) == RT_SIGRETURN_SYSCALL) - { -- struct ucontext *uc_ = context->cfa; -+ ucontext_t *uc_ = context->cfa; - /* The void * cast is necessary to avoid an aliasing warning. - The aliasing warning is correct, but should not be a problem - because it does not alias anything. */ -@@ -138,7 +138,7 @@ x86_fallback_frame_state (struct _Unwind_Context *context, - siginfo_t *pinfo; - void *puc; - siginfo_t info; -- struct ucontext uc; -+ ucontext_t uc; - } *rt_ = context->cfa; - /* The void * cast is necessary to avoid an aliasing warning. - The aliasing warning is correct, but should not be a problem -diff --git a/libgcc/config/m68k/linux-unwind.h b/libgcc/config/m68k/linux-unwind.h -index 75b7cf7..f964e24 100644 ---- a/libgcc/config/m68k/linux-unwind.h -+++ b/libgcc/config/m68k/linux-unwind.h -@@ -33,7 +33,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - /* is unfortunately broken right now. */ - struct uw_ucontext { - unsigned long uc_flags; -- struct ucontext *uc_link; -+ ucontext_t *uc_link; - stack_t uc_stack; - mcontext_t uc_mcontext; - unsigned long uc_filler[80]; -diff --git a/libgcc/config/pa/linux-unwind.h b/libgcc/config/pa/linux-unwind.h -index 9a2657f..e47493d 100644 ---- a/libgcc/config/pa/linux-unwind.h -+++ b/libgcc/config/pa/linux-unwind.h -@@ -80,7 +80,7 @@ pa32_fallback_frame_state (struct _Unwind_Context *context, - struct sigcontext *sc; - struct rt_sigframe { - siginfo_t info; -- struct ucontext uc; -+ ucontext_t uc; - } *frame; - - /* rt_sigreturn trampoline: -diff --git a/libgcc/config/sh/linux-unwind.h b/libgcc/config/sh/linux-unwind.h -index e389cac..0bf43ba 100644 ---- a/libgcc/config/sh/linux-unwind.h -+++ b/libgcc/config/sh/linux-unwind.h -@@ -180,7 +180,7 @@ sh_fallback_frame_state (struct _Unwind_Context *context, - { - struct rt_sigframe { - siginfo_t info; -- struct ucontext uc; -+ ucontext_t uc; - } *rt_ = context->cfa; - /* The void * cast is necessary to avoid an aliasing warning. - The aliasing warning is correct, but should not be a problem -diff --git a/libgcc/config/tilepro/linux-unwind.h b/libgcc/config/tilepro/linux-unwind.h -index 796e976..75f8890 100644 ---- a/libgcc/config/tilepro/linux-unwind.h -+++ b/libgcc/config/tilepro/linux-unwind.h -@@ -61,7 +61,7 @@ tile_fallback_frame_state (struct _Unwind_Context *context, - struct rt_sigframe { - unsigned char save_area[C_ABI_SAVE_AREA_SIZE]; - siginfo_t info; -- struct ucontext uc; -+ ucontext_t uc; - } *rt_; - - /* Return if this is not a signal handler. */ -diff --git a/libgcc/config/xtensa/linux-unwind.h b/libgcc/config/xtensa/linux-unwind.h -index 9872492..586a9d4 100644 ---- a/libgcc/config/xtensa/linux-unwind.h -+++ b/libgcc/config/xtensa/linux-unwind.h -@@ -67,7 +67,7 @@ xtensa_fallback_frame_state (struct _Unwind_Context *context, - - struct rt_sigframe { - siginfo_t info; -- struct ucontext uc; -+ ucontext_t uc; - } *rt_; - - /* movi a2, __NR_rt_sigreturn; syscall */ --- -2.9.3 - diff --git a/pkgs/by-name/gc/gcc/patches/struct-ucontext.patch b/pkgs/by-name/gc/gcc/patches/struct-ucontext.patch deleted file mode 100644 index c7fb6d1..0000000 --- a/pkgs/by-name/gc/gcc/patches/struct-ucontext.patch +++ /dev/null @@ -1,190 +0,0 @@ -From b685411208e0aaa79190d54faf945763514706b8 Mon Sep 17 00:00:00 2001 -From: jsm28 -Date: Tue, 4 Jul 2017 10:23:57 +0000 -Subject: [PATCH] Use ucontext_t not struct ucontext in linux-unwind.h files. - -Current glibc no longer gives the ucontext_t type the tag struct -ucontext, to conform with POSIX namespace rules. This requires -various linux-unwind.h files in libgcc, that were previously using -struct ucontext, to be fixed to use ucontext_t instead. This is -similar to the removal of the struct siginfo tag from siginfo_t some -years ago. - -This patch changes those files to use ucontext_t instead. As the -standard name that should be unconditionally safe, so this is not -restricted to architectures supported by glibc, or conditioned on the -glibc version. - -Tested compilation together with current glibc with glibc's -build-many-glibcs.py. - - * config/aarch64/linux-unwind.h (aarch64_fallback_frame_state), - config/alpha/linux-unwind.h (alpha_fallback_frame_state), - config/bfin/linux-unwind.h (bfin_fallback_frame_state), - config/i386/linux-unwind.h (x86_64_fallback_frame_state, - x86_fallback_frame_state), config/m68k/linux-unwind.h (struct - uw_ucontext), config/nios2/linux-unwind.h (struct nios2_ucontext), - config/pa/linux-unwind.h (pa32_fallback_frame_state), - config/sh/linux-unwind.h (sh_fallback_frame_state), - config/tilepro/linux-unwind.h (tile_fallback_frame_state), - config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Use - ucontext_t instead of struct ucontext. - - -git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-6-branch@249957 138bc75d-0d04-0410-961f-82ee72b054a4 ---- - libgcc/ChangeLog (REMOVED) | 14 ++++++++++++++ - libgcc/config/aarch64/linux-unwind.h | 2 +- - libgcc/config/alpha/linux-unwind.h | 2 +- - libgcc/config/bfin/linux-unwind.h | 2 +- - libgcc/config/i386/linux-unwind.h | 4 ++-- - libgcc/config/m68k/linux-unwind.h | 2 +- - libgcc/config/nios2/linux-unwind.h | 2 +- - libgcc/config/pa/linux-unwind.h | 2 +- - libgcc/config/sh/linux-unwind.h | 2 +- - libgcc/config/tilepro/linux-unwind.h | 2 +- - libgcc/config/xtensa/linux-unwind.h | 2 +- - 11 files changed, 25 insertions(+), 11 deletions(-) - -diff --git a/libgcc/config/aarch64/linux-unwind.h b/libgcc/config/aarch64/linux-unwind.h -index 4512efb..06de45a 100644 ---- a/libgcc/config/aarch64/linux-unwind.h -+++ b/libgcc/config/aarch64/linux-unwind.h -@@ -52,7 +52,7 @@ aarch64_fallback_frame_state (struct _Unwind_Context *context, - struct rt_sigframe - { - siginfo_t info; -- struct ucontext uc; -+ ucontext_t uc; - }; - - struct rt_sigframe *rt_; -diff --git a/libgcc/config/alpha/linux-unwind.h b/libgcc/config/alpha/linux-unwind.h -index bdbba4a..e84812e 100644 ---- a/libgcc/config/alpha/linux-unwind.h -+++ b/libgcc/config/alpha/linux-unwind.h -@@ -51,7 +51,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context, - { - struct rt_sigframe { - siginfo_t info; -- struct ucontext uc; -+ ucontext_t uc; - } *rt_ = context->cfa; - sc = &rt_->uc.uc_mcontext; - } -diff --git a/libgcc/config/bfin/linux-unwind.h b/libgcc/config/bfin/linux-unwind.h -index 77b7c23..8bf5e82 100644 ---- a/libgcc/config/bfin/linux-unwind.h -+++ b/libgcc/config/bfin/linux-unwind.h -@@ -52,7 +52,7 @@ bfin_fallback_frame_state (struct _Unwind_Context *context, - void *puc; - char retcode[8]; - siginfo_t info; -- struct ucontext uc; -+ ucontext_t uc; - } *rt_ = context->cfa; - - /* The void * cast is necessary to avoid an aliasing warning. -diff --git a/libgcc/config/i386/linux-unwind.h b/libgcc/config/i386/linux-unwind.h -index 540a0a2..29efbe3 100644 ---- a/libgcc/config/i386/linux-unwind.h -+++ b/libgcc/config/i386/linux-unwind.h -@@ -58,7 +58,7 @@ x86_64_fallback_frame_state (struct _Unwind_Context *context, - if (*(unsigned char *)(pc+0) == 0x48 - && *(unsigned long long *)(pc+1) == RT_SIGRETURN_SYSCALL) - { -- struct ucontext *uc_ = context->cfa; -+ ucontext_t *uc_ = context->cfa; - /* The void * cast is necessary to avoid an aliasing warning. - The aliasing warning is correct, but should not be a problem - because it does not alias anything. */ -@@ -138,7 +138,7 @@ x86_fallback_frame_state (struct _Unwind_Context *context, - siginfo_t *pinfo; - void *puc; - siginfo_t info; -- struct ucontext uc; -+ ucontext_t uc; - } *rt_ = context->cfa; - /* The void * cast is necessary to avoid an aliasing warning. - The aliasing warning is correct, but should not be a problem -diff --git a/libgcc/config/m68k/linux-unwind.h b/libgcc/config/m68k/linux-unwind.h -index 75b7cf7..f964e24 100644 ---- a/libgcc/config/m68k/linux-unwind.h -+++ b/libgcc/config/m68k/linux-unwind.h -@@ -33,7 +33,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - /* is unfortunately broken right now. */ - struct uw_ucontext { - unsigned long uc_flags; -- struct ucontext *uc_link; -+ ucontext_t *uc_link; - stack_t uc_stack; - mcontext_t uc_mcontext; - unsigned long uc_filler[80]; -diff --git a/libgcc/config/nios2/linux-unwind.h b/libgcc/config/nios2/linux-unwind.h -index 2304142..30f25ea 100644 ---- a/libgcc/config/nios2/linux-unwind.h -+++ b/libgcc/config/nios2/linux-unwind.h -@@ -38,7 +38,7 @@ struct nios2_mcontext { - - struct nios2_ucontext { - unsigned long uc_flags; -- struct ucontext *uc_link; -+ ucontext_t *uc_link; - stack_t uc_stack; - struct nios2_mcontext uc_mcontext; - sigset_t uc_sigmask; /* mask last for extensibility */ -diff --git a/libgcc/config/pa/linux-unwind.h b/libgcc/config/pa/linux-unwind.h -index 9a2657f..e47493d 100644 ---- a/libgcc/config/pa/linux-unwind.h -+++ b/libgcc/config/pa/linux-unwind.h -@@ -80,7 +80,7 @@ pa32_fallback_frame_state (struct _Unwind_Context *context, - struct sigcontext *sc; - struct rt_sigframe { - siginfo_t info; -- struct ucontext uc; -+ ucontext_t uc; - } *frame; - - /* rt_sigreturn trampoline: -diff --git a/libgcc/config/sh/linux-unwind.h b/libgcc/config/sh/linux-unwind.h -index e389cac..0bf43ba 100644 ---- a/libgcc/config/sh/linux-unwind.h -+++ b/libgcc/config/sh/linux-unwind.h -@@ -180,7 +180,7 @@ sh_fallback_frame_state (struct _Unwind_Context *context, - { - struct rt_sigframe { - siginfo_t info; -- struct ucontext uc; -+ ucontext_t uc; - } *rt_ = context->cfa; - /* The void * cast is necessary to avoid an aliasing warning. - The aliasing warning is correct, but should not be a problem -diff --git a/libgcc/config/tilepro/linux-unwind.h b/libgcc/config/tilepro/linux-unwind.h -index 796e976..75f8890 100644 ---- a/libgcc/config/tilepro/linux-unwind.h -+++ b/libgcc/config/tilepro/linux-unwind.h -@@ -61,7 +61,7 @@ tile_fallback_frame_state (struct _Unwind_Context *context, - struct rt_sigframe { - unsigned char save_area[C_ABI_SAVE_AREA_SIZE]; - siginfo_t info; -- struct ucontext uc; -+ ucontext_t uc; - } *rt_; - - /* Return if this is not a signal handler. */ -diff --git a/libgcc/config/xtensa/linux-unwind.h b/libgcc/config/xtensa/linux-unwind.h -index 9872492..586a9d4 100644 ---- a/libgcc/config/xtensa/linux-unwind.h -+++ b/libgcc/config/xtensa/linux-unwind.h -@@ -67,7 +67,7 @@ xtensa_fallback_frame_state (struct _Unwind_Context *context, - - struct rt_sigframe { - siginfo_t info; -- struct ucontext uc; -+ ucontext_t uc; - } *rt_; - - /* movi a2, __NR_rt_sigreturn; syscall */ --- -2.9.3 - diff --git a/pkgs/by-name/gc/gcc/patches/update-mcfgthread-patches.sh b/pkgs/by-name/gc/gcc/patches/update-mcfgthread-patches.sh deleted file mode 100755 index c4fd79b..0000000 --- a/pkgs/by-name/gc/gcc/patches/update-mcfgthread-patches.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env nix-shell -#! nix-shell -i bash -p curl - -# We use this script to download local copies instead of using -# fetchpatch because lmhouse/MINGW-packages-dev is constantly rebased -# against msys2/MINGW-packages-dev and won't have stable commit hashes. - -name=Added-mcf-thread-model-support-from-mcfgthread.patch -source=https://raw.githubusercontent.com/lhmouse/MINGW-packages-dev/master/mingw-w64-gcc-git -dest=$(dirname "$0") - -for majorVersion in 6 7 8 9 10; do - curl "$source/9000-gcc-$majorVersion-branch-$name" \ - > "$dest/$majorVersion/$name" -done diff --git a/pkgs/by-name/gc/gcc/patches/use-source-date-epoch.patch b/pkgs/by-name/gc/gcc/patches/use-source-date-epoch.patch deleted file mode 100644 index 65a5ab0..0000000 --- a/pkgs/by-name/gc/gcc/patches/use-source-date-epoch.patch +++ /dev/null @@ -1,52 +0,0 @@ -https://gcc.gnu.org/ml/gcc-patches/2015-06/msg02210.html - -diff --git a/libcpp/macro.c b/libcpp/macro.c -index 1e0a0b5..a52e3cb 100644 ---- a/libcpp/macro.c -+++ b/libcpp/macro.c -@@ -349,14 +349,38 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node) - slow on some systems. */ - time_t tt; - struct tm *tb = NULL; -+ char *source_date_epoch; - -- /* (time_t) -1 is a legitimate value for "number of seconds -- since the Epoch", so we have to do a little dance to -- distinguish that from a genuine error. */ -- errno = 0; -- tt = time(NULL); -- if (tt != (time_t)-1 || errno == 0) -- tb = localtime (&tt); -+ /* Allow the date and time to be set externally by an exported -+ environment variable to enable reproducible builds. */ -+ source_date_epoch = getenv ("SOURCE_DATE_EPOCH"); -+ if (source_date_epoch) -+ { -+ errno = 0; -+ tt = (time_t) strtol (source_date_epoch, NULL, 10); -+ if (errno == 0) -+ { -+ tb = gmtime (&tt); -+ if (tb == NULL) -+ cpp_error (pfile, CPP_DL_ERROR, -+ "SOURCE_DATE_EPOCH=\"%s\" is not a valid date", -+ source_date_epoch); -+ } -+ else -+ cpp_error (pfile, CPP_DL_ERROR, -+ "SOURCE_DATE_EPOCH=\"%s\" is not a valid number", -+ source_date_epoch); -+ } -+ else -+ { -+ /* (time_t) -1 is a legitimate value for "number of seconds -+ since the Epoch", so we have to do a little dance to -+ distinguish that from a genuine error. */ -+ errno = 0; -+ tt = time(NULL); -+ if (tt != (time_t)-1 || errno == 0) -+ tb = localtime (&tt); -+ } - - if (tb) - { diff --git a/pkgs/by-name/gc/gcc/versions.nix b/pkgs/by-name/gc/gcc/versions.nix deleted file mode 100644 index 261ffc6..0000000 --- a/pkgs/by-name/gc/gcc/versions.nix +++ /dev/null @@ -1,38 +0,0 @@ -let - majorMinorToVersionMap = { - "13" = "13.2.0"; - "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"; - }; - - 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}"; - -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 deleted file mode 100644 index af96d9d..0000000 --- a/pkgs/by-name/gd/gd/default.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ lib -, stdenv -, fetchurl -, fetchpatch -, autoconf -, automake -, pkg-config -, zlib -, libpng -, libjpeg -, libwebp -, libtiff -, withXorg ? true -, libXpm -, libavif -, fontconfig -, freetype -}: - -stdenv.mkDerivation rec { - pname = "gd"; - version = "2.3.3"; - - src = fetchurl { - url = "https://github.com/libgd/libgd/releases/download/${pname}-${version}/libgd-${version}.tar.xz"; - sha256 = "0qas3q9xz3wgw06dm2fj0i189rain6n60z1vyq50d5h7wbn25s1z"; - }; - - patches = [ - (fetchpatch { # included in > 2.3.3 - name = "restore-GD_FLIP.patch"; - url = "https://github.com/libgd/libgd/commit/f4bc1f5c26925548662946ed7cfa473c190a104a.diff"; - sha256 = "XRXR3NOkbEub3Nybaco2duQk0n8vxif5mTl2AUacn9w="; - }) - ]; - - hardeningDisable = [ "format" ]; - - configureFlags = [ - "--enable-gd-formats" - ] - # -pthread gets passed to clang, causing warnings - ++ lib.optional stdenv.isDarwin "--enable-werror=no"; - - nativeBuildInputs = [ autoconf automake pkg-config ]; - - buildInputs = [ zlib freetype libpng libjpeg libwebp libtiff libavif ] - ++ lib.optionals withXorg [ fontconfig libXpm ]; - - outputs = [ "bin" "dev" "out" ]; - - postFixup = '' - moveToOutput "bin/gdlib-config" $dev - ''; - - enableParallelBuilding = true; - - doCheck = false; # fails 2 tests - - meta = with lib; { - homepage = "https://libgd.github.io/"; - description = "A dynamic image creation library"; - license = licenses.free; # some custom license - platforms = platforms.unix; - maintainers = with maintainers; [ ]; - }; -} diff --git a/pkgs/by-name/gd/gd/packages.nix b/pkgs/by-name/gd/gd/packages.nix deleted file mode 100644 index 5d7d62f..0000000 --- a/pkgs/by-name/gd/gd/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - gd = callPackage ../development/libraries/gd { - automake = automake115x; - }; -} diff --git a/pkgs/by-name/gd/gdb/darwin-target-match.patch b/pkgs/by-name/gd/gdb/darwin-target-match.patch deleted file mode 100644 index 978a679..0000000 --- a/pkgs/by-name/gd/gdb/darwin-target-match.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/configure 2017-06-05 00:51:26.000000000 +0900 -+++ b/configure 2018-03-06 23:12:58.000000000 +0900 -@@ -3644,7 +3644,7 @@ - noconfigdirs="$noconfigdirs ld gprof" - noconfigdirs="$noconfigdirs sim target-rda" - ;; -- x86_64-*-darwin[912]*) -+ x86_64-*-darwin*) - noconfigdirs="$noconfigdirs ld gas gprof" - noconfigdirs="$noconfigdirs sim target-rda" - ;; diff --git a/pkgs/by-name/gd/gdb/debug-info-from-env.patch b/pkgs/by-name/gd/gdb/debug-info-from-env.patch deleted file mode 100644 index 7a3d78d..0000000 --- a/pkgs/by-name/gd/gdb/debug-info-from-env.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- a/gdb/main.c -+++ b/gdb/main.c -@@ -708,8 +708,12 @@ captured_main_1 (struct captured_main_args *context) - if (gdb_sysroot.empty ()) - gdb_sysroot = TARGET_SYSROOT_PREFIX; - -- debug_file_directory -- = relocate_gdb_directory (DEBUGDIR, DEBUGDIR_RELOCATABLE); -+ const char * nix_debug = getenv ("NIX_DEBUG_INFO_DIRS"); -+ if (nix_debug != NULL) -+ debug_file_directory = nix_debug; -+ else -+ debug_file_directory -+ = relocate_gdb_directory (DEBUGDIR, DEBUGDIR_RELOCATABLE); - - gdb_datadir = relocate_gdb_directory (GDB_DATADIR, - GDB_DATADIR_RELOCATABLE); diff --git a/pkgs/by-name/gd/gdb/default.nix b/pkgs/by-name/gd/gdb/default.nix deleted file mode 100644 index e607967..0000000 --- a/pkgs/by-name/gd/gdb/default.nix +++ /dev/null @@ -1,159 +0,0 @@ -{ lib, stdenv, targetPackages - -# Build time -, fetchurl, fetchpatch, pkg-config, perl, texinfo, setupDebugInfoDirs, buildPackages - -# 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 -}: - -let - basename = "gdb"; - targetPrefix = lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform) - "${stdenv.targetPlatform.config}-"; -in - -assert pythonSupport -> python3 != null; - -stdenv.mkDerivation rec { - pname = targetPrefix + basename + lib.optionalString hostCpuOnly "-host-cpu-only"; - version = "14.2"; - - src = fetchurl { - url = "mirror://gnu/gdb/${basename}-${version}.tar.xz"; - 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 - ''; - - patches = [ - ./debug-info-from-env.patch - ] ++ lib.optionals stdenv.isDarwin [ - ./darwin-target-match.patch - ]; - - nativeBuildInputs = [ pkg-config texinfo perl setupDebugInfoDirs ]; - - 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; }) - ++ lib.optional stdenv.isDarwin libiconv; - - propagatedNativeBuildInputs = [ setupDebugInfoDirs ]; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - - enableParallelBuilding = true; - - # darwin build fails with format hardening since v7.12 - hardeningDisable = lib.optionals stdenv.isDarwin [ "format" ]; - - env.NIX_CFLAGS_COMPILE = "-Wno-format-nonliteral"; - - configurePlatforms = [ "build" "host" "target" ]; - - preConfigure = '' - # remove precompiled docs, required for man gdbinit to mention /etc/gdb/gdbinit - rm gdb/doc/*.info* - rm gdb/doc/*.5 - rm gdb/doc/*.1 - # fix doc build https://sourceware.org/bugzilla/show_bug.cgi?id=27808 - rm gdb/doc/GDBvn.texi - - # GDB have to be built out of tree. - mkdir _build - cd _build - ''; - 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}" - - "--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-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 - ''; - - # TODO: Investigate & fix the test failures. - doCheck = false; - - passthru = { - updateScript = writeScript "update-gdb" '' - #!/usr/bin/env nix-shell - #!nix-shell -i bash -p curl pcre common-updater-scripts - - set -eu -o pipefail - - # Expect the text in format of '

GDB version 12.1

' - new_version="$(curl -s https://www.sourceware.org/gdb/ | - pcregrep -o1 '

GDB version ([0-9.]+)

')" - update-source-version ${pname} "$new_version" - ''; - }; - - meta = with lib; { - description = "The GNU Project debugger"; - - longDescription = '' - GDB, the GNU Project debugger, allows you to see what is going - on `inside' another program while it executes -- or what another - program was doing at the moment it crashed. - ''; - - homepage = "https://www.gnu.org/software/gdb/"; - - 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 ]; - }; -} diff --git a/pkgs/by-name/gd/gdb/packages.nix b/pkgs/by-name/gd/gdb/packages.nix deleted file mode 100644 index d933365..0000000 --- a/pkgs/by-name/gd/gdb/packages.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index e1a3def..0000000 --- a/pkgs/by-name/gd/gdbm/default.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ stdenv, lib, fetchurl }: - -stdenv.mkDerivation rec { - pname = "gdbm"; - version = "1.23"; - - src = fetchurl { - url = "mirror://gnu/gdbm/${pname}-${version}.tar.gz"; - sha256 = "sha256-dLEIHSH/8TrkvXwW5dblBKTCb3zeHcoNljpIQXS7ys0="; - }; - - doCheck = true; # not cross; - - # Linking static stubs on cygwin requires correct ordering. - # Consider upstreaming this. - - # Disable dbmfetch03.at test because it depends on unlink() - # 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])' "" - ''; - - enableParallelBuilding = true; - configureFlags = [ "--enable-libgdbm-compat" ]; - - # create symlinks for compatibility - postInstall = '' - install -dm755 $out/include/gdbm - ( - cd $out/include/gdbm - ln -s ../gdbm.h gdbm.h - ln -s ../ndbm.h ndbm.h - ln -s ../dbm.h dbm.h - ) - ''; - - 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. - - 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. - - 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; - maintainers = [ maintainers.vrthra ]; - }; -} diff --git a/pkgs/by-name/ge/getopt/default.nix b/pkgs/by-name/ge/getopt/default.nix deleted file mode 100644 index 6b6cbf6..0000000 --- a/pkgs/by-name/ge/getopt/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{lib, stdenv, fetchurl}: - -stdenv.mkDerivation rec { - pname = "getopt"; - version = "1.1.6"; - src = fetchurl { - url = "http://frodo.looijaard.name/system/files/software/${pname}/${pname}-${version}.tar.gz"; - sha256 = "1zn5kp8ar853rin0ay2j3p17blxy16agpp8wi8wfg4x98b31vgyh"; - }; - - # This should be fine on Linux and Darwin. Clang 16 requires it because otherwise getopt will - # attempt to use C library functions without declaring them, which is raised as an error. - env.NIX_CFLAGS_COMPILE = "-D__GNU_LIBRARY__"; - - makeFlags = [ - "WITHOUT_GETTEXT=1" - "LIBCGETOPT=0" - "prefix=${placeholder "out"}" - "CC:=$(CC)" - ]; - - meta = { - platforms = lib.platforms.unix; - homepage = "http://frodo.looijaard.name/project/getopt"; - description = "Parses command-line arguments from shell scripts"; - mainProgram = "getopt"; - }; -} diff --git a/pkgs/by-name/ge/gettext/0001-msginit-Do-not-use-POT-Creation-Date.patch b/pkgs/by-name/ge/gettext/0001-msginit-Do-not-use-POT-Creation-Date.patch deleted file mode 100644 index eea9dc6..0000000 --- a/pkgs/by-name/ge/gettext/0001-msginit-Do-not-use-POT-Creation-Date.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 1e000ca711886055176a2f90197a383d09de0e67 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Miguel=20=C3=81ngel=20Arruga=20Vivas?= - -Date: Fri, 18 Dec 2020 14:19:36 +0100 -Subject: [PATCH] msginit: Do not use POT-Creation-Date. - -* gettext-tools/src/msginit.c (po_revision_date): Do not use -POT-Creation-Date when the file is automatically generated. ---- - gettext-tools/src/msginit.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/gettext-tools/src/msginit.c b/gettext-tools/src/msginit.c -index 8ca9a3b77..06e0e7195 100644 ---- a/gettext-tools/src/msginit.c -+++ b/gettext-tools/src/msginit.c -@@ -1075,9 +1075,9 @@ static const char * - po_revision_date (const char *header) - { - if (no_translator) -- /* Because the PO file is automatically generated, we use the -- POT-Creation-Date, not the current time. */ -- return get_field (header, "POT-Creation-Date"); -+ /* Because the PO file is automatically generated, we don't -+ generate PO-Revision-Date field. */ -+ return NULL; - else - { - /* Assume the translator will modify the PO file now. */ --- -2.29.2 - diff --git a/pkgs/by-name/ge/gettext/absolute-paths.diff b/pkgs/by-name/ge/gettext/absolute-paths.diff deleted file mode 100644 index af37f61..0000000 --- a/pkgs/by-name/ge/gettext/absolute-paths.diff +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/gettext-runtime/src/gettext.sh.in b/gettext-runtime/src/gettext.sh.in -index 1dfa3bb..d6ef8a8 100644 ---- a/gettext-runtime/src/gettext.sh.in -+++ b/gettext-runtime/src/gettext.sh.in -@@ -86,14 +86,14 @@ fi - # looks up the translation of MSGID and substitutes shell variables in the - # result. - eval_gettext () { -- gettext "$1" | (export PATH `envsubst --variables "$1"`; envsubst "$1") -+ @out@/bin/gettext "$1" | (export PATH `@out@/bin/envsubst --variables "$1"`; @out@/bin/envsubst "$1") - } - - # eval_ngettext MSGID MSGID-PLURAL COUNT - # looks up the translation of MSGID / MSGID-PLURAL for COUNT and substitutes - # shell variables in the result. - eval_ngettext () { -- ngettext "$1" "$2" "$3" | (export PATH `envsubst --variables "$1 $2"`; envsubst "$1 $2") -+ @out@/bin/ngettext "$1" "$2" "$3" | (export PATH `@out@/bin/envsubst --variables "$1 $2"`; @out@/bin/envsubst "$1 $2") - } - - # Note: This use of envsubst is much safer than using the shell built-in 'eval' diff --git a/pkgs/by-name/ge/gettext/default.nix b/pkgs/by-name/ge/gettext/default.nix deleted file mode 100644 index f4757e9..0000000 --- a/pkgs/by-name/ge/gettext/default.nix +++ /dev/null @@ -1,109 +0,0 @@ -{ stdenv, lib, fetchurl, libiconv, xz, bash, path -}: - -# 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. - -stdenv.mkDerivation rec { - pname = "gettext"; - version = "0.21.1"; - - src = fetchurl { - url = "mirror://gnu/gettext/${pname}-${version}.tar.gz"; - sha256 = "sha256-6MNlDh2M7odcTzVWQjgsHfgwWL1aEe6FVcDPJ21kbUU="; - }; - patches = [ - ./absolute-paths.diff - # fix reproducibile output, in particular in the grub2 build - # https://savannah.gnu.org/bugs/index.php?59658 - ./0001-msginit-Do-not-use-POT-Creation-Date.patch - ]; - - 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" - ]; - - 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 - ]; - - setupHooks = [ - # TODO: don't use relative path - (path + "/pkgs/build-support/setup-hooks/role.bash") - ./gettext-setup-hook.sh - ]; - env = { - gettextNeedsLdflags = stdenv.hostPlatform.libc != "glibc" && !stdenv.hostPlatform.isMusl; - }; - - enableParallelBuilding = true; - enableParallelChecking = false; # fails sometimes - - meta = with lib; { - description = "Well integrated set of translation tools and documentation"; - - longDescription = '' - Usually, programs are written and documented in English, and use - English at execution time for interacting with users. Using a common - language is quite handy for communication between developers, - maintainers and users from all countries. On the other hand, most - people are less comfortable with English than with their own native - language, and would rather be using their mother tongue for day to - day's work, as far as possible. Many would simply love seeing their - computer screen showing a lot less of English, and far more of their - own language. - - GNU `gettext` is an important step for the GNU Translation Project, as - it is an asset on which we may build many other steps. This package - offers to programmers, translators, and even users, a well integrated - set of tools and documentation. Specifically, the GNU `gettext` - utilities are a set of tools that provides a framework to help other - GNU packages produce multi-lingual messages. - ''; - - homepage = "https://www.gnu.org/software/gettext/"; - - maintainers = with maintainers; [ zimbatm vrthra ]; - license = licenses.gpl2Plus; - platforms = platforms.all; - }; -} - -// lib.optionalAttrs stdenv.isDarwin { - makeFlags = [ "CFLAGS=-D_FORTIFY_SOURCE=0" ]; -} diff --git a/pkgs/by-name/ge/gettext/gettext-setup-hook.sh b/pkgs/by-name/ge/gettext/gettext-setup-hook.sh deleted file mode 100644 index 5cc9655..0000000 --- a/pkgs/by-name/ge/gettext/gettext-setup-hook.sh +++ /dev/null @@ -1,17 +0,0 @@ -gettextDataDirsHook() { - # See pkgs/build-support/setup-hooks/role.bash - getHostRoleEnvHook - if [ -d "$1/share/gettext" ]; then - addToSearchPath "GETTEXTDATADIRS${role_post}" "$1/share/gettext" - fi -} - -addEnvHooks "$hostOffset" gettextDataDirsHook - -# libintl must be listed in load flags on non-Glibc -# it doesn't hurt to have it in Glibc either though -if [ -n "@gettextNeedsLdflags@" -a -z "${dontAddExtraLibs-}" ]; then - # See pkgs/build-support/setup-hooks/role.bash - getHostRole - export NIX_LDFLAGS${role_post}+=" -lintl" -fi diff --git a/pkgs/by-name/ge/gettext/packages.nix b/pkgs/by-name/ge/gettext/packages.nix deleted file mode 100644 index ce3a167..0000000 --- a/pkgs/by-name/ge/gettext/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index cfb3cae..0000000 --- a/pkgs/by-name/gh/ghostscript/default.nix +++ /dev/null @@ -1,196 +0,0 @@ -{ 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 -# , imagemagick -# , libspectre -# , lilypond -# , pstoedit -# , python3 -}: - -let - fonts = stdenv.mkDerivation { - name = "ghostscript-fonts"; - - srcs = [ - (fetchurl { - url = "mirror://sourceforge/gs-fonts/ghostscript-fonts-std-8.11.tar.gz"; - sha256 = "00f4l10xd826kak51wsmaz69szzm2wp8a41jasr4jblz25bg7dhf"; - }) - (fetchurl { - url = "mirror://gnu/ghostscript/gnu-gs-fonts-other-6.0.tar.gz"; - sha256 = "1cxaah3r52qq152bbkiyj2f7dx1rf38vsihlhjmrvzlr8v6cqil1"; - }) - # ... add other fonts here - ]; - - installPhase = '' - mkdir "$out" - mv -v * "$out/" - ''; - }; - -in -stdenv.mkDerivation rec { - pname = "ghostscript${lib.optionalString x11Support "-with-X"}"; - version = "10.02.1"; - - src = fetchurl { - url = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${lib.replaceStrings ["."] [""] version}/ghostscript-${version}.tar.xz"; - hash = "sha512-7g91TBvYoYQorRTqo+rYD/i5YnWvUBLnqDhPHxBJDaBW7smuPMeRp6E6JOFuVN9bzN0QnH1ToUU0u9c2CjALEQ="; - }; - - patches = [ - ./urw-font-files.patch - ./doc-no-ref.diff - ]; - - outputs = [ "out" "man" "doc" ]; - - enableParallelBuilding = true; - - depsBuildBuild = [ - buildPackages.stdenv.cc - ]; - - 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 - ; - - preConfigure = '' - # https://ghostscript.com/doc/current/Make.htm - export CCAUX=$CC_FOR_BUILD - ${lib.optionalString cupsSupport ''export CUPSCONFIG="${cups.dev}/bin/cups-config"''} - - rm -rf jpeg libpng zlib jasper expat tiff lcms2mt jbig2dec freetype cups/libs ijs openjpeg - - sed "s@if ( test -f \$(INCLUDE)[^ ]* )@if ( true )@; s@INCLUDE=/usr/include@INCLUDE=/no-such-path@" -i base/unix-aux.mak - sed "s@^ZLIBDIR=.*@ZLIBDIR=${zlib.dev}/include@" -i configure.ac - - 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" - ]; - - # make check does nothing useful - doCheck = false; - - # don't build/install statically linked bin/gs - 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 - - 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 - ''; - - # dynamic library name only contains maj.min, eg. '9.53' - dylib_version = lib.versions.majorMinor version; - preFixup = lib.optionalString stdenv.isDarwin '' - install_name_tool -change libgs.dylib.$dylib_version $out/lib/libgs.dylib.$dylib_version $out/bin/gs - install_name_tool -change libgs.dylib.$dylib_version $out/lib/libgs.dylib.$dylib_version $out/bin/gsx - ''; - - # validate dynamic linkage - doInstallCheck = true; - installCheckPhase = '' - runHook preInstallCheck - - $out/bin/gs --version - $out/bin/gsx --version - pushd examples - for f in *.{ps,eps,pdf}; do - echo "Rendering $f" - $out/bin/gs \ - -dNOPAUSE \ - -dBATCH \ - -sDEVICE=bitcmyk \ - -sOutputFile=/dev/null \ - -r600 \ - -dBufferSpace=100000 \ - $f - done - popd # examples - - runHook postInstallCheck - ''; - - # passthru.tests = { - # test-corpus-render = callPackage ./test-corpus-render.nix {}; - # inherit graphicsmagick imagemagick libspectre lilypond pstoedit; - # inherit (python3.pkgs) matplotlib; - # }; - - meta = { - homepage = "https://www.ghostscript.com/"; - description = "PostScript interpreter (mainline version)"; - longDescription = '' - Ghostscript is the name of a set of tools that provides (i) an - interpreter for the PostScript language and the PDF file format, - (ii) a set of C procedures (the Ghostscript library) that - implement the graphics capabilities that appear as primitive - operations in the PostScript language, and (iii) a wide variety - of output drivers for various file formats and printers. - ''; - license = lib.licenses.agpl3Plus; - platforms = lib.platforms.all; - maintainers = [ lib.maintainers.viric ]; - mainProgram = "gs"; - }; -} diff --git a/pkgs/by-name/gh/ghostscript/doc-no-ref.diff b/pkgs/by-name/gh/ghostscript/doc-no-ref.diff deleted file mode 100644 index 7380ba2..0000000 --- a/pkgs/by-name/gh/ghostscript/doc-no-ref.diff +++ /dev/null @@ -1,7 +0,0 @@ -Kill the reference from libgc.so to the documentation directory. -It's bad for closure, and probably not really good for anything. ---- a/base/gs.mak -+++ b/base/gs.mak -@@ -538,1 +538,1 @@ -- $(EXP)$(ECHOGS_XE) -a $(gconfigd_h) -x 23 define -s -u GS_DOCDIR -x 2022 $(GS_DOCDIR) -x 22 -+ $(EXP)$(ECHOGS_XE) -a $(gconfigd_h) -x 23 define -s -u GS_DOCDIR -x 2022 /no-path-to-docs -x 22 diff --git a/pkgs/by-name/gh/ghostscript/packages.nix b/pkgs/by-name/gh/ghostscript/packages.nix deleted file mode 100644 index 618a9c4..0000000 --- a/pkgs/by-name/gh/ghostscript/packages.nix +++ /dev/null @@ -1,16 +0,0 @@ - -{ ... }: -res: pkgs: super: - -with pkgs; -{ - ghostscript = callPackage ./. { }; - ghostscriptX = ghostscript.override { - cupsSupport = true; - x11Support = true; - }; - ghostscript_headless = ghostscript.override { - cupsSupport = false; - x11Support = false; - }; -} diff --git a/pkgs/by-name/gh/ghostscript/test-corpus-render.nix b/pkgs/by-name/gh/ghostscript/test-corpus-render.nix deleted file mode 100644 index 0896612..0000000 --- a/pkgs/by-name/gh/ghostscript/test-corpus-render.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ stdenv -, fetchgit -, ghostscript -}: - -stdenv.mkDerivation { - pname = "ghostscript-test-corpus-render"; - version = "unstable-2023-05-19"; - - src = fetchgit { - url = "git://git.ghostscript.com/tests.git"; - rev = "f7d5087d3d6c236707842dcd428818c6cb8fb041"; - hash = "sha256-xHOEo1ZJG1GCcEKqaXLDpfRRQxpbSy0bzicKju9hG40="; - }; - - dontConfigure = true; - dontBuild = true; - - doCheck = true; - checkPhase = '' - find . -iregex '.*\.\(ps\|eps\|pdf\)' | while read f; do - echo "Rendering $f" - ${ghostscript}/bin/gs \ - -dNOPAUSE \ - -dBATCH \ - -sDEVICE=bitcmyk \ - -sOutputFile=/dev/null \ - -r600 \ - -dBufferSpace=100000 \ - $f - done - ''; - - installPhase = '' - touch $out - ''; -} diff --git a/pkgs/by-name/gh/ghostscript/urw-font-files.patch b/pkgs/by-name/gh/ghostscript/urw-font-files.patch deleted file mode 100644 index 9a4aab0..0000000 --- a/pkgs/by-name/gh/ghostscript/urw-font-files.patch +++ /dev/null @@ -1,61 +0,0 @@ -Sometime between 8.62 and 8.64, the fontmap file was changed such that the -`.pfb' files of the URW++ fonts no longer appear in 8.64, making it impossible -to display/render these fonts. - ---- gnu-ghostscript-8.64/Resource/Init/Fontmap.GS 2009-05-27 02:19:02.000000000 +0200 -+++ gnu-ghostscript-8.62/Resource/Init/Fontmap.GS 2009-05-27 02:19:09.000000000 +0200 -@@ -81,6 +81,54 @@ - % Copyright URW Software, Copyright 1994 by URW. - % - -+% Actual fonts -+ -+/URWBookmanL-DemiBold (b018015l.pfb) ; -+/URWBookmanL-DemiBoldItal (b018035l.pfb) ; -+/URWBookmanL-Ligh (b018012l.pfb) ; -+/URWBookmanL-LighItal (b018032l.pfb) ; -+ -+/NimbusMonL-Regu (n022003l.pfb) ; -+/NimbusMonL-ReguObli (n022023l.pfb) ; -+/NimbusMonL-Bold (n022004l.pfb) ; -+/NimbusMonL-BoldObli (n022024l.pfb) ; -+ -+/URWGothicL-Book (a010013l.pfb) ; -+/URWGothicL-BookObli (a010033l.pfb) ; -+/URWGothicL-Demi (a010015l.pfb) ; -+/URWGothicL-DemiObli (a010035l.pfb) ; -+ -+/NimbusSanL-Regu (n019003l.pfb) ; -+/NimbusSanL-ReguItal (n019023l.pfb) ; -+/NimbusSanL-Bold (n019004l.pfb) ; -+/NimbusSanL-BoldItal (n019024l.pfb) ; -+ -+/NimbusSanL-ReguCond (n019043l.pfb) ; -+/NimbusSanL-ReguCondItal (n019063l.pfb) ; -+/NimbusSanL-BoldCond (n019044l.pfb) ; -+/NimbusSanL-BoldCondItal (n019064l.pfb) ; -+ -+/URWPalladioL-Roma (p052003l.pfb) ; -+/URWPalladioL-Ital (p052023l.pfb) ; -+/URWPalladioL-Bold (p052004l.pfb) ; -+/URWPalladioL-BoldItal (p052024l.pfb) ; -+ -+/CenturySchL-Roma (c059013l.pfb) ; -+/CenturySchL-Ital (c059033l.pfb) ; -+/CenturySchL-Bold (c059016l.pfb) ; -+/CenturySchL-BoldItal (c059036l.pfb) ; -+ -+/NimbusRomNo9L-Regu (n021003l.pfb) ; -+/NimbusRomNo9L-ReguItal (n021023l.pfb) ; -+/NimbusRomNo9L-Medi (n021004l.pfb) ; -+/NimbusRomNo9L-MediItal (n021024l.pfb) ; -+ -+/StandardSymL (s050000l.pfb) ; -+ -+/URWChanceryL-MediItal (z003034l.pfb) ; -+ -+/Dingbats (d050000l.pfb) ; -+ - % Aliases - - /Bookman-Demi /URWBookmanL-DemiBold ; diff --git a/pkgs/by-name/gi/giflib/CVE-2021-40633.patch b/pkgs/by-name/gi/giflib/CVE-2021-40633.patch deleted file mode 100644 index 8a665bb..0000000 --- a/pkgs/by-name/gi/giflib/CVE-2021-40633.patch +++ /dev/null @@ -1,26 +0,0 @@ -From ccbc956432650734c91acb3fc88837f7b81267ff Mon Sep 17 00:00:00 2001 -From: "Eric S. Raymond" -Date: Wed, 21 Feb 2024 18:55:00 -0500 -Subject: [PATCH] Clean up memory better at end of run (CVE-2021-40633) - ---- - gif2rgb.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/gif2rgb.c b/gif2rgb.c -index d51226d..fc2e683 100644 ---- a/gif2rgb.c -+++ b/gif2rgb.c -@@ -517,6 +517,9 @@ static void GIF2RGB(int NumFiles, char *FileName, bool OneFileFlag, - DumpScreen2RGB(OutFileName, OneFileFlag, ColorMap, ScreenBuffer, - GifFile->SWidth, GifFile->SHeight); - -+ for (i = 0; i < GifFile->SHeight; i++) { -+ (void)free(ScreenBuffer[i]); -+ } - (void)free(ScreenBuffer); - - { --- -2.44.0 - diff --git a/pkgs/by-name/gi/giflib/default.nix b/pkgs/by-name/gi/giflib/default.nix deleted file mode 100644 index 9c24d11..0000000 --- a/pkgs/by-name/gi/giflib/default.nix +++ /dev/null @@ -1,63 +0,0 @@ -{ stdenv -, lib -, fetchurl -, fetchpatch -, fixDarwinDylibNames -, pkgsStatic -, imagemagick_light -}: - -stdenv.mkDerivation rec { - pname = "giflib"; - version = "5.2.2"; - - src = fetchurl { - url = "mirror://sourceforge/giflib/giflib-${version}.tar.gz"; - 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="; - }) - - # Install executables. - ./mingw-install-exes.patch - ]; - - nativeBuildInputs = [ - imagemagick_light - ] ++ lib.optionals stdenv.isDarwin [ - fixDarwinDylibNames - ]; - - makeFlags = [ - "PREFIX=${builtins.placeholder "out"}" - ]; - - postPatch = lib.optionalString stdenv.hostPlatform.isStatic '' - # Upstream build system does not support NOT building shared libraries. - sed -i '/all:/ s/$(LIBGIFSO)//' Makefile - sed -i '/all:/ s/$(LIBUTILSO)//' Makefile - sed -i '/-m 755 $(LIBGIFSO)/ d' Makefile - sed -i '/ln -sf $(LIBGIFSOVER)/ d' Makefile - sed -i '/ln -sf $(LIBGIFSOMAJOR)/ d' Makefile - ''; - - passthru.tests = { - static = pkgsStatic.giflib; - }; - - meta = { - description = "A library for reading and writing gif images"; - homepage = "https://giflib.sourceforge.net/"; - platforms = lib.platforms.unix ++ lib.platforms.windows; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ ]; - branch = "5.2"; - }; -} diff --git a/pkgs/by-name/gi/giflib/mingw-install-exes.patch b/pkgs/by-name/gi/giflib/mingw-install-exes.patch deleted file mode 100644 index 5ec3fda..0000000 --- a/pkgs/by-name/gi/giflib/mingw-install-exes.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/Makefile -+++ b/Makefile -@@ -92,7 +92,7 @@ - install: all install-bin install-include install-lib install-man - install-bin: $(INSTALLABLE) - $(INSTALL) -d "$(DESTDIR)$(BINDIR)" -- $(INSTALL) $^ "$(DESTDIR)$(BINDIR)" -+ $(INSTALL) $(^:=.exe) "$(DESTDIR)$(BINDIR)" - install-include: - $(INSTALL) -d "$(DESTDIR)$(INCDIR)" - $(INSTALL) -m 644 gif_lib.h "$(DESTDIR)$(INCDIR)" diff --git a/pkgs/by-name/gi/git/default.nix b/pkgs/by-name/gi/git/default.nix deleted file mode 100644 index fcf5edb..0000000 --- a/pkgs/by-name/gi/git/default.nix +++ /dev/null @@ -1,395 +0,0 @@ -{ 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 -}: - -assert osxkeychainSupport -> stdenv.isDarwin; -assert sendEmailSupport -> perlSupport; -assert svnSupport -> perlSupport; - -let - version = "2.44.0"; - svn = subversionClient.override { perlBindings = perlSupport; }; - gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ]; -in - -stdenv.mkDerivation (finalAttrs: { - pname = "git" - + lib.optionalString svnSupport "-with-svn" - + lib.optionalString (!svnSupport && !guiSupport && !sendEmailSupport && !withManual && !pythonSupport && !withpcre2) "-minimal"; - inherit version; - - src = fetchurl { - url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz"; - hash = "sha256-41hzjctbXqNAzpAKABXAOuhugE5/9k5HqkYx3e5oHeM="; - }; - - outputs = [ "out" ] ++ lib.optional withManual "doc"; - separateDebugInfo = true; - - hardeningDisable = [ "format" ]; - - enableParallelBuilding = true; - - patches = [ - ./docbook2texi.patch - ./git-sh-i18n.patch - ./git-send-email-honor-PATH.patch - ./installCheck-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} - - # 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 ] - ++ lib.optionals perlSupport [ perlPackages.perl ] - ++ lib.optionals guiSupport [tcl tk] - ++ lib.optionals withpcre2 [ pcre2 ] - ++ 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"; - - 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"; - - 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 - ''); - - - ## Install - - # WARNING: Do not `rm` or `mv` files from the source tree; use `cp` instead. - # We need many of these files during the installCheckPhase. - - 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 - ''); - - postInstall = - '' - notSupported() { - unlink $1 || true - } - - # Install git-subtree. - make -C contrib/subtree install ${lib.optionalString withManual "install-doc"} - rm -rf contrib/subtree - - # Install contrib stuff. - mkdir -p $out/share/git - cp -a contrib $out/share/git/ - mkdir -p $out/share/bash-completion/completions - ln -s $out/share/git/contrib/completion/git-completion.bash $out/share/bash-completion/completions/git - ln -s $out/share/git/contrib/completion/git-prompt.sh $out/share/bash-completion/completions/ - # only readme, developed in another repo - rm -r contrib/hooks/multimail - mkdir -p $out/share/git-core/contrib - cp -a contrib/hooks/ $out/share/git-core/contrib/ - substituteInPlace $out/share/git-core/contrib/hooks/pre-auto-gc-battery \ - --replace ' grep' ' ${gnugrep}/bin/grep' \ - - # grep is a runtime dependency, need to patch so that it's found - substituteInPlace $out/libexec/git-core/git-sh-setup \ - --replace ' grep' ' ${gnugrep}/bin/grep' \ - --replace ' egrep' ' ${gnugrep}/bin/egrep' - - # Fix references to the perl, sed, awk and various coreutil binaries used by - # shell scripts that git calls (e.g. filter-branch) - SCRIPT="$(cat <<'EOS' - BEGIN{ - @a=( - '${gnugrep}/bin/grep', '${gnused}/bin/sed', '${gawk}/bin/awk', - '${coreutils}/bin/cut', '${coreutils}/bin/basename', '${coreutils}/bin/dirname', - '${coreutils}/bin/wc', '${coreutils}/bin/tr' - ${lib.optionalString perlSupport ", '${perlPackages.perl}/bin/perl'"} - ); - } - foreach $c (@a) { - $n=(split("/", $c))[-1]; - s|(?<=[^#][^/.-])\b''${n}(?=\s)|''${c}|g - } - EOS - )" - perl -0777 -i -pe "$SCRIPT" \ - $out/libexec/git-core/git-{sh-setup,filter-branch,merge-octopus,mergetool,quiltimport,request-pull,submodule,subtree,web--browse} - - - # Also put git-http-backend into $PATH, so that we can use smart - # 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 '' - # 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}" - wrapProgram $out/libexec/git-core/git-cvsimport \ - --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}" - wrapProgram $out/libexec/git-core/git-archimport \ - --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}" - wrapProgram $out/libexec/git-core/git-instaweb \ - --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}" - wrapProgram $out/libexec/git-core/git-cvsexportcommit \ - --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}" - - # gzip (and optionally bzip2, xz, zip) are runtime dependencies for - # gitweb.cgi, need to patch so that it's found - sed -i -e "s|'compressor' => \['gzip'|'compressor' => ['${gzip}/bin/gzip'|" \ - $out/share/gitweb/gitweb.cgi - # Give access to CGI.pm and friends (was removed from perl core in 5.22) - for p in ${lib.concatStringsSep " " gitwebPerlLibs}; do - sed -i -e "/use CGI /i use lib \"$p/${perlPackages.perl.libPrefix}\";" \ - "$out/share/gitweb/gitweb.cgi" - 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 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 - ''; - - - ## InstallCheck - - doCheck = false; - inherit doInstallCheck; - - installCheckTarget = "test"; - - # see also installCheckFlagsArray - installCheckFlags = [ - "DEFAULT_TEST_TARGET=prove" - "PERL_PATH=${buildPackages.perl}/bin/perl" - ]; - - 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"} - ) - - 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 - - # 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 - - # 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 - ''; - - stripDebugList = [ "lib" "libexec" "bin" "share/git/contrib/credential/libsecret" ]; - - passthru = { - shellPath = "/bin/git-shell"; - # tests = { - # withInstallCheck = finalAttrs.finalPackage.overrideAttrs (_: { - # doInstallCheck = true; - # }); - # buildbot-integration = nixosTests.buildbot; - # } // tests.fetchgit; - }; - - meta = { - homepage = "https://git-scm.com/"; - description = "Distributed version control system"; - license = lib.licenses.gpl2; - changelog = "https://github.com/git/git/blob/v${version}/Documentation/RelNotes/${version}.txt"; - - longDescription = '' - Git, a popular distributed version control system designed to - handle very large projects with speed and efficiency. - ''; - - platforms = lib.platforms.all; - maintainers = with lib.maintainers; [ primeos wmertens globin kashw2 ]; - mainProgram = "git"; - }; -}) diff --git a/pkgs/by-name/gi/git/docbook2texi.patch b/pkgs/by-name/gi/git/docbook2texi.patch deleted file mode 100644 index f8f8ab8..0000000 --- a/pkgs/by-name/gi/git/docbook2texi.patch +++ /dev/null @@ -1,38 +0,0 @@ -This patch does two things: (1) use the right name for `docbook2texi', -and (2) make sure `gitman.info' isn't produced since it's broken (duplicate -node names). - -diff --git a/Documentation/Makefile b/Documentation/Makefile -index 26a2342bea..ceccd67ebb 100644 ---- a/Documentation/Makefile -+++ b/Documentation/Makefile -@@ -132,7 +132,7 @@ HTML_REPO = ../../git-htmldocs - - MAKEINFO = makeinfo - INSTALL_INFO = install-info --DOCBOOK2X_TEXI = docbook2x-texi -+DOCBOOK2X_TEXI = docbook2texi - DBLATEX = dblatex - ASCIIDOC_DBLATEX_DIR = /etc/asciidoc/dblatex - DBLATEX_COMMON = -p $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.xsl -s $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.sty -@@ -250,7 +250,7 @@ man1: $(DOC_MAN1) - man5: $(DOC_MAN5) - man7: $(DOC_MAN7) - --info: git.info gitman.info -+info: git.info - - pdf: user-manual.pdf - -@@ -266,10 +266,9 @@ install-man: man - - install-info: info - $(INSTALL) -d -m 755 $(DESTDIR)$(infodir) -- $(INSTALL) -m 644 git.info gitman.info $(DESTDIR)$(infodir) -+ $(INSTALL) -m 644 git.info $(DESTDIR)$(infodir) - if test -r $(DESTDIR)$(infodir)/dir; then \ - $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) git.info ;\ -- $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) gitman.info ;\ - else \ - echo "No directory found in $(DESTDIR)$(infodir)" >&2 ; \ - fi diff --git a/pkgs/by-name/gi/git/git-send-email-honor-PATH.patch b/pkgs/by-name/gi/git/git-send-email-honor-PATH.patch deleted file mode 100644 index c784008..0000000 --- a/pkgs/by-name/gi/git/git-send-email-honor-PATH.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt -index 3db4eab4ba..39bc0e77c9 100644 ---- a/Documentation/git-send-email.txt -+++ b/Documentation/git-send-email.txt -@@ -220,9 +220,9 @@ a password is obtained using 'git-credential'. - --smtp-server=:: - If set, specifies the outgoing SMTP server to use (e.g. - `smtp.example.com` or a raw IP address). If unspecified, and if -- `--sendmail-cmd` is also unspecified, the default is to search -- for `sendmail` in `/usr/sbin`, `/usr/lib` and $PATH if such a -- program is available, falling back to `localhost` otherwise. -+ `--sendmail-cmd` is also unspecified, the default is to search for -+ `sendmail` in $PATH if such a program is available, falling back to -+ `localhost` otherwise. - + - For backward compatibility, this option can also specify a full pathname - of a sendmail-like program instead; the program must support the `-i` -diff --git a/git-send-email.perl b/git-send-email.perl -index e65d969d0b..508d49483d 100755 ---- a/git-send-email.perl -+++ b/git-send-email.perl -@@ -1066,8 +1066,7 @@ sub expand_one_alias { - } - - if (!defined $sendmail_cmd && !defined $smtp_server) { -- my @sendmail_paths = qw( /usr/sbin/sendmail /usr/lib/sendmail ); -- push @sendmail_paths, map {"$_/sendmail"} split /:/, $ENV{PATH}; -+ my @sendmail_paths = map {"$_/sendmail"} split /:/, $ENV{PATH}; - foreach (@sendmail_paths) { - if (-x $_) { - $sendmail_cmd = $_; diff --git a/pkgs/by-name/gi/git/git-sh-i18n.patch b/pkgs/by-name/gi/git/git-sh-i18n.patch deleted file mode 100644 index 721f2aa..0000000 --- a/pkgs/by-name/gi/git/git-sh-i18n.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff --git a/git-sh-i18n.sh b/git-sh-i18n.sh -index e1d917fd27..e90f8e1414 100644 ---- a/git-sh-i18n.sh -+++ b/git-sh-i18n.sh -@@ -26,7 +26,7 @@ then - elif test -n "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS" - then - : no probing necessary --elif type gettext.sh >/dev/null 2>&1 -+elif type @gettext@/bin/gettext.sh >/dev/null 2>&1 - then - # GNU libintl's gettext.sh - GIT_INTERNAL_GETTEXT_SH_SCHEME=gnu -@@ -43,7 +43,8 @@ export GIT_INTERNAL_GETTEXT_SH_SCHEME - case "$GIT_INTERNAL_GETTEXT_SH_SCHEME" in - gnu) - # Use libintl's gettext.sh, or fall back to English if we can't. -- . gettext.sh -+ . @gettext@/bin/gettext.sh -+ export PATH=@gettext@/bin:$PATH - ;; - gettext_without_eval_gettext) - # Solaris has a gettext(1) but no eval_gettext(1) diff --git a/pkgs/by-name/gi/git/installCheck-path.patch b/pkgs/by-name/gi/git/installCheck-path.patch deleted file mode 100644 index 4b73d11..0000000 --- a/pkgs/by-name/gi/git/installCheck-path.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/t/test-lib.sh b/t/test-lib.sh -index 8665b0a9b6..8bb892b1af 100644 ---- a/t/test-lib.sh -+++ b/t/test-lib.sh -@@ -1227,7 +1227,7 @@ elif test -n "$GIT_TEST_INSTALLED" - then - GIT_EXEC_PATH=$($GIT_TEST_INSTALLED/git --exec-path) || - error "Cannot run git from $GIT_TEST_INSTALLED." -- PATH=$GIT_TEST_INSTALLED:$GIT_BUILD_DIR/t/helper:$PATH -+ PATH=$GIT_TEST_INSTALLED:$GIT_BUILD_DIR/t/helper:$GIT_BUILD_DIR:$PATH - GIT_EXEC_PATH=${GIT_TEST_EXEC_PATH:-$GIT_EXEC_PATH} - else # normal case, use ../bin-wrappers only unless $with_dashes: - if test -n "$no_bin_wrappers" diff --git a/pkgs/by-name/gi/git/packages.nix b/pkgs/by-name/gi/git/packages.nix deleted file mode 100644 index 70a8432..0000000 --- a/pkgs/by-name/gi/git/packages.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - git = callPackage ./. { - inherit (darwin.apple_sdk.frameworks) CoreServices Security; - perlLibs = [ perlPackages.LWP perlPackages.URI perlPackages.TermReadKey ]; - smtpPerlLibs = [ - perlPackages.libnet - perlPackages.NetSMTPSSL - perlPackages.IOSocketSSL - perlPackages.NetSSLeay - perlPackages.AuthenSASL - perlPackages.DigestHMAC - ]; - }; - - # The full-featured Git. - gitFull = git.override { - svnSupport = true; - guiSupport = true; - sendEmailSupport = true; - withSsh = true; - withLibsecret = !stdenv.isDarwin; - }; - - # 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; - - gitMinimal = git.override { - withManual = false; - pythonSupport = false; - perlSupport = false; - withpcre2 = false; - }; -} diff --git a/pkgs/by-name/gi/git/ssh-path.patch b/pkgs/by-name/gi/git/ssh-path.patch deleted file mode 100644 index 71cdc69..0000000 --- a/pkgs/by-name/gi/git/ssh-path.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/connect.c b/connect.c -index 4813f005ab..b3f12f3268 100644 ---- a/connect.c -+++ b/connect.c -@@ -1183,7 +1183,7 @@ static void fill_ssh_args(struct child_process *conn, const char *ssh_host, - - ssh = getenv("GIT_SSH"); - if (!ssh) -- ssh = "ssh"; -+ ssh = "@ssh@"; - variant = determine_ssh_variant(ssh, 0); - } - -diff --git a/git-gui/lib/remote_add.tcl b/git-gui/lib/remote_add.tcl -index 480a6b30d0..7817204241 100644 ---- a/git-gui/lib/remote_add.tcl -+++ b/git-gui/lib/remote_add.tcl -@@ -139,7 +139,7 @@ method _add {} { - # Parse the location - if { [regexp {(?:git\+)?ssh://([^/]+)(/.+)} $location xx host path] - || [regexp {([^:][^:]+):(.+)} $location xx host path]} { -- set ssh ssh -+ set ssh @ssh@ - if {[info exists env(GIT_SSH)]} { - set ssh $env(GIT_SSH) - } diff --git a/pkgs/by-name/gi/git/update.sh b/pkgs/by-name/gi/git/update.sh deleted file mode 100755 index 5457472..0000000 --- a/pkgs/by-name/gi/git/update.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell -i bash -p curl common-updater-scripts jq git - -set -eu -o pipefail - -oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion git" | tr -d '"')" -latestTag="$(git ls-remote --tags --sort="v:refname" https://github.com/git/git.git | grep -v '\{\}' | grep -v '\-rc' | tail -1 | sed 's|^.*/v\(.*\)|\1|')" -targetVersion="${1:-$latestTag}" - -if [ ! "${oldVersion}" = "${targetVersion}" ]; then - update-source-version git "${targetVersion}" - nixpkgs="$(git rev-parse --show-toplevel)" - default_nix="$nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix" - nix-build -A git - git add "${default_nix}" - git commit -m "git: ${oldVersion} -> ${targetVersion}" -else - echo "git is already up-to-date" -fi diff --git a/pkgs/by-name/gl/glib/darwin-compilation.patch b/pkgs/by-name/gl/glib/darwin-compilation.patch deleted file mode 100644 index f215eef..0000000 --- a/pkgs/by-name/gl/glib/darwin-compilation.patch +++ /dev/null @@ -1,24 +0,0 @@ -Fix compilation on Mac OS X with gcc 4.8. - -diff -ru glib-2.40.0-orig/gio/gdummyfile.c glib-2.40.0/gio/gdummyfile.c ---- glib-2.40.0-orig/gio/gdummyfile.c 2014-02-03 18:40:41.000000000 +0100 -+++ glib-2.40.0/gio/gdummyfile.c 2014-07-15 10:58:31.000000000 +0200 -@@ -454,7 +454,8 @@ - result = g_malloc (escaped_string_end - escaped_string + 1); - - out = result; -- for (in = escaped_string; in < escaped_string_end; in++) -+ in = escaped_string; -+ for (; in < escaped_string_end; in++) - { - character = *in; - if (*in == '%') -@@ -551,6 +552,7 @@ - - decoded->scheme = g_malloc (p - uri); - out = decoded->scheme; -- for (in = uri; in < p - 1; in++) -+ in = uri; -+ for (; in < p - 1; in++) - *out++ = g_ascii_tolower (*in); - *out = 0; diff --git a/pkgs/by-name/gl/glib/default.nix b/pkgs/by-name/gl/glib/default.nix deleted file mode 100644 index 09a8c46..0000000 --- a/pkgs/by-name/gl/glib/default.nix +++ /dev/null @@ -1,295 +0,0 @@ -{ 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 -}: - -assert stdenv.isLinux -> util-linuxMinimal != null; - -let - # Some packages don't get "Cflags" from pkg-config correctly - # and then fail to build when directly including like . - # This is intended to be run in postInstall of any package - # which has $out/include/ containing just some disjunct directories. - flattenInclude = '' - for dir in "''${!outputInclude}"/include/*; do - cp -r "$dir"/* "''${!outputInclude}/include/" - rm -r "$dir" - ln -s . "$dir" - done - ln -sr -t "''${!outputInclude}/include/" "''${!outputInclude}"/lib/*/include/* 2>/dev/null || true - ''; - - buildDocs = stdenv.hostPlatform == stdenv.buildPlatform && !stdenv.hostPlatform.isStatic; -in - -stdenv.mkDerivation (finalAttrs: { - pname = "glib"; - version = "2.78.4"; - - src = fetchurl { - url = "mirror://gnome/sources/glib/${lib.versions.majorMinor finalAttrs.version}/glib-${finalAttrs.version}.tar.xz"; - 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="; - }) - - ./glib-appinfo-watch.patch - ./schema-override-variable.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 - - # Disable flaky test. - # https://gitlab.gnome.org/GNOME/glib/-/issues/820 - ./skip-timer-test.patch - ]; - - 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 - ]; - - strictDeps = true; - - 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 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" - ]; - - env.NIX_CFLAGS_COMPILE = toString [ - "-Wno-error=nonnull" - # Default for release buildtype but passed manually because - # we're using plain - "-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 - - # 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} - ''; - - 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|" - - # 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 - # _multioutDocs) - postFixup = '' - for i in $dev/bin/*; do - moveToOutput "share/man/man1/''${i##*/}.1.*" "$dev" - done - ''; - - 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" - export TZDIR="${tzdata}/share/zoneinfo" - export XDG_CACHE_HOME="$TMP" - export XDG_RUNTIME_HOME="$TMP" - export HOME="$TMP" - export XDG_DATA_DIRS="${desktop-file-utils}/share:${shared-mime-info}/share" - export G_TEST_DBUS_DAEMON="${dbus}/bin/dbus-daemon" - export PATH="$PATH:$(pwd)/gobject" - echo "PATH=$PATH" - ''; - - separateDebugInfo = stdenv.isLinux; - - passthru = rec { - gioModuleDir = "lib/gio/modules"; - - makeSchemaDataDirPath = dir: name: "${dir}/share/gsettings-schemas/${name}"; - makeSchemaPath = dir: name: "${makeSchemaDataDirPath dir name}/glib-2.0/schemas"; - getSchemaPath = pkg: makeSchemaPath pkg pkg.name; - getSchemaDataDirPath = pkg: makeSchemaDataDirPath pkg pkg.name; - - tests = { - withChecks = finalAttrs.finalPackage.overrideAttrs (_: { doCheck = true; }); - pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - }; - - inherit flattenInclude; - # updateScript = gnome.updateScript { - # packageName = "glib"; - # versionPolicy = "odd-unstable"; - # }; - - # mkHardcodeGsettingsPatch = - # { - # src, - # glib-schema-to-var, - # }: - # builtins.trace - # "glib.mkHardcodeGsettingsPatch is deprecated, please use makeHardcodeGsettingsPatch instead" - # (makeHardcodeGsettingsPatch { - # inherit src; - # schemaIdToVariableMapping = glib-schema-to-var; - # }); - }; - - 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 ]); - pkgConfigModules = [ - "gio-2.0" - "gobject-2.0" - "gthread-2.0" - ]; - platforms = platforms.unix ++ platforms.windows; - - longDescription = '' - GLib provides the core application building blocks for libraries - and applications written in C. It provides the core object - system used in GNOME, the main loop implementation, and a large - set of utility functions for strings and common data structures. - ''; - }; -}) diff --git a/pkgs/by-name/gl/glib/elementary-terminal-support.patch b/pkgs/by-name/gl/glib/elementary-terminal-support.patch deleted file mode 100644 index 34a56c8..0000000 --- a/pkgs/by-name/gl/glib/elementary-terminal-support.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c -index 30fcb2937..a6a7163a7 100644 ---- a/gio/gdesktopappinfo.c -+++ b/gio/gdesktopappinfo.c -@@ -2704,6 +2704,7 @@ prepend_terminal_to_vector (int *argc, - { "gnome-terminal", "--" }, - { "mate-terminal", "-x" }, - { "xfce4-terminal", "-x" }, -+ { "io.elementary.terminal", "-x" }, - { "tilix", "-e" }, - { "konsole", "-e" }, - { "nxterm", "-e" }, diff --git a/pkgs/by-name/gl/glib/glib-appinfo-watch.patch b/pkgs/by-name/gl/glib/glib-appinfo-watch.patch deleted file mode 100644 index cbd78a6..0000000 --- a/pkgs/by-name/gl/glib/glib-appinfo-watch.patch +++ /dev/null @@ -1,102 +0,0 @@ -This patch lets GLib's GDesktopAppInfo API watch and notice changes -to the Nix user and system profiles. That way, the list of available -applications shown by the desktop environment is immediately updated -when the user installs or removes any -(see ). - -It does so by monitoring /nix/var/nix/profiles (for changes to the system -profile) and /nix/var/nix/profiles/per-user/USER (for changes to the user -profile) as well as /etc/profiles/per-user (for chanes to the user -environment profile) and crawling their share/applications sub-directory when -changes happen. - -diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c -index b779b30..31069f7 100644 ---- a/gio/gdesktopappinfo.c -+++ b/gio/gdesktopappinfo.c -@@ -150,6 +150,7 @@ typedef struct - gchar *alternatively_watching; - gboolean is_config; - gboolean is_setup; -+ gchar *nix_profile_watch_dir; - GFileMonitor *monitor; - GHashTable *app_names; - GHashTable *mime_tweaks; -@@ -181,6 +182,7 @@ desktop_file_dir_unref (DesktopFileDir *dir) - { - desktop_file_dir_reset (dir); - g_free (dir->path); -+ g_free (dir->nix_profile_watch_dir); - g_free (dir); - } - } -@@ -205,6 +207,14 @@ desktop_file_dir_get_alternative_dir (DesktopFileDir *dir) - { - gchar *parent; - -+ /* If DIR is a profile, watch the specified directory--e.g., -+ * /nix/var/nix/profiles/per-user/$USER/ for the user profile. Do not watch -+ * ~/.nix-profile or /run/current-system/sw because GFileMonitor does -+ * not pass IN_DONT_FOLLOW and thus cannot notice any change. -+ * /etc/profiles/per-user is monitored directly for the same reason. */ -+ if (dir->nix_profile_watch_dir != NULL) -+ return g_strdup (dir->nix_profile_watch_dir); -+ - /* If the directory itself exists then we need no alternative. */ - if (g_access (dir->path, R_OK | X_OK) == 0) - return NULL; -@@ -250,11 +260,11 @@ desktop_file_dir_changed (GFileMonitor *monitor, - * - * If this is a notification for a parent directory (because the - * desktop directory didn't exist) then we shouldn't fire the signal -- * unless something actually changed. -+ * unless something actually changed or it's part of a Nix profile. - */ - g_mutex_lock (&desktop_file_dir_lock); - -- if (dir->alternatively_watching) -+ if (dir->alternatively_watching && dir->nix_profile_watch_dir == NULL) - { - gchar *alternative_dir; - -@@ -1556,6 +1566,40 @@ desktop_file_dirs_lock (void) - for (i = 0; dirs[i]; i++) - g_ptr_array_add (desktop_file_dirs, desktop_file_dir_new (dirs[i])); - -+ { -+ /* Monitor the system and user profile under /nix/var/nix/profiles and -+ * treat modifications to them as if they were modifications to their -+ * /share sub-directory. */ -+ const gchar *user; -+ DesktopFileDir *system_profile_dir, *user_profile_dir, *user_env_dir; -+ -+ system_profile_dir = -+ desktop_file_dir_new ("/nix/var/nix/profiles/system/sw/share"); -+ system_profile_dir->nix_profile_watch_dir = g_strdup ("/nix/var/nix/profiles"); -+ g_ptr_array_add (desktop_file_dirs, desktop_file_dir_ref (system_profile_dir)); -+ -+ user = g_get_user_name (); -+ if (user != NULL) -+ { -+ gchar *profile_dir, *user_data_dir, *env_dir, *env_data_dir; -+ -+ profile_dir = g_build_filename ("/nix/var/nix/profiles/per-user", user, NULL); -+ user_data_dir = g_build_filename (profile_dir, "profile", "share", NULL); -+ user_profile_dir = desktop_file_dir_new (user_data_dir); -+ user_profile_dir->nix_profile_watch_dir = profile_dir; -+ -+ env_dir = g_build_filename ("/etc/profiles/per-user", NULL); -+ env_data_dir = g_build_filename (env_dir, user, "share", NULL); -+ user_env_dir = desktop_file_dir_new (env_data_dir); -+ user_env_dir->nix_profile_watch_dir = env_dir; -+ -+ g_ptr_array_add (desktop_file_dirs, desktop_file_dir_ref (user_profile_dir)); -+ g_ptr_array_add (desktop_file_dirs, desktop_file_dir_ref (user_env_dir)); -+ g_free (user_data_dir); -+ g_free (env_data_dir); -+ } -+ } -+ - /* The list of directories will never change after this, unless - * g_get_user_config_dir() changes due to %G_TEST_OPTION_ISOLATE_DIRS. */ - desktop_file_dirs_config_dir = user_config_dir; diff --git a/pkgs/by-name/gl/glib/gobject_init_on_demand.patch b/pkgs/by-name/gl/glib/gobject_init_on_demand.patch deleted file mode 100644 index d72d0b6..0000000 --- a/pkgs/by-name/gl/glib/gobject_init_on_demand.patch +++ /dev/null @@ -1,87 +0,0 @@ ---- glib-source/gobject/gtype.c 2016-08-17 17:20:47.000000000 +0200 -+++ glib-source/gobject/gtype.c 2016-09-01 21:56:31.777406646 +0200 -@@ -209,6 +209,9 @@ - static gboolean type_node_is_a_L (TypeNode *node, - TypeNode *iface_node); - -+#if !defined(__GLIBC__) -+static void gobject_init (void); -+#endif - - /* --- enumeration --- */ - -@@ -2631,7 +2634,10 @@ - GTypeFlags flags) - { - TypeNode *node; -- -+ -+#if !defined(__GLIBC__) -+ gobject_init(); -+#endif - g_assert_type_system_initialized (); - g_return_val_if_fail (type_id > 0, 0); - g_return_val_if_fail (type_name != NULL, 0); -@@ -2749,6 +2755,9 @@ - TypeNode *pnode, *node; - GType type = 0; - -+#if !defined(__GLIBC__) -+ gobject_init(); -+#endif - g_assert_type_system_initialized (); - g_return_val_if_fail (parent_type > 0, 0); - g_return_val_if_fail (type_name != NULL, 0); -@@ -2804,6 +2813,9 @@ - TypeNode *pnode, *node; - GType type; - -+#if !defined(__GLIBC__) -+ gobject_init(); -+#endif - g_assert_type_system_initialized (); - g_return_val_if_fail (parent_type > 0, 0); - g_return_val_if_fail (type_name != NULL, 0); -@@ -3319,6 +3331,9 @@ - { - TypeNode *node; - -+#if !defined(__GLIBC__) -+ gobject_init(); -+#endif - g_assert_type_system_initialized (); - - node = lookup_type_node_I (type); -@@ -4343,6 +4358,9 @@ - void - g_type_init_with_debug_flags (GTypeDebugFlags debug_flags) - { -+#if !defined(__GLIBC__) -+ gobject_init(); -+#endif - g_assert_type_system_initialized (); - - if (debug_flags) -@@ -4361,6 +4379,9 @@ - void - g_type_init (void) - { -+#if !defined(__GLIBC__) -+ gobject_init(); -+#endif - g_assert_type_system_initialized (); - } - -@@ -4372,6 +4393,12 @@ - TypeNode *node; - GType type; - -+#if !defined(__GLIBC__) -+ static int gobject_initialized = 0; -+ if (gobject_initialized) -+ return; -+ gobject_initialized = 1; -+#endif - /* Ensure GLib is initialized first, see - * https://bugzilla.gnome.org/show_bug.cgi?id=756139 - */ diff --git a/pkgs/by-name/gl/glib/packages.nix b/pkgs/by-name/gl/glib/packages.nix deleted file mode 100644 index 610c6c2..0000000 --- a/pkgs/by-name/gl/glib/packages.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - glib = callPackage ./. ( - let - glib-untested = glib.overrideAttrs { doCheck = false; }; - in - { - # break dependency cycles - # these things are only used for tests, they don't get into the closure - shared-mime-info = shared-mime-info.override { glib = glib-untested; }; - desktop-file-utils = desktop-file-utils.override { glib = glib-untested; }; - dbus = dbus.override { enableSystemd = false; }; - } - ); -} diff --git a/pkgs/by-name/gl/glib/quark_init_on_demand.patch b/pkgs/by-name/gl/glib/quark_init_on_demand.patch deleted file mode 100644 index 1680864..0000000 --- a/pkgs/by-name/gl/glib/quark_init_on_demand.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- glib-source/glib/gquark.c 2016-08-17 17:20:47.000000000 +0200 -+++ glib-source/glib/gquark.c 2016-08-30 07:49:13.298234757 +0200 -@@ -57,6 +57,9 @@ - void - g_quark_init (void) - { -+ if (quark_ht) -+ return; -+ - g_assert (quark_seq_id == 0); - quark_ht = g_hash_table_new (g_str_hash, g_str_equal); - quarks = g_new (gchar*, QUARK_BLOCK_SIZE); -@@ -138,9 +141,12 @@ - return 0; - - G_LOCK (quark_global); -+#if !defined(__GLIBC__) -+ g_quark_init (); -+#endif - quark = GPOINTER_TO_UINT (g_hash_table_lookup (quark_ht, string)); - G_UNLOCK (quark_global); - - return quark; - } - -@@ -280,6 +286,7 @@ - GQuark quark; - gchar **quarks_new; - -+ g_quark_init (); - if (quark_seq_id % QUARK_BLOCK_SIZE == 0) - { - quarks_new = g_new (gchar*, quark_seq_id + QUARK_BLOCK_SIZE); diff --git a/pkgs/by-name/gl/glib/schema-override-variable.patch b/pkgs/by-name/gl/glib/schema-override-variable.patch deleted file mode 100644 index f98af04..0000000 --- a/pkgs/by-name/gl/glib/schema-override-variable.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/gio/gsettingsschema.c b/gio/gsettingsschema.c -index 1282c10a1..feadfe3aa 100644 ---- a/gio/gsettingsschema.c -+++ b/gio/gsettingsschema.c -@@ -360,6 +360,9 @@ initialise_schema_sources (void) - - try_prepend_data_dir (g_get_user_data_dir ()); - -+ if (!is_setuid && (path = g_getenv ("NIX_GSETTINGS_OVERRIDES_DIR")) != NULL) -+ try_prepend_dir (path); -+ - /* Disallow loading extra schemas if running as setuid, as that could - * allow reading privileged files. */ - if (!is_setuid && (path = g_getenv ("GSETTINGS_SCHEMA_DIR")) != NULL) diff --git a/pkgs/by-name/gl/glib/setup-hook.sh b/pkgs/by-name/gl/glib/setup-hook.sh deleted file mode 100644 index 8ead551..0000000 --- a/pkgs/by-name/gl/glib/setup-hook.sh +++ /dev/null @@ -1,34 +0,0 @@ -make_glib_find_gsettings_schemas() { - # For packages that need gschemas of other packages (e.g. empathy) - for maybe_dir in "$1"/share/gsettings-schemas/*; do - if [[ -d "$maybe_dir/glib-2.0/schemas" ]]; then - addToSearchPath GSETTINGS_SCHEMAS_PATH "$maybe_dir" - fi - done -} -addEnvHooks "$targetOffset" make_glib_find_gsettings_schemas - -# Install gschemas, if any, in a package-specific directory -glibPreInstallPhase() { - makeFlagsArray+=("gsettingsschemadir=${!outputLib}/share/gsettings-schemas/$name/glib-2.0/schemas/") -} -preInstallPhases+=" glibPreInstallPhase" - -glibPreFixupPhase() { - # Move gschemas in case the install flag didn't help - if [ -d "$prefix/share/glib-2.0/schemas" ]; then - mkdir -p "${!outputLib}/share/gsettings-schemas/$name/glib-2.0" - mv "$prefix/share/glib-2.0/schemas" "${!outputLib}/share/gsettings-schemas/$name/glib-2.0/" - fi - - addToSearchPath GSETTINGS_SCHEMAS_PATH "${!outputLib}/share/gsettings-schemas/$name" -} - -# gappsWrapperArgsHook expects GSETTINGS_SCHEMAS_PATH variable to be set by this. -# Until we have dependency mechanism in generic builder, we need to use this ugly hack. -if [[ " ${preFixupPhases:-} " =~ " gappsWrapperArgsHook " ]]; then - preFixupPhases+=" " - preFixupPhases="${preFixupPhases/ gappsWrapperArgsHook / glibPreFixupPhase gappsWrapperArgsHook }" -else - preFixupPhases+=" glibPreFixupPhase" -fi diff --git a/pkgs/by-name/gl/glib/skip-timer-test.patch b/pkgs/by-name/gl/glib/skip-timer-test.patch deleted file mode 100644 index 942f3e7..0000000 --- a/pkgs/by-name/gl/glib/skip-timer-test.patch +++ /dev/null @@ -1,17 +0,0 @@ -Description: Skip test which performs some unreliable floating point comparisons -Forwarded: https://bugzilla.gnome.org/show_bug.cgi?id=722604 - -Index: b/glib/tests/timer.c -=================================================================== ---- a/glib/tests/timer.c -+++ b/glib/tests/timer.c -@@ -203,7 +203,7 @@ - { - g_test_init (&argc, &argv, NULL); - -- g_test_add_func ("/timer/basic", test_timer_basic); -+/* g_test_add_func ("/timer/basic", test_timer_basic);*/ -- g_test_add_func ("/timer/stop", test_timer_stop); -+/* g_test_add_func ("/timer/stop", test_timer_stop);*/ - g_test_add_func ("/timer/continue", test_timer_continue); - g_test_add_func ("/timer/reset", test_timer_reset); diff --git a/pkgs/by-name/gl/glib/split-dev-programs.patch b/pkgs/by-name/gl/glib/split-dev-programs.patch deleted file mode 100644 index 0333c5c..0000000 --- a/pkgs/by-name/gl/glib/split-dev-programs.patch +++ /dev/null @@ -1,214 +0,0 @@ -diff --git a/gio/gdbus-2.0/codegen/meson.build b/gio/gdbus-2.0/codegen/meson.build -index 65faae9b2..4297513d4 100644 ---- a/gio/gdbus-2.0/codegen/meson.build -+++ b/gio/gdbus-2.0/codegen/meson.build -@@ -20,7 +20,7 @@ gdbus_codegen_conf.set('DATADIR', glib_datadir) - # Install gdbus-codegen executable - gdbus_codegen = configure_file(input : 'gdbus-codegen.in', - output : 'gdbus-codegen', -- install_dir : get_option('bindir'), -+ install_dir : get_option('devbindir'), - install_tag : 'bin-devel', - configuration : gdbus_codegen_conf - ) -diff --git a/gio/meson.build b/gio/meson.build -index 75686bb3e..2f1a73482 100644 ---- a/gio/meson.build -+++ b/gio/meson.build -@@ -882,14 +882,15 @@ pkg.generate(libgio, - 'schemasdir=' + '${datadir}' / schemas_subdir, - 'dtdsdir=' + '${datadir}' / dtds_subdir, - 'bindir=' + '${prefix}' / get_option('bindir'), -+ 'devbindir=' + get_option('devbindir'), - 'giomoduledir=' + pkgconfig_giomodulesdir, - 'gio=' + '${bindir}' / 'gio', -- 'gio_querymodules=' + pkgconfig_multiarch_bindir / 'gio-querymodules', -- 'glib_compile_schemas=' + pkgconfig_multiarch_bindir / 'glib-compile-schemas', -- 'glib_compile_resources=' + '${bindir}' / 'glib-compile-resources', -+ 'gio_querymodules=' + '${devbindir}' / 'gio-querymodules', -+ 'glib_compile_schemas=' + '${devbindir}' / 'glib-compile-schemas', -+ 'glib_compile_resources=' + '${devbindir}' / 'glib-compile-resources', - 'gdbus=' + '${bindir}' /'gdbus', -- 'gdbus_codegen=' + '${bindir}' / 'gdbus-codegen', -- 'gresource=' + '${bindir}' / 'gresource', -+ 'gdbus_codegen=' + '${devbindir}' / 'gdbus-codegen', -+ 'gresource=' + '${devbindir}' / 'gresource', - 'gsettings=' + '${bindir}' / 'gsettings', - ], - version : glib_version, -@@ -992,6 +993,7 @@ executable('gio', gio_tool_sources, - - executable('gresource', 'gresource-tool.c', - install : true, -+ install_dir : get_option('devbindir'), - install_tag : 'bin', - # intl.lib is not compatible with SAFESEH - link_args : noseh_link_args, -@@ -999,7 +1001,7 @@ executable('gresource', 'gresource-tool.c', - - gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodule-priv.c', - install : true, -- install_dir : multiarch_bindir, -+ install_dir : get_option('devbindir'), - install_tag : 'bin', - c_args : gio_c_args, - # intl.lib is not compatible with SAFESEH -@@ -1009,7 +1011,7 @@ gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodu - glib_compile_schemas = executable('glib-compile-schemas', - ['glib-compile-schemas.c'], - install : true, -- install_dir : multiarch_bindir, -+ install_dir : get_option('devbindir'), - install_tag : 'bin', - # intl.lib is not compatible with SAFESEH - link_args : noseh_link_args, -@@ -1018,6 +1020,7 @@ glib_compile_schemas = executable('glib-compile-schemas', - glib_compile_resources = executable('glib-compile-resources', - [gconstructor_as_data_h, 'glib-compile-resources.c'], - install : true, -+ install_dir : get_option('devbindir'), - install_tag : 'bin-devel', - c_args : gio_c_args, - # intl.lib is not compatible with SAFESEH -diff --git a/gio/tests/meson.build b/gio/tests/meson.build -index 4ef3343ab..2a0a6b56b 100644 ---- a/gio/tests/meson.build -+++ b/gio/tests/meson.build -@@ -1131,16 +1131,18 @@ if have_bash and have_pkg_config - - gio_binaries = [ - 'gio', -- 'glib-compile-resources', - 'gdbus', -- 'gdbus-codegen', -- 'gresource', - 'gsettings', - ] -- gio_multiarch_binaries = [ -+ gio_dev_binaries = [ -+ 'glib-compile-resources', -+ 'gdbus-codegen', -+ 'gresource', - 'gio-querymodules', - 'glib-compile-schemas', - ] -+ gio_multiarch_binaries = [ -+ ] - - foreach binary: gio_binaries - pkg_config_tests += [ -@@ -1149,6 +1151,13 @@ if have_bash and have_pkg_config - prefix / get_option('bindir') / binary) - ] - endforeach -+ foreach binary: gio_dev_binaries -+ pkg_config_tests += [ -+ 'test "$(pkg-config --variable=@0@ gio-2.0)" = "@1@"'.format( -+ binary.underscorify(), -+ prefix / get_option('devbindir') / binary) -+ ] -+ endforeach - - foreach binary: gio_multiarch_binaries - pkg_config_tests += [ -diff --git a/glib/meson.build b/glib/meson.build -index c26a35e42..38effe12a 100644 ---- a/glib/meson.build -+++ b/glib/meson.build -@@ -447,9 +447,10 @@ pkg.generate(libglib, - variables : [ - 'bindir=' + '${prefix}' / get_option('bindir'), - 'datadir=' + '${prefix}' / get_option('datadir'), -- 'glib_genmarshal=' + '${bindir}' / 'glib-genmarshal', -- 'gobject_query=' + '${bindir}' / 'gobject-query', -- 'glib_mkenums=' + '${bindir}' / 'glib-mkenums', -+ 'devbindir=' + get_option('devbindir'), -+ 'glib_genmarshal=' + '${devbindir}' / 'glib-genmarshal', -+ 'gobject_query=' + '${devbindir}' / 'gobject-query', -+ 'glib_mkenums=' + '${devbindir}' / 'glib-mkenums', - 'glib_valgrind_suppressions=' + '${datadir}' / - valgrind_suppression_file_install_subdir / - fs.name(valgrind_suppression_file), -@@ -490,6 +491,7 @@ if host_system == 'windows' - else - gtester = executable('gtester', 'gtester.c', - install : true, -+ install_dir : get_option('devbindir'), - install_tag : 'bin-devel', - c_args : ['-UG_DISABLE_ASSERT'], - include_directories : configinc, -@@ -505,7 +507,7 @@ report_conf.set('PYTHON', python_name) - configure_file( - input: 'gtester-report.in', - output: 'gtester-report', -- install_dir: get_option('bindir'), -+ install_dir: get_option('devbindir'), - install_tag : 'bin-devel', - configuration: report_conf, - install_mode: 'rwxr-xr-x' -diff --git a/glib/tests/meson.build b/glib/tests/meson.build -index 09ecd5ab3..9748d4122 100644 ---- a/glib/tests/meson.build -+++ b/glib/tests/meson.build -@@ -508,9 +508,9 @@ if have_bash and have_pkg_config - 'test "$(pkg-config --variable=datadir glib-2.0)" = "@0@"'.format( - prefix / get_option('datadir')), - 'test "$(pkg-config --variable=gobject_query glib-2.0)" = "@0@"'.format( -- prefix / get_option('bindir') / 'gobject-query'), -+ prefix / get_option('devbindir') / 'gobject-query'), - 'test "$(pkg-config --variable=glib_mkenums glib-2.0)" = "@0@"'.format( -- prefix / get_option('bindir') / 'glib-mkenums'), -+ prefix / get_option('devbindir') / 'glib-mkenums'), - 'test "$(pkg-config --variable=glib_valgrind_suppressions glib-2.0)" = "@0@"'.format( - prefix / get_option('datadir') / - valgrind_suppression_file_install_subdir / fs.name(valgrind_suppression_file)), -diff --git a/gobject/meson.build b/gobject/meson.build -index 2129aaf8a..da8462428 100644 ---- a/gobject/meson.build -+++ b/gobject/meson.build -@@ -94,7 +94,7 @@ foreach tool: python_tools - input : tool + '.in', - output : tool, - configuration : python_tools_conf, -- install_dir : glib_bindir, -+ install_dir : get_option('devbindir'), - install_tag : 'bin-devel', - ) - -@@ -172,6 +172,7 @@ meson.override_dependency('gobject-2.0', libgobject_dep) - - gobject_query = executable('gobject-query', 'gobject-query.c', - install : true, -+ install_dir : get_option('devbindir'), - install_tag : 'bin-devel', - dependencies : [libglib_dep, libgobject_dep]) - -diff --git a/meson_options.txt b/meson_options.txt -index 517d5757c..198cc1b3c 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -4,6 +4,11 @@ option('runtime_libdir', - description : 'install runtime libraries relative to libdir', - deprecated: true) - -+option('devbindir', -+ type : 'string', -+ value : '', -+ description : 'bindir for development tools') -+ - option('charsetalias_dir', - type : 'string', - value : '', -diff --git a/tools/meson.build b/tools/meson.build -index 257312ebf..f8315392b 100644 ---- a/tools/meson.build -+++ b/tools/meson.build -@@ -8,7 +8,7 @@ if have_sh - gettextize_conf.set('datarootdir', glib_datadir) - gettextize_conf.set('datadir', glib_datadir) - configure_file(input : 'glib-gettextize.in', -- install_dir : glib_bindir, -+ install_dir : get_option('devbindir'), - install_tag : 'bin-devel', - output : 'glib-gettextize', - configuration : gettextize_conf) diff --git a/pkgs/by-name/gl/glibc/0001-Revert-Remove-all-usage-of-BASH-or-BASH-in-installed.patch b/pkgs/by-name/gl/glibc/0001-Revert-Remove-all-usage-of-BASH-or-BASH-in-installed.patch deleted file mode 100644 index 100bf31..0000000 --- a/pkgs/by-name/gl/glibc/0001-Revert-Remove-all-usage-of-BASH-or-BASH-in-installed.patch +++ /dev/null @@ -1,134 +0,0 @@ -From e207c3dbcff1d3d09c60eec99b6fec2a698b01bd Mon Sep 17 00:00:00 2001 -From: Bernardo Meurer -Date: Fri, 22 Jul 2022 22:11:07 -0700 -Subject: [PATCH] Revert "Remove all usage of @BASH@ or ${BASH} in installed - files, and hardcode /bin/bash instead" - -We need the ability to override to use `/bin/sh` here to avoid having -some bootstrap tools in a final build product. - -This reverts commit 5188a9d0265cc6f7235a8af1d31ab02e4a24853d. - -Co-authored-by: Maximilian Bosch ---- - debug/Makefile | 5 +++-- - debug/xtrace.sh | 2 +- - elf/Makefile | 4 +++- - elf/ldd.bash.in | 2 +- - elf/sotruss.sh | 2 +- - malloc/Makefile | 5 +++-- - malloc/memusage.sh | 2 +- - timezone/Makefile | 3 ++- - 8 files changed, 15 insertions(+), 10 deletions(-) - -diff --git a/debug/Makefile b/debug/Makefile -index 3903cc97a3..b041acca71 100644 ---- a/debug/Makefile -+++ b/debug/Makefile -@@ -343,8 +343,9 @@ $(objpfx)pcprofiledump: $(objpfx)pcprofiledump.o - - $(objpfx)xtrace: xtrace.sh - rm -f $@.new -- sed -e 's|@VERSION@|$(version)|' -e 's|@SLIBDIR@|$(sLIBdir)|' \ -- -e 's|@BINDIR@|$(bindir)|' -e 's|@PKGVERSION@|$(PKGVERSION)|' \ -+ sed -e 's|@BASH@|$(BASH)|' -e 's|@VERSION@|$(version)|' \ -+ -e 's|@SLIBDIR@|$(sLIBdir)|' -e 's|@BINDIR@|$(bindir)|' \ -+ -e 's|@PKGVERSION@|$(PKGVERSION)|' \ - -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|' $^ > $@.new \ - && rm -f $@ && mv $@.new $@ && chmod +x $@ - -diff --git a/debug/xtrace.sh b/debug/xtrace.sh -index 77ec1d84df..5614404a71 100755 ---- a/debug/xtrace.sh -+++ b/debug/xtrace.sh -@@ -1,4 +1,4 @@ --#!/bin/bash -+#! @BASH@ - # Copyright (C) 1999-2024 Free Software Foundation, Inc. - # This file is part of the GNU C Library. - -diff --git a/elf/Makefile b/elf/Makefile -index 5d78b659ce..a2145d7b64 100644 ---- a/elf/Makefile -+++ b/elf/Makefile -@@ -249,7 +249,8 @@ $(objpfx)sotruss-lib.so: $(common-objpfx)libc.so $(objpfx)ld.so \ - $(common-objpfx)libc_nonshared.a - - $(objpfx)sotruss: sotruss.sh $(common-objpfx)config.make -- sed -e 's%@VERSION@%$(version)%g' \ -+ sed -e 's%@BASH@%$(BASH)%g' \ -+ -e 's%@VERSION@%$(version)%g' \ - -e 's%@TEXTDOMAINDIR@%$(localedir)%g' \ - -e 's%@PREFIX@%$(prefix)%g' \ - -e 's|@PKGVERSION@|$(PKGVERSION)|g' \ -@@ -1392,6 +1393,7 @@ ldd-rewrite = -e 's%@RTLD@%$(rtlddir)/$(rtld-installed-name)%g' \ - -e 's%@VERSION@%$(version)%g' \ - -e 's|@PKGVERSION@|$(PKGVERSION)|g' \ - -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|g' \ -+ -e 's%@BASH@%$(BASH)%g' \ - -e 's%@TEXTDOMAINDIR@%$(localedir)%g' - - ifeq ($(ldd-rewrite-script),no) -diff --git a/elf/ldd.bash.in b/elf/ldd.bash.in -index d6b640df66..46111670cd 100644 ---- a/elf/ldd.bash.in -+++ b/elf/ldd.bash.in -@@ -1,4 +1,4 @@ --#!/bin/bash -+#! @BASH@ - # Copyright (C) 1996-2024 Free Software Foundation, Inc. - # This file is part of the GNU C Library. - -diff --git a/elf/sotruss.sh b/elf/sotruss.sh -index ac1a83984e..2bf17c518e 100755 ---- a/elf/sotruss.sh -+++ b/elf/sotruss.sh -@@ -1,4 +1,4 @@ --#!/bin/bash -+#! @BASH@ - # Copyright (C) 2011-2024 Free Software Foundation, Inc. - # This file is part of the GNU C Library. - -diff --git a/malloc/Makefile b/malloc/Makefile -index c83ade5f10..8dd9174b79 100644 ---- a/malloc/Makefile -+++ b/malloc/Makefile -@@ -312,8 +312,9 @@ $(objpfx)mtrace: mtrace.pl - - $(objpfx)memusage: memusage.sh - rm -f $@.new -- sed -e 's|@VERSION@|$(version)|' -e 's|@SLIBDIR@|$(sLIBdir)|' \ -- -e 's|@BINDIR@|$(bindir)|' -e 's|@PKGVERSION@|$(PKGVERSION)|' \ -+ sed -e 's|@BASH@|$(BASH)|' -e 's|@VERSION@|$(version)|' \ -+ -e 's|@SLIBDIR@|$(sLIBdir)|' -e 's|@BINDIR@|$(bindir)|' \ -+ -e 's|@PKGVERSION@|$(PKGVERSION)|' \ - -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|' $^ > $@.new \ - && rm -f $@ && mv $@.new $@ && chmod +x $@ - -diff --git a/malloc/memusage.sh b/malloc/memusage.sh -index d2d9d17ea8..2e7efc9049 100755 ---- a/malloc/memusage.sh -+++ b/malloc/memusage.sh -@@ -1,4 +1,4 @@ --#!/bin/bash -+#! @BASH@ - # Copyright (C) 1999-2024 Free Software Foundation, Inc. - # This file is part of the GNU C Library. - -diff --git a/timezone/Makefile b/timezone/Makefile -index d7acb387ba..c8e203ea3a 100644 ---- a/timezone/Makefile -+++ b/timezone/Makefile -@@ -132,7 +132,8 @@ $(testdata)/XT5: testdata/gen-XT5.sh - mv $@.tmp $@ - - $(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make -- sed -e 's|TZDIR=[^}]*|TZDIR=$(zonedir)|' \ -+ sed -e 's|/bin/bash|$(BASH)|' \ -+ -e 's|TZDIR=[^}]*|TZDIR=$(zonedir)|' \ - -e '/TZVERSION=/s|see_Makefile|"$(version)"|' \ - -e '/PKGVERSION=/s|=.*|="$(PKGVERSION)"|' \ - -e '/REPORT_BUGS_TO=/s|=.*|="$(REPORT_BUGS_TO)"|' \ --- -2.42.0 - diff --git a/pkgs/by-name/gl/glibc/0001-aarch64-math-vector.h-add-NVCC-include-guard.patch b/pkgs/by-name/gl/glibc/0001-aarch64-math-vector.h-add-NVCC-include-guard.patch deleted file mode 100644 index 234bc19..0000000 --- a/pkgs/by-name/gl/glibc/0001-aarch64-math-vector.h-add-NVCC-include-guard.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 44d0a3a9bd8c6fe59f6ccb44206a50a900bfcf4a Mon Sep 17 00:00:00 2001 -From: Connor Baker -Date: Tue, 31 Oct 2023 14:30:24 +0000 -Subject: [PATCH] aarch64/math-vector.h: add NVCC include guard - ---- - sysdeps/aarch64/fpu/bits/math-vector.h | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/sysdeps/aarch64/fpu/bits/math-vector.h b/sysdeps/aarch64/fpu/bits/math-vector.h -index 7c200599c1..583a426494 100644 ---- a/sysdeps/aarch64/fpu/bits/math-vector.h -+++ b/sysdeps/aarch64/fpu/bits/math-vector.h -@@ -25,17 +25,17 @@ - /* Get default empty definitions for simd declarations. */ - #include - --#if __GNUC_PREREQ(9, 0) -+#if __GNUC_PREREQ(9, 0) && !defined(__CUDACC__) - # define __ADVSIMD_VEC_MATH_SUPPORTED - typedef __Float32x4_t __f32x4_t; - typedef __Float64x2_t __f64x2_t; --#elif __glibc_clang_prereq(8, 0) -+#elif __glibc_clang_prereq(8, 0) && !defined(__CUDACC__) - # define __ADVSIMD_VEC_MATH_SUPPORTED - typedef __attribute__ ((__neon_vector_type__ (4))) float __f32x4_t; - typedef __attribute__ ((__neon_vector_type__ (2))) double __f64x2_t; - #endif - --#if __GNUC_PREREQ(10, 0) || __glibc_clang_prereq(11, 0) -+#if (__GNUC_PREREQ(10, 0) || __glibc_clang_prereq(11, 0)) && !defined(__CUDACC__) - # define __SVE_VEC_MATH_SUPPORTED - typedef __SVFloat32_t __sv_f32_t; - typedef __SVFloat64_t __sv_f64_t; --- -2.42.0 - diff --git a/pkgs/by-name/gl/glibc/2.39-master.patch b/pkgs/by-name/gl/glibc/2.39-master.patch deleted file mode 100644 index 3e08155..0000000 --- a/pkgs/by-name/gl/glibc/2.39-master.patch +++ /dev/null @@ -1,566 +0,0 @@ -commit 6d1e3fb07b45e2e31e469b16cf21b24bccf8914c -Author: Andreas K. Hüttel -Date: Wed Jan 31 02:12:43 2024 +0100 - - Replace advisories directory - - Signed-off-by: Andreas K. Hüttel - -diff --git a/ADVISORIES b/ADVISORIES -new file mode 100644 -index 0000000000..d4e33f2df3 ---- /dev/null -+++ b/ADVISORIES -@@ -0,0 +1,2 @@ -+For the GNU C Library Security Advisories, see the git master branch: -+https://sourceware.org/git/?p=glibc.git;a=tree;f=advisories;hb=HEAD -diff --git a/advisories/GLIBC-SA-2023-0001 b/advisories/GLIBC-SA-2023-0001 -deleted file mode 100644 -index 3d19c91b6a..0000000000 ---- a/advisories/GLIBC-SA-2023-0001 -+++ /dev/null -@@ -1,14 +0,0 @@ --printf: incorrect output for integers with thousands separator and width field -- --When the printf family of functions is called with a format specifier --that uses an (enable grouping) and a minimum width --specifier, the resulting output could be larger than reasonably expected --by a caller that computed a tight bound on the buffer size. The --resulting larger than expected output could result in a buffer overflow --in the printf family of functions. -- --CVE-Id: CVE-2023-25139 --Public-Date: 2023-02-02 --Vulnerable-Commit: e88b9f0e5cc50cab57a299dc7efe1a4eb385161d (2.37) --Fix-Commit: c980549cc6a1c03c23cc2fe3e7b0fe626a0364b0 (2.38) --Fix-Commit: 07b9521fc6369d000216b96562ff7c0ed32a16c4 (2.37-4) -diff --git a/advisories/GLIBC-SA-2023-0002 b/advisories/GLIBC-SA-2023-0002 -deleted file mode 100644 -index 5122669a64..0000000000 ---- a/advisories/GLIBC-SA-2023-0002 -+++ /dev/null -@@ -1,15 +0,0 @@ --getaddrinfo: Stack read overflow in no-aaaa mode -- --If the system is configured in no-aaaa mode via /etc/resolv.conf, --getaddrinfo is called for the AF_UNSPEC address family, and a DNS --response is received over TCP that is larger than 2048 bytes, --getaddrinfo may potentially disclose stack contents via the returned --address data, or crash. -- --CVE-Id: CVE-2023-4527 --Public-Date: 2023-09-12 --Vulnerable-Commit: f282cdbe7f436c75864e5640a409a10485e9abb2 (2.36) --Fix-Commit: bd77dd7e73e3530203be1c52c8a29d08270cb25d (2.39) --Fix-Commit: 4ea972b7edd7e36610e8cde18bf7a8149d7bac4f (2.36-113) --Fix-Commit: b7529346025a130fee483d42178b5c118da971bb (2.37-38) --Fix-Commit: b25508dd774b617f99419bdc3cf2ace4560cd2d6 (2.38-19) -diff --git a/advisories/GLIBC-SA-2023-0003 b/advisories/GLIBC-SA-2023-0003 -deleted file mode 100644 -index d3aef80348..0000000000 ---- a/advisories/GLIBC-SA-2023-0003 -+++ /dev/null -@@ -1,15 +0,0 @@ --getaddrinfo: Potential use-after-free -- --When an NSS plugin only implements the _gethostbyname2_r and --_getcanonname_r callbacks, getaddrinfo could use memory that was freed --during buffer resizing, potentially causing a crash or read or write to --arbitrary memory. -- --CVE-Id: CVE-2023-4806 --Public-Date: 2023-09-12 --Fix-Commit: 973fe93a5675c42798b2161c6f29c01b0e243994 (2.39) --Fix-Commit: e09ee267c03e3150c2c9ba28625ab130705a485e (2.34-420) --Fix-Commit: e3ccb230a961b4797510e6a1f5f21fd9021853e7 (2.35-270) --Fix-Commit: a9728f798ec7f05454c95637ee6581afaa9b487d (2.36-115) --Fix-Commit: 6529a7466c935f36e9006b854d6f4e1d4876f942 (2.37-39) --Fix-Commit: 00ae4f10b504bc4564e9f22f00907093f1ab9338 (2.38-20) -diff --git a/advisories/GLIBC-SA-2023-0004 b/advisories/GLIBC-SA-2023-0004 -deleted file mode 100644 -index 5286a7aa54..0000000000 ---- a/advisories/GLIBC-SA-2023-0004 -+++ /dev/null -@@ -1,16 +0,0 @@ --tunables: local privilege escalation through buffer overflow -- --If a tunable of the form NAME=NAME=VAL is passed in the environment of a --setuid program and NAME is valid, it may result in a buffer overflow, --which could be exploited to achieve escalated privileges. This flaw was --introduced in glibc 2.34. -- --CVE-Id: CVE-2023-4911 --Public-Date: 2023-10-03 --Vulnerable-Commit: 2ed18c5b534d9e92fc006202a5af0df6b72e7aca (2.34) --Fix-Commit: 1056e5b4c3f2d90ed2b4a55f96add28da2f4c8fa (2.39) --Fix-Commit: dcc367f148bc92e7f3778a125f7a416b093964d9 (2.34-423) --Fix-Commit: c84018a05aec80f5ee6f682db0da1130b0196aef (2.35-274) --Fix-Commit: 22955ad85186ee05834e47e665056148ca07699c (2.36-118) --Fix-Commit: b4e23c75aea756b4bddc4abcf27a1c6dca8b6bd3 (2.37-45) --Fix-Commit: 750a45a783906a19591fb8ff6b7841470f1f5701 (2.38-27) -diff --git a/advisories/GLIBC-SA-2023-0005 b/advisories/GLIBC-SA-2023-0005 -deleted file mode 100644 -index cc4eb90b82..0000000000 ---- a/advisories/GLIBC-SA-2023-0005 -+++ /dev/null -@@ -1,18 +0,0 @@ --getaddrinfo: DoS due to memory leak -- --The fix for CVE-2023-4806 introduced a memory leak when an application --calls getaddrinfo for AF_INET6 with AI_CANONNAME, AI_ALL and AI_V4MAPPED --flags set. -- --CVE-Id: CVE-2023-5156 --Public-Date: 2023-09-25 --Vulnerable-Commit: e09ee267c03e3150c2c9ba28625ab130705a485e (2.34-420) --Vulnerable-Commit: e3ccb230a961b4797510e6a1f5f21fd9021853e7 (2.35-270) --Vulnerable-Commit: a9728f798ec7f05454c95637ee6581afaa9b487d (2.36-115) --Vulnerable-Commit: 6529a7466c935f36e9006b854d6f4e1d4876f942 (2.37-39) --Vulnerable-Commit: 00ae4f10b504bc4564e9f22f00907093f1ab9338 (2.38-20) --Fix-Commit: 8006457ab7e1cd556b919f477348a96fe88f2e49 (2.34-421) --Fix-Commit: 17092c0311f954e6f3c010f73ce3a78c24ac279a (2.35-272) --Fix-Commit: 856bac55f98dc840e7c27cfa82262b933385de90 (2.36-116) --Fix-Commit: 4473d1b87d04b25cdd0e0354814eeaa421328268 (2.37-42) --Fix-Commit: 5ee59ca371b99984232d7584fe2b1a758b4421d3 (2.38-24) -diff --git a/advisories/GLIBC-SA-2024-0001 b/advisories/GLIBC-SA-2024-0001 -deleted file mode 100644 -index 28931c75ae..0000000000 ---- a/advisories/GLIBC-SA-2024-0001 -+++ /dev/null -@@ -1,15 +0,0 @@ --syslog: Heap buffer overflow in __vsyslog_internal -- --__vsyslog_internal did not handle a case where printing a SYSLOG_HEADER --containing a long program name failed to update the required buffer --size, leading to the allocation and overflow of a too-small buffer on --the heap. -- --CVE-Id: CVE-2023-6246 --Public-Date: 2024-01-30 --Vulnerable-Commit: 52a5be0df411ef3ff45c10c7c308cb92993d15b1 (2.37) --Fix-Commit: 6bd0e4efcc78f3c0115e5ea9739a1642807450da (2.39) --Fix-Commit: 23514c72b780f3da097ecf33a793b7ba9c2070d2 (2.38-42) --Fix-Commit: 97a4292aa4a2642e251472b878d0ec4c46a0e59a (2.37-57) --Vulnerable-Commit: b0e7888d1fa2dbd2d9e1645ec8c796abf78880b9 (2.36-16) --Fix-Commit: d1a83b6767f68b3cb5b4b4ea2617254acd040c82 (2.36-126) -diff --git a/advisories/GLIBC-SA-2024-0002 b/advisories/GLIBC-SA-2024-0002 -deleted file mode 100644 -index 940bfcf2fc..0000000000 ---- a/advisories/GLIBC-SA-2024-0002 -+++ /dev/null -@@ -1,15 +0,0 @@ --syslog: Heap buffer overflow in __vsyslog_internal -- --__vsyslog_internal used the return value of snprintf/vsnprintf to --calculate buffer sizes for memory allocation. If these functions (for --any reason) failed and returned -1, the resulting buffer would be too --small to hold output. -- --CVE-Id: CVE-2023-6779 --Public-Date: 2024-01-30 --Vulnerable-Commit: 52a5be0df411ef3ff45c10c7c308cb92993d15b1 (2.37) --Fix-Commit: 7e5a0c286da33159d47d0122007aac016f3e02cd (2.39) --Fix-Commit: d0338312aace5bbfef85e03055e1212dd0e49578 (2.38-43) --Fix-Commit: 67062eccd9a65d7fda9976a56aeaaf6c25a80214 (2.37-58) --Vulnerable-Commit: b0e7888d1fa2dbd2d9e1645ec8c796abf78880b9 (2.36-16) --Fix-Commit: 2bc9d7c002bdac38b5c2a3f11b78e309d7765b83 (2.36-127) -diff --git a/advisories/GLIBC-SA-2024-0003 b/advisories/GLIBC-SA-2024-0003 -deleted file mode 100644 -index b43a5150ab..0000000000 ---- a/advisories/GLIBC-SA-2024-0003 -+++ /dev/null -@@ -1,13 +0,0 @@ --syslog: Integer overflow in __vsyslog_internal -- --__vsyslog_internal calculated a buffer size by adding two integers, but --did not first check if the addition would overflow. -- --CVE-Id: CVE-2023-6780 --Public-Date: 2024-01-30 --Vulnerable-Commit: 52a5be0df411ef3ff45c10c7c308cb92993d15b1 (2.37) --Fix-Commit: ddf542da94caf97ff43cc2875c88749880b7259b (2.39) --Fix-Commit: d37c2b20a4787463d192b32041c3406c2bd91de0 (2.38-44) --Fix-Commit: 2b58cba076e912961ceaa5fa58588e4b10f791c0 (2.37-59) --Vulnerable-Commit: b0e7888d1fa2dbd2d9e1645ec8c796abf78880b9 (2.36-16) --Fix-Commit: b9b7d6a27aa0632f334352fa400771115b3c69b7 (2.36-128) -diff --git a/advisories/README b/advisories/README -deleted file mode 100644 -index 94e68b1350..0000000000 ---- a/advisories/README -+++ /dev/null -@@ -1,73 +0,0 @@ --GNU C Library Security Advisory Format --====================================== -- --Security advisories in this directory follow a simple git commit log --format, with a heading and free-format description augmented with tags --to allow parsing key information. References to code changes are --specific to the glibc repository and follow a specific format: -- -- Tag-name: (release-version) -- --The indicates a specific commit in the repository. The --release-version indicates the publicly consumable release in which this --commit is known to exist. The release-version is derived from the --git-describe format, (i.e. stripped out from glibc-2.34.NNN-gxxxx) and --is of the form 2.34-NNN. If the -NNN suffix is absent, it means that --the change is in that release tarball, otherwise the change is on the --release/2.YY/master branch and not in any released tarball. -- --The following tags are currently being used: -- --CVE-Id: --This is the CVE-Id assigned under the CVE Program --(https://www.cve.org/). -- --Public-Date: --The date this issue became publicly known. -- --Vulnerable-Commit: --The commit that introduced this vulnerability. There could be multiple --entries, one for each release branch in the glibc repository; the --release-version portion of this tag should tell you which branch this is --on. -- --Fix-Commit: --The commit that fixed this vulnerability. There could be multiple --entries for each release branch in the glibc repository, indicating that --all of those commits contributed to fixing that issue in each of those --branches. -- --Adding an Advisory -------------------- -- --An advisory for a CVE needs to be added on the master branch in two steps: -- --1. Add the text of the advisory without any Fix-Commit tags along with -- the fix for the CVE. Add the Vulnerable-Commit tag, if applicable. -- The advisories directory does not exist in release branches, so keep -- the advisory text commit distinct from the code changes, to ease -- backports. Ask for the GLIBC-SA advisory number from the security -- team. -- --2. Finish all backports on release branches and then back on the msater -- branch, add all commit refs to the advisory using the Fix-Commit -- tags. Don't bother adding the release-version subscript since the -- next step will overwrite it. -- --3. Run the process-advisories.sh script in the scripts directory on the -- advisory: -- -- scripts/process-advisories.sh update GLIBC-SA-YYYY-NNNN -- -- (replace YYYY-NNNN with the actual advisory number). -- --4. Verify the updated advisory and push the result. -- --Getting a NEWS snippet from advisories ---------------------------------------- -- --Run: -- -- scripts/process-advisories.sh news -- --and copy the content into the NEWS file. - -commit 63295e4fda1f6dab4bf7442706fe303bf283036c -Author: Adhemerval Zanella -Date: Mon Feb 5 16:10:24 2024 +0000 - - arm: Remove wrong ldr from _dl_start_user (BZ 31339) - - The commit 49d877a80b29d3002887b084eec6676d9f5fec18 (arm: Remove - _dl_skip_args usage) removed the _SKIP_ARGS literal, which was - previously loader to r4 on loader _start. However, the cleanup did not - remove the following 'ldr r4, [sl, r4]' on _dl_start_user, used to check - to skip the arguments after ld self-relocations. - - In my testing, the kernel initially set r4 to 0, which makes the - ldr instruction just read the _GLOBAL_OFFSET_TABLE_. However, since r4 - is a callee-saved register; a different runtime might not zero - initialize it and thus trigger an invalid memory access. - - Checked on arm-linux-gnu. - - Reported-by: Adrian Ratiu - Reviewed-by: Szabolcs Nagy - (cherry picked from commit 1e25112dc0cb2515d27d8d178b1ecce778a9d37a) - -diff --git a/sysdeps/arm/dl-machine.h b/sysdeps/arm/dl-machine.h -index b857bbc868..dd1a0f6b6e 100644 ---- a/sysdeps/arm/dl-machine.h -+++ b/sysdeps/arm/dl-machine.h -@@ -139,7 +139,6 @@ _start:\n\ - _dl_start_user:\n\ - adr r6, .L_GET_GOT\n\ - add sl, sl, r6\n\ -- ldr r4, [sl, r4]\n\ - @ save the entry point in another register\n\ - mov r6, r0\n\ - @ get the original arg count\n\ - -commit 312e159626b67fe11f39e83e222cf4348a3962f3 -Author: Adhemerval Zanella -Date: Thu Feb 1 14:29:53 2024 -0300 - - mips: FIx clone3 implementation (BZ 31325) - - For o32 we need to setup a minimal stack frame to allow cprestore - on __thread_start_clone3 (which instruct the linker to save the - gp for PIC). Also, there is no guarantee by kABI that $8 will be - preserved after syscall execution, so we need to save it on the - provided stack. - - Checked on mipsel-linux-gnu. - - Reported-by: Khem Raj - Tested-by: Khem Raj - (cherry picked from commit bbd248ac0d75efdef8fe61ea69b1fb25fb95b6e7) - -diff --git a/sysdeps/unix/sysv/linux/mips/clone3.S b/sysdeps/unix/sysv/linux/mips/clone3.S -index e9fec2fa47..481b8ae963 100644 ---- a/sysdeps/unix/sysv/linux/mips/clone3.S -+++ b/sysdeps/unix/sysv/linux/mips/clone3.S -@@ -37,11 +37,6 @@ - - .text - .set nomips16 --#if _MIPS_SIM == _ABIO32 --# define EXTRA_LOCALS 1 --#else --# define EXTRA_LOCALS 0 --#endif - #define FRAMESZ ((NARGSAVE*SZREG)+ALSZ)&ALMASK - GPOFF= FRAMESZ-(1*SZREG) - NESTED(__clone3, SZREG, sp) -@@ -68,8 +63,31 @@ NESTED(__clone3, SZREG, sp) - beqz a0, L(error) /* No NULL cl_args pointer. */ - beqz a2, L(error) /* No NULL function pointer. */ - -+#if _MIPS_SIM == _ABIO32 -+ /* Both stack and stack_size on clone_args are defined as uint64_t, and -+ there is no need to handle values larger than to 32 bits for o32. */ -+# if __BYTE_ORDER == __BIG_ENDIAN -+# define CL_STACKPOINTER_OFFSET 44 -+# define CL_STACKSIZE_OFFSET 52 -+# else -+# define CL_STACKPOINTER_OFFSET 40 -+# define CL_STACKSIZE_OFFSET 48 -+# endif -+ -+ /* For o32 we need to setup a minimal stack frame to allow cprestore -+ on __thread_start_clone3. Also there is no guarantee by kABI that -+ $8 will be preserved after syscall execution (so we need to save it -+ on the provided stack). */ -+ lw t0, CL_STACKPOINTER_OFFSET(a0) /* Load the stack pointer. */ -+ lw t1, CL_STACKSIZE_OFFSET(a0) /* Load the stack_size. */ -+ addiu t1, -32 /* Update the stack size. */ -+ addu t2, t1, t0 /* Calculate the thread stack. */ -+ sw a3, 0(t2) /* Save argument pointer. */ -+ sw t1, CL_STACKSIZE_OFFSET(a0) /* Save the new stack size. */ -+#else - move $8, a3 /* a3 is set to 0/1 for syscall success/error - while a4/$8 is returned unmodified. */ -+#endif - - /* Do the system call, the kernel expects: - v0: system call number -@@ -125,7 +143,11 @@ L(thread_start_clone3): - - /* Restore the arg for user's function. */ - move t9, a2 /* Function pointer. */ -+#if _MIPS_SIM == _ABIO32 -+ PTR_L a0, 0(sp) -+#else - move a0, $8 /* Argument pointer. */ -+#endif - - /* Call the user's function. */ - jal t9 - -commit d0724994de40934c552f1f68de89053848a44927 -Author: Xi Ruoyao -Date: Thu Feb 22 21:26:55 2024 +0100 - - math: Update mips64 ulps - - Signed-off-by: Andreas K. Hüttel - (cherry picked from commit e2a65ecc4b30a797df7dc6529f09b712aa256029) - -diff --git a/sysdeps/mips/mips64/libm-test-ulps b/sysdeps/mips/mips64/libm-test-ulps -index 78969745b2..933aba4735 100644 ---- a/sysdeps/mips/mips64/libm-test-ulps -+++ b/sysdeps/mips/mips64/libm-test-ulps -@@ -1066,17 +1066,17 @@ double: 1 - ldouble: 1 - - Function: "j0": --double: 2 -+double: 3 - float: 9 - ldouble: 2 - - Function: "j0_downward": --double: 5 -+double: 6 - float: 9 - ldouble: 9 - - Function: "j0_towardzero": --double: 6 -+double: 7 - float: 9 - ldouble: 9 - -@@ -1146,6 +1146,7 @@ float: 6 - ldouble: 8 - - Function: "log": -+double: 1 - float: 1 - ldouble: 1 - - -commit e0910f1d3278f05439fb434ee528fc9be1b6bd5e -Author: Stefan Liebler -Date: Thu Feb 22 15:03:27 2024 +0100 - - S390: Do not clobber r7 in clone [BZ #31402] - - Starting with commit e57d8fc97b90127de4ed3e3a9cdf663667580935 - "S390: Always use svc 0" - clone clobbers the call-saved register r7 in error case: - function or stack is NULL. - - This patch restores the saved registers also in the error case. - Furthermore the existing test misc/tst-clone is extended to check - all error cases and that clone does not clobber registers in this - error case. - - (cherry picked from commit 02782fd12849b6673cb5c2728cb750e8ec295aa3) - -diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/clone.S b/sysdeps/unix/sysv/linux/s390/s390-32/clone.S -index 4c882ef2ee..a7a863242c 100644 ---- a/sysdeps/unix/sysv/linux/s390/s390-32/clone.S -+++ b/sysdeps/unix/sysv/linux/s390/s390-32/clone.S -@@ -53,6 +53,7 @@ ENTRY(__clone) - br %r14 - error: - lhi %r2,-EINVAL -+ lm %r6,%r7,24(%r15) /* Load registers. */ - j SYSCALL_ERROR_LABEL - PSEUDO_END (__clone) - -diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/clone.S b/sysdeps/unix/sysv/linux/s390/s390-64/clone.S -index 4eb104be71..c552a6b8de 100644 ---- a/sysdeps/unix/sysv/linux/s390/s390-64/clone.S -+++ b/sysdeps/unix/sysv/linux/s390/s390-64/clone.S -@@ -54,6 +54,7 @@ ENTRY(__clone) - br %r14 - error: - lghi %r2,-EINVAL -+ lmg %r6,%r7,48(%r15) /* Restore registers. */ - jg SYSCALL_ERROR_LABEL - PSEUDO_END (__clone) - -diff --git a/sysdeps/unix/sysv/linux/tst-clone.c b/sysdeps/unix/sysv/linux/tst-clone.c -index 470676ab2b..2bc7124983 100644 ---- a/sysdeps/unix/sysv/linux/tst-clone.c -+++ b/sysdeps/unix/sysv/linux/tst-clone.c -@@ -16,12 +16,16 @@ - License along with the GNU C Library; if not, see - . */ - --/* BZ #2386 */ -+/* BZ #2386, BZ #31402 */ - #include - #include - #include - #include - #include -+#include /* For _STACK_GROWS_{UP,DOWN}. */ -+#include -+ -+volatile unsigned v = 0xdeadbeef; - - int child_fn(void *arg) - { -@@ -30,22 +34,67 @@ int child_fn(void *arg) - } - - static int --do_test (void) -+__attribute__((noinline)) -+do_clone (int (*fn)(void *), void *stack) - { - int result; -+ unsigned int a = v; -+ unsigned int b = v; -+ unsigned int c = v; -+ unsigned int d = v; -+ unsigned int e = v; -+ unsigned int f = v; -+ unsigned int g = v; -+ unsigned int h = v; -+ unsigned int i = v; -+ unsigned int j = v; -+ unsigned int k = v; -+ unsigned int l = v; -+ unsigned int m = v; -+ unsigned int n = v; -+ unsigned int o = v; -+ -+ result = clone (fn, stack, 0, NULL); -+ -+ /* Check that clone does not clobber call-saved registers. */ -+ TEST_VERIFY (a == v && b == v && c == v && d == v && e == v && f == v -+ && g == v && h == v && i == v && j == v && k == v && l == v -+ && m == v && n == v && o == v); -+ -+ return result; -+} -+ -+static void -+__attribute__((noinline)) -+do_test_single (int (*fn)(void *), void *stack) -+{ -+ printf ("%s (fn=%p, stack=%p)\n", __FUNCTION__, fn, stack); -+ errno = 0; -+ -+ int result = do_clone (fn, stack); -+ -+ TEST_COMPARE (errno, EINVAL); -+ TEST_COMPARE (result, -1); -+} - -- result = clone (child_fn, NULL, 0, NULL); -+static int -+do_test (void) -+{ -+ char st[128 * 1024] __attribute__ ((aligned)); -+ void *stack = NULL; -+#if _STACK_GROWS_DOWN -+ stack = st + sizeof (st); -+#elif _STACK_GROWS_UP -+ stack = st; -+#else -+# error "Define either _STACK_GROWS_DOWN or _STACK_GROWS_UP" -+#endif - -- if (errno != EINVAL || result != -1) -- { -- printf ("FAIL: clone()=%d (wanted -1) errno=%d (wanted %d)\n", -- result, errno, EINVAL); -- return 1; -- } -+ do_test_single (child_fn, NULL); -+ do_test_single (NULL, stack); -+ do_test_single (NULL, NULL); - -- puts ("All OK"); - return 0; - } - --#define TEST_FUNCTION do_test () --#include "../test-skeleton.c" -+#include diff --git a/pkgs/by-name/gl/glibc/common.nix b/pkgs/by-name/gl/glibc/common.nix deleted file mode 100644 index 4d6fb5a..0000000 --- a/pkgs/by-name/gl/glibc/common.nix +++ /dev/null @@ -1,292 +0,0 @@ -/* Build configuration used to build glibc, Info files, and locale - information. - - Note that this derivation has multiple outputs and does not respect the - standard convention of putting the executables into the first output. The - first output is `lib` so that the libraries provided by this derivation - can be accessed directly, e.g. - - "${pkgs.glibc}/lib/ld-linux-x86_64.so.2" - - The executables are put into `bin` output and need to be referenced via - the `bin` attribute of the main package, e.g. - - "${pkgs.glibc.bin}/bin/ldd". - - The executables provided by glibc typically include `ldd`, `locale`, `iconv` - but the exact set depends on the library version and the configuration. -*/ - -# 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. - -{ stdenv, lib -, buildPackages -, fetchurl -, linuxHeaders ? null -, gd ? null, libpng ? null -, libidn2 -, bison -, python3Minimal -}: - -{ pname -, withLinuxHeaders ? false -, profilingLibraries ? false -, withGd ? false -, extraBuildInputs ? [] -, extraNativeBuildInputs ? [] -, ... -} @ args: - -let - version = "2.39"; - patchSuffix = "-5"; - sha256 = "sha256-93vUfPgXDFc2Wue/hmlsEYrbOxINMlnGTFAtPcHi2SY="; -in - -assert withLinuxHeaders -> linuxHeaders != null; -assert withGd -> gd != null && libpng != null; - -stdenv.mkDerivation ({ - version = version + patchSuffix; - - 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 - - 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 - - /* 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 - - /* 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 - - /* https://github.com/NixOS/nixpkgs/pull/137601 */ - ./nix-nss-open-files.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 - - 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. - */ - ++ ( - 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 - - # 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 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/darwin-cross-build.patch b/pkgs/by-name/gl/glibc/darwin-cross-build.patch deleted file mode 100644 index b746e63..0000000 --- a/pkgs/by-name/gl/glibc/darwin-cross-build.patch +++ /dev/null @@ -1,77 +0,0 @@ -enable cross-compilation of glibc on Darwin (build=Darwin, host=Linux) -* increase ulimit for open files: macOS default of 256 is too low for glibc build system -* use host version of ar, which is given by environment variable -* build system uses stamp.os and stamp.oS files, which only differ in case; - this fails on macOS, so replace .oS with .o_S ---- glibc-2.32/Makefile.in 2018-02-01 17:17:18.000000000 +0100 -+++ glibc-2.32/Makefile.in 2020-12-27 18:21:30.000000000 +0100 -@@ -6,9 +6,11 @@ - .PHONY: all install bench - - all .DEFAULT: -- $(MAKE) -r PARALLELMFLAGS="$(PARALLELMFLAGS)" -C $(srcdir) objdir=`pwd` $@ -+ ulimit -n 1024; \ -+ $(MAKE) -r AR=$$AR PARALLELMFLAGS="$(PARALLELMFLAGS)" -C $(srcdir) objdir=`pwd` $@ - - install: -+ ulimit -n 1024; \ - LC_ALL=C; export LC_ALL; \ - $(MAKE) -r PARALLELMFLAGS="$(PARALLELMFLAGS)" -C $(srcdir) objdir=`pwd` $@ - ---- glibc-2.32/Makerules 2018-02-01 17:17:18.000000000 +0100 -+++ glibc-2.32/Makerules 2020-12-27 18:21:30.000000000 +0100 -@@ -847,8 +847,8 @@ - ifndef objects - - # Create the stamp$o files to keep the parent makefile happy. --subdir_lib: $(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$o) --$(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$o): -+subdir_lib: $(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$(subst .oS,.o_S,$o)) -+$(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$(subst .oS,.o_S,$o)): - $(make-target-directory) - rm -f $@; > $@ - else -@@ -859,7 +859,7 @@ - # The parent will then actually add them all to the archive in the - # archive rule, below. - define o-iterator-doit --$(objpfx)stamp$o: $(o-objects); $$(do-stamp) -+$(objpfx)stamp$(subst .oS,.o_S,$o): $(o-objects); $$(do-stamp) - endef - define do-stamp - $(make-target-directory) -@@ -875,14 +875,14 @@ - # on the stamp files built above. - define o-iterator-doit - $(common-objpfx)$(patsubst %,$(libtype$o),c): \ -- $(subdirs-stamp-o) $(common-objpfx)stamp$o; $$(do-makelib) -+ $(subdirs-stamp-o) $(common-objpfx)stamp$(subst .oS,.o_S,$o); $$(do-makelib) - endef - define do-makelib - cd $(common-objdir) && \ - $(AR) $(CREATE_ARFLAGS) $(@F) `cat $(patsubst $(common-objpfx)%,%,$^)` - endef - subdirs-stamps := $(foreach d,$(subdirs),$(common-objpfx)$d/stamp%) --subdirs-stamp-o = $(subst %,$o,$(subdirs-stamps)) -+subdirs-stamp-o = $(subst %,$(subst .oS,.o_S,$o),$(subdirs-stamps)) - ifndef subdir - $(subdirs-stamps): subdir_lib; - endif -@@ -893,7 +893,7 @@ - # This makes all the object files. - .PHONY: objects objs libobjs extra-objs - objects objs: libobjs extra-objs --libobjs: $(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$o) -+libobjs: $(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$(subst .oS,.o_S,$o)) - extra-objs: $(addprefix $(objpfx),$(extra-objs)) - - # Canned sequence for building an extra library archive. -@@ -1499,7 +1499,7 @@ - $(rmobjs) - define rmobjs - $(foreach o,$(object-suffixes-for-libc), ---rm -f $(objpfx)stamp$o $(o-objects)) -+-rm -f $(objpfx)stamp$(subst .oS,.o_S,$o) $(o-objects)) - endef - - # Also remove the dependencies and generated source files. diff --git a/pkgs/by-name/gl/glibc/default.nix b/pkgs/by-name/gl/glibc/default.nix deleted file mode 100644 index 3f73314..0000000 --- a/pkgs/by-name/gl/glibc/default.nix +++ /dev/null @@ -1,186 +0,0 @@ -{ lib, stdenv, callPackage -, withLinuxHeaders ? true -, profilingLibraries ? false -, withGd ? false -, pkgsBuildBuild -, libgcc -}: - -let - gdCflags = [ - "-Wno-error=stringop-truncation" - "-Wno-error=missing-attributes" - "-Wno-error=array-bounds" - ]; -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: { - - # Note: - # Things you write here override, and do not add to, - # the values in `common.nix`. - # (For example, if you define `patches = [...]` here, it will - # override the patches in `common.nix` -- so instead you should - # write `patches = (previousAttrs.patches or []) ++ [ ... ]`. - - 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= - - 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= - ''; - - # 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" ]; - - 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" - ]) - ]); - }; - - # glibc needs to `dlopen()` `libgcc_s.so` but does not link - # against it. Furthermore, glibc doesn't use the ordinary - # `dlopen()` call to do this; instead it uses one which ignores - # most paths: - # - # https://sourceware.org/legacy-ml/libc-help/2013-11/msg00026.html - # - # In order to get it to not ignore `libgcc_s.so`, we have to add its path to - # `user-defined-trusted-dirs`: - # - # https://sourceware.org/git/?p=glibc.git;a=blob;f=elf/Makefile;h=b509b3eada1fb77bf81e2a0ca5740b94ad185764#l1355 - # - # Conveniently, this will also inform Nix of the fact that glibc depends on - # 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" - ]; - - 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 - - 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 - - # 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 - - # 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 - ''; - - separateDebugInfo = true; - - passthru = - (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/dont-use-system-ld-so-cache.patch b/pkgs/by-name/gl/glibc/dont-use-system-ld-so-cache.patch deleted file mode 100644 index 0e0315a..0000000 --- a/pkgs/by-name/gl/glibc/dont-use-system-ld-so-cache.patch +++ /dev/null @@ -1,64 +0,0 @@ -diff --git a/elf/Makefile b/elf/Makefile -index 5d666b1b..a5017e9c 100644 ---- a/elf/Makefile -+++ b/elf/Makefile -@@ -669,14 +669,14 @@ $(objpfx)sln: $(sln-modules:%=$(objpfx)%.o) - - $(objpfx)ldconfig: $(ldconfig-modules:%=$(objpfx)%.o) - --SYSCONF-FLAGS := -D'SYSCONFDIR="$(sysconfdir)"' --CFLAGS-ldconfig.c += $(SYSCONF-FLAGS) -D'LIBDIR="$(libdir)"' \ -+PREFIX-FLAGS := -D'PREFIX="$(prefix)"' -+CFLAGS-ldconfig.c += $(PREFIX-FLAGS) -D'LIBDIR="$(libdir)"' \ - -D'SLIBDIR="$(slibdir)"' - libof-ldconfig = ldconfig --CFLAGS-dl-cache.c += $(SYSCONF-FLAGS) --CFLAGS-cache.c += $(SYSCONF-FLAGS) --CFLAGS-rtld.c += $(SYSCONF-FLAGS) --CFLAGS-dl-usage.c += $(SYSCONF-FLAGS) \ -+CFLAGS-dl-cache.c += $(PREFIX-FLAGS) -+CFLAGS-cache.c += $(PREFIX-FLAGS) -+CFLAGS-rtld.c += $(PREFIX-FLAGS) -+CFLAGS-dl-usage.c += $(PREFIX-FLAGS) \ - -D'RTLD="$(rtlddir)/$(rtld-installed-name)"' - - cpp-srcs-left := $(all-rtld-routines:=.os) -diff --git a/elf/dl-diagnostics.c b/elf/dl-diagnostics.c -index bef224b3..8e166b12 100644 ---- a/elf/dl-diagnostics.c -+++ b/elf/dl-diagnostics.c -@@ -205,7 +205,7 @@ print_paths (void) - { - _dl_diagnostics_print_labeled_string ("path.prefix", PREFIX); - _dl_diagnostics_print_labeled_string ("path.rtld", RTLD); -- _dl_diagnostics_print_labeled_string ("path.sysconfdir", SYSCONFDIR); -+ _dl_diagnostics_print_labeled_string ("path.sysconfdir", PREFIX "/etc"); - - unsigned int index = 0; - static const char *system_dirs = SYSTEM_DIRS "\0"; -diff --git a/elf/ldconfig.c b/elf/ldconfig.c -index 28ed637a..6f07b79a 100644 ---- a/elf/ldconfig.c -+++ b/elf/ldconfig.c -@@ -57,7 +57,7 @@ - #define TLS_HWCAP_BIT 63 - - #ifndef LD_SO_CONF --# define LD_SO_CONF SYSCONFDIR "/ld.so.conf" -+# define LD_SO_CONF PREFIX "/etc/ld.so.conf" - #endif - - /* Get libc version number. */ -diff --git a/sysdeps/generic/dl-cache.h b/sysdeps/generic/dl-cache.h -index 964d50a4..2224d651 100644 ---- a/sysdeps/generic/dl-cache.h -+++ b/sysdeps/generic/dl-cache.h -@@ -35,7 +35,7 @@ - #endif - - #ifndef LD_SO_CACHE --# define LD_SO_CACHE SYSCONFDIR "/ld.so.cache" -+# define LD_SO_CACHE PREFIX "/etc/ld.so.cache" - #endif - - #ifndef add_system_dir diff --git a/pkgs/by-name/gl/glibc/dont-use-system-ld-so-preload.patch b/pkgs/by-name/gl/glibc/dont-use-system-ld-so-preload.patch deleted file mode 100644 index 894e2a1..0000000 --- a/pkgs/by-name/gl/glibc/dont-use-system-ld-so-preload.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ru glibc-2.20-orig/elf/rtld.c glibc-2.20/elf/rtld.c ---- glibc-2.20-orig/elf/rtld.c 2014-09-07 10:09:09.000000000 +0200 -+++ glibc-2.20/elf/rtld.c 2014-10-27 11:32:25.203043157 +0100 -@@ -1513,7 +1513,7 @@ - open(). So we do this first. If it succeeds we do almost twice - the work but this does not matter, since it is not for production - use. */ -- static const char preload_file[] = "/etc/ld.so.preload"; -+ static const char preload_file[] = "/etc/ld-nix.so.preload"; - if (__glibc_unlikely (__access (preload_file, R_OK) == 0)) - { - /* Read the contents of the file. */ diff --git a/pkgs/by-name/gl/glibc/fix-rpc-types-musl-conflicts.patch b/pkgs/by-name/gl/glibc/fix-rpc-types-musl-conflicts.patch deleted file mode 100644 index 19f8bfc..0000000 --- a/pkgs/by-name/gl/glibc/fix-rpc-types-musl-conflicts.patch +++ /dev/null @@ -1,38 +0,0 @@ -@@ -, +, @@ ---- - sunrpc/rpc/types.h | 22 ++++++---------------- - 1 file changed, 6 insertions(+), 16 deletions(-) ---- a/sunrpc/rpc/types.h -+++ a/sunrpc/rpc/types.h -@@ -69,24 +69,14 @@ typedef unsigned long rpcport_t; - #include - #endif - --#if defined __APPLE_CC__ || defined __FreeBSD__ --# define __u_char_defined --# define __daddr_t_defined --#endif -- --#ifndef __u_char_defined --typedef __u_char u_char; --typedef __u_short u_short; --typedef __u_int u_int; --typedef __u_long u_long; --typedef __quad_t quad_t; --typedef __u_quad_t u_quad_t; --typedef __fsid_t fsid_t; -+/* IMPORTANT NOTE: This has been modified to build against the musl C -+ * library and it probably now ONLY builds with the musl C library. -+ * -+ * See: https://sourceware.org/bugzilla/show_bug.cgi?id=21604 -+ */ - # define __u_char_defined --#endif - #ifndef __daddr_t_defined --typedef __daddr_t daddr_t; --typedef __caddr_t caddr_t; -+typedef int daddr_t; - # define __daddr_t_defined - #endif - --- diff --git a/pkgs/by-name/gl/glibc/fix-x64-abi.patch b/pkgs/by-name/gl/glibc/fix-x64-abi.patch deleted file mode 100644 index 1d60dcd..0000000 --- a/pkgs/by-name/gl/glibc/fix-x64-abi.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 3288c6da64add3b4561b8c10fff522027caea01c Mon Sep 17 00:00:00 2001 -From: Nicholas Miell -Date: Sat, 17 Jun 2017 18:21:07 -0700 -Subject: [PATCH] Align the stack on entry to __tls_get_addr() - -Old versions of gcc (4 & 5) didn't align the stack according to the -AMD64 psABI when calling __tls_get_addr(). Apparently new versions of -gcc (7) got much more aggressive about vectorizing and generating MOVAPS -instructions, which means old binaries built with the buggy versions of -gcc are much more likely to crash when using versions of glibc built -using gcc 7. - -For example, a large number of Linux games built using the Unity game -engine and available for purchase on Steam. ---- - elf/dl-tls.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/elf/dl-tls.c b/elf/dl-tls.c -index 5aba33b3fa..3f3cb917de 100644 ---- a/elf/dl-tls.c -+++ b/elf/dl-tls.c -@@ -827,6 +827,10 @@ rtld_hidden_proto (__tls_get_addr) - rtld_hidden_def (__tls_get_addr) - #endif - -+#ifdef __x86_64__ -+/* Old versions of gcc didn't align the stack. */ -+__attribute__((force_align_arg_pointer)) -+#endif - /* The generic dynamic and local dynamic model cannot be used in - statically linked applications. */ - void * --- -2.13.0 diff --git a/pkgs/by-name/gl/glibc/fix_path_attribute_in_getconf.patch b/pkgs/by-name/gl/glibc/fix_path_attribute_in_getconf.patch deleted file mode 100644 index 714e49d..0000000 --- a/pkgs/by-name/gl/glibc/fix_path_attribute_in_getconf.patch +++ /dev/null @@ -1,6 +0,0 @@ -diff -ubr glibc-2.17-orig/sysdeps/unix/confstr.h glibc-2.17/sysdeps/unix/confstr.h ---- glibc-2.17-orig/sysdeps/unix/confstr.h 2013-06-03 22:01:44.829726968 +0200 -+++ glibc-2.17/sysdeps/unix/confstr.h 2013-06-03 22:04:39.469376740 +0200 -@@ -1 +1 @@ --#define CS_PATH "/bin:/usr/bin" -+#define CS_PATH "/run/current-system/sw/bin:/bin:/usr/bin" diff --git a/pkgs/by-name/gl/glibc/info.nix b/pkgs/by-name/gl/glibc/info.nix deleted file mode 100644 index d643d8a..0000000 --- a/pkgs/by-name/gl/glibc/info.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ callPackage, texinfo, perl }: - -callPackage ./common.nix {} { - pname = "glibc-info"; - - outputs = [ "out" ]; - - configureFlags = [ "--enable-add-ons" ]; - - extraNativeBuildInputs = [ texinfo perl ]; - - makeFlags = [ "info" ]; - - # I don't know why the info is not generated in 'build' - # Somehow building the info still does not work, because the final - # libc.info hasn't a Top node. - installPhase = '' - mkdir -p "$out/share/info" - cp -v "manual/"*.info* "$out/share/info" - ''; - - meta.description = "GNU Info manual of the GNU C Library"; -} diff --git a/pkgs/by-name/gl/glibc/locales-builder.sh b/pkgs/by-name/gl/glibc/locales-builder.sh deleted file mode 100644 index 27894b0..0000000 --- a/pkgs/by-name/gl/glibc/locales-builder.sh +++ /dev/null @@ -1,18 +0,0 @@ -if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi -# Glibc cannot have itself in its RPATH. -export NIX_NO_SELF_RPATH=1 - -source $stdenv/setup - -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 -} - -genericBuild diff --git a/pkgs/by-name/gl/glibc/locales.nix b/pkgs/by-name/gl/glibc/locales.nix deleted file mode 100644 index eddeb5e..0000000 --- a/pkgs/by-name/gl/glibc/locales.nix +++ /dev/null @@ -1,86 +0,0 @@ -/* 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" ] -}: - -(callPackage ./common.nix { inherit stdenv; } { - pname = "glibc-locales"; - extraNativeBuildInputs = [ glibc ]; -}).overrideAttrs(finalAttrs: previousAttrs: { - - builder = ./locales-builder.sh; - - outputs = [ "out" ]; - - 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" - - mkdir -p $TMPDIR/"${buildPackages.glibc.out}/lib/locale" - - 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 - - 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; - - 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" - ''; - - setupHook = writeText "locales-setup-hook.sh" - '' - export LOCALE_ARCHIVE=@out@/lib/locale/locale-archive - ''; - - meta.description = "Locale information for the GNU C Library"; -}) diff --git a/pkgs/by-name/gl/glibc/mtrace.nix b/pkgs/by-name/gl/glibc/mtrace.nix deleted file mode 100644 index 926c0d9..0000000 --- a/pkgs/by-name/gl/glibc/mtrace.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ glibc, perl }: - -# Small wrapper which only exposes `mtrace(3)` from `glibc`. This can't be placed -# into `glibc` itself because it depends on Perl which would mean that the final -# `glibc` inside a stdenv bootstrap has a dependency `glibc -> perl -> bootstrap tools`, -# so this is now in its own package that isn't used for bootstrapping. -# -# `glibc` needs to be overridden here because it's still needed to `./configure` the source in order -# to have a build environment where we can call the needed make target. - -glibc.overrideAttrs (oldAttrs: { - pname = "glibc-mtrace"; - - buildPhase = '' - runHook preBuild - - mkdir malloc - make -C ../glibc-${glibc.minorRelease}/malloc objdir=`pwd` `pwd`/malloc/mtrace; - - runHook postBuild - ''; - - installPhase = '' - mkdir -p $out/bin - mv malloc/mtrace $out/bin/ - ''; - - # Perl checked during configure - nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ perl ]; - # Perl shebang used for `mtrace`. - buildInputs = oldAttrs.buildInputs ++ [ perl ]; - - # Reset a few things declared by `pkgs.glibc`. - outputs = [ "out" ]; - separateDebugInfo = false; - - meta = oldAttrs.meta // { - description = "Perl script used to interpret and provide human readable output of the trace log contained in the file mtracedata, whose contents were produced by mtrace(3)."; - mainProgram = "mtrace"; - }; -}) diff --git a/pkgs/by-name/gl/glibc/multi.nix b/pkgs/by-name/gl/glibc/multi.nix deleted file mode 100644 index 5cd4895..0000000 --- a/pkgs/by-name/gl/glibc/multi.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib -, runCommand, glibc, glibc32 -}: - -let - nameVersion = builtins.parseDrvName glibc.name; - glibc64 = glibc; -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) - passthru = { - libgcc = lib.lists.filter (x: x!=null) [ - (glibc64.libgcc or null) - (glibc32.libgcc or null) - ]; - }; - } - '' - mkdir -p "$out/lib" - ln -s '${glibc64.out}'/lib/* "$out/lib" - ln -s '${glibc32.out}/lib' "$out/lib/32" - ln -s lib "$out/lib64" - - # fixing ldd RLTDLIST - mkdir -p "$bin/bin" - cp -s '${glibc64.bin}'/bin/* "$bin/bin/" - rm "$bin/bin/ldd" - sed -e "s|^RTLDLIST=.*$|RTLDLIST=\"$out/lib/ld-linux-x86-64.so.2 $out/lib/32/ld-linux.so.2\"|g" \ - '${glibc64.bin}/bin/ldd' > "$bin/bin/ldd" - chmod +x "$bin/bin/ldd" - - mkdir "$dev" - cp -rs '${glibc32.dev}'/include "$dev/" - chmod +w -R "$dev" - cp -rsf '${glibc64.dev}'/include "$dev/" - '' diff --git a/pkgs/by-name/gl/glibc/nix-locale-archive.patch b/pkgs/by-name/gl/glibc/nix-locale-archive.patch deleted file mode 100644 index 2fedf2a..0000000 --- a/pkgs/by-name/gl/glibc/nix-locale-archive.patch +++ /dev/null @@ -1,121 +0,0 @@ -diff --git a/locale/loadarchive.c b/locale/loadarchive.c -index 512769eaec..171dbb4ad9 100644 ---- a/locale/loadarchive.c -+++ b/locale/loadarchive.c -@@ -123,6 +123,23 @@ calculate_head_size (const struct locarhead *h) - return MAX (namehash_end, MAX (string_end, locrectab_end)); - } - -+static int -+open_locale_archive (void) -+{ -+ int fd = -1; -+ char *versioned_path = getenv ("LOCALE_ARCHIVE_2_27"); -+ char *path = getenv ("LOCALE_ARCHIVE"); -+ if (versioned_path) -+ fd = __open_nocancel (versioned_path, O_RDONLY|O_LARGEFILE|O_CLOEXEC); -+ if (path && fd < 0) -+ fd = __open_nocancel (path, O_RDONLY|O_LARGEFILE|O_CLOEXEC); -+ if (fd < 0) -+ fd = __open_nocancel (archfname, O_RDONLY|O_LARGEFILE|O_CLOEXEC); -+ if (fd < 0) -+ fd = __open_nocancel ("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC); -+ return fd; -+} -+ - - /* Find the locale *NAMEP in the locale archive, and return the - internalized data structure for its CATEGORY data. If this locale has -@@ -202,7 +219,7 @@ _nl_load_locale_from_archive (int category, const char **namep) - archmapped = &headmap; - - /* The archive has never been opened. */ -- fd = __open_nocancel (archfname, O_RDONLY|O_LARGEFILE|O_CLOEXEC); -+ fd = open_locale_archive (); - if (fd < 0) - /* Cannot open the archive, for whatever reason. */ - return NULL; -@@ -397,8 +414,7 @@ _nl_load_locale_from_archive (int category, const char **namep) - if (fd == -1) - { - struct __stat64_t64 st; -- fd = __open_nocancel (archfname, -- O_RDONLY|O_LARGEFILE|O_CLOEXEC); -+ fd = open_locale_archive(); - if (fd == -1) - /* Cannot open the archive, for whatever reason. */ - return NULL; -diff --git a/locale/programs/locale.c b/locale/programs/locale.c -index ca0a95be99..e484783402 100644 ---- a/locale/programs/locale.c -+++ b/locale/programs/locale.c -@@ -633,6 +633,24 @@ nameentcmp (const void *a, const void *b) - } - - -+static int -+open_locale_archive (void) -+{ -+ int fd = -1; -+ char *versioned_path = getenv ("LOCALE_ARCHIVE_2_27"); -+ char *path = getenv ("LOCALE_ARCHIVE"); -+ if (versioned_path) -+ fd = open64 (versioned_path, O_RDONLY); -+ if (path && fd < 0) -+ fd = open64 (path, O_RDONLY); -+ if (fd < 0) -+ fd = open64 (ARCHIVE_NAME, O_RDONLY); -+ if (fd < 0) -+ fd = open64 ("/usr/lib/locale/locale-archive", O_RDONLY); -+ return fd; -+} -+ -+ - static int - write_archive_locales (void **all_datap, char *linebuf) - { -@@ -645,7 +663,7 @@ write_archive_locales (void **all_datap, char *linebuf) - int fd, ret = 0; - uint32_t cnt; - -- fd = open64 (ARCHIVE_NAME, O_RDONLY); -+ fd = open_locale_archive (); - if (fd < 0) - return 0; - -diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c -index f38e835c52..779a3199fc 100644 ---- a/locale/programs/locarchive.c -+++ b/locale/programs/locarchive.c -@@ -117,6 +117,22 @@ prepare_address_space (int fd, size_t total, size_t *reserved, int *xflags, - } - - -+static int -+open_locale_archive (const char * archivefname, int flags) -+{ -+ int fd = -1; -+ char *versioned_path = getenv ("LOCALE_ARCHIVE_2_27"); -+ char *path = getenv ("LOCALE_ARCHIVE"); -+ if (versioned_path) -+ fd = open64 (versioned_path, flags); -+ if (path && fd < 0) -+ fd = open64 (path, flags); -+ if (fd < 0) -+ fd = open64 (archivefname, flags); -+ return fd; -+} -+ -+ - static void - create_archive (const char *archivefname, struct locarhandle *ah) - { -@@ -578,7 +594,7 @@ open_archive (struct locarhandle *ah, bool readonly) - while (1) - { - /* Open the archive. We must have exclusive write access. */ -- fd = open64 (archivefname, readonly ? O_RDONLY : O_RDWR); -+ fd = open_locale_archive (archivefname, readonly ? O_RDONLY : O_RDWR); - if (fd == -1) - { - /* Maybe the file does not yet exist? If we are opening diff --git a/pkgs/by-name/gl/glibc/nix-nss-open-files.patch b/pkgs/by-name/gl/glibc/nix-nss-open-files.patch deleted file mode 100644 index 9a515c4..0000000 --- a/pkgs/by-name/gl/glibc/nix-nss-open-files.patch +++ /dev/null @@ -1,51 +0,0 @@ -diff --git a/nss/nss_files/files-XXX.c b/nss/nss_files/files-XXX.c -index 1db9e46127..3a567e0224 100644 ---- a/nss/nss_files/files-XXX.c -+++ b/nss/nss_files/files-XXX.c -@@ -75,8 +75,20 @@ internal_setent (FILE **stream) - - if (*stream == NULL) - { -- *stream = __nss_files_fopen (DATAFILE); -- -+ const char *file = DATAFILE; -+ -+ #ifdef NIX_DATAFILE -+ // use the Nix environment variable such as `NIX_ETC_PROTOCOLS` -+ char *path = secure_getenv (NIX_DATAFILE); -+ -+ // if the environment variable is set, then read from the /nix/store entry instead -+ if (path && path[0]) { -+ file = path; -+ } -+ #endif -+ -+ *stream = __nss_files_fopen (file); -+ - if (*stream == NULL) - status = errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL; - } -diff --git a/nss/nss_files/files-proto.c b/nss/nss_files/files-proto.c -index c30bedc0aa..b321e68d3c 100644 ---- a/nss/nss_files/files-proto.c -+++ b/nss/nss_files/files-proto.c -@@ -23,6 +23,7 @@ NSS_DECLARE_MODULE_FUNCTIONS (files) - - #define ENTNAME protoent - #define DATABASE "protocols" -+#define NIX_DATAFILE "NIX_ETC_PROTOCOLS" - - struct protoent_data {}; - -diff --git a/nss/nss_files/files-service.c b/nss/nss_files/files-service.c -index bfc2590699..0bff36aee5 100644 ---- a/nss/nss_files/files-service.c -+++ b/nss/nss_files/files-service.c -@@ -24,6 +24,7 @@ NSS_DECLARE_MODULE_FUNCTIONS (files) - - #define ENTNAME servent - #define DATABASE "services" -+#define NIX_DATAFILE "NIX_ETC_SERVICES" - - struct servent_data {}; - diff --git a/pkgs/by-name/gl/glibc/packages.nix b/pkgs/by-name/gl/glibc/packages.nix deleted file mode 100644 index dc55236..0000000 --- a/pkgs/by-name/gl/glibc/packages.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - glibc = callPackage ./. { - stdenv = gccStdenv; # doesn't compile without gcc - }; - - mtrace = callPackage ./mtrace.nix { }; - - glibc_memusage = callPackage ./. { - withGd = true; - }; - - # Being redundant to avoid cycles on boot. TODO: find a better way - glibcCross = callPackage ./. { - stdenv = gccCrossLibcStdenv; # doesn't compile without gcc - # TODO: Fix broken reference to libgcc - # libgcc = callPackage ../core/gcc/libgcc { - # gcc = gccCrossLibcStdenv.cc; - # glibc = glibcCross.override { libgcc = null; }; - # stdenvNoLibs = gccCrossLibcStdenv; - # }; - }; - - # Only supported on Linux and only on glibc - glibcLocales = - 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; - - glibcInfo = callPackage ./info.nix { }; - - glibc_multi = callPackage ./multi.nix { - # The buildPackages is required for cross-compilation. The pkgsi686Linux set - # has target and host always set to the same value based on target platform - # of the current set. We need host to be same as build to correctly get i686 - # variant of glibc. - glibc32 = pkgsi686Linux.buildPackages.glibc; - }; - -} diff --git a/pkgs/by-name/gl/glibc/reenable_DT_HASH.patch b/pkgs/by-name/gl/glibc/reenable_DT_HASH.patch deleted file mode 100644 index 87a2329..0000000 --- a/pkgs/by-name/gl/glibc/reenable_DT_HASH.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 31915e55f9c34f6137ab1c5ac002375a2d5d4589 Mon Sep 17 00:00:00 2001 -From: Frederik Schwan -Date: Fri, 4 Aug 2023 15:19:57 +0200 -Subject: [PATCH] force --hash-style=both to keep compatibility with old niche - software - ---- - Makeconfig | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/Makeconfig b/Makeconfig -index 77d7fd14df..2ae67c4beb 100644 ---- a/Makeconfig -+++ b/Makeconfig -@@ -378,6 +378,10 @@ relro-LDFLAGS = -Wl,-z,relro - LDFLAGS.so += $(relro-LDFLAGS) - LDFLAGS-rtld += $(relro-LDFLAGS) - -+hashstyle-LDFLAGS = -Wl,--hash-style=both -+LDFLAGS.so += $(hashstyle-LDFLAGS) -+LDFLAGS-rtld += $(hashstyle-LDFLAGS) -+ - # Linker options to enable and disable DT_RELR. - ifeq ($(have-dt-relr),yes) - dt-relr-ldflag = -Wl,-z,pack-relative-relocs --- -2.41.0 - diff --git a/pkgs/by-name/gm/gmp/4.3.2.nix b/pkgs/by-name/gm/gmp/4.3.2.nix deleted file mode 100644 index e809ed9..0000000 --- a/pkgs/by-name/gm/gmp/4.3.2.nix +++ /dev/null @@ -1,78 +0,0 @@ -{ lib, stdenv, fetchurl, m4, cxx ? true }: - -let self = stdenv.mkDerivation rec { - pname = "gmp"; - version = "4.3.2"; - - 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; - - 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`."''; - - 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; - - 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. - - 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. - ''; - - 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); - }; -}; - in self diff --git a/pkgs/by-name/gm/gmp/5.1.3-CVE-2021-43618.patch b/pkgs/by-name/gm/gmp/5.1.3-CVE-2021-43618.patch deleted file mode 100644 index 13b9bc5..0000000 --- a/pkgs/by-name/gm/gmp/5.1.3-CVE-2021-43618.patch +++ /dev/null @@ -1,20 +0,0 @@ -Based on https://gmplib.org/repo/gmp-6.2/raw-rev/561a9c25298e, -adapted for 5.x by ris - -diff -r e1fd9db13b47 -r 561a9c25298e mpz/inp_raw.c ---- a/mpz/inp_raw.c Tue Dec 22 23:49:51 2020 +0100 -+++ b/mpz/inp_raw.c Thu Oct 21 19:06:49 2021 +0200 -@@ -81,8 +81,11 @@ - - abs_csize = ABS (csize); - -+ if (UNLIKELY (abs_csize > ~(mp_bitcnt_t) 0 / 8)) -+ return 0; /* Bit size overflows */ -+ - /* round up to a multiple of limbs */ -- abs_xsize = (abs_csize*8 + GMP_NUMB_BITS-1) / GMP_NUMB_BITS; -+ abs_xsize = ((mp_bitcnt_t)abs_csize*8 + GMP_NUMB_BITS-1) / GMP_NUMB_BITS; - - if (abs_xsize != 0) - { - diff --git a/pkgs/by-name/gm/gmp/5.1.x.nix b/pkgs/by-name/gm/gmp/5.1.x.nix deleted file mode 100644 index e4fb89d..0000000 --- a/pkgs/by-name/gm/gmp/5.1.x.nix +++ /dev/null @@ -1,87 +0,0 @@ -{ lib, stdenv, fetchurl, m4 -, cxx ? true -, withStatic ? stdenv.hostPlatform.isStatic -}: - -let inherit (lib) optional; in - -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"; - }; - - #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 ]; - - 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" - ; - - doCheck = true; - - dontDisableStatic = withStatic; - - enableParallelBuilding = true; - - 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. - - 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; - badPlatforms = [ "x86_64-darwin" ]; - # never built on aarch64-darwin since first introduction in nixpkgs - broken = stdenv.isDarwin && stdenv.isAarch64; - }; -}; - in self diff --git a/pkgs/by-name/gm/gmp/6.x.nix b/pkgs/by-name/gm/gmp/6.x.nix deleted file mode 100644 index 4487424..0000000 --- a/pkgs/by-name/gm/gmp/6.x.nix +++ /dev/null @@ -1,93 +0,0 @@ -{ 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 -# cannot use fetchpatch! All mutable patches (generated by GitHub or -# cgit) that are needed here should be included directly in Nixpkgs as -# files. - -let inherit (lib) optional; in - -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="; - }; - - #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 - ]; - - 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 ]; - }; -}; - in self diff --git a/pkgs/by-name/gm/gmp/need-size-t.patch b/pkgs/by-name/gm/gmp/need-size-t.patch deleted file mode 100644 index c4ba086..0000000 --- a/pkgs/by-name/gm/gmp/need-size-t.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/gmp-h.in b/gmp-h.in -index 7deb67a..240d663 100644 ---- a/gmp-h.in -+++ b/gmp-h.in -@@ -46,13 +46,11 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */ - #ifndef __GNU_MP__ - #define __GNU_MP__ 5 - --#define __need_size_t /* tell gcc stddef.h we only want size_t */ - #if defined (__cplusplus) - #include /* for size_t */ - #else - #include /* for size_t */ - #endif --#undef __need_size_t - - /* Instantiated by configure. */ - #if ! defined (__GMP_WITHIN_CONFIGURE) diff --git a/pkgs/by-name/gm/gmp/packages.nix b/pkgs/by-name/gm/gmp/packages.nix deleted file mode 100644 index fe320c4..0000000 --- a/pkgs/by-name/gm/gmp/packages.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - gmp4 = callPackage ./4.3.2.nix { }; # required by older GHC versions - gmp5 = callPackage ./5.1.x.nix { }; - gmp6 = callPackage ./6.x.nix { }; - gmp = gmp6; - gmpxx = gmp.override { cxx = true; }; -} diff --git a/pkgs/by-name/gn/gnu-config/default.nix b/pkgs/by-name/gn/gnu-config/default.nix deleted file mode 100644 index 0315f39..0000000 --- a/pkgs/by-name/gn/gnu-config/default.nix +++ /dev/null @@ -1,64 +0,0 @@ -{ lib, stdenv, fetchurl }: - -# 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 - rev = "28ea239c53a2d5d8800c472bc2452eaa16e37af2"; - - # Don't use fetchgit as this is needed during Aarch64 bootstrapping - configGuess = fetchurl { - name = "config.guess-${builtins.substring 0 7 rev}"; - url = "https://git.savannah.gnu.org/cgit/config.git/plain/config.guess?id=${rev}"; - hash = "sha256-7CV3YUJSMm+InfHel7mkV8A6mpSBEEhWPCEaRElti6M="; - }; - configSub = fetchurl { - name = "config.sub-${builtins.substring 0 7 rev}"; - url = "https://git.savannah.gnu.org/cgit/config.git/plain/config.sub?id=${rev}"; - hash = "sha256-Rlxf5nx9NrcugIgScWRF1NONS5RzTKjTaoY50SMjh4s="; - }; -in stdenv.mkDerivation { - pname = "gnu-config"; - version = "2023-09-19"; - - unpackPhase = '' - runHook preUnpack - cp ${configGuess} ./config.guess - cp ${configSub} ./config.sub - chmod +w ./config.sub ./config.guess - runHook postUnpack - ''; - - # If this isn't set, `pkgs.gnu-config.overrideAttrs( _: { patches - # = ...; })` will behave very counterintuitively: the (unpatched) - # gnu-config from the updateAutotoolsGnuConfigScriptsHook stdenv's - # defaultNativeBuildInputs will "update" the patched gnu-config by - # reverting the patch! - dontUpdateAutotoolsGnuConfigScripts = true; - - dontConfigure = true; - dontBuild = true; - - installPhase = '' - runHook preInstall - install -Dm755 ./config.guess $out/config.guess - install -Dm755 ./config.sub $out/config.sub - runHook postInstall - ''; - - meta = with lib; { - description = "Attempt to guess a canonical system name"; - homepage = "https://savannah.gnu.org/projects/config"; - license = licenses.gpl3; - # In addition to GPLv3: - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # 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 ]; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/gn/gnugrep/default.nix b/pkgs/by-name/gn/gnugrep/default.nix deleted file mode 100644 index 5df8127..0000000 --- a/pkgs/by-name/gn/gnugrep/default.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ 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 - -stdenv.mkDerivation { - pname = "gnugrep"; - inherit version; - - src = fetchurl { - url = "mirror://gnu/grep/grep-${version}.tar.xz"; - hash = "sha256-HbKu3eidDepCsW2VKPiUyNFdrk4ZC1muzHj1qVEnbqs="; - }; - - # 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; - - nativeCheckInputs = [ perl glibcLocales ]; - outputs = [ "out" "info" ]; # the man pages are rather small - - 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; - - # On macOS, force use of mkdir -p, since Grep's fallback - # (./install-sh) is broken. - preConfigure = '' - export MKDIR_P="mkdir -p" - ''; - - enableParallelBuilding = true; - - # 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 - ''; - - meta = with lib; { - homepage = "https://www.gnu.org/software/grep/"; - description = "GNU implementation of the Unix grep command"; - - longDescription = '' - The grep command searches one or more input files for lines - containing a match to a specified pattern. By default, grep - prints the matching lines. - ''; - - license = licenses.gpl3Plus; - - maintainers = [ - maintainers.das_j - maintainers.m00wl - ]; - platforms = platforms.all; - mainProgram = "grep"; - }; - - passthru = { - inherit pcre2; - }; -} diff --git a/pkgs/by-name/gn/gnulib/default.nix b/pkgs/by-name/gn/gnulib/default.nix deleted file mode 100644 index be6719c..0000000 --- a/pkgs/by-name/gn/gnulib/default.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ lib, stdenv, fetchFromSavannah, python3 }: - -stdenv.mkDerivation rec { - pname = "gnulib"; - version = "20231109"; - - src = fetchFromSavannah { - repo = "gnulib"; - rev = "2dd1a7984c6b3e6056cef7e3f9933e0039c21634"; - hash = "sha256-QtWf3mljEnr0TTogkoKN63Y5HTm14A2e/sIXX3xe2SE="; - }; - - postPatch = '' - patchShebangs gnulib-tool.py - ''; - - buildInputs = [ python3 ]; - - installPhase = '' - mkdir -p $out/bin - cp -r * $out/ - ln -s $out/lib $out/include - ln -s $out/gnulib-tool $out/bin/ - ''; - - # do not change headers to not update all vendored build files - dontFixup = true; - - passthru = { - # This patch is used by multiple other packages (currently: - # gnused, gettext) which contain vendored copies of gnulib. - # Without it, compilation will fail with error messages about - # "__LDBL_REDIR1_DECL" or similar on platforms with longdouble - # redirects (currently powerpc64). Once all of those other - # packages make a release with a newer gnulib we can drop this - # patch. - longdouble-redirect-patch = ./gnulib-longdouble-redirect.patch; - }; - - meta = with lib; { - description = "Central location for code to be shared among GNU packages"; - homepage = "https://www.gnu.org/software/gnulib/"; - changelog = "https://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob;f=ChangeLog"; - license = licenses.gpl3Plus; - mainProgram = "gnulib-tool"; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/gn/gnulib/gnulib-longdouble-redirect.patch b/pkgs/by-name/gn/gnulib/gnulib-longdouble-redirect.patch deleted file mode 100644 index f684292..0000000 --- a/pkgs/by-name/gn/gnulib/gnulib-longdouble-redirect.patch +++ /dev/null @@ -1,72 +0,0 @@ - -Below is the subset of gnulib commit -776af40e09b476a41073131a90022572f448c189 which deals with long double -redirects. The rest of that commit has been removed. - -diff --git a/lib/cdefs.h b/lib/cdefs.h -index fd72b7b..4383e70 100644 ---- a/lib/cdefs.h -+++ b/lib/cdefs.h -@@ -483,7 +493,37 @@ - # include - #endif - --#if defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH -+#if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 -+# ifdef __REDIRECT -+ -+/* Alias name defined automatically. */ -+# define __LDBL_REDIR(name, proto) ... unused__ldbl_redir -+# define __LDBL_REDIR_DECL(name) \ -+ extern __typeof (name) name __asm (__ASMNAME ("__" #name "ieee128")); -+ -+/* Alias name defined automatically, with leading underscores. */ -+# define __LDBL_REDIR2_DECL(name) \ -+ extern __typeof (__##name) __##name \ -+ __asm (__ASMNAME ("__" #name "ieee128")); -+ -+/* Alias name defined manually. */ -+# define __LDBL_REDIR1(name, proto, alias) ... unused__ldbl_redir1 -+# define __LDBL_REDIR1_DECL(name, alias) \ -+ extern __typeof (name) name __asm (__ASMNAME (#alias)); -+ -+# define __LDBL_REDIR1_NTH(name, proto, alias) \ -+ __REDIRECT_NTH (name, proto, alias) -+# define __REDIRECT_NTH_LDBL(name, proto, alias) \ -+ __LDBL_REDIR1_NTH (name, proto, __##alias##ieee128) -+ -+/* Unused. */ -+# define __REDIRECT_LDBL(name, proto, alias) ... unused__redirect_ldbl -+# define __LDBL_REDIR_NTH(name, proto) ... unused__ldbl_redir_nth -+ -+# else -+_Static_assert (0, "IEEE 128-bits long double requires redirection on this platform"); -+# endif -+#elif defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH - # define __LDBL_COMPAT 1 - # ifdef __REDIRECT - # define __LDBL_REDIR1(name, proto, alias) __REDIRECT (name, proto, alias) -@@ -492,6 +532,8 @@ - # define __LDBL_REDIR1_NTH(name, proto, alias) __REDIRECT_NTH (name, proto, alias) - # define __LDBL_REDIR_NTH(name, proto) \ - __LDBL_REDIR1_NTH (name, proto, __nldbl_##name) -+# define __LDBL_REDIR2_DECL(name) \ -+ extern __typeof (__##name) __##name __asm (__ASMNAME ("__nldbl___" #name)); - # define __LDBL_REDIR1_DECL(name, alias) \ - extern __typeof (name) name __asm (__ASMNAME (#alias)); - # define __LDBL_REDIR_DECL(name) \ -@@ -502,11 +544,13 @@ - __LDBL_REDIR1_NTH (name, proto, __nldbl_##alias) - # endif - #endif --#if !defined __LDBL_COMPAT || !defined __REDIRECT -+#if (!defined __LDBL_COMPAT && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0) \ -+ || !defined __REDIRECT - # define __LDBL_REDIR1(name, proto, alias) name proto - # define __LDBL_REDIR(name, proto) name proto - # define __LDBL_REDIR1_NTH(name, proto, alias) name proto __THROW - # define __LDBL_REDIR_NTH(name, proto) name proto __THROW -+# define __LDBL_REDIR2_DECL(name) - # define __LDBL_REDIR_DECL(name) - # ifdef __REDIRECT - # define __REDIRECT_LDBL(name, proto, alias) __REDIRECT (name, proto, alias) diff --git a/pkgs/by-name/gn/gnum4/default.nix b/pkgs/by-name/gn/gnum4/default.nix deleted file mode 100644 index 66de4eb..0000000 --- a/pkgs/by-name/gn/gnum4/default.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ lib, stdenv, fetchurl }: - -# 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. - -stdenv.mkDerivation rec { - pname = "gnum4"; - version = "1.4.19"; - - src = fetchurl { - url = "mirror://gnu/m4/m4-${version}.tar.bz2"; - sha256 = "sha256-swapHA/ZO8QoDPwumMt6s5gf91oYe+oyk4EfRSyJqMg="; - }; - - # 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; - - strictDeps = true; - enableParallelBuilding = true; - - doCheck = false; - - configureFlags = [ "--with-syscmd-shell=${stdenv.shell}" ] - ++ lib.optional stdenv.hostPlatform.isMinGW "CFLAGS=-fno-stack-protector"; - - meta = { - description = "GNU M4, a macro processor"; - longDescription = '' - GNU M4 is an implementation of the traditional Unix macro - processor. It is mostly SVR4 compatible although it has some - extensions (for example, handling more than 9 positional - parameters to macros). GNU M4 also has built-in functions for - including files, running shell commands, doing arithmetic, etc. - - GNU M4 is a macro processor in the sense that it copies its - input to the output expanding macros as it goes. Macros are - either builtin or user-defined and can take any number of - arguments. Besides just doing macro expansion, m4 has builtin - functions for including named files, running UNIX commands, - doing integer arithmetic, manipulating text in various ways, - recursion etc... m4 can be used either as a front-end to a - compiler or as a macro processor in its own right. - ''; - homepage = "https://www.gnu.org/software/m4/"; - - license = lib.licenses.gpl3Plus; - mainProgram = "m4"; - platforms = lib.platforms.unix ++ lib.platforms.windows; - }; - -} diff --git a/pkgs/by-name/gn/gnum4/loong-fix-build.patch b/pkgs/by-name/gn/gnum4/loong-fix-build.patch deleted file mode 100644 index d524335..0000000 --- a/pkgs/by-name/gn/gnum4/loong-fix-build.patch +++ /dev/null @@ -1,30 +0,0 @@ -[xen0n: this is https://github.com/sunhaiyong1978/CLFS-for-LoongArch/blob/1.0/patches/stack-direction-add-loongarch.patch with line number tweak, and change to generated file added as well.] -From: Sun Haiyong -Date: Tue, 31 Aug 2021 11:11:52 +0800 -Subject: [PATCH] stack-direction: Add support for loongarch CPU - -* m4/stack-direction.m4 (SV_STACK_DIRECTION): When the CPU is loongarch, -set "sv_cv_stack_direction" to "-1" . ---- a/m4/stack-direction.m4 -+++ b/m4/stack-direction.m4 -@@ -31,6 +31,7 @@ AC_DEFUN([SV_STACK_DIRECTION], - i?86 | x86_64 | \ - i860 | \ - ia64 | \ -+ loongarch* | \ - m32r | \ - m68* | \ - m88k | \ ---- a/configure -+++ b/configure -@@ -46399,6 +46399,7 @@ else $as_nop - i?86 | x86_64 | \ - i860 | \ - ia64 | \ -+ loongarch* | \ - m32r | \ - m68* | \ - m88k | \ --- -2.17.2 - diff --git a/pkgs/by-name/gn/gnum4/packages.nix b/pkgs/by-name/gn/gnum4/packages.nix deleted file mode 100644 index ed44883..0000000 --- a/pkgs/by-name/gn/gnum4/packages.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - gnum4 = callPackage ./. { }; - m4 = gnum4; -} diff --git a/pkgs/by-name/gn/gnumake/0001-No-impure-bin-sh.patch b/pkgs/by-name/gn/gnumake/0001-No-impure-bin-sh.patch deleted file mode 100644 index 58ee2d6..0000000 --- a/pkgs/by-name/gn/gnumake/0001-No-impure-bin-sh.patch +++ /dev/null @@ -1,35 +0,0 @@ -From e00a5257a6ca5fedbf68b09eee7df3502971a057 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= -Date: Sat, 24 Apr 2021 10:11:40 +0200 -Subject: [PATCH 1/2] No impure bin sh - -default_shell is used to populuate default shell used to execute jobs. -Unless SHELL is set to a different value this would be /bin/sh. -Our stdenv provides sh in form of bash anyway. Having this value not -hard-coded has some advantages: - -- It would ensure that on all systems it uses sh from its PATH rather - than /bin/sh, which helps as different systems might have different - shells there (bash vs. dash) -- In the past I had issues with LD_PRELOAD with BEAR, where /bin/sh - used a different glibc than BEAR which came from my development shell. ---- - src/job.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/job.c b/src/job.c -index ae1f18b..6b4ddb3 100644 ---- a/src/job.c -+++ b/src/job.c -@@ -77,7 +77,7 @@ char * vms_strsignal (int status); - - #else - --const char *default_shell = "/bin/sh"; -+const char *default_shell = "sh"; - int batch_mode_shell = 0; - - #endif --- -2.31.1 - diff --git a/pkgs/by-name/gn/gnumake/0002-remove-impure-dirs.patch b/pkgs/by-name/gn/gnumake/0002-remove-impure-dirs.patch deleted file mode 100644 index e62aee7..0000000 --- a/pkgs/by-name/gn/gnumake/0002-remove-impure-dirs.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 795d63d3c8b5c0dbb7e544954f75507b371b7228 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= -Date: Sat, 24 Apr 2021 10:20:16 +0200 -Subject: [PATCH 2/2] remove impure dirs - ---- - src/read.c | 3 --- - src/remake.c | 2 -- - 2 files changed, 5 deletions(-) - -diff --git a/src/read.c b/src/read.c -index fa197fb..defacfb 100644 ---- a/src/read.c -+++ b/src/read.c -@@ -109,9 +109,6 @@ static const char *default_include_directories[] = - #endif - INCLUDEDIR, - #ifndef _AMIGA -- "/usr/gnu/include", -- "/usr/local/include", -- "/usr/include", - #endif - 0 - }; -diff --git a/src/remake.c b/src/remake.c -index fb237c5..94bff7d 100644 ---- a/src/remake.c -+++ b/src/remake.c -@@ -1601,8 +1601,6 @@ library_search (const char *lib, FILE_TIMESTAMP *mtime_ptr) - static const char *dirs[] = - { - #ifndef _AMIGA -- "/lib", -- "/usr/lib", - #endif - #if defined(WINDOWS32) && !defined(LIBDIR) - /* --- -2.31.1 - diff --git a/pkgs/by-name/gn/gnumake/4.2/default.nix b/pkgs/by-name/gn/gnumake/4.2/default.nix deleted file mode 100644 index 21e9abd..0000000 --- a/pkgs/by-name/gn/gnumake/4.2/default.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ lib, stdenv, fetchurl, guileSupport ? false, pkg-config ? null , guile ? null }: - -assert guileSupport -> ( pkg-config != null && guile != null ); - -stdenv.mkDerivation rec { - pname = "gnumake"; - version = "4.2.1"; - - src = fetchurl { - url = "mirror://gnu/make/make-${version}.tar.bz2"; - sha256 = "12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn"; - }; - - patchFlags = [ "-p0" ]; - patches = [ - # Purity: don't look for library dependencies (of the form `-lfoo') in /lib - # and /usr/lib. It's a stupid feature anyway. Likewise, when searching for - # included Makefiles, don't look in /usr/include and friends. - ./impure-dirs.patch - ./pselect.patch - # Fix support for glibc 2.27's glob, inspired by http://www.linuxfromscratch.org/lfs/view/8.2/chapter05/make.html - ./glibc-2.27-glob.patch - ./glibc-2.33-glob.patch - ]; - - nativeBuildInputs = lib.optionals guileSupport [ pkg-config ]; - buildInputs = lib.optionals guileSupport [ 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. - # However, we still support macOS 10.11 and 10.12. Binaries built - # in Nixpkgs will be unable to use futimens to set mtime less than - # a second. So, tell Make to ignore nanoseconds in mtime here by - # overriding the autoconf test for the struct. - # 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" ]; - - meta = with lib; { - description = "A tool to control the generation of non-source files from sources"; - longDescription = '' - Make is a tool which controls the generation of executables and - other non-source files of a program from the program's source files. - - Make gets its knowledge of how to build your program from a file - called the makefile, which lists each of the non-source files and - how to compute it from other files. When you write a program, you - should write a makefile for it, so that it is possible to use Make - to build and install the program. - ''; - homepage = "https://www.gnu.org/software/make/"; - - license = licenses.gpl3Plus; - maintainers = [ maintainers.vrthra ]; - mainProgram = "make"; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/gn/gnumake/4.2/glibc-2.27-glob.patch b/pkgs/by-name/gn/gnumake/4.2/glibc-2.27-glob.patch deleted file mode 100644 index 186212d..0000000 --- a/pkgs/by-name/gn/gnumake/4.2/glibc-2.27-glob.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff -Naur glob/glob.c glob/glob.c ---- glob/glob.c 2013-10-20 13:14:38.000000000 -0400 -+++ glob/glob.c 2018-03-16 14:32:38.483496170 -0400 -@@ -208,28 +208,9 @@ - #endif /* __GNU_LIBRARY__ || __DJGPP__ */ - - --#if !defined __alloca && !defined __GNU_LIBRARY__ -- --# ifdef __GNUC__ --# undef alloca --# define alloca(n) __builtin_alloca (n) --# else /* Not GCC. */ --# ifdef HAVE_ALLOCA_H - # include --# else /* Not HAVE_ALLOCA_H. */ --# ifndef _AIX --# ifdef WINDOWS32 --# include --# else --extern char *alloca (); --# endif /* WINDOWS32 */ --# endif /* Not _AIX. */ --# endif /* sparc or HAVE_ALLOCA_H. */ --# endif /* GCC. */ -- - # define __alloca alloca - --#endif - - #ifndef __GNU_LIBRARY__ - # define __stat stat diff --git a/pkgs/by-name/gn/gnumake/4.2/glibc-2.33-glob.patch b/pkgs/by-name/gn/gnumake/4.2/glibc-2.33-glob.patch deleted file mode 100644 index d3e424d..0000000 --- a/pkgs/by-name/gn/gnumake/4.2/glibc-2.33-glob.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git glob/glob.c glob/glob.c -index 924f2b3..d4ef0c5 100644 ---- glob/glob.c -+++ glob/glob.c -@@ -212,8 +212,8 @@ my_realloc (p, n) - # define __alloca alloca - - --#ifndef __GNU_LIBRARY__ - # define __stat stat -+#ifndef __GNU_LIBRARY__ - # ifdef STAT_MACROS_BROKEN - # undef S_ISDIR - # endif --- -2.31.1 - diff --git a/pkgs/by-name/gn/gnumake/4.2/impure-dirs.patch b/pkgs/by-name/gn/gnumake/4.2/impure-dirs.patch deleted file mode 100644 index f6646f1..0000000 --- a/pkgs/by-name/gn/gnumake/4.2/impure-dirs.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff -rc read.c read.c -*** read.c 2006-03-17 15:24:20.000000000 +0100 ---- read.c 2007-05-24 17:16:31.000000000 +0200 -*************** -*** 99,107 **** ---- 99,109 ---- - #endif - INCLUDEDIR, - #ifndef _AMIGA -+ #if 0 - "/usr/gnu/include", - "/usr/local/include", - "/usr/include", -+ #endif - #endif - 0 - }; -diff -rc reremake.c -*** remake.c 2006-03-20 03:36:37.000000000 +0100 ---- remake.c 2007-05-24 17:06:54.000000000 +0200 -*************** -*** 1452,1460 **** ---- 1452,1462 ---- - static char *dirs[] = - { - #ifndef _AMIGA -+ #if 0 - "/lib", - "/usr/lib", - #endif -+ #endif - #if defined(WINDOWS32) && !defined(LIBDIR) - /* - * This is completely up to the user at product install time. Just define diff --git a/pkgs/by-name/gn/gnumake/4.2/pselect.patch b/pkgs/by-name/gn/gnumake/4.2/pselect.patch deleted file mode 100644 index 5a03acb..0000000 --- a/pkgs/by-name/gn/gnumake/4.2/pselect.patch +++ /dev/null @@ -1,170 +0,0 @@ -From b552b05251980f693c729e251f93f5225b400714 Mon Sep 17 00:00:00 2001 -From: Paul Smith -Date: Sat, 3 Jun 2017 16:20:51 -0400 -Subject: [SV 51159] Use a non-blocking read with pselect to avoid hangs. - -* posixos.c (set_blocking): Set blocking on a file descriptor. -(jobserver_setup): Set non-blocking on the jobserver read side. -(jobserver_parse_auth): Ditto. -(jobserver_acquire_all): Set blocking to avoid a busy-wait loop. -(jobserver_acquire): If the non-blocking read() returns without -taking a token then try again. ---- - posixos.c | 97 ++++++++++++++++++++++++++++++++++++++++++++++----------------- - 1 file changed, 71 insertions(+), 26 deletions(-) - -diff --git posixos.c posixos.c -index e642d7f..dbafa51 100644 ---- posixos.c -+++ posixos.c -@@ -62,6 +62,24 @@ make_job_rfd (void) - #endif - } - -+static void -+set_blocking (int fd, int blocking) -+{ -+ // If we're not using pselect() don't change the blocking -+#ifdef HAVE_PSELECT -+ int flags; -+ EINTRLOOP (flags, fcntl (fd, F_GETFL)); -+ if (flags >= 0) -+ { -+ int r; -+ flags = blocking ? (flags & ~O_NONBLOCK) : (flags | O_NONBLOCK); -+ EINTRLOOP (r, fcntl (fd, F_SETFL, flags)); -+ if (r < 0) -+ pfatal_with_name ("fcntl(O_NONBLOCK)"); -+ } -+#endif -+} -+ - unsigned int - jobserver_setup (int slots) - { -@@ -86,6 +104,9 @@ jobserver_setup (int slots) - pfatal_with_name (_("init jobserver pipe")); - } - -+ /* When using pselect() we want the read to be non-blocking. */ -+ set_blocking (job_fds[0], 0); -+ - return 1; - } - -@@ -121,6 +142,9 @@ jobserver_parse_auth (const char *auth) - return 0; - } - -+ /* When using pselect() we want the read to be non-blocking. */ -+ set_blocking (job_fds[0], 0); -+ - return 1; - } - -@@ -169,7 +193,10 @@ jobserver_acquire_all (void) - { - unsigned int tokens = 0; - -- /* Close the write side, so the read() won't hang. */ -+ /* Use blocking reads to wait for all outstanding jobs. */ -+ set_blocking (job_fds[0], 1); -+ -+ /* Close the write side, so the read() won't hang forever. */ - close (job_fds[1]); - job_fds[1] = -1; - -@@ -236,18 +263,12 @@ jobserver_pre_acquire (void) - unsigned int - jobserver_acquire (int timeout) - { -- sigset_t empty; -- fd_set readfds; - struct timespec spec; - struct timespec *specp = NULL; -- int r; -- char intake; -+ sigset_t empty; - - sigemptyset (&empty); - -- FD_ZERO (&readfds); -- FD_SET (job_fds[0], &readfds); -- - if (timeout) - { - /* Alarm after one second (is this too granular?) */ -@@ -256,28 +277,52 @@ jobserver_acquire (int timeout) - specp = &spec; - } - -- r = pselect (job_fds[0]+1, &readfds, NULL, NULL, specp, &empty); -- -- if (r == -1) -+ while (1) - { -- /* Better be SIGCHLD. */ -- if (errno != EINTR) -- pfatal_with_name (_("pselect jobs pipe")); -- return 0; -- } -+ fd_set readfds; -+ int r; -+ char intake; - -- if (r == 0) -- /* Timeout. */ -- return 0; -+ FD_ZERO (&readfds); -+ FD_SET (job_fds[0], &readfds); - -- /* The read FD is ready: read it! */ -- EINTRLOOP (r, read (job_fds[0], &intake, 1)); -- if (r < 0) -- pfatal_with_name (_("read jobs pipe")); -+ r = pselect (job_fds[0]+1, &readfds, NULL, NULL, specp, &empty); -+ if (r < 0) -+ switch (errno) -+ { -+ case EINTR: -+ /* SIGCHLD will show up as an EINTR. */ -+ return 0; -+ -+ case EBADF: -+ /* Someone closed the jobs pipe. -+ That shouldn't happen but if it does we're done. */ -+ O (fatal, NILF, _("job server shut down")); - -- /* What does it mean if read() returns 0? It shouldn't happen because only -- the master make can reap all the tokens and close the write side...?? */ -- return r > 0; -+ default: -+ pfatal_with_name (_("pselect jobs pipe")); -+ } -+ -+ if (r == 0) -+ /* Timeout. */ -+ return 0; -+ -+ /* The read FD is ready: read it! This is non-blocking. */ -+ EINTRLOOP (r, read (job_fds[0], &intake, 1)); -+ -+ if (r < 0) -+ { -+ /* Someone sniped our token! Try again. */ -+ if (errno == EAGAIN) -+ continue; -+ -+ pfatal_with_name (_("read jobs pipe")); -+ } -+ -+ /* read() should never return 0: only the master make can reap all the -+ tokens and close the write side...?? */ -+ return r > 0; -+ } - } - - #else --- -cgit v1.0-41-gc330 - diff --git a/pkgs/by-name/gn/gnumake/default.nix b/pkgs/by-name/gn/gnumake/default.nix deleted file mode 100644 index 23fe1b5..0000000 --- a/pkgs/by-name/gn/gnumake/default.nix +++ /dev/null @@ -1,76 +0,0 @@ -{ lib -, stdenv -, fetchurl -, guileSupport ? false, guile -# avoid guile depend on bootstrap to prevent dependency cycles -, inBootstrap ? false -, pkg-config -# for passthru.tests -# , gnumake -}: - -let - guileEnabled = guileSupport && !inBootstrap; -in - -stdenv.mkDerivation rec { - pname = "gnumake"; - version = "4.4.1"; - - src = fetchurl { - url = "mirror://gnu/make/make-${version}.tar.gz"; - sha256 = "sha256-3Rb7HWe/q3mnL16DkHNcSePo5wtJRaFasfgd23hlj7M="; - }; - - # to update apply these patches with `git am *.patch` to https://git.savannah.gnu.org/git/make.git - patches = [ - # Replaces /bin/sh with sh, see patch file for reasoning - ./0001-No-impure-bin-sh.patch - # Purity: don't look for library dependencies (of the form `-lfoo') in /lib - # and /usr/lib. It's a stupid feature anyway. Likewise, when searching for - # included Makefiles, don't look in /usr/include and friends. - ./0002-remove-impure-dirs.patch - ]; - - nativeBuildInputs = lib.optionals guileEnabled [ pkg-config ]; - buildInputs = lib.optionals guileEnabled [ 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. - # However, we still support macOS 10.11 and 10.12. Binaries built - # in Nixpkgs will be unable to use futimens to set mtime less than - # a second. So, tell Make to ignore nanoseconds in mtime here by - # overriding the autoconf test for the struct. - # 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" ]; - separateDebugInfo = true; - - # passthru.tests = { - # # make sure that the override doesn't break bootstrapping - # gnumakeWithGuile = gnumake.override { guileSupport = true; }; - # }; - - meta = with lib; { - description = "A tool to control the generation of non-source files from sources"; - longDescription = '' - Make is a tool which controls the generation of executables and - other non-source files of a program from the program's source files. - - Make gets its knowledge of how to build your program from a file - called the makefile, which lists each of the non-source files and - how to compute it from other files. When you write a program, you - should write a makefile for it, so that it is possible to use Make - to build and install the program. - ''; - homepage = "https://www.gnu.org/software/make/"; - - license = licenses.gpl3Plus; - maintainers = [ maintainers.vrthra ]; - mainProgram = "make"; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/gn/gnumake/packages.nix b/pkgs/by-name/gn/gnumake/packages.nix deleted file mode 100644 index d516d78..0000000 --- a/pkgs/by-name/gn/gnumake/packages.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - gnumake = callPackage ./. { }; - gnumake42 = callPackage ./4.2 { }; -} diff --git a/pkgs/by-name/gn/gnupatch/Allow_input_files_to_be_missing_for_ed-style_patches.patch b/pkgs/by-name/gn/gnupatch/Allow_input_files_to_be_missing_for_ed-style_patches.patch deleted file mode 100644 index 98c9aa8..0000000 --- a/pkgs/by-name/gn/gnupatch/Allow_input_files_to_be_missing_for_ed-style_patches.patch +++ /dev/null @@ -1,33 +0,0 @@ -From b5a91a01e5d0897facdd0f49d64b76b0f02b43e1 Mon Sep 17 00:00:00 2001 -From: Andreas Gruenbacher -Date: Fri, 6 Apr 2018 11:34:51 +0200 -Subject: Allow input files to be missing for ed-style patches - -* src/pch.c (do_ed_script): Allow input files to be missing so that new -files will be created as with non-ed-style patches. ---- - src/pch.c | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -diff --git a/src/pch.c b/src/pch.c -index bc6278c..0c5cc26 100644 ---- a/src/pch.c -+++ b/src/pch.c -@@ -2394,9 +2394,11 @@ do_ed_script (char const *inname, char const *outname, - - if (! dry_run && ! skip_rest_of_patch) { - int exclusive = *outname_needs_removal ? 0 : O_EXCL; -- assert (! inerrno); -- *outname_needs_removal = true; -- copy_file (inname, outname, 0, exclusive, instat.st_mode, true); -+ if (inerrno != ENOENT) -+ { -+ *outname_needs_removal = true; -+ copy_file (inname, outname, 0, exclusive, instat.st_mode, true); -+ } - sprintf (buf, "%s %s%s", editor_program, - verbosity == VERBOSE ? "" : "- ", - outname); --- -cgit v1.0-41-gc330 - diff --git a/pkgs/by-name/gn/gnupatch/CVE-2018-1000156.patch b/pkgs/by-name/gn/gnupatch/CVE-2018-1000156.patch deleted file mode 100644 index 36f33de..0000000 --- a/pkgs/by-name/gn/gnupatch/CVE-2018-1000156.patch +++ /dev/null @@ -1,211 +0,0 @@ -From 123eaff0d5d1aebe128295959435b9ca5909c26d Mon Sep 17 00:00:00 2001 -From: Andreas Gruenbacher -Date: Fri, 6 Apr 2018 12:14:49 +0200 -Subject: Fix arbitrary command execution in ed-style patches - (CVE-2018-1000156) - -* src/pch.c (do_ed_script): Write ed script to a temporary file instead -of piping it to ed: this will cause ed to abort on invalid commands -instead of rejecting them and carrying on. -* tests/ed-style: New test case. -* tests/Makefile.am (TESTS): Add test case. ---- - src/pch.c | 91 ++++++++++++++++++++++++++++++++++++++++--------------- - tests/Makefile.am | 1 + - tests/ed-style | 41 +++++++++++++++++++++++++ - 3 files changed, 108 insertions(+), 25 deletions(-) - create mode 100644 tests/ed-style - -diff --git a/src/pch.c b/src/pch.c -index 0c5cc26..4fd5a05 100644 ---- a/src/pch.c -+++ b/src/pch.c -@@ -33,6 +33,7 @@ - # include - #endif - #include -+#include - - #define INITHUNKMAX 125 /* initial dynamic allocation size */ - -@@ -2389,24 +2390,28 @@ do_ed_script (char const *inname, char const *outname, - static char const editor_program[] = EDITOR_PROGRAM; - - file_offset beginning_of_this_line; -- FILE *pipefp = 0; - size_t chars_read; -+ FILE *tmpfp = 0; -+ char const *tmpname; -+ int tmpfd; -+ pid_t pid; -+ -+ if (! dry_run && ! skip_rest_of_patch) -+ { -+ /* Write ed script to a temporary file. This causes ed to abort on -+ invalid commands such as when line numbers or ranges exceed the -+ number of available lines. When ed reads from a pipe, it rejects -+ invalid commands and treats the next line as a new command, which -+ can lead to arbitrary command execution. */ -+ -+ tmpfd = make_tempfile (&tmpname, 'e', NULL, O_RDWR | O_BINARY, 0); -+ if (tmpfd == -1) -+ pfatal ("Can't create temporary file %s", quotearg (tmpname)); -+ tmpfp = fdopen (tmpfd, "w+b"); -+ if (! tmpfp) -+ pfatal ("Can't open stream for file %s", quotearg (tmpname)); -+ } - -- if (! dry_run && ! skip_rest_of_patch) { -- int exclusive = *outname_needs_removal ? 0 : O_EXCL; -- if (inerrno != ENOENT) -- { -- *outname_needs_removal = true; -- copy_file (inname, outname, 0, exclusive, instat.st_mode, true); -- } -- sprintf (buf, "%s %s%s", editor_program, -- verbosity == VERBOSE ? "" : "- ", -- outname); -- fflush (stdout); -- pipefp = popen(buf, binary_transput ? "wb" : "w"); -- if (!pipefp) -- pfatal ("Can't open pipe to %s", quotearg (buf)); -- } - for (;;) { - char ed_command_letter; - beginning_of_this_line = file_tell (pfp); -@@ -2417,14 +2422,14 @@ do_ed_script (char const *inname, char const *outname, - } - ed_command_letter = get_ed_command_letter (buf); - if (ed_command_letter) { -- if (pipefp) -- if (! fwrite (buf, sizeof *buf, chars_read, pipefp)) -+ if (tmpfp) -+ if (! fwrite (buf, sizeof *buf, chars_read, tmpfp)) - write_fatal (); - if (ed_command_letter != 'd' && ed_command_letter != 's') { - p_pass_comments_through = true; - while ((chars_read = get_line ()) != 0) { -- if (pipefp) -- if (! fwrite (buf, sizeof *buf, chars_read, pipefp)) -+ if (tmpfp) -+ if (! fwrite (buf, sizeof *buf, chars_read, tmpfp)) - write_fatal (); - if (chars_read == 2 && strEQ (buf, ".\n")) - break; -@@ -2437,13 +2442,49 @@ do_ed_script (char const *inname, char const *outname, - break; - } - } -- if (!pipefp) -+ if (!tmpfp) - return; -- if (fwrite ("w\nq\n", sizeof (char), (size_t) 4, pipefp) == 0 -- || fflush (pipefp) != 0) -+ if (fwrite ("w\nq\n", sizeof (char), (size_t) 4, tmpfp) == 0 -+ || fflush (tmpfp) != 0) - write_fatal (); -- if (pclose (pipefp) != 0) -- fatal ("%s FAILED", editor_program); -+ -+ if (lseek (tmpfd, 0, SEEK_SET) == -1) -+ pfatal ("Can't rewind to the beginning of file %s", quotearg (tmpname)); -+ -+ if (! dry_run && ! skip_rest_of_patch) { -+ int exclusive = *outname_needs_removal ? 0 : O_EXCL; -+ *outname_needs_removal = true; -+ if (inerrno != ENOENT) -+ { -+ *outname_needs_removal = true; -+ copy_file (inname, outname, 0, exclusive, instat.st_mode, true); -+ } -+ sprintf (buf, "%s %s%s", editor_program, -+ verbosity == VERBOSE ? "" : "- ", -+ outname); -+ fflush (stdout); -+ -+ pid = fork(); -+ if (pid == -1) -+ pfatal ("Can't fork"); -+ else if (pid == 0) -+ { -+ dup2 (tmpfd, 0); -+ execl ("/bin/sh", "sh", "-c", buf, (char *) 0); -+ _exit (2); -+ } -+ else -+ { -+ int wstatus; -+ if (waitpid (pid, &wstatus, 0) == -1 -+ || ! WIFEXITED (wstatus) -+ || WEXITSTATUS (wstatus) != 0) -+ fatal ("%s FAILED", editor_program); -+ } -+ } -+ -+ fclose (tmpfp); -+ safe_unlink (tmpname); - - if (ofp) - { -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 6b6df63..16f8693 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -32,6 +32,7 @@ TESTS = \ - crlf-handling \ - dash-o-append \ - deep-directories \ -+ ed-style \ - empty-files \ - false-match \ - fifo \ -diff --git a/tests/ed-style b/tests/ed-style -new file mode 100644 -index 0000000..d8c0689 ---- /dev/null -+++ b/tests/ed-style -@@ -0,0 +1,41 @@ -+# Copyright (C) 2018 Free Software Foundation, Inc. -+# -+# Copying and distribution of this file, with or without modification, -+# in any medium, are permitted without royalty provided the copyright -+# notice and this notice are preserved. -+ -+. $srcdir/test-lib.sh -+ -+require cat -+use_local_patch -+use_tmpdir -+ -+# ============================================================== -+ -+cat > ed1.diff < ed2.diff < /dev/null || echo "Status: $?"' < -Date: Mon, 12 Feb 2018 16:48:24 +0100 -Subject: Fix segfault with mangled rename patch - -http://savannah.gnu.org/bugs/?53132 -* src/pch.c (intuit_diff_type): Ensure that two filenames are specified -for renames and copies (fix the existing check). ---- - src/pch.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/pch.c b/src/pch.c -index ff9ed2c..bc6278c 100644 ---- a/src/pch.c -+++ b/src/pch.c -@@ -974,7 +974,8 @@ intuit_diff_type (bool need_header, mode_t *p_file_type) - if ((pch_rename () || pch_copy ()) - && ! inname - && ! ((i == OLD || i == NEW) && -- p_name[! reverse] && -+ p_name[reverse] && p_name[! reverse] && -+ name_is_valid (p_name[reverse]) && - name_is_valid (p_name[! reverse]))) - { - say ("Cannot %s file without two valid file names\n", pch_rename () ? "rename" : "copy"); --- -cgit v1.0-41-gc330 diff --git a/pkgs/by-name/gn/gnupatch/CVE-2018-6952.patch b/pkgs/by-name/gn/gnupatch/CVE-2018-6952.patch deleted file mode 100644 index 2da323c..0000000 --- a/pkgs/by-name/gn/gnupatch/CVE-2018-6952.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 9c986353e420ead6e706262bf204d6e03322c300 Mon Sep 17 00:00:00 2001 -From: Andreas Gruenbacher -Date: Fri, 17 Aug 2018 13:35:40 +0200 -Subject: Fix swapping fake lines in pch_swap - -* src/pch.c (pch_swap): Fix swapping p_bfake and p_efake when there is a -blank line in the middle of a context-diff hunk: that empty line stays -in the middle of the hunk and isn't swapped. - -Fixes: https://savannah.gnu.org/bugs/index.php?53133 ---- - src/pch.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/pch.c b/src/pch.c -index e92bc64..a500ad9 100644 ---- a/src/pch.c -+++ b/src/pch.c -@@ -2122,7 +2122,7 @@ pch_swap (void) - } - if (p_efake >= 0) { /* fix non-freeable ptr range */ - if (p_efake <= i) -- n = p_end - i + 1; -+ n = p_end - p_ptrn_lines; - else - n = -i; - p_efake += n; --- diff --git a/pkgs/by-name/gn/gnupatch/CVE-2019-13636.patch b/pkgs/by-name/gn/gnupatch/CVE-2019-13636.patch deleted file mode 100644 index e62c3d4..0000000 --- a/pkgs/by-name/gn/gnupatch/CVE-2019-13636.patch +++ /dev/null @@ -1,108 +0,0 @@ -From dce4683cbbe107a95f1f0d45fabc304acfb5d71a Mon Sep 17 00:00:00 2001 -From: Andreas Gruenbacher -Date: Mon, 15 Jul 2019 16:21:48 +0200 -Subject: Don't follow symlinks unless --follow-symlinks is given - -* src/inp.c (plan_a, plan_b), src/util.c (copy_to_fd, copy_file, -append_to_file): Unless the --follow-symlinks option is given, open files with -the O_NOFOLLOW flag to avoid following symlinks. So far, we were only doing -that consistently for input files. -* src/util.c (create_backup): When creating empty backup files, (re)create them -with O_CREAT | O_EXCL to avoid following symlinks in that case as well. ---- - src/inp.c | 12 ++++++++++-- - src/util.c | 14 +++++++++++--- - 2 files changed, 21 insertions(+), 5 deletions(-) - -diff --git a/src/inp.c b/src/inp.c -index 32d0919..22d7473 100644 ---- a/src/inp.c -+++ b/src/inp.c -@@ -238,8 +238,13 @@ plan_a (char const *filename) - { - if (S_ISREG (instat.st_mode)) - { -- int ifd = safe_open (filename, O_RDONLY|binary_transput, 0); -+ int flags = O_RDONLY | binary_transput; - size_t buffered = 0, n; -+ int ifd; -+ -+ if (! follow_symlinks) -+ flags |= O_NOFOLLOW; -+ ifd = safe_open (filename, flags, 0); - if (ifd < 0) - pfatal ("can't open file %s", quotearg (filename)); - -@@ -340,6 +345,7 @@ plan_a (char const *filename) - static void - plan_b (char const *filename) - { -+ int flags = O_RDONLY | binary_transput; - int ifd; - FILE *ifp; - int c; -@@ -353,7 +359,9 @@ plan_b (char const *filename) - - if (instat.st_size == 0) - filename = NULL_DEVICE; -- if ((ifd = safe_open (filename, O_RDONLY | binary_transput, 0)) < 0 -+ if (! follow_symlinks) -+ flags |= O_NOFOLLOW; -+ if ((ifd = safe_open (filename, flags, 0)) < 0 - || ! (ifp = fdopen (ifd, binary_transput ? "rb" : "r"))) - pfatal ("Can't open file %s", quotearg (filename)); - if (TMPINNAME_needs_removal) -diff --git a/src/util.c b/src/util.c -index 1cc08ba..fb38307 100644 ---- a/src/util.c -+++ b/src/util.c -@@ -388,7 +388,7 @@ create_backup (char const *to, const struct stat *to_st, bool leave_original) - - try_makedirs_errno = ENOENT; - safe_unlink (bakname); -- while ((fd = safe_open (bakname, O_CREAT | O_WRONLY | O_TRUNC, 0666)) < 0) -+ while ((fd = safe_open (bakname, O_CREAT | O_EXCL | O_WRONLY | O_TRUNC, 0666)) < 0) - { - if (errno != try_makedirs_errno) - pfatal ("Can't create file %s", quotearg (bakname)); -@@ -579,10 +579,13 @@ create_file (char const *file, int open_flags, mode_t mode, - static void - copy_to_fd (const char *from, int tofd) - { -+ int from_flags = O_RDONLY | O_BINARY; - int fromfd; - ssize_t i; - -- if ((fromfd = safe_open (from, O_RDONLY | O_BINARY, 0)) < 0) -+ if (! follow_symlinks) -+ from_flags |= O_NOFOLLOW; -+ if ((fromfd = safe_open (from, from_flags, 0)) < 0) - pfatal ("Can't reopen file %s", quotearg (from)); - while ((i = read (fromfd, buf, bufsize)) != 0) - { -@@ -625,6 +628,8 @@ copy_file (char const *from, char const *to, struct stat *tost, - else - { - assert (S_ISREG (mode)); -+ if (! follow_symlinks) -+ to_flags |= O_NOFOLLOW; - tofd = create_file (to, O_WRONLY | O_BINARY | to_flags, mode, - to_dir_known_to_exist); - copy_to_fd (from, tofd); -@@ -640,9 +645,12 @@ copy_file (char const *from, char const *to, struct stat *tost, - void - append_to_file (char const *from, char const *to) - { -+ int to_flags = O_WRONLY | O_APPEND | O_BINARY; - int tofd; - -- if ((tofd = safe_open (to, O_WRONLY | O_BINARY | O_APPEND, 0)) < 0) -+ if (! follow_symlinks) -+ to_flags |= O_NOFOLLOW; -+ if ((tofd = safe_open (to, to_flags, 0)) < 0) - pfatal ("Can't reopen file %s", quotearg (to)); - copy_to_fd (from, tofd); - if (close (tofd) != 0) --- -cgit v1.0-41-gc330 - diff --git a/pkgs/by-name/gn/gnupatch/CVE-2019-13638-and-CVE-2018-20969.patch b/pkgs/by-name/gn/gnupatch/CVE-2019-13638-and-CVE-2018-20969.patch deleted file mode 100644 index 38caff6..0000000 --- a/pkgs/by-name/gn/gnupatch/CVE-2019-13638-and-CVE-2018-20969.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 3fcd042d26d70856e826a42b5f93dc4854d80bf0 Mon Sep 17 00:00:00 2001 -From: Andreas Gruenbacher -Date: Fri, 6 Apr 2018 19:36:15 +0200 -Subject: Invoke ed directly instead of using the shell - -* src/pch.c (do_ed_script): Invoke ed directly instead of using a shell -command to avoid quoting vulnerabilities. ---- - src/pch.c | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/src/pch.c b/src/pch.c -index 4fd5a05..16e001a 100644 ---- a/src/pch.c -+++ b/src/pch.c -@@ -2459,9 +2459,6 @@ do_ed_script (char const *inname, char const *outname, - *outname_needs_removal = true; - copy_file (inname, outname, 0, exclusive, instat.st_mode, true); - } -- sprintf (buf, "%s %s%s", editor_program, -- verbosity == VERBOSE ? "" : "- ", -- outname); - fflush (stdout); - - pid = fork(); -@@ -2470,7 +2467,8 @@ do_ed_script (char const *inname, char const *outname, - else if (pid == 0) - { - dup2 (tmpfd, 0); -- execl ("/bin/sh", "sh", "-c", buf, (char *) 0); -+ assert (outname[0] != '!' && outname[0] != '-'); -+ execlp (editor_program, editor_program, "-", outname, (char *) NULL); - _exit (2); - } - else --- -cgit v1.0-41-gc330 - diff --git a/pkgs/by-name/gn/gnupatch/default.nix b/pkgs/by-name/gn/gnupatch/default.nix deleted file mode 100644 index c19e087..0000000 --- a/pkgs/by-name/gn/gnupatch/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ lib, stdenv, fetchurl -, ed, autoreconfHook -}: - -stdenv.mkDerivation rec { - pname = "patch"; - version = "2.7.6"; - - src = fetchurl { - url = "mirror://gnu/patch/patch-${version}.tar.xz"; - sha256 = "1zfqy4rdcy279vwn2z1kbv19dcfw25d2aqy9nzvdkq5bjzd0nqdc"; - }; - - patches = [ - # https://git.savannah.gnu.org/cgit/patch.git/patch/?id=f290f48a621867084884bfff87f8093c15195e6a - ./CVE-2018-6951.patch - - # https://git.savannah.gnu.org/cgit/patch.git/patch/?id=b5a91a01e5d0897facdd0f49d64b76b0f02b43e1 - ./Allow_input_files_to_be_missing_for_ed-style_patches.patch - - # https://git.savannah.gnu.org/cgit/patch.git/patch/?id=123eaff0d5d1aebe128295959435b9ca5909c26d - ./CVE-2018-1000156.patch - - # https://git.savannah.gnu.org/cgit/patch.git/commit/?id=9c986353e420ead6e706262bf204d6e03322c300 - ./CVE-2018-6952.patch - - # https://git.savannah.gnu.org/cgit/patch.git/patch/?id=dce4683cbbe107a95f1f0d45fabc304acfb5d71a - ./CVE-2019-13636.patch - - # https://git.savannah.gnu.org/cgit/patch.git/patch/?id=3fcd042d26d70856e826a42b5f93dc4854d80bf0 - ./CVE-2019-13638-and-CVE-2018-20969.patch - ]; - - nativeBuildInputs = [ autoreconfHook ]; - - configureFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "ac_cv_func_strnlen_working=yes" - ]; - - doCheck = stdenv.hostPlatform.libc != "musl"; # not cross; - 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. - ''; - - homepage = "https://savannah.gnu.org/projects/patch"; - - license = lib.licenses.gpl3Plus; - - maintainers = [ ]; - platforms = lib.platforms.all; - }; -} diff --git a/pkgs/by-name/gn/gnupatch/packages.nix b/pkgs/by-name/gn/gnupatch/packages.nix deleted file mode 100644 index a4025d7..0000000 --- a/pkgs/by-name/gn/gnupatch/packages.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - gnupatch = callPackage ./. { }; - patch = gnupatch; -} diff --git a/pkgs/by-name/gn/gnused/default.nix b/pkgs/by-name/gn/gnused/default.nix deleted file mode 100644 index f493e4f..0000000 --- a/pkgs/by-name/gn/gnused/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ lib, stdenv, fetchurl, perl }: - -stdenv.mkDerivation rec { - pname = "gnused"; - version = "4.9"; - - src = fetchurl { - url = "mirror://gnu/sed/sed-${version}.tar.xz"; - sha256 = "sha256-biJrcy4c1zlGStaGK9Ghq6QteYKSLaelNRljHSSXUYE="; - }; - - outputs = [ "out" "info" ]; - - nativeBuildInputs = [ perl ]; - preConfigure = "patchShebangs ./build-aux/help2man"; - - # Prevents attempts of running 'help2man' on cross-built binaries. - PERL = if stdenv.hostPlatform == stdenv.buildPlatform then null else "missing"; - - meta = { - homepage = "https://www.gnu.org/software/sed/"; - description = "GNU sed, a batch stream editor"; - - longDescription = '' - Sed (stream editor) isn't really a true text editor or text - processor. Instead, it is used to filter text, i.e., it takes - text input and performs some operation (or set of operations) on - it and outputs the modified text. Sed is typically used for - extracting part of a file using pattern matching or substituting - multiple occurrences of a string within a file. - ''; - - license = lib.licenses.gpl3Plus; - - platforms = lib.platforms.unix; - maintainers = with lib.maintainers; [ mic92 ]; - mainProgram = "sed"; - }; -} diff --git a/pkgs/by-name/gn/gnutar/default.nix b/pkgs/by-name/gn/gnutar/default.nix deleted file mode 100644 index 331d977..0000000 --- a/pkgs/by-name/gn/gnutar/default.nix +++ /dev/null @@ -1,78 +0,0 @@ -{ 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 -# cgit) that are needed here should be included directly in Nixpkgs as -# files. - -stdenv.mkDerivation rec { - pname = "gnutar"; - version = "1.35"; - - src = fetchurl { - url = "mirror://gnu/tar/tar-${version}.tar.xz"; - sha256 = "sha256-TWL/NzQux67XSFNTI5MMfPlKz3HDWRiCsmp+pQ8+3BY="; - }; - - # avoid retaining reference to CF during stdenv bootstrap - configureFlags = lib.optionals stdenv.isDarwin [ - "gt_cv_func_CFPreferencesCopyAppValue=no" - "gt_cv_func_CFLocaleCopyCurrent=no" - "gt_cv_func_CFLocaleCopyPreferredLanguages=no" - ]; - - # gnutar tries to call into gettext between `fork` and `exec`, - # which is not safe on darwin. - # see http://article.gmane.org/gmane.os.macosx.fink.devel/21882 - postPatch = lib.optionalString stdenv.isDarwin '' - substituteInPlace src/system.c --replace '_(' 'N_(' - ''; - - outputs = [ "out" "info" ]; - - nativeBuildInputs = lib.optional stdenv.isDarwin autoreconfHook; - # Add libintl on Darwin specifically as it fails to link (or skip) - # NLS on it's own: - # "_libintl_textdomain", referenced from: - # _main in tar.o - # ld: symbol(s) not found for architecture x86_64 - buildInputs = lib.optional stdenv.isLinux acl ++ lib.optional stdenv.isDarwin libintl; - - # 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"; - - preConfigure = if stdenv.isCygwin then '' - sed -i gnu/fpending.h -e 's,include ,,' - '' else null; - - doCheck = false; # fails - doInstallCheck = false; # fails - - meta = { - description = "GNU implementation of the `tar' archiver"; - longDescription = '' - The Tar program provides the ability to create tar archives, as - well as various other kinds of manipulation. For example, you - can use Tar on previously created archives to extract files, to - store additional files, or to update or list files which were - already stored. - - Initially, tar archives were used to store files conveniently on - magnetic tape. The name "Tar" comes from this use; it stands - for tape archiver. Despite the utility's name, Tar can direct - its output to available devices, files, or other programs (using - pipes), it can even access remote devices or files (as - archives). - ''; - homepage = "https://www.gnu.org/software/tar/"; - - license = lib.licenses.gpl3Plus; - - maintainers = [ ]; - mainProgram = "tar"; - platforms = lib.platforms.all; - - priority = 10; - }; -} diff --git a/pkgs/by-name/gn/gnutls/default.nix b/pkgs/by-name/gn/gnutls/default.nix deleted file mode 100644 index 28eb6a8..0000000 --- a/pkgs/by-name/gn/gnutls/default.nix +++ /dev/null @@ -1,187 +0,0 @@ -{ 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 -# , curlWithGnuTls -# , emacs -# , ffmpeg -# , haskellPackages -# , knot-resolver -# , ngtcp2-gnutls -# , ocamlPackages -# , pkgsStatic -# , python3Packages -# , qemu -# , rsyslog -# , openconnect -# , samba -}: - -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; - - inherit (stdenv.hostPlatform) isDarwin; -in - -stdenv.mkDerivation rec { - pname = "gnutls"; - version = "3.8.4"; - - src = fetchurl { - url = "mirror://gnupg/gnutls/v${lib.versions.majorMinor version}/gnutls-${version}.tar.xz"; - hash = "sha256-K+pOFUeU8/ABgPoqXFH+iwBax6Mc1YvUTN+n8268Ops="; - }; - - outputs = [ "bin" "dev" "out" ] - ++ lib.optionals (!stdenv.hostPlatform.isMinGW) [ "man" "devdoc" ]; - - # Not normally useful docs. - outputInfo = "devdoc"; - outputDoc = "devdoc"; - - patches = [ - ./nix-ssl-cert-file.patch - # Revert https://gitlab.com/gnutls/gnutls/-/merge_requests/1800 - # dlopen isn't as easy in NixPkgs, as noticed in tests broken by this. - # Without getting the libs into RPATH they won't be found. - (fetchpatch2 { - name = "revert-dlopen-compression.patch"; - url = "https://gitlab.com/gnutls/gnutls/-/commit/8584908d6b679cd4e7676de437117a793e18347c.diff"; - revert = true; - hash = "sha256-r/+Gmwqy0Yc1LHL/PdPLXlErUBC5JxquLzCBAN3LuRM="; - }) - ]; - - # Skip some tests: - # - pkg-config: building against the result won't work before installing (3.5.11) - # - fastopen: no idea; it broke between 3.6.2 and 3.6.3 (3437fdde6 in particular) - # - 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' - ''; - - 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" - ]; - - 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; - - nativeBuildInputs = [ perl pkg-config texinfo ] ++ [ autoconf automake ] - ++ lib.optionals doCheck [ which nettools util-linux ]; - - propagatedBuildInputs = [ nettle ] - # Builds dynamically linking against gnutls seem to need the framework now. - ++ lib.optional isDarwin Security; - - inherit doCheck; - # stdenv's `NIX_SSL_CERT_FILE=/no-cert-file.crt` breaks tests. - # Also empty files won't work, and we want to avoid potentially impure /etc/ - 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" "" - ''; - - # passthru.tests = { - # inherit ngtcp2-gnutls curlWithGnuTls ffmpeg emacs qemu knot-resolver samba openconnect; - # inherit (ocamlPackages) ocamlnet; - # haskell-gnutls = haskellPackages.gnutls; - # python3-gnutls = python3Packages.python3-gnutls; - # rsyslog = rsyslog.override { withGnutls = true; }; - # static = pkgsStatic.gnutls; - # }; - - meta = with lib; { - description = "The GNU Transport Layer Security Library"; - - longDescription = '' - GnuTLS is a project that aims to develop a library which - provides a secure layer, over a reliable transport - layer. Currently the GnuTLS library implements the proposed standards by - the IETF's TLS working group. - - Quoting from the TLS protocol specification: - - "The TLS protocol provides communications privacy over the - Internet. The protocol allows client/server applications to - communicate in a way that is designed to prevent eavesdropping, - tampering, or message forgery." - ''; - - homepage = "https://gnutls.org/"; - license = licenses.lgpl21Plus; - maintainers = with maintainers; [ vcunat ]; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/gn/gnutls/dummy.crt b/pkgs/by-name/gn/gnutls/dummy.crt deleted file mode 100644 index 77300f6..0000000 --- a/pkgs/by-name/gn/gnutls/dummy.crt +++ /dev/null @@ -1,45 +0,0 @@ -ACCVRAIZ1 ------BEGIN CERTIFICATE----- -MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UE -AwwJQUNDVlJBSVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQsw -CQYDVQQGEwJFUzAeFw0xMTA1MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQ -BgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwHUEtJQUNDVjENMAsGA1UECgwEQUND -VjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCb -qau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gMjmoY -HtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWo -G2ioPej0RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpA -lHPrzg5XPAOBOp0KoVdDaaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhr -IA8wKFSVf+DuzgpmndFALW4ir50awQUZ0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/ -0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDGWuzndN9wrqODJerWx5eH -k6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs78yM2x/47 -4KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMO -m3WR5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpa -cXpkatcnYGMN285J9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPl -uUsXQA+xtrn13k/c4LOsOxFwYIRKQ26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYI -KwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRwOi8vd3d3LmFjY3YuZXMvZmls -ZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEuY3J0MB8GCCsG -AQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 -VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeT -VfZW6oHlNsyMHj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIG -CCsGAQUFBwICMIIBFB6CARAAQQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUA -cgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBhAO0AegAgAGQAZQAgAGwAYQAgAEEA -QwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUAYwBuAG8AbABvAGcA -7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBjAHQA -cgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAA -QwBQAFMAIABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUA -czAwBggrBgEFBQcCARYkaHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2Mu -aHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRt -aW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2MV9kZXIuY3JsMA4GA1Ud -DwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZIhvcNAQEF -BQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdp -D70ER9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gU -JyCpZET/LtZ1qmxNYEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+m -AM/EKXMRNt6GGT6d7hmKG9Ww7Y49nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepD -vV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJTS+xJlsndQAJxGJ3KQhfnlms -tn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3sCPdK6jT2iWH -7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h -I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szA -h1xA2syVP1XgNce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xF -d3+YJ5oyXSrjhO7FmGYvliAd3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2H -pPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3pEfbRD0tVNEYqi4Y7 ------END CERTIFICATE----- diff --git a/pkgs/by-name/gn/gnutls/nix-ssl-cert-file.patch b/pkgs/by-name/gn/gnutls/nix-ssl-cert-file.patch deleted file mode 100644 index c0f27f7..0000000 --- a/pkgs/by-name/gn/gnutls/nix-ssl-cert-file.patch +++ /dev/null @@ -1,17 +0,0 @@ -allow overriding system trust store location via $NIX_SSL_CERT_FILE - ---- a/lib/system/certs.c -+++ b/lib/system/certs.c -@@ -404,6 +404,10 @@ gnutls_x509_trust_list_add_system_trust(gnutls_x509_trust_list_t list, - unsigned int tl_flags, - unsigned int tl_vflags) - { -- return add_system_trust(list, tl_flags | GNUTLS_TL_NO_DUPLICATES, -- tl_vflags); -+ tl_flags = tl_flags|GNUTLS_TL_NO_DUPLICATES; -+ const char *file = secure_getenv("NIX_SSL_CERT_FILE"); -+ return file -+ ? gnutls_x509_trust_list_add_trust_file( -+ list, file, NULL/*CRL*/, GNUTLS_X509_FMT_PEM, tl_flags, tl_vflags) -+ : add_system_trust(list, tl_flags, tl_vflags); - } diff --git a/pkgs/by-name/gn/gnutls/packages.nix b/pkgs/by-name/gn/gnutls/packages.nix deleted file mode 100644 index f595e4f..0000000 --- a/pkgs/by-name/gn/gnutls/packages.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - gnutls = callPackage ./. { - inherit (darwin.apple_sdk.frameworks) Security; - util-linux = util-linuxMinimal; # break the cyclic dependency - autoconf = buildPackages.autoconf269; - }; -} diff --git a/pkgs/by-name/gp/gperf/3.0.x.nix b/pkgs/by-name/gp/gperf/3.0.x.nix deleted file mode 100644 index bceef75..0000000 --- a/pkgs/by-name/gp/gperf/3.0.x.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ lib, stdenv, fetchurl, autoreconfHook }: - -stdenv.mkDerivation rec { - pname = "gperf"; - version = "3.0.4"; - - src = fetchurl { - url = "mirror://gnu/gperf/gperf-${version}.tar.gz"; - sha256 = "0gnnm8iqcl52m8iha3sxrzrl9mcyhg7lfrhhqgdn4zj00ji14wbn"; - }; - - nativeBuildInputs = [ autoreconfHook ]; - patches = [ - ./gperf-ar-fix.patch - # Clang 16 defaults to C++17, which does not allow `register` as a storage class specifier. - ./gperf-c++17-register-fix.patch - ]; - - # Replace the conditional inclusion of `string.h` on VMS with unconditional inclusion on all - # platforms. Otherwise, clang 16 fails to build gperf due to use of undeclared library functions. - postPatch = '' - sed '/#ifdef VMS/{N;N;N;N;N;s/.*/#include /}' -i lib/getopt.c - ''; - - meta = { - description = "Perfect hash function generator"; - mainProgram = "gperf"; - - longDescription = '' - GNU gperf is a perfect hash function generator. For a given - list of strings, it produces a hash function and hash table, in - form of C or C++ code, for looking up a value depending on the - input string. The hash function is perfect, which means that - the hash table has no collisions, and the hash table lookup - needs a single string comparison only. - - GNU gperf is highly customizable. There are options for - generating C or C++ code, for emitting switch statements or - nested ifs instead of a hash table, and for tuning the algorithm - employed by gperf. - ''; - - license = lib.licenses.gpl3Plus; - - homepage = "https://www.gnu.org/software/gperf/"; - platforms = lib.platforms.unix; - }; -} diff --git a/pkgs/by-name/gp/gperf/default.nix b/pkgs/by-name/gp/gperf/default.nix deleted file mode 100644 index bdc3b7a..0000000 --- a/pkgs/by-name/gp/gperf/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{lib, stdenv, fetchurl}: - -stdenv.mkDerivation rec { - pname = "gperf"; - version = "3.1"; - - src = fetchurl { - url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz"; - sha256 = "1qispg6i508rq8pkajh26cznwimbnj06wq9sd85vg95v8nwld1aq"; - }; - - patches = [ - # Clang 16 defaults to C++17, which does not allow `register` as a storage class specifier. - ./gperf-c++17-register-fix.patch - ]; - - enableParallelBuilding = true; - - meta = { - description = "Perfect hash function generator"; - - longDescription = '' - GNU gperf is a perfect hash function generator. For a given - list of strings, it produces a hash function and hash table, in - form of C or C++ code, for looking up a value depending on the - input string. The hash function is perfect, which means that - the hash table has no collisions, and the hash table lookup - needs a single string comparison only. - - GNU gperf is highly customizable. There are options for - generating C or C++ code, for emitting switch statements or - nested ifs instead of a hash table, and for tuning the algorithm - employed by gperf. - ''; - - license = lib.licenses.gpl3Plus; - - homepage = "https://www.gnu.org/software/gperf/"; - platforms = lib.platforms.unix; - mainProgram = "gperf"; - }; -} diff --git a/pkgs/by-name/gp/gperf/gperf-ar-fix.patch b/pkgs/by-name/gp/gperf/gperf-ar-fix.patch deleted file mode 100644 index 942d726..0000000 --- a/pkgs/by-name/gp/gperf/gperf-ar-fix.patch +++ /dev/null @@ -1,46 +0,0 @@ ---- gperf-3.0.4/lib/configure.ac 2009-01-15 02:24:31.000000000 +0200 -+++ gperf-3.0.4.patched/lib/configure.ac 2018-11-29 06:37:20.968627533 +0300 -@@ -21,10 +21,12 @@ - - AC_PREREQ([2.60]) - AC_INIT([hash.cc]) -+m4_include([../aclocal.m4]) - AC_PROG_MAKE_SET - dnl - dnl checks for programs - dnl -+AC_SUBST([AR]) - AC_PROG_CC - dnl sets variable CC - AC_PROG_CPP ---- gperf-3.0.4/lib/Makefile.in 2008-08-23 21:52:48.000000000 +0300 -+++ gperf-3.0.4.patched/lib/Makefile.in 2018-11-29 06:36:43.161998888 +0300 -@@ -41,7 +41,7 @@ - # Both C and C++ compiler - OBJEXT = @OBJEXT@ - # Other --AR = ar -+AR = @AR@ - AR_FLAGS = rc - RANLIB = @RANLIB@ - MV = mv ---- gperf-3.0.4/doc/configure.ac 2009-01-15 02:24:31.000000000 +0200 -+++ gperf-3.0.4.patched/doc/configure.ac 2018-11-29 06:36:00.961288421 +0300 -@@ -21,6 +21,7 @@ - - AC_PREREQ([2.60]) - AC_INIT([gperf.1]) -+m4_include([../aclocal.m4]) - PACKAGE=gperf - AC_SUBST([PACKAGE]) - AC_PROG_MAKE_SET ---- gperf-3.0.4/src/configure.ac 2009-01-15 02:24:30.000000000 +0200 -+++ gperf-3.0.4.patched/src/configure.ac 2018-11-29 06:34:21.718576658 +0300 -@@ -21,6 +21,7 @@ - - AC_PREREQ([2.60]) - AC_INIT([main.cc]) -+m4_include([../aclocal.m4]) - AC_CONFIG_HEADER([config.h]) - AC_PROG_MAKE_SET - dnl diff --git a/pkgs/by-name/gp/gperf/gperf-c++17-register-fix.patch b/pkgs/by-name/gp/gperf/gperf-c++17-register-fix.patch deleted file mode 100644 index bb8c414..0000000 --- a/pkgs/by-name/gp/gperf/gperf-c++17-register-fix.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/lib/getline.cc b/lib/getline.cc -index c57c633..0984a7c 100644 ---- a/lib/getline.cc -+++ b/lib/getline.cc -@@ -55,7 +55,7 @@ getstr (char **lineptr, size_t *n, FILE *stream, char terminator, size_t offset) - - for (;;) - { -- register int c = getc (stream); -+ int c = getc (stream); - - /* We always want at least one char left in the buffer, since we - always (unless we get an error while reading the first char) diff --git a/pkgs/by-name/gp/gperf/packages.nix b/pkgs/by-name/gp/gperf/packages.nix deleted file mode 100644 index a91b33b..0000000 --- a/pkgs/by-name/gp/gperf/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index 1c083b8..0000000 --- a/pkgs/by-name/gp/gpm/default.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, automake, autoconf, libtool, flex, bison, texinfo, fetchpatch, pkgsStatic -, withNcurses ? true, ncurses -}: - -stdenv.mkDerivation rec { - pname = "gpm"; - version = "unstable-2020-06-17"; - - src = fetchFromGitHub { - owner = "telmich"; - repo = "gpm"; - rev = "e82d1a653ca94aa4ed12441424da6ce780b1e530"; - sha256 = "0ndn6dwc87slvyqp2cnbb02a6hkjwb6zjhs6viysykv06hq7ihy6"; - }; - - postPatch = '' - substituteInPlace src/prog/gpm-root.y --replace __sigemptyset sigemptyset - ''; - - nativeBuildInputs = [ automake autoconf libtool flex bison texinfo ]; - buildInputs = [ ncurses ]; - - hardeningDisable = [ "format" ]; - - patches = [ - (fetchpatch { # pull request telmich/gpm#42 - url = "https://github.com/kaction/gpm/commit/217b4fe4c9b62298a4e9a54c1f07e3b52b013a09.patch"; - sha256 = "1f74h12iph4z1dldbxk9imcq11805c3ai2xhbsqvx8jpjrcfp19q"; - }) - - # Pull fix pending upstream inclusion to fix parallel installation: - # https://github.com/telmich/gpm/pull/43 - (fetchpatch { - name = "parallel-install.patch"; - url = "https://github.com/telmich/gpm/commit/a88fb82a7afe96e872bb31c554e9ad5888f5a451.patch"; - sha256 = "0g1jhz9bjw7vqjv922xkhs8xkjxdqh11nj38jj3c8nv5lcil76nx"; - }) - ]; - preConfigure = '' - ./autogen.sh - ''; - - configureFlags = [ - "--sysconfdir=/etc" - "--localstatedir=/var" - (if withNcurses then "--with-curses" else "--without-curses") - ]; - - enableParallelBuilding = true; - - # Provide libgpm.so for compatibility - postInstall = '' - ln -sv $out/lib/libgpm.so.2 $out/lib/libgpm.so - ''; - - passthru.tests.static = pkgsStatic.gpm; - - meta = with lib; { - homepage = "https://www.nico.schottelius.org/software/gpm/"; - description = "A daemon that provides mouse support on the Linux console"; - license = licenses.gpl2; - platforms = platforms.linux ++ platforms.cygwin; - maintainers = with maintainers; [ eelco ]; - }; -} diff --git a/pkgs/by-name/gp/gpm/packages.nix b/pkgs/by-name/gp/gpm/packages.nix deleted file mode 100644 index f900d7b..0000000 --- a/pkgs/by-name/gp/gpm/packages.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - gpm = callPackage ./. { - withNcurses = false; # Keep curses disabled for lack of value - - # latest 6.8 mysteriously fails to parse '@headings single': - # https://lists.gnu.org/archive/html/bug-texinfo/2021-09/msg00011.html - texinfo = buildPackages.texinfo6_7; - }; - gpm-ncurses = gpm.override { withNcurses = true; }; -} diff --git a/pkgs/by-name/gr/graphviz/default.nix b/pkgs/by-name/gr/graphviz/default.nix deleted file mode 100644 index dfa994d..0000000 --- a/pkgs/by-name/gr/graphviz/default.nix +++ /dev/null @@ -1,114 +0,0 @@ -{ 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 -# , fltk -# , graphicsmagick -}: - -let - inherit (lib) optional optionals optionalString; -in -stdenv.mkDerivation rec { - pname = "graphviz"; - version = "10.0.1"; - - src = fetchFromGitLab { - owner = "graphviz"; - repo = "graphviz"; - rev = version; - hash = "sha256-KAqJUVqPld3F2FHlUlfbw848GPXXOmyRQkab8jlH1NM="; - }; - - nativeBuildInputs = [ - autoreconfHook - pkg-config - python3 - bison - flex - ]; - - buildInputs = [ - libpng - libjpeg - expat - fontconfig - gd - gts - pango - bash - ] ++ optionals withXorg (with xorg; [ libXrender libXaw libXpm ]) - ++ optionals stdenv.isDarwin [ ApplicationServices Foundation ]; - - hardeningDisable = [ "fortify" ]; - - configureFlags = [ - "--with-ltdl-lib=${libtool.lib}/lib" - "--with-ltdl-include=${libtool}/include" - ] ++ optional (xorg == null) "--without-x"; - - enableParallelBuilding = true; - - CPPFLAGS = optionalString (withXorg && stdenv.isDarwin) - "-I${cairo.dev}/include/cairo"; - - doCheck = false; # fails with "Graphviz test suite requires ksh93" which is not in nixpkgs - - preAutoreconf = '' - # components under this directory require a tool `CompileXIB` to build - # and there's no official way to disable this on darwin. - substituteInPlace Makefile.am --replace-fail 'SUBDIRS += macosx' "" - - ./autogen.sh - ''; - - postFixup = optionalString withXorg '' - substituteInPlace $out/bin/vimdot \ - --replace '"/usr/bin/vi"' '"$(command -v vi)"' \ - --replace '"/usr/bin/vim"' '"$(command -v vim)"' \ - --replace /usr/bin/vimdot $out/bin/vimdot \ - ''; - - # passthru.tests = { - # inherit (python3.pkgs) - # graphviz - # pydot - # pygraphviz - # xdot - # ; - # inherit - # exiv2 - # fltk - # graphicsmagick - # ; - # }; - - meta = with lib; { - homepage = "https://graphviz.org"; - description = "Graph visualization tools"; - license = licenses.epl10; - platforms = platforms.unix; - maintainers = with maintainers; [ bjornfor raskin ]; - }; -} diff --git a/pkgs/by-name/gr/graphviz/packages.nix b/pkgs/by-name/gr/graphviz/packages.nix deleted file mode 100644 index 045d21e..0000000 --- a/pkgs/by-name/gr/graphviz/packages.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - graphviz = callPackage ./. { - inherit (darwin.apple_sdk.frameworks) ApplicationServices Foundation; - }; - - graphviz-nox = callPackage ./. { - inherit (darwin.apple_sdk.frameworks) ApplicationServices Foundation; - withXorg = false; - }; -} diff --git a/pkgs/by-name/gr/groff/default.nix b/pkgs/by-name/gr/groff/default.nix deleted file mode 100644 index df06292..0000000 --- a/pkgs/by-name/gr/groff/default.nix +++ /dev/null @@ -1,136 +0,0 @@ -{ 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 { - pname = "groff"; - version = "1.23.0"; - - src = fetchurl { - url = "mirror://gnu/groff/${pname}-${version}.tar.gz"; - hash = "sha256-a5dX9ZK3UYtJAutq9+VFcL3Mujeocf3bLTCuOGNRHBM="; - }; - - 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" - ''; - - strictDeps = true; - 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 ] - ++ 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" - ]; - - makeFlags = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ - # Trick to get the build system find the proper 'native' groff - # http://www.mail-archive.com/bug-groff@gnu.org/msg01335.html - "GROFF_BIN_PATH=${buildPackages.groff}/bin" - "GROFFBIN=${buildPackages.groff}/bin/groff" - ]; - - doCheck = true; - - postInstall = '' - for f in 'man.local' 'mdoc.local'; do - cat '${./site.tmac}' >>"$out/share/groff/site-tmac/$f" - done - - moveToOutput bin/gropdf $perl - moveToOutput bin/pdfmom $perl - moveToOutput bin/roff2text $perl - moveToOutput bin/roff2pdf $perl - moveToOutput bin/roff2ps $perl - moveToOutput bin/roff2dvi $perl - moveToOutput bin/roff2ps $perl - moveToOutput bin/roff2html $perl - moveToOutput bin/glilypond $perl - moveToOutput bin/mmroff $perl - moveToOutput bin/roff2x $perl - moveToOutput bin/afmtodit $perl - moveToOutput bin/gperl $perl - moveToOutput bin/chem $perl - - moveToOutput bin/gpinyin $perl - moveToOutput lib/groff/gpinyin $perl - substituteInPlace $perl/bin/gpinyin \ - --replace $out/lib/groff/gpinyin $perl/lib/groff/gpinyin - - moveToOutput bin/grog $perl - moveToOutput lib/groff/grog $perl - substituteInPlace $perl/bin/grog \ - --replace $out/lib/groff/grog $perl/lib/groff/grog - - find $perl/ -type f -print0 | xargs --null sed -i 's|${buildPackages.perl}|${perl}|' - ''; - - meta = with lib; { - homepage = "https://www.gnu.org/software/groff/"; - description = "GNU Troff, a typesetting package that reads plain text and produces formatted output"; - license = licenses.gpl3Plus; - platforms = platforms.all; - maintainers = with maintainers; [ pSub ]; - - longDescription = '' - groff is the GNU implementation of troff, a document formatting - system. Included in this release are implementations of troff, - pic, eqn, tbl, grn, refer, -man, -mdoc, -mom, and -ms macros, - and drivers for PostScript, TeX dvi format, HP LaserJet 4 - printers, Canon CAPSL printers, HTML and XHTML format (beta - status), and typewriter-like devices. Also included is a - modified version of the Berkeley -me macros, the enhanced - version gxditview of the X11 xditview previewer, and an - implementation of the -mm macros. - ''; - - outputsToInstall = [ "out" "perl" ]; - }; -} diff --git a/pkgs/by-name/gr/groff/site.tmac b/pkgs/by-name/gr/groff/site.tmac deleted file mode 100644 index 6f0f18d..0000000 --- a/pkgs/by-name/gr/groff/site.tmac +++ /dev/null @@ -1,26 +0,0 @@ -. -.if n \{\ -. \" With groff 1.23.0 "[t]he 'utf8' output device now maps the input -. \" characters '^' (caret, circumflex accent, or 'hat') and '~' (tilde) -. \" to U+02C6 (modifier letter circumflex accent) and U+02DC (small tilde), -. \" respectively, for consistency with groff's other output devices. -. \" This change is expected to expose glyph usage errors in man pages. -. \" See [http://git.savannah.gnu.org/cgit/groff.git/tree/PROBLEMS] for -. \" a recipe that will conceal these errors" -. \" -- https://lists.gnu.org/archive/html/groff/2023-07/msg00051.html -. \" -. \" Conceal glyph usage errors in man pages with the following -. \" character translations for non-keyboard characters to make them searchable. -. if '\*[.T]'utf8' \{\ -. char \- \N'45' -. char - \N'45' -. char \' \[aq] -. char ' \[aq] -. char ` \[ga] -. char ^ \[ha] -. char ~ \[ti] -. \} -.\} -. -.ds doc-default-operating-system Nixpkgs -.ds doc-volume-operating-system Nixpkgs diff --git a/pkgs/by-name/gr/grpc/default.nix b/pkgs/by-name/gr/grpc/default.nix deleted file mode 100644 index 46a75fc..0000000 --- a/pkgs/by-name/gr/grpc/default.nix +++ /dev/null @@ -1,114 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, buildPackages -, cmake -, zlib -, c-ares -, pkg-config -, re2 -, openssl -, protobuf -, grpc -, abseil-cpp -, libnsl - -# for passthru.tests -# , python3 -# , arrow-cpp -}: - -stdenv.mkDerivation rec { - pname = "grpc"; - version = "1.62.1"; # N.B: if you change this, please update: - # pythonPackages.grpcio-tools - # pythonPackages.grpcio-status - - src = fetchFromGitHub { - owner = "grpc"; - repo = "grpc"; - rev = "v${version}"; - hash = "sha256-L0bn6Bg36UKIRxznH9o4T7WXUqMwFjr8ybeQfbUi8xM="; - fetchSubmodules = true; - }; - - patches = [ - (fetchpatch { - # armv6l support, https://github.com/grpc/grpc/pull/21341 - name = "grpc-link-libatomic.patch"; - url = "https://github.com/lopsided98/grpc/commit/a9b917666234f5665c347123d699055d8c2537b2.patch"; - hash = "sha256-Lm0GQsz/UjBbXXEE14lT0dcRzVmCKycrlrdBJj+KLu8="; - }) - ]; - - 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" - ]); - - # CMake creates a build directory by default, this conflicts with the - # basel BUILD file on case-insensitive filesystems. - preConfigure = '' - rm -vf BUILD - ''; - - # When natively compiling, grpc_cpp_plugin is executed from the build directory, - # needing to load dynamic libraries from the build directory, so we set - # LD_LIBRARY_PATH to enable this. When cross compiling we need to avoid this, - # since it can cause the grpc_cpp_plugin executable from buildPackages to - # crash if build and host architecture are compatible (e. g. pkgsLLVM). - preBuild = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) '' - 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" - ]); - - enableParallelBuilds = true; - - # passthru.tests = { - # inherit (python3.pkgs) grpcio-status grpcio-tools jaxlib; - # inherit arrow-cpp; - # }; - - meta = with lib; { - description = "The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)"; - license = licenses.asl20; - maintainers = with maintainers; [ lnl7 ]; - homepage = "https://grpc.io/"; - platforms = platforms.all; - changelog = "https://github.com/grpc/grpc/releases/tag/v${version}"; - }; -} diff --git a/pkgs/by-name/gr/grpc/packages.nix b/pkgs/by-name/gr/grpc/packages.nix deleted file mode 100644 index ab22528..0000000 --- a/pkgs/by-name/gr/grpc/packages.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ ... }: -res: pkgs: super: - -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; - }; -} diff --git a/pkgs/by-name/gs/gsasl/default.nix b/pkgs/by-name/gs/gsasl/default.nix deleted file mode 100644 index 787c096..0000000 --- a/pkgs/by-name/gs/gsasl/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ fetchurl, lib, stdenv, libidn, libkrb5 -, testers -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "gsasl"; - version = "2.2.1"; - - src = fetchurl { - url = "mirror://gnu/gsasl/${finalAttrs.pname}-${finalAttrs.version}.tar.gz"; - sha256 = "sha256-1FtWLhO9E7n8ILNy9LUyaXQM9iefg28JzhG50yvO4HU="; - }; - - # This is actually bug in musl. It is already fixed in trunc and - # this patch won't be necessary with musl > 1.2.3. - # - # https://git.musl-libc.org/cgit/musl/commit/?id=b50eb8c36c20f967bd0ed70c0b0db38a450886ba - patches = lib.optional stdenv.hostPlatform.isMusl ./gsasl.patch; - - buildInputs = [ libidn libkrb5 ]; - - configureFlags = [ "--with-gssapi-impl=mit" ]; - - preCheck = '' - export LOCALDOMAIN="dummydomain" - ''; - doCheck = !stdenv.hostPlatform.isDarwin; - - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - - meta = { - 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. - ''; - - homepage = "https://www.gnu.org/software/gsasl/"; - license = lib.licenses.gpl3Plus; - - maintainers = with lib.maintainers; [ shlevy ]; - pkgConfigModules = [ "libgsasl" ]; - platforms = lib.platforms.all; - }; -}) diff --git a/pkgs/by-name/gs/gsasl/gsasl.patch b/pkgs/by-name/gs/gsasl/gsasl.patch deleted file mode 100644 index 572d303..0000000 --- a/pkgs/by-name/gs/gsasl/gsasl.patch +++ /dev/null @@ -1,21 +0,0 @@ -GNU libc and Musl libc have different ideas what - - strverscmp("UNKNOWN", "2.2.0") - -should return. Hopefully nobody depend on this particular behaviour in -practice. - ---- a/tests/version.c 1970-01-01 00:00:00.000000000 -0000 -+++ b/tests/version.c 1970-01-01 00:00:00.000000000 -0000 -@@ -111,11 +111,5 @@ - exit_code = EXIT_FAILURE; - } - -- if (gsasl_check_version ("UNKNOWN")) -- { -- printf ("FAIL: gsasl_check_version (UNKNOWN)\n"); -- exit_code = EXIT_FAILURE; -- } -- - return exit_code; - } diff --git a/pkgs/by-name/gt/gtest/default.nix b/pkgs/by-name/gt/gtest/default.nix deleted file mode 100644 index 51e0c68..0000000 --- a/pkgs/by-name/gt/gtest/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, ninja -, static ? stdenv.hostPlatform.isStatic, -}: - -stdenv.mkDerivation rec { - pname = "gtest"; - version = "1.14.0"; - - outputs = [ "out" "dev" ]; - - src = fetchFromGitHub { - owner = "google"; - repo = "googletest"; - rev = "v${version}"; - hash = "sha256-t0RchAHTJbuI5YW4uyBPykTvcjy90JW9AOPNjIhwh6U="; - }; - - patches = [ - ./fix-cmake-config-includedir.patch - ]; - - 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" - ]; - - meta = with lib; { - description = "Google's framework for writing C++ tests"; - homepage = "https://github.com/google/googletest"; - license = licenses.bsd3; - platforms = platforms.all; - maintainers = with maintainers; [ ivan-tkatchev ]; - }; -} diff --git a/pkgs/by-name/gt/gtest/fix-cmake-config-includedir.patch b/pkgs/by-name/gt/gtest/fix-cmake-config-includedir.patch deleted file mode 100644 index 6d29e04..0000000 --- a/pkgs/by-name/gt/gtest/fix-cmake-config-includedir.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff --git a/googlemock/CMakeLists.txt b/googlemock/CMakeLists.txt -index 428bd9f8..04b84539 100644 ---- a/googlemock/CMakeLists.txt -+++ b/googlemock/CMakeLists.txt -@@ -104,10 +104,10 @@ endif() - string(REPLACE ";" "$" dirs "${gmock_build_include_dirs}") - target_include_directories(gmock SYSTEM INTERFACE - "$" -- "$/${CMAKE_INSTALL_INCLUDEDIR}>") -+ "$") - target_include_directories(gmock_main SYSTEM INTERFACE - "$" -- "$/${CMAKE_INSTALL_INCLUDEDIR}>") -+ "$") - - ######################################################################## - # -diff --git a/googletest/CMakeLists.txt b/googletest/CMakeLists.txt -index 51a67c91..fb09e978 100644 ---- a/googletest/CMakeLists.txt -+++ b/googletest/CMakeLists.txt -@@ -143,10 +143,10 @@ set_target_properties(gtest_main PROPERTIES VERSION ${GOOGLETEST_VERSION}) - string(REPLACE ";" "$" dirs "${gtest_build_include_dirs}") - target_include_directories(gtest SYSTEM INTERFACE - "$" -- "$/${CMAKE_INSTALL_INCLUDEDIR}>") -+ "$") - target_include_directories(gtest_main SYSTEM INTERFACE - "$" -- "$/${CMAKE_INSTALL_INCLUDEDIR}>") -+ "$") - if(CMAKE_SYSTEM_NAME MATCHES "QNX") - target_link_libraries(gtest PUBLIC regex) - endif() diff --git a/pkgs/by-name/gt/gtk-doc/default.nix b/pkgs/by-name/gt/gtk-doc/default.nix deleted file mode 100644 index 75a6731..0000000 --- a/pkgs/by-name/gt/gtk-doc/default.nix +++ /dev/null @@ -1,98 +0,0 @@ -{ lib -, fetchFromGitLab -, meson -, ninja -, pkg-config -, python3 -, docbook_xml_dtd_43 -, docbook-xsl-nons -, libxslt -, gettext -, withDblatex ? false, dblatex -# for passthru -# , gnome -}: - -python3.pkgs.buildPythonApplication rec { - pname = "gtk-doc"; - version = "1.33.2"; - - outputDevdoc = "out"; - - format = "other"; - - src = fetchFromGitLab { - domain = "gitlab.gnome.org"; - owner = "GNOME"; - repo = pname; - rev = version; - sha256 = "A6OXpazrJ05SUIO1ZPVN0xHTXOSov8UnPvUolZAv/Iw="; - }; - - patches = [ - ./respect-xml-catalog-files-var.patch - ]; - - postPatch = '' - substituteInPlace meson.build \ - --replace "pkg-config" "$PKG_CONFIG" - ''; - - strictDeps = true; - - depsBuildBuild = [ - python3 - pkg-config - ]; - - nativeBuildInputs = [ - pkg-config - gettext - meson - ninja - libxslt # for xsltproc - ]; - - buildInputs = [ - docbook_xml_dtd_43 - docbook-xsl-nons - libxslt - ] ++ 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 - lxml - ]; - - mesonFlags = [ - "-Dtests=false" - "-Dyelp_manual=false" - ]; - - doCheck = false; # requires a lot of stuff - doInstallCheck = false; # fails - - postFixup = '' - # Do not propagate Python - substituteInPlace $out/nix-support/propagated-build-inputs \ - --replace "${python3}" "" - ''; - - # passthru = { - # # Consumers are expected to copy the m4 files to their source tree, let them reuse the patch - # respect_xml_catalog_files_var_patch = ./respect-xml-catalog-files-var.patch; - # updateScript = gnome.updateScript { - # packageName = pname; - # versionPolicy = "none"; - # }; - # }; - - meta = with lib; { - description = "Tools to extract documentation embedded in GTK and GNOME source code"; - homepage = "https://gitlab.gnome.org/GNOME/gtk-doc"; - license = licenses.gpl2Plus; - maintainers = [ ]; - }; -} diff --git a/pkgs/by-name/gt/gtk-doc/respect-xml-catalog-files-var.patch b/pkgs/by-name/gt/gtk-doc/respect-xml-catalog-files-var.patch deleted file mode 100644 index 95f6879..0000000 --- a/pkgs/by-name/gt/gtk-doc/respect-xml-catalog-files-var.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/m4/gtkdoc_jh_check_xml_catalog.m4 -+++ b/m4/gtkdoc_jh_check_xml_catalog.m4 -@@ -5,8 +5,8 @@ - [ - AC_REQUIRE([JH_PATH_XML_CATALOG],[JH_PATH_XML_CATALOG(,[:])])dnl - AC_MSG_CHECKING([for ifelse([$2],,[$1],[$2]) in XML catalog]) -- if $jh_found_xmlcatalog && \ -- AC_RUN_LOG([$XMLCATALOG --noout "$XML_CATALOG_FILE" "$1" >&2]); then -+ # empty argument forces libxml to use XML_CATALOG_FILES variable -+ if AC_RUN_LOG([$XMLCATALOG --noout "" "$1" >&2]); then - AC_MSG_RESULT([found]) - ifelse([$3],,,[$3]) - else diff --git a/pkgs/by-name/gu/guile/1.8.nix b/pkgs/by-name/gu/guile/1.8.nix deleted file mode 100644 index 51ac9ba..0000000 --- a/pkgs/by-name/gu/guile/1.8.nix +++ /dev/null @@ -1,110 +0,0 @@ -{ lib -, stdenv -, fetchurl -, buildPackages -, gawk -, gmp -, libtool -, makeWrapper -, pkg-config -, pkgsBuildBuild -, readline -}: - -stdenv.mkDerivation rec { - pname = "guile"; - version = "1.8.8"; - - src = fetchurl { - url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz"; - sha256 = "0l200a0v7h8bh0cwz6v7hc13ds39cgqsmfrks55b1rbj5vniyiy3"; - }; - - 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"; - - depsBuildBuild = [ - buildPackages.stdenv.cc - ] - ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) - pkgsBuildBuild.guile_1_8; - nativeBuildInputs = [ - makeWrapper - pkg-config - ]; - buildInputs = [ - libtool - readline - ]; - propagatedBuildInputs = [ - gmp - - # XXX: These ones aren't normally needed here, but `libguile*.la' has '-l' - # flags for them without corresponding '-L' flags. Adding them here will add - # the needed `-L' flags. As for why the `.la' file lacks the `-L' flags, - # see below. - libtool - ]; - - patches = [ - # Fix doc snarfing with GCC 4.5. - ./cpp-4.5.patch - # Self explanatory - ./CVE-2016-8605.patch - ]; - - preBuild = '' - 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" - ''; - - # One test fails. - # ERROR: file: "libtest-asmobs", message: "file not found" - # This is fixed here: - # . - doCheck = false; - doInstallCheck = doCheck; - - setupHook = ./setup-hook-1.8.sh; - - passthru = { - effectiveVersion = lib.versions.majorMinor version; - siteCcacheDir = "lib/guile/site-ccache"; - siteDir = "share/guile/site"; - }; - - meta = with lib; { - 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. - ''; - license = licenses.lgpl3Plus; - maintainers = with maintainers; [ ludo ]; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/gu/guile/2.0.nix b/pkgs/by-name/gu/guile/2.0.nix deleted file mode 100644 index 18daad8..0000000 --- a/pkgs/by-name/gu/guile/2.0.nix +++ /dev/null @@ -1,166 +0,0 @@ -{ 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; -in -builder rec { - pname = "guile"; - version = "2.0.13"; - - src = fetchurl { - url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz"; - sha256 = "12yqkr974y91ylgw6jnmci2v90i90s7h9vxa4zk0sai8vjnz4i1p"; - }; - - 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; - - nativeBuildInputs = [ - makeWrapper - pkg-config - ]; - buildInputs = [ - readline - libtool - libunistring - libffi - ]; - propagatedBuildInputs = [ - boehmgc - gmp - - # These ones aren't normally needed here, but `libguile*.la' has '-l' - # flags for them without corresponding '-L' flags. Adding them here will - # add the needed `-L' flags. As for why the `.la' file lacks the `-L' - # flags, see below. - libtool - libunistring - ]; - - 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"; - }) - ]; - - # 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"; - - 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}" - - # 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 - " - ''; - - # make check doesn't work on darwin - # On Linuxes+Hydra the tests are flaky; feel free to investigate deeper. - doCheck = false; - doInstallCheck = doCheck; - - setupHook = ./setup-hook-2.0.sh; - - passthru = rec { - effectiveVersion = lib.versions.majorMinor version; - siteCcacheDir = "lib/guile/${effectiveVersion}/site-ccache"; - siteDir = "share/guile/site/${effectiveVersion}"; - }; - - meta = with lib; { - 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. - ''; - license = licenses.lgpl3Plus; - maintainers = with maintainers; [ ludo lovek323 vrthra ]; - platforms = platforms.all; - }; -} - -// - -(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 deleted file mode 100644 index 9187355..0000000 --- a/pkgs/by-name/gu/guile/2.2.nix +++ /dev/null @@ -1,148 +0,0 @@ -{ 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; -in -builder rec { - pname = "guile"; - version = "2.2.7"; - - src = fetchurl { - url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz"; - sha256 = "013mydzhfswqci6xmyc1ajzd59pfbdak15i0b090nhr9bzm7dxyd"; - }; - - 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; - nativeBuildInputs = [ - makeWrapper - pkg-config - ]; - buildInputs = [ - libffi - libtool - libunistring - readline - ]; - propagatedBuildInputs = [ - boehmgc - gmp - - # XXX: These ones aren't normally needed here, but `libguile*.la' has '-l' - # flags for them without corresponding '-L' flags. Adding them here will add - # the needed `-L' flags. As for why the `.la' file lacks the `-L' flags, - # see below. - libtool - libunistring - ]; - - # According to Bernhard M. Wiedemann on - # #reproducible-builds on irc.oftc.net, (2020-01-29): they had to - # build Guile without parallel builds to make it reproducible. - # - # re: https://issues.guix.gnu.org/issue/20272 - # 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 { - 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 clang - 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}" - - # Same for these (?). - "--with-libunistring-prefix=${libunistring}" - - # 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 - " - ''; - - # make check doesn't work on darwin - # On Linuxes+Hydra the tests are flaky; feel free to investigate deeper. - doCheck = false; - doInstallCheck = doCheck; - - setupHook = ./setup-hook-2.2.sh; - - passthru = rec { - effectiveVersion = lib.versions.majorMinor version; - siteCcacheDir = "lib/guile/${effectiveVersion}/site-ccache"; - siteDir = "share/guile/site/${effectiveVersion}"; - }; - - meta = with lib; { - 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. - ''; - license = licenses.lgpl3Plus; - 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 deleted file mode 100644 index fb78837..0000000 --- a/pkgs/by-name/gu/guile/3.0.nix +++ /dev/null @@ -1,170 +0,0 @@ -{ 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; -in -builder rec { - pname = "guile"; - version = "3.0.9"; - - src = fetchurl { - url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz"; - sha256 = "sha256-GiYlrHKyNm6VeS8/51j9Lfd1tARKkKSpeHMm5mwNdQ0="; - }; - - 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; - nativeBuildInputs = [ - makeWrapper - pkg-config - ]; - buildInputs = [ - libffi - libtool - libunistring - readline - ] ++ lib.optionals stdenv.isLinux [ - libxcrypt - ]; - propagatedBuildInputs = [ - boehmgc - gmp - - # These ones aren't normally needed here, but `libguile*.la' has '-l' - # flags for them without corresponding '-L' flags. Adding them here will - # add the needed `-L' flags. As for why the `.la' file lacks the `-L' - # flags, see below. - libtool - libunistring - ] ++ lib.optionals stdenv.isLinux [ - libxcrypt - ]; - - # According to - # https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/guile.scm?h=a39207f7afd977e4e4299c6f0bb34bcb6d153818#n405 - # starting with Guile 3.0.8, parallel builds can be done - # 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 { - 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 clang - 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}" - - # 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"; - - 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 - # On Linuxes+Hydra the tests are flaky; feel free to investigate deeper. - doCheck = false; - doInstallCheck = doCheck; - - # In procedure bytevector-u8-ref: Argument 2 out of range - dontStrip = stdenv.isDarwin; - - setupHook = ./setup-hook-3.0.sh; - - passthru = rec { - effectiveVersion = lib.versions.majorMinor version; - siteCcacheDir = "lib/guile/${effectiveVersion}/site-ccache"; - siteDir = "share/guile/site/${effectiveVersion}"; - - updateScript = writeScript "update-guile-3" '' - #!/usr/bin/env nix-shell - #!nix-shell -i bash -p curl pcre common-updater-scripts - - set -eu -o pipefail - - # Expect the text in format of '"https://ftp.gnu.org/gnu/guile/guile-3.0.8.tar.gz"' - new_version="$(curl -s https://www.gnu.org/software/guile/download/ | - pcregrep -o1 '"https://ftp.gnu.org/gnu/guile/guile-(3[.0-9]+).tar.gz"')" - update-source-version guile_3_0 "$new_version" - ''; - }; - - meta = with lib; { - 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. - ''; - license = licenses.lgpl3Plus; - maintainers = with maintainers; [ ]; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/gu/guile/CVE-2016-8605.patch b/pkgs/by-name/gu/guile/CVE-2016-8605.patch deleted file mode 100644 index 2fc2813..0000000 --- a/pkgs/by-name/gu/guile/CVE-2016-8605.patch +++ /dev/null @@ -1,59 +0,0 @@ -commit d514e3fc42eb14a1bc5846b27ef89f50ba3a5d48 -Author: Ludovic Courtès -Date: Tue Oct 11 10:14:26 2016 +0200 - - Remove 'umask' calls from 'mkdir'. - - Fixes . - - * libguile/filesys.c (SCM_DEFINE): Remove calls to 'umask' when MODE is - unbound; instead, use 0777 as the mode. Update docstring to clarify - this. - -diff --git a/libguile/filesys.c b/libguile/filesys.c -index c8acb13ef..921f765f1 100644 ---- a/libguile/filesys.c -+++ b/libguile/filesys.c -@@ -1,4 +1,5 @@ --/* Copyright (C) 1996,1997,1998,1999,2000,2001, 2002, 2004, 2006, 2008 Free Software Foundation, Inc. -+/* Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2006, -+ * 2009, 2010, 2011, 2012, 2013, 2014, 2016 Free Software Foundation, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public -@@ -791,26 +792,21 @@ SCM_DEFINE (scm_delete_file, "delete-file", 1, 0, 0, - SCM_DEFINE (scm_mkdir, "mkdir", 1, 1, 0, - (SCM path, SCM mode), - "Create a new directory named by @var{path}. If @var{mode} is omitted\n" -- "then the permissions of the directory file are set using the current\n" -- "umask. Otherwise they are set to the decimal value specified with\n" -- "@var{mode}. The return value is unspecified.") -+ "then the permissions of the directory are set to @code{#o777}\n" -+ "masked with the current umask (@pxref{Processes, @code{umask}}).\n" -+ "Otherwise they are set to the value specified with @var{mode}.\n" -+ "The return value is unspecified.") - #define FUNC_NAME s_scm_mkdir - { - int rv; -- mode_t mask; -+ mode_t c_mode; - -- if (SCM_UNBNDP (mode)) -- { -- mask = umask (0); -- umask (mask); -- STRING_SYSCALL (path, c_path, rv = mkdir (c_path, 0777 ^ mask)); -- } -- else -- { -- STRING_SYSCALL (path, c_path, rv = mkdir (c_path, scm_to_uint (mode))); -- } -+ c_mode = SCM_UNBNDP (mode) ? 0777 : scm_to_uint (mode); -+ -+ STRING_SYSCALL (path, c_path, rv = mkdir (c_path, c_mode)); - if (rv != 0) - SCM_SYSERROR; -+ - return SCM_UNSPECIFIED; - } - #undef FUNC_NAME diff --git a/pkgs/by-name/gu/guile/clang.patch b/pkgs/by-name/gu/guile/clang.patch deleted file mode 100644 index 4d0f342..0000000 --- a/pkgs/by-name/gu/guile/clang.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/lib/stdint.in.h b/lib/stdint.in.h -index 889bca7..15d39b0 100644 ---- a/lib/stdint.in.h -+++ b/lib/stdint.in.h -@@ -74,7 +74,8 @@ - in would reinclude us, skipping our contents because - _@GUARD_PREFIX@_STDINT_H is defined. - The include_next requires a split double-inclusion guard. */ --# @INCLUDE_NEXT@ @NEXT_STDINT_H@ -+# include -+// # @INCLUDE_NEXT@ @NEXT_STDINT_H@ - #endif - - #if ! defined _@GUARD_PREFIX@_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H diff --git a/pkgs/by-name/gu/guile/cpp-4.5.patch b/pkgs/by-name/gu/guile/cpp-4.5.patch deleted file mode 100644 index 7e7671f..0000000 --- a/pkgs/by-name/gu/guile/cpp-4.5.patch +++ /dev/null @@ -1,24 +0,0 @@ -Fix doc snarfing with GCC 4.5. -From . - -diff --git a/scripts/snarf-check-and-output-texi b/scripts/snarf-check-and-output-texi -index ea33e17..8cd42e8 100755 ---- a/scripts/snarf-check-and-output-texi -+++ b/scripts/snarf-check-and-output-texi -@@ -267,6 +267,17 @@ exec ${GUILE-guile} -l $0 -c "(apply $main (cdr (command-line)))" "$@" - (set! *file* file) - (set! *line* line)) - -+ ;; newer gccs like to throw around more location markers into the -+ ;; preprocessed source; these (hash . hash) bits are what they translate to -+ ;; in snarfy terms. -+ (('location ('string . file) ('int . line) ('hash . 'hash)) -+ (set! *file* file) -+ (set! *line* line)) -+ -+ (('location ('hash . 'hash) ('string . file) ('int . line) ('hash . 'hash)) -+ (set! *file* file) -+ (set! *line* line)) -+ - (('arglist rest ...) - (set! *args* (do-arglist rest))) diff --git a/pkgs/by-name/gu/guile/disable-gc-sensitive-tests.patch b/pkgs/by-name/gu/guile/disable-gc-sensitive-tests.patch deleted file mode 100644 index 076091a..0000000 --- a/pkgs/by-name/gu/guile/disable-gc-sensitive-tests.patch +++ /dev/null @@ -1,25 +0,0 @@ -This patch disable GC-sensitive tests. This is particularly useful when -compiling with `-O0' (as is done with coverage analysis) since there may -be many false references held on the stack, leading to the failure of -such tests. - ---- a/test-suite/tests/gc.test -+++ b/test-suite/tests/gc.test -@@ -67,6 +67,7 @@ - - (with-test-prefix "gc" - (pass-if "Unused modules are removed" -+ (throw 'unresolved) - (let* ((guard (make-guardian)) - (total 1000)) - ---- a/test-suite/tests/threads.test -+++ b/test-suite/tests/threads.test -@@ -366,6 +366,7 @@ - (not (mutex-owner m)))) - - (pass-if "mutex with owner not retained (bug #27450)" -+ (throw 'unresolved) - (let ((g (make-guardian))) - (g (let ((m (make-mutex))) (lock-mutex m) m)) - diff --git a/pkgs/by-name/gu/guile/eai_system.patch b/pkgs/by-name/gu/guile/eai_system.patch deleted file mode 100644 index b0eb7ac..0000000 --- a/pkgs/by-name/gu/guile/eai_system.patch +++ /dev/null @@ -1,24 +0,0 @@ -Building nixpkgs in non-chroot, NSS modules may fail -and that will report EAI_SYSTEM in getaddrinfo. -https://bugzilla.novell.com/show_bug.cgi?id=794696 - -Index: guile-2.0.7/test-suite/tests/net-db.test -=================================================================== ---- guile-2.0.7.orig/test-suite/tests/net-db.test -+++ guile-2.0.7/test-suite/tests/net-db.test -@@ -79,6 +79,7 @@ - (and (defined? 'EAI_NODATA) ; GNU extension - (= errcode EAI_NODATA)) - (= errcode EAI_AGAIN) -+ (= errcode EAI_SYSTEM) - (begin - (format #t "unexpected error code: ~a ~s~%" - errcode (gai-strerror errcode)) -@@ -105,6 +106,7 @@ - ;; `EAI_NONAME'.) - (and (or (= errcode EAI_SERVICE) - (= errcode EAI_NONAME) -+ (= errcode EAI_SYSTEM) - (and (defined? 'EAI_NODATA) - (= errcode EAI_NODATA))) - (string? (gai-strerror errcode)))))))) diff --git a/pkgs/by-name/gu/guile/filter-mkostemp-darwin.patch b/pkgs/by-name/gu/guile/filter-mkostemp-darwin.patch deleted file mode 100644 index 8b9b853..0000000 --- a/pkgs/by-name/gu/guile/filter-mkostemp-darwin.patch +++ /dev/null @@ -1,28 +0,0 @@ -Filter incompat. mkostemp(3) flags on macOS 10.12 - -macOS Sierra introduces a mkostemp(3) function which is used when -present. Contrary to the GNUlib version of mkostemp(3) that was used -previously, this version fails with 'invalid argument' when flags other -than from a specified set are passed. From mktemp(3): - -| The mkostemp() function is like mkstemp() but allows specifying -| additional open(2) flags (defined in ). The permitted flags -| are O_APPEND, O_SHLOCK, O_EXLOCK and O_CLOEXEC. - -Signed-off-by: Clemens Lang -Upstream-Status: Submitted [https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24862#23] ---- a/libguile/filesys.c.orig 2017-01-09 00:53:27.000000000 +0100 -+++ b/libguile/filesys.c 2017-01-09 00:54:48.000000000 +0100 -@@ -1486,6 +1486,12 @@ - mode_bits = scm_i_mode_bits (mode); - } - -+#ifdef __APPLE__ -+ /* macOS starting with 10.12 defines mkostemp(2) which is used if defined, -+ * but only accepts some flags according to its manpage. It fails with -+ * invalid argument when other flags are passed. */ -+ open_flags &= O_APPEND | O_SHLOCK | O_EXLOCK | O_CLOEXEC; -+#endif - SCM_SYSCALL (rv = mkostemp (c_tmpl, open_flags)); - if (rv == -1) - SCM_SYSERROR; diff --git a/pkgs/by-name/gu/guile/gcov-file-name.patch b/pkgs/by-name/gu/guile/gcov-file-name.patch deleted file mode 100644 index f144296..0000000 --- a/pkgs/by-name/gu/guile/gcov-file-name.patch +++ /dev/null @@ -1,42 +0,0 @@ -This patch arranges so that we don't end up, with profiling builds, with a -file named `.gcov' since that confuses lcov: - - :cannot open source file - geninfo: ERROR: cannot read .gcov! - ---- guile/libguile/c-tokenize.c 2009-09-13 13:05:15.000000000 +0200 -+++ guile/libguile/c-tokenize.c 2009-10-28 16:24:15.000000000 +0100 -@@ -1,5 +1,5 @@ - --#line 3 "" -+#line 3 "c-tokenize.c" - - #define YY_INT_ALIGNED short int - -@@ -616,7 +616,7 @@ int cookie_was_last = 0; - #define IS_COOKIE cookie_was_last = 1 - #define IS_NOT_COOKIE cookie_was_last = 0 - --#line 620 "" -+#line 620 "c-tokenize.c" - - #define INITIAL 0 - -@@ -799,7 +799,7 @@ YY_DECL - #line 65 "./c-tokenize.lex" - - --#line 803 "" -+#line 803 "c-tokenize.c" - - if ( !(yy_init) ) - { -@@ -1235,7 +1235,7 @@ YY_RULE_SETUP - #line 181 "./c-tokenize.lex" - ECHO; - YY_BREAK --#line 1239 "" -+#line 1239 "c-tokenize.c" - case YY_STATE_EOF(INITIAL): - yyterminate(); - diff --git a/pkgs/by-name/gu/guile/guile-hurd-posix-spawn.patch b/pkgs/by-name/gu/guile/guile-hurd-posix-spawn.patch deleted file mode 100644 index 7cf600b..0000000 --- a/pkgs/by-name/gu/guile/guile-hurd-posix-spawn.patch +++ /dev/null @@ -1,44 +0,0 @@ -Fix , which affects GNU/Hurd. - -diff --git a/libguile/posix.c b/libguile/posix.c -index 3a8be94e4..f5fdc544c 100644 ---- a/libguile/posix.c -+++ b/libguile/posix.c -@@ -1326,7 +1326,14 @@ static void - close_inherited_fds_slow (posix_spawn_file_actions_t *actions, int max_fd) - { - while (--max_fd > 2) -- posix_spawn_file_actions_addclose (actions, max_fd); -+ { -+ /* Adding invalid file descriptors to an 'addclose' action leads -+ to 'posix_spawn' failures on some operating systems: -+ . Hence the extra check. */ -+ int flags = fcntl (max_fd, F_GETFD, NULL); -+ if ((flags >= 0) && ((flags & FD_CLOEXEC) == 0)) -+ posix_spawn_file_actions_addclose (actions, max_fd); -+ } - } - - static void - -Fix . - -diff --git a/test-suite/tests/posix.test b/test-suite/tests/posix.test -index f20e04453..d5cf47cda 100644 ---- a/test-suite/tests/posix.test -+++ b/test-suite/tests/posix.test -@@ -431,7 +431,13 @@ - (let ((str (get-string-all (car input+output)))) - (close-port (car input+output)) - (waitpid pid) -- str))) -+ -+ ;; On GNU/Hurd, the exec server prepends 'LD_ORIGIN_PATH' for -+ ;; every program: . Strip it. -+ (if (and (string=? "GNU" (utsname:sysname (uname))) -+ (string-prefix? "LD_ORIGIN_PATH=" str)) -+ (string-drop str (+ 1 (string-index str #\newline))) -+ str)))) - - (pass-if-equal "ls /proc/self/fd" - "0\n1\n2\n3\n" ;fourth FD is for /proc/self/fd diff --git a/pkgs/by-name/gu/guile/packages.nix b/pkgs/by-name/gu/guile/packages.nix deleted file mode 100644 index bc29563..0000000 --- a/pkgs/by-name/gu/guile/packages.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - # Needed for autogen - guile_2_0 = callPackage ./2.0.nix { }; - guile_2_2 = callPackage ./2.2.nix { }; - guile_3_0 = callPackage ./3.0.nix { }; - guile = guile_3_0; -} diff --git a/pkgs/by-name/gu/guile/riscv.patch b/pkgs/by-name/gu/guile/riscv.patch deleted file mode 100644 index b835e16..0000000 --- a/pkgs/by-name/gu/guile/riscv.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/module/system/base/target.scm b/module/system/base/target.scm -index 95ab8d8c9..93616f4a3 100644 ---- a/module/system/base/target.scm -+++ b/module/system/base/target.scm -@@ -86,6 +86,8 @@ - (endianness big)) - ((string=? "aarch64" cpu) - (endianness little)) -+ ((string-match "riscv[1-9][0-9]*" cpu) -+ (endianness little)) - (else - (error "unknown CPU endianness" cpu))))) - diff --git a/pkgs/by-name/gu/guile/setup-hook-1.8.sh b/pkgs/by-name/gu/guile/setup-hook-1.8.sh deleted file mode 100644 index 9a6ffb7..0000000 --- a/pkgs/by-name/gu/guile/setup-hook-1.8.sh +++ /dev/null @@ -1,7 +0,0 @@ -addGuileLibPath () { - if test -d "$1/share/guile/site"; then - addToSearchPath GUILE_LOAD_PATH "$1/share/guile/site" - fi -} - -addEnvHooks "$hostOffset" addGuileLibPath diff --git a/pkgs/by-name/gu/guile/setup-hook-2.0.sh b/pkgs/by-name/gu/guile/setup-hook-2.0.sh deleted file mode 100644 index 9ef0fae..0000000 --- a/pkgs/by-name/gu/guile/setup-hook-2.0.sh +++ /dev/null @@ -1,19 +0,0 @@ -addGuileLibPath () { - if test -d "$1/share/guile/site/2.0"; then - addToSearchPath GUILE_LOAD_PATH "$1/share/guile/site/2.0" - addToSearchPath GUILE_LOAD_COMPILED_PATH "$1/share/guile/site/2.0" - elif test -d "$1/share/guile/site"; then - addToSearchPath GUILE_LOAD_PATH "$1/share/guile/site" - addToSearchPath GUILE_LOAD_COMPILED_PATH "$1/share/guile/site" - fi - - if test -d "$1/lib/guile/2.0/ccache"; then - addToSearchPath GUILE_LOAD_COMPILED_PATH "$1/lib/guile/2.0/ccache" - fi - - if test -d "$1/lib/guile/2.0/site-ccache"; then - addToSearchPath GUILE_LOAD_COMPILED_PATH "$1/lib/guile/2.0/site-ccache" - fi -} - -addEnvHooks "$hostOffset" addGuileLibPath diff --git a/pkgs/by-name/gu/guile/setup-hook-2.2.sh b/pkgs/by-name/gu/guile/setup-hook-2.2.sh deleted file mode 100644 index 932a5b6..0000000 --- a/pkgs/by-name/gu/guile/setup-hook-2.2.sh +++ /dev/null @@ -1,19 +0,0 @@ -addGuileLibPath () { - if test -d "$1/share/guile/site/2.2"; then - addToSearchPath GUILE_LOAD_PATH "$1/share/guile/site/2.2" - addToSearchPath GUILE_LOAD_COMPILED_PATH "$1/share/guile/site/2.2" - elif test -d "$1/share/guile/site"; then - addToSearchPath GUILE_LOAD_PATH "$1/share/guile/site" - addToSearchPath GUILE_LOAD_COMPILED_PATH "$1/share/guile/site" - fi - - if test -d "$1/lib/guile/2.2/ccache"; then - addToSearchPath GUILE_LOAD_COMPILED_PATH "$1/lib/guile/2.2/ccache" - fi - - if test -d "$1/lib/guile/2.2/site-ccache"; then - addToSearchPath GUILE_LOAD_COMPILED_PATH "$1/lib/guile/2.2/site-ccache" - fi -} - -addEnvHooks "$hostOffset" addGuileLibPath diff --git a/pkgs/by-name/gu/guile/setup-hook-3.0.sh b/pkgs/by-name/gu/guile/setup-hook-3.0.sh deleted file mode 100644 index 1a71e82..0000000 --- a/pkgs/by-name/gu/guile/setup-hook-3.0.sh +++ /dev/null @@ -1,25 +0,0 @@ -addGuileLibPath () { - if test -d "$1/share/guile/site/3.0"; then - addToSearchPath GUILE_LOAD_PATH "$1/share/guile/site/3.0" - addToSearchPath GUILE_LOAD_COMPILED_PATH "$1/share/guile/site/3.0" - addToSearchPath GUILE_EXTENSIONS_PATH "$1/share/guile/site/3.0" - elif test -d "$1/share/guile/site"; then - addToSearchPath GUILE_LOAD_PATH "$1/share/guile/site" - addToSearchPath GUILE_LOAD_COMPILED_PATH "$1/share/guile/site" - addToSearchPath GUILE_EXTENSIONS_PATH "$1/share/guile/site" - fi - - if test -d "$1/lib/guile/3.0/ccache"; then - addToSearchPath GUILE_LOAD_COMPILED_PATH "$1/lib/guile/3.0/ccache" - fi - - if test -d "$1/lib/guile/3.0/site-ccache"; then - addToSearchPath GUILE_LOAD_COMPILED_PATH "$1/lib/guile/3.0/site-ccache" - fi - - if test -d "$1/lib/guile/3.0/extensions"; then - addToSearchPath GUILE_EXTENSIONS_PATH "$1/lib/guile/3.0/extensions" - fi -} - -addEnvHooks "$hostOffset" addGuileLibPath diff --git a/pkgs/by-name/gz/gzip/default.nix b/pkgs/by-name/gz/gzip/default.nix deleted file mode 100644 index baff7f0..0000000 --- a/pkgs/by-name/gz/gzip/default.nix +++ /dev/null @@ -1,74 +0,0 @@ -{ lib, stdenv -, fetchurl -, makeWrapper -, xz -}: - -# 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. - -stdenv.mkDerivation rec { - pname = "gzip"; - version = "1.13"; - - src = fetchurl { - url = "mirror://gnu/gzip/${pname}-${version}.tar.xz"; - hash = "sha256-dFTraTXbF8ZlVXbC4bD6vv04tNCTbg+H9IzQYs6RoFc="; - }; - - outputs = [ "out" "man" "info" ]; - - enableParallelBuilding = true; - - nativeBuildInputs = [ xz.bin makeWrapper ]; - - makeFlags = [ - "SHELL=/bin/sh" - "GREP=grep" - # gzip 1.12 doesn't build `zless` unless it can find `less`, but we - # can avoid having `less` as a build input if we just override these. - "ZLESS_MAN=zless.1" - "ZLESS_PROG=zless" - ]; - - # Many gzip executables are shell scripts that depend upon other gzip - # 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}" - ''; - - 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. - - 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; - - license = lib.licenses.gpl3Plus; - - mainProgram = "gzip"; - }; -} diff --git a/pkgs/by-name/he/help2man/1.40.4-cygwin-nls.patch b/pkgs/by-name/he/help2man/1.40.4-cygwin-nls.patch deleted file mode 100644 index 82f8cf1..0000000 --- a/pkgs/by-name/he/help2man/1.40.4-cygwin-nls.patch +++ /dev/null @@ -1,165 +0,0 @@ -LD_PRELOAD by itself only works with Cygwin builtin functions, but -textdomain() and friends come from libintl. In order to override -those functions, we have to "replace" cygintl-?.dll since functions are -bound to a DLL name at link time. Our replacement will be used since -it is loaded first by LD_PRELOAD. - -But as we are making this *the* libintl, we need to provide -pass-throughs for the other functions which we're not overriding, -otherwise Locale::gettext won't load (not to mention the program -that we're trying to help2man). - ---- help2man-1.46.5/Makefile.in 2014-10-09 13:03:01.000000000 +0200 -+++ help2man-1.46.5/Makefile.in 2015-05-12 14:46:52.995521900 +0200 -@@ -76,7 +76,8 @@ - fi - - install_preload: install_dirs preload -- $(INSTALL_PROGRAM) $(preload).so $(DESTDIR)$(pkglibdir) -+ $(INSTALL_PROGRAM) lib/cygintl-9.dll $(DESTDIR)$(pkglibdir) -+ ln -sf cygintl-9.dll $(DESTDIR)$(pkglibdir)/$(preload).so - - install_l10n: install_dirs msg_l10n man_l10n info_l10n - set -e; \ -@@ -144,7 +146,9 @@ - - preload: $(preload).so - $(preload).so: $(srcdir)/$(preload).c -- $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ -fPIC -shared $? $(LIBS) -+ mkdir -p lib -+ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o lib/cygintl-9.dll -shared $? $(LIBS) -+ ln -sf lib/cygintl-9.dll $@ - - man: $(target).1 - $(target).1: $(srcdir)/$(target).PL $(srcdir)/$(target).h2m.PL ---- help2man-1.46.5/bindtextdomain.c 2009-11-13 00:01:34.000000000 -0600 -+++ help2man-1.46.5/bindtextdomain.c 2011-12-29 00:24:33.608078600 -0600 -@@ -27,12 +27,34 @@ static char *(*r_textdomain)(char const - static char *(*r_bindtextdomain)(char const *, char const *) = 0; - static char *(*r_bind_textdomain_codeset)(char const *, char const *) = 0; - -+#ifdef __CYGWIN__ -+static void *RTLD_NEXT = 0; -+static char *(*r_gettext)(const char *) = 0; -+static char *(*r_dgettext)(const char *, const char *) = 0; -+static char *(*r_dcgettext)(const char *, const char *, int) = 0; -+static char *(*r_ngettext)(const char *, const char *, unsigned long int) = 0; -+static char *(*r_dngettext)(const char *, const char *, const char *, -+ unsigned long int) = 0; -+static char *(*r_dcngettext)(const char *, const char *, const char *, -+ unsigned long int, int) = 0; -+static char *(*r_setlocale)(int, const char *) = 0; -+ -+#define SYM(sym) libintl_ ## sym -+#else -+#define SYM(sym) sym -+#endif -+ - void setup() - { - static int done = 0; - if (done++) - return; - -+#ifdef __CYGWIN__ -+ if (!(RTLD_NEXT = dlopen("/usr/bin/cygintl-9.dll", RTLD_LAZY))) -+ die("libintl8 not found"); -+#endif -+ - if (!(e_textdomain = getenv("TEXTDOMAIN"))) - die("TEXTDOMAIN not set"); - -@@ -48,9 +70,19 @@ void setup() - if (!(r_bind_textdomain_codeset = dlsym(RTLD_NEXT, - "bind_textdomain_codeset"))) - die("can't find symbol \"bind_textdomain_codeset\""); -+ -+#ifdef __CYGWIN__ -+ r_gettext = dlsym(RTLD_NEXT, "libintl_gettext"); -+ r_dgettext = dlsym(RTLD_NEXT, "libintl_dgettext"); -+ r_dcgettext = dlsym(RTLD_NEXT, "libintl_dcgettext"); -+ r_ngettext = dlsym(RTLD_NEXT, "libintl_ngettext"); -+ r_dngettext = dlsym(RTLD_NEXT, "libintl_dngettext"); -+ r_dcngettext = dlsym(RTLD_NEXT, "libintl_dcngettext"); -+ r_setlocale = dlsym(RTLD_NEXT, "libintl_setlocale"); -+#endif - } - --char *textdomain(char const *domainname) -+char *SYM(textdomain)(char const *domainname) - { - char *r; - setup(); -@@ -61,7 +93,7 @@ char *textdomain(char const *domainname) - return r; - } - --char *bindtextdomain(char const *domainname, char const *dirname) -+char *SYM(bindtextdomain)(char const *domainname, char const *dirname) - { - char const *dir = dirname; - setup(); -@@ -71,7 +103,7 @@ char *bindtextdomain(char const *domainn - return r_bindtextdomain(domainname, dir); - } - --char *bind_textdomain_codeset(char const *domainname, char const *codeset) -+char *SYM(bind_textdomain_codeset)(char const *domainname, char const *codeset) - { - char *r; - setup(); -@@ -81,3 +113,54 @@ char *bind_textdomain_codeset(char const - - return r; - } -+ -+#ifdef __CYGWIN__ -+ -+char *libintl_gettext(const char *msgid) -+{ -+ setup(); -+ return r_gettext(msgid); -+} -+ -+char *libintl_dgettext (const char *domainname, const char *msgid) -+{ -+ setup(); -+ return r_dgettext(domainname, msgid); -+} -+ -+char *libintl_dcgettext (const char *domainname, const char *msgid, -+ int category) -+{ -+ setup(); -+ return r_dcgettext (domainname, msgid, category); -+} -+ -+char *libintl_ngettext (const char *msgid1, const char *msgid2, -+ unsigned long int n) -+{ -+ setup(); -+ return r_ngettext (msgid1, msgid2, n); -+} -+ -+char *libintl_dngettext (const char *domainname, const char *msgid1, -+ const char *msgid2, unsigned long int n) -+{ -+ setup(); -+ return r_dngettext (domainname, msgid1, msgid2, n); -+} -+ -+char *libintl_dcngettext (const char *domainname, -+ const char *msgid1, const char *msgid2, -+ unsigned long int n, int category) -+{ -+ setup(); -+ return r_dcngettext (domainname, msgid1, msgid2, n, category); -+} -+ -+char *libintl_setlocale (int i, const char *s) -+{ -+ setup(); -+ return r_setlocale (i, s); -+} -+ -+#endif diff --git a/pkgs/by-name/he/help2man/default.nix b/pkgs/by-name/he/help2man/default.nix deleted file mode 100644 index 9fd35a0..0000000 --- a/pkgs/by-name/he/help2man/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ 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 -# cgit) that are needed here should be included directly in Nixpkgs as -# files. - -stdenv.mkDerivation rec { - pname = "help2man"; - version = "1.49.3"; - - src = fetchurl { - url = "mirror://gnu/help2man/help2man-${version}.tar.xz"; - sha256 = "sha256-TX5P3vLspq/geiaCFRzqeHgeCk6PliIULZ9wwIOi/U8="; - }; - - strictDeps = true; - - enableParallelBuilding = true; - - nativeBuildInputs = [ gettext perlPackages.perl perlPackages.LocaleGettext ]; - buildInputs = [ perlPackages.LocaleGettext libintl ]; - - configureFlags = [ - "--enable-nls" - ]; - - doCheck = false; # target `check' is missing - - patches = lib.optional stdenv.hostPlatform.isCygwin ./1.40.4-cygwin-nls.patch; - - # We don't use makeWrapper here because it uses substitutions our - # bootstrap shell can't handle. - postInstall = '' - mv $out/bin/help2man $out/bin/.help2man-wrapped - cat > $out/bin/help2man < -Date: Wed Nov 29 23:55:38 2023 -0500 - - Make build system: enable/disable shared/static support - - This allows building this package in static-lib-only distros. - -diff --git a/Makefile b/Makefile -index 5d21221..cbc7914 100644 ---- a/Makefile -+++ b/Makefile -@@ -18,6 +18,9 @@ - # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - # IN THE SOFTWARE. - -+ENABLE_SHARED ?= 1 -+ENABLE_STATIC ?= -+ - PLATFORM ?= $(shell sh -c 'uname -s | tr "[A-Z]" "[a-z]"') - HELPER ?= - BINEXT ?= -@@ -25,6 +28,8 @@ SOLIBNAME = libhttp_parser - SOMAJOR = 2 - SOMINOR = 9 - SOREV = 4 -+AEXT = a -+STATICLIBNAME = $(SOLIBNAME).$(AEXT) - ifeq (darwin,$(PLATFORM)) - SOEXT ?= dylib - SONAME ?= $(SOLIBNAME).$(SOMAJOR).$(SOMINOR).$(SOEXT) -@@ -109,11 +114,17 @@ test-valgrind: test_g - libhttp_parser.o: http_parser.c http_parser.h Makefile - $(CC) $(CPPFLAGS_FAST) $(CFLAGS_LIB) -c http_parser.c -o libhttp_parser.o - --library: libhttp_parser.o -- $(CC) $(LDFLAGS_LIB) -o $(LIBNAME) $< -+.PHONY: library -+library: $(LIBNAME) -+ -+$(LIBNAME): libhttp_parser.o -+ $(CC) $(LDFLAGS_LIB) -o $@ $< - --package: http_parser.o -- $(AR) rcs libhttp_parser.a http_parser.o -+.PHONY: package -+package: $(STATICLIBNAME) -+ -+$(STATICLIBNAME): http_parser.o -+ $(AR) rcs $@ $< - - url_parser: http_parser.o contrib/url_parser.c - $(CC) $(CPPFLAGS_FAST) $(CFLAGS_FAST) $^ -o $@ -@@ -130,12 +141,30 @@ parsertrace_g: http_parser_g.o contrib/parsertrace.c - tags: http_parser.c http_parser.h test.c - ctags $^ - --install: library -+.PHONY: install-headers -+install-headers: - $(INSTALL) -D http_parser.h $(DESTDIR)$(INCLUDEDIR)/http_parser.h -+ -+.PHONY: install-library -+install-library: library - $(INSTALL) -D $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBNAME) - ln -sf $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(SONAME) - ln -sf $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(SOLIBNAME).$(SOEXT) - -+.PHONY: install-package -+install-package: package -+ $(INSTALL) -D $(STATICLIBNAME) $(DESTDIR)$(LIBDIR)/$(STATICLIBNAME) -+ -+.PHONY: install -+install: install-headers -+ifeq ($(ENABLE_SHARED),1) -+install: install-library -+endif -+ifeq ($(ENABLE_STATIC),1) -+install: install-package -+endif -+ -+.PHONY: install-strip - install-strip: library - $(INSTALL) -D http_parser.h $(DESTDIR)$(INCLUDEDIR)/http_parser.h - $(INSTALL) -D -s $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBNAME) -@@ -147,6 +176,7 @@ uninstall: - rm $(DESTDIR)$(LIBDIR)/$(SOLIBNAME).$(SOEXT) - rm $(DESTDIR)$(LIBDIR)/$(SONAME) - rm $(DESTDIR)$(LIBDIR)/$(LIBNAME) -+ rm $(DESTDIR)$(LIBDIR)/$(STATICLIBNAME) - - clean: - rm -f *.o *.a tags test test_fast test_g \ diff --git a/pkgs/by-name/hw/hwdata/default.nix b/pkgs/by-name/hw/hwdata/default.nix deleted file mode 100644 index 83519d7..0000000 --- a/pkgs/by-name/hw/hwdata/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib, stdenv, fetchFromGitHub }: - -stdenv.mkDerivation rec { - pname = "hwdata"; - version = "0.381"; - - src = fetchFromGitHub { - owner = "vcrhonek"; - repo = "hwdata"; - rev = "v${version}"; - hash = "sha256-FD1p4qyO+ZsBdMXRa9u6CpO07RewWH8OxULLxcYAsyk="; - }; - - configureFlags = [ "--datadir=${placeholder "out"}/share" ]; - - doCheck = false; # this does build machine-specific checks (e.g. enumerates PCI bus) - - meta = { - homepage = "https://github.com/vcrhonek/hwdata"; - description = "Hardware Database, including Monitors, pci.ids, usb.ids, and video cards"; - license = lib.licenses.gpl2Plus; - maintainers = with lib.maintainers; [ pedrohlc ]; - platforms = lib.platforms.all; - }; -} diff --git a/pkgs/by-name/ic/icu/default.nix b/pkgs/by-name/ic/icu/default.nix deleted file mode 100644 index bf59510..0000000 --- a/pkgs/by-name/ic/icu/default.nix +++ /dev/null @@ -1,77 +0,0 @@ -{ stdenv, lib, fetchurl, fetchpatch, fixDarwinDylibNames, testers, buildPackages }: - -let - make-icu = (import ./make-icu.nix) { - inherit stdenv lib buildPackages fetchurl fixDarwinDylibNames testers; - }; -in -{ - icu74 = make-icu { - version = "74.2"; - hash = "sha256-aNsIIhKpbW9T411g9H04uWLp+dIHp0z6x4Apro/14Iw="; - }; - icu73 = make-icu { - version = "73.2"; - hash = "sha256-gYqAcS7TyqzZtlIwXgGvx/oWfm8ulJltpEuQwqtgTOE="; - }; - icu72 = make-icu { - version = "72.1"; - hash = "sha256-otLTghcJKn7VZjXjRGf5L5drNw4gGCrTJe3qZoGnHWg="; - }; - icu71 = make-icu { - version = "71.1"; - hash = "sha256-Z6fm5R9h+vEwa2k1Mz4TssSKvY2m0vRs5q3KJLHiHr8="; - }; - icu70 = make-icu { - version = "70.1"; - hash = "sha256-jSBUKMF78Tu1NTAGae0oszihV7HAGuZtMdDT4tR8P9U="; - }; - icu69 = make-icu { - version = "69.1"; - hash = "sha256-TLp7es0dPELES7DBS+ZjcJjH+vKzMM6Ha8XzuRXQl0U="; - }; - icu68 = make-icu { - version = "68.2"; - hash = "sha256-x5GT3uOQeiGZuClqk7UsXLdDMsJvPRZyaUh2gNR51iU="; - }; - icu67 = make-icu { - version = "67.1"; - hash = "sha256-lKgM1vJRpTvSqZf28bWsZlP+eR36tm4esCJ3QPuG1dw="; - }; - icu66 = make-icu { - version = "66.1"; - hash = "sha256-UqPyIJq5VVnBzwoU8kM4AB84lhW/AOJYXvPbxD7PCi4="; - }; - icu64 = make-icu { - version = "64.2"; - hash = "sha256-Yn1dhHjm2W/IyQ/tSFEjkHmlYaaoueSLCJLyToLTHWw="; - }; - icu63 = make-icu { - version = "63.1"; - hash = "sha256-BcSQtpRU/OWGC36OKCEjFnSvChHX7y/r6poyUSmYy50="; - patches = [ - # https://bugzilla.mozilla.org/show_bug.cgi?id=1499398 - (fetchpatch { - url = "https://github.com/unicode-org/icu/commit/8baff8f03e07d8e02304d0c888d0bb21ad2eeb01.patch"; - sha256 = "1awfa98ljcf95a85cssahw6bvdnpbq5brf1kgspy14w4mlmhd0jb"; - }) - ]; - patchFlags = [ "-p3" ]; - }; - icu60 = make-icu { - version = "60.2"; - hash = "sha256-8HPqjzW5JtcLsz5ld1CKpkKosxaoA/Eb4grzhIEdtBg="; - }; - icu58 = make-icu { - version = "58.2"; - hash = "sha256-KwpEEBU6myDeDiDH2LZgSacq7yRLU2g9DXUhNxaD2gw="; - patches = [ - (fetchurl { - url = "http://bugs.icu-project.org/trac/changeset/39484?format=diff"; - name = "icu-changeset-39484.diff"; - sha256 = "0hxhpgydalyxacaaxlmaddc1sjwh65rsnpmg0j414mnblq74vmm8"; - }) - ]; - patchFlags = [ "-p4" ]; - }; -} diff --git a/pkgs/by-name/ic/icu/make-icu.nix b/pkgs/by-name/ic/icu/make-icu.nix deleted file mode 100644 index 836a7e3..0000000 --- a/pkgs/by-name/ic/icu/make-icu.nix +++ /dev/null @@ -1,107 +0,0 @@ -{ stdenv, lib, buildPackages, fetchurl, fixDarwinDylibNames, testers }: - -{ version, hash, patches ? [], patchFlags ? [] }: - -let - # Cross-compiled icu4c requires a build-root of a native compile - nativeBuildRoot = buildPackages."icu${lib.versions.major version}".buildRootOnly; - - pname = "icu4c"; - - baseAttrs = { - src = fetchurl { - url = "https://github.com/unicode-org/icu/releases/download/release-${lib.replaceStrings [ "." ] [ "-" ] version}/icu4c-${lib.replaceStrings [ "." ] [ "_" ] version}-src.tgz"; - inherit hash; - }; - - postUnpack = '' - sourceRoot=''${sourceRoot}/source - echo Source root reset to ''${sourceRoot} - ''; - - # 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 - - inherit patchFlags patches; - - 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 - ''; - - configureFlags = [ "--disable-debug" ] - ++ lib.optional (stdenv.isFreeBSD || stdenv.isDarwin) "--enable-rpath" - ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "--with-cross-build=${nativeBuildRoot}"; - - enableParallelBuilding = true; - - meta = with lib; { - description = "Unicode and globalization support library"; - homepage = "https://icu.unicode.org/"; - maintainers = with maintainers; [ raskin ]; - pkgConfigModules = [ - "icu-i18n" - "icu-io" - "icu-uc" - ]; - platforms = platforms.all; - }; - }; - - realAttrs = baseAttrs // { - name = pname + "-" + version; - - outputs = [ "out" "dev" ]; - outputBin = "dev"; - - # FIXME: This fixes dylib references in the dylibs themselves, but - # not in the programs in $out/bin. - 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} - ''); - - postFixup = ''moveToOutput lib/icu "$dev" ''; - }; - - buildRootOnlyAttrs = baseAttrs // { - name = pname + "-build-root-" + version; - - preConfigure = baseAttrs.preConfigure + '' - mkdir build - cd build - configureScript=../configure - ''; - - postBuild = '' - cd .. - mv build $out - echo "Doing build-root only, exiting now" >&2 - exit 0 - ''; - }; - - mkWithAttrs = attrs: stdenv.mkDerivation (finalAttrs: attrs // { - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - passthru.buildRootOnly = mkWithAttrs buildRootOnlyAttrs; - }); -in - mkWithAttrs realAttrs diff --git a/pkgs/by-name/ic/icu/packages.nix b/pkgs/by-name/ic/icu/packages.nix deleted file mode 100644 index f1f7dcc..0000000 --- a/pkgs/by-name/ic/icu/packages.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - icu-versions = callPackages ./. { }; - inherit (icu-versions) - icu58 - icu60 - icu63 - icu64 - icu66 - icu67 - icu68 - icu69 - icu70 - icu71 - 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 deleted file mode 100644 index a433cc6..0000000 --- a/pkgs/by-name/im/imagemagick/6.x.nix +++ /dev/null @@ -1,144 +0,0 @@ -{ 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; -in - -stdenv.mkDerivation (finalAttrs: { - pname = "imagemagick"; - version = "6.9.12-68"; - - src = fetchFromGitHub { - owner = "ImageMagick"; - repo = "ImageMagick6"; - rev = finalAttrs.version; - sha256 = "sha256-slQcA0cblxtG/1DiJx5swUh7Kfwgz5HG70eqJFLaQJI="; - }; - - 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" - ]; - - nativeBuildInputs = [ pkg-config libtool ]; - - buildInputs = [ ] - ++ lib.optional zlibSupport zlib - ++ lib.optional fontconfigSupport fontconfig - ++ lib.optional ghostscriptSupport ghostscript - ++ lib.optional liblqr1Support liblqr1 - ++ lib.optional libpngSupport libpng - ++ lib.optional libtiffSupport libtiff - ++ lib.optional libxml2Support libxml2 - ++ lib.optional libheifSupport libheif - ++ lib.optional libde265Support libde265 - ++ lib.optional djvulibreSupport djvulibre - ++ lib.optional openexrSupport openexr - ++ lib.optional librsvgSupport librsvg - ++ lib.optional openjpegSupport openjpeg - ++ lib.optionals stdenv.isDarwin [ - ApplicationServices - Foundation - ]; - - propagatedBuildInputs = [ fftw ] - ++ lib.optional bzip2Support bzip2 - ++ lib.optional freetypeSupport freetype - ++ lib.optional libjpegSupport libjpeg - ++ lib.optional lcms2Support lcms2 - ++ lib.optional libX11Support libX11 - ++ lib.optional libXtSupport libXt - ++ lib.optional libwebpSupport libwebp; - - 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 - ''; - - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - - meta = with lib; { - 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" ]; - platforms = platforms.linux ++ platforms.darwin; - maintainers = with maintainers; [ ]; - license = licenses.asl20; - knownVulnerabilities = [ - "CVE-2018-16328" - "CVE-2018-16329" - "CVE-2019-13136" - "CVE-2019-17547" - "CVE-2020-25663" - "CVE-2020-27768" - "CVE-2021-3596" - "CVE-2021-3596" - "CVE-2021-3596" - "CVE-2021-3610" - "CVE-2021-20244" - "CVE-2021-20244" - "CVE-2021-20310" - "CVE-2021-20311" - "CVE-2021-20312" - "CVE-2021-20313" - "CVE-2022-0284" - "CVE-2022-2719" - ]; - }; -}) diff --git a/pkgs/by-name/im/imagemagick/default.nix b/pkgs/by-name/im/imagemagick/default.nix deleted file mode 100644 index a507a13..0000000 --- a/pkgs/by-name/im/imagemagick/default.nix +++ /dev/null @@ -1,152 +0,0 @@ -{ 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 -# , nixos-icons -# , perlPackages -# , python3 -}: - -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; -in - -stdenv.mkDerivation (finalAttrs: { - pname = "imagemagick"; - version = "7.1.1-29"; - - src = fetchFromGitHub { - owner = "ImageMagick"; - repo = "ImageMagick"; - rev = finalAttrs.version; - hash = "sha256-W9WbHzmTa0dA9+mOxXu88qmN1mO9ORaH0Nj6r2s1Q+E="; - }; - - 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" - ]; - - nativeBuildInputs = [ pkg-config libtool ]; - - buildInputs = [ potrace ] - ++ lib.optional zlibSupport zlib - ++ lib.optional fontconfigSupport fontconfig - ++ lib.optional ghostscriptSupport ghostscript - ++ lib.optional liblqr1Support liblqr1 - ++ lib.optional libpngSupport libpng - ++ lib.optional librawSupport libraw - ++ lib.optional libtiffSupport libtiff - ++ lib.optional libxml2Support libxml2 - ++ lib.optional libheifSupport libheif - ++ lib.optional djvulibreSupport djvulibre - ++ lib.optional libjxlSupport libjxl - ++ lib.optional openexrSupport openexr - ++ lib.optionals librsvgSupport [ - librsvg - pango - ] - ++ lib.optional openjpegSupport openjpeg - ++ lib.optionals stdenv.isDarwin [ - ApplicationServices - Foundation - ]; - - propagatedBuildInputs = [ curl ] - ++ lib.optional bzip2Support bzip2 - ++ lib.optional freetypeSupport freetype - ++ lib.optional libjpegSupport libjpeg - ++ lib.optional lcms2Support lcms2 - ++ lib.optional libX11Support libX11 - ++ 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 - ''; - - # passthru.tests = { - # version = testers.testVersion { package = finalAttrs.finalPackage; }; - # inherit nixos-icons; - # inherit (perlPackages) ImageMagick; - # inherit (python3.pkgs) img2pdf; - # pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - # }; - - meta = with lib; { - 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" ]; - platforms = platforms.linux ++ platforms.darwin; - 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 deleted file mode 100644 index 8fbd6d7..0000000 --- a/pkgs/by-name/im/imagemagick/packages.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - imagemagick6_light = imagemagick6.override { - bzip2Support = false; - zlibSupport = false; - libX11Support = false; - libXtSupport = false; - fontconfigSupport = false; - freetypeSupport = false; - ghostscriptSupport = false; - libjpegSupport = false; - djvulibreSupport = false; - lcms2Support = false; - openexrSupport = false; - libpngSupport = false; - liblqr1Support = false; - librsvgSupport = false; - libtiffSupport = false; - libxml2Support = false; - openjpegSupport = false; - libwebpSupport = false; - libheifSupport = false; - libde265Support = false; - }; - - imagemagick6 = callPackage ./6.x.nix { - inherit (darwin.apple_sdk.frameworks) ApplicationServices Foundation; - }; - - 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 = lowPrio (callPackage ./. { - inherit (darwin.apple_sdk.frameworks) ApplicationServices Foundation; - }); - - imagemagickBig = lowPrio (imagemagick.override { - ghostscriptSupport = true; - }); -} diff --git a/pkgs/by-name/im/imlib2/default.nix b/pkgs/by-name/im/imlib2/default.nix deleted file mode 100644 index 9c75eef..0000000 --- a/pkgs/by-name/im/imlib2/default.nix +++ /dev/null @@ -1,101 +0,0 @@ -{ 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 -# , testers - -# , gitUpdater -}: - -let - inherit (lib) optional optionals; -in -stdenv.mkDerivation (finalAttrs: { - pname = "imlib2"; - version = "1.12.2"; - - src = fetchurl { - url = "mirror://sourceforge/enlightenment/${finalAttrs.pname}-${finalAttrs.version}.tar.xz"; - hash = "sha256-zEmTGiBWCWioZIycoHkIWXYIXqltWaAbHhfLVa8P/kI="; - }; - - buildInputs = [ - libjpeg libtiff giflib libpng - bzip2 freetype libid3tag - ] ++ optionals x11Support [ xorg.libXft xorg.libXext ] - ++ optional heifSupport libheif - ++ optional svgSupport librsvg - ++ optional webpSupport libwebp - ++ optional jxlSupport libjxl - ++ optional psSupport libspectre; - - nativeBuildInputs = [ pkg-config ]; - - enableParallelBuilding = true; - - # Do not build amd64 assembly code on Darwin, because it fails to compile - # with unknow directive errors - configureFlags = optional stdenv.isDarwin "--enable-amd64=no" - ++ optional (!svgSupport) "--without-svg" - ++ optional (!heifSupport) "--without-heif" - ++ optional (!x11Support) "--without-x"; - - outputs = [ "bin" "out" "dev" ]; - - # passthru = { - # tests = { - # inherit - # libcaca - # diffoscopeMinimal - # feh - # icewm - # openbox - # fluxbox - # enlightenment; - # pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - # }; - # updateScript = gitUpdater { - # # No nicer place to find latest release. - # url = "https://git.enlightenment.org/old/legacy-imlib2.git"; - # rev-prefix = "v"; - # }; - # }; - - meta = with lib; { - description = "Image manipulation library"; - - longDescription = '' - This is the Imlib 2 library - a library that does image file loading and - saving as well as rendering, manipulation, arbitrary polygon support, etc. - It does ALL of these operations FAST. Imlib2 also tries to be highly - intelligent about doing them, so writing naive programs can be done - easily, without sacrificing speed. - ''; - - homepage = "https://docs.enlightenment.org/api/imlib2/html"; - changelog = "https://git.enlightenment.org/old/legacy-imlib2/raw/tag/v${finalAttrs.version}/ChangeLog"; - license = licenses.imlib2; - pkgConfigModules = [ "imlib2" ]; - platforms = platforms.unix; - maintainers = with maintainers; [ ]; - }; -}) diff --git a/pkgs/by-name/im/imlib2/packages.nix b/pkgs/by-name/im/imlib2/packages.nix deleted file mode 100644 index 54acd8b..0000000 --- a/pkgs/by-name/im/imlib2/packages.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - imlib2 = callPackage ./. { }; - imlib2Full = imlib2.override { - # Compilation error on Darwin with librsvg. For more information see: - # https://github.com/NixOS/nixpkgs/pull/166452#issuecomment-1090725613 - svgSupport = !stdenv.isDarwin; - heifSupport = !stdenv.isDarwin; - webpSupport = true; - jxlSupport = true; - psSupport = true; - }; - 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 deleted file mode 100644 index e8536ea..0000000 --- a/pkgs/by-name/in/inotify-tools/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ lib, stdenv, autoreconfHook, fetchFromGitHub, nix-update-script, fanotifySupport ? true }: - -stdenv.mkDerivation (finalAttrs: { - pname = "inotify-tools"; - version = "4.23.9.0"; - - src = fetchFromGitHub { - repo = "inotify-tools"; - owner = "inotify-tools"; - rev = finalAttrs.version; - hash = "sha256-6kM2JzxRcwUjUmbUWGnQ+gAvZcn7C32/enRwiYiuQGU="; - }; - - configureFlags = [ - (lib.enableFeature fanotifySupport "fanotify") - ]; - - nativeBuildInputs = [ autoreconfHook ]; - - passthru = { - updateScript = nix-update-script { }; - }; - - meta = with lib; { - homepage = "https://github.com/inotify-tools/inotify-tools/wiki"; - license = licenses.gpl2Plus; - 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 deleted file mode 100644 index 967fc44..0000000 --- a/pkgs/by-name/in/intltool/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchurl, fetchpatch, gettext, perlPackages, buildPackages }: - -stdenv.mkDerivation rec { - pname = "intltool"; - version = "0.51.0"; - - src = fetchurl { - url = "https://launchpad.net/intltool/trunk/${version}/+download/${pname}-${version}.tar.gz"; - sha256 = "1karx4sb7bnm2j67q0q74hspkfn6lqprpy5r99vkn5bb36a4viv7"; - }; - - # 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"; - })]; - - nativeBuildInputs = with perlPackages; [ perl XMLParser ]; - propagatedBuildInputs = [ gettext ] ++ (with perlPackages; [ perl XMLParser ]); - - postInstall = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' - for f in $out/bin/*; do - substituteInPlace $f --replace "${buildPackages.perl}" "${perlPackages.perl}" - done - ''; - meta = with lib; { - description = "Translation helper tool"; - homepage = "https://launchpad.net/intltool/"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ raskin ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/ip/iptables/default.nix b/pkgs/by-name/ip/iptables/default.nix deleted file mode 100644 index b824845..0000000 --- a/pkgs/by-name/ip/iptables/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ lib, stdenv, fetchurl -, autoreconfHook, pkg-config, pruneLibtoolFiles, flex, bison -, libmnl, libnetfilter_conntrack, libnfnetlink, libnftnl, libpcap -, nftablesCompat ? true -, gitUpdater -}: - -stdenv.mkDerivation rec { - version = "1.8.10"; - pname = "iptables"; - - src = fetchurl { - url = "https://www.netfilter.org/projects/${pname}/files/${pname}-${version}.tar.xz"; - sha256 = "XMJVwYk1bjF9BwdVzpNx62Oht4PDRJj7jDAmTzzFnJw="; - }; - - outputs = [ "out" "dev" "man" ]; - - nativeBuildInputs = [ - autoreconfHook pkg-config pruneLibtoolFiles flex bison - ]; - - buildInputs = [ libmnl libnetfilter_conntrack libnfnetlink libnftnl libpcap ]; - - configureFlags = [ - "--enable-bpf-compiler" - "--enable-devel" - "--enable-libipq" - "--enable-nfsynproxy" - "--enable-shared" - ] ++ lib.optional (!nftablesCompat) "--disable-nftables"; - - enableParallelBuilding = true; - - postInstall = lib.optionalString nftablesCompat '' - rm $out/sbin/{iptables,iptables-restore,iptables-save,ip6tables,ip6tables-restore,ip6tables-save} - ln -sv xtables-nft-multi $out/bin/iptables - ln -sv xtables-nft-multi $out/bin/iptables-restore - ln -sv xtables-nft-multi $out/bin/iptables-save - ln -sv xtables-nft-multi $out/bin/ip6tables - ln -sv xtables-nft-multi $out/bin/ip6tables-restore - ln -sv xtables-nft-multi $out/bin/ip6tables-save - ''; - - passthru = { - updateScript = gitUpdater { - url = "https://git.netfilter.org/iptables"; - rev-prefix = "v"; - }; - }; - - meta = with lib; { - description = "A program to configure the Linux IP packet filtering ruleset"; - homepage = "https://www.netfilter.org/projects/iptables/index.html"; - platforms = platforms.linux; - maintainers = with maintainers; [ fpletz ]; - license = licenses.gpl2; - downloadPage = "https://www.netfilter.org/projects/iptables/files/"; - }; -} diff --git a/pkgs/by-name/ip/iptables/packages.nix b/pkgs/by-name/ip/iptables/packages.nix deleted file mode 100644 index 8ad4c55..0000000 --- a/pkgs/by-name/ip/iptables/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - iptables = callPackage ./. { }; - iptables-legacy = callPackage ./. { nftablesCompat = false; }; - iptables-nftables-compat = iptables; -} diff --git a/pkgs/by-name/is/isl/0.11.1.nix b/pkgs/by-name/is/isl/0.11.1.nix deleted file mode 100644 index a11d9ec..0000000 --- a/pkgs/by-name/is/isl/0.11.1.nix +++ /dev/null @@ -1,8 +0,0 @@ -import ./generic.nix { - version = "0.11.1"; - urls = [ - "https://src.fedoraproject.org/repo/pkgs/gcc/isl-0.11.1.tar.bz2/bce1586384d8635a76d2f017fb067cd2/isl-0.11.1.tar.bz2" - ]; - sha256 = "13d9cqa5rzhbjq0xf0b2dyxag7pqa72xj9dhsa03m8ccr1a4npq9"; - patches = [ ./fix-gcc-build.diff ]; -} diff --git a/pkgs/by-name/is/isl/0.14.1.nix b/pkgs/by-name/is/isl/0.14.1.nix deleted file mode 100644 index 1a368d2..0000000 --- a/pkgs/by-name/is/isl/0.14.1.nix +++ /dev/null @@ -1,8 +0,0 @@ -import ./generic.nix rec { - version = "0.14.1"; - urls = [ - "mirror://sourceforge/libisl/isl-${version}.tar.xz" - "https://libisl.sourceforge.io/isl-${version}.tar.xz" - ]; - sha256 = "0xa6xagah5rywkywn19rzvbvhfvkmylhcxr6z9z7bz29cpiwk0l8"; -} diff --git a/pkgs/by-name/is/isl/0.17.1.nix b/pkgs/by-name/is/isl/0.17.1.nix deleted file mode 100644 index 2e0110d..0000000 --- a/pkgs/by-name/is/isl/0.17.1.nix +++ /dev/null @@ -1,8 +0,0 @@ -import ./generic.nix rec { - version = "0.17.1"; - urls = [ - "mirror://sourceforge/libisl/isl-${version}.tar.xz" - "https://libisl.sourceforge.io/isl-${version}.tar.xz" - ]; - sha256 = "be152e5c816b477594f4c6194b5666d8129f3a27702756ae9ff60346a8731647"; -} diff --git a/pkgs/by-name/is/isl/0.20.0.nix b/pkgs/by-name/is/isl/0.20.0.nix deleted file mode 100644 index d7567be..0000000 --- a/pkgs/by-name/is/isl/0.20.0.nix +++ /dev/null @@ -1,11 +0,0 @@ -import ./generic.nix rec { - version = "0.20"; - urls = [ - "mirror://sourceforge/libisl/isl-${version}.tar.xz" - "https://libisl.sourceforge.io/isl-${version}.tar.xz" - ]; - sha256 = "1akpgq0rbqbah5517blg2zlnfvjxfcl9cjrfc75nbcx5p2gnlnd5"; - configureFlags = [ - "--with-gcc-arch=generic" # don't guess -march=/mtune= - ]; -} diff --git a/pkgs/by-name/is/isl/0.24.0.nix b/pkgs/by-name/is/isl/0.24.0.nix deleted file mode 100644 index 90eb5ec..0000000 --- a/pkgs/by-name/is/isl/0.24.0.nix +++ /dev/null @@ -1,11 +0,0 @@ -import ./generic.nix rec { - version = "0.24"; - urls = [ - "mirror://sourceforge/libisl/isl-${version}.tar.xz" - "https://libisl.sourceforge.io/isl-${version}.tar.xz" - ]; - sha256 = "1bgbk6n93qqn7w8v21kxf4x6dc3z0ypqrzvgfd46nhagak60ac84"; - configureFlags = [ - "--with-gcc-arch=generic" # don't guess -march=/mtune= - ]; -} diff --git a/pkgs/by-name/is/isl/fix-gcc-build.diff b/pkgs/by-name/is/isl/fix-gcc-build.diff deleted file mode 100644 index 6fbd1f9..0000000 --- a/pkgs/by-name/is/isl/fix-gcc-build.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -ru isl-0.11.1/include/isl/int.h isl-0.11.1.new/include/isl/int.h ---- isl-0.11.1/include/isl/int.h 2012-11-29 09:47:32.000000000 +0100 -+++ isl-0.11.1.new/include/isl/int.h 2013-10-27 15:35:31.348553812 +0100 -@@ -14,7 +14,7 @@ - #include - #include - #if defined(__cplusplus) --#include -+#include - #endif - - #if defined(__cplusplus) diff --git a/pkgs/by-name/is/isl/generic.nix b/pkgs/by-name/is/isl/generic.nix deleted file mode 100644 index 31bd990..0000000 --- a/pkgs/by-name/is/isl/generic.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ version -, urls -, sha256 -, configureFlags ? [] -, patches ? [] -}: - -{ lib -, stdenv -, fetchurl -, gmp -, autoreconfHook -, buildPackages -}: - -stdenv.mkDerivation { - pname = "isl"; - inherit version; - - 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 ]; - buildInputs = [ gmp ]; - - inherit configureFlags; - - enableParallelBuilding = true; - - meta = { - homepage = "https://libisl.sourceforge.io/"; - license = lib.licenses.lgpl21; - description = "A library for manipulating sets and relations of integer points bounded by linear constraints"; - platforms = lib.platforms.all; - }; -} diff --git a/pkgs/by-name/is/isl/packages.nix b/pkgs/by-name/is/isl/packages.nix deleted file mode 100644 index 80e0e82..0000000 --- a/pkgs/by-name/is/isl/packages.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - isl = isl_0_20; - isl_0_11 = callPackage ./0.11.1.nix { }; - isl_0_14 = callPackage ./0.14.1.nix { }; - isl_0_17 = callPackage ./0.17.1.nix { }; - isl_0_20 = callPackage ./0.20.0.nix { }; - isl_0_24 = callPackage ./0.24.0.nix { }; -} diff --git a/pkgs/by-name/it/itstool/default.nix b/pkgs/by-name/it/itstool/default.nix deleted file mode 100644 index c8889d3..0000000 --- a/pkgs/by-name/it/itstool/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ stdenv -, lib -, fetchurl -, python3 -}: - -stdenv.mkDerivation rec { - pname = "itstool"; - version = "2.0.7"; - - src = fetchurl { - url = "http://files.itstool.org/${pname}/${pname}-${version}.tar.bz2"; - hash = "sha256-a5p80poSu5VZj1dQ6HY87niDahogf4W3TYsydbJ+h8o="; - }; - - strictDeps = true; - - nativeBuildInputs = [ - python3 - python3.pkgs.wrapPython - ]; - - buildInputs = [ - python3 - python3.pkgs.libxml2 - ]; - - pythonPath = [ - python3.pkgs.libxml2 - ]; - - postFixup = '' - wrapPythonPrograms - ''; - - meta = { - homepage = "https://itstool.org/"; - description = "XML to PO and back again"; - mainProgram = "itstool"; - license = lib.licenses.gpl3Plus; - platforms = lib.platforms.all; - maintainers = [ ]; - }; -} diff --git a/pkgs/by-name/ja/jansson/default.nix b/pkgs/by-name/ja/jansson/default.nix deleted file mode 100644 index e868324..0000000 --- a/pkgs/by-name/ja/jansson/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, cmake }: - -stdenv.mkDerivation rec { - pname = "jansson"; - version = "2.14"; - - src = fetchFromGitHub { - owner = "akheron"; - repo = "jansson"; - rev = "v${version}"; - sha256 = "sha256-FQgy2+g3AyRVJeniqPQj0KNeHgPdza2pmEIXqSyYry4="; - }; - - nativeBuildInputs = [ cmake ]; - - cmakeFlags = [ - # networkmanager relies on libjansson.so: - # https://github.com/NixOS/nixpkgs/pull/176302#issuecomment-1150239453 - "-DJANSSON_BUILD_SHARED_LIBS=${if stdenv.hostPlatform.isStatic then "OFF" else "ON"}" - ]; - - meta = with lib; { - homepage = "https://github.com/akheron/jansson"; - description = "C library for encoding, decoding and manipulating JSON data"; - changelog = "https://github.com/akheron/jansson/raw/v${version}/CHANGES"; - license = licenses.mit; - platforms = platforms.all; - maintainers = [ ]; - }; -} diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/generate-sources.py b/pkgs/by-name/ja/java/adoptopenjdk-bin/generate-sources.py deleted file mode 100755 index 5ff56b2..0000000 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/generate-sources.py +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell --pure -i python3 -p "python3.withPackages (ps: with ps; [ requests ])" - -import json -import re -import requests -import sys - -# openjdk15 is only for bootstrapping openjdk -releases = ("openjdk8", "openjdk11", "openjdk13", "openjdk14", "openjdk15", "openjdk16", "openjdk17") -oses = ("mac", "linux", "alpine_linux") -types = ("jre", "jdk") -impls = ("hotspot", "openj9") - -arch_to_nixos = { - "x64": ("x86_64",), - "aarch64": ("aarch64",), - "arm": ("armv6l", "armv7l"), - "ppc64le": ("powerpc64le",), -} - -def get_sha256(url): - resp = requests.get(url) - if resp.status_code != 200: - print("error: could not fetch checksum from url {}: code {}".format(url, resp.status_code), file=sys.stderr) - sys.exit(1) - return resp.text.strip().split(" ")[0] - -def generate_sources(release, assets): - out = {} - for asset in assets: - if asset["os"] not in oses: continue - if asset["binary_type"] not in types: continue - if asset["openjdk_impl"] not in impls: continue - if asset["heap_size"] != "normal": continue - if asset["architecture"] not in arch_to_nixos: continue - - # examples: 11.0.1+13, 8.0.222+10 - version, build = asset["version_data"]["semver"].split("+") - - type_map = out.setdefault(asset["os"], {}) - impl_map = type_map.setdefault(asset["binary_type"], {}) - arch_map = impl_map.setdefault(asset["openjdk_impl"], { - "packageType": asset["binary_type"], - "vmType": asset["openjdk_impl"], - }) - - for nixos_arch in arch_to_nixos[asset["architecture"]]: - arch_map[nixos_arch] = { - "url": asset["binary_link"], - "sha256": get_sha256(asset["checksum_link"]), - "version": version, - "build": build, - } - - return out - -out = {} -for release in releases: - resp = requests.get("https://api.adoptopenjdk.net/v2/latestAssets/releases/" + release) - if resp.status_code != 200: - print("error: could not fetch data for release {} (code {})".format(release, resp.code), file=sys.stderr) - sys.exit(1) - out[release] = generate_sources(release, resp.json()) - -with open("sources.json", "w") as f: - json.dump(out, f, indent=2, sort_keys=True) - f.write('\n') 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 deleted file mode 100644 index 68d33b6..0000000 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk-darwin-base.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ sourcePerArch, knownVulnerabilities ? [] }: - -{ 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}"); - - 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 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 deleted file mode 100644 index 712efc2..0000000 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk-linux-base.nix +++ /dev/null @@ -1,123 +0,0 @@ -{ 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 -}: - -let - cpuName = stdenv.hostPlatform.parsed.cpu.name; - 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"; - - 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"; - }; - -}; in result diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk11-darwin.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk11-darwin.nix deleted file mode 100644 index 1fd2fd8..0000000 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk11-darwin.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ lib }: - -let - sources = lib.importJSON ./sources.json; -in -{ - jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk11.mac.jdk.hotspot; }; - jre-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk11.mac.jre.hotspot; }; - jdk-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk11.mac.jdk.openj9; }; - jre-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk11.mac.jre.openj9; }; -} diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk11-linux.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk11-linux.nix deleted file mode 100644 index fcad500..0000000 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk11-linux.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ stdenv, lib }: - -let - variant = if stdenv.hostPlatform.isMusl then "alpine_linux" else "linux"; - 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; }; -} diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk13-darwin.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk13-darwin.nix deleted file mode 100644 index fdde25b..0000000 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk13-darwin.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ lib }: - -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"]; }; -} diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk13-linux.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk13-linux.nix deleted file mode 100644 index 6c57b54..0000000 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk13-linux.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ stdenv, lib }: - -let - variant = if stdenv.hostPlatform.isMusl then "alpine_linux" else "linux"; - 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"]; }; -} diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk14-darwin.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk14-darwin.nix deleted file mode 100644 index 1c776f6..0000000 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk14-darwin.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ lib }: - -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"]; }; -} diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk14-linux.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk14-linux.nix deleted file mode 100644 index 573fc17..0000000 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk14-linux.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ stdenv, lib }: - -let - variant = if stdenv.hostPlatform.isMusl then "alpine_linux" else "linux"; - 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"]; }; -} diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk15-darwin.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk15-darwin.nix deleted file mode 100644 index b9d7066..0000000 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk15-darwin.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ lib }: - -let - sources = lib.importJSON ./sources.json; -in -{ - jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jdk.hotspot; }; - jre-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jre.hotspot; }; - jdk-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jdk.openj9; }; - jre-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jre.openj9; }; -} diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk15-linux.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk15-linux.nix deleted file mode 100644 index 7c6d1d3..0000000 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk15-linux.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ stdenv, lib }: - -let - variant = if stdenv.hostPlatform.isMusl then "alpine_linux" else "linux"; - 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; }; -} diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk16-darwin.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk16-darwin.nix deleted file mode 100644 index a747371..0000000 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk16-darwin.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ lib }: - -let - sources = lib.importJSON ./sources.json; -in -{ - jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jdk.hotspot; }; - jre-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jre.hotspot; }; - jdk-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jdk.openj9; }; - jre-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.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 deleted file mode 100644 index 3d80390..0000000 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk16-linux.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ stdenv, lib }: - -let - variant = if stdenv.hostPlatform.isMusl then "alpine_linux" else "linux"; - 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; }; -} diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk17-darwin.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk17-darwin.nix deleted file mode 100644 index d9309d9..0000000 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk17-darwin.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ lib }: - -let - sources = lib.importJSON ./sources.json; -in -{ - jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk17.mac.jdk.hotspot; }; - jre-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk17.mac.jre.hotspot; }; -} diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk17-linux.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk17-linux.nix deleted file mode 100644 index e069a85..0000000 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk17-linux.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ stdenv, lib }: - -let - variant = if stdenv.hostPlatform.isMusl then "alpine_linux" else "linux"; - 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; }; -} diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk8-darwin.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk8-darwin.nix deleted file mode 100644 index 8468708..0000000 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk8-darwin.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ lib }: - -let - sources = lib.importJSON ./sources.json; -in -{ - jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk8.mac.jdk.hotspot; }; - jre-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk8.mac.jre.hotspot; }; - jdk-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk8.mac.jdk.openj9; }; - jre-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk8.mac.jre.openj9; }; -} diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk8-linux.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk8-linux.nix deleted file mode 100644 index 2b0cac6..0000000 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk8-linux.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ stdenv, lib }: - -let - variant = if stdenv.hostPlatform.isMusl then "alpine_linux" else "linux"; - 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; }; -} diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/sources.json b/pkgs/by-name/ja/java/adoptopenjdk-bin/sources.json deleted file mode 100644 index 18b8e68..0000000 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/sources.json +++ /dev/null @@ -1,1192 +0,0 @@ -{ - "openjdk11": { - "alpine_linux": { - "jdk": { - "hotspot": { - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "45f56d75da2f55b29e7307cc790958e379abbe6b5f160a3824dc26e320c718e5", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.19%2B7/OpenJDK11U-jdk_x64_alpine-linux_hotspot_11.0.19_7.tar.gz", - "version": "11.0.19" - } - } - }, - "jre": { - "hotspot": { - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "b5d71cdf3032040e7d2a577712bf525e32e87686af3430219308a39878b98851", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.19%2B7/OpenJDK11U-jre_x64_alpine-linux_hotspot_11.0.19_7.tar.gz", - "version": "11.0.19" - } - } - } - }, - "linux": { - "jdk": { - "hotspot": { - "aarch64": { - "build": "7", - "sha256": "0c7763a19b4af4ef5fbae831781b5184e988d6f131d264482399eeaf51b6e254", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.19%2B7/OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.19_7.tar.gz", - "version": "11.0.19" - }, - "armv6l": { - "build": "7", - "sha256": "be07af349f0d2e1ffb7e01e1e8bac8bffd76e22f6cc1354e5b627222e3395f41", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.19%2B7/OpenJDK11U-jdk_arm_linux_hotspot_11.0.19_7.tar.gz", - "version": "11.0.19" - }, - "armv7l": { - "build": "7", - "sha256": "be07af349f0d2e1ffb7e01e1e8bac8bffd76e22f6cc1354e5b627222e3395f41", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.19%2B7/OpenJDK11U-jdk_arm_linux_hotspot_11.0.19_7.tar.gz", - "version": "11.0.19" - }, - "packageType": "jdk", - "powerpc64le": { - "build": "7", - "sha256": "1e3704c8e155f8f894953c2a6708a52e6f449bbf5a85450be6fbb2ec76581700", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.19%2B7/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.19_7.tar.gz", - "version": "11.0.19" - }, - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "5f19fb28aea3e28fcc402b73ce72f62b602992d48769502effe81c52ca39a581", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.19%2B7/OpenJDK11U-jdk_x64_linux_hotspot_11.0.19_7.tar.gz", - "version": "11.0.19" - } - }, - "openj9": { - "aarch64": { - "build": "9", - "sha256": "31242e10bb826679aae3ed303be17ad3ef3c2551afbbd19f031ada87dd73258f", - "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.11%2B9_openj9-0.26.0/OpenJDK11U-jdk_aarch64_linux_openj9_11.0.11_9_openj9-0.26.0.tar.gz", - "version": "11.0.11-ea" - }, - "packageType": "jdk", - "powerpc64le": { - "build": "9", - "sha256": "691f2b252b5be5e36079177d56ff7b516e3058277f0ba852a16a9a0cd9668224", - "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.11%2B9_openj9-0.26.0/OpenJDK11U-jdk_ppc64le_linux_openj9_11.0.11_9_openj9-0.26.0.tar.gz", - "version": "11.0.11" - }, - "vmType": "openj9", - "x86_64": { - "build": "9", - "sha256": "a605ab06f76533d44ce0828bd96836cc9c0e71ec3df3f8672052ea98dcbcca22", - "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.11%2B9_openj9-0.26.0/OpenJDK11U-jdk_x64_linux_openj9_11.0.11_9_openj9-0.26.0.tar.gz", - "version": "11.0.11" - } - } - }, - "jre": { - "hotspot": { - "aarch64": { - "build": "7", - "sha256": "1fe4b20d808f393422610818711c728331992a4455eeeb061d3d05b45412771d", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.19%2B7/OpenJDK11U-jre_aarch64_linux_hotspot_11.0.19_7.tar.gz", - "version": "11.0.19" - }, - "armv6l": { - "build": "7", - "sha256": "cb754b055177381f9f6852b7e5469904a15edddd7f8e136043c28b1e33aee47c", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.19%2B7/OpenJDK11U-jre_arm_linux_hotspot_11.0.19_7.tar.gz", - "version": "11.0.19" - }, - "armv7l": { - "build": "7", - "sha256": "cb754b055177381f9f6852b7e5469904a15edddd7f8e136043c28b1e33aee47c", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.19%2B7/OpenJDK11U-jre_arm_linux_hotspot_11.0.19_7.tar.gz", - "version": "11.0.19" - }, - "packageType": "jre", - "powerpc64le": { - "build": "7", - "sha256": "8019d938e5525938ec8e68e2989c4413263b0d9b7b3f20fe0c45f6d967919cfb", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.19%2B7/OpenJDK11U-jre_ppc64le_linux_hotspot_11.0.19_7.tar.gz", - "version": "11.0.19" - }, - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "32dcf760664f93531594b72ce9226e9216567de5705a23c9ff5a77c797948054", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.19%2B7/OpenJDK11U-jre_x64_linux_hotspot_11.0.19_7.tar.gz", - "version": "11.0.19" - } - }, - "openj9": { - "aarch64": { - "build": "9", - "sha256": "434219d233bdb8f1bee024b1ca5accfc3f1f832320b5221ded715eed101e705f", - "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.11%2B9_openj9-0.26.0/OpenJDK11U-jre_aarch64_linux_openj9_11.0.11_9_openj9-0.26.0.tar.gz", - "version": "11.0.11-ea" - }, - "packageType": "jre", - "powerpc64le": { - "build": "9", - "sha256": "f11ae15da7f2809caeeca70a7cf3b9e7f943848869f498f1b73efc10ef7170f0", - "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.11%2B9_openj9-0.26.0/OpenJDK11U-jre_ppc64le_linux_openj9_11.0.11_9_openj9-0.26.0.tar.gz", - "version": "11.0.11" - }, - "vmType": "openj9", - "x86_64": { - "build": "9", - "sha256": "152bf992d965ed018e9e1c3c2eb2c1771f92e0b6485b9a1f2c6d84d282117715", - "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.11%2B9_openj9-0.26.0/OpenJDK11U-jre_x64_linux_openj9_11.0.11_9_openj9-0.26.0.tar.gz", - "version": "11.0.11" - } - } - } - }, - "mac": { - "jdk": { - "hotspot": { - "aarch64": { - "build": "7", - "sha256": "f3b416ecccf51f45cc8c986975eb7bd35e7e1ad953656ab0a807125963fcf73b", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.19%2B7/OpenJDK11U-jdk_aarch64_mac_hotspot_11.0.19_7.tar.gz", - "version": "11.0.19" - }, - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "fc34c4f0e590071dcd65a0f93540913466ccac3aa8caa984826713b67afb696d", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.19%2B7/OpenJDK11U-jdk_x64_mac_hotspot_11.0.19_7.tar.gz", - "version": "11.0.19" - } - }, - "openj9": { - "packageType": "jdk", - "vmType": "openj9", - "x86_64": { - "build": "9", - "sha256": "797cee6b9f6e18bcc026ee9dcebbce81d62ca897038402d247630b25d41efe15", - "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.11%2B9_openj9-0.26.0/OpenJDK11U-jdk_x64_mac_openj9_11.0.11_9_openj9-0.26.0.tar.gz", - "version": "11.0.11" - } - } - }, - "jre": { - "hotspot": { - "aarch64": { - "build": "7", - "sha256": "78a07bd60c278f65bafd0df93890d909ff60259ccbd22ad71a1c3b312906508e", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.19%2B7/OpenJDK11U-jre_aarch64_mac_hotspot_11.0.19_7.tar.gz", - "version": "11.0.19" - }, - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "87e439b2193e1a2cf1a8782168bba83b558f54e2708f88ea8296184ea2735c89", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.19%2B7/OpenJDK11U-jre_x64_mac_hotspot_11.0.19_7.tar.gz", - "version": "11.0.19" - } - }, - "openj9": { - "packageType": "jre", - "vmType": "openj9", - "x86_64": { - "build": "9", - "sha256": "80a0c03f0b603d6008e29c651f884878743fcaa90fc05aef15f3411749da94e7", - "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.11%2B9_openj9-0.26.0/OpenJDK11U-jre_x64_mac_openj9_11.0.11_9_openj9-0.26.0.tar.gz", - "version": "11.0.11" - } - } - } - } - }, - "openjdk13": { - "linux": { - "jdk": { - "hotspot": { - "aarch64": { - "build": "8.1", - "sha256": "0e6081cb51f8a6f3062bef4f4c45dbe1fccfd3f3b4b5d52522a3edb76581e3af", - "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_aarch64_linux_hotspot_13.0.2_8.tar.gz", - "version": "13.0.2" - }, - "armv6l": { - "build": "8.1", - "sha256": "9beec080f2b2a7f6883b024272f4e8d5a0b027325e83647be318215781af1d1a", - "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_arm_linux_hotspot_13.0.2_8.tar.gz", - "version": "13.0.2" - }, - "armv7l": { - "build": "8.1", - "sha256": "9beec080f2b2a7f6883b024272f4e8d5a0b027325e83647be318215781af1d1a", - "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_arm_linux_hotspot_13.0.2_8.tar.gz", - "version": "13.0.2" - }, - "packageType": "jdk", - "powerpc64le": { - "build": "8.1", - "sha256": "fb3362e34aac091a4682394d20dcdc3daea51995d369d62c28424573e0fc04aa", - "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_ppc64le_linux_hotspot_13.0.2_8.tar.gz", - "version": "13.0.2" - }, - "vmType": "hotspot", - "x86_64": { - "build": "8.1", - "sha256": "9ccc063569f19899fd08e41466f8c4cd4e05058abdb5178fa374cb365dcf5998", - "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_x64_linux_hotspot_13.0.2_8.tar.gz", - "version": "13.0.2" - } - }, - "openj9": { - "packageType": "jdk", - "powerpc64le": { - "build": "8.1", - "sha256": "f71513e525172dfef695b7c27b25e151f232e05b2281648c2b794650c4970832", - "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jdk_ppc64le_linux_openj9_13.0.2_8_openj9-0.18.0.tar.gz", - "version": "13.0.2" - }, - "vmType": "openj9", - "x86_64": { - "build": "8.1", - "sha256": "aeecf6d30d0c847db81d07793cf97e5dc44890c29366d7d9f8f9f397f6c52590", - "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jdk_x64_linux_openj9_13.0.2_8_openj9-0.18.0.tar.gz", - "version": "13.0.2" - } - } - }, - "jre": { - "hotspot": { - "aarch64": { - "build": "8.1", - "sha256": "6c4b69d1609f4c65c576c80d6aa101de80048f8ce5566f890e8fff5349228bae", - "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jre_aarch64_linux_hotspot_13.0.2_8.tar.gz", - "version": "13.0.2" - }, - "packageType": "jre", - "powerpc64le": { - "build": "8.1", - "sha256": "43d6fb71bdf7b6ad9295087c46dfc9b00bf26db1b5cdcff0c418cbe43b49904a", - "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jre_ppc64le_linux_hotspot_13.0.2_8.tar.gz", - "version": "13.0.2" - }, - "vmType": "hotspot", - "x86_64": { - "build": "8.1", - "sha256": "897f16fe8e056395209e35d2384013bd1ff250e717465769079e3f4793628c34", - "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jre_x64_linux_hotspot_13.0.2_8.tar.gz", - "version": "13.0.2" - } - }, - "openj9": { - "packageType": "jre", - "powerpc64le": { - "build": "8.1", - "sha256": "7bf8dc4c3b95e87b154f7bc2f9388a6539413fe76d49b362bba878217ccb7ed7", - "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jre_ppc64le_linux_openj9_13.0.2_8_openj9-0.18.0.tar.gz", - "version": "13.0.2" - }, - "vmType": "openj9", - "x86_64": { - "build": "8.1", - "sha256": "a0ab38607811e282f64082edc68a2dea3fa6a5113391efb124a6d7d02883110a", - "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jre_x64_linux_openj9_13.0.2_8_openj9-0.18.0.tar.gz", - "version": "13.0.2" - } - } - } - }, - "mac": { - "jdk": { - "hotspot": { - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "8.1", - "sha256": "0ddb24efdf5aab541898d19b7667b149a1a64a8bd039b708fc58ee0284fa7e07", - "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_x64_mac_hotspot_13.0.2_8.tar.gz", - "version": "13.0.2" - } - }, - "openj9": { - "packageType": "jdk", - "vmType": "openj9", - "x86_64": { - "build": "8.1", - "sha256": "dd8d92eec98a3455ec5cd065a0a6672cc1aef280c6a68c507c372ccc1d98fbaa", - "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jdk_x64_mac_openj9_13.0.2_8_openj9-0.18.0.tar.gz", - "version": "13.0.2" - } - } - }, - "jre": { - "hotspot": { - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "8.1", - "sha256": "3149b9ebf0db1eaf2dc152df9efae82003e7971efb1cf550060e6a4798fe8c5c", - "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jre_x64_mac_hotspot_13.0.2_8.tar.gz", - "version": "13.0.2" - } - }, - "openj9": { - "packageType": "jre", - "vmType": "openj9", - "x86_64": { - "build": "8.1", - "sha256": "6a8a636fca4c7e368241e232a37cd73c9867cdec8f0869fd158b1f58c6128cc2", - "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jre_x64_mac_openj9_13.0.2_8_openj9-0.18.0.tar.gz", - "version": "13.0.2" - } - } - } - } - }, - "openjdk14": { - "linux": { - "jdk": { - "hotspot": { - "aarch64": { - "build": "12", - "sha256": "ee87e9f03b1fbe6f328429b78fe1a9f44900026d220c90dfd747fe0bcd62d904", - "url": "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_aarch64_linux_hotspot_14.0.2_12.tar.gz", - "version": "14.0.2" - }, - "armv6l": { - "build": "12", - "sha256": "65f193496c6977ba7aed1563edc4b5be091b5ff03e3d790074bb4e389a034b36", - "url": "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_arm_linux_hotspot_14.0.2_12.tar.gz", - "version": "14.0.2" - }, - "armv7l": { - "build": "12", - "sha256": "65f193496c6977ba7aed1563edc4b5be091b5ff03e3d790074bb4e389a034b36", - "url": "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_arm_linux_hotspot_14.0.2_12.tar.gz", - "version": "14.0.2" - }, - "packageType": "jdk", - "powerpc64le": { - "build": "12", - "sha256": "465a3b8e931896b8d95e452d479615c4bf543535c05b6ea246323ae114e67d7d", - "url": "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_ppc64le_linux_hotspot_14.0.2_12.tar.gz", - "version": "14.0.2" - }, - "vmType": "hotspot", - "x86_64": { - "build": "12", - "sha256": "7d5ee7e06909b8a99c0d029f512f67b092597aa5b0e78c109bd59405bbfa74fe", - "url": "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_x64_linux_hotspot_14.0.2_12.tar.gz", - "version": "14.0.2" - } - }, - "openj9": { - "packageType": "jdk", - "powerpc64le": { - "build": "12", - "sha256": "177fd161ae14df92203d70cd618559daf889ec0c172d6ee615859352f68a2371", - "url": "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12_openj9-0.21.0/OpenJDK14U-jdk_ppc64le_linux_openj9_14.0.2_12_openj9-0.21.0.tar.gz", - "version": "14.0.2" - }, - "vmType": "openj9", - "x86_64": { - "build": "12", - "sha256": "306f7138cdb65daaf2596ec36cafbde72088144c83b2e964f0193662e6caf3be", - "url": "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12_openj9-0.21.0/OpenJDK14U-jdk_x64_linux_openj9_14.0.2_12_openj9-0.21.0.tar.gz", - "version": "14.0.2" - } - } - }, - "jre": { - "hotspot": { - "aarch64": { - "build": "12", - "sha256": "2b749ceead19d68dd7e3c28b143dc4f94bb0916378a98b7346e851318ea4da84", - "url": "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jre_aarch64_linux_hotspot_14.0.2_12.tar.gz", - "version": "14.0.2" - }, - "armv6l": { - "build": "12", - "sha256": "4468ecf74956783ae41a46e8ba023c003c69e4d111622944aad1af764a1bc4af", - "url": "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jre_arm_linux_hotspot_14.0.2_12.tar.gz", - "version": "14.0.2" - }, - "armv7l": { - "build": "12", - "sha256": "4468ecf74956783ae41a46e8ba023c003c69e4d111622944aad1af764a1bc4af", - "url": "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jre_arm_linux_hotspot_14.0.2_12.tar.gz", - "version": "14.0.2" - }, - "packageType": "jre", - "powerpc64le": { - "build": "12", - "sha256": "0f96998be562cfbe8a4114581349dbd2609d0a23091e538fe142dcd9c83e70cf", - "url": "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jre_ppc64le_linux_hotspot_14.0.2_12.tar.gz", - "version": "14.0.2" - }, - "vmType": "hotspot", - "x86_64": { - "build": "12", - "sha256": "1107845947da56e6bdad0da0b79210a079a74ec5c806f815ec5db9d09e1a9236", - "url": "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jre_x64_linux_hotspot_14.0.2_12.tar.gz", - "version": "14.0.2" - } - }, - "openj9": { - "packageType": "jre", - "powerpc64le": { - "build": "12", - "sha256": "ad7a55a3669878c0c7d7c66faafe7c626d4341374719b6fdd81d2986c6e80945", - "url": "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12_openj9-0.21.0/OpenJDK14U-jre_ppc64le_linux_openj9_14.0.2_12_openj9-0.21.0.tar.gz", - "version": "14.0.2" - }, - "vmType": "openj9", - "x86_64": { - "build": "12", - "sha256": "3a137146a7b0bd8b029e72beb37c5fbb09dcfb9e33a10125076fff1555227cfd", - "url": "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12_openj9-0.21.0/OpenJDK14U-jre_x64_linux_openj9_14.0.2_12_openj9-0.21.0.tar.gz", - "version": "14.0.2" - } - } - } - }, - "mac": { - "jdk": { - "hotspot": { - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "12", - "sha256": "09b7e6ab5d5eb4b73813f4caa793a0b616d33794a17988fa6a6b7c972e8f3dd3", - "url": "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_x64_mac_hotspot_14.0.2_12.tar.gz", - "version": "14.0.2" - } - }, - "openj9": { - "packageType": "jdk", - "vmType": "openj9", - "x86_64": { - "build": "12", - "sha256": "95e6abcc12dde676ccd5ba65ab86f06ddaa22749dde00e31f4c6d3ea95277359", - "url": "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12_openj9-0.21.0/OpenJDK14U-jdk_x64_mac_openj9_14.0.2_12_openj9-0.21.0.tar.gz", - "version": "14.0.2" - } - } - }, - "jre": { - "hotspot": { - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "12", - "sha256": "e8b5196de8ecb2b136a28494c2888784b9d9e22e29d2c38528892fb7d0c95260", - "url": "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jre_x64_mac_hotspot_14.0.2_12.tar.gz", - "version": "14.0.2" - } - }, - "openj9": { - "packageType": "jre", - "vmType": "openj9", - "x86_64": { - "build": "12", - "sha256": "2562a442d7278409358f474071db34df4ba9c555925f28d0270139f97133c8d5", - "url": "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12_openj9-0.21.0/OpenJDK14U-jre_x64_mac_openj9_14.0.2_12_openj9-0.21.0.tar.gz", - "version": "14.0.2" - } - } - } - } - }, - "openjdk15": { - "linux": { - "jdk": { - "hotspot": { - "aarch64": { - "build": "7", - "sha256": "6e8b6b037148cf20a284b5b257ec7bfdf9cc31ccc87778d0dfd95a2fddf228d4", - "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_aarch64_linux_hotspot_15.0.2_7.tar.gz", - "version": "15.0.2" - }, - "armv6l": { - "build": "7", - "sha256": "ff39c0380224e419d940382c4d651cb1e6297a794854e0cc459c1fd4973b3368", - "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_arm_linux_hotspot_15.0.2_7.tar.gz", - "version": "15.0.2" - }, - "armv7l": { - "build": "7", - "sha256": "ff39c0380224e419d940382c4d651cb1e6297a794854e0cc459c1fd4973b3368", - "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_arm_linux_hotspot_15.0.2_7.tar.gz", - "version": "15.0.2" - }, - "packageType": "jdk", - "powerpc64le": { - "build": "7", - "sha256": "486f2aad94c5580c0b27c9007beebadfccd4677c0bd9565a77ca5c34af5319f9", - "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_ppc64le_linux_hotspot_15.0.2_7.tar.gz", - "version": "15.0.2" - }, - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "94f20ca8ea97773571492e622563883b8869438a015d02df6028180dd9acc24d", - "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_x64_linux_hotspot_15.0.2_7.tar.gz", - "version": "15.0.2" - } - }, - "openj9": { - "aarch64": { - "build": "7", - "sha256": "b69a4bc87ed2e985d252cff02d53f1a11b8d83d39e0800cd4a1cab4521375314", - "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7_openj9-0.24.0/OpenJDK15U-jdk_aarch64_linux_openj9_15.0.2_7_openj9-0.24.0.tar.gz", - "version": "15.0.2-ea" - }, - "packageType": "jdk", - "powerpc64le": { - "build": "7", - "sha256": "5b2158268de0be247801b7823ee3e7f739254d77718a1879848627181feee2f4", - "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7_openj9-0.24.0/OpenJDK15U-jdk_ppc64le_linux_openj9_15.0.2_7_openj9-0.24.0.tar.gz", - "version": "15.0.2" - }, - "vmType": "openj9", - "x86_64": { - "build": "7", - "sha256": "5515ccd79b1b5e8d8a615b80d5fe1272f7bb41100e46d94fb78ee611ea014816", - "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7_openj9-0.24.0/OpenJDK15U-jdk_x64_linux_openj9_15.0.2_7_openj9-0.24.0.tar.gz", - "version": "15.0.2" - } - } - }, - "jre": { - "hotspot": { - "aarch64": { - "build": "7", - "sha256": "1c1fc968d76004b0be0042027712835dcbe3570a6fc3a208157a4ab6adabbef2", - "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jre_aarch64_linux_hotspot_15.0.2_7.tar.gz", - "version": "15.0.2" - }, - "armv6l": { - "build": "7", - "sha256": "304be224952dbea7000cda6223b2978b3eefdf2e3749032c3b381a213c8d9c5e", - "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jre_arm_linux_hotspot_15.0.2_7.tar.gz", - "version": "15.0.2" - }, - "armv7l": { - "build": "7", - "sha256": "304be224952dbea7000cda6223b2978b3eefdf2e3749032c3b381a213c8d9c5e", - "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jre_arm_linux_hotspot_15.0.2_7.tar.gz", - "version": "15.0.2" - }, - "packageType": "jre", - "powerpc64le": { - "build": "7", - "sha256": "dc2480948ac3e6b192fb77c9d37227510f44482e52a330002d6e7497a62a7d67", - "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jre_ppc64le_linux_hotspot_15.0.2_7.tar.gz", - "version": "15.0.2" - }, - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "31af7efdb1cc0ffd001bc145c3d255266889ad6b502133283ae8bf233d11334c", - "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jre_x64_linux_hotspot_15.0.2_7.tar.gz", - "version": "15.0.2" - } - }, - "openj9": { - "aarch64": { - "build": "7", - "sha256": "37492012e75d75021dfb2b25fe5cc73664c03fee85532cec30ce4f5a4e5389c6", - "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7_openj9-0.24.0/OpenJDK15U-jre_aarch64_linux_openj9_15.0.2_7_openj9-0.24.0.tar.gz", - "version": "15.0.2-ea" - }, - "packageType": "jre", - "powerpc64le": { - "build": "7", - "sha256": "79f657141f1cd0e4a70d041b9215b8b00140d479ce73ed71bc4f3dd015157958", - "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7_openj9-0.24.0/OpenJDK15U-jre_ppc64le_linux_openj9_15.0.2_7_openj9-0.24.0.tar.gz", - "version": "15.0.2" - }, - "vmType": "openj9", - "x86_64": { - "build": "7", - "sha256": "a4ae1b7275fcfd6d87a3387edacc8e353dc95ee44f00ca5a348ea90331ec2084", - "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7_openj9-0.24.0/OpenJDK15U-jre_x64_linux_openj9_15.0.2_7_openj9-0.24.0.tar.gz", - "version": "15.0.2" - } - } - } - }, - "mac": { - "jdk": { - "hotspot": { - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "d358a7ff03905282348c6c80562a4da2e04eb377b60ad2152be4c90f8d580b7f", - "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_x64_mac_hotspot_15.0.2_7.tar.gz", - "version": "15.0.2" - } - }, - "openj9": { - "packageType": "jdk", - "vmType": "openj9", - "x86_64": { - "build": "7", - "sha256": "1336ae5529af3a0e35ae569e4188944831aeed7080a482f2490fc619380cbe53", - "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7_openj9-0.24.0/OpenJDK15U-jdk_x64_mac_openj9_15.0.2_7_openj9-0.24.0.tar.gz", - "version": "15.0.2" - } - } - }, - "jre": { - "hotspot": { - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "6a7150fa3ca8277394ff5bae6f56a70f61d2144a5dbbea4f008d86a3e5498795", - "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jre_x64_mac_hotspot_15.0.2_7.tar.gz", - "version": "15.0.2" - } - }, - "openj9": { - "packageType": "jre", - "vmType": "openj9", - "x86_64": { - "build": "7", - "sha256": "2c0ba5e66764d660037343db4bf32f1ed75ad27661e54e9a4df23d40cae448b0", - "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7_openj9-0.24.0/OpenJDK15U-jre_x64_mac_openj9_15.0.2_7_openj9-0.24.0.tar.gz", - "version": "15.0.2" - } - } - } - } - }, - "openjdk16": { - "alpine_linux": { - "jdk": { - "hotspot": { - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "85788b1a1f470ca7ddc576028f29abbc3bc3b08f82dd811a3e24371689d7dc0f", - "url": "https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_x64_alpine-linux_hotspot_16.0.2_7.tar.gz", - "version": "16.0.2" - } - } - }, - "jre": { - "hotspot": { - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "9", - "sha256": "5f10ffc12056b735f5fe505ec6c481fff94de27e80c1d77ea9f9e2830669cc1d", - "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16.0.1%2B9/OpenJDK16U-jre_x64_alpine-linux_hotspot_16.0.1_9.tar.gz", - "version": "16.0.1" - } - } - } - }, - "linux": { - "jdk": { - "hotspot": { - "aarch64": { - "build": "7", - "sha256": "cb77d9d126f97898dfdc8b5fb694d1e0e5d93d13a0a6cb2aeda76f8635384340", - "url": "https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_aarch64_linux_hotspot_16.0.2_7.tar.gz", - "version": "16.0.2" - }, - "armv6l": { - "build": "7", - "sha256": "7721ef81416af8122a28448f3d661eb4bda40a9f78d400e4ecc55b58e627a00c", - "url": "https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_arm_linux_hotspot_16.0.2_7.tar.gz", - "version": "16.0.2" - }, - "armv7l": { - "build": "7", - "sha256": "7721ef81416af8122a28448f3d661eb4bda40a9f78d400e4ecc55b58e627a00c", - "url": "https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_arm_linux_hotspot_16.0.2_7.tar.gz", - "version": "16.0.2" - }, - "packageType": "jdk", - "powerpc64le": { - "build": "7", - "sha256": "36ebe6c72f2fc19b8b17371f731390e15fa3aab08c28b55b9a8b71d0a578adc9", - "url": "https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_ppc64le_linux_hotspot_16.0.2_7.tar.gz", - "version": "16.0.2" - }, - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "323d6d7474a359a28eff7ddd0df8e65bd61554a8ed12ef42fd9365349e573c2c", - "url": "https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz", - "version": "16.0.2" - } - }, - "openj9": { - "aarch64": { - "build": "9", - "sha256": "abc56cd266b4acc96cc700b166ad016907dac97d7a593bd5c369d54efc4b4acd", - "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16.0.1%2B9_openj9-0.26.0/OpenJDK16U-jdk_aarch64_linux_openj9_16.0.1_9_openj9-0.26.0.tar.gz", - "version": "16.0.1-ea" - }, - "packageType": "jdk", - "powerpc64le": { - "build": "9", - "sha256": "9200acc9ddb6b0d4facf3ea44b17d3a10035316a379b4b148382b25cacf2bb83", - "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16.0.1%2B9_openj9-0.26.0/OpenJDK16U-jdk_ppc64le_linux_openj9_16.0.1_9_openj9-0.26.0.tar.gz", - "version": "16.0.1" - }, - "vmType": "openj9", - "x86_64": { - "build": "9", - "sha256": "7395aaa479a7410bbe5bd5efc43d2669718c61ba146b06657315dbd467b98bf1", - "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16.0.1%2B9_openj9-0.26.0/OpenJDK16U-jdk_x64_linux_openj9_16.0.1_9_openj9-0.26.0.tar.gz", - "version": "16.0.1" - } - } - }, - "jre": { - "hotspot": { - "aarch64": { - "build": "9", - "sha256": "4e47f1cbf46190727be74cd73445ec2b693f5ba4a74542c554d6b3285811cab5", - "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16.0.1%2B9/OpenJDK16U-jre_aarch64_linux_hotspot_16.0.1_9.tar.gz", - "version": "16.0.1" - }, - "armv6l": { - "build": "9", - "sha256": "c1f88f3ce955cb2e9a4236a916cc6660ef55231d29c4390b1a4398ebbca358b7", - "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16.0.1%2B9/OpenJDK16U-jre_arm_linux_hotspot_16.0.1_9.tar.gz", - "version": "16.0.1" - }, - "armv7l": { - "build": "9", - "sha256": "c1f88f3ce955cb2e9a4236a916cc6660ef55231d29c4390b1a4398ebbca358b7", - "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16.0.1%2B9/OpenJDK16U-jre_arm_linux_hotspot_16.0.1_9.tar.gz", - "version": "16.0.1" - }, - "packageType": "jre", - "powerpc64le": { - "build": "9", - "sha256": "495805e2e9bcabeac0d8271623b6c92604440608286f4ce411ea48f582854930", - "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16.0.1%2B9/OpenJDK16U-jre_ppc64le_linux_hotspot_16.0.1_9.tar.gz", - "version": "16.0.1" - }, - "vmType": "hotspot", - "x86_64": { - "build": "9", - "sha256": "5eca19d406c6d130e9c3a4b932b9cb0a6e9cd45932450668c3e911bded4bcf40", - "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16.0.1%2B9/OpenJDK16U-jre_x64_linux_hotspot_16.0.1_9.tar.gz", - "version": "16.0.1" - } - }, - "openj9": { - "aarch64": { - "build": "9", - "sha256": "01d8337d1069b8bfdcdf096b30cc24d1df42ffeede676da99fed77bef2670454", - "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16.0.1%2B9_openj9-0.26.0/OpenJDK16U-jre_aarch64_linux_openj9_16.0.1_9_openj9-0.26.0.tar.gz", - "version": "16.0.1-ea" - }, - "packageType": "jre", - "powerpc64le": { - "build": "9", - "sha256": "f9734c100f0e85ac63b9f9327b77135221a905e1d743cd9cd4edc0ea0e0fe8d9", - "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16.0.1%2B9_openj9-0.26.0/OpenJDK16U-jre_ppc64le_linux_openj9_16.0.1_9_openj9-0.26.0.tar.gz", - "version": "16.0.1" - }, - "vmType": "openj9", - "x86_64": { - "build": "9", - "sha256": "fab572dd1a2ef00fd18ad4f5a4c373d0cf140045e61f9104cd5b8dbf6b3a517d", - "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16.0.1%2B9_openj9-0.26.0/OpenJDK16U-jre_x64_linux_openj9_16.0.1_9_openj9-0.26.0.tar.gz", - "version": "16.0.1" - } - } - } - }, - "mac": { - "jdk": { - "hotspot": { - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "27975d9e695cfbb93861540926f9f7bcac973a254ceecbee549706a99cbbdf95", - "url": "https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_x64_mac_hotspot_16.0.2_7.tar.gz", - "version": "16.0.2" - } - }, - "openj9": { - "packageType": "jdk", - "vmType": "openj9", - "x86_64": { - "build": "9", - "sha256": "6d4241c6ede2167fb71bd57f7a770a74564ee007c06bcae98e1abc3c1de4756f", - "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16.0.1%2B9_openj9-0.26.0/OpenJDK16U-jdk_x64_mac_openj9_16.0.1_9_openj9-0.26.0.tar.gz", - "version": "16.0.1" - } - } - }, - "jre": { - "hotspot": { - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "9", - "sha256": "33eeccbeea75e70b09610ba12e9591386a0e42248525b8358c9ae683bce82779", - "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16.0.1%2B9/OpenJDK16U-jre_x64_mac_hotspot_16.0.1_9.tar.gz", - "version": "16.0.1" - } - }, - "openj9": { - "packageType": "jre", - "vmType": "openj9", - "x86_64": { - "build": "9", - "sha256": "f57a6f04cf21a8470bb6f9488c57031d89db73c8b24997d74812855372f4e6b8", - "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16.0.1%2B9_openj9-0.26.0/OpenJDK16U-jre_x64_mac_openj9_16.0.1_9_openj9-0.26.0.tar.gz", - "version": "16.0.1" - } - } - } - } - }, - "openjdk17": { - "alpine_linux": { - "jdk": { - "hotspot": { - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "b6edac2fa669876ef16b4895b36b61d01066626e7a69feba2acc19760c8d18cb", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jdk_x64_alpine-linux_hotspot_17.0.7_7.tar.gz", - "version": "17.0.7" - } - } - }, - "jre": { - "hotspot": { - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "711f837bacf8222dee9e8cd7f39941a4a0acf869243f03e6038ca3ba189f66ca", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jre_x64_alpine-linux_hotspot_17.0.7_7.tar.gz", - "version": "17.0.7" - } - } - } - }, - "linux": { - "jdk": { - "hotspot": { - "aarch64": { - "build": "7", - "sha256": "0084272404b89442871e0a1f112779844090532978ad4d4191b8d03fc6adfade", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jdk_aarch64_linux_hotspot_17.0.7_7.tar.gz", - "version": "17.0.7" - }, - "armv6l": { - "build": "7", - "sha256": "e7a84c3e59704588510d7e6cce1f732f397b54a3b558c521912a18a1b4d0abdc", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jdk_arm_linux_hotspot_17.0.7_7.tar.gz", - "version": "17.0.7" - }, - "armv7l": { - "build": "7", - "sha256": "e7a84c3e59704588510d7e6cce1f732f397b54a3b558c521912a18a1b4d0abdc", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jdk_arm_linux_hotspot_17.0.7_7.tar.gz", - "version": "17.0.7" - }, - "packageType": "jdk", - "powerpc64le": { - "build": "7", - "sha256": "8f4366ff1eddb548b1744cd82a1a56ceee60abebbcbad446bfb3ead7ac0f0f85", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jdk_ppc64le_linux_hotspot_17.0.7_7.tar.gz", - "version": "17.0.7" - }, - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "e9458b38e97358850902c2936a1bb5f35f6cffc59da9fcd28c63eab8dbbfbc3b", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jdk_x64_linux_hotspot_17.0.7_7.tar.gz", - "version": "17.0.7" - } - } - }, - "jre": { - "hotspot": { - "aarch64": { - "build": "7", - "sha256": "2ff6a4fd1fa354047c93ba8c3179967156162f27bd683aee1f6e52a480bcbe6a", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jre_aarch64_linux_hotspot_17.0.7_7.tar.gz", - "version": "17.0.7" - }, - "armv6l": { - "build": "7", - "sha256": "5b0401199c7c9163b8395ebf25195ed395fec7b7ef7158c36302420cf993825a", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jre_arm_linux_hotspot_17.0.7_7.tar.gz", - "version": "17.0.7" - }, - "armv7l": { - "build": "7", - "sha256": "5b0401199c7c9163b8395ebf25195ed395fec7b7ef7158c36302420cf993825a", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jre_arm_linux_hotspot_17.0.7_7.tar.gz", - "version": "17.0.7" - }, - "packageType": "jre", - "powerpc64le": { - "build": "7", - "sha256": "cc25e74c0817cd4d943bba056b256b86e0e9148bf41d7600c5ec2e1eadb2e470", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jre_ppc64le_linux_hotspot_17.0.7_7.tar.gz", - "version": "17.0.7" - }, - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "bb025133b96266f6415d5084bb9b260340a813968007f1d2d14690f20bd021ca", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jre_x64_linux_hotspot_17.0.7_7.tar.gz", - "version": "17.0.7" - } - } - } - }, - "mac": { - "jdk": { - "hotspot": { - "aarch64": { - "build": "7", - "sha256": "1d6aeb55b47341e8ec33cc1644d58b88dfdcce17aa003a858baa7460550e6ff9", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jdk_aarch64_mac_hotspot_17.0.7_7.tar.gz", - "version": "17.0.7" - }, - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "50d0e9840113c93916418068ba6c845f1a72ed0dab80a8a1f7977b0e658b65fb", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jdk_x64_mac_hotspot_17.0.7_7.tar.gz", - "version": "17.0.7" - } - } - }, - "jre": { - "hotspot": { - "aarch64": { - "build": "7", - "sha256": "625d070a297a3c856badbaa5c65adaaa1adb3ea3813363fb8335c47709b69140", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jre_aarch64_mac_hotspot_17.0.7_7.tar.gz", - "version": "17.0.7" - }, - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "62559a927a8dbac2ea1d7879f590a62fea87d61bfaa92894e578d2045b8d921b", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jre_x64_mac_hotspot_17.0.7_7.tar.gz", - "version": "17.0.7" - } - } - } - } - }, - "openjdk8": { - "alpine_linux": { - "jdk": { - "hotspot": { - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "cfdf8e07c8eeb087b7a2895b90fc0a19986bcff85006f1e2b708e3964909aa8e", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u372-b07/OpenJDK8U-jdk_x64_alpine-linux_hotspot_8u372b07.tar.gz", - "version": "8.0.372" - } - } - }, - "jre": { - "hotspot": { - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "95d8cb8b5375ec00a064ed728eb60d925d44c1a79fe92f6ca7385b5863d4f78c", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u372-b07/OpenJDK8U-jre_x64_alpine-linux_hotspot_8u372b07.tar.gz", - "version": "8.0.372" - } - } - } - }, - "linux": { - "jdk": { - "hotspot": { - "aarch64": { - "build": "7", - "sha256": "195808eb42ab73535c84de05188914a52a47c1ac784e4bf66de95fe1fd315a5a", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u372-b07/OpenJDK8U-jdk_aarch64_linux_hotspot_8u372b07.tar.gz", - "version": "8.0.372" - }, - "armv6l": { - "build": "7", - "sha256": "3f4848700a4bf856d3c138dc9c2b305b978879c8fbef5aa7df34a7c2fe1b64b8", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u372-b07/OpenJDK8U-jdk_arm_linux_hotspot_8u372b07.tar.gz", - "version": "8.0.372" - }, - "armv7l": { - "build": "7", - "sha256": "3f4848700a4bf856d3c138dc9c2b305b978879c8fbef5aa7df34a7c2fe1b64b8", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u372-b07/OpenJDK8U-jdk_arm_linux_hotspot_8u372b07.tar.gz", - "version": "8.0.372" - }, - "packageType": "jdk", - "powerpc64le": { - "build": "7", - "sha256": "bb85303848fe402d4f1004f748f80ccb39cb11f356f50a513555d1083c3913b8", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u372-b07/OpenJDK8U-jdk_ppc64le_linux_hotspot_8u372b07.tar.gz", - "version": "8.0.372" - }, - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "78a0b3547d6f3d46227f2ad8c774248425f20f1cd63f399b713f0cdde2cc376c", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u372-b07/OpenJDK8U-jdk_x64_linux_hotspot_8u372b07.tar.gz", - "version": "8.0.372" - } - }, - "openj9": { - "aarch64": { - "build": "10", - "sha256": "b168245ddc18b85135c15ed6baea5cbcc06192b49af04dcfa698458373efc061", - "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10_openj9-0.26.0/OpenJDK8U-jdk_aarch64_linux_openj9_8u292b10_openj9-0.26.0.tar.gz", - "version": "8.0.292-ea" - }, - "packageType": "jdk", - "powerpc64le": { - "build": "10", - "sha256": "bc88be757a884b90a2bb91365b7e922c0e7d0fea991cd69d1f74c59b2257a4b5", - "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10_openj9-0.26.0/OpenJDK8U-jdk_ppc64le_linux_openj9_8u292b10_openj9-0.26.0.tar.gz", - "version": "8.0.292" - }, - "vmType": "openj9", - "x86_64": { - "build": "10", - "sha256": "06d6c9421778575cf59d50f69b7ac6a7bb237485b3a3c2f89cfb61a056c7b2de", - "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10_openj9-0.26.0/OpenJDK8U-jdk_x64_linux_openj9_8u292b10_openj9-0.26.0.tar.gz", - "version": "8.0.292" - } - } - }, - "jre": { - "hotspot": { - "aarch64": { - "build": "7", - "sha256": "f8e440273c8feb3fcfaca88ba18fec291deae18a548adde8a37cd1db08107b95", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u372-b07/OpenJDK8U-jre_aarch64_linux_hotspot_8u372b07.tar.gz", - "version": "8.0.372" - }, - "armv6l": { - "build": "7", - "sha256": "e58e017012838ae4f0db78293e3246cc09958e6ea9a2393c5947ec003bf736dd", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u372-b07/OpenJDK8U-jre_arm_linux_hotspot_8u372b07.tar.gz", - "version": "8.0.372" - }, - "armv7l": { - "build": "7", - "sha256": "e58e017012838ae4f0db78293e3246cc09958e6ea9a2393c5947ec003bf736dd", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u372-b07/OpenJDK8U-jre_arm_linux_hotspot_8u372b07.tar.gz", - "version": "8.0.372" - }, - "packageType": "jre", - "powerpc64le": { - "build": "7", - "sha256": "ba5f8141a16722e39576bf42b69d2b8ebf95fc2c05441e3200f609af4dd9f1ea", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u372-b07/OpenJDK8U-jre_ppc64le_linux_hotspot_8u372b07.tar.gz", - "version": "8.0.372" - }, - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "b6fdfe32085a884c11b31f66aa67ac62811df7112fb6fb08beea61376a86fbb4", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u372-b07/OpenJDK8U-jre_x64_linux_hotspot_8u372b07.tar.gz", - "version": "8.0.372" - } - }, - "openj9": { - "aarch64": { - "build": "10", - "sha256": "f87f90673e25c3ce9e868e96a6059b22665f12d05e389813f75dfbc95d970393", - "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10_openj9-0.26.0/OpenJDK8U-jre_aarch64_linux_openj9_8u292b10_openj9-0.26.0.tar.gz", - "version": "8.0.292-ea" - }, - "packageType": "jre", - "powerpc64le": { - "build": "10", - "sha256": "b75216f7905cff08432a9200a78a2694a4074279f79d859d27f82a998ca1b1e9", - "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10_openj9-0.26.0/OpenJDK8U-jre_ppc64le_linux_openj9_8u292b10_openj9-0.26.0.tar.gz", - "version": "8.0.292" - }, - "vmType": "openj9", - "x86_64": { - "build": "10", - "sha256": "6d5b67979e0935febe893895b622647bf8a59df6093ae57074db11d2ac9373ea", - "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10_openj9-0.26.0/OpenJDK8U-jre_x64_linux_openj9_8u292b10_openj9-0.26.0.tar.gz", - "version": "8.0.292" - } - } - } - }, - "mac": { - "jdk": { - "hotspot": { - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "9c33db312cc46b6bfe705770fdc5c08edb7d790ba70be4e8b12a98e79da5f4a1", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u372-b07/OpenJDK8U-jdk_x64_mac_hotspot_8u372b07.tar.gz", - "version": "8.0.372" - } - }, - "openj9": { - "packageType": "jdk", - "vmType": "openj9", - "x86_64": { - "build": "10", - "sha256": "d262bc226895e80b7e80d61905e65fe043ca0a3e3b930f7b88ddfacb8835e939", - "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10_openj9-0.26.0/OpenJDK8U-jdk_x64_mac_openj9_8u292b10_openj9-0.26.0.tar.gz", - "version": "8.0.292" - } - } - }, - "jre": { - "hotspot": { - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "6c876ea7bfa778ae78ec5a976e557b2b981a592a3639eb0d3dc3c8d3dda8d321", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u372-b07/OpenJDK8U-jre_x64_mac_hotspot_8u372b07.tar.gz", - "version": "8.0.372" - } - }, - "openj9": { - "packageType": "jre", - "vmType": "openj9", - "x86_64": { - "build": "10", - "sha256": "50cbc5ef48d0167d649d3ba2c2b8d71553541bffb98914418f4a26e0c5f69aca", - "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10_openj9-0.26.0/OpenJDK8U-jre_x64_mac_openj9_8u292b10_openj9-0.26.0.tar.gz", - "version": "8.0.292" - } - } - } - } - } -} diff --git a/pkgs/by-name/ja/java/java-packages.nix b/pkgs/by-name/ja/java/java-packages.nix deleted file mode 100644 index 090a1ce..0000000 --- a/pkgs/by-name/ja/java/java-packages.nix +++ /dev/null @@ -1,250 +0,0 @@ -{ pkgs }: - -with pkgs; - -let - openjfx11 = callPackage ./openjdk/openjfx/11.nix { }; - openjfx15 = callPackage ./openjdk/openjfx/15.nix { }; - openjfx17 = callPackage ./openjdk/openjfx/17.nix { }; - openjfx19 = callPackage ./openjdk/openjfx/19.nix { }; - openjfx20 = callPackage ./openjdk/openjfx/20.nix { }; - openjfx21 = callPackage ./openjdk/openjfx/21.nix { }; - openjfx22 = callPackage ./openjdk/openjfx/22.nix { }; - -in { - inherit openjfx11 openjfx15 openjfx17 openjfx19 openjfx20 openjfx21 openjfx22; - - compiler = let - - gnomeArgs = { - inherit (gnome2) GConf gnome_vfs; - }; - - 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; - - 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; - - 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; }; - }; - - 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-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-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-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 { }; - - openjdk8-bootstrap = mkBootstrap adoptopenjdk-8 - ./openjdk/bootstrap.nix - { version = "8"; }; - - 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; - }); - - openjdk14-bootstrap = mkBootstrap adoptopenjdk-14 - ./openjdk/13.nix - (bootstrapArgs // { - inherit openjdk13-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; - }); - - openjdk17-bootstrap = mkBootstrap adoptopenjdk-17 - ./openjdk/16.nix - (bootstrapArgs // { - inherit openjdk16-bootstrap; - }); - - openjdk18-bootstrap = mkBootstrap adoptopenjdk-17 - ./openjdk/17.nix - (bootstrapArgs // { - inherit openjdk17-bootstrap; - }); - - openjdk8 = mkOpenjdk - ./openjdk/8.nix - ./zulu/8.nix - { }; - - 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 */ - stdenv = gcc8Stdenv; - openjfx = openjfx11; - }; - - openjdk13 = mkOpenjdkLinuxOnly ./openjdk/13.nix { - inherit openjdk13-bootstrap; - openjfx = openjfx11; - }; - - openjdk14 = mkOpenjdkLinuxOnly ./openjdk/14.nix { - inherit openjdk14-bootstrap; - openjfx = openjfx11; - }; - - openjdk15 = mkOpenjdkLinuxOnly ./openjdk/15.nix { - inherit openjdk15-bootstrap; - openjfx = openjfx15; - }; - - openjdk16 = mkOpenjdkLinuxOnly ./openjdk/16.nix { - inherit openjdk16-bootstrap; - openjfx = openjfx15; - }; - - openjdk17 = mkOpenjdk - ./openjdk/17.nix - ./zulu/17.nix - { - inherit openjdk17-bootstrap; - openjfx = openjfx17; - }; - - openjdk18 = mkOpenjdk - ./openjdk/18.nix - ./zulu/18.nix - { - inherit openjdk18-bootstrap; - openjfx = openjfx17; - }; - - 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-bootstrap = temurin-bin.jdk-20; - openjfx = openjfx20; - }; - - 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-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 - ) {}); - - 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'"; - mavenfod = throw "'mavenfod' is renamed to/replaced by 'maven.buildMavenPackage'"; -} diff --git a/pkgs/by-name/ja/java/openjdk/11.nix b/pkgs/by-name/ja/java/openjdk/11.nix deleted file mode 100644 index e9b8961..0000000 --- a/pkgs/by-name/ja/java/openjdk/11.nix +++ /dev/null @@ -1,171 +0,0 @@ -{ 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 - major = "11"; - minor = "0"; - update = "19"; - build = "7"; - - # when building a headless jdk, also bootstrap it with a headless jdk - openjdk-bootstrap = openjdk11-bootstrap.override { gtkSupport = !headless; }; - - openjdk = stdenv.mkDerivation rec { - pname = "openjdk" + lib.optionalString headless "-headless"; - version = "${major}.${minor}.${update}+${build}"; - - src = fetchFromGitHub { - owner = "openjdk"; - repo = "jdk${major}u"; - rev = "jdk-${version}"; - 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 - ]; - - patches = [ - ./fix-java-home-jdk10.patch - ./read-truststore-from-env-jdk10.patch - ./currency-date-range-jdk10.patch - ./increase-javadoc-heap.patch - ./fix-library-path-jdk11.patch - - # Fix build for gnumake-4.4.1: - # https://github.com/openjdk/jdk/pull/12992 - (fetchpatch { - name = "gnumake-4.4.1"; - url = "https://github.com/openjdk/jdk/commit/9341d135b855cc208d48e47d30cd90aafa354c36.patch"; - hash = "sha256-Qcm3ZmGCOYLZcskNjj7DYR85R4v07vYvvavrVOYL8vg="; - }) - ] ++ 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" - ++ lib.optional headless "--enable-headless-only" - ++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}"; - - separateDebugInfo = true; - - # Workaround for - # `cc1plus: error: '-Wformat-security' ignored without '-Wformat' [-Werror=format-security]` - # 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" - ]); - - # -j flag is explicitly rejected by the build system: - # Error: 'make -jN' is not supported, use 'make JOBS=N' - # Note: it does not make build sequential. Build system - # still runs in parallel. - enableParallelBuilding = false; - - buildFlags = [ "all" ]; - - installPhase = '' - mkdir -p $out/lib - - mv build/*/images/jdk $out/lib/openjdk - - # Remove some broken manpages. - rm -rf $out/lib/openjdk/man/ja* - - # Mirror some stuff in top-level. - mkdir -p $out/share - ln -s $out/lib/openjdk/include $out/include - ln -s $out/lib/openjdk/man $out/share/man - ln -s $out/lib/openjdk/lib/src.zip $out/lib/src.zip - - # jni.h expects jni_md.h to be in the header search path. - ln -s $out/include/linux/*_md.h $out/include/ - - # Remove crap from the installation. - rm -rf $out/lib/openjdk/demo - ${lib.optionalString headless '' - rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so - ''} - - ln -s $out/lib/openjdk/bin $out/bin - ''; - - preFixup = '' - # Propagate the setJavaClassPath setup hook so that any package - # that depends on the JDK has $CLASSPATH set up properly. - mkdir -p $out/nix-support - #TODO or printWords? cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040 - echo -n "${setJavaClassPath}" > $out/nix-support/propagated-build-inputs - - # Set JAVA_HOME automatically. - mkdir -p $out/nix-support - cat < $out/nix-support/setup-hook - if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi - EOF - ''; - - postFixup = '' - # Build the set of output library directories to rpath against - LIBDIRS="" - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS" - done - # Add the local library paths to remove dependencies on the bootstrap - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - OUTPUTDIR=$(eval echo \$$output) - BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) - echo "$BINLIBS" | while read i; do - patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true - patchelf --shrink-rpath "$i" || true - done - done - ''; - - disallowedReferences = [ openjdk-bootstrap ]; - - meta = import ./meta.nix lib version; - - passthru = { - architecture = ""; - home = "${openjdk}/lib/openjdk"; - inherit gtk3; - }; - }; -in openjdk diff --git a/pkgs/by-name/ja/java/openjdk/12.nix b/pkgs/by-name/ja/java/openjdk/12.nix deleted file mode 100644 index ab0696e..0000000 --- a/pkgs/by-name/ja/java/openjdk/12.nix +++ /dev/null @@ -1,172 +0,0 @@ -{ 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 - major = "12"; - update = ".0.2"; - build = "ga"; - - # when building a headless jdk, also bootstrap it with a headless jdk - openjdk-bootstrap = openjdk11-bootstrap.override { gtkSupport = !headless; }; - - openjdk = stdenv.mkDerivation rec { - pname = "openjdk" + lib.optionalString headless "-headless"; - version = "${major}${update}-${build}"; - - src = fetchurl { - url = "http://hg.openjdk.java.net/jdk-updates/jdk${major}u/archive/jdk-${version}.tar.gz"; - 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 - ]; - - patches = [ - ./fix-java-home-jdk10.patch - ./read-truststore-from-env-jdk10.patch - ./currency-date-range-jdk10.patch - ./increase-javadoc-heap.patch - # -Wformat etc. are stricter in newer gccs, per - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79677 - # so grab the work-around from - # https://src.fedoraproject.org/rpms/java-openjdk/pull-request/24 - (fetchurl { - url = "https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch"; - sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r"; - }) - # Fix gnumake 4.3 incompatibility - (fetchpatch { - url = "https://github.com/openjdk/panama-foreign/commit/af5c725b8109ce83fc04ef0f8bf6aaf0b50c0441.patch"; - sha256 = "0ja84kih5wkjn58pml53s59qnavb1z92dc88cbgw7vcyqwc1gs0h"; - }) - ] ++ 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" - ++ lib.optional headless "--enable-headless-only" - ++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}"; - - separateDebugInfo = true; - - 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" - ]; - - # -j flag is explicitly rejected by the build system: - # Error: 'make -jN' is not supported, use 'make JOBS=N' - # Note: it does not make build sequential. Build system - # still runs in parallel. - enableParallelBuilding = false; - - buildFlags = [ "all" ]; - - postBuild = '' - cd build/linux* - make images - cd - - ''; - - installPhase = '' - mkdir -p $out/lib - - mv build/*/images/jdk $out/lib/openjdk - - # Remove some broken manpages. - rm -rf $out/lib/openjdk/man/ja* - - # Mirror some stuff in top-level. - mkdir -p $out/share - ln -s $out/lib/openjdk/include $out/include - ln -s $out/lib/openjdk/man $out/share/man - - # jni.h expects jni_md.h to be in the header search path. - ln -s $out/include/linux/*_md.h $out/include/ - - # Remove crap from the installation. - rm -rf $out/lib/openjdk/demo - ${lib.optionalString headless '' - rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so - ''} - - ln -s $out/lib/openjdk/bin $out/bin - ''; - - preFixup = '' - # Propagate the setJavaClassPath setup hook so that any package - # that depends on the JDK has $CLASSPATH set up properly. - mkdir -p $out/nix-support - #TODO or printWords? cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040 - echo -n "${setJavaClassPath}" > $out/nix-support/propagated-build-inputs - - # Set JAVA_HOME automatically. - mkdir -p $out/nix-support - cat < $out/nix-support/setup-hook - if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi - EOF - ''; - - postFixup = '' - # Build the set of output library directories to rpath against - LIBDIRS="" - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS" - done - # Add the local library paths to remove dependencies on the bootstrap - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - OUTPUTDIR=$(eval echo \$$output) - BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) - echo "$BINLIBS" | while read i; do - patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true - patchelf --shrink-rpath "$i" || true - done - done - ''; - - disallowedReferences = [ openjdk-bootstrap ]; - - meta = import ./meta.nix lib version; - - passthru = { - architecture = ""; - home = "${openjdk}/lib/openjdk"; - inherit gtk3; - }; - }; -in openjdk diff --git a/pkgs/by-name/ja/java/openjdk/13.nix b/pkgs/by-name/ja/java/openjdk/13.nix deleted file mode 100644 index 5d5d9f7..0000000 --- a/pkgs/by-name/ja/java/openjdk/13.nix +++ /dev/null @@ -1,177 +0,0 @@ -{ 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 - major = "13"; - update = ".0.2"; - build = "-ga"; - - # when building a headless jdk, also bootstrap it with a headless jdk - openjdk-bootstrap = openjdk13-bootstrap.override { gtkSupport = !headless; }; - - openjdk = stdenv.mkDerivation rec { - pname = "openjdk" + lib.optionalString headless "-headless"; - version = "${major}${update}${build}"; - - src = fetchurl { - url = "http://hg.openjdk.java.net/jdk-updates/jdk${major}u/archive/jdk-${version}.tar.gz"; - 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 - ]; - - patches = [ - ./fix-java-home-jdk10.patch - ./read-truststore-from-env-jdk10.patch - ./currency-date-range-jdk10.patch - ./increase-javadoc-heap-jdk13.patch - # -Wformat etc. are stricter in newer gccs, per - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79677 - # so grab the work-around from - # https://src.fedoraproject.org/rpms/java-openjdk/pull-request/24 - (fetchurl { - url = "https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch"; - sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r"; - }) - # Fix gnumake 4.3 incompatibility - (fetchpatch { - url = "https://github.com/openjdk/panama-foreign/commit/af5c725b8109ce83fc04ef0f8bf6aaf0b50c0441.patch"; - sha256 = "0ja84kih5wkjn58pml53s59qnavb1z92dc88cbgw7vcyqwc1gs0h"; - }) - ] ++ lib.optionals (!headless && enableGnome2) [ - ./swing-use-gtk-jdk13.patch - ]; - - prePatch = '' - chmod +x configure - patchShebangs --build configure - ''; - - # 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"]; - - 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}"; - - 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" - ]); - - # -j flag is explicitly rejected by the build system: - # Error: 'make -jN' is not supported, use 'make JOBS=N' - # Note: it does not make build sequential. Build system - # still runs in parallel. - enableParallelBuilding = false; - - buildFlags = [ "all" ]; - - postBuild = '' - cd build/linux* - make images - cd - - ''; - - installPhase = '' - mkdir -p $out/lib - - mv build/*/images/jdk $out/lib/openjdk - - # Remove some broken manpages. - rm -rf $out/lib/openjdk/man/ja* - - # Mirror some stuff in top-level. - mkdir -p $out/share - ln -s $out/lib/openjdk/include $out/include - ln -s $out/lib/openjdk/man $out/share/man - - # jni.h expects jni_md.h to be in the header search path. - ln -s $out/include/linux/*_md.h $out/include/ - - # Remove crap from the installation. - rm -rf $out/lib/openjdk/demo - ${lib.optionalString headless '' - rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so - ''} - - ln -s $out/lib/openjdk/bin $out/bin - ''; - - preFixup = '' - # Propagate the setJavaClassPath setup hook so that any package - # that depends on the JDK has $CLASSPATH set up properly. - mkdir -p $out/nix-support - #TODO or printWords? cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040 - echo -n "${setJavaClassPath}" > $out/nix-support/propagated-build-inputs - - # Set JAVA_HOME automatically. - mkdir -p $out/nix-support - cat < $out/nix-support/setup-hook - if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi - EOF - ''; - - postFixup = '' - # Build the set of output library directories to rpath against - LIBDIRS="" - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS" - done - # Add the local library paths to remove dependencies on the bootstrap - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - OUTPUTDIR=$(eval echo \$$output) - BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) - echo "$BINLIBS" | while read i; do - patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true - patchelf --shrink-rpath "$i" || true - done - done - ''; - - disallowedReferences = [ openjdk-bootstrap ]; - - meta = (import ./meta.nix lib version) // { broken = true; }; - - passthru = { - architecture = ""; - home = "${openjdk}/lib/openjdk"; - inherit gtk3; - }; - }; -in openjdk diff --git a/pkgs/by-name/ja/java/openjdk/14.nix b/pkgs/by-name/ja/java/openjdk/14.nix deleted file mode 100644 index 348fd39..0000000 --- a/pkgs/by-name/ja/java/openjdk/14.nix +++ /dev/null @@ -1,173 +0,0 @@ -{ 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 - major = "14"; - update = ".0.2"; - build = "-ga"; - - # when building a headless jdk, also bootstrap it with a headless jdk - openjdk-bootstrap = openjdk14-bootstrap.override { gtkSupport = !headless; }; - - openjdk = stdenv.mkDerivation rec { - pname = "openjdk" + lib.optionalString headless "-headless"; - version = "${major}${update}${build}"; - - src = fetchurl { - url = "https://hg.openjdk.java.net/jdk-updates/jdk${major}u/archive/jdk-${version}.tar.gz"; - 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 - ]; - - patches = [ - ./fix-java-home-jdk10.patch - ./read-truststore-from-env-jdk10.patch - ./currency-date-range-jdk10.patch - ./increase-javadoc-heap-jdk13.patch - # -Wformat etc. are stricter in newer gccs, per - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79677 - # so grab the work-around from - # https://src.fedoraproject.org/rpms/java-openjdk/pull-request/24 - (fetchurl { - 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 - ]; - - prePatch = '' - chmod +x configure - patchShebangs --build configure - ''; - - # 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"]; - - 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}"; - - 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" - ]); - - # -j flag is explicitly rejected by the build system: - # Error: 'make -jN' is not supported, use 'make JOBS=N' - # Note: it does not make build sequential. Build system - # still runs in parallel. - enableParallelBuilding = false; - - buildFlags = [ "all" ]; - - postBuild = '' - cd build/linux* - make images - cd - - ''; - - installPhase = '' - mkdir -p $out/lib - - mv build/*/images/jdk $out/lib/openjdk - - # Remove some broken manpages. - rm -rf $out/lib/openjdk/man/ja* - - # Mirror some stuff in top-level. - mkdir -p $out/share - ln -s $out/lib/openjdk/include $out/include - ln -s $out/lib/openjdk/man $out/share/man - ln -s $out/lib/openjdk/lib/src.zip $out/lib/src.zip - - # jni.h expects jni_md.h to be in the header search path. - ln -s $out/include/linux/*_md.h $out/include/ - - # Remove crap from the installation. - rm -rf $out/lib/openjdk/demo - ${lib.optionalString headless '' - rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so - ''} - - ln -s $out/lib/openjdk/bin $out/bin - ''; - - preFixup = '' - # Propagate the setJavaClassPath setup hook so that any package - # that depends on the JDK has $CLASSPATH set up properly. - mkdir -p $out/nix-support - #TODO or printWords? cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040 - echo -n "${setJavaClassPath}" > $out/nix-support/propagated-build-inputs - - # Set JAVA_HOME automatically. - mkdir -p $out/nix-support - cat < $out/nix-support/setup-hook - if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi - EOF - ''; - - postFixup = '' - # Build the set of output library directories to rpath against - LIBDIRS="" - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS" - done - # Add the local library paths to remove dependencies on the bootstrap - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - OUTPUTDIR=$(eval echo \$$output) - BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) - echo "$BINLIBS" | while read i; do - patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true - patchelf --shrink-rpath "$i" || true - done - done - ''; - - disallowedReferences = [ openjdk-bootstrap ]; - - meta = (import ./meta.nix lib version) // { broken = true; }; - - passthru = { - architecture = ""; - home = "${openjdk}/lib/openjdk"; - inherit gtk3; - }; - }; -in openjdk diff --git a/pkgs/by-name/ja/java/openjdk/15.nix b/pkgs/by-name/ja/java/openjdk/15.nix deleted file mode 100644 index 2447b07..0000000 --- a/pkgs/by-name/ja/java/openjdk/15.nix +++ /dev/null @@ -1,176 +0,0 @@ -{ 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 - version = { - major = "15"; - update = ".0.1"; - build = "-ga"; - __toString = self: "${self.major}${self.update}${self.build}"; - }; - - # when building a headless jdk, also bootstrap it with a headless jdk - openjdk-bootstrap = openjdk15-bootstrap.override { gtkSupport = !headless; }; - - openjdk = stdenv.mkDerivation { - pname = "openjdk" + lib.optionalString headless "-headless"; - inherit version; - - src = fetchurl { - url = "https://hg.openjdk.java.net/jdk-updates/jdk${version.major}u/archive/jdk-${version}.tar.gz"; - 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 - ]; - - patches = [ - ./fix-java-home-jdk10.patch - ./read-truststore-from-env-jdk10.patch - ./currency-date-range-jdk10.patch - ./increase-javadoc-heap-jdk13.patch - # -Wformat etc. are stricter in newer gccs, per - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79677 - # so grab the work-around from - # https://src.fedoraproject.org/rpms/java-openjdk/pull-request/24 - (fetchurl { - 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 - ]; - - prePatch = '' - chmod +x configure - patchShebangs --build configure - ''; - - # 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"]; - - 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" - ]); - - # -j flag is explicitly rejected by the build system: - # Error: 'make -jN' is not supported, use 'make JOBS=N' - # Note: it does not make build sequential. Build system - # still runs in parallel. - enableParallelBuilding = false; - - buildFlags = [ "all" ]; - - postBuild = '' - cd build/linux* - make images - cd - - ''; - - installPhase = '' - mkdir -p $out/lib - - mv build/*/images/jdk $out/lib/openjdk - - # Remove some broken manpages. - rm -rf $out/lib/openjdk/man/ja* - - # Mirror some stuff in top-level. - mkdir -p $out/share - ln -s $out/lib/openjdk/include $out/include - ln -s $out/lib/openjdk/man $out/share/man - ln -s $out/lib/openjdk/lib/src.zip $out/lib/src.zip - - # jni.h expects jni_md.h to be in the header search path. - ln -s $out/include/linux/*_md.h $out/include/ - - # Remove crap from the installation. - rm -rf $out/lib/openjdk/demo - ${lib.optionalString headless '' - rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so - ''} - - ln -s $out/lib/openjdk/bin $out/bin - ''; - - preFixup = '' - # Propagate the setJavaClassPath setup hook so that any package - # that depends on the JDK has $CLASSPATH set up properly. - mkdir -p $out/nix-support - #TODO or printWords? cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040 - echo -n "${setJavaClassPath}" > $out/nix-support/propagated-build-inputs - - # Set JAVA_HOME automatically. - mkdir -p $out/nix-support - cat < $out/nix-support/setup-hook - if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi - EOF - ''; - - postFixup = '' - # Build the set of output library directories to rpath against - LIBDIRS="" - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS" - done - # Add the local library paths to remove dependencies on the bootstrap - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - OUTPUTDIR=$(eval echo \$$output) - BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) - echo "$BINLIBS" | while read i; do - patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true - patchelf --shrink-rpath "$i" || true - done - done - ''; - - disallowedReferences = [ openjdk-bootstrap ]; - - pos = builtins.unsafeGetAttrPos "major" version; - meta = import ./meta.nix lib version.major; - - passthru = { - architecture = ""; - home = "${openjdk}/lib/openjdk"; - inherit gtk3; - }; - }; -in openjdk diff --git a/pkgs/by-name/ja/java/openjdk/16.nix b/pkgs/by-name/ja/java/openjdk/16.nix deleted file mode 100644 index 4b0874a..0000000 --- a/pkgs/by-name/ja/java/openjdk/16.nix +++ /dev/null @@ -1,180 +0,0 @@ -{ 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 - version = { - feature = "16"; - interim = "0"; - build = "36"; - }; - - # when building a headless jdk, also bootstrap it with a headless jdk - openjdk-bootstrap = openjdk16-bootstrap.override { gtkSupport = !headless; }; - - openjdk = stdenv.mkDerivation { - pname = "openjdk" + lib.optionalString headless "-headless"; - version = "${version.feature}+${version.build}"; - - src = fetchFromGitHub { - owner = "openjdk"; - repo = "jdk${version.feature}u"; - rev = "jdk-${version.feature}+${version.build}"; - 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 - ]; - - patches = [ - ./fix-java-home-jdk10.patch - ./read-truststore-from-env-jdk10.patch - ./currency-date-range-jdk10.patch - ./increase-javadoc-heap-jdk13.patch - # -Wformat etc. are stricter in newer gccs, per - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79677 - # so grab the work-around from - # https://src.fedoraproject.org/rpms/java-openjdk/pull-request/24 - (fetchurl { - url = "https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch"; - sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r"; - }) - ./fix-glibc-2.34.patch - ] ++ lib.optionals (!headless && enableGnome2) [ - ./swing-use-gtk-jdk13.patch - ]; - - prePatch = '' - chmod +x configure - patchShebangs --build configure - ''; - - # 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"]; - - 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" - ]); - - # -j flag is explicitly rejected by the build system: - # Error: 'make -jN' is not supported, use 'make JOBS=N' - # Note: it does not make build sequential. Build system - # still runs in parallel. - enableParallelBuilding = false; - - buildFlags = [ "all" ]; - - postBuild = '' - cd build/linux* - make images - cd - - ''; - - installPhase = '' - mkdir -p $out/lib - - mv build/*/images/jdk $out/lib/openjdk - - # Remove some broken manpages. - rm -rf $out/lib/openjdk/man/ja* - - # Mirror some stuff in top-level. - mkdir -p $out/share - ln -s $out/lib/openjdk/include $out/include - ln -s $out/lib/openjdk/man $out/share/man - ln -s $out/lib/openjdk/lib/src.zip $out/lib/src.zip - - # jni.h expects jni_md.h to be in the header search path. - ln -s $out/include/linux/*_md.h $out/include/ - - # Remove crap from the installation. - rm -rf $out/lib/openjdk/demo - ${lib.optionalString headless '' - rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so - ''} - - ln -s $out/lib/openjdk/bin $out/bin - ''; - - preFixup = '' - # Propagate the setJavaClassPath setup hook so that any package - # that depends on the JDK has $CLASSPATH set up properly. - mkdir -p $out/nix-support - #TODO or printWords? cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040 - echo -n "${setJavaClassPath}" > $out/nix-support/propagated-build-inputs - - # Set JAVA_HOME automatically. - mkdir -p $out/nix-support - cat < $out/nix-support/setup-hook - if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi - EOF - ''; - - postFixup = '' - # Build the set of output library directories to rpath against - LIBDIRS="" - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS" - done - # Add the local library paths to remove dependencies on the bootstrap - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - OUTPUTDIR=$(eval echo \$$output) - BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) - echo "$BINLIBS" | while read i; do - patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true - patchelf --shrink-rpath "$i" || true - done - done - ''; - - disallowedReferences = [ openjdk-bootstrap ]; - - pos = builtins.unsafeGetAttrPos "feature" version; - meta = import ./meta.nix lib version.feature; - - passthru = { - architecture = ""; - home = "${openjdk}/lib/openjdk"; - inherit gtk3; - }; - }; -in openjdk diff --git a/pkgs/by-name/ja/java/openjdk/17.nix b/pkgs/by-name/ja/java/openjdk/17.nix deleted file mode 100644 index d2c7168..0000000 --- a/pkgs/by-name/ja/java/openjdk/17.nix +++ /dev/null @@ -1,194 +0,0 @@ -{ 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 - version = { - feature = "17"; - interim = ".0.7"; - build = "7"; - }; - - # when building a headless jdk, also bootstrap it with a headless jdk - openjdk-bootstrap = openjdk17-bootstrap.override { gtkSupport = !headless; }; - - openjdk = stdenv.mkDerivation { - pname = "openjdk" + lib.optionalString headless "-headless"; - version = "${version.feature}${version.interim}+${version.build}"; - - src = fetchFromGitHub { - owner = "openjdk"; - repo = "jdk${version.feature}u"; - rev = "jdk-${version.feature}${version.interim}+${version.build}"; - 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 - ]; - - patches = [ - ./fix-java-home-jdk10.patch - ./read-truststore-from-env-jdk10.patch - ./currency-date-range-jdk10.patch - ./increase-javadoc-heap-jdk13.patch - ./ignore-LegalNoticeFilePlugin-jdk17.patch - ./fix-library-path-jdk17.patch - - # -Wformat etc. are stricter in newer gccs, per - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79677 - # so grab the work-around from - # https://src.fedoraproject.org/rpms/java-openjdk/pull-request/24 - (fetchurl { - url = "https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch"; - sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r"; - }) - - # Patch borrowed from Alpine to fix build errors with musl libc and recent gcc. - # This is applied anywhere to prevent patchrot. - (fetchurl { - url = "https://git.alpinelinux.org/aports/plain/community/openjdk17/FixNullPtrCast.patch?id=41e78a067953e0b13d062d632bae6c4f8028d91c"; - sha256 = "sha256-LzmSew51+DyqqGyyMw2fbXeBluCiCYsS1nCjt9hX6zo="; - }) - - # Fix build for gnumake-4.4.1: - # https://github.com/openjdk/jdk/pull/12992 - (fetchpatch { - name = "gnumake-4.4.1"; - url = "https://github.com/openjdk/jdk/commit/9341d135b855cc208d48e47d30cd90aafa354c36.patch"; - hash = "sha256-Qcm3ZmGCOYLZcskNjj7DYR85R4v07vYvvavrVOYL8vg="; - }) - ] ++ lib.optionals (!headless && enableGnome2) [ - ./swing-use-gtk-jdk13.patch - ]; - - postPatch = '' - chmod +x configure - patchShebangs --build configure - ''; - - # 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"]; - - 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" - ]); - - # -j flag is explicitly rejected by the build system: - # Error: 'make -jN' is not supported, use 'make JOBS=N' - # Note: it does not make build sequential. Build system - # still runs in parallel. - enableParallelBuilding = false; - - buildFlags = [ "images" ]; - - installPhase = '' - mkdir -p $out/lib - - mv build/*/images/jdk $out/lib/openjdk - - # Remove some broken manpages. - rm -rf $out/lib/openjdk/man/ja* - - # Mirror some stuff in top-level. - mkdir -p $out/share - ln -s $out/lib/openjdk/include $out/include - ln -s $out/lib/openjdk/man $out/share/man - - # IDEs use the provided src.zip to navigate the Java codebase (https://github.com/NixOS/nixpkgs/pull/95081) - ln -s $out/lib/openjdk/lib/src.zip $out/lib/src.zip - - # jni.h expects jni_md.h to be in the header search path. - ln -s $out/include/linux/*_md.h $out/include/ - - # Remove crap from the installation. - rm -rf $out/lib/openjdk/demo - ${lib.optionalString headless '' - rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so - ''} - - ln -s $out/lib/openjdk/bin $out/bin - ''; - - preFixup = '' - # Propagate the setJavaClassPath setup hook so that any package - # that depends on the JDK has $CLASSPATH set up properly. - mkdir -p $out/nix-support - #TODO or printWords? cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040 - echo -n "${setJavaClassPath}" > $out/nix-support/propagated-build-inputs - - # Set JAVA_HOME automatically. - mkdir -p $out/nix-support - cat < $out/nix-support/setup-hook - if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi - EOF - ''; - - postFixup = '' - # Build the set of output library directories to rpath against - LIBDIRS="" - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort -u | tr '\n' ':'):$LIBDIRS" - done - # Add the local library paths to remove dependencies on the bootstrap - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - OUTPUTDIR=$(eval echo \$$output) - BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) - echo "$BINLIBS" | while read i; do - patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true - patchelf --shrink-rpath "$i" || true - done - done - ''; - - disallowedReferences = [ openjdk-bootstrap ]; - - pos = builtins.unsafeGetAttrPos "feature" version; - meta = import ./meta.nix lib version.feature; - - passthru = { - architecture = ""; - home = "${openjdk}/lib/openjdk"; - inherit gtk3; - }; - }; -in openjdk diff --git a/pkgs/by-name/ja/java/openjdk/18.nix b/pkgs/by-name/ja/java/openjdk/18.nix deleted file mode 100644 index 2c49672..0000000 --- a/pkgs/by-name/ja/java/openjdk/18.nix +++ /dev/null @@ -1,190 +0,0 @@ -{ 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 - version = { - feature = "18"; - build = "36"; - }; - - # when building a headless jdk, also bootstrap it with a headless jdk - openjdk-bootstrap = openjdk18-bootstrap.override { gtkSupport = !headless; }; - - openjdk = stdenv.mkDerivation { - pname = "openjdk" + lib.optionalString headless "-headless"; - version = "${version.feature}+${version.build}"; - - src = fetchFromGitHub { - owner = "openjdk"; - repo = "jdk${version.feature}u"; - rev = "jdk-${version.feature}+${version.build}"; - 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 - ]; - - patches = [ - ./fix-java-home-jdk10.patch - ./read-truststore-from-env-jdk10.patch - ./currency-date-range-jdk10.patch - ./increase-javadoc-heap-jdk13.patch - ./ignore-LegalNoticeFilePlugin-jdk18.patch - - # -Wformat etc. are stricter in newer gccs, per - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79677 - # so grab the work-around from - # https://src.fedoraproject.org/rpms/java-openjdk/pull-request/24 - (fetchurl { - url = "https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch"; - sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r"; - }) - - # Patch borrowed from Alpine to fix build errors with musl libc and recent gcc. - # This is applied anywhere to prevent patchrot. - (fetchpatch { - 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 - ]; - - postPatch = '' - chmod +x configure - patchShebangs --build configure - ''; - - # 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"]; - - 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" - ]); - - # -j flag is explicitly rejected by the build system: - # Error: 'make -jN' is not supported, use 'make JOBS=N' - # Note: it does not make build sequential. Build system - # still runs in parallel. - enableParallelBuilding = false; - - buildFlags = [ "images" ]; - - postBuild = '' - cd build/linux* - make images - cd - - ''; - - installPhase = '' - mkdir -p $out/lib - - mv build/*/images/jdk $out/lib/openjdk - - # Remove some broken manpages. - rm -rf $out/lib/openjdk/man/ja* - - # Mirror some stuff in top-level. - mkdir -p $out/share - ln -s $out/lib/openjdk/include $out/include - ln -s $out/lib/openjdk/man $out/share/man - - # IDEs use the provided src.zip to navigate the Java codebase (https://github.com/NixOS/nixpkgs/pull/95081) - ln -s $out/lib/openjdk/lib/src.zip $out/lib/src.zip - - # jni.h expects jni_md.h to be in the header search path. - ln -s $out/include/linux/*_md.h $out/include/ - - # Remove crap from the installation. - rm -rf $out/lib/openjdk/demo - ${lib.optionalString headless '' - rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so - ''} - - ln -s $out/lib/openjdk/bin $out/bin - ''; - - preFixup = '' - # Propagate the setJavaClassPath setup hook so that any package - # that depends on the JDK has $CLASSPATH set up properly. - mkdir -p $out/nix-support - #TODO or printWords? cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040 - echo -n "${setJavaClassPath}" > $out/nix-support/propagated-build-inputs - - # Set JAVA_HOME automatically. - mkdir -p $out/nix-support - cat < $out/nix-support/setup-hook - if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi - EOF - ''; - - postFixup = '' - # Build the set of output library directories to rpath against - LIBDIRS="" - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort -u | tr '\n' ':'):$LIBDIRS" - done - # Add the local library paths to remove dependencies on the bootstrap - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - OUTPUTDIR=$(eval echo \$$output) - BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) - echo "$BINLIBS" | while read i; do - patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true - patchelf --shrink-rpath "$i" || true - done - done - ''; - - disallowedReferences = [ openjdk-bootstrap ]; - - pos = builtins.unsafeGetAttrPos "feature" version; - meta = import ./meta.nix lib version.feature; - - passthru = { - architecture = ""; - home = "${openjdk}/lib/openjdk"; - inherit gtk3; - }; - }; -in openjdk diff --git a/pkgs/by-name/ja/java/openjdk/19.nix b/pkgs/by-name/ja/java/openjdk/19.nix deleted file mode 100644 index 51fd0d8..0000000 --- a/pkgs/by-name/ja/java/openjdk/19.nix +++ /dev/null @@ -1,194 +0,0 @@ -{ 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 - version = { - feature = "19"; - interim = ".0.2"; - build = "7"; - }; - - # when building a headless jdk, also bootstrap it with a headless jdk - openjdk-bootstrap = openjdk19-bootstrap.override { gtkSupport = !headless; }; - - openjdk = stdenv.mkDerivation { - pname = "openjdk" + lib.optionalString headless "-headless"; - version = "${version.feature}${version.interim}+${version.build}"; - - src = fetchFromGitHub { - owner = "openjdk"; - repo = "jdk${version.feature}u"; - rev = "jdk-${version.feature}${version.interim}+${version.build}"; - 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 - ]; - - patches = [ - ./fix-java-home-jdk10.patch - ./read-truststore-from-env-jdk10.patch - ./currency-date-range-jdk10.patch - ./increase-javadoc-heap-jdk13.patch - ./ignore-LegalNoticeFilePlugin-jdk18.patch - - # -Wformat etc. are stricter in newer gccs, per - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79677 - # so grab the work-around from - # https://src.fedoraproject.org/rpms/java-openjdk/pull-request/24 - (fetchurl { - url = "https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch"; - sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r"; - }) - - # Patch borrowed from Alpine to fix build errors with musl libc and recent gcc. - # This is applied anywhere to prevent patchrot. - (fetchpatch { - url = "https://git.alpinelinux.org/aports/plain/testing/openjdk19/FixNullPtrCast.patch?id=93dc07f97ff716b647c5f57c6224901ea06da560"; - hash = "sha256-H4X3Yip5bCpXMH7MSu9BgXIOYRVUBMZPZW8EvZSWI5k="; - }) - - # Fix build for gnumake-4.4.1: - # https://github.com/openjdk/jdk/pull/12992 - (fetchpatch { - name = "gnumake-4.4.1"; - url = "https://github.com/openjdk/jdk/commit/9341d135b855cc208d48e47d30cd90aafa354c36.patch"; - hash = "sha256-Qcm3ZmGCOYLZcskNjj7DYR85R4v07vYvvavrVOYL8vg="; - }) - ] ++ lib.optionals (!headless && enableGnome2) [ - ./swing-use-gtk-jdk13.patch - ]; - - postPatch = '' - chmod +x configure - patchShebangs --build configure - ''; - - # 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"]; - - 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" - ]); - - # -j flag is explicitly rejected by the build system: - # Error: 'make -jN' is not supported, use 'make JOBS=N' - # Note: it does not make build sequential. Build system - # still runs in parallel. - enableParallelBuilding = false; - - buildFlags = [ "images" ]; - - installPhase = '' - mkdir -p $out/lib - - mv build/*/images/jdk $out/lib/openjdk - - # Remove some broken manpages. - rm -rf $out/lib/openjdk/man/ja* - - # Mirror some stuff in top-level. - mkdir -p $out/share - ln -s $out/lib/openjdk/include $out/include - ln -s $out/lib/openjdk/man $out/share/man - - # IDEs use the provided src.zip to navigate the Java codebase (https://github.com/NixOS/nixpkgs/pull/95081) - ln -s $out/lib/openjdk/lib/src.zip $out/lib/src.zip - - # jni.h expects jni_md.h to be in the header search path. - ln -s $out/include/linux/*_md.h $out/include/ - - # Remove crap from the installation. - rm -rf $out/lib/openjdk/demo - ${lib.optionalString headless '' - rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so - ''} - - ln -s $out/lib/openjdk/bin $out/bin - ''; - - preFixup = '' - # Propagate the setJavaClassPath setup hook so that any package - # that depends on the JDK has $CLASSPATH set up properly. - mkdir -p $out/nix-support - #TODO or printWords? cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040 - echo -n "${setJavaClassPath}" > $out/nix-support/propagated-build-inputs - - # Set JAVA_HOME automatically. - mkdir -p $out/nix-support - cat < $out/nix-support/setup-hook - if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi - EOF - ''; - - postFixup = '' - # Build the set of output library directories to rpath against - LIBDIRS="" - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort -u | tr '\n' ':'):$LIBDIRS" - done - # Add the local library paths to remove dependencies on the bootstrap - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - OUTPUTDIR=$(eval echo \$$output) - BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) - echo "$BINLIBS" | while read i; do - patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true - patchelf --shrink-rpath "$i" || true - done - done - ''; - - disallowedReferences = [ openjdk-bootstrap ]; - - pos = builtins.unsafeGetAttrPos "feature" version; - meta = import ./meta.nix lib version.feature; - - passthru = { - architecture = ""; - home = "${openjdk}/lib/openjdk"; - inherit gtk3; - }; - }; -in openjdk diff --git a/pkgs/by-name/ja/java/openjdk/20.nix b/pkgs/by-name/ja/java/openjdk/20.nix deleted file mode 100644 index 2be834a..0000000 --- a/pkgs/by-name/ja/java/openjdk/20.nix +++ /dev/null @@ -1,194 +0,0 @@ -{ 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 - version = { - feature = "20"; - interim = ""; - build = "36"; - }; - - # when building a headless jdk, also bootstrap it with a headless jdk - openjdk-bootstrap = openjdk20-bootstrap.override { gtkSupport = !headless; }; - - openjdk = stdenv.mkDerivation { - pname = "openjdk" + lib.optionalString headless "-headless"; - version = "${version.feature}${version.interim}+${version.build}"; - - src = fetchFromGitHub { - owner = "openjdk"; - repo = "jdk${version.feature}u"; - rev = "jdk-${version.feature}${version.interim}+${version.build}"; - 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 - ]; - - patches = [ - ./fix-java-home-jdk10.patch - ./read-truststore-from-env-jdk10.patch - ./currency-date-range-jdk10.patch - ./increase-javadoc-heap-jdk13.patch - ./ignore-LegalNoticeFilePlugin-jdk18.patch - - # -Wformat etc. are stricter in newer gccs, per - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79677 - # so grab the work-around from - # https://src.fedoraproject.org/rpms/java-openjdk/pull-request/24 - (fetchurl { - url = "https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch"; - sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r"; - }) - - # Patch borrowed from Alpine to fix build errors with musl libc and recent gcc. - # This is applied anywhere to prevent patchrot. - (fetchpatch { - url = "https://git.alpinelinux.org/aports/plain/testing/openjdk19/FixNullPtrCast.patch?id=93dc07f97ff716b647c5f57c6224901ea06da560"; - hash = "sha256-H4X3Yip5bCpXMH7MSu9BgXIOYRVUBMZPZW8EvZSWI5k="; - }) - - # Fix build for gnumake-4.4.1: - # https://github.com/openjdk/jdk/pull/12992 - (fetchpatch { - name = "gnumake-4.4.1"; - url = "https://github.com/openjdk/jdk/commit/9341d135b855cc208d48e47d30cd90aafa354c36.patch"; - hash = "sha256-Qcm3ZmGCOYLZcskNjj7DYR85R4v07vYvvavrVOYL8vg="; - }) - ] ++ lib.optionals (!headless && enableGnome2) [ - ./swing-use-gtk-jdk13.patch - ]; - - postPatch = '' - chmod +x configure - patchShebangs --build configure - ''; - - # 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"]; - - 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" - ]); - - # -j flag is explicitly rejected by the build system: - # Error: 'make -jN' is not supported, use 'make JOBS=N' - # Note: it does not make build sequential. Build system - # still runs in parallel. - enableParallelBuilding = false; - - buildFlags = [ "images" ]; - - installPhase = '' - mkdir -p $out/lib - - mv build/*/images/jdk $out/lib/openjdk - - # Remove some broken manpages. - rm -rf $out/lib/openjdk/man/ja* - - # Mirror some stuff in top-level. - mkdir -p $out/share - ln -s $out/lib/openjdk/include $out/include - ln -s $out/lib/openjdk/man $out/share/man - - # IDEs use the provided src.zip to navigate the Java codebase (https://github.com/NixOS/nixpkgs/pull/95081) - ln -s $out/lib/openjdk/lib/src.zip $out/lib/src.zip - - # jni.h expects jni_md.h to be in the header search path. - ln -s $out/include/linux/*_md.h $out/include/ - - # Remove crap from the installation. - rm -rf $out/lib/openjdk/demo - ${lib.optionalString headless '' - rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so - ''} - - ln -s $out/lib/openjdk/bin $out/bin - ''; - - preFixup = '' - # Propagate the setJavaClassPath setup hook so that any package - # that depends on the JDK has $CLASSPATH set up properly. - mkdir -p $out/nix-support - #TODO or printWords? cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040 - echo -n "${setJavaClassPath}" > $out/nix-support/propagated-build-inputs - - # Set JAVA_HOME automatically. - mkdir -p $out/nix-support - cat < $out/nix-support/setup-hook - if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi - EOF - ''; - - postFixup = '' - # Build the set of output library directories to rpath against - LIBDIRS="" - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort -u | tr '\n' ':'):$LIBDIRS" - done - # Add the local library paths to remove dependencies on the bootstrap - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - OUTPUTDIR=$(eval echo \$$output) - BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) - echo "$BINLIBS" | while read i; do - patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true - patchelf --shrink-rpath "$i" || true - done - done - ''; - - disallowedReferences = [ openjdk-bootstrap ]; - - pos = builtins.unsafeGetAttrPos "feature" version; - meta = import ./meta.nix lib version.feature; - - passthru = { - architecture = ""; - home = "${openjdk}/lib/openjdk"; - inherit gtk3; - }; - }; -in openjdk diff --git a/pkgs/by-name/ja/java/openjdk/21.nix b/pkgs/by-name/ja/java/openjdk/21.nix deleted file mode 100644 index 623ac28..0000000 --- a/pkgs/by-name/ja/java/openjdk/21.nix +++ /dev/null @@ -1,188 +0,0 @@ -{ 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 - version = { - feature = "21"; - interim = ""; - build = "35"; - }; - - # when building a headless jdk, also bootstrap it with a headless jdk - openjdk-bootstrap = openjdk21-bootstrap.override { gtkSupport = !headless; }; - - openjdk = stdenv.mkDerivation { - pname = "openjdk" + lib.optionalString headless "-headless"; - version = "${version.feature}${version.interim}+${version.build}"; - - src = fetchFromGitHub { - owner = "openjdk"; - repo = "jdk${version.feature}u"; - rev = "jdk-${version.feature}${version.interim}+${version.build}"; - 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 - ]; - - patches = [ - ./fix-java-home-jdk21.patch - ./read-truststore-from-env-jdk10.patch - ./currency-date-range-jdk10.patch - ./increase-javadoc-heap-jdk13.patch - ./ignore-LegalNoticeFilePlugin-jdk18.patch - - # -Wformat etc. are stricter in newer gccs, per - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79677 - # so grab the work-around from - # https://src.fedoraproject.org/rpms/java-openjdk/pull-request/24 - (fetchurl { - url = "https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch"; - sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r"; - }) - - # Fix build for gnumake-4.4.1: - # https://github.com/openjdk/jdk/pull/12992 - (fetchpatch { - name = "gnumake-4.4.1"; - url = "https://github.com/openjdk/jdk/commit/9341d135b855cc208d48e47d30cd90aafa354c36.patch"; - hash = "sha256-Qcm3ZmGCOYLZcskNjj7DYR85R4v07vYvvavrVOYL8vg="; - }) - ] ++ lib.optionals (!headless && enableGnome2) [ - ./swing-use-gtk-jdk13.patch - ]; - - postPatch = '' - chmod +x configure - patchShebangs --build configure - ''; - - # 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"]; - - 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}"; - - 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" - ]); - - # -j flag is explicitly rejected by the build system: - # Error: 'make -jN' is not supported, use 'make JOBS=N' - # Note: it does not make build sequential. Build system - # still runs in parallel. - enableParallelBuilding = false; - - buildFlags = [ "images" ]; - - installPhase = '' - mkdir -p $out/lib - - mv build/*/images/jdk $out/lib/openjdk - - # Remove some broken manpages. - rm -rf $out/lib/openjdk/man/ja* - - # Mirror some stuff in top-level. - mkdir -p $out/share - ln -s $out/lib/openjdk/include $out/include - ln -s $out/lib/openjdk/man $out/share/man - - # IDEs use the provided src.zip to navigate the Java codebase (https://github.com/NixOS/nixpkgs/pull/95081) - ln -s $out/lib/openjdk/lib/src.zip $out/lib/src.zip - - # jni.h expects jni_md.h to be in the header search path. - ln -s $out/include/linux/*_md.h $out/include/ - - # Remove crap from the installation. - rm -rf $out/lib/openjdk/demo - ${lib.optionalString headless '' - rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so - ''} - - ln -s $out/lib/openjdk/bin $out/bin - ''; - - preFixup = '' - # Propagate the setJavaClassPath setup hook so that any package - # that depends on the JDK has $CLASSPATH set up properly. - mkdir -p $out/nix-support - #TODO or printWords? cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040 - echo -n "${setJavaClassPath}" > $out/nix-support/propagated-build-inputs - - # Set JAVA_HOME automatically. - mkdir -p $out/nix-support - cat < $out/nix-support/setup-hook - if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi - EOF - ''; - - postFixup = '' - # Build the set of output library directories to rpath against - LIBDIRS="" - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort -u | tr '\n' ':'):$LIBDIRS" - done - # Add the local library paths to remove dependencies on the bootstrap - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - OUTPUTDIR=$(eval echo \$$output) - BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) - echo "$BINLIBS" | while read i; do - patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true - patchelf --shrink-rpath "$i" || true - done - done - ''; - - disallowedReferences = [ openjdk-bootstrap ]; - - pos = builtins.unsafeGetAttrPos "feature" version; - meta = import ./meta.nix lib version.feature; - - passthru = { - architecture = ""; - home = "${openjdk}/lib/openjdk"; - inherit gtk3; - }; - }; -in openjdk diff --git a/pkgs/by-name/ja/java/openjdk/22.nix b/pkgs/by-name/ja/java/openjdk/22.nix deleted file mode 100644 index bef62b6..0000000 --- a/pkgs/by-name/ja/java/openjdk/22.nix +++ /dev/null @@ -1,260 +0,0 @@ -{ 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 -}: - -let - version = { - feature = "22"; - interim = ""; - build = "36"; - }; - - # when building a headless jdk, also bootstrap it with a headless jdk - openjdk-bootstrap = openjdk22-bootstrap.override { gtkSupport = !headless; }; - - openjdk = stdenv.mkDerivation { - pname = "openjdk" + lib.optionalString headless "-headless"; - version = "${version.feature}${version.interim}+${version.build}"; - - src = fetchFromGitHub { - owner = "openjdk"; - repo = "jdk${version.feature}u"; - rev = "jdk-${version.feature}${version.interim}+${version.build}"; - 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 - ]; - - patches = [ - ./fix-java-home-jdk21.patch - ./read-truststore-from-env-jdk10.patch - ./currency-date-range-jdk10.patch - ./increase-javadoc-heap-jdk13.patch - ./ignore-LegalNoticeFilePlugin-jdk18.patch - - # -Wformat etc. are stricter in newer gccs, per - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79677 - # so grab the work-around from - # https://src.fedoraproject.org/rpms/java-openjdk/pull-request/24 - (fetchurl { - url = "https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch"; - sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r"; - }) - - # Fix build for gnumake-4.4.1: - # https://github.com/openjdk/jdk/pull/12992 - (fetchpatch { - name = "gnumake-4.4.1"; - url = "https://github.com/openjdk/jdk/commit/9341d135b855cc208d48e47d30cd90aafa354c36.patch"; - hash = "sha256-Qcm3ZmGCOYLZcskNjj7DYR85R4v07vYvvavrVOYL8vg="; - }) - ] ++ lib.optionals (!headless && enableGnome2) [ - ./swing-use-gtk-jdk13.patch - ]; - - postPatch = '' - chmod +x configure - patchShebangs --build configure - ''; - - # 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" ]; - - - # 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}"; - - 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" - ]); - - # -j flag is explicitly rejected by the build system: - # Error: 'make -jN' is not supported, use 'make JOBS=N' - # Note: it does not make build sequential. Build system - # still runs in parallel. - enableParallelBuilding = false; - - buildFlags = [ "images" ]; - - installPhase = '' - mkdir -p $out/lib - - mv build/*/images/jdk $out/lib/openjdk - - # Remove some broken manpages. - rm -rf $out/lib/openjdk/man/ja* - - # Mirror some stuff in top-level. - mkdir -p $out/share - ln -s $out/lib/openjdk/include $out/include - ln -s $out/lib/openjdk/man $out/share/man - - # IDEs use the provided src.zip to navigate the Java codebase (https://github.com/NixOS/nixpkgs/pull/95081) - ln -s $out/lib/openjdk/lib/src.zip $out/lib/src.zip - - # jni.h expects jni_md.h to be in the header search path. - ln -s $out/include/linux/*_md.h $out/include/ - - # Remove crap from the installation. - rm -rf $out/lib/openjdk/demo - ${lib.optionalString headless '' - rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so - ''} - - ln -s $out/lib/openjdk/bin $out/bin - ''; - - preFixup = '' - # Propagate the setJavaClassPath setup hook so that any package - # that depends on the JDK has $CLASSPATH set up properly. - mkdir -p $out/nix-support - #TODO or printWords? cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040 - echo -n "${setJavaClassPath}" > $out/nix-support/propagated-build-inputs - - # Set JAVA_HOME automatically. - mkdir -p $out/nix-support - cat < $out/nix-support/setup-hook - if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi - EOF - ''; - - postFixup = '' - # Build the set of output library directories to rpath against - LIBDIRS="" - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort -u | tr '\n' ':'):$LIBDIRS" - done - # Add the local library paths to remove dependencies on the bootstrap - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - OUTPUTDIR=$(eval echo \$$output) - BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) - echo "$BINLIBS" | while read i; do - patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true - patchelf --shrink-rpath "$i" || true - done - done - ''; - - disallowedReferences = [ openjdk-bootstrap ]; - - pos = builtins.unsafeGetAttrPos "feature" version; - meta = import ./meta.nix lib version.feature; - - passthru = { - architecture = ""; - home = "${openjdk}/lib/openjdk"; - inherit gtk3; - }; - }; -in -openjdk diff --git a/pkgs/by-name/ja/java/openjdk/8.nix b/pkgs/by-name/ja/java/openjdk/8.nix deleted file mode 100644 index aebfcee..0000000 --- a/pkgs/by-name/ja/java/openjdk/8.nix +++ /dev/null @@ -1,226 +0,0 @@ -{ 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}"); - - update = "362"; - build = "ga"; - - # when building a headless jdk, also bootstrap it with a headless jdk - openjdk-bootstrap = openjdk8-bootstrap.override { gtkSupport = !headless; }; - - openjdk8 = stdenv.mkDerivation rec { - pname = "openjdk" + lib.optionalString headless "-headless"; - version = "8u${update}-${build}"; - - src = fetchFromGitHub { - owner = "openjdk"; - repo = "jdk8u"; - 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 - ]; - - 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 - ]; - - # Hotspot cares about the host(!) version otherwise - DISABLE_HOTSPOT_OS_VERSION_CHECK = "ok"; - - preConfigure = '' - chmod +x configure - substituteInPlace configure --replace /bin/bash "${bash}/bin/bash" - substituteInPlace hotspot/make/linux/adlc_updater --replace /bin/sh "${stdenv.shell}" - substituteInPlace hotspot/make/linux/makefiles/dtrace.make --replace /usr/include/sys/sdt.h "/no-such-path" - ''; - - configureFlags = [ - "--with-boot-jdk=${openjdk-bootstrap.home}" - "--with-update-version=${update}" - "--with-build-number=${build}" - "--with-milestone=fcs" - "--enable-unlimited-crypto" - "--with-native-debug-symbols=internal" - "--disable-freetype-bundling" - "--with-zlib=system" - "--with-giflib=system" - "--with-stdc++lib=dynamic" - ] ++ lib.optional headless "--disable-headful"; - - 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" - ]); - - 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' - # Note: it does not make build sequential. Build system - # still runs in parallel. - enableParallelBuilding = false; - - buildFlags = [ "all" ]; - - doCheck = false; # fails with "No rule to make target 'y'." - - installPhase = '' - mkdir -p $out/lib - - mv build/*/images/j2sdk-image $out/lib/openjdk - - # Remove some broken manpages. - rm -rf $out/lib/openjdk/man/ja* - - # Mirror some stuff in top-level. - mkdir -p $out/share - ln -s $out/lib/openjdk/include $out/include - ln -s $out/lib/openjdk/man $out/share/man - - # jni.h expects jni_md.h to be in the header search path. - ln -s $out/include/linux/*_md.h $out/include/ - - # Remove crap from the installation. - rm -rf $out/lib/openjdk/demo $out/lib/openjdk/sample - ${lib.optionalString headless '' - rm $out/lib/openjdk/jre/lib/${architecture}/{libjsound,libjsoundalsa,libsplashscreen,libawt*,libfontmanager}.so - rm $out/lib/openjdk/jre/bin/policytool - rm $out/lib/openjdk/bin/{policytool,appletviewer} - ''} - - # Move the JRE to a separate output - mkdir -p $jre/lib/openjdk - mv $out/lib/openjdk/jre $jre/lib/openjdk/jre - mkdir $out/lib/openjdk/jre - lndir $jre/lib/openjdk/jre $out/lib/openjdk/jre - - # Make sure cmm/*.pf are not symlinks: - # https://youtrack.jetbrains.com/issue/IDEA-147272 - rm -rf $out/lib/openjdk/jre/lib/cmm - ln -s {$jre,$out}/lib/openjdk/jre/lib/cmm - - # Setup fallback fonts - ${lib.optionalString (!headless) '' - mkdir -p $jre/lib/openjdk/jre/lib/fonts - ln -s ${liberation_ttf}/share/fonts/truetype $jre/lib/openjdk/jre/lib/fonts/fallback - ''} - - # Remove duplicate binaries. - for i in $(cd $out/lib/openjdk/bin && echo *); do - if [ "$i" = java ]; then continue; fi - if cmp -s $out/lib/openjdk/bin/$i $jre/lib/openjdk/jre/bin/$i; then - ln -sfn $jre/lib/openjdk/jre/bin/$i $out/lib/openjdk/bin/$i - fi - done - - # Generate certificates. - ( - cd $jre/lib/openjdk/jre/lib/security - rm cacerts - perl ${./generate-cacerts.pl} $jre/lib/openjdk/jre/bin/keytool ${cacert}/etc/ssl/certs/ca-bundle.crt - ) - - ln -s $out/lib/openjdk/bin $out/bin - ln -s $jre/lib/openjdk/jre/bin $jre/bin - ln -s $jre/lib/openjdk/jre $out/jre - ''; - - propagatedBuildInputs = [ setJavaClassPath ]; - - preFixup = '' - # Propagate the setJavaClassPath setup hook from the JRE so that - # any package that depends on the JRE has $CLASSPATH set up - # properly. - mkdir -p $jre/nix-support - printWords ${setJavaClassPath} > $jre/nix-support/propagated-build-inputs - - # Set JAVA_HOME automatically. - mkdir -p $out/nix-support - cat < $out/nix-support/setup-hook - if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi - EOF - ''; - - postFixup = '' - # Build the set of output library directories to rpath against - LIBDIRS="" - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS" - done - # Add the local library paths to remove dependencies on the bootstrap - for output in $(getAllOutputNames); do - if [ "$output" = debug ]; then continue; fi - OUTPUTDIR=$(eval echo \$$output) - BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*) - echo "$BINLIBS" | while read i; do - patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true - patchelf --shrink-rpath "$i" || true - done - done - ''; - - disallowedReferences = [ openjdk8-bootstrap ]; - - meta = with lib; { - homepage = "http://openjdk.java.net/"; - license = licenses.gpl2; - description = "The open-source Java Development Kit"; - maintainers = with maintainers; [ edwtjo ]; - platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ]; - mainProgram = "java"; - }; - - passthru = { - inherit architecture; - home = "${openjdk8}/lib/openjdk"; - inherit gtk2; - }; - }; -in openjdk8 diff --git a/pkgs/by-name/ja/java/openjdk/bootstrap.nix b/pkgs/by-name/ja/java/openjdk/bootstrap.nix deleted file mode 100644 index e58888c..0000000 --- a/pkgs/by-name/ja/java/openjdk/bootstrap.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ stdenv -, runCommand, fetchurl, zlib - -, 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; - }; - - 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"; - } '' - tar xvf ${src} - mv openjdk-bootstrap $out - - LIBDIRS="$(find $out -name \*.so\* -exec dirname {} \; | sort | uniq | tr '\n' ':')" - - find "$out" -type f -print0 | while IFS= read -r -d "" elf; do - isELF "$elf" || continue - patchelf --set-interpreter $(cat "${stdenv.cc}/nix-support/dynamic-linker") "$elf" || true - patchelf --set-rpath "${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib:${zlib}/lib:$LIBDIRS" "$elf" || true - done - ''; -in bootstrap diff --git a/pkgs/by-name/ja/java/openjdk/currency-date-range-jdk10.patch b/pkgs/by-name/ja/java/openjdk/currency-date-range-jdk10.patch deleted file mode 100644 index e058eff..0000000 --- a/pkgs/by-name/ja/java/openjdk/currency-date-range-jdk10.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- ./make/jdk/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java -+++ ./make/jdk/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java -@@ -281,8 +281,8 @@ - checkCurrencyCode(newCurrency); - String timeString = currencyInfo.substring(4, length - 4); - long time = format.parse(timeString).getTime(); -- if (Math.abs(time - System.currentTimeMillis()) > ((long) 10) * 365 * 24 * 60 * 60 * 1000) { -- throw new RuntimeException("time is more than 10 years from present: " + time); -+ if (Math.abs(time - System.currentTimeMillis()) > ((long) 20) * 365 * 24 * 60 * 60 * 1000) { -+ throw new RuntimeException("time is more than 20 years from present: " + time); - } - specialCaseCutOverTimes[specialCaseCount] = time; - specialCaseOldCurrencies[specialCaseCount] = oldCurrency; diff --git a/pkgs/by-name/ja/java/openjdk/currency-date-range-jdk8.patch b/pkgs/by-name/ja/java/openjdk/currency-date-range-jdk8.patch deleted file mode 100644 index 2ff0fcc..0000000 --- a/pkgs/by-name/ja/java/openjdk/currency-date-range-jdk8.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -Naur openjdk-7u65-b32-upstream/jdk/make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java openjdk-7u65-b32/jdk/make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java ---- openjdk-7u65-b32-upstream/jdk/make/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java 2014-07-17 05:42:14.000000000 -0430 -+++ openjdk-7u65-b32/jdk/make/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java 2014-12-30 10:15:50.327905933 -0430 -@@ -281,8 +281,8 @@ - checkCurrencyCode(newCurrency); - String timeString = currencyInfo.substring(4, length - 4); - long time = format.parse(timeString).getTime(); -- if (Math.abs(time - System.currentTimeMillis()) > ((long) 10) * 365 * 24 * 60 * 60 * 1000) { -- throw new RuntimeException("time is more than 10 years from present: " + time); -+ if (Math.abs(time - System.currentTimeMillis()) > ((long) 20) * 365 * 24 * 60 * 60 * 1000) { -+ throw new RuntimeException("time is more than 20 years from present: " + time); - } - specialCaseCutOverTimes[specialCaseCount] = time; - specialCaseOldCurrencies[specialCaseCount] = oldCurrency; diff --git a/pkgs/by-name/ja/java/openjdk/fix-glibc-2.34.patch b/pkgs/by-name/ja/java/openjdk/fix-glibc-2.34.patch deleted file mode 100644 index 7bf8b2b..0000000 --- a/pkgs/by-name/ja/java/openjdk/fix-glibc-2.34.patch +++ /dev/null @@ -1,24 +0,0 @@ -Taken from https://build.opensuse.org/package/view_file/Java:Factory/java-15-openjdk/openjdk-glibc234.patch - ---- openjdk/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c 2021-04-09 11:36:58.000000000 +0200 -+++ openjdk/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c 2021-08-26 15:42:52.326232581 +0200 -@@ -67,8 +67,17 @@ - longjmp(context, 1); - } - -+static char* altstack = NULL; -+ - void set_signal_handler() { -- static char altstack[SIGSTKSZ]; -+ if (altstack == NULL) { -+ // Dynamically allocated in case SIGSTKSZ is not constant -+ altstack = malloc(SIGSTKSZ); -+ if (altstack == NULL) { -+ fprintf(stderr, "Test ERROR. Unable to malloc altstack space\n"); -+ exit(7); -+ } -+ } - - stack_t ss = { - .ss_size = SIGSTKSZ, - diff --git a/pkgs/by-name/ja/java/openjdk/fix-java-home-jdk10.patch b/pkgs/by-name/ja/java/openjdk/fix-java-home-jdk10.patch deleted file mode 100644 index c037fde..0000000 --- a/pkgs/by-name/ja/java/openjdk/fix-java-home-jdk10.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- a/src/hotspot/os/linux/os_linux.cpp 2017-07-04 23:09:02.533972226 -0400 -+++ b/src/hotspot/os/linux/os_linux.cpp 2017-07-04 23:07:52.118338845 -0400 -@@ -2270,8 +2270,5 @@ - assert(ret, "cannot locate libjvm"); - char *rp = NULL; - if (ret && dli_fname[0] != '\0') { -- rp = os::Posix::realpath(dli_fname, buf, buflen); -- } -- if (rp == NULL) { -- return; -+ snprintf(buf, buflen, "%s", dli_fname); - } - - if (Arguments::sun_java_launcher_is_altjvm()) { diff --git a/pkgs/by-name/ja/java/openjdk/fix-java-home-jdk21.patch b/pkgs/by-name/ja/java/openjdk/fix-java-home-jdk21.patch deleted file mode 100644 index ede201e..0000000 --- a/pkgs/by-name/ja/java/openjdk/fix-java-home-jdk21.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- a/src/hotspot/os/linux/os_linux.cpp 2017-07-04 23:09:02.533972226 -0400 -+++ b/src/hotspot/os/linux/os_linux.cpp 2017-07-04 23:07:52.118338845 -0400 -@@ -2270,8 +2270,5 @@ - assert(ret, "cannot locate libjvm"); - char *rp = nullptr; - if (ret && dli_fname[0] != '\0') { -- rp = os::Posix::realpath(dli_fname, buf, buflen); -- } -- if (rp == nullptr) { -- return; -+ snprintf(buf, buflen, "%s", dli_fname); - } - - if (Arguments::sun_java_launcher_is_altjvm()) { diff --git a/pkgs/by-name/ja/java/openjdk/fix-java-home-jdk8.patch b/pkgs/by-name/ja/java/openjdk/fix-java-home-jdk8.patch deleted file mode 100644 index 6189412..0000000 --- a/pkgs/by-name/ja/java/openjdk/fix-java-home-jdk8.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- a/hotspot/src/os/linux/vm/os_linux.cpp 2015-02-04 21:14:39.000000000 +0100 -+++ b/hotspot/src/os/linux/vm/os_linux.cpp 2015-05-19 16:17:29.960107613 +0200 -@@ -2304,10 +2304,8 @@ - assert(ret, "cannot locate libjvm"); - char *rp = NULL; - if (ret && dli_fname[0] != '\0') { -- rp = realpath(dli_fname, buf); -+ snprintf(buf, buflen, "%s", dli_fname); - } -- if (rp == NULL) -- return; - - if (Arguments::created_by_gamma_launcher()) { - // Support for the gamma launcher. Typical value for buf is - diff --git a/pkgs/by-name/ja/java/openjdk/fix-library-path-jdk11.patch b/pkgs/by-name/ja/java/openjdk/fix-library-path-jdk11.patch deleted file mode 100644 index ce30edb..0000000 --- a/pkgs/by-name/ja/java/openjdk/fix-library-path-jdk11.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 83f97773ea99fe2191a49e551ea43d51c9a765cd Mon Sep 17 00:00:00 2001 -Subject: [PATCH] strip some hard-coded default paths for libs and extensions - ---- - src/hotspot/os/linux/os_linux.cpp | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/src/hotspot/os/linux/os_linux.cpp b/src/hotspot/os/linux/os_linux.cpp -index 476b1c2175..2695ed2301 100644 ---- a/src/hotspot/os/linux/os_linux.cpp -+++ b/src/hotspot/os/linux/os_linux.cpp -@@ -417,20 +417,20 @@ void os::init_system_properties_values() { - // ... - // 7: The default directories, normally /lib and /usr/lib. - #if defined(AMD64) || (defined(_LP64) && defined(SPARC)) || defined(PPC64) || defined(S390) -- #define DEFAULT_LIBPATH "/usr/lib64:/lib64:/lib:/usr/lib" -+ #define DEFAULT_LIBPATH "" - #else - #if defined(AARCH64) - // Use 32-bit locations first for AARCH64 (a 64-bit architecture), since some systems - // might not adhere to the FHS and it would be a change in behaviour if we used - // DEFAULT_LIBPATH of other 64-bit architectures which prefer the 64-bit paths. -- #define DEFAULT_LIBPATH "/lib:/usr/lib:/usr/lib64:/lib64" -+ #define DEFAULT_LIBPATH "" - #else -- #define DEFAULT_LIBPATH "/lib:/usr/lib" -+ #define DEFAULT_LIBPATH "" - #endif // AARCH64 - #endif - - // Base path of extensions installed on the system. --#define SYS_EXT_DIR "/usr/java/packages" -+#define SYS_EXT_DIR "" - #define EXTENSIONS_DIR "/lib/ext" - - // Buffer that fits several sprintfs. -@@ -490,13 +490,13 @@ void os::init_system_properties_values() { - strlen(v) + 1 + - sizeof(SYS_EXT_DIR) + sizeof("/lib/") + sizeof(DEFAULT_LIBPATH) + 1, - mtInternal); -- sprintf(ld_library_path, "%s%s" SYS_EXT_DIR "/lib:" DEFAULT_LIBPATH, v, v_colon); -+ sprintf(ld_library_path, "%s", v); - Arguments::set_library_path(ld_library_path); - FREE_C_HEAP_ARRAY(char, ld_library_path); - } - - // Extensions directories. -- sprintf(buf, "%s" EXTENSIONS_DIR ":" SYS_EXT_DIR EXTENSIONS_DIR, Arguments::get_java_home()); -+ sprintf(buf, "%s" EXTENSIONS_DIR, Arguments::get_java_home()); - Arguments::set_ext_dirs(buf); - - FREE_C_HEAP_ARRAY(char, buf); --- -2.35.1 - diff --git a/pkgs/by-name/ja/java/openjdk/fix-library-path-jdk17.patch b/pkgs/by-name/ja/java/openjdk/fix-library-path-jdk17.patch deleted file mode 100644 index 4c38aca..0000000 --- a/pkgs/by-name/ja/java/openjdk/fix-library-path-jdk17.patch +++ /dev/null @@ -1,60 +0,0 @@ ---- a/src/hotspot/os/linux/os_linux.cpp -+++ b/src/hotspot/os/linux/os_linux.cpp -@@ -412,18 +412,8 @@ void os::init_system_properties_values() { - // 1: ... - // ... - // 7: The default directories, normally /lib and /usr/lib. --#ifndef OVERRIDE_LIBPATH -- #if defined(_LP64) -- #define DEFAULT_LIBPATH "/usr/lib64:/lib64:/lib:/usr/lib" -- #else -- #define DEFAULT_LIBPATH "/lib:/usr/lib" -- #endif --#else -- #define DEFAULT_LIBPATH OVERRIDE_LIBPATH --#endif - - // Base path of extensions installed on the system. --#define SYS_EXT_DIR "/usr/java/packages" - #define EXTENSIONS_DIR "/lib/ext" - - // Buffer that fits several sprintfs. -@@ -431,7 +421,7 @@ void os::init_system_properties_values() { - // by the nulls included by the sizeof operator. - const size_t bufsize = - MAX2((size_t)MAXPATHLEN, // For dll_dir & friends. -- (size_t)MAXPATHLEN + sizeof(EXTENSIONS_DIR) + sizeof(SYS_EXT_DIR) + sizeof(EXTENSIONS_DIR)); // extensions dir -+ (size_t)MAXPATHLEN + sizeof(EXTENSIONS_DIR) + sizeof(EXTENSIONS_DIR)); // extensions dir - char *buf = NEW_C_HEAP_ARRAY(char, bufsize, mtInternal); - - // sysclasspath, java_home, dll_dir -@@ -478,26 +468,22 @@ void os::init_system_properties_values() { - // should always exist (until the legacy problem cited above is - // addressed). - const char *v = ::getenv("LD_LIBRARY_PATH"); -- const char *v_colon = ":"; -- if (v == NULL) { v = ""; v_colon = ""; } -+ if (v == NULL) { v = ""; } - // That's +1 for the colon and +1 for the trailing '\0'. - char *ld_library_path = NEW_C_HEAP_ARRAY(char, -- strlen(v) + 1 + -- sizeof(SYS_EXT_DIR) + sizeof("/lib/") + sizeof(DEFAULT_LIBPATH) + 1, -+ strlen(v) + 1, - mtInternal); -- sprintf(ld_library_path, "%s%s" SYS_EXT_DIR "/lib:" DEFAULT_LIBPATH, v, v_colon); -+ sprintf(ld_library_path, "%s", v); - Arguments::set_library_path(ld_library_path); - FREE_C_HEAP_ARRAY(char, ld_library_path); - } - - // Extensions directories. -- sprintf(buf, "%s" EXTENSIONS_DIR ":" SYS_EXT_DIR EXTENSIONS_DIR, Arguments::get_java_home()); -+ sprintf(buf, "%s" EXTENSIONS_DIR, Arguments::get_java_home()); - Arguments::set_ext_dirs(buf); - - FREE_C_HEAP_ARRAY(char, buf); - --#undef DEFAULT_LIBPATH --#undef SYS_EXT_DIR - #undef EXTENSIONS_DIR - } \ No newline at end of file diff --git a/pkgs/by-name/ja/java/openjdk/fix-library-path-jdk8.patch b/pkgs/by-name/ja/java/openjdk/fix-library-path-jdk8.patch deleted file mode 100644 index 3780e95..0000000 --- a/pkgs/by-name/ja/java/openjdk/fix-library-path-jdk8.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp -index c477851c1b..ff5e28d95b 100644 ---- a/hotspot/src/os/linux/vm/os_linux.cpp -+++ b/hotspot/src/os/linux/vm/os_linux.cpp -@@ -368,13 +368,13 @@ void os::init_system_properties_values() { - // ... - // 7: The default directories, normally /lib and /usr/lib. - #if defined(AMD64) || defined(_LP64) && (defined(SPARC) || defined(PPC) || defined(S390)) --#define DEFAULT_LIBPATH "/usr/lib64:/lib64:/lib:/usr/lib" -+#define DEFAULT_LIBPATH "" - #else --#define DEFAULT_LIBPATH "/lib:/usr/lib" -+#define DEFAULT_LIBPATH "" - #endif - - // Base path of extensions installed on the system. --#define SYS_EXT_DIR "/usr/java/packages" -+#define SYS_EXT_DIR "" - #define EXTENSIONS_DIR "/lib/ext" - #define ENDORSED_DIR "/lib/endorsed" - -@@ -437,13 +437,13 @@ void os::init_system_properties_values() { - strlen(v) + 1 + - sizeof(SYS_EXT_DIR) + sizeof("/lib/") + strlen(cpu_arch) + sizeof(DEFAULT_LIBPATH) + 1, - mtInternal); -- sprintf(ld_library_path, "%s%s" SYS_EXT_DIR "/lib/%s:" DEFAULT_LIBPATH, v, v_colon, cpu_arch); -+ sprintf(ld_library_path, "%s", v); - Arguments::set_library_path(ld_library_path); - FREE_C_HEAP_ARRAY(char, ld_library_path, mtInternal); - } - - // Extensions directories. -- sprintf(buf, "%s" EXTENSIONS_DIR ":" SYS_EXT_DIR EXTENSIONS_DIR, Arguments::get_java_home()); -+ sprintf(buf, "%s" EXTENSIONS_DIR, Arguments::get_java_home()); - Arguments::set_ext_dirs(buf); - - // Endorsed standards default directory. diff --git a/pkgs/by-name/ja/java/openjdk/generate-cacerts.pl b/pkgs/by-name/ja/java/openjdk/generate-cacerts.pl deleted file mode 100644 index 3bdd42f..0000000 --- a/pkgs/by-name/ja/java/openjdk/generate-cacerts.pl +++ /dev/null @@ -1,366 +0,0 @@ -#!/usr/bin/perl - -# Copyright (C) 2007, 2008 Red Hat, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# generate-cacerts.pl generates a JKS keystore named 'cacerts' from -# OpenSSL's certificate bundle using OpenJDK's keytool. - -# First extract each of OpenSSL's bundled certificates into its own -# aliased filename. - -# Downloaded from http://cvs.fedoraproject.org/viewvc/rpms/ca-certificates/F-12/generate-cacerts.pl?revision=1.2 -# Check and prevention of duplicate aliases added by Vlastimil Babka - -$file = $ARGV[1]; -open(CERTS, $file); -@certs = ; -close(CERTS); - -$pem_file_count = 0; -$in_cert_block = 0; -$write_current_cert = 1; -foreach $cert (@certs) -{ - if ($cert =~ /Issuer: /) - { - $_ = $cert; - if ($cert =~ /personal-freemail/) - { - $cert_alias = "thawtepersonalfreemailca"; - } - elsif ($cert =~ /personal-basic/) - { - $cert_alias = "thawtepersonalbasicca"; - } - elsif ($cert =~ /personal-premium/) - { - $cert_alias = "thawtepersonalpremiumca"; - } - elsif ($cert =~ /server-certs/) - { - $cert_alias = "thawteserverca"; - } - elsif ($cert =~ /premium-server/) - { - $cert_alias = "thawtepremiumserverca"; - } - elsif ($cert =~ /Class 1 Public Primary Certification Authority$/) - { - $cert_alias = "verisignclass1ca"; - } - elsif ($cert =~ /Class 1 Public Primary Certification Authority - G2/) - { - $cert_alias = "verisignclass1g2ca"; - } - elsif ($cert =~ - /VeriSign Class 1 Public Primary Certification Authority - G3/) - { - $cert_alias = "verisignclass1g3ca"; - } - elsif ($cert =~ /Class 2 Public Primary Certification Authority$/) - { - $cert_alias = "verisignclass2ca"; - } - elsif ($cert =~ /Class 2 Public Primary Certification Authority - G2/) - { - $cert_alias = "verisignclass2g2ca"; - } - elsif ($cert =~ - /VeriSign Class 2 Public Primary Certification Authority - G3/) - { - $cert_alias = "verisignclass2g3ca"; - } - elsif ($cert =~ /Class 3 Public Primary Certification Authority$/) - { - $cert_alias = "verisignclass3ca"; - } - # Version 1 of Class 3 Public Primary Certification Authority - # - G2 is added. Version 3 is excluded. See below. - elsif ($cert =~ - /VeriSign Class 3 Public Primary Certification Authority - G3/) - { - $cert_alias = "verisignclass3g3ca"; - } - elsif ($cert =~ - /RSA Data Security.*Secure Server Certification Authority/) - { - $cert_alias = "verisignserverca"; - } - elsif ($cert =~ /GTE CyberTrust Global Root/) - { - $cert_alias = "gtecybertrustglobalca"; - } - elsif ($cert =~ /Baltimore CyberTrust Root/) - { - $cert_alias = "baltimorecybertrustca"; - } - elsif ($cert =~ /www.entrust.net\/Client_CA_Info\/CPS/) - { - $cert_alias = "entrustclientca"; - } - elsif ($cert =~ /www.entrust.net\/GCCA_CPS/) - { - $cert_alias = "entrustglobalclientca"; - } - elsif ($cert =~ /www.entrust.net\/CPS_2048/) - { - $cert_alias = "entrust2048ca"; - } - elsif ($cert =~ /www.entrust.net\/CPS /) - { - $cert_alias = "entrustsslca"; - } - elsif ($cert =~ /www.entrust.net\/SSL_CPS/) - { - $cert_alias = "entrustgsslca"; - } - elsif ($cert =~ /The Go Daddy Group/) - { - $cert_alias = "godaddyclass2ca"; - } - elsif ($cert =~ /Starfield Class 2 Certification Authority/) - { - $cert_alias = "starfieldclass2ca"; - } - elsif ($cert =~ /ValiCert Class 2 Policy Validation Authority/) - { - $cert_alias = "valicertclass2ca"; - } - elsif ($cert =~ /GeoTrust Global CA$/) - { - $cert_alias = "geotrustglobalca"; - } - elsif ($cert =~ /Equifax Secure Certificate Authority/) - { - $cert_alias = "equifaxsecureca"; - } - elsif ($cert =~ /Equifax Secure eBusiness CA-1/) - { - $cert_alias = "equifaxsecureebusinessca1"; - } - elsif ($cert =~ /Equifax Secure eBusiness CA-2/) - { - $cert_alias = "equifaxsecureebusinessca2"; - } - elsif ($cert =~ /Equifax Secure Global eBusiness CA-1/) - { - $cert_alias = "equifaxsecureglobalebusinessca1"; - } - elsif ($cert =~ /Sonera Class1 CA/) - { - $cert_alias = "soneraclass1ca"; - } - elsif ($cert =~ /Sonera Class2 CA/) - { - $cert_alias = "soneraclass2ca"; - } - elsif ($cert =~ /AAA Certificate Services/) - { - $cert_alias = "comodoaaaca"; - } - elsif ($cert =~ /AddTrust Class 1 CA Root/) - { - $cert_alias = "addtrustclass1ca"; - } - elsif ($cert =~ /AddTrust External CA Root/) - { - $cert_alias = "addtrustexternalca"; - } - elsif ($cert =~ /AddTrust Qualified CA Root/) - { - $cert_alias = "addtrustqualifiedca"; - } - elsif ($cert =~ /UTN-USERFirst-Hardware/) - { - $cert_alias = "utnuserfirsthardwareca"; - } - elsif ($cert =~ /UTN-USERFirst-Client Authentication and Email/) - { - $cert_alias = "utnuserfirstclientauthemailca"; - } - elsif ($cert =~ /UTN - DATACorp SGC/) - { - $cert_alias = "utndatacorpsgcca"; - } - elsif ($cert =~ /UTN-USERFirst-Object/) - { - $cert_alias = "utnuserfirstobjectca"; - } - elsif ($cert =~ /America Online Root Certification Authority 1/) - { - $cert_alias = "aolrootca1"; - } - elsif ($cert =~ /DigiCert Assured ID Root CA/) - { - $cert_alias = "digicertassuredidrootca"; - } - elsif ($cert =~ /DigiCert Global Root CA/) - { - $cert_alias = "digicertglobalrootca"; - } - elsif ($cert =~ /DigiCert High Assurance EV Root CA/) - { - $cert_alias = "digicerthighassuranceevrootca"; - } - elsif ($cert =~ /GlobalSign Root CA$/) - { - $cert_alias = "globalsignca"; - } - elsif ($cert =~ /GlobalSign Root CA - R2/) - { - $cert_alias = "globalsignr2ca"; - } - elsif ($cert =~ /Elektronik.*Kas.*2005/) - { - $cert_alias = "extra-elektronikkas2005"; - } - elsif ($cert =~ /Elektronik/) - { - $cert_alias = "extra-elektronik2005"; - } - # Mozilla does not provide these certificates: - # baltimorecodesigningca - # gtecybertrust5ca - # trustcenterclass2caii - # trustcenterclass4caii - # trustcenteruniversalcai - else - { - # Generate an alias using the OU and CN attributes of the - # Issuer field if both are present, otherwise use only the - # CN attribute. The Issuer field must have either the OU - # or the CN attribute. - $_ = $cert; - if ($cert =~ /OU=/) - { - s/Issuer:.*?OU=//; - # Remove other occurrences of OU=. - s/OU=.*CN=//; - # Remove CN= if there were not other occurrences of OU=. - s/CN=//; - s/\/emailAddress.*//; - s/Certificate Authority/ca/g; - s/Certification Authority/ca/g; - } - elsif ($cert =~ /CN=/) - { - s/Issuer:.*CN=//; - s/\/emailAddress.*//; - s/Certificate Authority/ca/g; - s/Certification Authority/ca/g; - } - s/\W//g; - tr/A-Z/a-z/; - $cert_alias = "extra-$_"; - - } - while (-e "$cert_alias.pem") - { - $cert_alias = "$cert_alias" . "_"; - } - } - # When it attempts to parse: - # - # Class 3 Public Primary Certification Authority - G2, Version 3 - # - # keytool says: - # - # #2: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false - # Unparseable AuthorityInfoAccess extension due to - # java.io.IOException: Invalid encoding of URI - # - # If we do not exclude this file - # openjdk/jdk/test/lib/security/cacerts/VerifyCACerts.java fails - # on this cert, printing: - # - # Couldn't verify: java.security.SignatureException: Signature - # does not match. - # - elsif ($cert =~ - /A6:0F:34:C8:62:6C:81:F6:8B:F7:7D:A9:F6:67:58:8A:90:3F:7D:36/) - { - $write_current_cert = 0; - $pem_file_count--; - } - elsif ($cert eq "-----BEGIN CERTIFICATE-----\n") - { - $_ = $cert; - s/\W//g; - tr/A-Z/a-z/; - $cert_alias = "extra-$_"; - while (-e "$cert_alias.pem") - { - $cert_alias = "$cert_alias" . "_"; - } - if ($in_cert_block != 0) - { - die "$file is malformed."; - } - $in_cert_block = 1; - if ($write_current_cert == 1) - { - $pem_file_count++; - if (-e "$cert_alias.pem") - { - print "$cert_alias"; - die "already exists" - } - open(PEM, ">$cert_alias.pem"); - print PEM $cert; - } - } - elsif ($cert eq "-----END CERTIFICATE-----\n") - { - $in_cert_block = 0; - if ($write_current_cert == 1) - { - print PEM $cert; - close(PEM); - } - $write_current_cert = 1 - } - else - { - if ($in_cert_block == 1 && $write_current_cert == 1) - { - print PEM $cert; - } - } -} - -# Check that the correct number of .pem files were produced. -@pem_files = <*.pem>; -if (@pem_files != $pem_file_count) -{ - print "$pem_file_count"; - die "Number of .pem files produced does not match". - " number of certs read from $file."; -} - -# Now store each cert in the 'cacerts' file using keytool. -$certs_written_count = 0; -foreach $pem_file (@pem_files) -{ - system "$ARGV[0] -noprompt -import". - " -alias `basename $pem_file .pem`". - " -keystore cacerts -storepass 'changeit' -file $pem_file"; - unlink($pem_file); - $certs_written_count++; -} - -# Check that the correct number of certs were added to the keystore. -if ($certs_written_count != $pem_file_count) -{ - die "Number of certs added to keystore does not match". - " number of certs read from $file."; -} diff --git a/pkgs/by-name/ja/java/openjdk/ignore-LegalNoticeFilePlugin-jdk17.patch b/pkgs/by-name/ja/java/openjdk/ignore-LegalNoticeFilePlugin-jdk17.patch deleted file mode 100644 index 3bb610e..0000000 --- a/pkgs/by-name/ja/java/openjdk/ignore-LegalNoticeFilePlugin-jdk17.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- a/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/LegalNoticeFilePlugin.java -+++ b/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/LegalNoticeFilePlugin.java -@@ -112,18 +112,6 @@ - .filter(e -> Arrays.equals(e.contentBytes(), entry.contentBytes())) - .findFirst(); - if (!otarget.isPresent()) { -- if (errorIfNotSameContent) { -- // all legal notices of the same file name are expected -- // to contain the same content -- Optional ores = -- entries.stream().filter(e -> e.linkedTarget() == null) -- .findAny(); -- -- if (ores.isPresent()) { -- throw new PluginException(ores.get().path() + " " + -- entry.path() + " contain different content"); -- } -- } - entries.add(entry); - } else { - entries.add(ResourcePoolEntry.createSymLink(entry.path(), diff --git a/pkgs/by-name/ja/java/openjdk/ignore-LegalNoticeFilePlugin-jdk18.patch b/pkgs/by-name/ja/java/openjdk/ignore-LegalNoticeFilePlugin-jdk18.patch deleted file mode 100644 index cda9358..0000000 --- a/pkgs/by-name/ja/java/openjdk/ignore-LegalNoticeFilePlugin-jdk18.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- a/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/LegalNoticeFilePlugin.java -+++ b/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/LegalNoticeFilePlugin.java -@@ -112,18 +112,6 @@ - .filter(e -> Arrays.equals(e.contentBytes(), entry.contentBytes())) - .findFirst(); - if (otarget.isEmpty()) { -- if (errorIfNotSameContent) { -- // all legal notices of the same file name are expected -- // to contain the same content -- Optional ores = -- entries.stream().filter(e -> e.linkedTarget() == null) -- .findAny(); -- -- if (ores.isPresent()) { -- throw new PluginException(ores.get().path() + " " + -- entry.path() + " contain different content"); -- } -- } - entries.add(entry); - } else { - entries.add(ResourcePoolEntry.createSymLink(entry.path(), diff --git a/pkgs/by-name/ja/java/openjdk/increase-javadoc-heap-jdk13.patch b/pkgs/by-name/ja/java/openjdk/increase-javadoc-heap-jdk13.patch deleted file mode 100644 index 6e48db6..0000000 --- a/pkgs/by-name/ja/java/openjdk/increase-javadoc-heap-jdk13.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -uw -r a/make/Docs.gmk b/make/Docs.gmk ---- a/make/Docs.gmk 2019-10-09 08:05:43.107349180 -0400 -+++ b/make/Docs.gmk 2019-10-09 08:09:29.330118790 -0400 -@@ -277,7 +277,7 @@ - $1_ALL_MODULES := $$(sort $$($1_MODULES) $$($1_INDIRECT_EXPORTS)) - - $1_JAVA_ARGS := -Dextlink.spec.version=$$(VERSION_SPECIFICATION) \ -- -Djspec.version=$$(VERSION_SPECIFICATION) -+ -Djspec.version=$$(VERSION_SPECIFICATION) -Xmx1G - - ifeq ($$(ENABLE_FULL_DOCS), true) - # Tell the ModuleGraph taglet to generate html links to soon-to-be-created diff --git a/pkgs/by-name/ja/java/openjdk/increase-javadoc-heap.patch b/pkgs/by-name/ja/java/openjdk/increase-javadoc-heap.patch deleted file mode 100644 index 6a1b253..0000000 --- a/pkgs/by-name/ja/java/openjdk/increase-javadoc-heap.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/make/Docs.gmk 2019-07-24 13:07:37.013405090 -0400 -+++ b/make/Docs.gmk 2019-07-24 13:07:28.406550535 -0400 -@@ -274,7 +274,7 @@ - $1_INDIRECT_EXPORTS := $$(call FindTransitiveIndirectDepsForModules, $$($1_MODULES)) - $1_ALL_MODULES := $$(sort $$($1_MODULES) $$($1_INDIRECT_EXPORTS)) - -- $1_JAVA_ARGS := -Dextlink.spec.version=$$(VERSION_SPECIFICATION) -+ $1_JAVA_ARGS := -Dextlink.spec.version=$$(VERSION_SPECIFICATION) -Xmx1G - - ifeq ($$(ENABLE_FULL_DOCS), true) - # Tell the ModuleGraph taglet to generate html links to soon-to-be-created - diff --git a/pkgs/by-name/ja/java/openjdk/jre.nix b/pkgs/by-name/ja/java/openjdk/jre.nix deleted file mode 100644 index 02f6da9..0000000 --- a/pkgs/by-name/ja/java/openjdk/jre.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ stdenv -, jdk -, lib -, callPackage -, modules ? [ "java.base" ] -}: - -let - jre = stdenv.mkDerivation { - pname = "${jdk.pname}-minimal-jre"; - version = jdk.version; - - buildInputs = [ jdk ]; - - dontUnpack = true; - - # Strip more heavily than the default '-S', since if you're - # using this derivation you probably care about this. - stripDebugFlags = [ "--strip-unneeded" ]; - - buildPhase = '' - runHook preBuild - - jlink --module-path ${jdk}/lib/openjdk/jmods --add-modules ${lib.concatStringsSep "," modules} --output $out - - runHook postBuild - ''; - - dontInstall = true; - - passthru = { - home = "${jre}"; - tests = [ - (callPackage ./tests/test_jre_minimal.nix {}) - (callPackage ./tests/test_jre_minimal_with_logging.nix {}) - ]; - }; - }; -in jre diff --git a/pkgs/by-name/ja/java/openjdk/make-bootstrap.nix b/pkgs/by-name/ja/java/openjdk/make-bootstrap.nix deleted file mode 100644 index aac5441..0000000 --- a/pkgs/by-name/ja/java/openjdk/make-bootstrap.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ runCommand, openjdk, nukeReferences }: - -runCommand "${openjdk.name}-bootstrap.tar.xz" {} '' - mkdir -pv openjdk-bootstrap/lib - - # Do a deep copy of the openjdk - cp -vrL ${openjdk.home} openjdk-bootstrap/lib - - # Includes are needed for building the native jvm - cp -vrL ${openjdk}/include openjdk-bootstrap - - # The binaries are actually stored in the openjdk lib - ln -sv lib/openjdk/bin openjdk-bootstrap/bin - find . -name libjli.so - (cd openjdk-bootstrap/lib; find . -name libjli.so -exec ln -sfv {} libjli.so \;) - - chmod -R +w openjdk-bootstrap - - # Remove components we don't need - find openjdk-bootstrap -name \*.diz -exec rm {} \; - find openjdk-bootstrap -name \*.ttf -exec rm {} \; - find openjdk-bootstrap -name \*.gif -exec rm {} \; - find openjdk-bootstrap -name src.zip -exec rm {} \; - rm -rf openjdk-bootstrap/lib/openjdk/jre/bin - - # Remove all of the references to the native nix store - find openjdk-bootstrap -print0 | xargs -0 ${nukeReferences}/bin/nuke-refs - - # Create the output tarball - tar cv openjdk-bootstrap | xz > $out -'' diff --git a/pkgs/by-name/ja/java/openjdk/meta.nix b/pkgs/by-name/ja/java/openjdk/meta.nix deleted file mode 100644 index 74383dd..0000000 --- a/pkgs/by-name/ja/java/openjdk/meta.nix +++ /dev/null @@ -1,11 +0,0 @@ -lib: version: with lib; { - homepage = "https://openjdk.java.net/"; - 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." - ]; -} diff --git a/pkgs/by-name/ja/java/openjdk/openjfx/11.nix b/pkgs/by-name/ja/java/openjdk/openjfx/11.nix deleted file mode 100644 index 424c41c..0000000 --- a/pkgs/by-name/ja/java/openjdk/openjfx/11.nix +++ /dev/null @@ -1,136 +0,0 @@ -{ 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 - major = "11"; - update = ".0.18"; - build = "1"; - repover = "${major}${update}+${build}"; - gradle_ = (gradle_7.override { - java = openjdk11-bootstrap; - }); - - icuVersionWithSep = s: "71${s}1"; - icuPath = "download/release-${icuVersionWithSep "-"}/icu4c-${icuVersionWithSep "_"}-data-bin-l.zip"; - icuData = fetchurl { - url = "https://github.com/unicode-org/icu/releases/${icuPath}"; - hash = "sha256-pVWIy0BkICsthA5mxhR9SJQHleMNnaEcGl/AaLi5qZM="; - }; - icuFakeRepository = runCommand "icu-data-repository" {} '' - install -Dm644 ${icuData} $out/${icuPath} - ''; - - makePackage = args: stdenv.mkDerivation ({ - version = "${major}${update}-${build}"; - - 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 ]; - - dontUseCmakeConfigure = true; - - 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 - ''; - - config = writeText "gradle.properties" ('' - CONF = Release - JDK_HOME = ${openjdk11-bootstrap.home} - '' + args.gradleProperties or ""); - - 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 - - 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. - # Anyone who knows a better way? - deps = makePackage { - pname = "openjfx-deps"; - - # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar) - installPhase = '' - find $GRADLE_USER_HOME -type f -regex '.*/modules.*\.\(jar\|pom\)' \ - | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ - | sh - rm -rf $out/tmp - ''; - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = "sha256-syceJMUEknBDCHK8eGs6rUU3IQn+HnQfURfCrDxYPa9="; - }; - -in makePackage { - pname = "openjfx-modular-sdk"; - - gradleProperties = '' - COMPILE_MEDIA = ${lib.boolToString withMedia} - COMPILE_WEBKIT = ${lib.boolToString withWebKit} - ${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"} - ''; - - preBuild = '' - swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)" - substituteInPlace build.gradle \ - --replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \ - --replace 'name: SWT_FILE_NAME' "files('$swtJar')" - ''; - - installPhase = '' - cp -r build/modular-sdk $out - ''; - - stripDebugList = [ "." ]; - - postFixup = '' - # Remove references to bootstrap. - find "$out" -name \*.so | while read lib; do - new_refs="$(patchelf --print-rpath "$lib" | sed -E 's,:?${openjdk11-bootstrap}[^:]*,,')" - patchelf --set-rpath "$new_refs" "$lib" - done - - # Remove licenses, otherwise they may conflict with the ones included in the openjdk - rm -rf $out/modules_legal/* - ''; - - disallowedReferences = [ openjdk11-bootstrap ]; - - passthru.deps = deps; - - # Uses a lot of RAM, OOMs otherwise - requiredSystemFeatures = [ "big-parallel" ]; - - meta = with lib; { - homepage = "http://openjdk.java.net/projects/openjfx/"; - license = licenses.gpl2; - description = "The next-generation Java client toolkit"; - maintainers = with maintainers; [ abbradar ]; - platforms = [ "x86_64-linux" ]; - }; -} diff --git a/pkgs/by-name/ja/java/openjdk/openjfx/15.nix b/pkgs/by-name/ja/java/openjdk/openjfx/15.nix deleted file mode 100644 index 1fb48f4..0000000 --- a/pkgs/by-name/ja/java/openjdk/openjfx/15.nix +++ /dev/null @@ -1,129 +0,0 @@ -{ 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 - major = "15"; - update = ".0.1"; - build = "+1"; - repover = "${major}${update}${build}"; - gradle_ = (gradle_6.override { - java = openjdk11_headless; - }); - - makePackage = args: stdenv.mkDerivation ({ - version = "${major}${update}${build}"; - - 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 ]; - - dontUseCmakeConfigure = true; - - 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" - - # 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 - - 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); - - # 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. - # Anyone who knows a better way? - deps = makePackage { - pname = "openjfx-deps"; - - # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar) - installPhase = '' - find $GRADLE_USER_HOME -type f -regex '.*/modules.*\.\(jar\|pom\)' \ - | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ - | sh - rm -rf $out/tmp - ''; - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = "sha256-fGLTMM9s/Vn7eMzn6OQR3tL0cGbAYc7c4J4/aW3JvkI="; - }; - -in makePackage { - pname = "openjfx-modular-sdk"; - - gradleProperties = '' - COMPILE_MEDIA = ${lib.boolToString withMedia} - COMPILE_WEBKIT = ${lib.boolToString withWebKit} - ''; - - preBuild = '' - swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)" - substituteInPlace build.gradle \ - --replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \ - --replace 'name: SWT_FILE_NAME' "files('$swtJar')" - ''; - - installPhase = '' - cp -r build/modular-sdk $out - ''; - - # glib-2.62 deprecations - # -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 - env.NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS -fcommon"; - - stripDebugList = [ "." ]; - - postFixup = '' - # Remove references to bootstrap. - export openjdkOutPath='${openjdk11_headless.outPath}' - find "$out" -name \*.so | while read lib; do - new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')" - patchelf --set-rpath "$new_refs" "$lib" - done - ''; - - disallowedReferences = [ openjdk11_headless ]; - - passthru.deps = deps; - - meta = with lib; { - homepage = "http://openjdk.java.net/projects/openjfx/"; - license = licenses.gpl2; - description = "The next-generation Java client toolkit"; - maintainers = with maintainers; [ abbradar ]; - 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 deleted file mode 100644 index c5d6c6a..0000000 --- a/pkgs/by-name/ja/java/openjdk/openjfx/17.nix +++ /dev/null @@ -1,128 +0,0 @@ -{ 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 - major = "17"; - update = ".0.6"; - build = "+3"; - repover = "${major}${update}${build}"; - gradle_ = (gradle_7.override { - java = openjdk17_headless; - }); - - icuVersionWithSep = s: "71${s}1"; - icuPath = "download/release-${icuVersionWithSep "-"}/icu4c-${icuVersionWithSep "_"}-data-bin-l.zip"; - icuData = fetchurl { - url = "https://github.com/unicode-org/icu/releases/${icuPath}"; - hash = "sha256-pVWIy0BkICsthA5mxhR9SJQHleMNnaEcGl/AaLi5qZM="; - }; - icuFakeRepository = runCommand "icu-data-repository" {} '' - install -Dm644 ${icuData} $out/${icuPath} - ''; - - makePackage = args: stdenv.mkDerivation ({ - version = "${major}${update}${build}"; - - 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 ]; - - 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 - ''; - - config = writeText "gradle.properties" ('' - CONF = Release - JDK_HOME = ${openjdk17_headless.home} - '' + args.gradleProperties or ""); - - 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 - - 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. - # Anyone who knows a better way? - deps = makePackage { - pname = "openjfx-deps"; - - # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar) - installPhase = '' - find $GRADLE_USER_HOME -type f -regex '.*/modules.*\.\(jar\|pom\)' \ - | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ - | sh - rm -rf $out/tmp - ''; - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = "sha256-dV7/U5GpFxhI13smZ587C6cVE4FRNPY0zexZkYK4Yqo="; - }; - -in makePackage { - pname = "openjfx-modular-sdk"; - - gradleProperties = '' - COMPILE_MEDIA = ${lib.boolToString withMedia} - COMPILE_WEBKIT = ${lib.boolToString withWebKit} - ${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"} - ''; - - preBuild = '' - swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)" - substituteInPlace build.gradle \ - --replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \ - --replace 'name: SWT_FILE_NAME' "files('$swtJar')" - ''; - - installPhase = '' - cp -r build/modular-sdk $out - ''; - - stripDebugList = [ "." ]; - - postFixup = '' - # Remove references to bootstrap. - export openjdkOutPath='${openjdk17_headless.outPath}' - find "$out" -name \*.so | while read lib; do - new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')" - patchelf --set-rpath "$new_refs" "$lib" - done - ''; - - disallowedReferences = [ openjdk17_headless ]; - - passthru.deps = deps; - - meta = with lib; { - homepage = "http://openjdk.java.net/projects/openjfx/"; - license = licenses.gpl2; - description = "The next-generation Java client toolkit"; - maintainers = with maintainers; [ abbradar ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/ja/java/openjdk/openjfx/19.nix b/pkgs/by-name/ja/java/openjdk/openjfx/19.nix deleted file mode 100644 index 6f173db..0000000 --- a/pkgs/by-name/ja/java/openjdk/openjfx/19.nix +++ /dev/null @@ -1,145 +0,0 @@ -{ 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 - major = "19"; - 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; - }); - - icuVersionWithSep = s: "68${s}2"; - icuPath = "download/release-${icuVersionWithSep "-"}/icu4c-${icuVersionWithSep "."}-data-bin-l.zip"; - icuData = fetchurl { - url = "https://github.com/unicode-org/icu/releases/${icuPath}"; - hash = "sha256-ieQCLBTNrskuf8j3IUQS3QLIAQzLom/O58muMP363Lw="; - }; - icuFakeRepository = runCommand "icu-data-repository" {} '' - install -Dm644 ${icuData} $out/${icuPath} - ''; - - makePackage = args: stdenv.mkDerivation ({ - version = "${major}${update}${build}"; - - 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="; - }) - ]; - - 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 ]; - - dontUseCmakeConfigure = true; - - config = writeText "gradle.properties" ('' - CONF = Release - JDK_HOME = ${openjdk19_headless.home} - '' + args.gradleProperties or ""); - - 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 - - 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. - # Anyone who knows a better way? - deps = makePackage { - pname = "openjfx-deps"; - - # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar) - installPhase = '' - find $GRADLE_USER_HOME -type f -regex '.*/modules.*\.\(jar\|pom\)' \ - | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ - | sh - rm -rf $out/tmp - ''; - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - # suspiciously the same as for openjfx 17 ... - # could they really not have changed any of their dependencies? - # or did we miss changing another upstream hash when copy-pasting? - outputHash = "sha256-dV7/U5GpFxhI13smZ587C6cVE4FRNPY0zexZkYK4Yqo="; - }; - -in makePackage { - pname = "openjfx-modular-sdk"; - - gradleProperties = '' - COMPILE_MEDIA = ${lib.boolToString withMedia} - COMPILE_WEBKIT = ${lib.boolToString withWebKit} - ${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"} - ''; - - preBuild = '' - swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)" - substituteInPlace build.gradle \ - --replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \ - --replace 'name: SWT_FILE_NAME' "files('$swtJar')" - ''; - - installPhase = '' - cp -r build/modular-sdk $out - ''; - - stripDebugList = [ "." ]; - - postFixup = '' - # Remove references to bootstrap. - export openjdkOutPath='${openjdk19_headless.outPath}' - find "$out" -name \*.so | while read lib; do - new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')" - patchelf --set-rpath "$new_refs" "$lib" - done - ''; - - disallowedReferences = [ openjdk17_headless openjdk19_headless ]; - - passthru.deps = deps; - - meta = with lib; { - homepage = "https://openjdk.org/projects/openjfx/"; - license = licenses.gpl2Classpath; - description = "The next-generation Java client toolkit"; - maintainers = with maintainers; [ abbradar ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/ja/java/openjdk/openjfx/20.nix b/pkgs/by-name/ja/java/openjdk/openjfx/20.nix deleted file mode 100644 index 794590d..0000000 --- a/pkgs/by-name/ja/java/openjdk/openjfx/20.nix +++ /dev/null @@ -1,132 +0,0 @@ -{ 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 - major = "20"; - update = ""; - build = "+19"; - repover = "${major}${update}${build}"; - 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"; - icuData = fetchurl { - url = "https://github.com/unicode-org/icu/releases/${icuPath}"; - hash = "sha256-pVWIy0BkICsthA5mxhR9SJQHleMNnaEcGl/AaLi5qZM="; - }; - icuFakeRepository = runCommand "icu-data-repository" {} '' - install -Dm644 ${icuData} $out/${icuPath} - ''; - - makePackage = args: stdenv.mkDerivation ({ - version = "${major}${update}${build}"; - - 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 ]; - - 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 - ''; - - config = writeText "gradle.properties" ('' - CONF = Release - JDK_HOME = ${openjdk19_headless.home} - '' + args.gradleProperties or ""); - - 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 - - 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. - # Anyone who knows a better way? - deps = makePackage { - pname = "openjfx-deps"; - - # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar) - installPhase = '' - find $GRADLE_USER_HOME -type f -regex '.*/modules.*\.\(jar\|pom\)' \ - | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ - | sh - rm -rf $out/tmp - ''; - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - # suspiciously the same as for openjfx 17 ... - # could they really not have changed any of their dependencies? - # or did we miss changing another upstream hash when copy-pasting? - outputHash = "sha256-dV7/U5GpFxhI13smZ587C6cVE4FRNPY0zexZkYK4Yqo="; - }; - -in makePackage { - pname = "openjfx-modular-sdk"; - - gradleProperties = '' - COMPILE_MEDIA = ${lib.boolToString withMedia} - COMPILE_WEBKIT = ${lib.boolToString withWebKit} - ${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"} - ''; - - preBuild = '' - swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)" - substituteInPlace build.gradle \ - --replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \ - --replace 'name: SWT_FILE_NAME' "files('$swtJar')" - ''; - - installPhase = '' - cp -r build/modular-sdk $out - ''; - - stripDebugList = [ "." ]; - - postFixup = '' - # Remove references to bootstrap. - export openjdkOutPath='${openjdk19_headless.outPath}' - find "$out" -name \*.so | while read lib; do - new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')" - patchelf --set-rpath "$new_refs" "$lib" - done - ''; - - disallowedReferences = [ openjdk17_headless openjdk19_headless ]; - - passthru.deps = deps; - - meta = with lib; { - homepage = "https://openjdk.org/projects/openjfx/"; - license = licenses.gpl2Classpath; - description = "The next-generation Java client toolkit"; - maintainers = with maintainers; [ abbradar ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/ja/java/openjdk/openjfx/21.nix b/pkgs/by-name/ja/java/openjdk/openjfx/21.nix deleted file mode 100644 index f49dbe3..0000000 --- a/pkgs/by-name/ja/java/openjdk/openjfx/21.nix +++ /dev/null @@ -1,132 +0,0 @@ -{ 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 - major = "21"; - update = ""; - build = "-ga"; - repover = "${major}${update}${build}"; - 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"; - icuData = fetchurl { - url = "https://github.com/unicode-org/icu/releases/${icuPath}"; - hash = "sha256-QDgpjuAqDDiRcYXvj/Tr3pyLVSx3f9A+TfbGtLGCXiA="; - }; - icuFakeRepository = runCommand "icu-data-repository" {} '' - install -Dm644 ${icuData} $out/${icuPath} - ''; - - makePackage = args: stdenv.mkDerivation ({ - version = "${major}${update}${build}"; - - 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 ]; - - 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 - ''; - - config = writeText "gradle.properties" ('' - CONF = Release - JDK_HOME = ${openjdk19_headless.home} - '' + args.gradleProperties or ""); - - 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 - - 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. - # Anyone who knows a better way? - deps = makePackage { - pname = "openjfx-deps"; - - # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar) - installPhase = '' - find $GRADLE_USER_HOME -type f -regex '.*/modules.*\.\(jar\|pom\)' \ - | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ - | sh - rm -rf $out/tmp - ''; - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - # suspiciously the same as for openjfx 17 ... - # could they really not have changed any of their dependencies? - # or did we miss changing another upstream hash when copy-pasting? - outputHash = "sha256-dV7/U5GpFxhI13smZ587C6cVE4FRNPY0zexZkYK4Yqo="; - }; - -in makePackage { - pname = "openjfx-modular-sdk"; - - gradleProperties = '' - COMPILE_MEDIA = ${lib.boolToString withMedia} - COMPILE_WEBKIT = ${lib.boolToString withWebKit} - ${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"} - ''; - - preBuild = '' - swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)" - substituteInPlace build.gradle \ - --replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \ - --replace 'name: SWT_FILE_NAME' "files('$swtJar')" - ''; - - installPhase = '' - cp -r build/modular-sdk $out - ''; - - stripDebugList = [ "." ]; - - postFixup = '' - # Remove references to bootstrap. - export openjdkOutPath='${openjdk19_headless.outPath}' - find "$out" -name \*.so | while read lib; do - new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')" - patchelf --set-rpath "$new_refs" "$lib" - done - ''; - - disallowedReferences = [ openjdk17_headless openjdk19_headless ]; - - passthru.deps = deps; - - meta = with lib; { - homepage = "https://openjdk.org/projects/openjfx/"; - license = licenses.gpl2Classpath; - description = "The next-generation Java client toolkit"; - maintainers = with maintainers; [ abbradar ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/ja/java/openjdk/openjfx/22.nix b/pkgs/by-name/ja/java/openjdk/openjfx/22.nix deleted file mode 100644 index d585dbd..0000000 --- a/pkgs/by-name/ja/java/openjdk/openjfx/22.nix +++ /dev/null @@ -1,138 +0,0 @@ -{ 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 - major = "22"; - update = ""; - build = "+30"; - repover = "${major}${update}${build}"; - - icuVersionWithSep = s: "73${s}1"; - icuPath = "download/release-${icuVersionWithSep "-"}/icu4c-${icuVersionWithSep "_"}-data-bin-l.zip"; - icuData = fetchurl { - url = "https://github.com/unicode-org/icu/releases/${icuPath}"; - hash = "sha256-QDgpjuAqDDiRcYXvj/Tr3pyLVSx3f9A+TfbGtLGCXiA="; - }; - icuFakeRepository = runCommand "icu-data-repository" {} '' - install -Dm644 ${icuData} $out/${icuPath} - ''; - - makePackage = args: stdenv.mkDerivation ({ - version = "${major}${update}${build}"; - - 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 ]; - - dontUseCmakeConfigure = true; - - config = writeText "gradle.properties" ('' - CONF = Release - JDK_HOME = ${openjdk21_headless.home} - '' + args.gradleProperties or ""); - - 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 - - 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. - # Anyone who knows a better way? - deps = makePackage { - pname = "openjfx-deps"; - - # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar) - installPhase = '' - find $GRADLE_USER_HOME -type f -regex '.*/modules.*\.\(jar\|pom\)' \ - | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ - | sh - rm -rf $out/tmp - ''; - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = "sha256-2I7LvYcudlB4DKJ/wEiTjY6nICUxUY52euosUqOA+Bs="; - }; - -in -makePackage { - pname = "openjfx-modular-sdk"; - - gradleProperties = '' - COMPILE_MEDIA = ${lib.boolToString withMedia} - COMPILE_WEBKIT = ${lib.boolToString withWebKit} - ${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"} - ''; - - preBuild = '' - swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)" - substituteInPlace build.gradle \ - --replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \ - --replace 'name: SWT_FILE_NAME' "files('$swtJar')" - ''; - - installPhase = '' - cp -r build/modular-sdk $out - ''; - - stripDebugList = [ "." ]; - - postFixup = '' - # Remove references to bootstrap. - export openjdkOutPath='${openjdk21_headless.outPath}' - find "$out" -name \*.so | while read lib; do - new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')" - patchelf --set-rpath "$new_refs" "$lib" - done - ''; - - disallowedReferences = [ openjdk21_headless openjdk21_headless ]; - - passthru.deps = deps; - - meta = with lib; { - homepage = "https://openjdk.org/projects/openjfx/"; - license = licenses.gpl2Classpath; - description = "The next-generation Java client toolkit"; - maintainers = with maintainers; [ abbradar ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/ja/java/openjdk/read-truststore-from-env-jdk10.patch b/pkgs/by-name/ja/java/openjdk/read-truststore-from-env-jdk10.patch deleted file mode 100644 index 6203064..0000000 --- a/pkgs/by-name/ja/java/openjdk/read-truststore-from-env-jdk10.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- a/src/java.base/share/classes/sun/security/ssl/TrustStoreManager.java 2017-06-26 21:48:25.000000000 -0400 -+++ b/src/java.base/share/classes/sun/security/ssl/TrustStoreManager.java 2017-07-05 20:45:57.491295030 -0400 -@@ -71,6 +71,7 @@ - * - * The preference of the default trusted KeyStore is: - * javax.net.ssl.trustStore -+ * system environment variable JAVAX_NET_SSL_TRUSTSTORE - * jssecacerts - * cacerts - */ -@@ -132,7 +133,8 @@ - public TrustStoreDescriptor run() { - // Get the system properties for trust store. - String storePropName = System.getProperty( -- "javax.net.ssl.trustStore", jsseDefaultStore); -+ "javax.net.ssl.trustStore", -+ System.getenv("JAVAX_NET_SSL_TRUSTSTORE")); - String storePropType = System.getProperty( - "javax.net.ssl.trustStoreType", - KeyStore.getDefaultType()); -@@ -144,6 +146,9 @@ - String temporaryName = ""; - File temporaryFile = null; - long temporaryTime = 0L; -+ if (storePropName == null) { -+ storePropName = jsseDefaultStore; -+ } - if (!"NONE".equals(storePropName)) { - String[] fileNames = - new String[] {storePropName, defaultStore}; diff --git a/pkgs/by-name/ja/java/openjdk/read-truststore-from-env-jdk8.patch b/pkgs/by-name/ja/java/openjdk/read-truststore-from-env-jdk8.patch deleted file mode 100644 index 08cf554..0000000 --- a/pkgs/by-name/ja/java/openjdk/read-truststore-from-env-jdk8.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- a/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java 2017-06-26 21:48:25.000000000 -0400 -+++ b/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java 2017-07-05 20:45:57.491295030 -0400 -@@ -71,6 +71,7 @@ - * - * The preference of the default trusted KeyStore is: - * javax.net.ssl.trustStore -+ * system environment variable JAVAX_NET_SSL_TRUSTSTORE - * jssecacerts - * cacerts - */ -@@ -132,7 +133,8 @@ - public TrustStoreDescriptor run() { - // Get the system properties for trust store. - String storePropName = System.getProperty( -- "javax.net.ssl.trustStore", jsseDefaultStore); -+ "javax.net.ssl.trustStore", -+ System.getenv("JAVAX_NET_SSL_TRUSTSTORE")); - String storePropType = System.getProperty( - "javax.net.ssl.trustStoreType", - KeyStore.getDefaultType()); -@@ -144,6 +146,9 @@ - String temporaryName = ""; - File temporaryFile = null; - long temporaryTime = 0L; -+ if (storePropName == null) { -+ storePropName = jsseDefaultStore; -+ } - if (!"NONE".equals(storePropName)) { - String[] fileNames = - new String[] {storePropName, defaultStore}; diff --git a/pkgs/by-name/ja/java/openjdk/swing-use-gtk-jdk10.patch b/pkgs/by-name/ja/java/openjdk/swing-use-gtk-jdk10.patch deleted file mode 100644 index b9258c5..0000000 --- a/pkgs/by-name/ja/java/openjdk/swing-use-gtk-jdk10.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- a/src/java.desktop/share/classes/javax/swing/UIManager.java -+++ b/src/java.desktop/share/classes/javax/swing/UIManager.java -@@ -607,11 +607,9 @@ - if (osType == OSInfo.OSType.WINDOWS) { - return "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"; - } else { -- String desktop = AccessController.doPrivileged(new GetPropertyAction("sun.desktop")); - Toolkit toolkit = Toolkit.getDefaultToolkit(); -- if ("gnome".equals(desktop) && -- toolkit instanceof SunToolkit && -- ((SunToolkit) toolkit).isNativeGTKAvailable()) { -+ if (toolkit instanceof SunToolkit && -+ ((SunToolkit) toolkit).isNativeGTKAvailable()) { - // May be set on Linux and Solaris boxs. - return "com.sun.java.swing.plaf.gtk.GTKLookAndFeel"; - } -@@ -1341,7 +1339,7 @@ - lafName = (String) lafData.remove("defaultlaf"); - } - if (lafName == null) { -- lafName = getCrossPlatformLookAndFeelClassName(); -+ lafName = getSystemLookAndFeelClassName(); - } - lafName = swingProps.getProperty(defaultLAFKey, lafName); diff --git a/pkgs/by-name/ja/java/openjdk/swing-use-gtk-jdk13.patch b/pkgs/by-name/ja/java/openjdk/swing-use-gtk-jdk13.patch deleted file mode 100644 index 8a1b9b6..0000000 --- a/pkgs/by-name/ja/java/openjdk/swing-use-gtk-jdk13.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/src/java.desktop/share/classes/javax/swing/UIManager.java 2019-08-08 01:05:04.000000000 -0400 -+++ b/src/java.desktop/share/classes/javax/swing/UIManager.java 2019-10-09 08:20:31.791606748 -0400 -@@ -660,9 +660,8 @@ - Toolkit toolkit = Toolkit.getDefaultToolkit(); - if (toolkit instanceof SunToolkit) { - SunToolkit suntk = (SunToolkit)toolkit; -- String desktop = suntk.getDesktop(); - boolean gtkAvailable = suntk.isNativeGTKAvailable(); -- if ("gnome".equals(desktop) && gtkAvailable) { -+ if (gtkAvailable) { - return "com.sun.java.swing.plaf.gtk.GTKLookAndFeel"; - } - } -@@ -1397,7 +1396,7 @@ - lafName = lafData.remove("defaultlaf"); - } - if (lafName == null) { -- lafName = getCrossPlatformLookAndFeelClassName(); -+ lafName = getSystemLookAndFeelClassName(); - } - lafName = swingProps.getProperty(defaultLAFKey, lafName); - diff --git a/pkgs/by-name/ja/java/openjdk/swing-use-gtk-jdk8.patch b/pkgs/by-name/ja/java/openjdk/swing-use-gtk-jdk8.patch deleted file mode 100644 index 9538aad..0000000 --- a/pkgs/by-name/ja/java/openjdk/swing-use-gtk-jdk8.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff -ru3 a/jdk/src/share/classes/javax/swing/UIManager.java b/jdk/src/share/classes/javax/swing/UIManager.java ---- a/jdk/src/share/classes/javax/swing/UIManager.java 2016-07-26 00:41:37.000000000 +0300 -+++ b/jdk/src/share/classes/javax/swing/UIManager.java 2016-10-02 22:46:01.890071761 +0300 -@@ -607,11 +607,9 @@ - if (osType == OSInfo.OSType.WINDOWS) { - return "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"; - } else { -- String desktop = AccessController.doPrivileged(new GetPropertyAction("sun.desktop")); - Toolkit toolkit = Toolkit.getDefaultToolkit(); -- if ("gnome".equals(desktop) && -- toolkit instanceof SunToolkit && -- ((SunToolkit) toolkit).isNativeGTKAvailable()) { -+ if (toolkit instanceof SunToolkit && -+ ((SunToolkit) toolkit).isNativeGTKAvailable()) { - // May be set on Linux and Solaris boxs. - return "com.sun.java.swing.plaf.gtk.GTKLookAndFeel"; - } -@@ -1341,7 +1339,7 @@ - lafName = (String) lafData.remove("defaultlaf"); - } - if (lafName == null) { -- lafName = getCrossPlatformLookAndFeelClassName(); -+ lafName = getSystemLookAndFeelClassName(); - } - lafName = swingProps.getProperty(defaultLAFKey, lafName); - diff --git a/pkgs/by-name/ja/java/openjdk/tests/hello-logging.nix b/pkgs/by-name/ja/java/openjdk/tests/hello-logging.nix deleted file mode 100644 index 71f3a55..0000000 --- a/pkgs/by-name/ja/java/openjdk/tests/hello-logging.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ jdk -, jre -, pkgs -}: - -/* 'Hello world' Java application derivation for use in tests */ -let - source = pkgs.writeTextDir "src/Hello.java" '' - import java.util.logging.Logger; - import java.util.logging.Level; - - class Hello { - static Logger logger = Logger.getLogger(Hello.class.getName()); - - public static void main(String[] args) { - logger.log(Level.INFO, "Hello, world!"); - } - } - ''; -in - pkgs.stdenv.mkDerivation { - pname = "hello"; - version = "1.0.0"; - - src = source; - - 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/bin - cat >$out/bin/hello <$out/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 deleted file mode 100644 index dac9ec6..0000000 --- a/pkgs/by-name/ja/java/packages.nix +++ /dev/null @@ -1,74 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - javaPackages = recurseIntoAttrs (callPackage ./java-packages.nix { }); - - inherit (javaPackages) openjfx11 openjfx15 openjfx17 openjfx19 openjfx20 openjfx21 openjfx22; - openjfx = openjfx17; - - openjdk8-bootstrap = javaPackages.compiler.openjdk8-bootstrap; - openjdk8 = javaPackages.compiler.openjdk8; - openjdk8_headless = javaPackages.compiler.openjdk8.headless; - jdk8 = openjdk8; - jdk8_headless = openjdk8_headless; - jre8 = openjdk8.jre; - jre8_headless = openjdk8_headless.jre; - - openjdk11-bootstrap = javaPackages.compiler.openjdk11-bootstrap; - openjdk11 = javaPackages.compiler.openjdk11; - openjdk11_headless = javaPackages.compiler.openjdk11.headless; - jdk11 = openjdk11; - jdk11_headless = openjdk11_headless; - - openjdk17-bootstrap = javaPackages.compiler.openjdk17-bootstrap; - openjdk17 = javaPackages.compiler.openjdk17; - openjdk17_headless = javaPackages.compiler.openjdk17.headless; - jdk17 = openjdk17; - jdk17_headless = openjdk17_headless; - - openjdk16-bootstrap = javaPackages.compiler.openjdk16-bootstrap; - - openjdk19 = javaPackages.compiler.openjdk19; - openjdk19_headless = javaPackages.compiler.openjdk19.headless; - jdk19 = openjdk19; - jdk19_headless = openjdk19_headless; - - openjdk20 = javaPackages.compiler.openjdk20; - openjdk20_headless = javaPackages.compiler.openjdk20.headless; - jdk20 = openjdk20; - jdk20_headless = openjdk20_headless; - - openjdk21 = javaPackages.compiler.openjdk21; - openjdk21_headless = javaPackages.compiler.openjdk21.headless; - jdk21 = openjdk21; - jdk21_headless = openjdk21_headless; - - openjdk22 = javaPackages.compiler.openjdk22; - openjdk22_headless = javaPackages.compiler.openjdk22.headless; - jdk22 = openjdk22; - jdk22_headless = openjdk22_headless; - - /* default JDK */ - jdk = jdk21; - jdk_headless = jdk21_headless; - - # Since the introduction of the Java Platform Module System in Java 9, Java - # no longer ships a separate JRE package. - # - # If you are building a 'minimal' system/image, you are encouraged to use - # 'jre_minimal' to build a bespoke JRE containing only the modules you need. - # - # For a general-purpose system, 'jre' defaults to the full JDK: - jre = jdk; - jre_headless = jdk_headless; - - jre17_minimal = callPackage ./openjdk/jre.nix { - jdk = jdk17; - }; - jre_minimal = callPackage ./openjdk/jre.nix { }; - - openjdk = jdk; - openjdk_headless = jdk_headless; -} diff --git a/pkgs/by-name/ja/java/semeru-bin/generate-sources.py b/pkgs/by-name/ja/java/semeru-bin/generate-sources.py deleted file mode 100755 index da23559..0000000 --- a/pkgs/by-name/ja/java/semeru-bin/generate-sources.py +++ /dev/null @@ -1,85 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell --pure -i python3 -p "python3.withPackages (ps: with ps; [ requests ])" - -import json -import re -import requests -import sys - -feature_versions = (8, 11, 16, 17) -oses = ("mac", "linux") -types = ("jre", "jdk") -impls = ("openj9") - -arch_to_nixos = { - "x64": ("x86_64",), - "aarch64": ("aarch64",), - "arm": ("armv6l", "armv7l"), -} - -def get_sha256(url): - resp = requests.get(url) - if resp.status_code != 200: - print("error: could not fetch checksum from url {}: code {}".format(url, resp.status_code), file=sys.stderr) - sys.exit(1) - return resp.text.strip().split(" ")[0] - -def generate_sources(releases, feature_version, out): - latest_version = None - for release in releases: - if release["prerelease"]: continue - if not re.search("_openj9-", release["name"]): continue - - for asset in release["assets"]: - match = re.match("ibm-semeru-open-(?P[a-z]*)_(?P[a-z0-9]*)_(?P[a-z]*)_(?:(?P[0-9]*)u(?P[0-9]*)b(?P[0-9]*)|(?P[0-9]*)\\.(?P[0-9]*)\\.(?P[0-9]*)_(?P[0-9]*))_(?P[a-z0-9]*)-[0-9]*\\.[0-9]*\\.[0-9]\\.tar\\.gz$", asset["name"]) - - if not match: continue - if match["os"] not in oses: continue - if match["image_type"] not in types: continue - if match["jvm_impl"] not in impls: continue - if match["architecture"] not in arch_to_nixos: continue - - version = ".".join([ - match["major1"] or match["major2"], - match["minor2"] or "0", - match["security1"] or match["security2"] - ]) - build = match["build1"] or match["build2"] - - if latest_version and latest_version != (version, build): continue - latest_version = (version, build) - - arch_map = ( - out - .setdefault(match["jvm_impl"], {}) - .setdefault(match["os"], {}) - .setdefault(match["image_type"], {}) - .setdefault(feature_version, { - "packageType": match["image_type"], - "vmType": match["jvm_impl"], - }) - ) - - for nixos_arch in arch_to_nixos[match["architecture"]]: - arch_map[nixos_arch] = { - "url": asset["browser_download_url"], - "sha256": get_sha256(asset["browser_download_url"] + ".sha256.txt"), - "version": version, - "build": build, - } - - return out - - -out = {} -for feature_version in feature_versions: - resp = requests.get(f"https://api.github.com/repos/ibmruntimes/semeru{feature_version}-binaries/releases") - - if resp.status_code != 200: - print("error: could not fetch data for release {} (code {}) {}".format(feature_version, resp.status_code, resp.content), file=sys.stderr) - sys.exit(1) - generate_sources(resp.json(), f"openjdk{feature_version}", out) - -with open("sources.json", "w") as f: - json.dump(out, f, indent=2, sort_keys=True) - f.write('\n') 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 deleted file mode 100644 index ccbc7d8..0000000 --- a/pkgs/by-name/ja/java/semeru-bin/jdk-darwin-base.nix +++ /dev/null @@ -1,5 +0,0 @@ -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 deleted file mode 100644 index f58fec3..0000000 --- a/pkgs/by-name/ja/java/semeru-bin/jdk-darwin.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ lib, callPackage }: - -let - sources = (lib.importJSON ./sources.json).openj9.mac; - common = opts: callPackage (import ./jdk-darwin-base.nix opts) {}; -in -{ - jdk-8 = common { sourcePerArch = sources.jdk.openjdk8; }; - jre-8 = common { sourcePerArch = sources.jre.openjdk8; }; - jdk-11 = common { sourcePerArch = sources.jdk.openjdk11; }; - jre-11 = common { sourcePerArch = sources.jre.openjdk11; }; - jdk-16 = common { sourcePerArch = sources.jdk.openjdk16; }; - jre-16 = common { sourcePerArch = sources.jre.openjdk16; }; - jdk-17 = common { sourcePerArch = sources.jdk.openjdk17; }; - jre-17 = common { sourcePerArch = sources.jre.openjdk17; }; -} 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 deleted file mode 100644 index 41879ea..0000000 --- a/pkgs/by-name/ja/java/semeru-bin/jdk-linux-base.nix +++ /dev/null @@ -1,5 +0,0 @@ -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 deleted file mode 100644 index c80dd99..0000000 --- a/pkgs/by-name/ja/java/semeru-bin/jdk-linux.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ lib, callPackage }: - -let - sources = (lib.importJSON ./sources.json).openj9.linux; - common = opts: callPackage (import ./jdk-linux-base.nix opts) {}; -in -{ - jdk-8 = common { sourcePerArch = sources.jdk.openjdk8; }; - jre-8 = common { sourcePerArch = sources.jre.openjdk8; }; - jdk-11 = common { sourcePerArch = sources.jdk.openjdk11; }; - jre-11 = common { sourcePerArch = sources.jre.openjdk11; }; - jdk-16 = common { sourcePerArch = sources.jdk.openjdk16; }; - jre-16 = common { sourcePerArch = sources.jre.openjdk16; }; - jdk-17 = common { sourcePerArch = sources.jdk.openjdk17; }; - jre-17 = common { sourcePerArch = sources.jre.openjdk17; }; -} diff --git a/pkgs/by-name/ja/java/semeru-bin/sources.json b/pkgs/by-name/ja/java/semeru-bin/sources.json deleted file mode 100644 index 5e04fa9..0000000 --- a/pkgs/by-name/ja/java/semeru-bin/sources.json +++ /dev/null @@ -1,248 +0,0 @@ -{ - "openj9": { - "linux": { - "jdk": { - "openjdk11": { - "aarch64": { - "build": "8", - "sha256": "488739171f84e3949df6ccb1c40eaf1b73541748b123d88780329648d6b383d0", - "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jdk_aarch64_linux_11.0.16_8_openj9-0.33.0.tar.gz", - "version": "11.0.16" - }, - "packageType": "jdk", - "vmType": "openj9", - "x86_64": { - "build": "8", - "sha256": "eeca01d4e245a001d01663c5c20a8d50ef3d572b47a9b3689a5154f2a37bf005", - "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jdk_x64_linux_11.0.16_8_openj9-0.33.0.tar.gz", - "version": "11.0.16" - } - }, - "openjdk16": { - "aarch64": { - "build": "7", - "sha256": "022cda1210331488c3db3d0d1282ea74467397fdabc34cb482cdfe81c45f6a15", - "url": "https://github.com/ibmruntimes/semeru16-binaries/releases/download/jdk-16.0.2%2B7_openj9-0.27.0/ibm-semeru-open-jdk_aarch64_linux_16.0.2_7_openj9-0.27.0.tar.gz", - "version": "16.0.2" - }, - "packageType": "jdk", - "vmType": "openj9", - "x86_64": { - "build": "7", - "sha256": "1349eb9a1d9af491a1984d66a80126730357c4a5c4fcbe7112a2c832f6c0886e", - "url": "https://github.com/ibmruntimes/semeru16-binaries/releases/download/jdk-16.0.2%2B7_openj9-0.27.0/ibm-semeru-open-jdk_x64_linux_16.0.2_7_openj9-0.27.0.tar.gz", - "version": "16.0.2" - } - }, - "openjdk17": { - "aarch64": { - "build": "8", - "sha256": "18d291411ee4a956018b4dcefe436971e73694128782617f1b44beca991956c5", - "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jdk_aarch64_linux_17.0.4_8_openj9-0.33.0.tar.gz", - "version": "17.0.4" - }, - "packageType": "jdk", - "vmType": "openj9", - "x86_64": { - "build": "8", - "sha256": "78ae15d9e01fce3a473f4d6a90c331fb766211b950931088c2a85590f178ad39", - "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jdk_x64_linux_17.0.4_8_openj9-0.33.0.tar.gz", - "version": "17.0.4" - } - }, - "openjdk8": { - "aarch64": { - "build": "01", - "sha256": "6b89e648899709459b7c7dbe0a5b1ea480a88da84c6163f01255d638dbdd051b", - "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jdk_aarch64_linux_8u345b01_openj9-0.33.0.tar.gz", - "version": "8.0.345" - }, - "packageType": "jdk", - "vmType": "openj9", - "x86_64": { - "build": "01", - "sha256": "82c8232a5cb420246457d65a5014602feb8b288079cdae896e22a2eb6e390b58", - "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jdk_x64_linux_8u345b01_openj9-0.33.0.tar.gz", - "version": "8.0.345" - } - } - }, - "jre": { - "openjdk11": { - "aarch64": { - "build": "8", - "sha256": "49dc05a3e9f3f99c5f8fa466261aa3e33a753694c67cabfa7d3f682e5a2e3685", - "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jre_aarch64_linux_11.0.16_8_openj9-0.33.0.tar.gz", - "version": "11.0.16" - }, - "packageType": "jre", - "vmType": "openj9", - "x86_64": { - "build": "8", - "sha256": "ba09711193b8b8664478f3f949b5320232f65c1bdf61f32a885d84de73c02767", - "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jre_x64_linux_11.0.16_8_openj9-0.33.0.tar.gz", - "version": "11.0.16" - } - }, - "openjdk16": { - "aarch64": { - "build": "7", - "sha256": "575dc3827077fc661fd1103effaa13ccd0f1606d01a33643956ed2eb1ece9763", - "url": "https://github.com/ibmruntimes/semeru16-binaries/releases/download/jdk-16.0.2%2B7_openj9-0.27.0/ibm-semeru-open-jre_aarch64_linux_16.0.2_7_openj9-0.27.0.tar.gz", - "version": "16.0.2" - }, - "packageType": "jre", - "vmType": "openj9", - "x86_64": { - "build": "7", - "sha256": "b077cd0b35d3ed1927c22e5b498264ecff67297992809056187b42662edfc536", - "url": "https://github.com/ibmruntimes/semeru16-binaries/releases/download/jdk-16.0.2%2B7_openj9-0.27.0/ibm-semeru-open-jre_x64_linux_16.0.2_7_openj9-0.27.0.tar.gz", - "version": "16.0.2" - } - }, - "openjdk17": { - "aarch64": { - "build": "8", - "sha256": "6c40c1e0d7ee0509c44465e9f26dd970904137a95fd751e6447b1d6a9ef5092a", - "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jre_aarch64_linux_17.0.4_8_openj9-0.33.0.tar.gz", - "version": "17.0.4" - }, - "packageType": "jre", - "vmType": "openj9", - "x86_64": { - "build": "8", - "sha256": "b2c176f8aa8cc7138d4c22ce9298d8f49597e1d8e3fdd33125898e5ee0182c93", - "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jre_x64_linux_17.0.4_8_openj9-0.33.0.tar.gz", - "version": "17.0.4" - } - }, - "openjdk8": { - "aarch64": { - "build": "01", - "sha256": "03caff41622e84a6e7fa66a225414a9b6eefb38dd215f830cae0bc4bbfc55b5c", - "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jre_aarch64_linux_8u345b01_openj9-0.33.0.tar.gz", - "version": "8.0.345" - }, - "packageType": "jre", - "vmType": "openj9", - "x86_64": { - "build": "01", - "sha256": "0d4fe62716b9da2ccce324b5b46d57e8d47e5dfb5d128f87e16135ee9bc36cdc", - "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jre_x64_linux_8u345b01_openj9-0.33.0.tar.gz", - "version": "8.0.345" - } - } - } - }, - "mac": { - "jdk": { - "openjdk11": { - "aarch64": { - "build": "8", - "sha256": "9881b292142a129f6f5c6b21608b090f8f94625052b4f7d0ce5bd982c054ca2e", - "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jdk_aarch64_mac_11.0.16_8_openj9-0.33.0.tar.gz", - "version": "11.0.16" - }, - "packageType": "jdk", - "vmType": "openj9", - "x86_64": { - "build": "8", - "sha256": "8638735d2cae3efff212f898728685380355bb0a298076e9e46244d0bf3d4a64", - "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jdk_x64_mac_11.0.16_8_openj9-0.33.0.tar.gz", - "version": "11.0.16" - } - }, - "openjdk16": { - "packageType": "jdk", - "vmType": "openj9", - "x86_64": { - "build": "7", - "sha256": "89e807261145243a358a2a626f64340944c03622f34eaa35429053e2085d7aef", - "url": "https://github.com/ibmruntimes/semeru16-binaries/releases/download/jdk-16.0.2%2B7_openj9-0.27.0/ibm-semeru-open-jdk_x64_mac_16.0.2_7_openj9-0.27.0.tar.gz", - "version": "16.0.2" - } - }, - "openjdk17": { - "aarch64": { - "build": "8", - "sha256": "bf22628b54115dff9939b94751531544ab735b7cbbc8d6ddfe83d1b04df3a532", - "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jdk_aarch64_mac_17.0.4_8_openj9-0.33.0.tar.gz", - "version": "17.0.4" - }, - "packageType": "jdk", - "vmType": "openj9", - "x86_64": { - "build": "8", - "sha256": "a935f20564e347a9292955c04eb57e51efdb1853ae7f0b4fe759b22c9fe248be", - "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jdk_x64_mac_17.0.4_8_openj9-0.33.0.tar.gz", - "version": "17.0.4" - } - }, - "openjdk8": { - "packageType": "jdk", - "vmType": "openj9", - "x86_64": { - "build": "01", - "sha256": "c69086950c006b17484a70ef7bc85e92d121be15e69e282e1446fd238d42b6b4", - "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jdk_x64_mac_8u345b01_openj9-0.33.0.tar.gz", - "version": "8.0.345" - } - } - }, - "jre": { - "openjdk11": { - "aarch64": { - "build": "8", - "sha256": "39802020896476342dc11486e3cbdf10f6311c172abeb4a1e2931b472da4417e", - "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jre_aarch64_mac_11.0.16_8_openj9-0.33.0.tar.gz", - "version": "11.0.16" - }, - "packageType": "jre", - "vmType": "openj9", - "x86_64": { - "build": "8", - "sha256": "92f87a3c2fb5fe60d3d51020ff95b9c234b2ae2677b79aebbe749dda717c9cdd", - "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jre_x64_mac_11.0.16_8_openj9-0.33.0.tar.gz", - "version": "11.0.16" - } - }, - "openjdk16": { - "packageType": "jre", - "vmType": "openj9", - "x86_64": { - "build": "7", - "sha256": "2cb8007de405d0c8f160549309bcfc1adc82e304eb372e86ce0e0a214239438f", - "url": "https://github.com/ibmruntimes/semeru16-binaries/releases/download/jdk-16.0.2%2B7_openj9-0.27.0/ibm-semeru-open-jre_x64_mac_16.0.2_7_openj9-0.27.0.tar.gz", - "version": "16.0.2" - } - }, - "openjdk17": { - "aarch64": { - "build": "8", - "sha256": "4057c94cd46b814cc5a4d683d5f0b95dbd0b9e13e8c2e11155561ad0d8bec85b", - "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jre_aarch64_mac_17.0.4_8_openj9-0.33.0.tar.gz", - "version": "17.0.4" - }, - "packageType": "jre", - "vmType": "openj9", - "x86_64": { - "build": "8", - "sha256": "8e957d2eb47eaca64516ac669272c6e5186155ed8ee4d6a77e0d4b7811cd7bb6", - "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jre_x64_mac_17.0.4_8_openj9-0.33.0.tar.gz", - "version": "17.0.4" - } - }, - "openjdk8": { - "packageType": "jre", - "vmType": "openj9", - "x86_64": { - "build": "01", - "sha256": "019e08dea8fbd54517dacbeac791d85717902800dd8bba77fbca1dfc6b0abd9e", - "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jre_x64_mac_8u345b01_openj9-0.33.0.tar.gz", - "version": "8.0.345" - } - } - } - } - } -} diff --git a/pkgs/by-name/ja/java/temurin-bin/generate-sources.py b/pkgs/by-name/ja/java/temurin-bin/generate-sources.py deleted file mode 100755 index bb60d69..0000000 --- a/pkgs/by-name/ja/java/temurin-bin/generate-sources.py +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell --pure -i python3 -p "python3.withPackages (ps: with ps; [ requests ])" - -import json -import re -import requests -import sys - -feature_versions = (8, 11, 16, 17, 18, 19, 20, 21) -oses = ("mac", "linux", "alpine-linux") -types = ("jre", "jdk") -impls = ("hotspot") - -arch_to_nixos = { - "x64": ("x86_64",), - "aarch64": ("aarch64",), - "arm": ("armv6l", "armv7l"), - "ppc64le": ("powerpc64le",), -} - -def generate_sources(assets, feature_version, out): - for asset in assets: - binary = asset["binary"] - if binary["os"] not in oses: continue - if binary["image_type"] not in types: continue - if binary["jvm_impl"] not in impls: continue - if binary["heap_size"] != "normal": continue - if binary["architecture"] not in arch_to_nixos: continue - - version = ".".join(str(v) for v in [ - asset["version"]["major"], - asset["version"]["minor"], - asset["version"]["security"] - ]) - build = str(asset["version"]["build"]) - - arch_map = ( - out - .setdefault(binary["jvm_impl"], {}) - .setdefault(binary["os"], {}) - .setdefault(binary["image_type"], {}) - .setdefault(feature_version, { - "packageType": binary["image_type"], - "vmType": binary["jvm_impl"], - }) - ) - - for nixos_arch in arch_to_nixos[binary["architecture"]]: - arch_map[nixos_arch] = { - "url": binary["package"]["link"], - "sha256": binary["package"]["checksum"], - "version": version, - "build": build, - } - - return out - - -out = {} -for feature_version in feature_versions: - # Default user-agenet is blocked by Azure WAF. - headers = {'user-agent': 'nixpkgs-temurin-generate-sources/1.0.0'} - resp = requests.get(f"https://api.adoptium.net/v3/assets/latest/{feature_version}/hotspot", headers=headers) - - if resp.status_code != 200: - print("error: could not fetch data for release {} (code {}) {}".format(feature_version, resp.status_code, resp.content), file=sys.stderr) - sys.exit(1) - generate_sources(resp.json(), f"openjdk{feature_version}", out) - -with open("sources.json", "w") as f: - json.dump(out, f, indent=2, sort_keys=True) - f.write('\n') 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 deleted file mode 100644 index 8f6831a..0000000 --- a/pkgs/by-name/ja/java/temurin-bin/jdk-darwin-base.nix +++ /dev/null @@ -1,75 +0,0 @@ -{ name-prefix ? "temurin" -, brand-name ? "Eclipse Temurin" -, sourcePerArch -, knownVulnerabilities ? [] -}: - -{ 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); - 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}"); - - src = fetchurl { - inherit (sourcePerArch.${cpuName} or (throw "unsupported system ${stdenv.hostPlatform.system}")) 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/ - - # Remove some broken manpages. - # Only for 11 and earlier. - [ -e "$out/Contents/Home/man/ja" ] && rm -r $out/Contents/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; - home = result; - }; - - meta = with lib; { - license = licenses.gpl2Classpath; - sourceProvenance = with sourceTypes; [ binaryNativeCode binaryBytecode ]; - description = "${brand-name}, prebuilt OpenJDK binary"; - platforms = builtins.map (arch: arch + "-darwin") providedCpuTypes; # some inherit jre.meta.platforms - maintainers = with maintainers; [ taku0 ]; - inherit knownVulnerabilities; - mainProgram = "java"; - }; - }; -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 deleted file mode 100644 index 5122b6e..0000000 --- a/pkgs/by-name/ja/java/temurin-bin/jdk-darwin.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib, callPackage }: - -let - sources = (lib.importJSON ./sources.json).hotspot.mac; - common = opts: callPackage (import ./jdk-darwin-base.nix opts) {}; -in -{ - jdk-8 = common { sourcePerArch = sources.jdk.openjdk8; }; - jre-8 = common { sourcePerArch = sources.jre.openjdk8; }; - jdk-11 = common { sourcePerArch = sources.jdk.openjdk11; }; - jre-11 = common { sourcePerArch = sources.jre.openjdk11; }; - jdk-16 = common { sourcePerArch = sources.jdk.openjdk16; }; - - jdk-17 = common { sourcePerArch = sources.jdk.openjdk17; }; - jre-17 = common { sourcePerArch = sources.jre.openjdk17; }; - - jdk-18 = common { sourcePerArch = sources.jdk.openjdk18; }; - jre-18 = common { sourcePerArch = sources.jre.openjdk18; }; - - jdk-19 = common { sourcePerArch = sources.jdk.openjdk19; }; - jre-19 = common { sourcePerArch = sources.jre.openjdk19; }; - - jdk-20 = common { sourcePerArch = sources.jdk.openjdk20; }; - jre-20 = common { sourcePerArch = sources.jre.openjdk20; }; - - jdk-21 = common { sourcePerArch = sources.jdk.openjdk21; }; - jre-21 = common { sourcePerArch = sources.jre.openjdk21; }; -} 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 deleted file mode 100644 index ba56518..0000000 --- a/pkgs/by-name/ja/java/temurin-bin/jdk-linux-base.nix +++ /dev/null @@ -1,132 +0,0 @@ -{ 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 -}: - -let - cpuName = stdenv.hostPlatform.parsed.cpu.name; - 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); - 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}"); - - 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/ - - # Remove some broken manpages. - # Only for 11 and earlier. - [ -e "$out/man/ja" ] && rm -r $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; - home = result; - }; - - meta = with lib; { - license = licenses.gpl2Classpath; - sourceProvenance = with sourceTypes; [ binaryNativeCode binaryBytecode ]; - description = "${brand-name}, prebuilt OpenJDK binary"; - platforms = builtins.map (arch: arch + "-linux") providedCpuTypes; # some inherit jre.meta.platforms - maintainers = with maintainers; [ taku0 ]; - inherit knownVulnerabilities; - mainProgram = "java"; - }; - }; -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 deleted file mode 100644 index 87a00a3..0000000 --- a/pkgs/by-name/ja/java/temurin-bin/jdk-linux.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ 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) {}; -in -{ - jdk-8 = common { sourcePerArch = sources.jdk.openjdk8; }; - jre-8 = common { sourcePerArch = sources.jre.openjdk8; }; - jdk-11 = common { sourcePerArch = sources.jdk.openjdk11; }; - jre-11 = common { sourcePerArch = sources.jre.openjdk11; }; - jdk-16 = common { sourcePerArch = sources.jdk.openjdk16; }; - - jdk-17 = common { sourcePerArch = sources.jdk.openjdk17; }; - jre-17 = common { sourcePerArch = sources.jre.openjdk17; }; - - jdk-18 = common { sourcePerArch = sources.jdk.openjdk18; }; - jre-18 = common { sourcePerArch = sources.jre.openjdk18; }; - - jdk-19 = common { sourcePerArch = sources.jdk.openjdk19; }; - jre-19 = common { sourcePerArch = sources.jre.openjdk19; }; - - jdk-20 = common { sourcePerArch = sources.jdk.openjdk20; }; - jre-20 = common { sourcePerArch = sources.jre.openjdk20; }; - - jdk-21 = common { sourcePerArch = sources.jdk.openjdk21; }; - jre-21 = common { sourcePerArch = sources.jre.openjdk21; }; -} diff --git a/pkgs/by-name/ja/java/temurin-bin/sources.json b/pkgs/by-name/ja/java/temurin-bin/sources.json deleted file mode 100644 index 00a0e72..0000000 --- a/pkgs/by-name/ja/java/temurin-bin/sources.json +++ /dev/null @@ -1,868 +0,0 @@ -{ - "hotspot": { - "alpine-linux": { - "jdk": { - "openjdk11": { - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "9", - "sha256": "d5e2235d3707526f7c9ba3f0dc194e60d5dec33eceff2a2dcf9d874464cc0e9e", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.21%2B9/OpenJDK11U-jdk_x64_alpine-linux_hotspot_11.0.21_9.tar.gz", - "version": "11.0.21" - } - }, - "openjdk16": { - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "85788b1a1f470ca7ddc576028f29abbc3bc3b08f82dd811a3e24371689d7dc0f", - "url": "https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_x64_alpine-linux_hotspot_16.0.2_7.tar.gz", - "version": "16.0.2" - } - }, - "openjdk17": { - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "9", - "sha256": "c2a571a56e5bd3f30956b17b048880078c7801ed9e8754af6d1e38b9176059a9", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.9%2B9/OpenJDK17U-jdk_x64_alpine-linux_hotspot_17.0.9_9.tar.gz", - "version": "17.0.9" - } - }, - "openjdk18": { - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "1", - "sha256": "478c8f56dec7378ed8c687e8d7d0fbf729973c62c497cfc8cf58bd621849d764", - "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jdk_x64_alpine-linux_hotspot_18.0.2.1_1.tar.gz", - "version": "18.0.2" - } - }, - "openjdk19": { - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "e2d971400ad2db25ad43ea6fa2058b269c0236e3977986dcdee2097da301beb2", - "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.2%2B7/OpenJDK19U-jdk_x64_alpine-linux_hotspot_19.0.2_7.tar.gz", - "version": "19.0.2" - } - }, - "openjdk20": { - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "9", - "sha256": "b03aced4b7a1c49bc00297e35e45480fd03818862b93e17e1551a3b721e89306", - "url": "https://github.com/adoptium/temurin20-binaries/releases/download/jdk-20.0.2%2B9/OpenJDK20U-jdk_x64_alpine-linux_hotspot_20.0.2_9.tar.gz", - "version": "20.0.2" - } - }, - "openjdk21": { - "aarch64": { - "build": "12", - "sha256": "77006c0a753808c2a6662007906eb6eb230f2fb6eb9d201a39cc46113e68f82c", - "url": "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.1%2B12/OpenJDK21U-jdk_aarch64_alpine-linux_hotspot_21.0.1_12.tar.gz", - "version": "21.0.1" - }, - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "12", - "sha256": "422f23f5109056cacb9227247bebf8532e2dc3c9d505e71637ba610569d6b3ff", - "url": "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.1%2B12/OpenJDK21U-jdk_x64_alpine-linux_hotspot_21.0.1_12.tar.gz", - "version": "21.0.1" - } - }, - "openjdk8": { - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "5", - "sha256": "6cf2d4925c387c4cdc0bf2e71de3690527141b5244695d0b3109ce83a8512235", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u382-b05/OpenJDK8U-jdk_x64_alpine-linux_hotspot_8u382b05.tar.gz", - "version": "8.0.382" - } - } - }, - "jre": { - "openjdk11": { - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "9", - "sha256": "6a3d1759bdf91433411d37ca2ad1505a7f214c1401797834e9884165c2457368", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.21%2B9/OpenJDK11U-jre_x64_alpine-linux_hotspot_11.0.21_9.tar.gz", - "version": "11.0.21" - } - }, - "openjdk17": { - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "9", - "sha256": "70e5d108f51ae7c7b2435d063652df058723e303a18b4f72f17f75c5320052d3", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.9%2B9/OpenJDK17U-jre_x64_alpine-linux_hotspot_17.0.9_9.tar.gz", - "version": "17.0.9" - } - }, - "openjdk18": { - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "1", - "sha256": "ad23309a82e690f769037b1e6417022f588702d214da533289f116bba0f61f4e", - "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jre_x64_alpine-linux_hotspot_18.0.2.1_1.tar.gz", - "version": "18.0.2" - } - }, - "openjdk19": { - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "6c0ce0ead2e7ce3e0f06b9578447499c8bd0509306c95fcd81dbecb634228933", - "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.2%2B7/OpenJDK19U-jre_x64_alpine-linux_hotspot_19.0.2_7.tar.gz", - "version": "19.0.2" - } - }, - "openjdk20": { - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "9", - "sha256": "53b34747a3c042a4cccb2b8b78fba3330b105bc523f0861237baa9143dc39115", - "url": "https://github.com/adoptium/temurin20-binaries/releases/download/jdk-20.0.2%2B9/OpenJDK20U-jre_x64_alpine-linux_hotspot_20.0.2_9.tar.gz", - "version": "20.0.2" - } - }, - "openjdk21": { - "aarch64": { - "build": "12", - "sha256": "2898ea1ddf6f70f09b09cf99d928f6d4c862f78f81104f5dce3e44a832b8444a", - "url": "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.1%2B12/OpenJDK21U-jre_aarch64_alpine-linux_hotspot_21.0.1_12.tar.gz", - "version": "21.0.1" - }, - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "12", - "sha256": "a8fcc43927664ba191c9a77d1013f1f32fec1acc22fe6f0c29d687221f2cc95d", - "url": "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.1%2B12/OpenJDK21U-jre_x64_alpine-linux_hotspot_21.0.1_12.tar.gz", - "version": "21.0.1" - } - }, - "openjdk8": { - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "5", - "sha256": "7040d865493f13204194c5a1add63e22516b1fa4481264baa6a5b2614a275a0e", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u382-b05/OpenJDK8U-jre_x64_alpine-linux_hotspot_8u382b05.tar.gz", - "version": "8.0.382" - } - } - } - }, - "linux": { - "jdk": { - "openjdk11": { - "aarch64": { - "build": "9", - "sha256": "8c3146035b99c55ab26a2982f4b9abd2bf600582361cf9c732539f713d271faf", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.21%2B9/OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.21_9.tar.gz", - "version": "11.0.21" - }, - "armv6l": { - "build": "1", - "sha256": "e83674aee238ebb5f359b9395b3c5e3fad5b645846095494662802d2f0fd01c9", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.20.1%2B1/OpenJDK11U-jdk_arm_linux_hotspot_11.0.20.1_1.tar.gz", - "version": "11.0.20" - }, - "armv7l": { - "build": "1", - "sha256": "e83674aee238ebb5f359b9395b3c5e3fad5b645846095494662802d2f0fd01c9", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.20.1%2B1/OpenJDK11U-jdk_arm_linux_hotspot_11.0.20.1_1.tar.gz", - "version": "11.0.20" - }, - "packageType": "jdk", - "powerpc64le": { - "build": "9", - "sha256": "262ff98d6d88a7c7cc522cb4ec4129491a0eb04f5b17dcca0da57cfcdcf3830d", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.21%2B9/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.21_9.tar.gz", - "version": "11.0.21" - }, - "vmType": "hotspot", - "x86_64": { - "build": "9", - "sha256": "60ea98daa09834fdd3162ca91ddc8d92a155ab3121204f6f643176ee0c2d0d5e", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.21%2B9/OpenJDK11U-jdk_x64_linux_hotspot_11.0.21_9.tar.gz", - "version": "11.0.21" - } - }, - "openjdk16": { - "aarch64": { - "build": "7", - "sha256": "cb77d9d126f97898dfdc8b5fb694d1e0e5d93d13a0a6cb2aeda76f8635384340", - "url": "https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_aarch64_linux_hotspot_16.0.2_7.tar.gz", - "version": "16.0.2" - }, - "armv6l": { - "build": "7", - "sha256": "7721ef81416af8122a28448f3d661eb4bda40a9f78d400e4ecc55b58e627a00c", - "url": "https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_arm_linux_hotspot_16.0.2_7.tar.gz", - "version": "16.0.2" - }, - "armv7l": { - "build": "7", - "sha256": "7721ef81416af8122a28448f3d661eb4bda40a9f78d400e4ecc55b58e627a00c", - "url": "https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_arm_linux_hotspot_16.0.2_7.tar.gz", - "version": "16.0.2" - }, - "packageType": "jdk", - "powerpc64le": { - "build": "7", - "sha256": "36ebe6c72f2fc19b8b17371f731390e15fa3aab08c28b55b9a8b71d0a578adc9", - "url": "https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_ppc64le_linux_hotspot_16.0.2_7.tar.gz", - "version": "16.0.2" - }, - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "323d6d7474a359a28eff7ddd0df8e65bd61554a8ed12ef42fd9365349e573c2c", - "url": "https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz", - "version": "16.0.2" - } - }, - "openjdk17": { - "aarch64": { - "build": "9", - "sha256": "e2c5e26f8572544b201bc22a9b28f2b1a3147ab69be111cea07c7f52af252e75", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.9%2B9/OpenJDK17U-jdk_aarch64_linux_hotspot_17.0.9_9.tar.gz", - "version": "17.0.9" - }, - "armv6l": { - "build": "1", - "sha256": "b1f1d8b7fcb159a0a8029b6c3106d1d16207cecbb2047f9a4be2a64d29897da5", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.8.1%2B1/OpenJDK17U-jdk_arm_linux_hotspot_17.0.8.1_1.tar.gz", - "version": "17.0.8" - }, - "armv7l": { - "build": "1", - "sha256": "b1f1d8b7fcb159a0a8029b6c3106d1d16207cecbb2047f9a4be2a64d29897da5", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.8.1%2B1/OpenJDK17U-jdk_arm_linux_hotspot_17.0.8.1_1.tar.gz", - "version": "17.0.8" - }, - "packageType": "jdk", - "powerpc64le": { - "build": "9", - "sha256": "3ae4b254d5b720f94f986481e787fbd67f0667571140ba2e2ae5020ceddbc826", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.9%2B9/OpenJDK17U-jdk_ppc64le_linux_hotspot_17.0.9_9.tar.gz", - "version": "17.0.9" - }, - "vmType": "hotspot", - "x86_64": { - "build": "9", - "sha256": "7b175dbe0d6e3c9c23b6ed96449b018308d8fc94a5ecd9c0df8b8bc376c3c18a", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.9%2B9/OpenJDK17U-jdk_x64_linux_hotspot_17.0.9_9.tar.gz", - "version": "17.0.9" - } - }, - "openjdk18": { - "aarch64": { - "build": "1", - "sha256": "262be608e266fd76d7496af83b2832be853c3aaf7460d6a4da198cd40db74553", - "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jdk_aarch64_linux_hotspot_18.0.2.1_1.tar.gz", - "version": "18.0.2" - }, - "armv6l": { - "build": "1", - "sha256": "4cd49b92d13847bfad7b3bf635cca349e2c89c7641748c5288bc40d612cdbbd6", - "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jdk_arm_linux_hotspot_18.0.2.1_1.tar.gz", - "version": "18.0.2" - }, - "armv7l": { - "build": "1", - "sha256": "4cd49b92d13847bfad7b3bf635cca349e2c89c7641748c5288bc40d612cdbbd6", - "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jdk_arm_linux_hotspot_18.0.2.1_1.tar.gz", - "version": "18.0.2" - }, - "packageType": "jdk", - "powerpc64le": { - "build": "1", - "sha256": "030261a2189a8f773fda543a85ab9beb4c430bf81ca5be37cf6cb970b5ccbb03", - "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jdk_ppc64le_linux_hotspot_18.0.2.1_1.tar.gz", - "version": "18.0.2" - }, - "vmType": "hotspot", - "x86_64": { - "build": "1", - "sha256": "7d6beba8cfc0a8347f278f7414351191a95a707d46b6586e9a786f2669af0f8b", - "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jdk_x64_linux_hotspot_18.0.2.1_1.tar.gz", - "version": "18.0.2" - } - }, - "openjdk19": { - "aarch64": { - "build": "7", - "sha256": "1c4be9aa173cb0deb0d215643d9509c8900e5497290b29eee4bee335fa57984f", - "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.2%2B7/OpenJDK19U-jdk_aarch64_linux_hotspot_19.0.2_7.tar.gz", - "version": "19.0.2" - }, - "armv6l": { - "build": "7", - "sha256": "6a51cb3868b5a3b81848a0d276267230ff3f8639f20ba9ae9ef1d386440bf1fd", - "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.2%2B7/OpenJDK19U-jdk_arm_linux_hotspot_19.0.2_7.tar.gz", - "version": "19.0.2" - }, - "armv7l": { - "build": "7", - "sha256": "6a51cb3868b5a3b81848a0d276267230ff3f8639f20ba9ae9ef1d386440bf1fd", - "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.2%2B7/OpenJDK19U-jdk_arm_linux_hotspot_19.0.2_7.tar.gz", - "version": "19.0.2" - }, - "packageType": "jdk", - "powerpc64le": { - "build": "7", - "sha256": "173d1256dfb9d13d309b5390e6bdf72d143b512201b0868f9d349d5ed3d64072", - "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.2%2B7/OpenJDK19U-jdk_ppc64le_linux_hotspot_19.0.2_7.tar.gz", - "version": "19.0.2" - }, - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "3a3ba7a3f8c3a5999e2c91ea1dca843435a0d1c43737bd2f6822b2f02fc52165", - "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.2%2B7/OpenJDK19U-jdk_x64_linux_hotspot_19.0.2_7.tar.gz", - "version": "19.0.2" - } - }, - "openjdk20": { - "aarch64": { - "build": "9", - "sha256": "b475bcc23db0bd618c815bb8f11d8e084dc58288ea3bcdf4e7f389ed41c89f56", - "url": "https://github.com/adoptium/temurin20-binaries/releases/download/jdk-20.0.2%2B9/OpenJDK20U-jdk_aarch64_linux_hotspot_20.0.2_9.tar.gz", - "version": "20.0.2" - }, - "packageType": "jdk", - "powerpc64le": { - "build": "36", - "sha256": "45dde71faf8cbb78fab3c976894259655c8d3de827347f23e0ebe5710921dded", - "url": "https://github.com/adoptium/temurin20-binaries/releases/download/jdk-20%2B36/OpenJDK20U-jdk_ppc64le_linux_hotspot_20_36.tar.gz", - "version": "20.0.0" - }, - "vmType": "hotspot", - "x86_64": { - "build": "9", - "sha256": "3d91842e9c172967ac397076523249d05a82ead51b0006838f5f0315ad52222c", - "url": "https://github.com/adoptium/temurin20-binaries/releases/download/jdk-20.0.2%2B9/OpenJDK20U-jdk_x64_linux_hotspot_20.0.2_9.tar.gz", - "version": "20.0.2" - } - }, - "openjdk21": { - "aarch64": { - "build": "12", - "sha256": "e184dc29a6712c1f78754ab36fb48866583665fa345324f1a79e569c064f95e9", - "url": "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.1%2B12/OpenJDK21U-jdk_aarch64_linux_hotspot_21.0.1_12.tar.gz", - "version": "21.0.1" - }, - "packageType": "jdk", - "powerpc64le": { - "build": "12", - "sha256": "9574828ef3d735a25404ced82e09bf20e1614f7d6403956002de9cfbfcb8638f", - "url": "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.1%2B12/OpenJDK21U-jdk_ppc64le_linux_hotspot_21.0.1_12.tar.gz", - "version": "21.0.1" - }, - "vmType": "hotspot", - "x86_64": { - "build": "12", - "sha256": "1a6fa8abda4c5caed915cfbeeb176e7fbd12eb6b222f26e290ee45808b529aa1", - "url": "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.1%2B12/OpenJDK21U-jdk_x64_linux_hotspot_21.0.1_12.tar.gz", - "version": "21.0.1" - } - }, - "openjdk8": { - "aarch64": { - "build": "8", - "sha256": "70636c2fa4927913e9e869d471607a99d3a521c1fa3f3687b889c2acba67c493", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u392-b08/OpenJDK8U-jdk_aarch64_linux_hotspot_8u392b08.tar.gz", - "version": "8.0.392" - }, - "armv6l": { - "build": "5", - "sha256": "5d805ff157f272acf0f7d192f21af4a3b68c840333ca95568e4e07142efc369d", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u382-b05/OpenJDK8U-jdk_arm_linux_hotspot_8u382b05.tar.gz", - "version": "8.0.382" - }, - "armv7l": { - "build": "5", - "sha256": "5d805ff157f272acf0f7d192f21af4a3b68c840333ca95568e4e07142efc369d", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u382-b05/OpenJDK8U-jdk_arm_linux_hotspot_8u382b05.tar.gz", - "version": "8.0.382" - }, - "packageType": "jdk", - "powerpc64le": { - "build": "8", - "sha256": "9d9813d2840360ffdbc449c45e71124e8170c31a3b6cce9151fbb31352064406", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u392-b08/OpenJDK8U-jdk_ppc64le_linux_hotspot_8u392b08.tar.gz", - "version": "8.0.392" - }, - "vmType": "hotspot", - "x86_64": { - "build": "8", - "sha256": "15d091e22aa0cad12a241acff8c1634e7228b9740f8d19634250aa6fe0c19a33", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u392-b08/OpenJDK8U-jdk_x64_linux_hotspot_8u392b08.tar.gz", - "version": "8.0.392" - } - } - }, - "jre": { - "openjdk11": { - "aarch64": { - "build": "9", - "sha256": "8dc527e5c5da62f80ad3b6a2cd7b1789f745b1d90d5e83faba45f7a1d0b6cab8", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.21%2B9/OpenJDK11U-jre_aarch64_linux_hotspot_11.0.21_9.tar.gz", - "version": "11.0.21" - }, - "armv6l": { - "build": "1", - "sha256": "2fc1cc935897312c0bc2515b2e7ea1fa3b267e77305a1b51a8c3917d92af380f", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.20.1%2B1/OpenJDK11U-jre_arm_linux_hotspot_11.0.20.1_1.tar.gz", - "version": "11.0.20" - }, - "armv7l": { - "build": "1", - "sha256": "2fc1cc935897312c0bc2515b2e7ea1fa3b267e77305a1b51a8c3917d92af380f", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.20.1%2B1/OpenJDK11U-jre_arm_linux_hotspot_11.0.20.1_1.tar.gz", - "version": "11.0.20" - }, - "packageType": "jre", - "powerpc64le": { - "build": "9", - "sha256": "286e37ce06316185377eea847d2aa9f1523b9f1428684e59e772f2f6055e89b9", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.21%2B9/OpenJDK11U-jre_ppc64le_linux_hotspot_11.0.21_9.tar.gz", - "version": "11.0.21" - }, - "vmType": "hotspot", - "x86_64": { - "build": "9", - "sha256": "156861bb901ef18759e05f6f008595220c7d1318a46758531b957b0c950ef2c3", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.21%2B9/OpenJDK11U-jre_x64_linux_hotspot_11.0.21_9.tar.gz", - "version": "11.0.21" - } - }, - "openjdk17": { - "aarch64": { - "build": "9", - "sha256": "05b192f81ed478178ba953a2a779b67fc5a810acadb633ad69f8c4412399edb8", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.9%2B9/OpenJDK17U-jre_aarch64_linux_hotspot_17.0.9_9.tar.gz", - "version": "17.0.9" - }, - "armv6l": { - "build": "1", - "sha256": "8af898c5d356f0b2cee2db67ff9c8e7a8e738c0f6b3a61c383150b3168b9ea58", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.8.1%2B1/OpenJDK17U-jre_arm_linux_hotspot_17.0.8.1_1.tar.gz", - "version": "17.0.8" - }, - "armv7l": { - "build": "1", - "sha256": "8af898c5d356f0b2cee2db67ff9c8e7a8e738c0f6b3a61c383150b3168b9ea58", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.8.1%2B1/OpenJDK17U-jre_arm_linux_hotspot_17.0.8.1_1.tar.gz", - "version": "17.0.8" - }, - "packageType": "jre", - "powerpc64le": { - "build": "9", - "sha256": "79c85ecf1320c67b828310167e1ced62e402bc86a5d47ca9cc7bfa3b708cb07a", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.9%2B9/OpenJDK17U-jre_ppc64le_linux_hotspot_17.0.9_9.tar.gz", - "version": "17.0.9" - }, - "vmType": "hotspot", - "x86_64": { - "build": "9", - "sha256": "c37f729200b572884b8f8e157852c739be728d61d9a1da0f920104876d324733", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.9%2B9/OpenJDK17U-jre_x64_linux_hotspot_17.0.9_9.tar.gz", - "version": "17.0.9" - } - }, - "openjdk18": { - "aarch64": { - "build": "1", - "sha256": "e11e00438c2f6f79f86ff1ca2b015913b0e16bd9491953a082d5c786402cb50a", - "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jre_aarch64_linux_hotspot_18.0.2.1_1.tar.gz", - "version": "18.0.2" - }, - "armv6l": { - "build": "1", - "sha256": "0ae7281fa883de0d39a75b39bfbbcec1d2a5f8ed8691af12226962ce1a761cd7", - "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jre_arm_linux_hotspot_18.0.2.1_1.tar.gz", - "version": "18.0.2" - }, - "armv7l": { - "build": "1", - "sha256": "0ae7281fa883de0d39a75b39bfbbcec1d2a5f8ed8691af12226962ce1a761cd7", - "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jre_arm_linux_hotspot_18.0.2.1_1.tar.gz", - "version": "18.0.2" - }, - "packageType": "jre", - "powerpc64le": { - "build": "1", - "sha256": "2298504c99b4c15f620f70415215e481766d2b2f784d066206eed8c583922f8f", - "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jre_ppc64le_linux_hotspot_18.0.2.1_1.tar.gz", - "version": "18.0.2" - }, - "vmType": "hotspot", - "x86_64": { - "build": "1", - "sha256": "74f602ab5abaa554859a5e92a65e5bb6e23c2d4165228299c7f54ed56dbc5959", - "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jre_x64_linux_hotspot_18.0.2.1_1.tar.gz", - "version": "18.0.2" - } - }, - "openjdk19": { - "aarch64": { - "build": "7", - "sha256": "3653f9e5ad21e4744e5a655e243fba2895651029bee23f3d2366d5debc41a736", - "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.2%2B7/OpenJDK19U-jre_aarch64_linux_hotspot_19.0.2_7.tar.gz", - "version": "19.0.2" - }, - "armv6l": { - "build": "7", - "sha256": "d4588e8c01ca60da2ceed68b7d43d2fd9ec3350b93043f0dabd0eb6cb03cb23d", - "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.2%2B7/OpenJDK19U-jre_arm_linux_hotspot_19.0.2_7.tar.gz", - "version": "19.0.2" - }, - "armv7l": { - "build": "7", - "sha256": "d4588e8c01ca60da2ceed68b7d43d2fd9ec3350b93043f0dabd0eb6cb03cb23d", - "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.2%2B7/OpenJDK19U-jre_arm_linux_hotspot_19.0.2_7.tar.gz", - "version": "19.0.2" - }, - "packageType": "jre", - "powerpc64le": { - "build": "7", - "sha256": "a30203431c7c21602227d39368c5af6e7abd19000d6da5562de7f3f5c57cbad5", - "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.2%2B7/OpenJDK19U-jre_ppc64le_linux_hotspot_19.0.2_7.tar.gz", - "version": "19.0.2" - }, - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "7386e10c74f00a4382be0540bc0494854804ad79427d8a50ac77a4c7208ff348", - "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.2%2B7/OpenJDK19U-jre_x64_linux_hotspot_19.0.2_7.tar.gz", - "version": "19.0.2" - } - }, - "openjdk20": { - "aarch64": { - "build": "9", - "sha256": "63a730d5a3b6d21d31f7cba15dc44b019a8a4d8652e13acec45040f98584112c", - "url": "https://github.com/adoptium/temurin20-binaries/releases/download/jdk-20.0.2%2B9/OpenJDK20U-jre_aarch64_linux_hotspot_20.0.2_9.tar.gz", - "version": "20.0.2" - }, - "packageType": "jre", - "powerpc64le": { - "build": "36", - "sha256": "a1c5a16d5a438ce7da4563cd51ff6778cdf62331c00a3096ab2388a916e076d2", - "url": "https://github.com/adoptium/temurin20-binaries/releases/download/jdk-20%2B36/OpenJDK20U-jre_ppc64le_linux_hotspot_20_36.tar.gz", - "version": "20.0.0" - }, - "vmType": "hotspot", - "x86_64": { - "build": "9", - "sha256": "e3592e86290c192804d9c6b5035d42cc32cf04141d1c0b9d1ecb67739826c8c5", - "url": "https://github.com/adoptium/temurin20-binaries/releases/download/jdk-20.0.2%2B9/OpenJDK20U-jre_x64_linux_hotspot_20.0.2_9.tar.gz", - "version": "20.0.2" - } - }, - "openjdk21": { - "aarch64": { - "build": "12", - "sha256": "4582c4cc0c6d498ba7a23fdb0a5179c9d9c0d7a26f2ee8610468d5c2954fcf2f", - "url": "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.1%2B12/OpenJDK21U-jre_aarch64_linux_hotspot_21.0.1_12.tar.gz", - "version": "21.0.1" - }, - "packageType": "jre", - "powerpc64le": { - "build": "12", - "sha256": "05cc9b7bfbe246c27d307783b3d5095797be747184b168018ae3f7cc55608db2", - "url": "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.1%2B12/OpenJDK21U-jre_ppc64le_linux_hotspot_21.0.1_12.tar.gz", - "version": "21.0.1" - }, - "vmType": "hotspot", - "x86_64": { - "build": "12", - "sha256": "277f4084bee875f127a978253cfbaad09c08df597feaf5ccc82d2206962279a3", - "url": "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.1%2B12/OpenJDK21U-jre_x64_linux_hotspot_21.0.1_12.tar.gz", - "version": "21.0.1" - } - }, - "openjdk8": { - "aarch64": { - "build": "8", - "sha256": "37b997f12cd572da979283fccafec9ba903041a209605b50fcb46cc34f1a9917", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u392-b08/OpenJDK8U-jre_aarch64_linux_hotspot_8u392b08.tar.gz", - "version": "8.0.392" - }, - "armv6l": { - "build": "5", - "sha256": "b92fb3972372b5d1f9fb51815def903105722b747f680b7ecf2ba2ba863ab156", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u382-b05/OpenJDK8U-jre_arm_linux_hotspot_8u382b05.tar.gz", - "version": "8.0.382" - }, - "armv7l": { - "build": "5", - "sha256": "b92fb3972372b5d1f9fb51815def903105722b747f680b7ecf2ba2ba863ab156", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u382-b05/OpenJDK8U-jre_arm_linux_hotspot_8u382b05.tar.gz", - "version": "8.0.382" - }, - "packageType": "jre", - "powerpc64le": { - "build": "8", - "sha256": "0ecb0aeb54fb9d3c9e1a7ea411490127e8e298d93219fafc4dd6051a5b74671f", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u392-b08/OpenJDK8U-jre_ppc64le_linux_hotspot_8u392b08.tar.gz", - "version": "8.0.392" - }, - "vmType": "hotspot", - "x86_64": { - "build": "8", - "sha256": "91d31027da0d985be3549714389593d9e0da3da5057d87e3831c7c538b9a2a0f", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u392-b08/OpenJDK8U-jre_x64_linux_hotspot_8u392b08.tar.gz", - "version": "8.0.392" - } - } - } - }, - "mac": { - "jdk": { - "openjdk11": { - "aarch64": { - "build": "9", - "sha256": "3be236f2cf9612cd38cd6b7cfa4b8eef642a88beab0cd37c6ccf1766d755b4cc", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.21%2B9/OpenJDK11U-jdk_aarch64_mac_hotspot_11.0.21_9.tar.gz", - "version": "11.0.21" - }, - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "9", - "sha256": "39e30e333d01f70765f0fdc57332bc2c5ae101392bcc315ef06f472d80d8e2d7", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.21%2B9/OpenJDK11U-jdk_x64_mac_hotspot_11.0.21_9.tar.gz", - "version": "11.0.21" - } - }, - "openjdk16": { - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "27975d9e695cfbb93861540926f9f7bcac973a254ceecbee549706a99cbbdf95", - "url": "https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_x64_mac_hotspot_16.0.2_7.tar.gz", - "version": "16.0.2" - } - }, - "openjdk17": { - "aarch64": { - "build": "9", - "sha256": "823777266415347983bbd87ccd8136537242ff27e62f307b7e8521494c665f0d", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.9%2B9/OpenJDK17U-jdk_aarch64_mac_hotspot_17.0.9_9.tar.gz", - "version": "17.0.9" - }, - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "9", - "sha256": "c69b37ea72136df49ce54972408803584b49b2c91b0fbc876d7125e963c7db37", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.9%2B9/OpenJDK17U-jdk_x64_mac_hotspot_17.0.9_9.tar.gz", - "version": "17.0.9" - } - }, - "openjdk18": { - "aarch64": { - "build": "1", - "sha256": "c5ec423f52d8f3aa632941f29fd289f2e31dce5fe6f3abed9b72bd374f54cd41", - "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jdk_aarch64_mac_hotspot_18.0.2.1_1.tar.gz", - "version": "18.0.2" - }, - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "1", - "sha256": "2ed916b0c9d197a6bf71b76e84d94125023c2609e0a9b22c64553eff5c9c29c1", - "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jdk_x64_mac_hotspot_18.0.2.1_1.tar.gz", - "version": "18.0.2" - } - }, - "openjdk19": { - "aarch64": { - "build": "7", - "sha256": "c419330cc8d6b9974d3bf1937f8f0e747c34c469afd5c546831d35aa19e03d49", - "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.2%2B7/OpenJDK19U-jdk_aarch64_mac_hotspot_19.0.2_7.tar.gz", - "version": "19.0.2" - }, - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "f59d4157b3b53a35e72db283659d47f14aecae0ff5936d5f8078000504299da6", - "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.2%2B7/OpenJDK19U-jdk_x64_mac_hotspot_19.0.2_7.tar.gz", - "version": "19.0.2" - } - }, - "openjdk20": { - "aarch64": { - "build": "9", - "sha256": "6ef42b63581c0265c5a6b734e203bb922ee720571a8de46532ecca50a804c596", - "url": "https://github.com/adoptium/temurin20-binaries/releases/download/jdk-20.0.2%2B9/OpenJDK20U-jdk_aarch64_mac_hotspot_20.0.2_9.tar.gz", - "version": "20.0.2" - }, - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "9", - "sha256": "bdeb37322a7c9292434e417d4db9f5debd7477cf413335d3a653a4e5e50a2473", - "url": "https://github.com/adoptium/temurin20-binaries/releases/download/jdk-20.0.2%2B9/OpenJDK20U-jdk_x64_mac_hotspot_20.0.2_9.tar.gz", - "version": "20.0.2" - } - }, - "openjdk21": { - "aarch64": { - "build": "12", - "sha256": "0d29257c9bcb5f20f5c4643ef9437f36b10376863eddaf6248d09093796c6b30", - "url": "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.1%2B12/OpenJDK21U-jdk_aarch64_mac_hotspot_21.0.1_12.tar.gz", - "version": "21.0.1" - }, - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "12", - "sha256": "35f3cbc86d7ff0a01facefd741d5cfb675867e0a5ec137f62ba071d2511a45c9", - "url": "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.1%2B12/OpenJDK21U-jdk_x64_mac_hotspot_21.0.1_12.tar.gz", - "version": "21.0.1" - } - }, - "openjdk8": { - "packageType": "jdk", - "vmType": "hotspot", - "x86_64": { - "build": "8", - "sha256": "d152f5b2ed8473ee0eb29c7ee134958d75ea86c8ccbafb5ee04a5545dd76108f", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u392-b08/OpenJDK8U-jdk_x64_mac_hotspot_8u392b08.tar.gz", - "version": "8.0.392" - } - } - }, - "jre": { - "openjdk11": { - "aarch64": { - "build": "9", - "sha256": "bcac3231195a95cac397a35410bfa3f0945ec03e5194e7b0c1d0e785a48f8b76", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.21%2B9/OpenJDK11U-jre_aarch64_mac_hotspot_11.0.21_9.tar.gz", - "version": "11.0.21" - }, - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "9", - "sha256": "43d29affe994a09de31bf2fb6f8ab6d6792ba4267b9a2feacaa1f6e042481b9b", - "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.21%2B9/OpenJDK11U-jre_x64_mac_hotspot_11.0.21_9.tar.gz", - "version": "11.0.21" - } - }, - "openjdk17": { - "aarch64": { - "build": "9", - "sha256": "89831d03b7cd9922bd178f1a9c8544a36c54d52295366db4e6628454b01acaef", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.9%2B9/OpenJDK17U-jre_aarch64_mac_hotspot_17.0.9_9.tar.gz", - "version": "17.0.9" - }, - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "9", - "sha256": "ba214f2217dc134e94432085cff4fc5a97e964ffc211d343725fd535f3cd98a0", - "url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.9%2B9/OpenJDK17U-jre_x64_mac_hotspot_17.0.9_9.tar.gz", - "version": "17.0.9" - } - }, - "openjdk18": { - "aarch64": { - "build": "1", - "sha256": "071f073efb9550838bc02e429ef972f9450b477360f803dd1cf19096ca41182e", - "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jre_aarch64_mac_hotspot_18.0.2.1_1.tar.gz", - "version": "18.0.2" - }, - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "1", - "sha256": "3629e3dc9dbab7ed13070fbea3a827030acdd62afa557496e88a6d01f9300474", - "url": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jre_x64_mac_hotspot_18.0.2.1_1.tar.gz", - "version": "18.0.2" - } - }, - "openjdk19": { - "aarch64": { - "build": "7", - "sha256": "1cd53e60478912fe5f2095313821e90c4926e74ff60a4aa9d99fc2ec912411c1", - "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.2%2B7/OpenJDK19U-jre_aarch64_mac_hotspot_19.0.2_7.tar.gz", - "version": "19.0.2" - }, - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "7", - "sha256": "33a37be7a5d7a6003595eeee6d09e47abfa1a1065a4da9a6f592b4b09cfcea19", - "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.2%2B7/OpenJDK19U-jre_x64_mac_hotspot_19.0.2_7.tar.gz", - "version": "19.0.2" - } - }, - "openjdk20": { - "aarch64": { - "build": "9", - "sha256": "81b475ab029ab224b2c711ccdfa9c25e0300539faad342a4ceefd33772fb38b4", - "url": "https://github.com/adoptium/temurin20-binaries/releases/download/jdk-20.0.2%2B9/OpenJDK20U-jre_aarch64_mac_hotspot_20.0.2_9.tar.gz", - "version": "20.0.2" - }, - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "9", - "sha256": "565d62faac325c098670705fb26a5cc3d4af0a25e86444ddd643f779ad2a3417", - "url": "https://github.com/adoptium/temurin20-binaries/releases/download/jdk-20.0.2%2B9/OpenJDK20U-jre_x64_mac_hotspot_20.0.2_9.tar.gz", - "version": "20.0.2" - } - }, - "openjdk21": { - "aarch64": { - "build": "12", - "sha256": "bc384961d3a866198b1055a80fdff7fb6946aa6823b3ce624cc8c3125a26bed5", - "url": "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.1%2B12/OpenJDK21U-jre_aarch64_mac_hotspot_21.0.1_12.tar.gz", - "version": "21.0.1" - }, - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "12", - "sha256": "c21a2648ec21bc4701acfb6b7a1fd90aca001db1efb8454e2980d4c8dcd9e310", - "url": "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.1%2B12/OpenJDK21U-jre_x64_mac_hotspot_21.0.1_12.tar.gz", - "version": "21.0.1" - } - }, - "openjdk8": { - "packageType": "jre", - "vmType": "hotspot", - "x86_64": { - "build": "8", - "sha256": "f1f15920ed299e10c789aef6274d88d45eb21b72f9a7b0d246a352107e344e6a", - "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u392-b08/OpenJDK8U-jre_x64_mac_hotspot_8u392b08.tar.gz", - "version": "8.0.392" - } - } - } - } - } -} diff --git a/pkgs/by-name/ja/java/zulu/11.nix b/pkgs/by-name/ja/java/zulu/11.nix deleted file mode 100644 index afe3363..0000000 --- a/pkgs/by-name/ja/java/zulu/11.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ 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="; - }; - - 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="; - }; - - 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" ]) diff --git a/pkgs/by-name/ja/java/zulu/17.nix b/pkgs/by-name/ja/java/zulu/17.nix deleted file mode 100644 index 74e00df..0000000 --- a/pkgs/by-name/ja/java/zulu/17.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ 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="; - }; - - 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="; - }; - - aarch64-darwin = { - zuluVersion = "17.48.15"; - jdkVersion = "17.0.10"; - hash = - if enableJavaFX then "sha256-fxBDhHMeL5IP4eRw9ykXrRRh7Nl9DnvDB1YLaQwFHLg=" - else "sha256-kuEiHSkb4WFtPB3m0A968LPZw7Wl0sKquhbzDF8vQS8="; - }; - }; -} // builtins.removeAttrs args [ "callPackage" ]) diff --git a/pkgs/by-name/ja/java/zulu/18.nix b/pkgs/by-name/ja/java/zulu/18.nix deleted file mode 100644 index cbee8ac..0000000 --- a/pkgs/by-name/ja/java/zulu/18.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ 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="; - }; - - 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" ]) diff --git a/pkgs/by-name/ja/java/zulu/19.nix b/pkgs/by-name/ja/java/zulu/19.nix deleted file mode 100644 index 28dbf58..0000000 --- a/pkgs/by-name/ja/java/zulu/19.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ 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="; - }; - - 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" ]) diff --git a/pkgs/by-name/ja/java/zulu/20.nix b/pkgs/by-name/ja/java/zulu/20.nix deleted file mode 100644 index 38083a8..0000000 --- a/pkgs/by-name/ja/java/zulu/20.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ 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="; - }; - - 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" ]) diff --git a/pkgs/by-name/ja/java/zulu/21.nix b/pkgs/by-name/ja/java/zulu/21.nix deleted file mode 100644 index db2d3a3..0000000 --- a/pkgs/by-name/ja/java/zulu/21.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ 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="; - }; - - 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="; - }; - - 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" ]) diff --git a/pkgs/by-name/ja/java/zulu/22.nix b/pkgs/by-name/ja/java/zulu/22.nix deleted file mode 100644 index 96b0e68..0000000 --- a/pkgs/by-name/ja/java/zulu/22.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ 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="; - }; - - 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="; - }; - - 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" ]) diff --git a/pkgs/by-name/ja/java/zulu/8.nix b/pkgs/by-name/ja/java/zulu/8.nix deleted file mode 100644 index 0541114..0000000 --- a/pkgs/by-name/ja/java/zulu/8.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ 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="; - }; - - 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="; - }; - - 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" ]) diff --git a/pkgs/by-name/ja/java/zulu/common.nix b/pkgs/by-name/ja/java/zulu/common.nix deleted file mode 100644 index c905623..0000000 --- a/pkgs/by-name/ja/java/zulu/common.nix +++ /dev/null @@ -1,172 +0,0 @@ -{ lib -, stdenv -, fetchurl -, setJavaClassPath -, enableJavaFX ? false -, dists - # minimum dependencies -, unzip -, autoPatchelfHook -, makeWrapper -, alsa-lib -, fontconfig -, freetype -, zlib -, xorg - # runtime dependencies -, cups - # runtime dependencies for GTK+ Look and Feel -, gtkSupport ? stdenv.isLinux -, cairo -, glib -, gtk2 -, gtk3 - # runtime dependencies for JavaFX -, ffmpeg -}: -let - 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}"); - - 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 - ]; - - runtimeLibraryPath = lib.makeLibraryPath runtimeDependencies; - - jce-policies = fetchurl { - url = "https://web.archive.org/web/20211126120343/http://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip"; - hash = "sha256-gCGii4ysQbRPFCH9IQoKCCL8r4jWLS5wo1sv9iioZ1o="; - }; - - javaPackage = if enableJavaFX then "ca-fx-jdk" else "ca-jdk"; - - isJdk8 = lib.versions.major dist.jdkVersion == "8"; - - jdk = stdenv.mkDerivation rec { - pname = "zulu-${javaPackage}"; - version = dist.jdkVersion; - - src = fetchurl { - url = "https://cdn.azul.com/zulu/bin/zulu${dist.zuluVersion}-${javaPackage}${dist.jdkVersion}-${platform}_${arch}.tar.gz"; - inherit (dist) hash; - curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/"; - }; - - 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; - - autoPatchelfIgnoreMissingDeps = if (stdenv.isLinux && enableJavaFX) then [ - "libavcodec*.so.*" - "libavformat*.so.*" - ] else null; - - installPhase = '' - mkdir -p $out - mv * $out - - unzip ${jce-policies} - mv -f ZuluJCEPolicies/*.jar $out/${lib.optionalString isJdk8 "jre/"}lib/security/ - - # jni.h expects jni_md.h to be in the header search path. - ln -s $out/include/${stdenv.hostPlatform.parsed.kernel.name}/*_md.h $out/include/ - - if [ -f $out/LICENSE ]; then - install -D $out/LICENSE $out/share/zulu/LICENSE - rm $out/LICENSE - 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 - - # 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. - postFixup = lib.optionalString stdenv.isDarwin '' - ln -nsf ../zulu-${lib.versions.major version}.jdk/Contents/Home/man $out/share/man - ''; - - passthru = (lib.optionalAttrs isJdk8 { - jre = jdk; - }) // { - home = jdk; - }; - - meta = (import ../openjdk/meta.nix lib version) // { - description = "Certified builds of OpenJDK"; - longDescription = '' - Certified builds of OpenJDK that can be deployed across multiple - operating systems, containers, hypervisors and Cloud platforms. - ''; - homepage = "https://www.azul.com/products/zulu/"; - mainProgram = "java"; - maintainers = [ ]; - platforms = builtins.attrNames dists; - sourceProvenance = with lib.sourceTypes; [ binaryBytecode binaryNativeCode ]; - }; - }; -in -jdk diff --git a/pkgs/by-name/je/jemalloc/default.nix b/pkgs/by-name/je/jemalloc/default.nix deleted file mode 100644 index 902c0d7..0000000 --- a/pkgs/by-name/je/jemalloc/default.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ 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 { - pname = "jemalloc"; - version = "5.3.0"; - - src = fetchurl { - url = "https://github.com/jemalloc/jemalloc/releases/download/${version}/${pname}-${version}.tar.bz2"; - sha256 = "sha256-LbgtHnEZ3z5xt2QCGbbf6EeJvAU3mDw7esT3GJrs/qo="; - }; - - patches = [ - # fix tests under --with-jemalloc-prefix=, see https://github.com/jemalloc/jemalloc/pull/2340 - (fetchpatch { - url = "https://github.com/jemalloc/jemalloc/commit/d00ecee6a8dfa90afcb1bbc0858985c17bef6559.patch"; - hash = "sha256-N5i4IxGJ4SSAgFiq5oGRnrNeegdk2flw9Sh2mP0yl4c="; - }) - ]; - - configureFlags = - # see the comment on stripPrefix - lib.optional stripPrefix "--with-jemalloc-prefix=" - ++ lib.optional disableInitExecTls "--disable-initial-exec-tls" - # jemalloc is unable to correctly detect transparent hugepage support on - # ARM (https://github.com/jemalloc/jemalloc/issues/526), and the default - # kernel ARMv6/7 kernel does not enable it, so we explicitly disable support - ++ lib.optionals (stdenv.isAarch32 && lib.versionOlder version "5") [ - "--disable-thp" - "je_cv_thp=no" - ] - # AArch64 has configurable page size up to 64k. The default configuration - # for jemalloc only supports 4k page sizes. - ++ 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" - ; - - env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-Wno-error=array-bounds"; - - # Tries to link test binaries binaries dynamically and fails - doCheck = !stdenv.hostPlatform.isStatic; - - enableParallelBuilding = true; - - meta = with lib; { - homepage = "https://jemalloc.net/"; - description = "General purpose malloc(3) implementation"; - longDescription = '' - malloc(3)-compatible memory allocator that emphasizes fragmentation - avoidance and scalable concurrency support. - ''; - license = licenses.bsd2; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/je/jemalloc/rust.nix b/pkgs/by-name/je/jemalloc/rust.nix deleted file mode 100644 index 1a99689..0000000 --- a/pkgs/by-name/je/jemalloc/rust.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib -, stdenv -, jemalloc -, writeText - -, 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; - -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 deleted file mode 100644 index 432fe68..0000000 --- a/pkgs/by-name/jq/jq/default.nix +++ /dev/null @@ -1,84 +0,0 @@ -{ lib -, stdenv -, fetchurl -, removeReferencesTo -, autoreconfHook -, bison -, onigurumaSupport ? true -, oniguruma -}: - -stdenv.mkDerivation rec { - pname = "jq"; - version = "1.7.1"; - - # Note: do not use fetchpatch or fetchFromGitHub to keep this package available in __bootPackages - src = fetchurl { - url = "https://github.com/jqlang/jq/releases/download/jq-${version}/jq-${version}.tar.gz"; - hash = "sha256-R4ycoSn9LjRD/icxS0VeIR4NjGC8j/ffcDhz3u7lgMI="; - }; - - 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 - # doesn't keep. - preConfigure = '' - echo "#!/bin/sh" > scripts/version - echo "echo ${version}" >> scripts/version - patchShebangs scripts/version - ''; - - # paranoid mode: make sure we never use vendored version of oniguruma - # Note: it must be run after automake, or automake will complain - preBuild = '' - rm -r ./modules/oniguruma - ''; - - buildInputs = lib.optionals onigurumaSupport [ oniguruma ]; - 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 - # with clang 16+ due to calls to undeclared functions. - # This is fixed upstream and can be removed once jq is updated (to 1.7 or an unstable release). - env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin (toString [ - "-D_REENTRANT=1" - "-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}"; - - # 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 - postFixup = '' - remove-references-to -t "$dev" "$bin/bin/jq" - ''; - - doInstallCheck = true; - installCheckTarget = "check"; - - postInstallCheck = '' - $bin/bin/jq --help >/dev/null - $bin/bin/jq -r '.values[1]' <<< '{"values":["hello","world"]}' | grep '^world$' > /dev/null - ''; - - 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 ]; - 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 deleted file mode 100644 index ab3d2be..0000000 --- a/pkgs/by-name/js/json_c/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "json-c"; - version = "0.17"; - - src = fetchFromGitHub { - owner = "json-c"; - repo = "json-c"; - rev = "json-c-0.17-20230812"; - hash = "sha256-R5KIJ0xVgGqffjzJaZvvvhAneJ+ZBuanyF6KYTTxb58="; - }; - - outputs = [ "out" "dev" ]; - - nativeBuildInputs = [ cmake ]; - - meta = with lib; { - description = "A JSON implementation in C"; - longDescription = '' - JSON-C implements a reference counting object model that allows you to - easily construct JSON objects in C, output them as JSON formatted strings - and parse JSON formatted strings back into the C representation of JSON - objects. - ''; - homepage = "https://github.com/json-c/json-c/wiki"; - changelog = "https://github.com/json-c/json-c/blob/${finalAttrs.src.rev}/ChangeLog"; - maintainers = with maintainers; [ lovek323 ]; - platforms = platforms.unix; - license = licenses.mit; - }; -}) diff --git a/pkgs/by-name/ke/kerberos/heimdal.nix b/pkgs/by-name/ke/kerberos/heimdal.nix deleted file mode 100644 index ff211b6..0000000 --- a/pkgs/by-name/ke/kerberos/heimdal.nix +++ /dev/null @@ -1,178 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, autoreconfHook -, pkg-config -, python3 -, perl -, bison -, flex -, texinfo -, perlPackages - -, openldap -, libcap_ng -, sqlite -, openssl -, db -, libedit -, pam -, krb5 -, libmicrohttpd -, cjson - -, CoreFoundation -, Security -, SystemConfiguration - -, curl -, jdk -, unzip -, which - -, 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 -}: - -assert lib.assertMsg (withOpenLDAPAsHDBModule -> withOpenLDAP) '' - OpenLDAP needs to be enabled in order to build the OpenLDAP HDB Module. -''; - -stdenv.mkDerivation { - pname = "heimdal"; - version = "7.8.0-unstable-2023-11-29"; - - src = fetchFromGitHub { - owner = "heimdal"; - repo = "heimdal"; - rev = "3253c49544eacb33d5ad2f6f919b0696e5aab794"; - hash = "sha256-uljzQBzXrZCZjcIWfioqHN8YsbUUNy14Vo+A3vZIXzM="; - }; - - outputs = [ "out" "dev" "man" "info" ]; - - nativeBuildInputs = [ - autoreconfHook - pkg-config - python3 - perl - bison - flex - texinfo - ] - ++ (with perlPackages; [ JSON ]); - - buildInputs = [ db libedit pam ] - ++ lib.optionals (stdenv.isDarwin) [ CoreFoundation Security SystemConfiguration ] - ++ lib.optionals (withCJSON) [ cjson ] - ++ lib.optionals (withCapNG) [ libcap_ng ] - ++ lib.optionals (withMicroHTTPD) [ libmicrohttpd ] - ++ lib.optionals (withOpenLDAP) [ openldap ] - ++ lib.optionals (withOpenSSL) [ openssl ] - ++ lib.optionals (withSQLite3) [ sqlite ]; - - doCheck = true; - nativeCheckInputs = [ - curl - jdk - unzip - which - ]; - - 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}" - ]; - - # (check-ldap) slapd resides within ${openldap}/libexec, - # which is not part of $PATH by default. - # (check-ldap) prepending ${openldap}/bin to the path to avoid - # using the default installation of openldap on unsandboxed darwin systems, - # which does not support the new mdb backend at the moment (2024-01-13). - # (check-ldap) the bdb backend got deprecated in favour of mdb in openldap 2.5.0, - # but the heimdal tests still seem to expect bdb as the openldap backend. - # This might be fixed upstream in a future update. - patchPhase = '' - runHook prePatch - - substituteInPlace tests/ldap/slapd-init.in \ - --replace 'SCHEMA_PATHS="' 'SCHEMA_PATHS="${openldap}/etc/schema ' - substituteInPlace tests/ldap/check-ldap.in \ - --replace 'PATH=' 'PATH=${openldap}/libexec:${openldap}/bin:' - substituteInPlace tests/ldap/slapd.conf \ - --replace 'database bdb' 'database mdb' - - runHook postPatch - ''; - - # (test_cc) heimdal uses librokens implementation of `secure_getenv` on darwin, - # which expects either USER or LOGNAME to be set. - preCheck = lib.optionalString (stdenv.isDarwin) '' - export USER=nix-builder - ''; - - # We need to build hcrypt for applications like samba - postBuild = '' - (cd include/hcrypto; make -j $NIX_BUILD_CORES) - (cd lib/hcrypto; make -j $NIX_BUILD_CORES) - ''; - - postInstall = '' - # Install hcrypto - (cd include/hcrypto; make -j $NIX_BUILD_CORES install) - (cd lib/hcrypto; make -j $NIX_BUILD_CORES install) - - mkdir -p $dev/bin - mv $out/bin/krb5-config $dev/bin/ - - # asn1 compilers, move them to $dev - mv $out/libexec/heimdal/* $dev/bin - rmdir $out/libexec/heimdal - - # compile_et is needed for cross-compiling this package and samba - mv lib/com_err/.libs/compile_et $dev/bin - ''; - - # Issues with hydra - # In file included from hxtool.c:34:0: - # hx_locl.h:67:25: fatal error: pkcs10_asn1.h: No such file or directory - #enableParallelBuilding = true; - - passthru = { - implementation = "heimdal"; - tests.nixos = nixosTests.kerberos.heimdal; - }; - - meta = with lib; { - homepage = "https://www.heimdal.software"; - changelog = "https://github.com/heimdal/heimdal/releases"; - description = "An implementation of Kerberos 5 (and some more stuff)"; - license = licenses.bsd3; - platforms = platforms.unix; - maintainers = with maintainers; [ h7x4 ]; - }; -} diff --git a/pkgs/by-name/ke/kerberos/krb5.nix b/pkgs/by-name/ke/kerberos/krb5.nix deleted file mode 100644 index edf5a06..0000000 --- a/pkgs/by-name/ke/kerberos/krb5.nix +++ /dev/null @@ -1,130 +0,0 @@ -{ lib, stdenv, fetchurl, pkg-config, perl, bison, bootstrap_cmds -, openssl, openldap, libedit, keyutils, libverto, darwin - -# 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 -}: - -# 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 - libOnly = type == "lib"; -in - -assert withLdap -> !libOnly; - -stdenv.mkDerivation rec { - pname = "${type}krb5"; - version = "1.21.2"; - - src = fetchurl { - url = "https://kerberos.org/dist/krb5/${lib.versions.majorMinor version}/krb5-${version}.tar.gz"; - hash = "sha256-lWCUGp2EPAJDpxsXp6xv4xx867W845g9t55Srn6FBJE="; - }; - - outputs = [ "out" "dev" ]; - - 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.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" - ]; - - 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 ] - ++ 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 - ]); - - sourceRoot = "krb5-${version}/src"; - - postPatch = '' - substituteInPlace config/shlib.conf \ - --replace "'ld " "'${stdenv.cc.targetPrefix}ld " - ''; - - libFolders = [ "util" "include" "lib" "build-tools" ]; - - buildPhase = lib.optionalString libOnly '' - runHook preBuild - - MAKE="make -j $NIX_BUILD_CORES" - for folder in $libFolders; do - $MAKE -C $folder - done - - runHook postBuild - ''; - - installPhase = lib.optionalString libOnly '' - runHook preInstall - - mkdir -p "$out"/{bin,sbin,lib/pkgconfig,share/{et,man/man1}} \ - "$dev"/include/{gssapi,gssrpc,kadm5,krb5} - for folder in $libFolders; do - $MAKE -C $folder install - done - - runHook postInstall - ''; - - # not via outputBin, due to reference from libkrb5.so - postInstall = '' - moveToOutput bin/krb5-config "$dev" - ''; - - enableParallelBuilding = true; - doCheck = false; # fails with "No suitable file for testing purposes" - - meta = with lib; { - description = "MIT Kerberos 5"; - homepage = "http://web.mit.edu/kerberos/"; - license = licenses.mit; - platforms = platforms.unix ++ platforms.windows; - }; - - # passthru = { - # implementation = "krb5"; - # tests = { - # inherit (nixosTests) kerberos; - # inherit (python3.pkgs) requests-credssp; - # bind = bind.override { enableGSSAPI = true; }; - # curl = curl.override { gssSupport = true; }; - # openssh = openssh.override { withKerberos = true; }; - # # postgresql = postgresql.override { gssSupport = true; }; - # }; - # }; -} diff --git a/pkgs/by-name/ke/kerberos/packages.nix b/pkgs/by-name/ke/kerberos/packages.nix deleted file mode 100644 index 2a8c57d..0000000 --- a/pkgs/by-name/ke/kerberos/packages.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - krb5 = callPackage ./krb5.nix { - inherit (buildPackages.darwin) bootstrap_cmds; - }; - libkrb5 = krb5.override { type = "lib"; }; - - heimdal = callPackage ./heimdal.nix { - inherit (darwin.apple_sdk.frameworks) CoreFoundation Security SystemConfiguration; - autoreconfHook = buildPackages.autoreconfHook269; - }; -} diff --git a/pkgs/by-name/ke/kernel-headers/default.nix b/pkgs/by-name/ke/kernel-headers/default.nix deleted file mode 100644 index fc2f8dd..0000000 --- a/pkgs/by-name/ke/kernel-headers/default.nix +++ /dev/null @@ -1,125 +0,0 @@ -{ stdenvNoCC, lib, buildPackages, fetchurl, perl, elf-header -, bison, flex, rsync -, writeTextFile -}: - -let - - # As part of building a hostPlatform=mips kernel, Linux creates and runs a - # tiny utility `arch/mips/boot/tools/relocs_main.c` for the buildPlatform. - # This utility references a glibc-specific header `byteswap.h`. There is a - # compatibility header in gnulib for most BSDs, but not for Darwin, so we - # synthesize one here. - darwin-endian-h = writeTextFile { - name = "endian-h"; - text = '' - #include - ''; - destination = "/include/endian.h"; - }; - darwin-byteswap-h = writeTextFile { - name = "byteswap-h"; - text = '' - #pragma once - #include - #define bswap_16 OSSwapInt16 - #define bswap_32 OSSwapInt32 - #define bswap_64 OSSwapInt64 - ''; - destination = "/include/byteswap.h"; - }; - - makeLinuxHeaders = { src, version, patches ? [] }: stdenvNoCC.mkDerivation { - inherit src; - - pname = "linux-headers"; - inherit version; - - ARCH = stdenvNoCC.hostPlatform.linuxArch; - - 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 - ]; - - extraIncludeDirs = lib.optionals (with stdenvNoCC.hostPlatform; isPower && is32bit && isBigEndian) ["ppc"]; - - inherit patches; - - 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)" - ]; - - # 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 - ''; - - # 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; - }; - }; -in { - inherit makeLinuxHeaders; - - linuxHeaders = let version = "6.7"; in - makeLinuxHeaders { - inherit version; - src = fetchurl { - url = "mirror://kernel/linux/kernel/v${lib.versions.major version}.x/linux-${version}.tar.xz"; - hash = "sha256-7zEUSiV20IDYwxaY6D7J9mv5fGd/oqrw1bu58zRbEGk="; - }; - patches = [ - ./no-relocs.patch # for building x86 kernel headers on non-ELF platforms - ]; - }; -} diff --git a/pkgs/by-name/ke/kernel-headers/no-relocs.patch b/pkgs/by-name/ke/kernel-headers/no-relocs.patch deleted file mode 100644 index 32c8822..0000000 --- a/pkgs/by-name/ke/kernel-headers/no-relocs.patch +++ /dev/null @@ -1,7 +0,0 @@ ---- a/arch/x86/Makefile -+++ b/arch/x86/Makefile -@@ -231,3 +231,3 @@ endif - archscripts: scripts_basic -- $(Q)$(MAKE) $(build)=arch/x86/tools relocs -+ $(Q)$(MAKE) $(build)=arch/x86/tools - diff --git a/pkgs/by-name/ke/kernel-headers/packages.nix b/pkgs/by-name/ke/kernel-headers/packages.nix deleted file mode 100644 index 6467245..0000000 --- a/pkgs/by-name/ke/kernel-headers/packages.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - inherit (callPackages ./. { inherit (pkgsBuildBuild) elf-header; }) - linuxHeaders makeLinuxHeaders; -} diff --git a/pkgs/by-name/ke/keyutils/0001-Remove-unused-function-after_eq.patch b/pkgs/by-name/ke/keyutils/0001-Remove-unused-function-after_eq.patch deleted file mode 100644 index 61ad2a4..0000000 --- a/pkgs/by-name/ke/keyutils/0001-Remove-unused-function-after_eq.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 59d91e57d103fb4686d2f45ee3c688878244367a Mon Sep 17 00:00:00 2001 -From: Christian Kampka -Date: Tue, 24 Nov 2020 22:12:40 +0100 -Subject: [PATCH] Remove unused function 'after_eq' - ---- - keyctl_watch.c | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git a/keyctl_watch.c b/keyctl_watch.c -index a70a19a..c4ca7f7 100644 ---- a/keyctl_watch.c -+++ b/keyctl_watch.c -@@ -47,11 +47,6 @@ static struct watch_notification_filter filter = { - }, - }; - --static inline bool after_eq(unsigned int a, unsigned int b) --{ -- return (signed int)(a - b) >= 0; --} -- - static void consumer_term(int sig) - { - consumer_stop = 1; --- -2.28.0 - diff --git a/pkgs/by-name/ke/keyutils/conf-symlink.patch b/pkgs/by-name/ke/keyutils/conf-symlink.patch deleted file mode 100644 index 02762e8..0000000 --- a/pkgs/by-name/ke/keyutils/conf-symlink.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/request-key.c b/request-key.c -index bf47c0a..105fee8 100644 ---- a/request-key.c -+++ b/request-key.c -@@ -313,7 +313,7 @@ static void scan_conf_dir(struct parameters *params, const char *confdir) - while ((d = readdir(dir))) { - if (d->d_name[0] == '.') - continue; -- if (d->d_type != DT_UNKNOWN && d->d_type != DT_REG) -+ if (d->d_type != DT_UNKNOWN && d->d_type != DT_REG && d->d_type != DT_LNK) - continue; - l = strlen(d->d_name); - if (l < 5) diff --git a/pkgs/by-name/ke/keyutils/default.nix b/pkgs/by-name/ke/keyutils/default.nix deleted file mode 100644 index 3426266..0000000 --- a/pkgs/by-name/ke/keyutils/default.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ lib, stdenv, fetchurl }: - -# 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. - -stdenv.mkDerivation rec { - pname = "keyutils"; - version = "1.6.3"; - - src = fetchurl { - url = "https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git/snapshot/${pname}-${version}.tar.gz"; - sha256 = "sha256-ph1XBhNq5MBb1I+GGGvP29iN2L1RB+Phlckkz8Gzm7Q="; - }; - - patches = [ - ./conf-symlink.patch - # This patch solves a duplicate symbol error when building with a clang stdenv - # Before removing this patch, please ensure the package still builds by running eg. - # nix-build -E 'with import ./. {}; pkgs.keyutils.override { stdenv = pkgs.clangStdenv; }' - ./0001-Remove-unused-function-after_eq.patch - - # Fix build for s390-linux, where size_t is different from ptrdiff_t. - (fetchurl { - url = "https://lore.kernel.org/keyrings/20230301134250.301819-1-hi@alyssa.is/raw"; - sha256 = "1cbgwxq28fw5ldh38ngcs7xiqvpnmrw0hw9zzhbhb1hdxkavrc1s"; - }) - ]; - - makeFlags = lib.optionals stdenv.hostPlatform.isStatic "NO_SOLIB=1"; - - outputs = [ "out" "lib" "dev" "man" ]; - - postPatch = '' - # https://github.com/archlinux/svntogit-packages/blob/packages/keyutils/trunk/reproducible.patch - substituteInPlace Makefile \ - --replace \ - 'VCPPFLAGS := -DPKGBUILD="\"$(shell date -u +%F)\""' \ - 'VCPPFLAGS := -DPKGBUILD="\"$(date -ud "@$SOURCE_DATE_EPOCH" +%F)\""' - ''; - - enableParallelBuilding = true; - - installFlags = [ - "ETCDIR=$(out)/etc" - "BINDIR=$(out)/bin" - "SBINDIR=$(out)/sbin" - "SHAREDIR=$(out)/share/keyutils" - "MANDIR=$(out)/share/man" - "INCLUDEDIR=$(dev)/include" - "LIBDIR=$(lib)/lib" - "USRLIBDIR=$(lib)/lib" - ]; - - meta = with lib; { - homepage = "https://people.redhat.com/dhowells/keyutils/"; - description = "Tools used to control the Linux kernel key management system"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - }; -} diff --git a/pkgs/by-name/lc/lcms2/default.nix b/pkgs/by-name/lc/lcms2/default.nix deleted file mode 100644 index ab98488..0000000 --- a/pkgs/by-name/lc/lcms2/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib, stdenv, fetchurl, libtiff, libjpeg, zlib }: - -stdenv.mkDerivation rec { - pname = "lcms2"; - version = "2.16"; - - src = fetchurl { - url = "mirror://sourceforge/lcms/${pname}-${version}.tar.gz"; - hash = "sha256-2HPTSti5tM6gEGMfGmIo0gh0deTcXnY+uBrMI9nUWlE="; - }; - - outputs = [ "bin" "dev" "out" ]; - - propagatedBuildInputs = [ libtiff libjpeg zlib ]; - - # See https://trac.macports.org/ticket/60656 - LDFLAGS = if stdenv.hostPlatform.isDarwin then "-Wl,-w" else null; - - meta = with lib; { - description = "Color management engine"; - homepage = "http://www.littlecms.com/"; - license = licenses.mit; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/ld/ldns/default.nix b/pkgs/by-name/ld/ldns/default.nix deleted file mode 100644 index 1e696b1..0000000 --- a/pkgs/by-name/ld/ldns/default.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ lib, stdenv, fetchurl, openssl, perl, which, dns-root-data }: - -stdenv.mkDerivation rec { - pname = "ldns"; - version = "1.8.3"; - - src = fetchurl { - url = "https://www.nlnetlabs.nl/downloads/ldns/${pname}-${version}.tar.gz"; - sha256 = "sha256-w/ct0QNrKQfjpW5qz537LlUSVrPBu9l4eULe7rcOeGA="; - }; - - postPatch = '' - patchShebangs doc/doxyparse.pl - ''; - - 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" - ]; - - nativeCheckInputs = [ which ]; - doCheck = false; # fails. missing some files - - postInstall = '' - # Only 'drill' stays in $out - # the rest are examples: - moveToOutput "bin/ldns*" "$examples" - # with exception of ldns-config, which goes to $dev: - moveToOutput "bin/ldns-config" "$dev" - ''; - - meta = with lib; { - description = "Library with the aim of simplifying DNS programming in C"; - homepage = "http://www.nlnetlabs.nl/projects/ldns/"; - license = licenses.bsd3; - maintainers = with maintainers; [ dtzWill ]; - mainProgram = "drill"; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/le/lerc/default.nix b/pkgs/by-name/le/lerc/default.nix deleted file mode 100644 index f7bba51..0000000 --- a/pkgs/by-name/le/lerc/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, cmake -}: - -stdenv.mkDerivation rec { - pname = "lerc"; - version = "4.0.0"; - - outputs = [ "out" "dev" ]; - - src = fetchFromGitHub { - owner = "esri"; - repo = "lerc"; - rev = "v${version}"; - hash = "sha256-IHY9QtNYsxPz/ksxRMZGHleT+/bawfTYNVRSTAuYQ7Y="; - }; - - patches = [ - # https://github.com/Esri/lerc/pull/227 - (fetchpatch { - name = "use-cmake-install-full-dir.patch"; - url = "https://github.com/Esri/lerc/commit/5462ca7f7dfb38c65e16f5abfd96873af177a0f8.patch"; - hash = "sha256-qaNR3QwLe0AB6vu1nXOh9KhlPdWM3DmgCJj4d0VdOUk="; - }) - ]; - - nativeBuildInputs = [ - cmake - ]; - - meta = { - description = "C++ library for Limited Error Raster Compression"; - homepage = "https://github.com/esri/lerc"; - license = lib.licenses.asl20; - maintainers = with lib.maintainers; [ dotlambda ]; - }; -} diff --git a/pkgs/by-name/li/libarchive/default.nix b/pkgs/by-name/li/libarchive/default.nix deleted file mode 100644 index 6a368fe..0000000 --- a/pkgs/by-name/li/libarchive/default.nix +++ /dev/null @@ -1,136 +0,0 @@ -{ 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 -# , nix -# , samba -}: - -assert xarSupport -> libxml2 != null; -stdenv.mkDerivation (finalAttrs: { - pname = "libarchive"; - version = "3.7.2"; - - src = fetchFromGitHub { - owner = "libarchive"; - repo = "libarchive"; - rev = "v${finalAttrs.version}"; - hash = "sha256-p2JgJ/rvqaQ6yyXSh+ehScUH565ud5bQncl+lOnsWfc="; - }; - - patches = [ - # Pull fix for test failure on 32-bit systems: - (fetchpatch { - name = "32-bit-tests-fix.patch"; - url = "https://github.com/libarchive/libarchive/commit/3bd918d92f8c34ba12de9c6604d96f9e262a59fc.patch"; - hash = "sha256-RM3xFM6S2DkM5DJ0kAba8eLzEXuY5/7AaU06maHJ6rM="; - }) - (fetchpatch { - name = "fix-suspicious-commit-from-known-bad-actor.patch"; - url = "https://github.com/libarchive/libarchive/commit/6110e9c82d8ba830c3440f36b990483ceaaea52c.patch"; - hash = "sha256-/j6rJ0xWhtXU0YCu1LOokxxNppy5Of6Q0XyO4U6la7M="; - }) - ]; - - 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}" - ''; - 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 ] - ++ lib.optional xarSupport libxml2; - - # Without this, pkg-config-based dependencies are unhappy - propagatedBuildInputs = lib.optionals stdenv.isLinux [ attr acl ]; - - configureFlags = lib.optional (!xarSupport) "--without-xml2"; - - preBuild = lib.optionalString stdenv.isCygwin '' - echo "#include " >> config.h - ''; - - # https://github.com/libarchive/libarchive/issues/1475 - doCheck = !stdenv.hostPlatform.isMusl; - - preFixup = '' - sed -i $lib/lib/libarchive.la \ - -e 's|-lcrypto|-L${lib.getLib openssl}/lib -lcrypto|' \ - -e 's|-llzo2|-L${lzo}/lib -llzo2|' - ''; - - enableParallelBuilding = true; - - meta = with lib; { - homepage = "http://libarchive.org"; - description = "Multi-format archive and compression library"; - longDescription = '' - The libarchive project develops a portable, efficient C library that can - read and write streaming archives in a variety of formats. It also - includes implementations of the common tar, cpio, and zcat command-line - tools that use the libarchive library. - ''; - changelog = "https://github.com/libarchive/libarchive/releases/tag/v${finalAttrs.version}"; - license = licenses.bsd3; - maintainers = with maintainers; [ jcumming AndersonTorres ]; - platforms = platforms.all; - }; - - # passthru.tests = { - # inherit cmake nix samba; - # }; -}) diff --git a/pkgs/by-name/li/libbsd/darwin-fix-libbsd.sym.patch b/pkgs/by-name/li/libbsd/darwin-fix-libbsd.sym.patch deleted file mode 100644 index de40da9..0000000 --- a/pkgs/by-name/li/libbsd/darwin-fix-libbsd.sym.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/src/Makefile.am b/src/Makefile.am -index 9d22b00..c6848fc 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -198,7 +198,9 @@ libbsd_ctor_a_SOURCES = \ - # Generate a simple libtool symbol export list to be used as a fallback if - # there is no version script support. - libbsd.sym: libbsd.map -- $(AM_V_GEN) $(SED) -ne 's/^[[:space:]]\{1,\}\([A-Za-z0-9_]\{1,\}\);/\1/p' libbsd.map > $@ -+ $(AM_V_GEN) $(SED) -ne 's/^[[:space:]]\{1,\}\([A-Za-z0-9_]\{1,\}\);/\1/p' libbsd.map \ -+ | grep -Ev '(group_from_gid|user_from_uid|nlist|__fdnlist|bsd_getopt)' \ -+ > $@ - - if NEED_TRANSPARENT_LIBMD - TRANSPARENT_LIBMD_DEPENDS = format.ld diff --git a/pkgs/by-name/li/libbsd/default.nix b/pkgs/by-name/li/libbsd/default.nix deleted file mode 100644 index 9e80d17..0000000 --- a/pkgs/by-name/li/libbsd/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ lib -, stdenv -, fetchurl -, autoreconfHook -, libmd -, gitUpdater -}: - -stdenv.mkDerivation rec { - pname = "libbsd"; - version = "0.11.8"; - - src = fetchurl { - url = "https://libbsd.freedesktop.org/releases/${pname}-${version}.tar.xz"; - hash = "sha256-Vf36Jpb7TVWlkvqa0Uqd+JfHsACN2zswxBmRSEH4XzM="; - }; - - outputs = [ "out" "dev" "man" ]; - - enableParallelBuilding = true; - - doCheck = true; - - nativeBuildInputs = [ autoreconfHook ]; - propagatedBuildInputs = [ libmd ]; - - patches = lib.optionals stdenv.isDarwin [ - # Temporary build system hack from upstream maintainer - # https://gitlab.freedesktop.org/libbsd/libbsd/-/issues/19#note_2017684 - ./darwin-fix-libbsd.sym.patch - ]; - - passthru.updateScript = gitUpdater { - # No nicer place to find latest release. - url = "https://gitlab.freedesktop.org/libbsd/libbsd.git"; - }; - - meta = with lib; { - description = "Common functions found on BSD systems"; - homepage = "https://libbsd.freedesktop.org/"; - license = with licenses; [ beerware bsd2 bsd3 bsdOriginal isc mit ]; - platforms = platforms.unix; - # See architectures defined in src/local-elf.h. - badPlatforms = lib.platforms.microblaze; - maintainers = with maintainers; [ matthewbauer ]; - }; -} diff --git a/pkgs/by-name/li/libcap_ng/default.nix b/pkgs/by-name/li/libcap_ng/default.nix deleted file mode 100644 index 59aa5bb..0000000 --- a/pkgs/by-name/li/libcap_ng/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "libcap-ng"; - version = "0.8.4"; - - src = fetchurl { - url = "https://people.redhat.com/sgrubb/libcap-ng/libcap-ng-${version}.tar.gz"; - sha256 = "sha256-aFgdOzjnVTy29t33gTsfyZ5ShW8hQh97R3zlq9JgWoo="; - }; - - 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/"; - platforms = platforms.linux; - license = licenses.lgpl21; - }; -} diff --git a/pkgs/by-name/li/libcpuid/default.nix b/pkgs/by-name/li/libcpuid/default.nix deleted file mode 100644 index cf4afd8..0000000 --- a/pkgs/by-name/li/libcpuid/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook }: - -stdenv.mkDerivation rec { - pname = "libcpuid"; - version = "0.6.5"; - - src = fetchFromGitHub { - owner = "anrieff"; - repo = "libcpuid"; - rev = "v${version}"; - sha256 = "sha256-Bq16UH4IUR7dU57bGHKq8P6JsjaB4arOJ4zFeNyxXSg="; - }; - - nativeBuildInputs = [ autoreconfHook ]; - - meta = with lib; { - homepage = "https://libcpuid.sourceforge.net/"; - description = "A small C library for x86 CPU detection and feature extraction"; - mainProgram = "cpuid_tool"; - changelog = "https://raw.githubusercontent.com/anrieff/libcpuid/master/ChangeLog"; - license = licenses.bsd2; - 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 deleted file mode 100644 index c59ace0..0000000 --- a/pkgs/by-name/li/libdeflate/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, fixDarwinDylibNames -, pkgsStatic -, cmake -, testers -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "libdeflate"; - version = "1.20"; - - src = fetchFromGitHub { - owner = "ebiggers"; - repo = "libdeflate"; - rev = "v${finalAttrs.version}"; - sha256 = "sha256-kHLdu/Pb94+arj98Jjp57FpvWbAXW49s9cxCA1cf898="; - }; - - cmakeFlags = lib.optionals stdenv.hostPlatform.isStatic [ "-DLIBDEFLATE_BUILD_SHARED_LIB=OFF" ]; - - nativeBuildInputs = [ cmake ] - ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames; - - passthru.tests = { - static = pkgsStatic.libdeflate; - pkg-config = testers.hasPkgConfigModules { - package = finalAttrs.finalPackage; - }; - }; - - meta = with lib; { - description = "Fast DEFLATE/zlib/gzip compressor and decompressor"; - license = licenses.mit; - 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 ]; - pkgConfigModules = [ "libdeflate" ]; - }; -}) diff --git a/pkgs/by-name/li/libedit/01-cygwin.patch b/pkgs/by-name/li/libedit/01-cygwin.patch deleted file mode 100644 index 33bd39e..0000000 --- a/pkgs/by-name/li/libedit/01-cygwin.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- libedit-20120311-3.0/src/chartype.h 2012-03-11 10:54:58.000000000 +0100 -+++ libedit-20120311-3.0/src/chartype.h 2012-05-03 19:00:20.651847423 +0200 -@@ -56,9 +56,11 @@ - /* Oh for a with char32_t and __STDC_UTF_32__ in it... - * ref: ISO/IEC DTR 19769 - */ -+#ifndef __CYGWIN__ - #if WCHAR_MAX < INT32_MAX - #warning Build environment does not support non-BMP characters - #endif -+#endif - - #ifndef HAVE_WCSDUP - wchar_t *wcsdup(const wchar_t *s); ---- libedit-20120311-3.0/src/editline/readline.h 2011-02-26 23:42:59.000000000 +0100 -+++ libedit-20120311-3.0/src/editline/readline.h 2012-05-03 19:00:49.211244803 +0200 -@@ -75,7 +75,7 @@ typedef KEYMAP_ENTRY *Keymap; - - #ifndef CTRL - #include --#if !defined(__sun) && !defined(__hpux) && !defined(_AIX) -+#if !defined(__sun) && !defined(__hpux) && !defined(_AIX) && !defined(__CYGWIN__) - #include - #endif - #ifndef CTRL diff --git a/pkgs/by-name/li/libedit/default.nix b/pkgs/by-name/li/libedit/default.nix deleted file mode 100644 index aeb7981..0000000 --- a/pkgs/by-name/li/libedit/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ lib -, stdenv -, fetchurl -, ncurses -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "libedit"; - version = "20230828-3.1"; - - src = fetchurl { - url = "https://thrysoee.dk/editline/libedit-${finalAttrs.version}.tar.gz"; - hash = "sha256-TugYK25WkpDn0fRPD3jayHFrNfZWt2Uo9pnGnJiBTa0="; - }; - - outputs = [ "out" "dev" "man" ]; - - 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 - # __STDC_ISO_10646__. - # This definition is in `stdc-predefs.h` -- that's why libedit builds just - # 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"; - - postFixup = '' - find $out/lib -type f | \ - grep '\.\(la\|pc\)''$' | \ - xargs sed -i -e 's,-lncurses[a-z]*,-L${ncurses.out}/lib -lncursesw,g' - ''; - - meta = { - 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. - ''; - license = with lib.licenses; [ bsd3 ]; - maintainers = with lib.maintainers; [ AndersonTorres ]; - platforms = lib.platforms.all; - }; -}) diff --git a/pkgs/by-name/li/libepoxy/default.nix b/pkgs/by-name/li/libepoxy/default.nix deleted file mode 100644 index b9ab0d7..0000000 --- a/pkgs/by-name/li/libepoxy/default.nix +++ /dev/null @@ -1,85 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, meson -, ninja -, pkg-config -, utilmacros -, python3 -, libGL -, libX11 -, Carbon -, OpenGL -, x11Support ? !stdenv.isDarwin -# for passthru.tests -# , testers -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "libepoxy"; - version = "1.5.10"; - - 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' ] ]," "" - ''; - - 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"}" - "-Dtests=${lib.boolToString finalAttrs.doCheck}" - "-Dx11=${lib.boolToString x11Support}" - ]; - - env.NIX_CFLAGS_COMPILE = lib.optionalString (x11Support && !stdenv.isDarwin) ''-DLIBGL_PATH="${lib.getLib libGL}/lib"''; - - doCheck = true; - - # passthru.tests = { - # pkg-config = testers.hasPkgConfigModules { - # package = finalAttrs.finalPackage; - # }; - # }; - - meta = with lib; { - description = "A library for handling OpenGL function pointer management"; - homepage = "https://github.com/anholt/libepoxy"; - license = licenses.mit; - maintainers = with maintainers; [ goibhniu ]; - platforms = platforms.unix; - pkgConfigModules = [ "epoxy" ]; - }; -}) diff --git a/pkgs/by-name/li/libepoxy/libgl-path.patch b/pkgs/by-name/li/libepoxy/libgl-path.patch deleted file mode 100644 index 8f38ee2..0000000 --- a/pkgs/by-name/li/libepoxy/libgl-path.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/src/dispatch_common.c b/src/dispatch_common.c -index b3e4f5f..303e8f5 100644 ---- a/src/dispatch_common.c -+++ b/src/dispatch_common.c -@@ -310,6 +310,19 @@ get_dlopen_handle(void **handle, const char *lib_name, bool exit_on_fail, bool l - flags |= RTLD_NOLOAD; - - *handle = dlopen(lib_name, flags); -+#ifdef LIBGL_PATH -+ if (!*handle) { -+ char pathbuf[sizeof(LIBGL_PATH) + 1 + 1024 + 1]; -+ int l = snprintf(pathbuf, sizeof(pathbuf), "%s/%s", LIBGL_PATH, lib_name); -+ if (l < 0 || l >= sizeof(pathbuf)) { -+ // This really shouldn't happen -+ fprintf(stderr, "Error prefixing library pathname\n"); -+ exit(1); -+ } -+ *handle = dlopen(pathbuf, flags); -+ } -+#endif -+ - if (!*handle) { - if (exit_on_fail) { - fprintf(stderr, "Couldn't open %s: %s\n", lib_name, dlerror()); diff --git a/pkgs/by-name/li/libev/default.nix b/pkgs/by-name/li/libev/default.nix deleted file mode 100644 index 750cb39..0000000 --- a/pkgs/by-name/li/libev/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ 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 -# cannot use fetchpatch! All mutable patches (generated by GitHub or -# cgit) that are needed here should be included directly in Nixpkgs as -# files. - -stdenv.mkDerivation rec { - pname = "libev"; - version="4.33"; - - src = fetchurl { - url = "http://dist.schmorp.de/libev/Attic/${pname}-${version}.tar.gz"; - sha256 = "1sjs4324is7fp21an4aas2z4dwsvs6z4xwrmp72vwpq1s6wbfzjh"; - }; - - configureFlags = lib.optional (static) "LDFLAGS=-static"; - - meta = { - description = "A high-performance event loop/event model with lots of features"; - maintainers = [ lib.maintainers.raskin ]; - platforms = lib.platforms.all; - license = lib.licenses.bsd2; # or GPL2+ - }; -} diff --git a/pkgs/by-name/li/libexecinfo/30-linux-makefile.patch b/pkgs/by-name/li/libexecinfo/30-linux-makefile.patch deleted file mode 100644 index 134c644..0000000 --- a/pkgs/by-name/li/libexecinfo/30-linux-makefile.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- Makefile.orig -+++ Makefile -@@ -23,24 +23,25 @@ - # SUCH DAMAGE. - # - # $Id: Makefile,v 1.3 2004/07/19 05:19:55 sobomax Exp $ -+# -+# Linux Makefile by Matt Smith , 2011/01/04 - --LIB= execinfo -+CC=cc -+AR=ar -+EXECINFO_CFLAGS=$(CFLAGS) -O2 -pipe -fno-strict-aliasing -std=gnu99 -c -+EXECINFO_LDFLAGS=$(LDFLAGS) - --SRCS= stacktraverse.c stacktraverse.h execinfo.c execinfo.h -+all: static dynamic - --INCS= execinfo.h -+static: -+ $(CC) $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) stacktraverse.c -+ $(CC) $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) execinfo.c -+ $(AR) rcs libexecinfo.a stacktraverse.o execinfo.o - --SHLIB_MAJOR= 1 --SHLIB_MINOR= 0 -+dynamic: -+ $(CC) -fpic -DPIC $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) stacktraverse.c -o stacktraverse.So -+ $(CC) -fpic -DPIC $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) execinfo.c -o execinfo.So -+ $(CC) -shared -Wl,-soname,libexecinfo.so.1 -o libexecinfo.so.1 stacktraverse.So execinfo.So - --NOPROFILE= yes -- --DPADD= ${LIBM} --LDADD= -lm -- --#WARNS?= 4 -- --#stacktraverse.c: gen.py --# ./gen.py > stacktraverse.c -- --.include -+clean: -+ rm -rf *.o *.So *.a *.so diff --git a/pkgs/by-name/li/libexecinfo/default.nix b/pkgs/by-name/li/libexecinfo/default.nix deleted file mode 100644 index 36f956e..0000000 --- a/pkgs/by-name/li/libexecinfo/default.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ lib, stdenv, fetchurl, fetchpatch -, enableStatic ? true -, enableShared ? !stdenv.hostPlatform.isStatic -}: - -stdenv.mkDerivation rec { - pname = "libexecinfo"; - version = "1.1"; - - src = fetchurl { - url = "http://distcache.freebsd.org/local-distfiles/itetcu/${pname}-${version}.tar.bz2"; - sha256 = "07wvlpc1jk1sj4k5w53ml6wagh0zm9kv2l1jngv8xb7xww9ik8n9"; - }; - - patches = [ - (fetchpatch { - name = "10-execinfo.patch"; - url = "https://git.alpinelinux.org/aports/plain/main/libexecinfo/10-execinfo.patch?id=730cdcef6901750f4029d4c3b8639ce02ee3ead1"; - sha256 = "0lnphrad4vspyljnvmm62dyxj98vgp3wabj4w3vfzfph7j8piw7g"; - }) - (fetchpatch { - name = "20-define-gnu-source.patch"; - url = "https://git.alpinelinux.org/aports/plain/main/libexecinfo/20-define-gnu-source.patch?id=730cdcef6901750f4029d4c3b8639ce02ee3ead1"; - sha256 = "1mp8mc639b0h2s69m5z6s2h3q3n1zl298j9j0plzj7f979j76302"; - }) - ./30-linux-makefile.patch - ]; - - makeFlags = [ "CC:=$(CC)" "AR:=$(AR)" ]; - hardeningEnable = [ "stackprotector" ]; - - 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 - ''; - - meta = with lib; { - description = "Quick-n-dirty BSD licensed clone of the GNU libc backtrace facility"; - license = licenses.bsd2; - homepage = "https://www.freshports.org/devel/libexecinfo"; - maintainers = with maintainers; [ dtzWill ]; - }; -} diff --git a/pkgs/by-name/li/libffi/3.3.nix b/pkgs/by-name/li/libffi/3.3.nix deleted file mode 100644 index 294717d..0000000 --- a/pkgs/by-name/li/libffi/3.3.nix +++ /dev/null @@ -1,69 +0,0 @@ -{ lib, stdenv, fetchurl, fetchpatch -, autoreconfHook - -, doCheck ? true # test suite depends on dejagnu which cannot be used during bootstrapping -, dejagnu -}: - -stdenv.mkDerivation rec { - pname = "libffi"; - version = "3.3"; - - src = fetchurl { - url = "https://github.com/libffi/libffi/releases/download/v${version}/${pname}-${version}.tar.gz"; - hash = "sha256-cvunkicD3fp6Ao1ROsFahcjVTI1n9V+lpIAohdxlIFY="; - }; - - patches = []; - - outputs = [ "out" "dev" "man" "info" ]; - - configureFlags = [ - "--with-gcc-arch=generic" # no detection of -march= or -mtune= - "--enable-pax_emutramp" - - # Causes issues in downstream packages which misuse ffi_closure_alloc - # Reenable once these issues are fixed and merged: - # https://gitlab.haskell.org/ghc/ghc/-/merge_requests/6155 - # https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/283 - "--disable-exec-static-tramp" - ]; - - # with fortify3, tests fail for some reason - hardeningDisable = [ "fortify3" ]; - - preCheck = '' - # The tests use -O0 which is not compatible with -D_FORTIFY_SOURCE. - NIX_HARDENING_ENABLE=''${NIX_HARDENING_ENABLE/fortify/} - ''; - - dontStrip = stdenv.hostPlatform != stdenv.buildPlatform; # Don't run the native `strip' when cross-compiling. - - inherit doCheck; - - nativeCheckInputs = [ dejagnu ]; - - meta = with lib; { - description = "A foreign function call interface library"; - longDescription = '' - The libffi library provides a portable, high level programming - interface to various calling conventions. This allows a - programmer to call any function specified by a call interface - description at run-time. - - FFI stands for Foreign Function Interface. A foreign function - interface is the popular name for the interface that allows code - written in one language to call code written in another - language. The libffi library really only provides the lowest, - machine dependent layer of a fully featured foreign function - interface. A layer must exist above libffi that handles type - conversions for values passed between the two languages. - ''; - homepage = "http://sourceware.org/libffi/"; - license = licenses.mit; - maintainers = with maintainers; [ armeenm ]; - platforms = platforms.all; - # never built on aarch64-darwin since first introduction in nixpkgs - broken = stdenv.isDarwin && stdenv.isAarch64; - }; -} diff --git a/pkgs/by-name/li/libffi/default.nix b/pkgs/by-name/li/libffi/default.nix deleted file mode 100644 index edd16ec..0000000 --- a/pkgs/by-name/li/libffi/default.nix +++ /dev/null @@ -1,83 +0,0 @@ -{ 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 -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "libffi"; - version = "3.4.6"; - - src = fetchurl { - url = with finalAttrs; "https://github.com/libffi/libffi/releases/download/v${version}/${pname}-${version}.tar.gz"; - hash = "sha256-sN6p3yPIY6elDoJUQPPr/6vWXfFJcQjl1Dd0eEOJWk4="; - }; - - # 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. - patches = [ - ]; - - strictDeps = true; - outputs = [ "out" "dev" "man" "info" ]; - - enableParallelBuilding = true; - - configurePlatforms = [ "build" "host" ]; - - configureFlags = [ - "--with-gcc-arch=generic" # no detection of -march= or -mtune= - "--enable-pax_emutramp" - ]; - - preCheck = '' - # The tests use -O0 which is not compatible with -D_FORTIFY_SOURCE. - NIX_HARDENING_ENABLE=''${NIX_HARDENING_ENABLE/fortify3/} - NIX_HARDENING_ENABLE=''${NIX_HARDENING_ENABLE/fortify/} - ''; - - dontStrip = stdenv.hostPlatform != stdenv.buildPlatform; # Don't run the native `strip' when cross-compiling. - - inherit doCheck; - - nativeCheckInputs = [ dejagnu ]; - - passthru = { - updateScript = nix-update-script { }; - tests = { - pkg-config = testers.hasPkgConfigModules { - package = finalAttrs.finalPackage; - }; - }; - }; - - meta = with lib; { - description = "A foreign function call interface library"; - longDescription = '' - The libffi library provides a portable, high level programming - interface to various calling conventions. This allows a - programmer to call any function specified by a call interface - description at run-time. - - FFI stands for Foreign Function Interface. A foreign function - interface is the popular name for the interface that allows code - written in one language to call code written in another - language. The libffi library really only provides the lowest, - machine dependent layer of a fully featured foreign function - interface. A layer must exist above libffi that handles type - conversions for values passed between the two languages. - ''; - homepage = "http://sourceware.org/libffi/"; - license = licenses.mit; - maintainers = with maintainers; [ matthewbauer ]; - platforms = platforms.all; - pkgConfigModules = [ "libffi" ]; - }; -}) diff --git a/pkgs/by-name/li/libffi/packages.nix b/pkgs/by-name/li/libffi/packages.nix deleted file mode 100644 index 76275b6..0000000 --- a/pkgs/by-name/li/libffi/packages.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - libffi = callPackage ./. { }; - libffi_3_3 = callPackage ./3.3.nix { }; - libffiBoot = libffi.override { - doCheck = false; - }; -} diff --git a/pkgs/by-name/li/libfido2/default.nix b/pkgs/by-name/li/libfido2/default.nix deleted file mode 100644 index b3c3cc4..0000000 --- a/pkgs/by-name/li/libfido2/default.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ lib -, stdenv -, fetchurl -, cmake -, pkg-config -, hidapi -, libcbor -, openssl -, udev -, zlib -, withPcsclite ? true -, pcsclite -}: - -stdenv.mkDerivation rec { - pname = "libfido2"; - version = "1.14.0"; - - # releases on https://developers.yubico.com/libfido2/Releases/ are signed - src = fetchurl { - url = "https://developers.yubico.com/${pname}/Releases/${pname}-${version}.tar.gz"; - sha256 = "sha256-NgF5LjIAMtQoACxMzoSZpMe4AzGQUaJaDJ8fE4/+5Fo="; - }; - - nativeBuildInputs = [ cmake pkg-config ]; - - 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" - ]; - - # causes possible redefinition of _FORTIFY_SOURCE? - hardeningDisable = [ "fortify3" ]; - - meta = with lib; { - description = '' - Provides library functionality for FIDO 2.0, including communication with a device over USB. - ''; - homepage = "https://github.com/Yubico/libfido2"; - license = licenses.bsd2; - 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 deleted file mode 100644 index 226aed7..0000000 --- a/pkgs/by-name/li/libgcrypt/1.8.nix +++ /dev/null @@ -1,75 +0,0 @@ -{ lib -, stdenv -, fetchurl -, libgpg-error -, enableCapabilities ? false, libcap -, buildPackages -# for passthru.tests -# , gnupg -# , libotr -# , rsyslog -}: - -assert enableCapabilities -> stdenv.isLinux; - -stdenv.mkDerivation rec { - pname = "libgcrypt"; - version = "1.8.10"; - - src = fetchurl { - url = "mirror://gnupg/libgcrypt/libgcrypt-${version}.tar.bz2"; - sha256 = "sha256-aJaRVQH5UeI9AtywRTRpwswiqk13oAH/c6JkfC0p590="; - }; - - outputs = [ "out" "dev" "info" ]; - outputBin = "dev"; - - # The CPU Jitter random number generator must not be compiled with - # optimizations and the optimize -O0 pragma only works for gcc. - # The build enables -O2 by default for everything else. - hardeningDisable = lib.optional stdenv.cc.isClang "fortify"; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - - 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 - - # Necessary to generate correct assembly when compiling for aarch32 on - # aarch64 - configurePlatforms = [ "host" "build" ]; - - postConfigure = '' - sed -i configure \ - -e 's/NOEXECSTACK_FLAGS=$/NOEXECSTACK_FLAGS="-Wa,--noexecstack"/' - ''; - - # 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 - ''; - - doCheck = true; - - # passthru.tests = { - # inherit gnupg libotr rsyslog; - # }; - - meta = with lib; { - homepage = "https://www.gnu.org/software/libgcrypt/"; - changelog = "https://git.gnupg.org/cgi-bin/gitweb.cgi?p=${pname}.git;a=blob;f=NEWS;hb=refs/tags/${pname}-${version}"; - description = "General-purpose cryptographic library"; - license = licenses.lgpl2Plus; - platforms = platforms.all; - knownVulnerabilities = [ - "CVE-2021-40528" - ]; - }; -} diff --git a/pkgs/by-name/li/libgcrypt/default.nix b/pkgs/by-name/li/libgcrypt/default.nix deleted file mode 100644 index 4130f50..0000000 --- a/pkgs/by-name/li/libgcrypt/default.nix +++ /dev/null @@ -1,85 +0,0 @@ -{ lib -, stdenv -, fetchurl -, gettext -, libgpg-error -, enableCapabilities ? false, libcap -, buildPackages -# for passthru.tests -# , gnupg -# , libotr -# , rsyslog -}: - -assert enableCapabilities -> stdenv.isLinux; - -stdenv.mkDerivation rec { - pname = "libgcrypt"; - version = "1.10.3"; - - src = fetchurl { - url = "mirror://gnupg/libgcrypt/${pname}-${version}.tar.bz2"; - hash = "sha256-iwhwiXrFrGfe1Wjc+t9Flpz6imvrD9YK8qnq3Coycqo="; - }; - - outputs = [ "out" "dev" "info" ]; - outputBin = "dev"; - - # The CPU Jitter random number generator must not be compiled with - # optimizations and the optimize -O0 pragma only works for gcc. - # The build enables -O2 by default for everything else. - hardeningDisable = lib.optional stdenv.cc.isClang "fortify"; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - - 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 - - # Necessary to generate correct assembly when compiling for aarch32 on - # aarch64 - configurePlatforms = [ "host" "build" ]; - - postConfigure = '' - sed -i configure \ - -e 's/NOEXECSTACK_FLAGS=$/NOEXECSTACK_FLAGS="-Wa,--noexecstack"/' - ''; - - enableParallelBuilding = true; - - # 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 - ''; - - # TODO: figure out why this is even necessary and why the missing dylib only crashes - # random instead of every test - preCheck = lib.optionalString stdenv.isDarwin '' - mkdir -p $out/lib - cp src/.libs/libgcrypt.20.dylib $out/lib - ''; - - doCheck = true; - enableParallelChecking = true; - - # passthru.tests = { - # inherit gnupg libotr rsyslog; - # }; - - meta = with lib; { - homepage = "https://www.gnu.org/software/libgcrypt/"; - changelog = "https://git.gnupg.org/cgi-bin/gitweb.cgi?p=${pname}.git;a=blob;f=NEWS;hb=refs/tags/${pname}-${version}"; - description = "General-purpose cryptographic library"; - license = licenses.lgpl2Plus; - platforms = platforms.all; - maintainers = with maintainers; [ vrthra ]; - }; -} diff --git a/pkgs/by-name/li/libgcrypt/packages.nix b/pkgs/by-name/li/libgcrypt/packages.nix deleted file mode 100644 index 7b417e4..0000000 --- a/pkgs/by-name/li/libgcrypt/packages.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index e95dc72..0000000 --- a/pkgs/by-name/li/libgit2/default.nix +++ /dev/null @@ -1,83 +0,0 @@ -{ 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 -# , gitstatus -}: - -stdenv.mkDerivation rec { - pname = "libgit2"; - version = "1.7.2"; - # also check the following packages for updates: python3Packages.pygit2 and libgit2-glib - - outputs = ["lib" "dev" "out"]; - - src = fetchFromGitHub { - owner = "libgit2"; - repo = "libgit2"; - rev = "v${version}"; - 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" - ]; - - nativeBuildInputs = [ cmake python3 pkg-config ]; - - buildInputs = [ zlib libssh2 openssl pcre http-parser ] - ++ lib.optional stdenv.isDarwin Security; - - propagatedBuildInputs = lib.optional (!stdenv.isLinux) libiconv; - - doCheck = true; - checkPhase = '' - testArgs=(-v -xonline) - - # slow - testArgs+=(-xclone::nonetwork::bad_urls) - - # failed to set permissions on ...: Operation not permitted - testArgs+=(-xrepo::init::extended_1) - testArgs+=(-xrepo::template::extended_with_template_and_shared_mode) - - ( - set -x - ./libgit2_tests ''${testArgs[@]} - ) - ''; - - # passthru.tests = { - # inherit libgit2-glib; - # inherit (python3Packages) pygit2; - # inherit gitstatus; - # }; - - meta = with lib; { - description = "Linkable library implementation of Git that you can use in your application"; - mainProgram = "git2"; - homepage = "https://libgit2.org/"; - license = licenses.gpl2Plus; - platforms = platforms.all; - maintainers = with maintainers; [ SuperSandro2000 ]; - }; -} diff --git a/pkgs/by-name/li/libgit2/packages.nix b/pkgs/by-name/li/libgit2/packages.nix deleted file mode 100644 index 99acc68..0000000 --- a/pkgs/by-name/li/libgit2/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index 1cedb03..0000000 --- a/pkgs/by-name/li/libguestfs/appliance.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ lib -, stdenvNoCC -, fetchurl -}: - -stdenvNoCC.mkDerivation rec { - pname = "libguestfs-appliance"; - version = "1.46.0"; - - src = fetchurl { - url = "http://download.libguestfs.org/binaries/appliance/appliance-${version}.tar.xz"; - hash = "sha256-p1UN5wv3y+V5dFMG5yM3bVf1vaoDzQnVv9apfwC4gNg="; - }; - - installPhase = '' - runHook preInstall - - mkdir -p $out - cp README.fixed initrd kernel root $out - - runHook postInstall - ''; - - 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" ]; - 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 deleted file mode 100644 index 0b2b427..0000000 --- a/pkgs/by-name/li/libguestfs/default.nix +++ /dev/null @@ -1,168 +0,0 @@ -{ 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; - -stdenv.mkDerivation rec { - pname = "libguestfs"; - version = "1.50.1"; - - src = fetchurl { - url = "https://libguestfs.org/download/${lib.versions.majorMinor version}-stable/${pname}-${version}.tar.gz"; - sha256 = "sha256-Xmhx6I+C5SHjHUQt5qELZJcCN8t5VumdEXsSO1hWWm8="; - }; - - 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; - - prePatch = '' - # build-time scripts - substituteInPlace run.in --replace '#!/bin/bash' '#!${stdenv.shell}' - substituteInPlace ocaml-link.sh.in --replace '#!/bin/bash' '#!${stdenv.shell}' - - # $(OCAMLLIB) is read-only "${ocamlPackages.ocaml}/lib/ocaml" - substituteInPlace ocaml/Makefile.am --replace '$(DESTDIR)$(OCAMLLIB)' '$(out)/lib/ocaml' - substituteInPlace ocaml/Makefile.in --replace '$(DESTDIR)$(OCAMLLIB)' '$(out)/lib/ocaml' - - # some scripts hardcore /usr/bin/env which is not available in the build env - patchShebangs . - ''; - configureFlags = [ - "--disable-appliance" - "--disable-daemon" - "--with-distro=NixOS" - "--with-guestfs-path=${placeholder "out"}/lib/guestfs" - ] ++ lib.optionals (!javaSupport) [ "--without-java" ]; - patches = [ - ./libguestfs-syms.patch - ]; - - createFindlibDestdir = true; - - installFlags = [ "REALLY_INSTALL=yes" ]; - enableParallelBuilding = true; - - postInstall = '' - mv "$out/lib/ocaml/guestfs" "$OCAMLFIND_DESTDIR/guestfs" - for bin in $out/bin/*; do - wrapProgram "$bin" \ - --prefix PATH : "$out/bin:${hivex}/bin:${qemu}/bin" \ - --prefix PERL5LIB : "$out/${perlPackages.perl.libPrefix}" - done - ''; - - postFixup = lib.optionalString (appliance != null) '' - mkdir -p $out/{lib,lib64} - ln -s ${appliance} $out/lib64/guestfs - ln -s ${appliance} $out/lib/guestfs - ''; - - doInstallCheck = appliance != null; - installCheckPhase = '' - runHook preInstallCheck - - export HOME=$(mktemp -d) # avoid access to /homeless-shelter/.guestfish - - ${qemu}/bin/qemu-img create -f qcow2 disk1.img 10G - - $out/bin/guestfish <<'EOF' - add-drive disk1.img - run - list-filesystems - part-disk /dev/sda mbr - mkfs ext2 /dev/sda1 - list-filesystems - EOF - - runHook postInstallCheck - ''; - - meta = with lib; { - description = "Tools for accessing and modifying virtual machine disk images"; - license = with licenses; [ gpl2Plus lgpl21Plus ]; - homepage = "https://libguestfs.org/"; - maintainers = with maintainers; [ offline ]; - platforms = platforms.linux; - # this is to avoid "output size exceeded" - hydraPlatforms = if appliance != null then appliance.meta.hydraPlatforms else platforms.linux; - }; -} diff --git a/pkgs/by-name/li/libguestfs/libguestfs-syms.patch b/pkgs/by-name/li/libguestfs/libguestfs-syms.patch deleted file mode 100644 index 09c4b13..0000000 --- a/pkgs/by-name/li/libguestfs/libguestfs-syms.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/lib/Makefile.am b/lib/Makefile.am ---- a/lib/Makefile.am -+++ b/lib/Makefile.am -@@ -168,8 +168,7 @@ libguestfs_la_LIBADD = \ - # Force libtool to name the library 'libguestfs.so.0.$(MAX_PROC_NR).0'. - # Include the version script to limit which symbols are exported. - libguestfs_la_LDFLAGS = \ -- -version-info $(MAX_PROC_NR):0:$(MAX_PROC_NR) \ -- $(VERSION_SCRIPT_FLAGS)$(srcdir)/libguestfs.syms -+ -version-info $(MAX_PROC_NR):0:$(MAX_PROC_NR) - - if HAVE_FUSE - # XXX Unfortunately FUSE_CFLAGS defines _FILE_OFFSET_BITS=64. diff --git a/pkgs/by-name/li/libguestfs/packages.nix b/pkgs/by-name/li/libguestfs/packages.nix deleted file mode 100644 index ee8550e..0000000 --- a/pkgs/by-name/li/libguestfs/packages.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - libguestfs-appliance = callPackage ./appliance.nix { }; - libguestfs = callPackage ./. { - autoreconfHook = buildPackages.autoreconfHook264; - ocamlPackages = ocaml-ng.ocamlPackages_4_14; - }; - libguestfs-with-appliance = libguestfs.override { - appliance = libguestfs-appliance; - autoreconfHook = buildPackages.autoreconfHook264; - }; -} diff --git a/pkgs/by-name/li/libheif/default.nix b/pkgs/by-name/li/libheif/default.nix deleted file mode 100644 index cdff03f..0000000 --- a/pkgs/by-name/li/libheif/default.nix +++ /dev/null @@ -1,72 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, pkg-config -, dav1d -, rav1e -, libde265 -, x265 -, libpng -, libjpeg -, libaom -, gdk-pixbuf - -# for passthru.tests -, gimp -, imagemagick -, imlib2Full -, imv -, vips -}: - -stdenv.mkDerivation rec { - pname = "libheif"; - version = "1.17.6"; - - outputs = [ "bin" "out" "dev" "man" ]; - - src = fetchFromGitHub { - owner = "strukturag"; - repo = "libheif"; - rev = "v${version}"; - sha256 = "sha256-pp+PjV/pfExLqzFE61mxliOtVAYOePh1+i1pwZxDLAM="; - }; - - nativeBuildInputs = [ - pkg-config - cmake - ]; - - buildInputs = [ - dav1d - rav1e - libde265 - x265 - libpng - libjpeg - libaom - gdk-pixbuf - ]; - - # Fix installation path for gdk-pixbuf module - PKG_CONFIG_GDK_PIXBUF_2_0_GDK_PIXBUF_MODULEDIR = "${placeholder "out"}/${gdk-pixbuf.moduleDir}"; - - # Wrong include path in .cmake. It's a bit difficult to patch because of special characters. - postFixup = '' - sed '/^ INTERFACE_INCLUDE_DIRECTORIES/s|"[^"]*/include"|"${placeholder "dev"}/include"|' \ - -i "$dev"/lib/cmake/libheif/libheif-config.cmake - ''; - - passthru.tests = { - inherit gimp imagemagick imlib2Full imv vips; - }; - - meta = { - homepage = "http://www.libheif.org/"; - description = "ISO/IEC 23008-12:2017 HEIF image file format decoder and encoder"; - license = lib.licenses.lgpl3Plus; - platforms = lib.platforms.unix; - maintainers = with lib.maintainers; [ gebner ]; - }; -} diff --git a/pkgs/by-name/li/libical/default.nix b/pkgs/by-name/li/libical/default.nix deleted file mode 100644 index 9cfe47f..0000000 --- a/pkgs/by-name/li/libical/default.nix +++ /dev/null @@ -1,112 +0,0 @@ -{ 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" ]; - - src = fetchFromGitHub { - owner = "libical"; - repo = "libical"; - rev = "v${version}"; - sha256 = "sha256-32FNnCybXO67Vtg1LM6miJUaK+r0mlfjxgLQg1LD8Es="; - }; - - strictDeps = true; - - depsBuildBuild = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - # provides ical-glib-src-generator that runs during build - 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 - ]; - nativeInstallCheckInputs = [ - # running libical-glib tests - (python3.pythonOnBuildForHost.withPackages (pkgs: with pkgs; [ - pygobject3 - ])) - ]; - - buildInputs = [ - glib - libxml2 - 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" - ]; - - patches = [ - # Will appear in 3.1.0 - # https://github.com/libical/libical/issues/350 - ./respect-env-tzdir.patch - ]; - - # Using install check so we do not have to manually set - # LD_LIBRARY_PATH and GI_TYPELIB_PATH variables - # 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; - installCheckPhase = '' - runHook preInstallCheck - - export TZDIR=${tzdata}/share/zoneinfo - ctest --output-on-failure - - runHook postInstallCheck - ''; - - meta = with lib; { - homepage = "https://github.com/libical/libical"; - description = "An Open Source implementation of the iCalendar protocols"; - changelog = "https://github.com/libical/libical/raw/v${version}/ReleaseNotes.txt"; - license = licenses.mpl20; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/li/libical/respect-env-tzdir.patch b/pkgs/by-name/li/libical/respect-env-tzdir.patch deleted file mode 100644 index 59d23e4..0000000 --- a/pkgs/by-name/li/libical/respect-env-tzdir.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- a/src/libical/icaltz-util.c -+++ b/src/libical/icaltz-util.c -@@ -94,9 +94,9 @@ - static const char *zdir = NULL; - - static const char *search_paths[] = { -+ "/etc/zoneinfo", - "/usr/share/zoneinfo", - "/usr/lib/zoneinfo", -- "/etc/zoneinfo", - "/usr/share/lib/zoneinfo" - }; - -@@ -178,6 +178,15 @@ - const char *fname = ZONES_TAB_SYSTEM_FILENAME; - size_t i, num_search_paths; - -+ const char *env_tzdir = getenv ("TZDIR"); -+ if (env_tzdir) { -+ sprintf (file_path, "%s/%s", env_tzdir, fname); -+ if (!access (file_path, F_OK|R_OK)) { -+ zdir = env_tzdir; -+ return; -+ } -+ } -+ - num_search_paths = sizeof(search_paths) / sizeof(search_paths[0]); - for (i = 0; i < num_search_paths; i++) { - snprintf(file_path, MAXPATHLEN, "%s/%s", search_paths[i], fname); diff --git a/pkgs/by-name/li/libiconv/default.nix b/pkgs/by-name/li/libiconv/default.nix deleted file mode 100644 index ed162d1..0000000 --- a/pkgs/by-name/li/libiconv/default.nix +++ /dev/null @@ -1,88 +0,0 @@ -{ 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 - -stdenv.mkDerivation rec { - pname = "libiconv"; - version = "1.17"; - - src = fetchurl { - url = "mirror://gnu/libiconv/${pname}-${version}.tar.gz"; - sha256 = "sha256-j3QhO1YjjIWlClMp934GGYdx5w3Zpzl3n0wC9l2XExM="; - }; - - enableParallelBuilding = true; - - setupHooks = [ - ../../../build-support/setup-hooks/role.bash - ./setup-hook.sh - ]; - - postPatch = - lib.optionalString ((stdenv.hostPlatform != stdenv.buildPlatform && stdenv.hostPlatform.isMinGW) || stdenv.cc.nativeLibc) - '' - sed '/^_GL_WARN_ON_USE (gets/d' -i srclib/stdio.in.h - '' - + lib.optionalString (!enableShared) '' - sed -i -e '/preload/d' Makefile.in - '' - # The system libiconv is based on libiconv 1.11 with some ABI differences. The following changes - # build a compatible libiconv on Darwin, allowing it to be sustituted in place of the system one - # using `install_name_tool`. This removes the need to for a separate, Darwin-specific libiconv - # derivation and allows Darwin to benefit from upstream updates and fixes. - + lib.optionalString enableDarwinABICompat '' - for iconv_h_in in iconv.h.in iconv.h.build.in; do - substituteInPlace "include/$iconv_h_in" \ - --replace-fail "#define iconv libiconv" "" \ - --replace-fail "#define iconv_close libiconv_close" "" \ - --replace-fail "#define iconv_open libiconv_open" "" \ - --replace-fail "#define iconv_open_into libiconv_open_into" "" \ - --replace-fail "#define iconvctl libiconvctl" "" \ - --replace-fail "#define iconvlist libiconvlist" "" - done - ''; - - # This is hacky, but `libiconv.dylib` needs to reexport `libcharset.dylib` to match the behavior - # of the system libiconv on Darwin. Trying to do this by modifying the `Makefile` results in an - # error linking `iconv` because `libcharset.dylib` is not at its final path yet. Avoid the error - # by building without the reexport then clean and rebuild `libiconv.dylib` with the reexport. - # - # For an explanation why `libcharset.dylib` is reexported, see: - # https://github.com/apple-oss-distributions/libiconv/blob/a167071feb7a83a01b27ec8d238590c14eb6faff/xcodeconfig/libiconv.xcconfig - postBuild = lib.optionalString enableDarwinABICompat '' - make clean -C lib - NIX_CFLAGS_COMPILE+=" -Wl,-reexport-lcharset -L. " make -C lib -j$NIX_BUILD_CORES SHELL=$SHELL - ''; - - configureFlags = [ - (lib.enableFeature enableStatic "static") - (lib.enableFeature enableShared "shared") - ] ++ lib.optional stdenv.isFreeBSD "--with-pic"; - - meta = { - description = "An iconv(3) implementation"; - - longDescription = '' - Some programs, like mailers and web browsers, must be able to convert - between a given text encoding and the user's encoding. Other programs - internally store strings in Unicode, to facilitate internal processing, - and need to convert between internal string representation (Unicode) - and external string representation (a traditional encoding) when they - are doing I/O. GNU libiconv is a conversion library for both kinds of - applications. - ''; - - homepage = "https://www.gnu.org/software/libiconv/"; - license = lib.licenses.lgpl2Plus; - - maintainers = [ ]; - mainProgram = "iconv"; - - # This library is not needed on GNU platforms. - hydraPlatforms = with lib.platforms; cygwin ++ darwin ++ freebsd; - }; -} diff --git a/pkgs/by-name/li/libiconv/packages.nix b/pkgs/by-name/li/libiconv/packages.nix deleted file mode 100644 index a9e7355..0000000 --- a/pkgs/by-name/li/libiconv/packages.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ ... }: -res: pkgs: super: - -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, - # and BSDs include libiconv in libc. - # - # 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" ] - then - libcIconv - (if stdenv.hostPlatform != stdenv.buildPlatform - then libcCross - else stdenv.cc.libc) - # else if stdenv.hostPlatform.isDarwin - # then darwin.libiconv - else libiconvReal; - - libcIconv = libc: - let - inherit (libc) pname version; - libcDev = lib.getDev libc; - in - runCommand "${pname}-iconv-${version}" { strictDeps = true; } '' - mkdir -p $out/include - ln -sv ${libcDev}/include/iconv.h $out/include - ''; - - libiconvReal = callPackage ./. { }; - - iconv = - if lib.elem stdenv.hostPlatform.libc [ "glibc" "musl" ] then - lib.getBin stdenv.cc.libc - else if stdenv.hostPlatform.isDarwin then - lib.getBin darwin.libiconv - else - lib.getBin libiconvReal; -} diff --git a/pkgs/by-name/li/libiconv/setup-hook.sh b/pkgs/by-name/li/libiconv/setup-hook.sh deleted file mode 100644 index 3d9656f..0000000 --- a/pkgs/by-name/li/libiconv/setup-hook.sh +++ /dev/null @@ -1,8 +0,0 @@ -# libiconv must be listed in load flags on non-Glibc -# it doesn't hurt to have it in Glibc either though - -# See pkgs/build-support/setup-hooks/role.bash -if [ -z "${dontAddExtraLibs-}" ]; then - getHostRole - export NIX_LDFLAGS${role_post}+=" -liconv" -fi diff --git a/pkgs/by-name/li/libid3tag/CVE-2017-11550-and-CVE-2017-11551.patch b/pkgs/by-name/li/libid3tag/CVE-2017-11550-and-CVE-2017-11551.patch deleted file mode 100644 index b1f9d09..0000000 --- a/pkgs/by-name/li/libid3tag/CVE-2017-11550-and-CVE-2017-11551.patch +++ /dev/null @@ -1,13 +0,0 @@ -Common subdirectories: libid3tag-0.15.1b/msvc++ and libid3tag-0.15.1b-patched/msvc++ -diff -uwp libid3tag-0.15.1b/utf16.c libid3tag-0.15.1b-patched/utf16.c ---- libid3tag-0.15.1b/utf16.c 2004-01-23 10:41:32.000000000 +0100 -+++ libid3tag-0.15.1b-patched/utf16.c 2018-11-01 13:12:00.866050641 +0100 -@@ -250,6 +250,8 @@ id3_ucs4_t *id3_utf16_deserialize(id3_by - id3_ucs4_t *ucs4; - - end = *ptr + (length & ~1); -+ if (end == *ptr) -+ return 0; - - utf16 = malloc((length / 2 + 1) * sizeof(*utf16)); - if (utf16 == 0) diff --git a/pkgs/by-name/li/libid3tag/debian-patches.patch b/pkgs/by-name/li/libid3tag/debian-patches.patch deleted file mode 100644 index 0a828b3..0000000 --- a/pkgs/by-name/li/libid3tag/debian-patches.patch +++ /dev/null @@ -1,89 +0,0 @@ -diff --git a/compat.gperf b/compat.gperf -index 4e24613..5635980 100644 ---- a/compat.gperf -+++ b/compat.gperf -@@ -236,6 +236,10 @@ int id3_compat_fixup(struct id3_tag *tag) - - encoding = id3_parse_uint(&data, 1); - string = id3_parse_string(&data, end - data, encoding, 0); -+ if (!string) -+ { -+ continue; -+ } - - if (id3_ucs4_length(string) < 4) { - free(string); -diff --git a/genre.dat b/genre.dat -index 17acab5..1f02779 100644 ---- a/genre.dat -+++ b/genre.dat -@@ -277,8 +277,8 @@ static id3_ucs4_t const genre_PUNK_ROCK[] = - { 'P', 'u', 'n', 'k', ' ', 'R', 'o', 'c', 'k', 0 }; - static id3_ucs4_t const genre_DRUM_SOLO[] = - { 'D', 'r', 'u', 'm', ' ', 'S', 'o', 'l', 'o', 0 }; --static id3_ucs4_t const genre_A_CAPPELLA[] = -- { 'A', ' ', 'C', 'a', 'p', 'p', 'e', 'l', 'l', 'a', 0 }; -+static id3_ucs4_t const genre_A_CAPELLA[] = -+ { 'A', ' ', 'C', 'a', 'p', 'e', 'l', 'l', 'a', 0 }; - static id3_ucs4_t const genre_EURO_HOUSE[] = - { 'E', 'u', 'r', 'o', '-', 'H', 'o', 'u', 's', 'e', 0 }; - static id3_ucs4_t const genre_DANCE_HALL[] = -@@ -452,7 +452,7 @@ static id3_ucs4_t const *const genre_table[] = { - genre_DUET, - genre_PUNK_ROCK, - genre_DRUM_SOLO, -- genre_A_CAPPELLA, -+ genre_A_CAPELLA, - genre_EURO_HOUSE, - genre_DANCE_HALL, - genre_GOA, -diff --git a/genre.dat.in b/genre.dat.in -index 872de40..e71e34b 100644 ---- a/genre.dat.in -+++ b/genre.dat.in -@@ -153,7 +153,7 @@ Freestyle - Duet - Punk Rock - Drum Solo --A Cappella -+A Capella - Euro-House - Dance Hall - Goa -diff --git a/parse.c b/parse.c -index 86a3f21..947c249 100644 ---- a/parse.c -+++ b/parse.c -@@ -165,6 +165,9 @@ id3_ucs4_t *id3_parse_string(id3_byte_t const **ptr, id3_length_t length, - case ID3_FIELD_TEXTENCODING_UTF_8: - ucs4 = id3_utf8_deserialize(ptr, length); - break; -+ default: -+ /* FIXME: Unknown encoding! Print warning? */ -+ return NULL; - } - - if (ucs4 && !full) { -diff --git a/utf16.c b/utf16.c -index 70ee9d5..6e60a75 100644 ---- a/utf16.c -+++ b/utf16.c -@@ -282,5 +282,18 @@ id3_ucs4_t *id3_utf16_deserialize(id3_byte_t const **ptr, id3_length_t length, - - free(utf16); - -+ if (end == *ptr && length % 2 != 0) -+ { -+ /* We were called with a bogus length. It should always -+ * be an even number. We can deal with this in a few ways: -+ * - Always give an error. -+ * - Try and parse as much as we can and -+ * - return an error if we're called again when we -+ * already tried to parse everything we can. -+ * - tell that we parsed it, which is what we do here. -+ */ -+ (*ptr)++; -+ } -+ - return ucs4; - } \ No newline at end of file diff --git a/pkgs/by-name/li/libid3tag/default.nix b/pkgs/by-name/li/libid3tag/default.nix deleted file mode 100644 index c8c9d8b..0000000 --- a/pkgs/by-name/li/libid3tag/default.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ lib, stdenv, fetchurl, zlib, gperf_3_0 }: - -stdenv.mkDerivation rec { - pname = "libid3tag"; - version = "0.15.1b"; - - src = fetchurl { - url = "mirror://sourceforge/mad/libid3tag-${version}.tar.gz"; - sha256 = "63da4f6e7997278f8a3fef4c6a372d342f705051d1eeb6a46a86b03610e26151"; - }; - - outputs = [ "out" "dev" ]; - setOutputFlags = false; - - strictDeps = true; - - nativeBuildInputs = [ gperf_3_0 ]; - - buildInputs = [ zlib ]; - - patches = [ - ./debian-patches.patch - ./CVE-2017-11550-and-CVE-2017-11551.patch - ]; - - preConfigure = '' - configureFlagsArray+=( - --includedir=$dev/include - ) - ''; - - postInstall = '' - mkdir -p $dev/lib/pkgconfig - cp ${./id3tag.pc} $dev/lib/pkgconfig/id3tag.pc - substituteInPlace $dev/lib/pkgconfig/id3tag.pc \ - --subst-var-by out $out \ - --subst-var-by dev $dev \ - --subst-var-by version "${version}" - ''; - - meta = with lib; { - description = "ID3 tag manipulation library"; - homepage = "https://mad.sourceforge.net/"; - license = licenses.gpl2; - maintainers = [ ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/li/libid3tag/id3tag.pc b/pkgs/by-name/li/libid3tag/id3tag.pc deleted file mode 100644 index e3df7b3..0000000 --- a/pkgs/by-name/li/libid3tag/id3tag.pc +++ /dev/null @@ -1,11 +0,0 @@ -prefix=@out@ -exec_prefix=${prefix} -libdir=${exec_prefix}/lib -includedir=@dev@/include - -Name: libid3tag -Description: ID3 tag manipulation library -Version: @version@ - -Libs: -L${libdir} -lid3tag -Cflags: -I${includedir} diff --git a/pkgs/by-name/li/libidn2/default.nix b/pkgs/by-name/li/libidn2/default.nix deleted file mode 100644 index bfe9c2a..0000000 --- a/pkgs/by-name/li/libidn2/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ 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 -# cgit) that are needed here should be included directly in Nixpkgs as -# files. - -stdenv.mkDerivation rec { - pname = "libidn2"; - version = "2.3.7"; - - src = fetchurl { - url = "https://ftp.gnu.org/gnu/libidn/${pname}-${version}.tar.gz"; - hash = "sha256-TCGnkbYQuVGbnQ4SuAl78vNZsS+N2SZHYRqSnmv9fWQ="; - }; - - strictDeps = true; - # Beware: non-bootstrap libidn2 is overridden by ./hack.nix - 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 ]; - buildInputs = [ libunistring ] ++ lib.optional stdenv.isDarwin libiconv; - depsBuildBuild = [ buildPackages.stdenv.cc ]; - - meta = { - homepage = "https://www.gnu.org/software/libidn/#libidn2"; - description = "Free software implementation of IDNA2008 and TR46"; - - longDescription = '' - Libidn2 is believed to be a complete IDNA2008 and TR46 implementation, - but has yet to be as extensively used as the IDNA2003 Libidn library. - - The installed C library libidn2 is dual-licensed under LGPLv3+|GPLv2+, - while the rest of the package is GPLv3+. See the file COPYING for - detailed information. - ''; - - mainProgram = "idn2"; - 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 deleted file mode 100644 index 216beb5..0000000 --- a/pkgs/by-name/li/libidn2/no-bootstrap-reference.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ 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}" - { - outputs = [ "bin" "dev" "out" ]; - passthru = { - inherit (libidn2) out info devdoc; # no need to touch these store paths - }; - inherit (libidn2) meta; - } - '' - cp -r '${libidn2.bin}' "$bin" - 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 ]}' \ - "$bin"/bin/* - - cp -r '${libidn2.dev}' "$dev" - chmod +w "$dev"/nix-support/propagated-build-inputs - substituteInPlace "$dev"/nix-support/propagated-build-inputs \ - --replace '${libidn2.bin}' "$bin" - substituteInPlace "$dev"/lib/pkgconfig/libidn2.pc \ - --replace '${libidn2.dev}' "$dev" - - 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 deleted file mode 100644 index ed88ed8..0000000 --- a/pkgs/by-name/li/libipt/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, cmake }: - -stdenv.mkDerivation rec { - pname = "libipt"; - version = "2.1.1"; - - src = fetchFromGitHub { - owner = "intel"; - repo = "libipt"; - rev = "v${version}"; - sha256 = "sha256-tyOheitSlccf/n3mklGL2oAKLBKYT60LSLre9/G/b9Q="; - }; - - nativeBuildInputs = [ cmake ]; - - meta = with lib; { - description = "Intel Processor Trace decoder library"; - homepage = "https://github.com/intel/libipt"; - license = licenses.bsd3; - platforms = platforms.unix; - maintainers = with maintainers; [ orivej ]; - }; -} diff --git a/pkgs/by-name/li/libjpeg-turbo/0001-Compile-transupp.c-as-part-of-the-library.patch b/pkgs/by-name/li/libjpeg-turbo/0001-Compile-transupp.c-as-part-of-the-library.patch deleted file mode 100644 index 7753150..0000000 --- a/pkgs/by-name/li/libjpeg-turbo/0001-Compile-transupp.c-as-part-of-the-library.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 6442d11617f95d13e2a371bd3e01f5082a9c356d Mon Sep 17 00:00:00 2001 -From: Las -Date: Sun, 3 Jan 2021 18:35:37 +0000 -Subject: [PATCH] Compile transupp.c as part of the library - ---- - CMakeLists.txt | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index adb0ca45..46fc16dd 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -581,7 +581,7 @@ set(JPEG_SOURCES ${JPEG12_SOURCES} jcapimin.c jchuff.c jcicc.c jcinit.c - jclhuff.c jcmarker.c jcmaster.c jcomapi.c jcparam.c jcphuff.c jctrans.c - jdapimin.c jdatadst.c jdatasrc.c jdhuff.c jdicc.c jdinput.c jdlhuff.c - jdmarker.c jdmaster.c jdphuff.c jdtrans.c jerror.c jfdctflt.c jmemmgr.c -- jmemnobs.c jpeg_nbits.c) -+ jmemnobs.c jpeg_nbits.c transupp.c) - - if(WITH_ARITH_ENC OR WITH_ARITH_DEC) - set(JPEG_SOURCES ${JPEG_SOURCES} jaricom.c) -@@ -1803,7 +1803,7 @@ install(EXPORT ${CMAKE_PROJECT_NAME}Targets - - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/jconfig.h - ${CMAKE_CURRENT_SOURCE_DIR}/jerror.h ${CMAKE_CURRENT_SOURCE_DIR}/jmorecfg.h -- ${CMAKE_CURRENT_SOURCE_DIR}/jpeglib.h -+ ${CMAKE_CURRENT_SOURCE_DIR}/jpeglib.h ${CMAKE_CURRENT_SOURCE_DIR}/transupp.h - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) - - include(cmakescripts/BuildPackages.cmake) --- -2.43.0 - diff --git a/pkgs/by-name/li/libjpeg-turbo/0002-Make-exported-symbols-in-transupp.c-weak.patch b/pkgs/by-name/li/libjpeg-turbo/0002-Make-exported-symbols-in-transupp.c-weak.patch deleted file mode 100644 index fc23b77..0000000 --- a/pkgs/by-name/li/libjpeg-turbo/0002-Make-exported-symbols-in-transupp.c-weak.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 6442d11617f95d13e2a371bd3e01f5082a9c356d Mon Sep 17 00:00:00 2001 -From: Las -Date: Sun, 3 Jan 2021 18:35:37 +0000 -Subject: [PATCH] Make exported symbols in transupp.c weak - -The exported symbols are made weak to not conflict with users -of the library that already vendor this functionality. ---- - transupp.c | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/transupp.c b/transupp.c -index 34fbb371..c0ade5a9 100644 ---- a/transupp.c -+++ b/transupp.c -@@ -1388,7 +1388,7 @@ jt_read_integer(const char **strptr, JDIMENSION *result) - * This code is loosely based on XParseGeometry from the X11 distribution. - */ - --GLOBAL(boolean) -+GLOBAL(boolean) __attribute__((weak)) - jtransform_parse_crop_spec(jpeg_transform_info *info, const char *spec) - { - info->crop = FALSE; -@@ -1488,7 +1488,7 @@ trim_bottom_edge(jpeg_transform_info *info, JDIMENSION full_height) - * and transformation is not perfect. Otherwise returns TRUE. - */ - --GLOBAL(boolean) -+GLOBAL(boolean) __attribute__((weak)) - jtransform_request_workspace(j_decompress_ptr srcinfo, - jpeg_transform_info *info) - { -@@ -2035,7 +2035,7 @@ adjust_exif_parameters(JOCTET *data, unsigned int length, JDIMENSION new_width, - * to jpeg_write_coefficients(). - */ - --GLOBAL(jvirt_barray_ptr *) -+GLOBAL(jvirt_barray_ptr *) __attribute__((weak)) - jtransform_adjust_parameters(j_decompress_ptr srcinfo, j_compress_ptr dstinfo, - jvirt_barray_ptr *src_coef_arrays, - jpeg_transform_info *info) -@@ -2154,7 +2154,7 @@ jtransform_adjust_parameters(j_decompress_ptr srcinfo, j_compress_ptr dstinfo, - * Note that some transformations will modify the source data arrays! - */ - --GLOBAL(void) -+GLOBAL(void) __attribute__((weak)) - jtransform_execute_transform(j_decompress_ptr srcinfo, j_compress_ptr dstinfo, - jvirt_barray_ptr *src_coef_arrays, - jpeg_transform_info *info) -@@ -2266,7 +2266,7 @@ jtransform_execute_transform(j_decompress_ptr srcinfo, j_compress_ptr dstinfo, - * (may use custom action then) - */ - --GLOBAL(boolean) -+GLOBAL(boolean) __attribute__((weak)) - jtransform_perfect_transform(JDIMENSION image_width, JDIMENSION image_height, - int MCU_width, int MCU_height, - JXFORM_CODE transform) -@@ -2305,7 +2305,7 @@ jtransform_perfect_transform(JDIMENSION image_width, JDIMENSION image_height, - * This must be called before jpeg_read_header() to have the desired effect. - */ - --GLOBAL(void) -+GLOBAL(void) __attribute__((weak)) - jcopy_markers_setup(j_decompress_ptr srcinfo, JCOPY_OPTION option) - { - #ifdef SAVE_MARKERS_SUPPORTED -@@ -2337,7 +2337,7 @@ jcopy_markers_setup(j_decompress_ptr srcinfo, JCOPY_OPTION option) - * JFIF APP0 or Adobe APP14 markers if selected. - */ - --GLOBAL(void) -+GLOBAL(void) __attribute__((weak)) - jcopy_markers_execute(j_decompress_ptr srcinfo, j_compress_ptr dstinfo, - JCOPY_OPTION option) - { --- -2.43.0 - diff --git a/pkgs/by-name/li/libjpeg-turbo/default.nix b/pkgs/by-name/li/libjpeg-turbo/default.nix deleted file mode 100644 index 4a5b478..0000000 --- a/pkgs/by-name/li/libjpeg-turbo/default.nix +++ /dev/null @@ -1,117 +0,0 @@ -{ 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 -# , epeg -# , freeimage -# , gd -# , graphicsmagick -# , imagemagick -# , imlib2 -# , jhead -# , libjxl -# , mjpegtools -# , opencv -# , python3 -# , vips -# , testers -}: - -assert !(enableJpeg7 && enableJpeg8); # pick only one or none, not both - -stdenv.mkDerivation (finalAttrs: { - - pname = "libjpeg-turbo"; - version = "3.0.2"; - - src = fetchFromGitHub { - owner = "libjpeg-turbo"; - repo = "libjpeg-turbo"; - rev = finalAttrs.version; - 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="; - }) - - # 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" ]; - - postFixup = '' - moveToOutput include/transupp.h $dev_private - ''; - - nativeBuildInputs = [ - cmake - nasm - ] ++ 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" - ]; - - doInstallCheck = true; - installCheckTarget = "test"; - - # passthru.tests = { - # inherit - # dvgrab - # epeg - # freeimage - # gd - # graphicsmagick - # imagemagick - # imlib2 - # jhead - # libjxl - # mjpegtools - # opencv - # vips; - # inherit (python3.pkgs) pillow imread pyturbojpeg; - # pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - # }; - - meta = with lib; { - 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 ]; - platforms = platforms.all; - }; -}) diff --git a/pkgs/by-name/li/libjpeg-turbo/mingw-boolean.patch b/pkgs/by-name/li/libjpeg-turbo/mingw-boolean.patch deleted file mode 100644 index 9b9483d..0000000 --- a/pkgs/by-name/li/libjpeg-turbo/mingw-boolean.patch +++ /dev/null @@ -1,19 +0,0 @@ -Ported to updated libjpeg-turbo from -https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-libjpeg-turbo/jpeg-typedefs.patch ---- a/jmorecfg.h 2012-02-10 06:47:55 +0300 -+++ b/jmorecfg.h 2012-05-03 10:29:13 +0400 -@@ -224,7 +224,13 @@ - * Defining HAVE_BOOLEAN before including jpeglib.h should make it work. - */ - --#ifndef HAVE_BOOLEAN -+#if defined(_WIN32) && !defined(HAVE_BOOLEAN) -+#ifndef __RPCNDR_H__ -+typedef unsigned char boolean; -+#endif -+#define HAVE_BOOLEAN -+#endif -+#if !defined(HAVE_BOOLEAN) && !defined(__RPCNDR_H__) - typedef int boolean; - #endif - #ifndef FALSE /* in case these macros already exist */ diff --git a/pkgs/by-name/li/libjpeg-turbo/packages.nix b/pkgs/by-name/li/libjpeg-turbo/packages.nix deleted file mode 100644 index c998453..0000000 --- a/pkgs/by-name/li/libjpeg-turbo/packages.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - # also known as libturbojpeg - libjpeg_turbo = callPackage ./. { }; - libjpeg = libjpeg_turbo; - libjpeg8 = libjpeg_turbo.override { enableJpeg8 = true; }; -} diff --git a/pkgs/by-name/li/libjpeg/default.nix b/pkgs/by-name/li/libjpeg/default.nix deleted file mode 100644 index d161ff3..0000000 --- a/pkgs/by-name/li/libjpeg/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib, stdenv, fetchurl -, testers -, static ? false -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "libjpeg"; - version = "9f"; - - src = fetchurl { - url = "http://www.ijg.org/files/jpegsrc.v${finalAttrs.version}.tar.gz"; - sha256 = "sha256-BHBcEQyyRpyqeftx+6PXv4NJFHBulkGkWJSFwfgyVls="; - }; - - configureFlags = lib.optional static "--enable-static --disable-shared"; - - outputs = [ "bin" "dev" "out" "man" ]; - - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - - meta = with lib; { - homepage = "https://www.ijg.org/"; - description = "A library that implements the JPEG image file format"; - maintainers = with maintainers; [ ]; - license = licenses.free; - pkgConfigModules = [ "libjpeg" ]; - platforms = platforms.unix; - }; -}) diff --git a/pkgs/by-name/li/libjpeg/packages.nix b/pkgs/by-name/li/libjpeg/packages.nix deleted file mode 100644 index fdb1200..0000000 --- a/pkgs/by-name/li/libjpeg/packages.nix +++ /dev/null @@ -1,8 +0,0 @@ - -{ ... }: -res: pkgs: super: - -with pkgs; -{ - libjpeg_original = callPackage ./. { }; -} diff --git a/pkgs/by-name/li/libjxl/default.nix b/pkgs/by-name/li/libjxl/default.nix deleted file mode 100644 index c91ae27..0000000 --- a/pkgs/by-name/li/libjxl/default.nix +++ /dev/null @@ -1,148 +0,0 @@ -{ 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 - loadersPath = "${gdk-pixbuf.binaryDir}/jxl-loaders.cache"; -in - -stdenv.mkDerivation rec { - pname = "libjxl"; - version = "0.9.1"; - - outputs = [ "out" "dev" ]; - - src = fetchFromGitHub { - owner = "libjxl"; - repo = "libjxl"; - rev = "v${version}"; - hash = "sha256-n5KNbbw6NQRROEM7Cojla/igRCFNawUq7nfhzJlMlPI="; - # There are various submodules in `third_party/`. - fetchSubmodules = true; - }; - - strictDeps = true; - - nativeBuildInputs = [ - cmake - pkg-config - gdk-pixbuf - makeWrapper - asciidoc - doxygen - python3 - ]; - - depsBuildBuild = [ - graphviz - ]; - - # Functionality not currently provided by this package - # that the cmake build can apparently use: - # OpenGL/GLUT (for Examples -> comparison with sjpeg) - # viewer (see `cmakeFlags`) - # plugins like for GDK and GIMP (see `cmakeFlags`) - - # Vendored libraries: - # `libjxl` currently vendors many libraries as git submodules that they - # might patch often (e.g. test/gmock, see - # https://github.com/NixOS/nixpkgs/pull/103160#discussion_r519487734). - # When it has stabilised in the future, we may want to tell the build - # to use use nixpkgs system libraries. - - # As of writing, libjxl does not point out all its dependencies - # conclusively in its README or otherwise; they can best be determined - # by checking the CMake output for "Could NOT find". - buildInputs = [ - lcms2 - giflib - gperftools # provides `libtcmalloc` - gtest - libjpeg - libpng - libwebp - gdk-pixbuf - openexr_3 - zlib - ]; - - propagatedBuildInputs = [ - brotli - 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" - - # 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" - - # 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 \ - --replace '/usr/bin/gdk-pixbuf-thumbnailer' "$out/libexec/gdk-pixbuf-thumbnailer-jxl" - ''; - - postInstall = lib.optionalString enablePlugins '' - GDK_PIXBUF_MODULEDIR="$out/${gdk-pixbuf.moduleDir}" \ - GDK_PIXBUF_MODULE_FILE="$out/${loadersPath}" \ - gdk-pixbuf-query-loaders --update-cache - mkdir -p "$out/bin" - makeWrapper ${gdk-pixbuf}/bin/gdk-pixbuf-thumbnailer "$out/libexec/gdk-pixbuf-thumbnailer-jxl" \ - --set GDK_PIXBUF_MODULE_FILE "$out/${loadersPath}" - ''; - - CXXFLAGS = lib.optionalString stdenv.hostPlatform.isAarch32 "-mfp16-format=ieee"; - - # FIXME x86_64-darwin: - # https://github.com/NixOS/nixpkgs/pull/204030#issuecomment-1352768690 - doCheck = with stdenv; !(hostPlatform.isi686 || isDarwin && isx86_64); - - meta = with lib; { - homepage = "https://github.com/libjxl/libjxl"; - description = "JPEG XL image format reference implementation."; - license = licenses.bsd3; - maintainers = with maintainers; [ nh2 ]; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/li/liblqr1/default.nix b/pkgs/by-name/li/liblqr1/default.nix deleted file mode 100644 index 6b8c2eb..0000000 --- a/pkgs/by-name/li/liblqr1/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, pkg-config, glib, Carbon, AppKit }: - -stdenv.mkDerivation rec { - pname = "liblqr-1"; - version = "0.4.2"; - - outputs = [ "out" "dev" ]; - - src = fetchFromGitHub { - owner = "carlobaldassi"; - repo = "liblqr"; - rev = "v${version}"; - sha256 = "10mrl5k3l2hxjhz4w93n50xwywp6y890rw2vsjcgai8627x5f1df"; - }; - - nativeBuildInputs = [ pkg-config ]; - 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 ]; - }; -} diff --git a/pkgs/by-name/li/liblqr1/packages.nix b/pkgs/by-name/li/liblqr1/packages.nix deleted file mode 100644 index 9441e21..0000000 --- a/pkgs/by-name/li/liblqr1/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index bf156fb..0000000 --- a/pkgs/by-name/li/libmd/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ lib, stdenv, fetchurl, fetchpatch, autoreconfHook }: - -stdenv.mkDerivation (finalAttrs: { - pname = "libmd"; - version = "1.1.0"; - - src = fetchurl { - urls = [ - "https://archive.hadrons.org/software/libmd/libmd-${finalAttrs.version}.tar.xz" - "https://libbsd.freedesktop.org/releases/libmd-${finalAttrs.version}.tar.xz" - ]; - sha256 = "sha256-G9aqQidTE68xQcfPLluWTosf1IgCXK8vlx9DsAd2szI="; - }; - - enableParallelBuilding = true; - - doCheck = true; - - nativeBuildInputs = [ autoreconfHook ]; - - meta = with lib; { - homepage = "https://www.hadrons.org/software/libmd/"; - 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 ]; - 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 deleted file mode 100644 index 9a6f6a1..0000000 --- a/pkgs/by-name/li/libmnl/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "libmnl"; - version = "1.0.5"; - - src = fetchurl { - url = "https://netfilter.org/projects/libmnl/files/${pname}-${version}.tar.bz2"; - sha256 = "09851ns07399rbz0y8slrlmnw3fn1nakr8d37pxjn5gkks8rnjr7"; - }; - - meta = { - description = "Minimalistic user-space library oriented to Netlink developers"; - longDescription = '' - libmnl is a minimalistic user-space library oriented to Netlink developers. - There are a lot of common tasks in parsing, validating, constructing of both the Netlink - header and TLVs that are repetitive and easy to get wrong. - This library aims to provide simple helpers that allows you to re-use code and to avoid - re-inventing the wheel. - ''; - homepage = "https://netfilter.org/projects/libmnl/index.html"; - license = lib.licenses.lgpl21Plus; - - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/by-name/li/libmpc/default.nix b/pkgs/by-name/li/libmpc/default.nix deleted file mode 100644 index fe11b59..0000000 --- a/pkgs/by-name/li/libmpc/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ lib, stdenv, fetchurl -, gmp, mpfr -}: - -# 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. - -stdenv.mkDerivation rec { - pname = "libmpc"; - version = "1.3.1"; # to avoid clash with the MPD client - - src = fetchurl { - url = "mirror://gnu/mpc/mpc-${version}.tar.gz"; - sha256 = "sha256-q2QkkvXPiCt0qgy3MM1BCoHtzb7IlRg86TDnBsHHWbg="; - }; - - strictDeps = true; - enableParallelBuilding = true; - - 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. - ''; - - homepage = "https://www.multiprecision.org/mpc/"; - license = lib.licenses.lgpl2Plus; - - platforms = lib.platforms.all; - maintainers = [ ]; - }; -} diff --git a/pkgs/by-name/li/libnatspec/default.nix b/pkgs/by-name/li/libnatspec/default.nix deleted file mode 100644 index 4124422..0000000 --- a/pkgs/by-name/li/libnatspec/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib, stdenv, fetchurl, autoreconfHook, popt, libiconv }: - -stdenv.mkDerivation rec { - pname = "libnatspec"; - version = "0.3.0"; - - src = fetchurl { - url = "mirror://sourceforge/natspec/${pname}-${version}.tar.bz2"; - sha256 = "0wffxjlc8svilwmrcg3crddpfrpv35mzzjgchf8ygqsvwbrbb3b7"; - }; - - nativeBuildInputs = [ autoreconfHook ]; - - buildInputs = [ popt ]; - - propagatedBuildInputs = [ libiconv ]; - - meta = with lib; { - homepage = "https://natspec.sourceforge.net/"; - description = "A library intended to smooth national specificities in using of programs"; - mainProgram = "natspec"; - platforms = platforms.unix; - license = licenses.lgpl21; - }; -} diff --git a/pkgs/by-name/li/libnetfilter_conntrack/default.nix b/pkgs/by-name/li/libnetfilter_conntrack/default.nix deleted file mode 100644 index c424879..0000000 --- a/pkgs/by-name/li/libnetfilter_conntrack/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib, stdenv, fetchurl, fetchpatch, pkg-config, libnfnetlink, libmnl }: - -stdenv.mkDerivation rec { - pname = "libnetfilter_conntrack"; - version = "1.0.9"; - - src = fetchurl { - url = "https://netfilter.org/projects/libnetfilter_conntrack/files/${pname}-${version}.tar.bz2"; - sha256 = "sha256-Z72d9J/jTouCFE9t+5OzIPOEqOpZcn6S/40YtfS1eag="; - }; - - patches = [ - # Fix Musl build. - (fetchpatch { - url = "https://git.netfilter.org/libnetfilter_conntrack/patch/?id=21ee35dde73aec5eba35290587d479218c6dd824"; - sha256 = "00rp82jrx5ygcw8la3c7bv7sigw9qzbn956dk71qjx981a2g2kqk"; - }) - ]; - - hardeningDisable = [ "trivialautovarinit" ]; - - buildInputs = [ libmnl ]; - propagatedBuildInputs = [ libnfnetlink ]; - nativeBuildInputs = [ pkg-config ]; - - meta = with lib; { - description = "Userspace library providing an API to the in-kernel connection tracking state table"; - longDescription = '' - libnetfilter_conntrack is a userspace library providing a programming interface (API) to the - in-kernel connection tracking state table. The library libnetfilter_conntrack has been - previously known as libnfnetlink_conntrack and libctnetlink. This library is currently used - by conntrack-tools among many other applications - ''; - homepage = "https://netfilter.org/projects/libnetfilter_conntrack/"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - }; -} diff --git a/pkgs/by-name/li/libnfnetlink/default.nix b/pkgs/by-name/li/libnfnetlink/default.nix deleted file mode 100644 index 3b6b804..0000000 --- a/pkgs/by-name/li/libnfnetlink/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "libnfnetlink"; - version = "1.0.2"; - - src = fetchurl { - url = "https://www.netfilter.org/projects/libnfnetlink/files/libnfnetlink-${version}.tar.bz2"; - sha256 = "0xn3rcrzxr6g82kfxzs9bqn2zvl2kf2yda30drwb9vr6sk1wfr5h"; - }; - - meta = { - description = "Low-level library for netfilter related kernel/userspace communication"; - longDescription = '' - libnfnetlink is the low-level library for netfilter related kernel/userspace communication. - It provides a generic messaging infrastructure for in-kernel netfilter subsystems - (such as nfnetlink_log, nfnetlink_queue, nfnetlink_conntrack) and their respective users - and/or management tools in userspace. - - This library is not meant as a public API for application developers. - It is only used by other netfilter.org projects, like the aforementioned ones. - ''; - homepage = "https://www.netfilter.org/projects/libnfnetlink/index.html"; - license = lib.licenses.gpl2; - - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/by-name/li/libnftnl/default.nix b/pkgs/by-name/li/libnftnl/default.nix deleted file mode 100644 index b3e8c2f..0000000 --- a/pkgs/by-name/li/libnftnl/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ lib, stdenv, fetchurl, pkg-config, libmnl }: - -stdenv.mkDerivation rec { - version = "1.2.6"; - pname = "libnftnl"; - - src = fetchurl { - url = "https://netfilter.org/projects/${pname}/files/${pname}-${version}.tar.xz"; - hash = "sha256-zurqLNkhR9oZ8To1p/GkvCdn/4l+g45LR5z1S1nHd/Q="; - }; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libmnl ]; - - meta = with lib; { - description = "A userspace library providing a low-level netlink API to the in-kernel nf_tables subsystem"; - homepage = "https://netfilter.org/projects/libnftnl/"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ ]; - }; -} diff --git a/pkgs/by-name/li/libnl/default.nix b/pkgs/by-name/li/libnl/default.nix deleted file mode 100644 index 68f4ee2..0000000 --- a/pkgs/by-name/li/libnl/default.nix +++ /dev/null @@ -1,68 +0,0 @@ -{ stdenv -, file -, lib -, fetchFromGitHub -, autoreconfHook -, bison -, flex -, pkg-config -, doxygen -, graphviz -, mscgen -, asciidoc -, sourceHighlight -, pythonSupport ? false -, swig ? null -, python ? null -}: - -stdenv.mkDerivation rec { - pname = "libnl"; - version = "3.8.0"; - - src = fetchFromGitHub { - repo = "libnl"; - owner = "thom311"; - rev = "libnl${lib.replaceStrings ["."] ["_"] version}"; - hash = "sha256-zVpoRlB5xDfo6wJkCJGGptuCXkNkriudtZF2Job9YD4="; - }; - - outputs = [ "bin" "dev" "out" "man" ] ++ lib.optional pythonSupport "py"; - - enableParallelBuilding = true; - - nativeBuildInputs = [ - autoreconfHook - bison - flex - pkg-config - file - doxygen - graphviz - mscgen - asciidoc - sourceHighlight - ] ++ lib.optional pythonSupport swig; - - postBuild = lib.optionalString (pythonSupport) '' - cd python - ${python.pythonOnBuildForHost.interpreter} setup.py install --prefix=../pythonlib - cd - - ''; - - postFixup = lib.optionalString pythonSupport '' - mv "pythonlib/" "$py" - ''; - - passthru = { - inherit pythonSupport; - }; - - meta = with lib; { - homepage = "http://www.infradead.org/~tgr/libnl/"; - description = "Linux Netlink interface library suite"; - license = licenses.lgpl21; - maintainers = with maintainers; [ fpletz ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/by-name/li/libpcap/default.nix b/pkgs/by-name/li/libpcap/default.nix deleted file mode 100644 index db2ca67..0000000 --- a/pkgs/by-name/li/libpcap/default.nix +++ /dev/null @@ -1,71 +0,0 @@ -{ lib -, stdenv -, fetchurl -, flex -, bison -, bluez -, libnl -, libxcrypt -, pkg-config -, withBluez ? false -, withRemote ? false - -# for passthru.tests -# , ettercap -# , nmap -# , ostinato -# , tcpreplay -# , vde2 -# , wireshark -# , python3 -# , haskellPackages -}: - -stdenv.mkDerivation rec { - pname = "libpcap"; - version = "1.10.4"; - - src = fetchurl { - url = "https://www.tcpdump.org/release/${pname}-${version}.tar.gz"; - hash = "sha256-7RmgOD+tcuOtQ1/SOdfNgNZJFrhyaVUBWdIORxYOvl8="; - }; - - buildInputs = lib.optionals stdenv.isLinux [ libnl ] - ++ lib.optionals withRemote [ libxcrypt ]; - - 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" ]; - - postInstall = '' - if [ "$dontDisableStatic" -ne "1" ]; then - rm -f $out/lib/libpcap.a - fi - ''; - - # passthru.tests = { - # inherit ettercap nmap ostinato tcpreplay vde2 wireshark; - # inherit (python3.pkgs) pcapy-ng scapy; - # haskell-pcap = haskellPackages.pcap; - # }; - - meta = with lib; { - homepage = "https://www.tcpdump.org"; - description = "Packet Capture Library"; - mainProgram = "pcap-config"; - platforms = platforms.unix; - maintainers = with maintainers; [ fpletz ]; - license = licenses.bsd3; - }; -} diff --git a/pkgs/by-name/li/libpfm/default.nix b/pkgs/by-name/li/libpfm/default.nix deleted file mode 100644 index 0598fd6..0000000 --- a/pkgs/by-name/li/libpfm/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ lib -, stdenv -, fetchurl -, enableShared ? !stdenv.hostPlatform.isStatic -, windows -}: - -stdenv.mkDerivation (finalAttrs: { - version = "4.13.0"; - pname = "libpfm"; - - src = fetchurl { - url = "mirror://sourceforge/perfmon2/libpfm4/libpfm-${finalAttrs.version}.tar.gz"; - sha256 = "sha256-0YuXdkx1VSjBBR03bjNUXQ62DG6/hWgENoE/pbBMw9E="; - }; - - # Don't install libpfm.so on windows as it doesn't exist - # This target is created only if `ifeq ($(SYS),Linux)` passes - patches = [ ./fix-windows.patch ]; - - # Upstream uses "WINDOWS" instead of "Windows" which is incorrect - # See: https://github.com/NixOS/nixpkgs/pull/252982#discussion_r1314346216 - postPatch = '' - substituteInPlace config.mk examples/Makefile \ - --replace '($(SYS),WINDOWS)' '($(SYS),Windows)' - ''; - - makeFlags = [ - "PREFIX=${placeholder "out"}" - "LDCONFIG=true" - "ARCH=${stdenv.hostPlatform.uname.processor}" - "SYS=${stdenv.hostPlatform.uname.system}" - ]; - - env.NIX_CFLAGS_COMPILE = "-Wno-error"; - env.CONFIG_PFMLIB_SHARED = if enableShared then "y" else "n"; - - buildInputs = lib.optional stdenv.hostPlatform.isWindows windows.libgnurx; - - meta = with lib; { - description = "Helper library to program the performance monitoring events"; - longDescription = '' - This package provides a library, called libpfm4 which is used to - develop monitoring tools exploiting the performance monitoring - events such as those provided by the Performance Monitoring Unit - (PMU) of modern processors. - ''; - license = licenses.gpl2; - maintainers = with maintainers; [ pierron t4ccer ]; - platforms = platforms.linux ++ platforms.windows; - }; -}) diff --git a/pkgs/by-name/li/libpfm/fix-windows.patch b/pkgs/by-name/li/libpfm/fix-windows.patch deleted file mode 100644 index 584b9ba..0000000 --- a/pkgs/by-name/li/libpfm/fix-windows.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/lib/Makefile b/lib/Makefile -index 5ca71e3..cd0717f 100644 ---- a/lib/Makefile -+++ b/lib/Makefile -@@ -428,11 +428,13 @@ install: - -mkdir -p $(DESTDIR)$(LIBDIR) - $(INSTALL) -m 644 $(ALIBPFM) $(DESTDIR)$(LIBDIR) - ifeq ($(CONFIG_PFMLIB_SHARED),y) -+ifeq ($(SYS),Linux) - $(INSTALL) $(SLIBPFM) $(DESTDIR)$(LIBDIR) - cd $(DESTDIR)$(LIBDIR); $(LN) $(SLIBPFM) $(VLIBPFM) - cd $(DESTDIR)$(LIBDIR); $(LN) $(SLIBPFM) libpfm.$(SOLIBEXT) - -$(LDCONFIG) - endif -+endif - - tags: - $(CTAGS) -o $(TOPDIR)/tags --tag-relative=yes $(SRCS) $(INCDEP) diff --git a/pkgs/by-name/li/libpipeline/default.nix b/pkgs/by-name/li/libpipeline/default.nix deleted file mode 100644 index 3630980..0000000 --- a/pkgs/by-name/li/libpipeline/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "libpipeline"; - version = "1.5.7"; - - src = fetchurl { - url = "mirror://savannah/libpipeline/libpipeline-${version}.tar.gz"; - sha256 = "sha256-uLRRlJiQIqeewTF/ZKKnWxVRsqVb6gb2dwTLKi5GkLA="; - }; - - patches = lib.optionals stdenv.isDarwin [ ./fix-on-osx.patch ]; - - meta = with lib; { - homepage = "http://libpipeline.nongnu.org"; - description = "C library for manipulating pipelines of subprocesses in a flexible and convenient way"; - platforms = platforms.unix; - license = licenses.gpl3; - }; -} diff --git a/pkgs/by-name/li/libpipeline/fix-on-osx.patch b/pkgs/by-name/li/libpipeline/fix-on-osx.patch deleted file mode 100644 index c539e2d..0000000 --- a/pkgs/by-name/li/libpipeline/fix-on-osx.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/lib/pipeline.c b/lib/pipeline.c -index 26478f9..1612307 100644 ---- a/lib/pipeline.c -+++ b/lib/pipeline.c -@@ -75,6 +75,8 @@ - # endif - #endif - -+const char* program_name = "libpipeline"; -+ - #if defined(HAVE_SETENV) && !defined(HAVE_CLEARENV) - int clearenv (void) - { diff --git a/pkgs/by-name/li/libpkgconf/default.nix b/pkgs/by-name/li/libpkgconf/default.nix deleted file mode 100644 index bfa79f3..0000000 --- a/pkgs/by-name/li/libpkgconf/default.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ lib -, stdenv -, fetchurl -, removeReferencesTo -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "pkgconf"; - version = "2.1.1"; - - src = fetchurl { - url = "https://distfiles.dereferenced.org/pkgconf/pkgconf-${finalAttrs.version}.tar.xz"; - hash = "sha256-OiJPKszwkbd6V4Exbie57juoLAg8wuU54IlAtopE/sU="; - }; - - outputs = [ "out" "lib" "dev" "man" "doc" ]; - - nativeBuildInputs = [ removeReferencesTo ]; - - enableParallelBuilding = true; - - # 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"} - ''; - - meta = { - homepage = "https://github.com/pkgconf/pkgconf"; - description = "Package compiler and linker metadata toolkit"; - longDescription = '' - pkgconf is a program which helps to configure compiler and linker flags - for development libraries. It is similar to pkg-config from - freedesktop.org. - - libpkgconf is a library which provides access to most of pkgconf's - functionality, to allow other tooling such as compilers and IDEs to - discover and use libraries configured by pkgconf. - ''; - changelog = "https://github.com/pkgconf/pkgconf/blob/pkgconf-${finalAttrs.version}/NEWS"; - license = lib.licenses.isc; - mainProgram = "pkgconf"; - 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 deleted file mode 100644 index aab7186..0000000 --- a/pkgs/by-name/li/libpkgconf/packages.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - libpkgconf = callPackage ./. { }; - - pkgconf-unwrapped = libpkgconf; - - pkgconf = callPackage (path + "/pkgs/build-support/pkg-config-wrapper") { - pkg-config = pkgconf-unwrapped; - baseBinName = "pkgconf"; - }; -} diff --git a/pkgs/by-name/li/libpng/12.nix b/pkgs/by-name/li/libpng/12.nix deleted file mode 100644 index e94bd02..0000000 --- a/pkgs/by-name/li/libpng/12.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ lib, stdenv, fetchurl, zlib -, testers -}: - -assert stdenv.hostPlatform == stdenv.buildPlatform -> zlib != null; - -stdenv.mkDerivation (finalAttrs: { - pname = "libpng"; - version = "1.2.59"; - - src = fetchurl { - url = "mirror://sourceforge/libpng/libpng-${finalAttrs.version}.tar.xz"; - sha256 = "1izw9ybm27llk8531w6h4jp4rk2rxy2s9vil16nwik5dp0amyqxl"; - }; - - outputs = [ "out" "dev" "man" ]; - - propagatedBuildInputs = [ zlib ]; - - configureFlags = [ "--enable-static" ]; - - postInstall = ''mv "$out/bin" "$dev/bin"''; - - passthru = { - inherit zlib; - - tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - }; - - meta = with lib; { - description = "The official reference implementation for the PNG file format"; - homepage = "http://www.libpng.org/pub/png/libpng.html"; - license = licenses.libpng; - maintainers = [ ]; - branch = "1.2"; - pkgConfigModules = [ "libpng" "libpng12" ]; - platforms = platforms.unix; - }; -}) diff --git a/pkgs/by-name/li/libpng/default.nix b/pkgs/by-name/li/libpng/default.nix deleted file mode 100644 index 34d7a3e..0000000 --- a/pkgs/by-name/li/libpng/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ lib, stdenv, fetchurl, zlib, apngSupport ? true -, testers -}: - -assert zlib != null; - -let - patchVersion = "1.6.43"; - patch_src = fetchurl { - url = "mirror://sourceforge/libpng-apng/libpng-${patchVersion}-apng.patch.gz"; - hash = "sha256-0QdXnpDVU4bQDmCG6nUJQvIqBLmrR2u6DGYHcM76/iI="; - }; - whenPatched = lib.optionalString apngSupport; - -in stdenv.mkDerivation (finalAttrs: { - pname = "libpng" + whenPatched "-apng"; - version = "1.6.43"; - - src = fetchurl { - url = "mirror://sourceforge/libpng/libpng-${finalAttrs.version}.tar.xz"; - hash = "sha256-alygZSOSotfJ2yrltAIQhDwLvAgcvUEIJasAzFnxSmw="; - }; - postPatch = whenPatched "gunzip < ${patch_src} | patch -Np1"; - - outputs = [ "out" "dev" "man" ]; - outputBin = "dev"; - - propagatedBuildInputs = [ zlib ]; - - doCheck = true; - - passthru = { - inherit zlib; - - tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - }; - - meta = with lib; { - 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" ]; - 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 deleted file mode 100644 index f5aeb36..0000000 --- a/pkgs/by-name/li/libpng/packages.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index e875864..0000000 --- a/pkgs/by-name/li/libpsl/default.nix +++ /dev/null @@ -1,87 +0,0 @@ -{ 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 { - pname = "libpsl"; - version = "0.21.5"; - - src = fetchurl { - url = "https://github.com/rockdaboot/libpsl/releases/download/${version}/libpsl-${version}.tar.lz"; - hash = "sha256-mp9qjG7bplDPnqVUdc0XLdKEhzFoBOnHMgLZdXLNOi0="; - }; - - # bin/psl-make-dafsa brings a large runtime closure through python3 - outputs = [ "bin" "out" "dev" ]; - - nativeBuildInputs = [ - autoreconfHook - docbook_xsl - docbook_xml_dtd_43 - gtk-doc - lzip - pkg-config - python3 - libxslt - ]; - - buildInputs = [ - libidn2 - libunistring - libxslt - ]; - - propagatedBuildInputs = [ - publicsuffix-list - ]; - - postPatch = '' - patchShebangs src/psl-make-dafsa - ''; - - preAutoreconf = '' - gtkdocize - ''; - - configureFlags = [ - # "--enable-gtk-doc" - "--enable-man" - "--with-psl-distfile=${publicsuffix-list}/share/publicsuffix/public_suffix_list.dat" - "--with-psl-file=${publicsuffix-list}/share/publicsuffix/public_suffix_list.dat" - "--with-psl-testfile=${publicsuffix-list}/share/publicsuffix/test_psl.txt" - ]; - - enableParallelBuilding = true; - - doCheck = true; - - meta = with lib; { - description = "C library for the Publix Suffix List"; - longDescription = '' - libpsl is a C library for the Publix Suffix List (PSL). A "public suffix" - is a domain name under which Internet users can directly register own - names. Browsers and other web clients can use it to avoid privacy-leaking - "supercookies" and "super domain" certificates, for highlighting parts of - the domain in a user interface or sorting domain lists by site. - ''; - homepage = "https://rockdaboot.github.io/libpsl/"; - changelog = "https://raw.githubusercontent.com/rockdaboot/${pname}/${pname}-${version}/NEWS"; - license = licenses.mit; - maintainers = [ maintainers.c0bw3b ]; - mainProgram = "psl"; - platforms = platforms.unix ++ platforms.windows; - pkgConfigModules = [ "libpsl" ]; - }; -} diff --git a/pkgs/by-name/li/libraw/default.nix b/pkgs/by-name/li/libraw/default.nix deleted file mode 100644 index f840641..0000000 --- a/pkgs/by-name/li/libraw/default.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, autoreconfHook -, lcms2 -, pkg-config - -# for passthru.tests -# , deepin -# , freeimage -# , hdrmerge -# , imagemagick -# , python3 -}: - -stdenv.mkDerivation rec { - pname = "libraw"; - version = "0.21.2"; - - src = fetchFromGitHub { - owner = "LibRaw"; - repo = "LibRaw"; - rev = version; - hash = "sha256-p9CmOCulvV7+KKn1lXwpcysOo0+mD5UgPqy2ki0cIFE="; - }; - - outputs = [ "out" "lib" "dev" "doc" ]; - - propagatedBuildInputs = [ lcms2 ]; - - nativeBuildInputs = [ autoreconfHook pkg-config ]; - - enableParallelBuilding = true; - - # passthru.tests = { - # inherit imagemagick hdrmerge freeimage; - # inherit (deepin) deepin-image-viewer; - # inherit (python3.pkgs) rawkit; - # }; - - 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 ]; - platforms = platforms.unix; - }; -} - diff --git a/pkgs/by-name/li/librsvg/default.nix b/pkgs/by-name/li/librsvg/default.nix deleted file mode 100644 index ee840b8..0000000 --- a/pkgs/by-name/li/librsvg/default.nix +++ /dev/null @@ -1,226 +0,0 @@ -{ 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 -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "librsvg"; - version = "2.58.0"; - - outputs = [ "out" "dev" ] ++ lib.optionals withIntrospection [ - "devdoc" - ]; - - src = fetchurl { - url = "mirror://gnome/sources/librsvg/${lib.versions.majorMinor finalAttrs.version}/librsvg-${finalAttrs.version}.tar.xz"; - hash = "sha256-18REqSZAa1l5C+DerhluGO0mBZ2lc/oaqeycp2WKVZw="; - }; - - cargoDeps = rustPlatform.fetchCargoTarball { - inherit (finalAttrs) src; - name = "librsvg-deps-${finalAttrs.version}"; - hash = "sha256-ta+3KkDtqTLGoKknUn89c+3XHzvcZyPFPFpgLH5f5uw="; - # TODO: move this to fetchCargoTarball - dontConfigure = true; - }; - - strictDeps = true; - - 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 - ]; - - buildInputs = [ - libxml2 - bzip2 - pango - libintl - vala # for share/vala/Makefile.vapigen - ] ++ lib.optionals stdenv.isDarwin [ - ApplicationServices - Foundation - libobjc - ]; - - propagatedBuildInputs = [ - glib - gdk-pixbuf - cairo - ]; - - 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}"; - - doCheck = false; # all tests fail on libtool-generated rsvg-convert not being able to find coreutils - - GDK_PIXBUF_QUERYLOADERS = writeScript "gdk-pixbuf-loader-loaders-wrapped" '' - ${lib.optionalString (stdenv.hostPlatform.emulatorAvailable buildPackages) (stdenv.hostPlatform.emulator buildPackages)} ${lib.getDev gdk-pixbuf}/bin/gdk-pixbuf-query-loaders - ''; - - # 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"; - }; - - preConfigure = '' - PKG_CONFIG_VAPIGEN_VAPIGEN="$(type -p vapigen)" - export PKG_CONFIG_VAPIGEN_VAPIGEN - ''; - - # It wants to add loaders and update the loaders.cache in gdk-pixbuf - # Patching the Makefiles to it creates rsvg specific loaders and the - # 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)#" - - # 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)"' \ - ''; - - # Not generated when cross compiling. - 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 - mv $GDK_PIXBUF/loaders.cache.tmp $GDK_PIXBUF/loaders.cache - - installShellCompletion --cmd rsvg-convert \ - --bash <(${emulator} $out/bin/rsvg-convert --completion bash) \ - --fish <(${emulator} $out/bin/rsvg-convert --completion fish) \ - --zsh <(${emulator} $out/bin/rsvg-convert --completion zsh) - ''; - - postFixup = lib.optionalString withIntrospection '' - # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back. - moveToOutput "share/doc" "$devdoc" - ''; - - passthru = { - updateScript = - let - updateSource = gnome.updateScript { - packageName = "librsvg"; - }; - - updateLockfile = { - command = [ - "sh" - "-c" - '' - 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 "$latestVersion" --source-key=cargoDeps > /dev/null - '' - ]; - # Experimental feature: do not copy! - supportedFeatures = [ "silent" ]; - }; - in - _experimental-update-script-combinators.sequence [ - updateSource - updateLockfile - ]; - tests = { - inherit - gegl - gimp - imagemagick - imlib2 - vips; - inherit (enlightenment) efl; - inherit (xfce) xfwm4; - ffmpeg = ffmpeg.override { withSvg = true; }; - }; - }; - - meta = with lib; { - description = "A small library to render SVG images to Cairo surfaces"; - homepage = "hhttps://gitlab.gnome.org/GNOME/librsvg"; - license = licenses.lgpl2Plus; - maintainers = teams.gnome.members; - mainProgram = "rsvg-convert"; - platforms = platforms.unix; - }; -}) diff --git a/pkgs/by-name/li/librsvg/packages.nix b/pkgs/by-name/li/librsvg/packages.nix deleted file mode 100644 index 69bb6bf..0000000 --- a/pkgs/by-name/li/librsvg/packages.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index 19ba1f2..0000000 --- a/pkgs/by-name/li/libseccomp/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ lib, stdenv, fetchurl, getopt, util-linuxMinimal, which, gperf, nix-update-script }: - -stdenv.mkDerivation rec { - pname = "libseccomp"; - version = "2.5.5"; - - src = fetchurl { - url = "https://github.com/seccomp/libseccomp/releases/download/v${version}/libseccomp-${version}.tar.gz"; - hash = "sha256-JIosik2bmFiqa69ScSw0r+/PnJ6Ut23OAsHJqiX7M3U="; - }; - - outputs = [ "out" "lib" "dev" "man" "pythonsrc" ]; - - nativeBuildInputs = [ gperf ]; - buildInputs = [ getopt ]; - - patchPhase = '' - patchShebangs . - ''; - - nativeCheckInputs = [ util-linuxMinimal which ]; - doCheck = true; - - # Hack to ensure that patchelf --shrink-rpath get rids of a $TMPDIR reference. - preFixup = "rm -rfv src"; - - # Copy the python module code into a tarball that we can export and use as the - # src input for buildPythonPackage calls - postInstall = '' - cp -R ./src/python/ tmp-pythonsrc/ - tar -zcf $pythonsrc --mtime="@$SOURCE_DATE_EPOCH" --sort=name --transform s/tmp-pythonsrc/python-foundationdb/ ./tmp-pythonsrc/ - ''; - - passthru = { - updateScript = nix-update-script { }; - }; - - meta = with lib; { - description = "High level library for the Linux Kernel seccomp filter"; - mainProgram = "scmp_sys_resolver"; - homepage = "https://github.com/seccomp/libseccomp"; - license = licenses.lgpl21Only; - platforms = platforms.linux; - badPlatforms = [ - "alpha-linux" - "loongarch64-linux" - "m68k-linux" - "microblaze-linux" - "microblazeel-linux" - "riscv32-linux" - "sparc-linux" - "sparc64-linux" - ]; - maintainers = with maintainers; [ thoughtpolice ]; - }; -} diff --git a/pkgs/by-name/li/libsecret/default.nix b/pkgs/by-name/li/libsecret/default.nix deleted file mode 100644 index 040722e..0000000 --- a/pkgs/by-name/li/libsecret/default.nix +++ /dev/null @@ -1,129 +0,0 @@ -{ 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"; - - src = fetchurl { - url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - hash = "sha256-Fj0I14O+bUq5qXnOtaT+y8HZZg08NBaMWBMBzVORKyA="; - }; - - 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 - ]; - - buildInputs = [ - libgcrypt - ]; - - propagatedBuildInputs = [ - glib - ]; - - nativeCheckInputs = [ - python3 - python3.pkgs.dbus-python - python3.pkgs.pygobject3 - dbus - gjs - ]; - - mesonFlags = [ - (lib.mesonBool "introspection" withIntrospection) - (lib.mesonBool "gtk_doc" withIntrospection) - ]; - - doCheck = stdenv.isLinux && withIntrospection; - separateDebugInfo = true; - - postPatch = '' - patchShebangs ./tool/test-*.sh - ''; - - preCheck = '' - # Our gobject-introspection patches make the shared library paths absolute - # in the GIR files. When running tests, the library is not yet installed, - # though, so we need to replace the absolute path with a local one during build. - # We are using a symlink that will be overwitten during installation. - mkdir -p $out/lib $out/lib - ln -s "$PWD/libsecret/libmock-service.so" "$out/lib/libmock-service.so" - ln -s "$PWD/libsecret/libsecret-1.so.0" "$out/lib/libsecret-1.so.0" - ''; - - checkPhase = '' - runHook preCheck - - dbus-run-session \ - --config-file=${dbus}/share/dbus-1/session.conf \ - meson test --print-errorlogs --timeout-multiplier 0 - - runHook postCheck - ''; - - postCheck = '' - # This is test-only so it won’t be overwritten during installation. - rm "$out/lib/libmock-service.so" - ''; - - postFixup = '' - # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back. - moveToOutput "share/doc" "$devdoc" - ''; - - passthru = { - updateScript = gnome.updateScript { - packageName = pname; - # Does not seem to use the odd-unstable policy: https://gitlab.gnome.org/GNOME/libsecret/issues/30 - versionPolicy = "none"; - }; - }; - - meta = { - description = "A library for storing and retrieving passwords and other secrets"; - homepage = "https://gitlab.gnome.org/GNOME/libsecret"; - license = lib.licenses.lgpl21Plus; - mainProgram = "secret-tool"; - inherit (glib.meta) platforms maintainers; - }; -} diff --git a/pkgs/by-name/li/libselinux/default.nix b/pkgs/by-name/li/libselinux/default.nix deleted file mode 100644 index c0711f6..0000000 --- a/pkgs/by-name/li/libselinux/default.nix +++ /dev/null @@ -1,99 +0,0 @@ -{ 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; - -with lib; - -stdenv.mkDerivation rec { - pname = "libselinux"; - version = "3.6"; - inherit (libsepol) se_url; - - outputs = [ "bin" "out" "dev" "man" ] ++ optional enablePython "py"; - - src = fetchurl { - url = "${se_url}/${version}/libselinux-${version}.tar.gz"; - hash = "sha256-uk4O80snDnZypeXxtSP+K+qzpAuzPZOJ9K06hyjyG1I="; - }; - - patches = [ - # Make it possible to disable shared builds (for pkgsStatic). - # - # We can't use fetchpatch because it processes includes/excludes - # /after/ stripping the prefix, which wouldn't work here because - # there would be no way to distinguish between - # e.g. libselinux/src/Makefile and libsepol/src/Makefile. - # - # This is a static email, so we shouldn't have to worry about - # normalizing the patch. - (fetchurl { - url = "https://lore.kernel.org/selinux/20211113141616.361640-1-hi@alyssa.is/raw"; - sha256 = "16a2s2ji9049892i15yyqgp4r20hi1hij4c1s4s8law9jsx65b3n"; - postFetch = '' - mv "$out" $TMPDIR/patch - ${buildPackages.patchutils_0_3_3}/bin/filterdiff \ - -i 'a/libselinux/*' --strip 1 <$TMPDIR/patch >"$out" - ''; - }) - - (fetchurl { - url = "https://git.yoctoproject.org/meta-selinux/plain/recipes-security/selinux/libselinux/0003-libselinux-restore-drop-the-obsolete-LSF-transitiona.patch?id=62b9c816a5000dc01b28e78213bde26b58cbca9d"; - sha256 = "sha256-RiEUibLVzfiRU6N/J187Cs1iPAih87gCZrlyRVI2abU="; - }) - ]; - - 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] - hardeningDisable = [ "fortify" ]; - - 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" - - "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 \ - --replace "#include " "" - ''; - - preInstall = optionalString enablePython '' - mkdir -p $py/${python3.sitePackages}/selinux - ''; - - installTargets = [ "install" ] ++ optional enablePython "install-pywrap"; - - 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 deleted file mode 100644 index 548d522..0000000 --- a/pkgs/by-name/li/libsepol/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ 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" ]; - - src = fetchurl { - url = "${se_url}/${version}/libsepol-${version}.tar.gz"; - sha256 = "sha256-ydxYXqlJA9eE1ZfIYc1dzmRZFo+V4isxoOqxzdgAl1o="; - }; - - postPatch = lib.optionalString stdenv.hostPlatform.isStatic '' - substituteInPlace src/Makefile --replace 'all: $(LIBA) $(LIBSO)' 'all: $(LIBA)' - sed -i $'/^\t.*LIBSO/d' src/Makefile - ''; - - nativeBuildInputs = [ flex ]; - - makeFlags = [ - "PREFIX=$(out)" - "BINDIR=$(bin)/bin" - "INCDIR=$(dev)/include/sepol" - "INCLUDEDIR=$(dev)/include" - "MAN3DIR=$(man)/share/man/man3" - "MAN8DIR=$(man)/share/man/man8" - "SHLIBDIR=$(out)/lib" - ]; - - env.NIX_CFLAGS_COMPILE = "-Wno-error"; - - enableParallelBuilding = true; - - passthru = { inherit se_url; }; - - meta = with lib; { - description = "SELinux binary policy manipulation library"; - homepage = "http://userspace.selinuxproject.org"; - platforms = platforms.linux; - maintainers = [ ]; - license = lib.licenses.gpl2Plus; - pkgConfigModules = [ "libselinux" ]; - }; -} diff --git a/pkgs/by-name/li/libsigsegv/default.nix b/pkgs/by-name/li/libsigsegv/default.nix deleted file mode 100644 index 84c2f19..0000000 --- a/pkgs/by-name/li/libsigsegv/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchurl -, enableSigbusFix ? false # required by kernels < 3.18.6 -}: - -stdenv.mkDerivation rec { - pname = "libsigsegv"; - version = "2.14"; - - src = fetchurl { - url = "mirror://gnu/libsigsegv/libsigsegv-${version}.tar.gz"; - sha256 = "sha256-zaw5QYAzZM+BqQhJm+t5wgDq1gtrW0DK0ST9HgbKopU="; - }; - - patches = if enableSigbusFix then [ ./sigbus_fix.patch ] else null; - - doCheck = true; # not cross; - - meta = { - homepage = "https://www.gnu.org/software/libsigsegv/"; - description = "Library to handle page faults in user mode"; - - longDescription = '' - GNU libsigsegv is a library for handling page faults in user mode. A - page fault occurs when a program tries to access to a region of memory - that is currently not available. Catching and handling a page fault is - a useful technique for implementing pageable virtual memory, - memory-mapped access to persistent databases, generational garbage - collectors, stack overflow handlers, distributed shared memory, and - more. - ''; - - license = lib.licenses.gpl2Plus; - - maintainers = [ ]; - platforms = lib.platforms.unix; - }; -} diff --git a/pkgs/by-name/li/libsigsegv/sigbus_fix.patch b/pkgs/by-name/li/libsigsegv/sigbus_fix.patch deleted file mode 100644 index 6f1c399..0000000 --- a/pkgs/by-name/li/libsigsegv/sigbus_fix.patch +++ /dev/null @@ -1,8 +0,0 @@ ---- a/src/signals.h 2017-08-23 14:07:05.000000000 +0100 -+++ b/src/signals.h 2017-08-23 14:06:53.000000000 +0100 -@@ -18,4 +18,4 @@ - /* List of signals that are sent when an invalid virtual memory address - is accessed, or when the stack overflows. */ - #define SIGSEGV_FOR_ALL_SIGNALS(var,body) \ -- { int var; var = SIGSEGV; { body } } -+ { int var; var = SIGSEGV; { body } var = SIGBUS; { body } } diff --git a/pkgs/by-name/li/libsodium/default.nix b/pkgs/by-name/li/libsodium/default.nix deleted file mode 100644 index 4570b10..0000000 --- a/pkgs/by-name/li/libsodium/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ lib, stdenv, fetchurl, fetchpatch, autoreconfHook -, testers -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "libsodium"; - version = "1.0.19"; - - src = fetchurl { - url = "https://download.libsodium.org/libsodium/releases/${finalAttrs.pname}-${finalAttrs.version}.tar.gz"; - hash = "sha256-AY15/goEXMoHMx03vQy1ey6DjFG8SP2DehRy5QBou+o="; - }; - - 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"; - hash = "sha256-jG0VirIoFBwYmRx6zHSu2xe6pXYwbeqNVhPJxO6eJEY="; - }) - ]; - - nativeBuildInputs = [ autoreconfHook ]; - - separateDebugInfo = stdenv.isLinux && stdenv.hostPlatform.libc != "musl"; - - enableParallelBuilding = true; - 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"; - - doCheck = true; - - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - - meta = with lib; { - description = "A modern and easy-to-use crypto library"; - homepage = "https://doc.libsodium.org/"; - license = licenses.isc; - maintainers = with maintainers; [ raskin ]; - pkgConfigModules = [ "libsodium" ]; - platforms = platforms.all; - }; -}) diff --git a/pkgs/by-name/li/libsoup/3.x.nix b/pkgs/by-name/li/libsoup/3.x.nix deleted file mode 100644 index 4d5f30c..0000000 --- a/pkgs/by-name/li/libsoup/3.x.nix +++ /dev/null @@ -1,108 +0,0 @@ -{ 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"; - - src = fetchurl { - url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "sha256-KRxncl827ZDqQ+//JQZLacWi0ZgUiEd8BcSBo7Swxao="; - }; - - depsBuildBuild = [ - pkg-config - ]; - - nativeBuildInputs = [ - meson - ninja - pkg-config - glib - python3 - ] ++ lib.optionals withIntrospection [ - gi-docgen - gobject-introspection - vala - ]; - - buildInputs = [ - sqlite - libpsl - glib.out - brotli - libnghttp2 - ] ++ lib.optionals stdenv.isLinux [ - libsysprof-capture - ]; - - propagatedBuildInputs = [ - glib - ]; - - mesonFlags = [ - "-Dtls_check=false" # glib-networking is a runtime dependency, not a compile-time dependency - "-Dgssapi=disabled" - "-Dntlm=disabled" - # Requires wstest from autobahn-testsuite. - "-Dautobahn=disabled" - # Requires gnutls, not added for closure size. - "-Dpkcs11_tests=disabled" - - (lib.mesonEnable "docs" withIntrospection) - (lib.mesonEnable "introspection" withIntrospection) - (lib.mesonEnable "sysprof" stdenv.isLinux) - (lib.mesonEnable "vapi" withIntrospection) - ]; - - # TODO: For some reason the pkg-config setup hook does not pick this up. - PKG_CONFIG_PATH = "${libnghttp2.dev}/lib/pkgconfig"; - - # HSTS tests fail. - doCheck = false; - separateDebugInfo = true; - - postPatch = '' - patchShebangs libsoup/ - ''; - - postFixup = '' - # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back. - moveToOutput "share/doc" "$devdoc" - ''; - - passthru = { - updateScript = gnome.updateScript { - attrPath = "libsoup_3"; - packageName = pname; - versionPolicy = "odd-unstable"; - }; - }; - - meta = { - description = "HTTP client/server library for GNOME"; - homepage = "https://gitlab.gnome.org/GNOME/libsoup"; - license = lib.licenses.lgpl2Plus; - inherit (glib.meta) maintainers platforms; - }; -} diff --git a/pkgs/by-name/li/libsoup/default.nix b/pkgs/by-name/li/libsoup/default.nix deleted file mode 100644 index e92c59b..0000000 --- a/pkgs/by-name/li/libsoup/default.nix +++ /dev/null @@ -1,104 +0,0 @@ -{ 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" ]; - - src = fetchurl { - url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "sha256-5Ld8Qc/EyMWgNfzcMgx7xs+3XvfFoDQVPfFBP6HZLxM="; - }; - - depsBuildBuild = [ - pkg-config - ]; - - nativeBuildInputs = [ - meson - ninja - pkg-config - glib - ] ++ lib.optionals withIntrospection [ - gobject-introspection - vala - ]; - - buildInputs = [ - sqlite - libpsl - glib.out - brotli - ] ++ lib.optionals stdenv.isLinux [ - libsysprof-capture - ]; - - propagatedBuildInputs = [ - glib - libxml2 - ]; - - mesonFlags = [ - "-Dtls_check=false" # glib-networking is a runtime dependency, not a compile-time dependency - "-Dgssapi=disabled" - "-Dvapi=${if withIntrospection then "enabled" else "disabled"}" - "-Dintrospection=${if withIntrospection then "enabled" else "disabled"}" - "-Dgnome=${lib.boolToString gnomeSupport}" - "-Dntlm=disabled" - ] ++ lib.optionals (!stdenv.isLinux) [ - "-Dsysprof=disabled" - ]; - - env.NIX_CFLAGS_COMPILE = "-lpthread"; - - doCheck = false; # ERROR:../tests/socket-test.c:37:do_unconnected_socket_test: assertion failed (res == SOUP_STATUS_OK): (2 == 200) - separateDebugInfo = true; - - postPatch = '' - # fixes finding vapigen when cross-compiling - # the commit is in 3.0.6 - # https://gitlab.gnome.org/GNOME/libsoup/-/commit/5280e936d0a76f94dbc5d8489cfbdc0a06343f65 - substituteInPlace meson.build \ - --replace "required: vapi_opt)" "required: vapi_opt, native: false)" - - patchShebangs libsoup/ - ''; - - passthru = { - updateScript = gnome.updateScript { - packageName = pname; - versionPolicy = "odd-unstable"; - freeze = true; - }; - }; - - meta = { - description = "HTTP client/server library for GNOME"; - homepage = "https://gitlab.gnome.org/GNOME/libsoup"; - license = lib.licenses.lgpl2Plus; - inherit (glib.meta) maintainers platforms; - pkgConfigModules = [ - "libsoup-2.4" - "libsoup-gnome-2.4" - ]; - }; -} diff --git a/pkgs/by-name/li/libspectre/default.nix b/pkgs/by-name/li/libspectre/default.nix deleted file mode 100644 index 9299e4d..0000000 --- a/pkgs/by-name/li/libspectre/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ fetchurl, lib, stdenv, pkg-config, ghostscript, cairo }: - -stdenv.mkDerivation rec { - pname = "libspectre"; - version = "0.2.12"; - - src = fetchurl { - url = "https://libspectre.freedesktop.org/releases/${pname}-${version}.tar.gz"; - hash = "sha256-VadRfNNXK9JWXfDPRQlEoE1Sc7J567NpqJU5GVfw+WA="; - }; - - nativeBuildInputs = [ pkg-config ]; - - buildInputs = [ - # Need `libgs.so'. - ghostscript - ]; - - doCheck = true; - - checkInputs = [ - cairo - ]; - - meta = { - homepage = "http://libspectre.freedesktop.org/"; - description = "PostScript rendering library"; - - longDescription = '' - libspectre is a small library for rendering Postscript - documents. It provides a convenient easy to use API for - handling and rendering Postscript documents. - ''; - - license = lib.licenses.gpl2Plus; - platforms = lib.platforms.unix; - }; -} diff --git a/pkgs/by-name/li/libssh2/CVE-2023-48795.patch b/pkgs/by-name/li/libssh2/CVE-2023-48795.patch deleted file mode 100644 index c89e4a1..0000000 --- a/pkgs/by-name/li/libssh2/CVE-2023-48795.patch +++ /dev/null @@ -1,459 +0,0 @@ -From d34d9258b8420b19ec3f97b4cc5bf7aa7d98e35a Mon Sep 17 00:00:00 2001 -From: Michael Buckley -Date: Thu, 30 Nov 2023 15:08:02 -0800 -Subject: [PATCH] src: add 'strict KEX' to fix CVE-2023-48795 "Terrapin Attack" - -Refs: -https://terrapin-attack.com/ -https://seclists.org/oss-sec/2023/q4/292 -https://osv.dev/list?ecosystem=&q=CVE-2023-48795 -https://github.com/advisories/GHSA-45x7-px36-x8w8 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-48795 - -Fixes #1290 -Closes #1291 ---- - src/kex.c | 63 +++++++++++++++++++++++------------ - src/libssh2_priv.h | 18 +++++++--- - src/packet.c | 83 +++++++++++++++++++++++++++++++++++++++++++--- - src/packet.h | 2 +- - src/session.c | 3 ++ - src/transport.c | 12 ++++++- - 6 files changed, 149 insertions(+), 32 deletions(-) - -diff --git a/src/kex.c b/src/kex.c -index 8e7b7f0af3..a7b301e157 100644 ---- a/src/kex.c -+++ b/src/kex.c -@@ -3032,6 +3032,13 @@ kex_method_extension_negotiation = { - 0, - }; - -+static const LIBSSH2_KEX_METHOD -+kex_method_strict_client_extension = { -+ "kex-strict-c-v00@openssh.com", -+ NULL, -+ 0, -+}; -+ - static const LIBSSH2_KEX_METHOD *libssh2_kex_methods[] = { - #if LIBSSH2_ED25519 - &kex_method_ssh_curve25519_sha256, -@@ -3050,6 +3057,7 @@ static const LIBSSH2_KEX_METHOD *libssh2_kex_methods[] = { - &kex_method_diffie_helman_group1_sha1, - &kex_method_diffie_helman_group_exchange_sha1, - &kex_method_extension_negotiation, -+ &kex_method_strict_client_extension, - NULL - }; - -@@ -3302,13 +3310,13 @@ static int kexinit(LIBSSH2_SESSION * session) - return 0; - } - --/* kex_agree_instr -+/* _libssh2_kex_agree_instr - * Kex specific variant of strstr() - * Needle must be preceded by BOL or ',', and followed by ',' or EOL - */ --static unsigned char * --kex_agree_instr(unsigned char *haystack, size_t haystack_len, -- const unsigned char *needle, size_t needle_len) -+unsigned char * -+_libssh2_kex_agree_instr(unsigned char *haystack, size_t haystack_len, -+ const unsigned char *needle, size_t needle_len) - { - unsigned char *s; - unsigned char *end_haystack; -@@ -3393,7 +3401,7 @@ static int kex_agree_hostkey(LIBSSH2_SESSION * session, - while(s && *s) { - unsigned char *p = (unsigned char *) strchr((char *) s, ','); - size_t method_len = (p ? (size_t)(p - s) : strlen((char *) s)); -- if(kex_agree_instr(hostkey, hostkey_len, s, method_len)) { -+ if(_libssh2_kex_agree_instr(hostkey, hostkey_len, s, method_len)) { - const LIBSSH2_HOSTKEY_METHOD *method = - (const LIBSSH2_HOSTKEY_METHOD *) - kex_get_method_by_name((char *) s, method_len, -@@ -3427,9 +3435,9 @@ static int kex_agree_hostkey(LIBSSH2_SESSION * session, - } - - while(hostkeyp && (*hostkeyp) && (*hostkeyp)->name) { -- s = kex_agree_instr(hostkey, hostkey_len, -- (unsigned char *) (*hostkeyp)->name, -- strlen((*hostkeyp)->name)); -+ s = _libssh2_kex_agree_instr(hostkey, hostkey_len, -+ (unsigned char *) (*hostkeyp)->name, -+ strlen((*hostkeyp)->name)); - if(s) { - /* So far so good, but does it suit our purposes? (Encrypting vs - Signing) */ -@@ -3463,6 +3471,12 @@ static int kex_agree_kex_hostkey(LIBSSH2_SESSION * session, unsigned char *kex, - { - const LIBSSH2_KEX_METHOD **kexp = libssh2_kex_methods; - unsigned char *s; -+ const unsigned char *strict = -+ (unsigned char *)"kex-strict-s-v00@openssh.com"; -+ -+ if(_libssh2_kex_agree_instr(kex, kex_len, strict, 28)) { -+ session->kex_strict = 1; -+ } - - if(session->kex_prefs) { - s = (unsigned char *) session->kex_prefs; -@@ -3470,7 +3484,7 @@ static int kex_agree_kex_hostkey(LIBSSH2_SESSION * session, unsigned char *kex, - while(s && *s) { - unsigned char *q, *p = (unsigned char *) strchr((char *) s, ','); - size_t method_len = (p ? (size_t)(p - s) : strlen((char *) s)); -- q = kex_agree_instr(kex, kex_len, s, method_len); -+ q = _libssh2_kex_agree_instr(kex, kex_len, s, method_len); - if(q) { - const LIBSSH2_KEX_METHOD *method = (const LIBSSH2_KEX_METHOD *) - kex_get_method_by_name((char *) s, method_len, -@@ -3504,9 +3518,9 @@ static int kex_agree_kex_hostkey(LIBSSH2_SESSION * session, unsigned char *kex, - } - - while(*kexp && (*kexp)->name) { -- s = kex_agree_instr(kex, kex_len, -- (unsigned char *) (*kexp)->name, -- strlen((*kexp)->name)); -+ s = _libssh2_kex_agree_instr(kex, kex_len, -+ (unsigned char *) (*kexp)->name, -+ strlen((*kexp)->name)); - if(s) { - /* We've agreed on a key exchange method, - * Can we agree on a hostkey that works with this kex? -@@ -3550,7 +3564,7 @@ static int kex_agree_crypt(LIBSSH2_SESSION * session, - unsigned char *p = (unsigned char *) strchr((char *) s, ','); - size_t method_len = (p ? (size_t)(p - s) : strlen((char *) s)); - -- if(kex_agree_instr(crypt, crypt_len, s, method_len)) { -+ if(_libssh2_kex_agree_instr(crypt, crypt_len, s, method_len)) { - const LIBSSH2_CRYPT_METHOD *method = - (const LIBSSH2_CRYPT_METHOD *) - kex_get_method_by_name((char *) s, method_len, -@@ -3572,9 +3586,9 @@ static int kex_agree_crypt(LIBSSH2_SESSION * session, - } - - while(*cryptp && (*cryptp)->name) { -- s = kex_agree_instr(crypt, crypt_len, -- (unsigned char *) (*cryptp)->name, -- strlen((*cryptp)->name)); -+ s = _libssh2_kex_agree_instr(crypt, crypt_len, -+ (unsigned char *) (*cryptp)->name, -+ strlen((*cryptp)->name)); - if(s) { - endpoint->crypt = *cryptp; - return 0; -@@ -3614,7 +3628,7 @@ static int kex_agree_mac(LIBSSH2_SESSION * session, - unsigned char *p = (unsigned char *) strchr((char *) s, ','); - size_t method_len = (p ? (size_t)(p - s) : strlen((char *) s)); - -- if(kex_agree_instr(mac, mac_len, s, method_len)) { -+ if(_libssh2_kex_agree_instr(mac, mac_len, s, method_len)) { - const LIBSSH2_MAC_METHOD *method = (const LIBSSH2_MAC_METHOD *) - kex_get_method_by_name((char *) s, method_len, - (const LIBSSH2_COMMON_METHOD **) -@@ -3635,8 +3649,9 @@ static int kex_agree_mac(LIBSSH2_SESSION * session, - } - - while(*macp && (*macp)->name) { -- s = kex_agree_instr(mac, mac_len, (unsigned char *) (*macp)->name, -- strlen((*macp)->name)); -+ s = _libssh2_kex_agree_instr(mac, mac_len, -+ (unsigned char *) (*macp)->name, -+ strlen((*macp)->name)); - if(s) { - endpoint->mac = *macp; - return 0; -@@ -3667,7 +3682,7 @@ static int kex_agree_comp(LIBSSH2_SESSION *session, - unsigned char *p = (unsigned char *) strchr((char *) s, ','); - size_t method_len = (p ? (size_t)(p - s) : strlen((char *) s)); - -- if(kex_agree_instr(comp, comp_len, s, method_len)) { -+ if(_libssh2_kex_agree_instr(comp, comp_len, s, method_len)) { - const LIBSSH2_COMP_METHOD *method = - (const LIBSSH2_COMP_METHOD *) - kex_get_method_by_name((char *) s, method_len, -@@ -3689,8 +3704,9 @@ static int kex_agree_comp(LIBSSH2_SESSION *session, - } - - while(*compp && (*compp)->name) { -- s = kex_agree_instr(comp, comp_len, (unsigned char *) (*compp)->name, -- strlen((*compp)->name)); -+ s = _libssh2_kex_agree_instr(comp, comp_len, -+ (unsigned char *) (*compp)->name, -+ strlen((*compp)->name)); - if(s) { - endpoint->comp = *compp; - return 0; -@@ -3871,6 +3887,7 @@ _libssh2_kex_exchange(LIBSSH2_SESSION * session, int reexchange, - session->local.kexinit = key_state->oldlocal; - session->local.kexinit_len = key_state->oldlocal_len; - key_state->state = libssh2_NB_state_idle; -+ session->state &= ~LIBSSH2_STATE_INITIAL_KEX; - session->state &= ~LIBSSH2_STATE_KEX_ACTIVE; - session->state &= ~LIBSSH2_STATE_EXCHANGING_KEYS; - return -1; -@@ -3896,6 +3913,7 @@ _libssh2_kex_exchange(LIBSSH2_SESSION * session, int reexchange, - session->local.kexinit = key_state->oldlocal; - session->local.kexinit_len = key_state->oldlocal_len; - key_state->state = libssh2_NB_state_idle; -+ session->state &= ~LIBSSH2_STATE_INITIAL_KEX; - session->state &= ~LIBSSH2_STATE_KEX_ACTIVE; - session->state &= ~LIBSSH2_STATE_EXCHANGING_KEYS; - return -1; -@@ -3944,6 +3962,7 @@ _libssh2_kex_exchange(LIBSSH2_SESSION * session, int reexchange, - session->remote.kexinit = NULL; - } - -+ session->state &= ~LIBSSH2_STATE_INITIAL_KEX; - session->state &= ~LIBSSH2_STATE_KEX_ACTIVE; - session->state &= ~LIBSSH2_STATE_EXCHANGING_KEYS; - -diff --git a/src/libssh2_priv.h b/src/libssh2_priv.h -index 7660366954..18d9ab2130 100644 ---- a/src/libssh2_priv.h -+++ b/src/libssh2_priv.h -@@ -736,6 +736,9 @@ struct _LIBSSH2_SESSION - /* key signing algorithm preferences -- NULL yields server order */ - char *sign_algo_prefs; - -+ /* Whether to use the OpenSSH Strict KEX extension */ -+ int kex_strict; -+ - /* (remote as source of data -- packet_read ) */ - libssh2_endpoint_data remote; - -@@ -908,6 +911,7 @@ struct _LIBSSH2_SESSION - int fullpacket_macstate; - size_t fullpacket_payload_len; - int fullpacket_packet_type; -+ uint32_t fullpacket_required_type; - - /* State variables used in libssh2_sftp_init() */ - libssh2_nonblocking_states sftpInit_state; -@@ -948,10 +952,11 @@ struct _LIBSSH2_SESSION - }; - - /* session.state bits */ --#define LIBSSH2_STATE_EXCHANGING_KEYS 0x00000001 --#define LIBSSH2_STATE_NEWKEYS 0x00000002 --#define LIBSSH2_STATE_AUTHENTICATED 0x00000004 --#define LIBSSH2_STATE_KEX_ACTIVE 0x00000008 -+#define LIBSSH2_STATE_INITIAL_KEX 0x00000001 -+#define LIBSSH2_STATE_EXCHANGING_KEYS 0x00000002 -+#define LIBSSH2_STATE_NEWKEYS 0x00000004 -+#define LIBSSH2_STATE_AUTHENTICATED 0x00000008 -+#define LIBSSH2_STATE_KEX_ACTIVE 0x00000010 - - /* session.flag helpers */ - #ifdef MSG_NOSIGNAL -@@ -1182,6 +1187,11 @@ ssize_t _libssh2_send(libssh2_socket_t socket, const void *buffer, - int _libssh2_kex_exchange(LIBSSH2_SESSION * session, int reexchange, - key_exchange_state_t * state); - -+unsigned char *_libssh2_kex_agree_instr(unsigned char *haystack, -+ size_t haystack_len, -+ const unsigned char *needle, -+ size_t needle_len); -+ - /* Let crypt.c/hostkey.c expose their method structs */ - const LIBSSH2_CRYPT_METHOD **libssh2_crypt_methods(void); - const LIBSSH2_HOSTKEY_METHOD **libssh2_hostkey_methods(void); -diff --git a/src/packet.c b/src/packet.c -index eccb8c56a8..6da14e9fa1 100644 ---- a/src/packet.c -+++ b/src/packet.c -@@ -624,14 +624,13 @@ packet_authagent_open(LIBSSH2_SESSION * session, - * layer when it has received a packet. - * - * The input pointer 'data' is pointing to allocated data that this function -- * is asked to deal with so on failure OR success, it must be freed fine. -- * The only exception is when the return code is LIBSSH2_ERROR_EAGAIN. -+ * will be freed unless return the code is LIBSSH2_ERROR_EAGAIN. - * - * This function will always be called with 'datalen' greater than zero. - */ - int - _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data, -- size_t datalen, int macstate) -+ size_t datalen, int macstate, uint32_t seq) - { - int rc = 0; - unsigned char *message = NULL; -@@ -676,6 +675,70 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data, - break; - } - -+ if(session->state & LIBSSH2_STATE_INITIAL_KEX) { -+ if(msg == SSH_MSG_KEXINIT) { -+ if(!session->kex_strict) { -+ if(datalen < 17) { -+ LIBSSH2_FREE(session, data); -+ session->packAdd_state = libssh2_NB_state_idle; -+ return _libssh2_error(session, -+ LIBSSH2_ERROR_BUFFER_TOO_SMALL, -+ "Data too short extracting kex"); -+ } -+ else { -+ const unsigned char *strict = -+ (unsigned char *)"kex-strict-s-v00@openssh.com"; -+ struct string_buf buf; -+ unsigned char *algs = NULL; -+ size_t algs_len = 0; -+ -+ buf.data = (unsigned char *)data; -+ buf.dataptr = buf.data; -+ buf.len = datalen; -+ buf.dataptr += 17; /* advance past type and cookie */ -+ -+ if(_libssh2_get_string(&buf, &algs, &algs_len)) { -+ LIBSSH2_FREE(session, data); -+ session->packAdd_state = libssh2_NB_state_idle; -+ return _libssh2_error(session, -+ LIBSSH2_ERROR_BUFFER_TOO_SMALL, -+ "Algs too short"); -+ } -+ -+ if(algs_len == 0 || -+ _libssh2_kex_agree_instr(algs, algs_len, strict, 28)) { -+ session->kex_strict = 1; -+ } -+ } -+ } -+ -+ if(session->kex_strict && seq) { -+ LIBSSH2_FREE(session, data); -+ session->socket_state = LIBSSH2_SOCKET_DISCONNECTED; -+ session->packAdd_state = libssh2_NB_state_idle; -+ libssh2_session_disconnect(session, "strict KEX violation: " -+ "KEXINIT was not the first packet"); -+ -+ return _libssh2_error(session, LIBSSH2_ERROR_SOCKET_DISCONNECT, -+ "strict KEX violation: " -+ "KEXINIT was not the first packet"); -+ } -+ } -+ -+ if(session->kex_strict && session->fullpacket_required_type && -+ session->fullpacket_required_type != msg) { -+ LIBSSH2_FREE(session, data); -+ session->socket_state = LIBSSH2_SOCKET_DISCONNECTED; -+ session->packAdd_state = libssh2_NB_state_idle; -+ libssh2_session_disconnect(session, "strict KEX violation: " -+ "unexpected packet type"); -+ -+ return _libssh2_error(session, LIBSSH2_ERROR_SOCKET_DISCONNECT, -+ "strict KEX violation: " -+ "unexpected packet type"); -+ } -+ } -+ - if(session->packAdd_state == libssh2_NB_state_allocated) { - /* A couple exceptions to the packet adding rule: */ - switch(msg) { -@@ -1364,6 +1427,15 @@ _libssh2_packet_ask(LIBSSH2_SESSION * session, unsigned char packet_type, - - return 0; - } -+ else if(session->kex_strict && -+ (session->state & LIBSSH2_STATE_INITIAL_KEX)) { -+ libssh2_session_disconnect(session, "strict KEX violation: " -+ "unexpected packet type"); -+ -+ return _libssh2_error(session, LIBSSH2_ERROR_SOCKET_DISCONNECT, -+ "strict KEX violation: " -+ "unexpected packet type"); -+ } - packet = _libssh2_list_next(&packet->node); - } - return -1; -@@ -1425,7 +1497,10 @@ _libssh2_packet_require(LIBSSH2_SESSION * session, unsigned char packet_type, - } - - while(session->socket_state == LIBSSH2_SOCKET_CONNECTED) { -- int ret = _libssh2_transport_read(session); -+ int ret; -+ session->fullpacket_required_type = packet_type; -+ ret = _libssh2_transport_read(session); -+ session->fullpacket_required_type = 0; - if(ret == LIBSSH2_ERROR_EAGAIN) - return ret; - else if(ret < 0) { -diff --git a/src/packet.h b/src/packet.h -index 1d90b8af12..955351e5f6 100644 ---- a/src/packet.h -+++ b/src/packet.h -@@ -72,6 +72,6 @@ int _libssh2_packet_burn(LIBSSH2_SESSION * session, - int _libssh2_packet_write(LIBSSH2_SESSION * session, unsigned char *data, - unsigned long data_len); - int _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data, -- size_t datalen, int macstate); -+ size_t datalen, int macstate, uint32_t seq); - - #endif /* LIBSSH2_PACKET_H */ -diff --git a/src/session.c b/src/session.c -index 35e7929fe7..9d89ade8ec 100644 ---- a/src/session.c -+++ b/src/session.c -@@ -469,6 +469,8 @@ libssh2_session_init_ex(LIBSSH2_ALLOC_FUNC((*my_alloc)), - session->abstract = abstract; - session->api_timeout = 0; /* timeout-free API by default */ - session->api_block_mode = 1; /* blocking API by default */ -+ session->state = LIBSSH2_STATE_INITIAL_KEX; -+ session->fullpacket_required_type = 0; - session->packet_read_timeout = LIBSSH2_DEFAULT_READ_TIMEOUT; - session->flag.quote_paths = 1; /* default behavior is to quote paths - for the scp subsystem */ -@@ -1223,6 +1225,7 @@ libssh2_session_disconnect_ex(LIBSSH2_SESSION *session, int reason, - const char *desc, const char *lang) - { - int rc; -+ session->state &= ~LIBSSH2_STATE_INITIAL_KEX; - session->state &= ~LIBSSH2_STATE_EXCHANGING_KEYS; - BLOCK_ADJUST(rc, session, - session_disconnect(session, reason, desc, lang)); -diff --git a/src/transport.c b/src/transport.c -index 21be9d2b80..a8bb588a4b 100644 ---- a/src/transport.c -+++ b/src/transport.c -@@ -186,6 +186,7 @@ fullpacket(LIBSSH2_SESSION * session, int encrypted /* 1 or 0 */ ) - struct transportpacket *p = &session->packet; - int rc; - int compressed; -+ uint32_t seq = session->remote.seqno; - - if(session->fullpacket_state == libssh2_NB_state_idle) { - session->fullpacket_macstate = LIBSSH2_MAC_CONFIRMED; -@@ -317,7 +318,7 @@ fullpacket(LIBSSH2_SESSION * session, int encrypted /* 1 or 0 */ ) - if(session->fullpacket_state == libssh2_NB_state_created) { - rc = _libssh2_packet_add(session, p->payload, - session->fullpacket_payload_len, -- session->fullpacket_macstate); -+ session->fullpacket_macstate, seq); - if(rc == LIBSSH2_ERROR_EAGAIN) - return rc; - if(rc) { -@@ -328,6 +329,11 @@ fullpacket(LIBSSH2_SESSION * session, int encrypted /* 1 or 0 */ ) - - session->fullpacket_state = libssh2_NB_state_idle; - -+ if(session->kex_strict && -+ session->fullpacket_packet_type == SSH_MSG_NEWKEYS) { -+ session->remote.seqno = 0; -+ } -+ - return session->fullpacket_packet_type; - } - -@@ -1093,6 +1099,10 @@ int _libssh2_transport_send(LIBSSH2_SESSION *session, - - session->local.seqno++; - -+ if(session->kex_strict && data[0] == SSH_MSG_NEWKEYS) { -+ session->local.seqno = 0; -+ } -+ - ret = LIBSSH2_SEND(session, p->outbuf, total_length, - LIBSSH2_SOCKET_SEND_FLAGS(session)); - if(ret < 0) diff --git a/pkgs/by-name/li/libssh2/default.nix b/pkgs/by-name/li/libssh2/default.nix deleted file mode 100644 index f7a51da..0000000 --- a/pkgs/by-name/li/libssh2/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ lib, stdenv, fetchurl, openssl, zlib, windows }: - -stdenv.mkDerivation rec { - pname = "libssh2"; - version = "1.11.0"; - - src = fetchurl { - url = "https://www.libssh2.org/download/libssh2-${version}.tar.gz"; - sha256 = "sha256-NzYWHkHiaTMk3rOMJs/cPv5iCdY0ukJY2xzs/2pa1GE="; - }; - - patches = [ - # fetchpatch cannot be used due to infinite recursion - # https://github.com/libssh2/libssh2/commit/d34d9258b8420b19ec3f97b4cc5bf7aa7d98e35a - ./CVE-2023-48795.patch - ]; - - outputs = [ "out" "dev" "devdoc" ]; - - propagatedBuildInputs = [ openssl ]; # see Libs: in libssh2.pc - 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 ]; - maintainers = with maintainers; [ SuperSandro2000 ]; - }; -} diff --git a/pkgs/by-name/li/libstemmer/default.nix b/pkgs/by-name/li/libstemmer/default.nix deleted file mode 100644 index 3f66ee9..0000000 --- a/pkgs/by-name/li/libstemmer/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, perl, buildPackages }: - -stdenv.mkDerivation rec { - pname = "libstemmer"; - version = "2.2.0"; - - src = fetchFromGitHub { - owner = "snowballstem"; - repo = "snowball"; - rev = "v${version}"; - sha256 = "sha256-qXrypwv/I+5npvGHGsHveijoui0ZnoGYhskCfLkewVE="; - }; - - nativeBuildInputs = [ perl ]; - - prePatch = '' - patchShebangs . - '' + lib.optionalString (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' - substituteInPlace GNUmakefile \ - --replace './snowball' '${lib.getBin buildPackages.libstemmer}/bin/snowball' - ''; - - makeTarget = "libstemmer.a"; - - installPhase = '' - runHook preInstall - install -Dt $out/lib libstemmer.a - install -Dt $out/include include/libstemmer.h - install -Dt $out/bin {snowball,stemwords} - runHook postInstall - ''; - - meta = with lib; { - description = "Snowball Stemming Algorithms"; - homepage = "https://snowballstem.org/"; - license = licenses.bsd3; - maintainers = with maintainers; [ fpletz ]; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/li/libtiff/default.nix b/pkgs/by-name/li/libtiff/default.nix deleted file mode 100644 index 10363e7..0000000 --- a/pkgs/by-name/li/libtiff/default.nix +++ /dev/null @@ -1,99 +0,0 @@ -{ lib -, stdenv -, fetchFromGitLab -# , nix-update-script - -, autoreconfHook -, pkg-config -, sphinx - -, lerc -, libdeflate -, libjpeg -, xz -, zlib - - # for passthru.tests -# , libgeotiff -# , python3Packages -# , imagemagick -# , graphicsmagick -# , gdal -# , openimageio -# , freeimage -# , testers -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "libtiff"; - version = "4.6.0"; - - src = fetchFromGitLab { - owner = "libtiff"; - repo = "libtiff"; - rev = "v${finalAttrs.version}"; - hash = "sha256-qCg5qjsPPynCHIg0JsPJldwVdcYkI68zYmyNAKUCoyw="; - }; - - patches = [ - # FreeImage needs this patch - ./headers.patch - # libc++abi 11 has an `#include `, this picks up files name - # `version` in the project's include paths - ./rename-version.patch - ]; - - postPatch = '' - mv VERSION VERSION.txt - ''; - - outputs = [ "bin" "dev" "dev_private" "out" "man" "doc" ]; - - postFixup = '' - moveToOutput include/tif_config.h $dev_private - moveToOutput include/tif_dir.h $dev_private - moveToOutput include/tif_hash_set.h $dev_private - moveToOutput include/tiffiop.h $dev_private - ''; - - # If you want to change to a different build system, please make - # sure cross-compilation works first! - nativeBuildInputs = [ autoreconfHook pkg-config sphinx ]; - - buildInputs = [ - lerc - ]; - - # TODO: opengl support (bogus configure detection) - propagatedBuildInputs = [ - libdeflate - libjpeg - xz - zlib - ]; - - enableParallelBuilding = true; - - doCheck = true; - - # passthru = { - # tests = { - # inherit libgeotiff imagemagick graphicsmagick gdal openimageio freeimage; - # inherit (python3Packages) pillow imread; - # pkg-config = testers.hasPkgConfigModules { - # package = finalAttrs.finalPackage; - # }; - # }; - # updateScript = nix-update-script { }; - # }; - - meta = with lib; { - description = "Library and utilities for working with the TIFF image file format"; - homepage = "https://libtiff.gitlab.io/libtiff"; - changelog = "https://libtiff.gitlab.io/libtiff/releases/v${finalAttrs.version}.html"; - license = licenses.libtiff; - platforms = platforms.unix ++ platforms.windows; - pkgConfigModules = [ "libtiff-4" ]; - maintainers = []; - }; -}) diff --git a/pkgs/by-name/li/libtiff/headers.patch b/pkgs/by-name/li/libtiff/headers.patch deleted file mode 100644 index 933e06f..0000000 --- a/pkgs/by-name/li/libtiff/headers.patch +++ /dev/null @@ -1,16 +0,0 @@ -export private headers for freeimage ---- i/libtiff/Makefile.am -+++ w/libtiff/Makefile.am -@@ -36,8 +36,12 @@ EXTRA_DIST = \ - tif_win32_versioninfo.rc - - libtiffinclude_HEADERS = \ -+ tif_config.h \ -+ tif_dir.h \ -+ tif_hash_set.h \ - tiff.h \ - tiffio.h \ -+ tiffiop.h \ - tiffvers.h - - if HAVE_CXX diff --git a/pkgs/by-name/li/libtiff/libtiff_t.nix b/pkgs/by-name/li/libtiff/libtiff_t.nix deleted file mode 100644 index 37e48f6..0000000 --- a/pkgs/by-name/li/libtiff/libtiff_t.nix +++ /dev/null @@ -1,73 +0,0 @@ -{ lib -, stdenv -, fetchzip - -, autoreconfHook -, pkg-config -, sphinx - -, libdeflate -, libjpeg -, xz -, zlib -}: - -# This is a fork created by the hylafaxplus developer to -# restore tools dropped by original libtiff in version 4.6.0. - -stdenv.mkDerivation (finalAttrs: { - pname = "libtiff_t"; - version = "4.6.0t"; - - src = fetchzip { - url = "http://www.libtiff.org/downloads/tiff-${finalAttrs.version}.tar.xz"; - hash = "sha256-9ov4w2jw4LtKr82/4jWMAGhc5GEdviJ7bT+y0+U/Ac4="; - }; - - patches = [ - # FreeImage needs this patch - ./headers.patch - # libc++abi 11 has an `#include `, this picks up files name - # `version` in the project's include paths - ./rename-version.patch - ]; - - postPatch = '' - mv VERSION VERSION.txt - ''; - - outputs = [ "bin" "dev" "dev_private" "out" "man" "doc" ]; - - postFixup = '' - moveToOutput include/tif_config.h $dev_private - moveToOutput include/tif_dir.h $dev_private - moveToOutput include/tif_hash_set.h $dev_private - moveToOutput include/tiffiop.h $dev_private - ''; - - # If you want to change to a different build system, please make - # sure cross-compilation works first! - nativeBuildInputs = [ autoreconfHook pkg-config sphinx ]; - - # TODO: opengl support (bogus configure detection) - propagatedBuildInputs = [ - libdeflate - libjpeg - xz - zlib - ]; - - enableParallelBuilding = true; - - doCheck = true; - - meta = with lib; { - description = "Library and utilities for working with the TIFF image file format (fork containing tools dropped in original libtiff version)"; - homepage = "http://www.libtiff.org"; - changelog = "http://www.libtiff.org/releases/v${finalAttrs.version}.html"; - maintainers = with maintainers; [ yarny ]; - license = licenses.libtiff; - platforms = platforms.unix ++ platforms.windows; - pkgConfigModules = [ "libtiff-4" ]; - }; -}) diff --git a/pkgs/by-name/li/libtiff/packages.nix b/pkgs/by-name/li/libtiff/packages.nix deleted file mode 100644 index 1ae1e5d..0000000 --- a/pkgs/by-name/li/libtiff/packages.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - inherit - ({ - libtiff = callPackage ./. { }; - libtiff_t = callPackage ./libtiff_t.nix { }; - }) - libtiff - libtiff_t - ; -} diff --git a/pkgs/by-name/li/libtiff/rename-version.patch b/pkgs/by-name/li/libtiff/rename-version.patch deleted file mode 100644 index 04fa1bf..0000000 --- a/pkgs/by-name/li/libtiff/rename-version.patch +++ /dev/null @@ -1,21 +0,0 @@ -fix case-insensitive build ---- a/Makefile.am -+++ b/Makefile.am -@@ -34,7 +34,7 @@ docfiles = \ - README.md \ - RELEASE-DATE \ - TODO \ -- VERSION -+ VERSION.txt - - EXTRA_DIST = \ - placeholder.h \ -@@ -68,7 +68,7 @@ NEW_LIBTIFF_RELEASE_DATE=$(shell date +"%Y%m%d") - release: - @(echo --- Setting release date to $(NEW_LIBTIFF_RELEASE_DATE) and release version to $(LIBTIFF_VERSION) ---) - (rm -f $(top_srcdir)/RELEASE-DATE && echo $(NEW_LIBTIFF_RELEASE_DATE) > $(top_srcdir)/RELEASE-DATE) -- (rm -f $(top_srcdir)/VERSION && echo $(LIBTIFF_VERSION) > $(top_srcdir)/VERSION) -+ (rm -f $(top_srcdir)/VERSION && echo $(LIBTIFF_VERSION) > $(top_srcdir)/VERSION.txt) - (rm -f $(top_builddir)/libtiff/tiffvers.h && sed 's,LIBTIFF_VERSION,$(LIBTIFF_VERSION),;s,LIBTIFF_RELEASE_DATE,$(NEW_LIBTIFF_RELEASE_DATE),;s,LIBTIFF_MAJOR_VERSION,$(LIBTIFF_MAJOR_VERSION),;s,LIBTIFF_MINOR_VERSION,$(LIBTIFF_MINOR_VERSION),;s,LIBTIFF_MICRO_VERSION,$(LIBTIFF_MICRO_VERSION),' $(top_srcdir)/libtiff/tiffvers.h.in > $(top_builddir)/libtiff/tiffvers.h && sed -i 's,@,,g' $(top_builddir)/libtiff/tiffvers.h) - - pkgconfigdir = $(libdir)/pkgconfig diff --git a/pkgs/by-name/li/libtool/default.nix b/pkgs/by-name/li/libtool/default.nix deleted file mode 100644 index 6970d2a..0000000 --- a/pkgs/by-name/li/libtool/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{lib, stdenv, fetchurl, m4, perl}: - -stdenv.mkDerivation rec { - pname = "libtool"; - version = "1.5.26"; - - src = fetchurl { - url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz"; - sha256 = "029ggq5kri1gjn6nfqmgw4w920gyfzscjjxbsxxidal5zqsawd8w"; - }; - - nativeBuildInputs = [m4]; - buildInputs = [perl]; - - # Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the - # "fixed" path in generated files! - dontPatchShebangs = true; - dontFixLibtool = true; - - meta = { - description = "Generic library support script"; - - longDescription = '' - GNU libtool is a generic library support script. Libtool hides - the complexity of using shared libraries behind a consistent, - portable interface. - - To use libtool, add the new generic library building commands to - your Makefile, Makefile.in, or Makefile.am. See the - documentation for details. - ''; - - homepage = "https://www.gnu.org/software/libtool/"; - - license = lib.licenses.gpl2Plus; - platforms = lib.platforms.unix; - - mainProgram = "libtool"; - }; -} diff --git a/pkgs/by-name/li/libtool/libtool2.nix b/pkgs/by-name/li/libtool/libtool2.nix deleted file mode 100644 index 50c064c..0000000 --- a/pkgs/by-name/li/libtool/libtool2.nix +++ /dev/null @@ -1,73 +0,0 @@ -{ lib, stdenv, fetchurl, fetchpatch, m4 -, runtimeShell -, file -}: - -# 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. - -stdenv.mkDerivation rec { - pname = "libtool"; - version = "2.4.7"; - - src = fetchurl { - url = "mirror://gnu/libtool/${pname}-${version}.tar.gz"; - sha256 = "sha256-BOlsJATqcMWQxUbrpCAqThJyLGQAFsErmy8c49SB6ag="; - }; - - 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 - ''; - - 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 ]; - - # Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the - # "fixed" path in generated files! - dontPatchShebangs = true; - dontFixLibtool = true; - - # XXX: The GNU ld wrapper does all sorts of nasty things wrt. RPATH, which - # leads to the failure of a number of tests. - doCheck = false; - doInstallCheck = false; - - enableParallelBuilding = true; - - meta = with lib; { - description = "GNU Libtool, a generic library support script"; - longDescription = '' - GNU libtool is a generic library support script. Libtool hides - the complexity of using shared libraries behind a consistent, - portable interface. - - To use libtool, add the new generic library building commands to - your Makefile, Makefile.in, or Makefile.am. See the - documentation for details. - ''; - homepage = "https://www.gnu.org/software/libtool/"; - license = licenses.gpl2Plus; - maintainers = [ ]; - platforms = platforms.unix; - mainProgram = "libtool"; - }; -} diff --git a/pkgs/by-name/li/libtool/packages.nix b/pkgs/by-name/li/libtool/packages.nix deleted file mode 100644 index 4e0206c..0000000 --- a/pkgs/by-name/li/libtool/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index 642c39e..0000000 --- a/pkgs/by-name/li/libuchardet/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, stdenv, fetchurl, cmake }: - -stdenv.mkDerivation rec { - pname = "uchardet"; - version = "0.0.8"; - - outputs = [ "bin" "out" "man" "dev" ]; - - src = fetchurl { - url = "https://www.freedesktop.org/software/${pname}/releases/${pname}-${version}.tar.xz"; - sha256 = "sha256-6Xpgz8AKHBR6Z0sJe7FCKr2fp4otnOPz/cwueKNKxfA="; - }; - - nativeBuildInputs = [ cmake ]; - - doCheck = !stdenv.isi686; # tests fail on i686 - - meta = with lib; { - description = "Mozilla's Universal Charset Detector C/C++ API"; - mainProgram = "uchardet"; - homepage = "https://www.freedesktop.org/wiki/Software/uchardet/"; - license = licenses.mpl11; - maintainers = with maintainers; [ ]; - platforms = with platforms; unix; - }; -} diff --git a/pkgs/by-name/li/libunistring/default.nix b/pkgs/by-name/li/libunistring/default.nix deleted file mode 100644 index 51eb555..0000000 --- a/pkgs/by-name/li/libunistring/default.nix +++ /dev/null @@ -1,74 +0,0 @@ -{ fetchurl, lib, stdenv, libiconv }: - -# 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. - -stdenv.mkDerivation rec { - pname = "libunistring"; - version = "1.1"; - - src = fetchurl { - url = "mirror://gnu/libunistring/${pname}-${version}.tar.gz"; - sha256 = "sha256-oiUr7uyDCsREufaNazitiD2xmRnbNbUiIs+CfDhb22o="; - }; - - outputs = [ "out" "dev" "info" "doc" ]; - - strictDeps = true; - propagatedBuildInputs = lib.optional (!stdenv.isLinux) 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: - - ./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 - ====================================== - - ./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; - - meta = { - homepage = "https://www.gnu.org/software/libunistring/"; - - description = "Unicode string library"; - - longDescription = '' - This library provides functions for manipulating Unicode strings - and for manipulating C strings according to the Unicode - standard. - - GNU libunistring is for you if your application involves - non-trivial text processing, such as upper/lower case - conversions, line breaking, operations on words, or more - advanced analysis of text. Text provided by the user can, in - general, contain characters of all kinds of scripts. The text - processing functions provided by this library handle all scripts - and all languages. - - libunistring is for you if your application already uses the ISO - C / POSIX , functions and the text it - operates on is provided by the user and can be in any language. - - libunistring is also for you if your application uses Unicode - strings as internal in-memory representation. - ''; - - license = lib.licenses.lgpl3Plus; - - maintainers = [ ]; - platforms = lib.platforms.all; - }; -} diff --git a/pkgs/by-name/li/libunwind/default.nix b/pkgs/by-name/li/libunwind/default.nix deleted file mode 100644 index 5144abc..0000000 --- a/pkgs/by-name/li/libunwind/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, fetchpatch, autoreconfHook, xz, buildPackages }: - -stdenv.mkDerivation rec { - pname = "libunwind"; - version = "1.8.1"; - - src = fetchFromGitHub { - owner = "libunwind"; - repo = "libunwind"; - rev = "v${version}"; - 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" - ''; - - 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" - ]; - - propagatedBuildInputs = [ xz ]; - - postInstall = '' - find $out -name \*.la | while read file; do - sed -i 's,-llzma,${xz.out}/lib/liblzma.la,' $file - done - ''; - - doCheck = false; # fails - - meta = with lib; { - homepage = "https://www.nongnu.org/libunwind"; - 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" ]; - license = licenses.mit; - }; -} diff --git a/pkgs/by-name/li/libunwind/packages.nix b/pkgs/by-name/li/libunwind/packages.nix deleted file mode 100644 index 2f30259..0000000 --- a/pkgs/by-name/li/libunwind/packages.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - libunwind = - 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 deleted file mode 100644 index 5c79ba1..0000000 --- a/pkgs/by-name/li/libuv/default.nix +++ /dev/null @@ -1,128 +0,0 @@ -{ stdenv -, lib -, fetchFromGitHub -, autoconf -, automake -, libtool -, pkg-config -, pkgsStatic - -# for passthru.tests -# , bind -# , cmake -# , knot-resolver -# , lispPackages -# , luajitPackages -# , mosquitto -# , neovim -# , nodejs -# , ocamlPackages -# , python3 -# , testers -}: - -stdenv.mkDerivation (finalAttrs: { - version = "1.48.0"; - pname = "libuv"; - - src = fetchFromGitHub { - owner = "libuv"; - repo = "libuv"; - rev = "v${finalAttrs.version}"; - hash = "sha256-U68BmIQNpmIy3prS7LkYl+wvDJQNikoeFiKh50yQFoA="; - }; - - 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 - - # 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 ]; - - preConfigure = '' - LIBTOOLIZE=libtoolize ./autogen.sh - ''; - - enableParallelBuilding = true; - - # separateDebugInfo breaks static build - # https://github.com/NixOS/nixpkgs/issues/219466 - separateDebugInfo = !stdenv.hostPlatform.isStatic; - - doCheck = - # routinely hangs on powerpc64le - !stdenv.hostPlatform.isPower64; - - # Some of the tests use localhost networking. - __darwinAllowLocalNetworking = true; - - # passthru.tests = { - # inherit bind cmake knot-resolver mosquitto neovim nodejs; - # inherit (lispPackages) cl-libuv; - # luajit-libluv = luajitPackages.libluv; - # luajit-luv = luajitPackages.luv; - # ocaml-luv = ocamlPackages.luv; - # python-pyuv = python3.pkgs.pyuv; - # python-uvloop = python3.pkgs.uvloop; - # static = pkgsStatic.libuv; - # pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - # }; - - 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"; - pkgConfigModules = [ "libuv" ]; - maintainers = with maintainers; [ ]; - 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 deleted file mode 100644 index 4db7a03..0000000 --- a/pkgs/by-name/li/libuv/packages.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index d161f2b..0000000 --- a/pkgs/by-name/li/libverto/default.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, autoreconfHook -, glib -, libev -, libevent -, pkg-config -, glibSupport ? true -, libevSupport ? true -, libeventSupport ? true -}: - -let - inherit (lib) optional; -in -stdenv.mkDerivation (finalAttrs: { - pname = "libverto"; - version = "0.3.2"; - - src = fetchFromGitHub { - owner = "latchset"; - repo = "libverto"; - rev = finalAttrs.version; - hash = "sha256-csoJ0WdKyrza8kBSMKoaItKvcbijI6Wl8nWCbywPScQ="; - }; - - nativeBuildInputs = [ - autoreconfHook - pkg-config - ]; - - buildInputs = - optional glibSupport glib - ++ optional libevSupport libev - ++ optional libeventSupport libevent; - - meta = with lib; { - homepage = "https://github.com/latchset/libverto"; - description = "Asynchronous event loop abstraction library"; - longDescription = '' - Libverto exists to solve an important problem: many applications and - libraries are unable to write asynchronous code because they are unable to - pick an event loop. This is particularly true of libraries who want to be - useful to many applications who use loops that do not integrate with one - another or which use home-grown loops. libverto provides a loop-neutral - async api which allows the library to expose asynchronous interfaces and - offload the choice of the main loop to the application. - ''; - license = licenses.mit; - maintainers = with maintainers; [ AndersonTorres ]; - platforms = platforms.unix; - }; -}) diff --git a/pkgs/by-name/li/libwebp/default.nix b/pkgs/by-name/li/libwebp/default.nix deleted file mode 100644 index 2605dab..0000000 --- a/pkgs/by-name/li/libwebp/default.nix +++ /dev/null @@ -1,77 +0,0 @@ -{ 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 -}: - -stdenv.mkDerivation rec { - pname = "libwebp"; - version = "1.3.2"; - - src = fetchFromGitHub { - owner = "webmproject"; - repo = pname; - rev = "v${version}"; - hash = "sha256-UYO2Fmm8nzQR8VBC26wEwWd3qZTD+6MHKcmKBoNcpEE="; - }; - - configureFlags = [ - (lib.enableFeature threadingSupport "threading") - (lib.enableFeature openglSupport "gl") - (lib.enableFeature pngSupport "png") - (lib.enableFeature jpegSupport "jpeg") - (lib.enableFeature tiffSupport "tiff") - (lib.enableFeature gifSupport "gif") - (lib.enableFeature alignedSupport "aligned") - (lib.enableFeature swap16bitcspSupport "swap-16bit-csp") - (lib.enableFeature experimentalSupport "experimental") - (lib.enableFeature libwebpmuxSupport "libwebpmux") - (lib.enableFeature libwebpdemuxSupport "libwebpdemux") - (lib.enableFeature libwebpdecoderSupport "libwebpdecoder") - ]; - - nativeBuildInputs = [ autoreconfHook libtool ]; - buildInputs = [ ] - ++ lib.optionals openglSupport [ freeglut libGL libGLU ] - ++ lib.optionals pngSupport [ libpng ] - ++ lib.optionals jpegSupport [ libjpeg ] - ++ lib.optionals tiffSupport [ libtiff ] - ++ lib.optionals gifSupport [ giflib ]; - - enableParallelBuilding = true; - - passthru.tests = { - inherit freeimage gd graphicsmagick imagemagick imlib2 libjxl opencv vips; - inherit (python3.pkgs) pillow imread; - haskell-webp = haskellPackages.webp; - }; - - meta = with lib; { - description = "Tools and library for the WebP image format"; - homepage = "https://developers.google.com/speed/webp/"; - license = licenses.bsd3; - platforms = platforms.all; - maintainers = with maintainers; [ ajs124 ]; - }; -} diff --git a/pkgs/by-name/li/libxcrypt/check_passthru_matches.py b/pkgs/by-name/li/libxcrypt/check_passthru_matches.py deleted file mode 100644 index ebe728e..0000000 --- a/pkgs/by-name/li/libxcrypt/check_passthru_matches.py +++ /dev/null @@ -1,70 +0,0 @@ -import tarfile -import sys - - -def process_columns(line: list[str]) -> tuple[str, list[str]]: - match line: - case [name, h_prefix, nrbytes, flags]: - return (h_prefix, flags.lower().split(",")) - case other: - raise Exception("Unsupported hashes.conf line format", other) - - -def find_tar_file(tar: tarfile.TarFile, requested_name: str): - """Attempts to find a single file with given name in tarball.""" - all_names = tar.getnames() - - if requested_name in all_names: - return requested_name - - requested_suffix = f"/{requested_name}" - candidate_names = [name for name in all_names if name.endswith(requested_suffix)] - match candidate_names: - case [real_name]: - return real_name - case other: - raise KeyError( - f"Could not locate a single {requested_name} in the contents of the tarball." - ) - - -hashes_path = "lib/hashes.conf" - - -def main() -> None: - match sys.argv: - case [_name, src, enable_hashes, "--", *enabled_crypt_scheme_ids]: - pass - case other: - raise Exception( - "Incorrect number of arguments. Usage: check_passthru_matches.py -- " - ) - - with tarfile.open(src, "r") as tar: - real_hashes_path = find_tar_file(tar, hashes_path) - config = tar.extractfile(real_hashes_path).read().decode("utf-8") - - formats = [ - process_columns(columns) - for line in config.splitlines() - if not line.startswith("#") and len(columns := line.split()) > 0 - ] - expected_supported_formats = set( - prefix - for (prefix, flags) in formats - if enable_hashes in flags or enable_hashes == "all" - ) - passthru_supported_schemes = set( - f"${scheme}$" for scheme in enabled_crypt_scheme_ids - ) - - assert ( - len(expected_supported_formats - passthru_supported_schemes) == 0 - ), f"libxcrypt package enables the following crypt schemes that are not listed in passthru.enabledCryptSchemeIds: {expected_supported_formats - passthru_supported_schemes}" - assert ( - len(passthru_supported_schemes - expected_supported_formats) == 0 - ), f"libxcrypt package lists the following crypt schemes in passthru.enabledCryptSchemeIds that are not supported: {passthru_supported_schemes - expected_supported_formats}" - - -if __name__ == "__main__": - main() diff --git a/pkgs/by-name/li/libxcrypt/default.nix b/pkgs/by-name/li/libxcrypt/default.nix deleted file mode 100644 index b2093dc..0000000 --- a/pkgs/by-name/li/libxcrypt/default.nix +++ /dev/null @@ -1,71 +0,0 @@ -{ 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: { - pname = "libxcrypt"; - version = "4.4.36"; - - src = fetchurl { - url = "https://github.com/besser82/libxcrypt/releases/download/v${finalAttrs.version}/libxcrypt-${finalAttrs.version}.tar.xz"; - hash = "sha256-5eH0yu4KAd4q7ibjE4gH1tPKK45nKHlm0f79ZeH9iUM="; - }; - - outputs = [ - "out" - "man" - ]; - - configureFlags = [ - "--enable-hashes=${enableHashes}" - "--enable-obsolete-api=glibc" - "--disable-failure-tokens" - # required for musl, android, march=native - "--disable-werror" - ]; - - # fixes: can't build x86_64-w64-mingw32 shared library unless -no-undefined is specified - makeFlags = lib.optionals stdenv.hostPlatform.isWindows [ "LDFLAGS=-no-undefined"] ; - - nativeBuildInputs = [ - perl - ]; - - enableParallelBuilding = true; - - doCheck = true; - - passthru = { - tests = { - # inherit (nixosTests) login shadow; - - passthruMatches = runCommand "libxcrypt-test-passthru-matches" { } '' - ${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 - ]; - }; - - meta = with lib; { - changelog = "https://github.com/besser82/libxcrypt/blob/v${finalAttrs.version}/NEWS"; - description = "Extended crypt library for descrypt, md5crypt, bcrypt, and others"; - homepage = "https://github.com/besser82/libxcrypt/"; - platforms = platforms.all; - 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 deleted file mode 100644 index 3d3253c..0000000 --- a/pkgs/by-name/li/libxcrypt/packages.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - libxcrypt = callPackage ./. { - fetchurl = stdenv.fetchurlBoot; - perl = buildPackages.perl.override { - enableCrypt = false; - fetchurl = stdenv.fetchurlBoot; - }; - }; - libxcrypt-legacy = libxcrypt.override { enableHashes = "all"; }; -} diff --git a/pkgs/by-name/li/libxml2/default.nix b/pkgs/by-name/li/libxml2/default.nix deleted file mode 100644 index fd71e3e..0000000 --- a/pkgs/by-name/li/libxml2/default.nix +++ /dev/null @@ -1,133 +0,0 @@ -{ 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"; - outputMan = "bin"; - - src = fetchurl { - url = "mirror://gnome/sources/libxml2/${lib.versions.majorMinor version}/libxml2-${version}.tar.xz"; - hash = "sha256-iJxZOogaPbX92WzJMYyH3zTrZI7fxFgnKtRv1gc1P7s="; - }; - - strictDeps = true; - - nativeBuildInputs = [ - pkg-config - 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 - ]; - - propagatedBuildInputs = [ - zlib - findXMLCatalogs - ] ++ lib.optionals stdenv.isDarwin [ - libiconv - ] ++ lib.optionals icuSupport [ - icu - ]; - - configureFlags = [ - "--exec-prefix=${placeholder "dev"}" - (lib.enableFeature enableStatic "static") - (lib.enableFeature enableShared "shared") - (lib.withFeature icuSupport "icu") - (lib.withFeature pythonSupport "python") - (lib.optionalString pythonSupport "PYTHON=${python.pythonOnBuildForHost.interpreter}") - ]; - - installFlags = lib.optionals pythonSupport [ - "pythondir=\"${placeholder "py"}/${python.sitePackages}\"" - "pyexecdir=\"${placeholder "py"}/${python.sitePackages}\"" - ]; - - enableParallelBuilding = true; - - doCheck = - (stdenv.hostPlatform == stdenv.buildPlatform) && - stdenv.hostPlatform.libc != "musl"; - preCheck = lib.optional stdenv.isDarwin '' - export DYLD_LIBRARY_PATH="$PWD/.libs:$DYLD_LIBRARY_PATH" - ''; - - preConfigure = lib.optionalString (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11") '' - MACOSX_DEPLOYMENT_TARGET=10.16 - ''; - - preInstall = lib.optionalString pythonSupport '' - 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" - ''; - - passthru = { - inherit version; - pythonSupport = pythonSupport; - - # TODO: Fix updateScript - # updateScript = gnome.updateScript { - # packageName = pname; - # versionPolicy = "none"; - # }; - tests = { - pkg-config = testers.hasPkgConfigModules { - package = finalAttrs.finalPackage; - }; - }; - }; - - meta = with lib; { - homepage = "https://gitlab.gnome.org/GNOME/libxml2"; - description = "XML parsing library for C"; - license = licenses.mit; - platforms = platforms.all; - 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 deleted file mode 100644 index 396819c..0000000 --- a/pkgs/by-name/li/libxml2/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - libxml2 = callPackage ./. { - python = python3; - }; -} diff --git a/pkgs/by-name/li/libxslt/default.nix b/pkgs/by-name/li/libxslt/default.nix deleted file mode 100644 index acf7878..0000000 --- a/pkgs/by-name/li/libxslt/default.nix +++ /dev/null @@ -1,91 +0,0 @@ -{ lib -, stdenv -, fetchurl -, pkg-config -, autoreconfHook -, libxml2 -, findXMLCatalogs -, gettext -, python -, ncurses -, libxcrypt -, libgcrypt -, cryptoSupport ? false -, pythonSupport ? libxml2.pythonSupport -# , gnome -}: - -stdenv.mkDerivation rec { - pname = "libxslt"; - version = "1.1.39"; - - outputs = [ "bin" "dev" "out" "doc" "devdoc" ] ++ lib.optional pythonSupport "py"; - outputMan = "bin"; - - src = fetchurl { - url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - hash = "sha256-KiCtYhFIM5sHWcTU6WcZNi3uZMmgltu6YlugU4RjSfA="; - }; - - strictDeps = true; - - nativeBuildInputs = [ - pkg-config - autoreconfHook - ]; - - buildInputs = [ - libxml2.dev libxcrypt - ] ++ lib.optionals stdenv.isDarwin [ - gettext - ] ++ lib.optionals pythonSupport [ - libxml2.py - python - ncurses - ] ++ lib.optionals cryptoSupport [ - libgcrypt - ]; - - propagatedBuildInputs = [ - findXMLCatalogs - ]; - - configureFlags = [ - "--without-debug" - "--without-mem-debug" - "--without-debugger" - (lib.withFeature pythonSupport "python") - (lib.optionalString pythonSupport "PYTHON=${python.pythonOnBuildForHost.interpreter}") - ] ++ 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" - ''; - - passthru = { - inherit pythonSupport; - - # updateScript = gnome.updateScript { - # packageName = pname; - # versionPolicy = "none"; - # }; - }; - - meta = with lib; { - homepage = "https://gitlab.gnome.org/GNOME/libxslt"; - description = "A C library and tools to do XSL transformations"; - license = licenses.mit; - platforms = platforms.all; - 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 deleted file mode 100644 index 98cb249..0000000 --- a/pkgs/by-name/li/libxslt/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - libxslt = callPackage ./. { - python = python3; - }; -} diff --git a/pkgs/by-name/li/lilypond/default.nix b/pkgs/by-name/li/lilypond/default.nix deleted file mode 100644 index acb3a54..0000000 --- a/pkgs/by-name/li/lilypond/default.nix +++ /dev/null @@ -1,69 +0,0 @@ -{ 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 { - pname = "lilypond"; - version = "2.24.3"; - - src = fetchurl { - url = "http://lilypond.org/download/sources/v${lib.versions.majorMinor version}/lilypond-${version}.tar.gz"; - sha256 = "sha256-3wBfdu969aTNdKEPjnEVJ4t/p58UAYk3tlwQlJjsRL4="; - }; - - postInstall = '' - for f in "$out/bin/"*; do - # Override default argv[0] setting so LilyPond can find - # its Scheme libraries. - wrapProgram "$f" \ - --set GUILE_AUTO_COMPILE 0 \ - --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". - "--with-urwotf-dir=${ghostscript}/share/ghostscript/fonts" - "--with-texgyre-dir=${gyre-fonts}/share/fonts/truetype/" - ]; - - preConfigure = '' - sed -e "s@mem=mf2pt1@mem=$PWD/mf/mf2pt1@" -i scripts/build/mf2pt1.pl - export HOME=$TMPDIR/home - ''; - - 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 - ]; - - autoreconfPhase = "NOCONFIGURE=1 sh autogen.sh"; - - enableParallelBuilding = true; - - passthru.updateScript = { - command = [ ./update.sh ]; - supportedFeatures = [ "commit" ]; - }; - - meta = with lib; { - description = "Music typesetting system"; - homepage = "http://lilypond.org/"; - license = licenses.gpl3; - maintainers = with maintainers; [ marcweber yurrriq ]; - platforms = platforms.all; - }; - - FONTCONFIG_FILE = lib.optional stdenv.isDarwin (makeFontsConf { - fontDirectories = [ freefont_ttf ]; - }); -} diff --git a/pkgs/by-name/li/lilypond/fonts.nix b/pkgs/by-name/li/lilypond/fonts.nix deleted file mode 100644 index b624498..0000000 --- a/pkgs/by-name/li/lilypond/fonts.nix +++ /dev/null @@ -1,138 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, lilypond }: - -let - - olpFont = { fontName, rev, sha256, version ? rev, ... }: - stdenv.mkDerivation { - inherit version; - pname = "openlilypond-font-${fontName}"; - - src = fetchFromGitHub { - inherit rev sha256; - owner = "OpenLilyPondFonts"; - repo = fontName; - }; - - installPhase = '' - local fontsdir="$out/share/lilypond/${lilypond.version}/fonts" - - install -m755 -d "$fontsdir/otf" - - shopt -s globstar - - for font in {otf,supplementary-fonts,supplementary-files}/**/*.{o,t}tf; do - echo $font - install -Dt "$fontsdir/otf" -m644 "$font" - done - - install -m755 -d "$fontsdir/svg" - for font in {svg,woff}/**.{svg,woff}; do - install -Dt "$fontsdir/svg" -m644 "$font" - done - ''; - - meta = with lib; { - inherit (lilypond.meta) homepage platforms; - description = "${fontName} font for LilyPond"; - license = licenses.ofl; - maintainers = with maintainers; [ yurrriq ]; - }; - }; - -in - -rec { - beethoven = olpFont { - fontName = "beethoven"; - rev = "669f400"; - sha256 = "17wdklg5shmqwnb7b81qavfg52v32wx5yf15c6al0hbvv1nqqj2i"; - }; - bravura = olpFont { - fontName = "bravura"; - rev = "53c7744"; - sha256 = "1p27w1c3bzxlnm6rzq8n7dbfjwbxqjy4r0fhkmk9jbm8awmzw214"; - }; - cadence = olpFont { - fontName = "cadence"; - rev = "1cc0fb7"; - sha256 = "1zxb3m8glh8iwj8mzcgyaxhlq0bji0rwniw702m70h9kpifiim1j"; - }; - gonville = olpFont { - fontName = "gonville"; - rev = "a638bc9"; - sha256 = "15khy9677crgd6bpajn7l1drysgxy49wiym3b248khgpavidwyy9"; - }; - gutenberg1939 = olpFont { - fontName = "gutenberg1939"; - rev = "2316a35"; - sha256 = "1lkhivmrx92z37zfrb5mkhzhwggyaga9cm0wl89r0n2f2kayyc7q"; - }; - haydn = olpFont { - fontName = "haydn"; - rev = "9e7de8b"; - sha256 = "1jmbhb2jm887sdc498l2jilpivq1d8lmmgdb8lp59lv8d9fx105z"; - }; - improviso = olpFont { - fontName = "improviso"; - rev = "0753f5a"; - sha256 = "1clin9c74gjhhira12mwxynxn4b1ixij5bg04mvk828lbr740mfm"; - }; - lilyboulez = olpFont { - fontName = "lilyboulez"; - rev = "e8455fc"; - sha256 = "0mq92x0rbgfb6s7ipgg2zcxika2si30w3ay89rp7m6vwca01649y"; - }; - lilyjazz = olpFont { - fontName = "lilyjazz"; - rev = "8fa7d554"; - sha256 = "1z7px7k2sn7snnj7yfjv0p9axwbn452vn9ww9icmb1249b0d1qry"; - }; - lv-goldenage = olpFont { - fontName = "lv-goldenage"; - rev = "8a92fd3"; - sha256 = "03nbd1vmlaj7wkhsnl2lq09nafv7zj1k518zs966vclzah94qghp"; - }; - paganini = olpFont { - fontName = "paganini"; - rev = "8e4e55a"; - sha256 = "0gw9wr4hfn205j40rpgnfddhzhn9x4pwfinamj5b7607880nvx29"; - }; - profondo = olpFont { - fontName = "profondo"; - rev = "8cfb668"; - sha256 = "0armwbg9y0l935949b7klngws6fq42fi944lws61qvjl61780br8"; - }; - ross = olpFont { - fontName = "ross"; - rev = "aa8127f"; - sha256 = "1w2x3pd1d1z4x0107dpq95v7m547cj4nkkzxgqpmzfqa0074idqd"; - }; - scorlatti = olpFont { - fontName = "scorlatti"; - rev = "1db87da"; - sha256 = "07jam5hwdy6bydrm98cdla6p6rl8lmy8zzsfq46i55l64l3w956h"; - }; - sebastiano = olpFont { - fontName = "sebastiano"; - rev = "44bf262"; - sha256 = "09i8p3p4z6vz69j187cpxvikkgc4pk6gxippahy0k7i7bh0d4qaj"; - }; - - all = [ - beethoven - bravura - cadence - gonville - gutenberg1939 - haydn - improviso - lilyboulez - lilyjazz - lv-goldenage - paganini - profondo - ross - scorlatti - sebastiano - ]; -} diff --git a/pkgs/by-name/li/lilypond/unstable.nix b/pkgs/by-name/li/lilypond/unstable.nix deleted file mode 100644 index f500a79..0000000 --- a/pkgs/by-name/li/lilypond/unstable.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ lib, fetchurl, lilypond }: - -lilypond.overrideAttrs (oldAttrs: rec { - version = "2.25.14"; - src = fetchurl { - url = "https://lilypond.org/download/sources/v${lib.versions.majorMinor version}/lilypond-${version}.tar.gz"; - hash = "sha256-b0qfNjr5jxEJbCYINX2/JhESMOIf9DefRHI47gn5Zio="; - }; - - passthru.updateScript = { - command = [ ./update.sh "unstable" ]; - supportedFeatures = [ "commit" ]; - }; -}) diff --git a/pkgs/by-name/li/lilypond/update.sh b/pkgs/by-name/li/lilypond/update.sh deleted file mode 100755 index e9c3f48..0000000 --- a/pkgs/by-name/li/lilypond/update.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell -I nixpkgs=./. -i bash -p curl gnused nix - -set -euo pipefail - -if [ $# -gt 0 ] && [ "$1" = "unstable" ]; then - ATTR="lilypond-unstable" - FILE="$(dirname "${BASH_SOURCE[@]}")/unstable.nix" - QUERY="VERSION_DEVEL=" -else - ATTR="lilypond" - FILE="$(dirname "${BASH_SOURCE[@]}")/default.nix" - QUERY="VERSION_STABLE=" -fi - -# update version -PREV=$(nix eval --raw -f default.nix $ATTR.version) -NEXT=$(curl -s 'https://gitlab.com/lilypond/lilypond/-/raw/master/VERSION' | grep "$QUERY" | cut -d= -f2) -sed -i "s|$PREV|$NEXT|" "$FILE" -echo "[{\"commitMessage\":\"$ATTR: $PREV -> $NEXT\"}]" - -# update hash -PREV=$(nix eval --raw -f default.nix $ATTR.src.outputHash) -NEXT=$(nix hash to-sri --type sha256 $(nix-prefetch-url --type sha256 $(nix eval --raw -f default.nix $ATTR.src.url))) -sed -i "s|$PREV|$NEXT|" "$FILE" diff --git a/pkgs/by-name/li/lilypond/with-fonts.nix b/pkgs/by-name/li/lilypond/with-fonts.nix deleted file mode 100644 index 2cfd151..0000000 --- a/pkgs/by-name/li/lilypond/with-fonts.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ lib, symlinkJoin, makeWrapper -, lilypond, openlilylib-fonts -}: - -lib.appendToName "with-fonts" (symlinkJoin { - inherit (lilypond) meta name version ; - - paths = [ lilypond ] ++ openlilylib-fonts.all; - - nativeBuildInputs = [ makeWrapper ]; - - postBuild = '' - for p in $out/bin/*; do - wrapProgram "$p" --set LILYPOND_DATADIR "$out/share/lilypond/${lilypond.version}" - done - ''; -}) diff --git a/pkgs/by-name/li/lix/common.nix b/pkgs/by-name/li/lix/common.nix deleted file mode 100644 index d01d895..0000000 --- a/pkgs/by-name/li/lix/common.nix +++ /dev/null @@ -1,284 +0,0 @@ -{ 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 -, -}@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 -, -}: -let - lix-doc = callPackage ./doc { - inherit src; - version = "${version}${suffix}"; - cargoHash = docCargoHash; - }; - self = stdenv.mkDerivation { - pname = "lix"; - - version = "${version}${suffix}"; - VERSION_SUFFIX = suffix; - - inherit src patches; - - outputs = - [ - "out" - "dev" - ] - ++ lib.optionals enableDocumentation [ - "man" - "doc" - ]; - - strictDeps = true; - - nativeBuildInputs = - [ - pkg-config - bison - flex - jq - meson - ninja - cmake - python3 - doxygen - - # Tests - git - mercurial - jq - lsof - ] - ++ lib.optionals (enableDocumentation) [ - (lib.getBin lowdown) - mdbook - mdbook-linkcheck - ] - ++ lib.optionals stdenv.isLinux [ util-linuxMinimal ]; - - buildInputs = - [ - boost - brotli - bzip2 - curl - editline - libsodium - openssl - sqlite - xz - gtest - libarchive - lowdown - rapidcheck - toml11 - lix-doc - ] - ++ lib.optionals stdenv.isDarwin [ Security ] - ++ lib.optionals (stdenv.isx86_64) [ libcpuid ] - ++ lib.optionals withLibseccomp [ libseccomp ] - ++ lib.optionals withAWS [ aws-sdk-cpp ]; - - propagatedBuildInputs = [ - boehmgc - 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.* - ''} - ${lib.optionalString stdenv.hostPlatform.isDarwin '' - for LIB in $out/lib/*.dylib; do - chmod u+w $LIB - install_name_tool -id $LIB $LIB - install_name_tool -delete_rpath ${boost}/lib/ $LIB || true - done - install_name_tool -change ${boost}/lib/libboost_system.dylib $out/lib/libboost_system.dylib $out/lib/libboost_thread.dylib - ''} - ''; - - mesonFlags = - [ - (lib.mesonEnable "gc" true) - (lib.mesonBool "enable-tests" true) - (lib.mesonBool "enable-docs" enableDocumentation) - (lib.mesonBool "enable-embedded-sandbox-shell" (stdenv.isLinux && stdenv.hostPlatform.isStatic)) - (lib.mesonEnable "seccomp-sandboxing" withLibseccomp) - - (lib.mesonOption "store-dir" storeDir) - (lib.mesonOption "state-dir" stateDir) - (lib.mesonOption "sysconfdir" confDir) - ] - ++ lib.optionals stdenv.isLinux [ - (lib.mesonOption "sandbox-shell" "${busybox-sandbox-shell}/bin/busybox") - ]; - - # Needed for Meson to find Boost. - # https://github.com/NixOS/nixpkgs/issues/86131. - env = { - BOOST_INCLUDEDIR = "${lib.getDev boost}/include"; - BOOST_LIBRARYDIR = "${lib.getLib boost}/lib"; - }; - - postInstall = - '' - mkdir -p $doc/nix-support - echo "doc manual $doc/share/doc/nix/manual" >> $doc/nix-support/hydra-build-products - '' - + lib.optionalString stdenv.hostPlatform.isStatic '' - mkdir -p $out/nix-support - echo "file binary-dist $out/bin/nix" >> $out/nix-support/hydra-build-products - '' - + lib.optionalString stdenv.isDarwin '' - for lib in libnixutil.dylib libnixexpr.dylib; do - install_name_tool \ - -change "${lib.getLib boost}/lib/libboost_context.dylib" \ - "$out/lib/libboost_context.dylib" \ - "$out/lib/$lib" - done - ''; - - doCheck = true; - mesonCheckFlags = [ "--suite=check" ]; - checkInputs = [ - gtest - rapidcheck - ]; - - doInstallCheck = true; - mesonInstallCheckFlags = [ "--suite=installcheck" ]; - - preInstallCheck = lib.optionalString stdenv.hostPlatform.isDarwin '' - # socket path becomes too long otherwise - 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. - export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES - ''; - - installCheckPhase = '' - runHook preInstallCheck - flagsArray=($mesonInstallCheckFlags "''${mesonInstallCheckFlagsArray[@]}") - meson test --no-rebuild "''${flagsArray[@]}" - runHook postInstallCheck - ''; - # strictoverflow is disabled because we trap on signed overflow instead - hardeningDisable = [ "strictoverflow" ] ++ lib.optional stdenv.hostPlatform.isStatic "pie"; - # hardeningEnable = lib.optionals (!stdenv.isDarwin) [ "pie" ]; - # hardeningDisable = lib.optional stdenv.hostPlatform.isMusl "fortify"; - separateDebugInfo = stdenv.isLinux && !enableStatic; - enableParallelBuilding = true; - - passthru = { - inherit aws-sdk-cpp boehmgc; - # tests = { - # misc = nixosTests.misc.lix.passthru.override { nixPackage = self; }; - # }; - }; - - # 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 = '' - Lix (a fork of 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://lix.systems"; - license = licenses.lgpl21Plus; - inherit maintainers; - platforms = platforms.unix; - outputsToInstall = [ "out" ] ++ optional enableDocumentation "man"; - mainProgram = "nix"; - broken = enableStatic; - }; - }; -in -self diff --git a/pkgs/by-name/li/lix/default.nix b/pkgs/by-name/li/lix/default.nix deleted file mode 100644 index 579c8c6..0000000 --- a/pkgs/by-name/li/lix/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ 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; }; - - boehmgc-nix = boehmgc-nix_2_3.overrideAttrs (drv: { - patches = (drv.patches or [ ]) ++ [ - # Part of the GC solution in https://github.com/NixOS/nix/pull/4944 - (path + "/pkgs/by-name/ni/nix/patches/boehmgc-coroutine-sp-fallback.patch") - ]; - }); - - 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)) { - inherit - Security - storeDir - stateDir - confDir - ; - boehmgc = boehmgc-nix; - aws-sdk-cpp = aws-sdk-cpp-nix; - }; -in -lib.makeExtensible (self: ({ - lix_2_90 = ( - common { - version = "2.90-beta.1"; - hash = "sha256-REWlo2RYHfJkxnmZTEJu3Cd/2VM+wjjpPy7Xi4BdDTQ="; - docCargoHash = "sha256-oH248kR4Of0MhcY2DYxNX0A+/XJ3L+UuIpBKn3sJt54="; - } - ); - - latest = self.lix_2_90; - stable = self.lix_2_90; -})) diff --git a/pkgs/by-name/li/lix/doc/default.nix b/pkgs/by-name/li/lix/doc/default.nix deleted file mode 100644 index a3c1d7d..0000000 --- a/pkgs/by-name/li/lix/doc/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ - src, - rustPlatform, - version, - cargoHash, -}: - -rustPlatform.buildRustPackage { - pname = "lix-doc"; - sourceRoot = "${src.name}/lix-doc"; - inherit version src cargoHash; -} diff --git a/pkgs/by-name/li/lix/packages.nix b/pkgs/by-name/li/lix/packages.nix deleted file mode 100644 index 1568048..0000000 --- a/pkgs/by-name/li/lix/packages.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ ... }: -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; - }); - - lix = lixVersions.stable; - - lixStatic = pkgsStatic.lix; -} diff --git a/pkgs/by-name/ll/llvm/12/clang/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/12/clang/gnu-install-dirs.patch deleted file mode 100644 index b834d38..0000000 --- a/pkgs/by-name/ll/llvm/12/clang/gnu-install-dirs.patch +++ /dev/null @@ -1,235 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 9e74014134a0..976e6a1757fd 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -5,6 +5,8 @@ cmake_minimum_required(VERSION 3.13.4) - if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR ) - project(Clang) - -+ include(GNUInstallDirs) -+ - set(CMAKE_CXX_STANDARD 14 CACHE STRING "C++ standard to conform to") - set(CMAKE_CXX_STANDARD_REQUIRED YES) - set(CMAKE_CXX_EXTENSIONS NO) -@@ -416,7 +418,7 @@ include_directories(BEFORE - - if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - install(DIRECTORY include/clang include/clang-c -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - COMPONENT clang-headers - FILES_MATCHING - PATTERN "*.def" -@@ -425,7 +427,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - ) - - install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/clang -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - COMPONENT clang-headers - FILES_MATCHING - PATTERN "CMakeFiles" EXCLUDE -@@ -445,7 +447,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - - add_custom_target(bash-autocomplete DEPENDS utils/bash-autocomplete.sh) - install(PROGRAMS utils/bash-autocomplete.sh -- DESTINATION share/clang -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang - COMPONENT bash-autocomplete) - if(NOT LLVM_ENABLE_IDE) - add_llvm_install_targets(install-bash-autocomplete -diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake -index 704278a0e93b..d25c8d325c71 100644 ---- a/cmake/modules/AddClang.cmake -+++ b/cmake/modules/AddClang.cmake -@@ -123,9 +123,9 @@ macro(add_clang_library name) - install(TARGETS ${lib} - COMPONENT ${lib} - ${export_to_clangtargets} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- RUNTIME DESTINATION bin) -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} -+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - - if (NOT LLVM_ENABLE_IDE) - add_llvm_install_targets(install-${lib} -@@ -170,7 +170,7 @@ macro(add_clang_tool name) - - install(TARGETS ${name} - ${export_to_clangtargets} -- RUNTIME DESTINATION bin -+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - COMPONENT ${name}) - - if(NOT LLVM_ENABLE_IDE) -@@ -185,7 +185,7 @@ endmacro() - macro(add_clang_symlink name dest) - add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE) - # Always generate install targets -- llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE) -+ llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE) - endmacro() - - function(clang_target_link_libraries target type) -diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt -index b2c0ce8dd4a0..19e5443d8c25 100644 ---- a/lib/Headers/CMakeLists.txt -+++ b/lib/Headers/CMakeLists.txt -@@ -215,7 +215,7 @@ set_target_properties(clang-resource-headers PROPERTIES - FOLDER "Misc" - RUNTIME_OUTPUT_DIRECTORY "${output_dir}") - --set(header_install_dir lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include) -+set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include) - - install( - FILES ${files} ${generated_files} -diff --git a/tools/c-index-test/CMakeLists.txt b/tools/c-index-test/CMakeLists.txt -index ceef4b08637c..8efad5520ca4 100644 ---- a/tools/c-index-test/CMakeLists.txt -+++ b/tools/c-index-test/CMakeLists.txt -@@ -54,7 +54,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - set_property(TARGET c-index-test APPEND PROPERTY INSTALL_RPATH - "@executable_path/../../lib") - else() -- set(INSTALL_DESTINATION bin) -+ set(INSTALL_DESTINATION ${CMAKE_INSTALL_BINDIR}) - endif() - - install(TARGETS c-index-test -diff --git a/tools/clang-format/CMakeLists.txt b/tools/clang-format/CMakeLists.txt -index 35ecdb11253c..d77d75de0094 100644 ---- a/tools/clang-format/CMakeLists.txt -+++ b/tools/clang-format/CMakeLists.txt -@@ -21,20 +21,20 @@ if( LLVM_LIB_FUZZING_ENGINE OR LLVM_USE_SANITIZE_COVERAGE ) - endif() - - install(PROGRAMS clang-format-bbedit.applescript -- DESTINATION share/clang -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang - COMPONENT clang-format) - install(PROGRAMS clang-format-diff.py -- DESTINATION share/clang -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang - COMPONENT clang-format) - install(PROGRAMS clang-format-sublime.py -- DESTINATION share/clang -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang - COMPONENT clang-format) - install(PROGRAMS clang-format.el -- DESTINATION share/clang -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang - COMPONENT clang-format) - install(PROGRAMS clang-format.py -- DESTINATION share/clang -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang - COMPONENT clang-format) - install(PROGRAMS git-clang-format -- DESTINATION bin -+ DESTINATION ${CMAKE_INSTALL_BINDIR} - COMPONENT clang-format) -diff --git a/tools/clang-rename/CMakeLists.txt b/tools/clang-rename/CMakeLists.txt -index cda8e29ec5b1..0134d8ccd70b 100644 ---- a/tools/clang-rename/CMakeLists.txt -+++ b/tools/clang-rename/CMakeLists.txt -@@ -19,8 +19,8 @@ clang_target_link_libraries(clang-rename - ) - - install(PROGRAMS clang-rename.py -- DESTINATION share/clang -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang - COMPONENT clang-rename) - install(PROGRAMS clang-rename.el -- DESTINATION share/clang -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang - COMPONENT clang-rename) -diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt -index 51ff2e7e1565..1ed5f8a079a1 100644 ---- a/tools/libclang/CMakeLists.txt -+++ b/tools/libclang/CMakeLists.txt -@@ -166,7 +166,7 @@ endif() - if(INTERNAL_INSTALL_PREFIX) - set(LIBCLANG_HEADERS_INSTALL_DESTINATION "${INTERNAL_INSTALL_PREFIX}/include") - else() -- set(LIBCLANG_HEADERS_INSTALL_DESTINATION include) -+ set(LIBCLANG_HEADERS_INSTALL_DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) - endif() - - install(DIRECTORY ../../include/clang-c -@@ -196,7 +196,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS}) - COMPONENT - libclang-python-bindings - DESTINATION -- "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages") -+ "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages") - endforeach() - if(NOT LLVM_ENABLE_IDE) - add_custom_target(libclang-python-bindings) -diff --git a/tools/scan-build/CMakeLists.txt b/tools/scan-build/CMakeLists.txt -index ec0702d76f18..d25d982f51da 100644 ---- a/tools/scan-build/CMakeLists.txt -+++ b/tools/scan-build/CMakeLists.txt -@@ -47,7 +47,7 @@ if(CLANG_INSTALL_SCANBUILD) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile}) - install(PROGRAMS bin/${BinFile} -- DESTINATION bin -+ DESTINATION ${CMAKE_INSTALL_BINDIR} - COMPONENT scan-build) - endforeach() - -@@ -61,7 +61,7 @@ if(CLANG_INSTALL_SCANBUILD) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/libexec/${LibexecFile}) - install(PROGRAMS libexec/${LibexecFile} -- DESTINATION libexec -+ DESTINATION ${CMAKE_INSTALL_LIBEXECDIR} - COMPONENT scan-build) - endforeach() - -@@ -89,7 +89,7 @@ if(CLANG_INSTALL_SCANBUILD) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile}) - install(FILES share/scan-build/${ShareFile} -- DESTINATION share/scan-build -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-build - COMPONENT scan-build) - endforeach() - -diff --git a/tools/scan-view/CMakeLists.txt b/tools/scan-view/CMakeLists.txt -index dd3d33439299..fea19c12ce70 100644 ---- a/tools/scan-view/CMakeLists.txt -+++ b/tools/scan-view/CMakeLists.txt -@@ -19,7 +19,7 @@ if(CLANG_INSTALL_SCANVIEW) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile}) - install(PROGRAMS bin/${BinFile} -- DESTINATION bin -+ DESTINATION ${CMAKE_INSTALL_BINDIR} - COMPONENT scan-view) - endforeach() - -@@ -33,7 +33,7 @@ if(CLANG_INSTALL_SCANVIEW) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/${ShareFile}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-view/${ShareFile}) - install(FILES share/${ShareFile} -- DESTINATION share/scan-view -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-view - COMPONENT scan-view) - endforeach() - -diff --git a/utils/hmaptool/CMakeLists.txt b/utils/hmaptool/CMakeLists.txt -index 62f2de0cb15c..6aa66825b6ec 100644 ---- a/utils/hmaptool/CMakeLists.txt -+++ b/utils/hmaptool/CMakeLists.txt -@@ -10,7 +10,7 @@ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HM - - list(APPEND Depends ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HMAPTOOL}) - install(PROGRAMS ${CLANG_HMAPTOOL} -- DESTINATION bin -+ DESTINATION ${CMAKE_INSTALL_BINDIR} - COMPONENT hmaptool) - - add_custom_target(hmaptool ALL DEPENDS ${Depends}) diff --git a/pkgs/by-name/ll/llvm/12/clang/purity.patch b/pkgs/by-name/ll/llvm/12/clang/purity.patch deleted file mode 100644 index deb230a..0000000 --- a/pkgs/by-name/ll/llvm/12/clang/purity.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001 -From: Will Dietz -Date: Thu, 18 May 2017 11:56:12 -0500 -Subject: [PATCH] "purity" patch for 5.0 - ---- - lib/Driver/ToolChains/Gnu.cpp | 7 ------- - 1 file changed, 7 deletions(-) - -diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp -index fe3c0191bb..c6a482bece 100644 ---- a/lib/Driver/ToolChains/Gnu.cpp -+++ b/lib/Driver/ToolChains/Gnu.cpp -@@ -487,12 +487,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA, - if (!IsStatic) { - if (Args.hasArg(options::OPT_rdynamic)) - CmdArgs.push_back("-export-dynamic"); -- -- if (!Args.hasArg(options::OPT_shared) && !IsStaticPIE) { -- CmdArgs.push_back("-dynamic-linker"); -- CmdArgs.push_back(Args.MakeArgString(Twine(D.DyldPrefix) + -- ToolChain.getDynamicLinker(Args))); -- } - } - - CmdArgs.push_back("-o"); --- -2.11.0 diff --git a/pkgs/by-name/ll/llvm/12/compiler-rt/X86-support-extension.patch b/pkgs/by-name/ll/llvm/12/compiler-rt/X86-support-extension.patch deleted file mode 100644 index 66742e5..0000000 --- a/pkgs/by-name/ll/llvm/12/compiler-rt/X86-support-extension.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt -index 3a66dd9c3fb..7efc85d9f9f 100644 ---- a/lib/builtins/CMakeLists.txt -+++ b/lib/builtins/CMakeLists.txt -@@ -345,4 +345,8 @@ if (NOT MSVC) - -+ set(i486_SOURCES ${i386_SOURCES}) -+ set(i586_SOURCES ${i386_SOURCES}) -+ set(i686_SOURCES ${i386_SOURCES}) -+ - if (WIN32) - set(i386_SOURCES - ${i386_SOURCES} -@@ -608,6 +612,7 @@ else () - endif() - - foreach (arch ${BUILTIN_SUPPORTED_ARCH}) -+ message("arch: ${arch}") - if (CAN_TARGET_${arch}) - # For ARM archs, exclude any VFP builtins if VFP is not supported - if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$") diff --git a/pkgs/by-name/ll/llvm/12/compiler-rt/armv7l.patch b/pkgs/by-name/ll/llvm/12/compiler-rt/armv7l.patch deleted file mode 100644 index 120cfe6..0000000 --- a/pkgs/by-name/ll/llvm/12/compiler-rt/armv7l.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff -ur compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake ---- compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake 2020-03-24 00:01:02.000000000 +0900 -+++ compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake 2020-05-10 03:42:00.883450706 +0900 -@@ -24,7 +24,7 @@ - - - set(ARM64 aarch64) --set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k) -+set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv7l) - set(HEXAGON hexagon) - set(X86 i386) - set(X86_64 x86_64) -diff -ur compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt ---- compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt 2020-03-24 00:01:02.000000000 +0900 -+++ compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt 2020-05-10 03:44:49.468579650 +0900 -@@ -474,6 +474,7 @@ - set(armv7_SOURCES ${arm_SOURCES}) - set(armv7s_SOURCES ${arm_SOURCES}) - set(armv7k_SOURCES ${arm_SOURCES}) -+set(armv7l_SOURCES ${arm_SOURCES}) - set(arm64_SOURCES ${aarch64_SOURCES}) - - # macho_embedded archs -@@ -595,7 +596,7 @@ - foreach (arch ${BUILTIN_SUPPORTED_ARCH}) - if (CAN_TARGET_${arch}) - # For ARM archs, exclude any VFP builtins if VFP is not supported -- if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$") -+ if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7l|armv7m|armv7em)$") - string(REPLACE ";" " " _TARGET_${arch}_CFLAGS "${TARGET_${arch}_CFLAGS}") - check_compile_definition(__VFP_FP__ "${CMAKE_C_FLAGS} ${_TARGET_${arch}_CFLAGS}" COMPILER_RT_HAS_${arch}_VFP) - if(NOT COMPILER_RT_HAS_${arch}_VFP) diff --git a/pkgs/by-name/ll/llvm/12/compiler-rt/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/12/compiler-rt/gnu-install-dirs.patch deleted file mode 100644 index 5f02576..0000000 --- a/pkgs/by-name/ll/llvm/12/compiler-rt/gnu-install-dirs.patch +++ /dev/null @@ -1,129 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index b44ad2c2118e..d42f5664d448 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -8,6 +8,7 @@ cmake_minimum_required(VERSION 3.13.4) - # Check if compiler-rt is built as a standalone project. - if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR COMPILER_RT_STANDALONE_BUILD) - project(CompilerRT C CXX ASM) -+ include(GNUInstallDirs) - set(COMPILER_RT_STANDALONE_BUILD TRUE) - set_property(GLOBAL PROPERTY USE_FOLDERS ON) - endif() -diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake -index 361538a58e47..f0d8d9ab80f1 100644 ---- a/cmake/Modules/AddCompilerRT.cmake -+++ b/cmake/Modules/AddCompilerRT.cmake -@@ -495,7 +495,7 @@ macro(add_compiler_rt_resource_file target_name file_name component) - add_custom_target(${target_name} DEPENDS ${dst_file}) - # Install in Clang resource directory. - install(FILES ${file_name} -- DESTINATION ${COMPILER_RT_INSTALL_PATH}/share -+ DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR} - COMPONENT ${component}) - add_dependencies(${component} ${target_name}) - -@@ -512,7 +512,7 @@ macro(add_compiler_rt_script name) - add_custom_target(${name} DEPENDS ${dst}) - install(FILES ${dst} - PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE -- DESTINATION ${COMPILER_RT_INSTALL_PATH}/bin) -+ DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_BINDIR}) - endmacro(add_compiler_rt_script src name) - - # Builds custom version of libc++ and installs it in . -diff --git a/cmake/Modules/CompilerRTDarwinUtils.cmake b/cmake/Modules/CompilerRTDarwinUtils.cmake -index 456a8dcda59f..7a09e74c7c79 100644 ---- a/cmake/Modules/CompilerRTDarwinUtils.cmake -+++ b/cmake/Modules/CompilerRTDarwinUtils.cmake -@@ -508,7 +508,7 @@ macro(darwin_add_embedded_builtin_libraries) - set(DARWIN_macho_embedded_LIBRARY_OUTPUT_DIR - ${COMPILER_RT_OUTPUT_DIR}/lib/macho_embedded) - set(DARWIN_macho_embedded_LIBRARY_INSTALL_DIR -- ${COMPILER_RT_INSTALL_PATH}/lib/macho_embedded) -+ ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/macho_embedded) - - set(CFLAGS_armv7 "-target thumbv7-apple-darwin-eabi") - set(CFLAGS_i386 "-march=pentium") -diff --git a/cmake/Modules/CompilerRTUtils.cmake b/cmake/Modules/CompilerRTUtils.cmake -index f61d487e93a0..f1f46fb9599c 100644 ---- a/cmake/Modules/CompilerRTUtils.cmake -+++ b/cmake/Modules/CompilerRTUtils.cmake -@@ -378,7 +378,7 @@ endfunction() - function(get_compiler_rt_install_dir arch install_dir) - if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) - get_compiler_rt_target(${arch} target) -- set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/lib/${target} PARENT_SCOPE) -+ set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${target} PARENT_SCOPE) - else() - set(${install_dir} ${COMPILER_RT_LIBRARY_INSTALL_DIR} PARENT_SCOPE) - endif() -diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake -index 1edab43e7c0d..1aac6b73ff82 100644 ---- a/cmake/base-config-ix.cmake -+++ b/cmake/base-config-ix.cmake -@@ -65,11 +65,11 @@ if (LLVM_TREE_AVAILABLE) - else() - # Take output dir and install path from the user. - set(COMPILER_RT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH -- "Path where built compiler-rt libraries should be stored.") -+ "Path where built compiler-rt build artifacts should be stored.") - set(COMPILER_RT_EXEC_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/bin CACHE PATH - "Path where built compiler-rt executables should be stored.") -- set(COMPILER_RT_INSTALL_PATH ${CMAKE_INSTALL_PREFIX} CACHE PATH -- "Path where built compiler-rt libraries should be installed.") -+ set(COMPILER_RT_INSTALL_PATH "" CACHE PATH -+ "Prefix where built compiler-rt artifacts should be installed, comes before CMAKE_INSTALL_PREFIX.") - option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." OFF) - option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" OFF) - # Use a host compiler to compile/link tests. -@@ -97,7 +97,7 @@ else(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR) - set(COMPILER_RT_LIBRARY_OUTPUT_DIR - ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR}) - set(COMPILER_RT_LIBRARY_INSTALL_DIR -- ${COMPILER_RT_INSTALL_PATH}/lib/${COMPILER_RT_OS_DIR}) -+ ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${COMPILER_RT_OS_DIR}) - endif() - - if(APPLE) -diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt -index b00e8caa1ddd..0fe64e4862c9 100644 ---- a/include/CMakeLists.txt -+++ b/include/CMakeLists.txt -@@ -69,22 +69,22 @@ set_target_properties(compiler-rt-headers PROPERTIES FOLDER "Compiler-RT Misc") - install(FILES ${SANITIZER_HEADERS} - COMPONENT compiler-rt-headers - PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ -- DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/sanitizer) -+ DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/sanitizer) - # Install fuzzer headers. - install(FILES ${FUZZER_HEADERS} - COMPONENT compiler-rt-headers - PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ -- DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/fuzzer) -+ DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/fuzzer) - # Install xray headers. - install(FILES ${XRAY_HEADERS} - COMPONENT compiler-rt-headers - PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ -- DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/xray) -+ DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/xray) - # Install profile headers. - install(FILES ${PROFILE_HEADERS} - COMPONENT compiler-rt-headers - PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ -- DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/profile) -+ DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/profile) - - if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDEs. - add_custom_target(install-compiler-rt-headers -diff --git a/lib/dfsan/CMakeLists.txt b/lib/dfsan/CMakeLists.txt -index a29de8deff1b..d39ff01613d2 100644 ---- a/lib/dfsan/CMakeLists.txt -+++ b/lib/dfsan/CMakeLists.txt -@@ -57,4 +57,4 @@ add_custom_command(OUTPUT ${dfsan_abilist_filename} - DEPENDS done_abilist.txt libc_ubuntu1404_abilist.txt) - add_dependencies(dfsan dfsan_abilist) - install(FILES ${dfsan_abilist_filename} -- DESTINATION ${COMPILER_RT_INSTALL_PATH}/share) -+ DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR}) diff --git a/pkgs/by-name/ll/llvm/12/compiler-rt/normalize-var.patch b/pkgs/by-name/ll/llvm/12/compiler-rt/normalize-var.patch deleted file mode 100644 index 135cf62..0000000 --- a/pkgs/by-name/ll/llvm/12/compiler-rt/normalize-var.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/compiler-rt/cmake/Modules/CompilerRTUtils.cmake b/compiler-rt/cmake/Modules/CompilerRTUtils.cmake -index f1f46fb9599c..6f19e69507ba 100644 ---- a/cmake/Modules/CompilerRTUtils.cmake -+++ b/cmake/Modules/CompilerRTUtils.cmake -@@ -302,8 +302,9 @@ macro(load_llvm_config) - # Get some LLVM variables from LLVMConfig. - include("${LLVM_CMAKE_PATH}/LLVMConfig.cmake") - -- set(LLVM_LIBRARY_OUTPUT_INTDIR -- ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) -+ get_filename_component(LLVM_LIBRARY_OUTPUT_INTDIR -+ ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX} -+ REALPATH) - endif() - endmacro() - diff --git a/pkgs/by-name/ll/llvm/12/default.nix b/pkgs/by-name/ll/llvm/12/default.nix deleted file mode 100644 index 45955dc..0000000 --- a/pkgs/by-name/ll/llvm/12/default.nix +++ /dev/null @@ -1,357 +0,0 @@ -{ 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 - release_version = "12.0.1"; - candidate = ""; # empty or "rcN" - 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; - }; - - 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" - ''; - - bintoolsNoLibc' = - if bootBintoolsNoLibc == null - then tools.bintoolsNoLibc - else bootBintoolsNoLibc; - bintools' = - if bootBintools == null - then tools.bintools - else bootBintools; - - in { - - 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; - - 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; - - # 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 - }); - - # 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; - - 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; - }; - - 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 - { - 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="; - }; - 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) diff --git a/pkgs/by-name/ll/llvm/12/libunwind/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/12/libunwind/gnu-install-dirs.patch deleted file mode 100644 index a791d6c..0000000 --- a/pkgs/by-name/ll/llvm/12/libunwind/gnu-install-dirs.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 48cb8e004e08..fec8144fb95a 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -23,6 +23,8 @@ set(LIBUNWIND_LIBCXX_PATH "${CMAKE_CURRENT_LIST_DIR}/../libcxx" CACHE PATH - if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBUNWIND_STANDALONE_BUILD) - project(libunwind LANGUAGES C CXX ASM) - -+ include(GNUInstallDirs) -+ - set(PACKAGE_NAME libunwind) - set(PACKAGE_VERSION 12.0.0) - set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") -@@ -115,17 +117,17 @@ set(CMAKE_MODULE_PATH - - if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) - set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++) -- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++) -+ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++) - if(LIBCXX_LIBDIR_SUBDIR) - string(APPEND LIBUNWIND_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR}) - string(APPEND LIBUNWIND_INSTALL_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR}) - endif() - elseif(LLVM_LIBRARY_OUTPUT_INTDIR) - set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}) -- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX}) -+ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX}) - else() - set(LIBUNWIND_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBUNWIND_LIBDIR_SUFFIX}) -- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX}) -+ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX}) - endif() - - set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBUNWIND_LIBRARY_DIR}) diff --git a/pkgs/by-name/ll/llvm/12/lld/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/12/lld/gnu-install-dirs.patch deleted file mode 100644 index 61e2f0e..0000000 --- a/pkgs/by-name/ll/llvm/12/lld/gnu-install-dirs.patch +++ /dev/null @@ -1,68 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index d4e561b50d8f..cfa5bdd79c2a 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -6,6 +6,8 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) - set(CMAKE_INCLUDE_CURRENT_DIR ON) - set(LLD_BUILT_STANDALONE TRUE) - -+ include(GNUInstallDirs) -+ - find_program(LLVM_CONFIG_PATH "llvm-config" DOC "Path to llvm-config binary") - if(NOT LLVM_CONFIG_PATH) - message(FATAL_ERROR "llvm-config not found: specify LLVM_CONFIG_PATH") -@@ -179,7 +181,7 @@ include_directories(BEFORE - - if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - install(DIRECTORY include/ -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - FILES_MATCHING - PATTERN "*.h" - ) -diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake -index 23df41312403..d62372c88de7 100644 ---- a/cmake/modules/AddLLD.cmake -+++ b/cmake/modules/AddLLD.cmake -@@ -20,9 +20,9 @@ macro(add_lld_library name) - install(TARGETS ${name} - COMPONENT ${name} - ${export_to_lldtargets} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- RUNTIME DESTINATION bin) -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} -+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - - if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES) - add_llvm_install_targets(install-${name} -@@ -54,7 +54,7 @@ macro(add_lld_tool name) - - install(TARGETS ${name} - ${export_to_lldtargets} -- RUNTIME DESTINATION bin -+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - COMPONENT ${name}) - - if(NOT CMAKE_CONFIGURATION_TYPES) -@@ -69,5 +69,5 @@ endmacro() - macro(add_lld_symlink name dest) - add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE) - # Always generate install targets -- llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE) -+ llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE) - endmacro() -diff --git a/tools/lld/CMakeLists.txt b/tools/lld/CMakeLists.txt -index 5cff736ff57f..64e775c771b9 100644 ---- a/tools/lld/CMakeLists.txt -+++ b/tools/lld/CMakeLists.txt -@@ -21,7 +21,7 @@ target_link_libraries(lld - ) - - install(TARGETS lld -- RUNTIME DESTINATION bin) -+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - - if(NOT LLD_SYMLINKS_TO_CREATE) - set(LLD_SYMLINKS_TO_CREATE diff --git a/pkgs/by-name/ll/llvm/12/lldb/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/12/lldb/gnu-install-dirs.patch deleted file mode 100644 index afc945c..0000000 --- a/pkgs/by-name/ll/llvm/12/lldb/gnu-install-dirs.patch +++ /dev/null @@ -1,91 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index b5633e21c56a..f2f1035e9238 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -10,6 +10,8 @@ set(CMAKE_MODULE_PATH - # If we are not building as part of LLVM, build LLDB as a standalone project, - # using LLVM as an external library. - if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) -+ include(GNUInstallDirs) -+ - project(lldb) - include(LLDBStandalone) - -diff --git a/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake -index 4ed5c647c5d2..89f96e710d55 100644 ---- a/cmake/modules/AddLLDB.cmake -+++ b/cmake/modules/AddLLDB.cmake -@@ -107,13 +107,13 @@ function(add_lldb_library name) - endif() - - if(PARAM_SHARED) -- set(install_dest lib${LLVM_LIBDIR_SUFFIX}) -+ set(install_dest ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) - if(PARAM_INSTALL_PREFIX) - set(install_dest ${PARAM_INSTALL_PREFIX}) - endif() - # RUNTIME is relevant for DLL platforms, FRAMEWORK for macOS - install(TARGETS ${name} COMPONENT ${name} -- RUNTIME DESTINATION bin -+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${install_dest} - ARCHIVE DESTINATION ${install_dest} - FRAMEWORK DESTINATION ${install_dest}) -diff --git a/cmake/modules/LLDBConfig.cmake b/cmake/modules/LLDBConfig.cmake -index 2fdf1502d055..37364341ff8b 100644 ---- a/cmake/modules/LLDBConfig.cmake -+++ b/cmake/modules/LLDBConfig.cmake -@@ -225,7 +225,7 @@ include_directories(BEFORE - if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - install(DIRECTORY include/ - COMPONENT lldb-headers -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - FILES_MATCHING - PATTERN "*.h" - PATTERN ".cmake" EXCLUDE -@@ -233,7 +233,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - - install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/ - COMPONENT lldb-headers -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - FILES_MATCHING - PATTERN "*.h" - PATTERN ".cmake" EXCLUDE -diff --git a/tools/intel-features/CMakeLists.txt b/tools/intel-features/CMakeLists.txt -index 734167e51bc5..f95761b5df58 100644 ---- a/tools/intel-features/CMakeLists.txt -+++ b/tools/intel-features/CMakeLists.txt -@@ -65,4 +65,4 @@ if (LLDB_ENABLE_PYTHON AND LLDB_BUILD_INTEL_PT) - endif() - - install(TARGETS lldbIntelFeatures -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}) -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) -diff --git a/cmake/modules/LLDBStandalone.cmake b/cmake/modules/LLDBStandalone.cmake -index 752113b..010f187 100644 ---- a/cmake/modules/LLDBStandalone.cmake -+++ b/cmake/modules/LLDBStandalone.cmake -@@ -62,7 +62,7 @@ endif() - - # They are used as destination of target generators. - set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin) --set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) -+set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) - if(WIN32 OR CYGWIN) - # DLL platform -- put DLLs into bin. - set(LLVM_SHLIB_OUTPUT_INTDIR ${LLVM_RUNTIME_OUTPUT_INTDIR}) -diff --git a/CMakeLists.txt b/CMakeLists.txt -index b5633e2..86e4738 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -79,7 +79,7 @@ if (LLDB_ENABLE_PYTHON) - if(LLDB_BUILD_FRAMEWORK) - set(lldb_python_target_dir "${LLDB_FRAMEWORK_ABSOLUTE_BUILD_DIR}/LLDB.framework/Resources/Python/lldb") - else() -- set(lldb_python_target_dir "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${LLDB_PYTHON_RELATIVE_PATH}/lldb") -+ set(lldb_python_target_dir "${CMAKE_INSTALL_LIBDIR}/../${LLDB_PYTHON_RELATIVE_PATH}/lldb") - endif() - get_target_property(lldb_python_bindings_dir swig_wrapper_python BINARY_DIR) - finish_swig_python("lldb-python" "${lldb_python_bindings_dir}" "${lldb_python_target_dir}") diff --git a/pkgs/by-name/ll/llvm/12/lldb/procfs.patch b/pkgs/by-name/ll/llvm/12/lldb/procfs.patch deleted file mode 100644 index b075dba..0000000 --- a/pkgs/by-name/ll/llvm/12/lldb/procfs.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- a/source/Plugins/Process/Linux/Procfs.h -+++ b/source/Plugins/Process/Linux/Procfs.h -@@ -11,21 +11,12 @@ - // sys/procfs.h on Android/Linux for all supported architectures. - - #include -+#include - --#ifdef __ANDROID__ --#if defined(__arm64__) || defined(__aarch64__) --typedef unsigned long elf_greg_t; --typedef elf_greg_t -- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))]; --typedef struct user_fpsimd_state elf_fpregset_t; --#ifndef NT_FPREGSET --#define NT_FPREGSET NT_PRFPREG --#endif // NT_FPREGSET --#elif defined(__mips__) --#ifndef NT_FPREGSET --#define NT_FPREGSET NT_PRFPREG --#endif // NT_FPREGSET --#endif --#else // __ANDROID__ -+#if !defined(__GLIBC__) && defined(__powerpc__) -+#define pt_regs musl_pt_regs -+#include -+#undef pt_regs -+#else - #include --#endif // __ANDROID__ -+#endif diff --git a/pkgs/by-name/ll/llvm/12/lldb/resource-dir.patch b/pkgs/by-name/ll/llvm/12/lldb/resource-dir.patch deleted file mode 100644 index e0db80a..0000000 --- a/pkgs/by-name/ll/llvm/12/lldb/resource-dir.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/lldb/cmake/modules/LLDBConfig.cmake b/lldb/cmake/modules/LLDBConfig.cmake -index 37364341ff8b..7f74c1a3e257 100644 ---- a/cmake/modules/LLDBConfig.cmake -+++ b/cmake/modules/LLDBConfig.cmake -@@ -257,7 +257,7 @@ if (NOT TARGET clang-resource-headers) - # Iterate over the possible places where the external resource directory - # could be and pick the first that exists. - foreach(CANDIDATE "${Clang_DIR}/../.." "${LLVM_DIR}" "${LLVM_LIBRARY_DIRS}" -- "${LLVM_BUILD_LIBRARY_DIR}" -+ "${LLVM_BUILD_LIBRARY_DIR}" "@clangLibDir@" - "${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}") - # Build the resource directory path by appending 'clang/'. - set(CANDIDATE_RESOURCE_DIR "${CANDIDATE}/clang/${LLDB_CLANG_RESOURCE_DIR_NAME}") diff --git a/pkgs/by-name/ll/llvm/12/llvm/default.nix b/pkgs/by-name/ll/llvm/12/llvm/default.nix deleted file mode 100644 index 4745345..0000000 --- a/pkgs/by-name/ll/llvm/12/llvm/default.nix +++ /dev/null @@ -1,357 +0,0 @@ -{ 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)); - - # Ordinarily we would just the `doCheck` and `checkDeps` functionality - # `mkDerivation` gives us to manage our test dependencies (instead of breaking - # out `doCheck` as a package level attribute). - # - # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in - # particular the children it uses to do feature detection. - # - # This means that python deps we add to `checkDeps` (which the python - # interpreter is made aware of via `$PYTHONPATH` – populated by the python - # setup hook) are not picked up by `lit` which causes it to skip tests. - # - # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work - # because this package is shadowed in `$PATH` by the regular `python3` - # package. - # - # 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" - ( - 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 - ]) - ) - ]; - - postBuild = '' - rm -fR $out - ''; - - 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/12/llvm/fix-llvm-issue-49955.patch b/pkgs/by-name/ll/llvm/12/llvm/fix-llvm-issue-49955.patch deleted file mode 100644 index b515583..0000000 --- a/pkgs/by-name/ll/llvm/12/llvm/fix-llvm-issue-49955.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/lib/CodeGen/AsmPrinter/CMakeLists.txt b/lib/CodeGen/AsmPrinter/CMakeLists.txt -index eb924282..c77c140b 100644 ---- a/lib/CodeGen/AsmPrinter/CMakeLists.txt -+++ b/lib/CodeGen/AsmPrinter/CMakeLists.txt -@@ -44,3 +44,8 @@ add_llvm_component_library(LLVMAsmPrinter - Support - Target - ) -+ -+if (CMAKE_COMPILER_IS_GNUCXX) -+ set_source_files_properties(DwarfCompileUnit.cpp PROPERTIES -+ COMPILE_FLAGS -fno-strict-aliasing) -+endif() diff --git a/pkgs/by-name/ll/llvm/12/llvm/gnu-install-dirs-polly.patch b/pkgs/by-name/ll/llvm/12/llvm/gnu-install-dirs-polly.patch deleted file mode 100644 index 68f3c45..0000000 --- a/pkgs/by-name/ll/llvm/12/llvm/gnu-install-dirs-polly.patch +++ /dev/null @@ -1,105 +0,0 @@ -diff --git a/tools/polly/CMakeLists.txt b/tools/polly/CMakeLists.txt -index ca7c04c565bb..6ed5db5dd4f8 100644 ---- a/tools/polly/CMakeLists.txt -+++ b/tools/polly/CMakeLists.txt -@@ -2,7 +2,11 @@ - if (NOT DEFINED LLVM_MAIN_SRC_DIR) - project(Polly) - cmake_minimum_required(VERSION 3.13.4) -+endif() -+ -+include(GNUInstallDirs) - -+if (NOT DEFINED LLVM_MAIN_SRC_DIR) - # Where is LLVM installed? - find_package(LLVM CONFIG REQUIRED) - set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR}) -@@ -122,13 +126,13 @@ include_directories( - - if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - install(DIRECTORY include/ -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - FILES_MATCHING - PATTERN "*.h" - ) - - install(DIRECTORY ${POLLY_BINARY_DIR}/include/ -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - FILES_MATCHING - PATTERN "*.h" - PATTERN "CMakeFiles" EXCLUDE -diff --git a/tools/polly/cmake/CMakeLists.txt b/tools/polly/cmake/CMakeLists.txt -index 7cc129ba2e90..137be25e4b80 100644 ---- a/tools/polly/cmake/CMakeLists.txt -+++ b/tools/polly/cmake/CMakeLists.txt -@@ -79,18 +79,18 @@ file(GENERATE - - # Generate PollyConfig.cmake for the install tree. - unset(POLLY_EXPORTS) --set(POLLY_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") -+set(POLLY_INSTALL_PREFIX "") - set(POLLY_CONFIG_LLVM_CMAKE_DIR "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}") --set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}") --set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}") -+set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}") -+set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") - if (POLLY_BUNDLED_ISL) - set(POLLY_CONFIG_INCLUDE_DIRS -- "${POLLY_INSTALL_PREFIX}/include" -- "${POLLY_INSTALL_PREFIX}/include/polly" -+ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}" -+ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}/polly" - ) - else() - set(POLLY_CONFIG_INCLUDE_DIRS -- "${POLLY_INSTALL_PREFIX}/include" -+ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_INCLUDEDIR}" - ${ISL_INCLUDE_DIRS} - ) - endif() -@@ -100,12 +100,12 @@ endif() - foreach(tgt IN LISTS POLLY_CONFIG_EXPORTED_TARGETS) - get_target_property(tgt_type ${tgt} TYPE) - if (tgt_type STREQUAL "EXECUTABLE") -- set(tgt_prefix "bin/") -+ set(tgt_prefix "${CMAKE_INSTALL_BINDIR}/") - else() -- set(tgt_prefix "lib/") -+ set(tgt_prefix "${CMAKE_INSTALL_LIBDIR}/") - endif() - -- set(tgt_path "${CMAKE_INSTALL_PREFIX}/${tgt_prefix}$") -+ set(tgt_path "${tgt_prefix}$") - file(RELATIVE_PATH tgt_path ${POLLY_CONFIG_CMAKE_DIR} ${tgt_path}) - - if (NOT tgt_type STREQUAL "INTERFACE_LIBRARY") -diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake -index 518a09b45a42..bd9d6f5542ad 100644 ---- a/tools/polly/cmake/polly_macros.cmake -+++ b/tools/polly/cmake/polly_macros.cmake -@@ -44,8 +44,8 @@ macro(add_polly_library name) - if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly") - install(TARGETS ${name} - EXPORT LLVMExports -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}) -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) - endif() - set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name}) - endmacro(add_polly_library) -diff --git a/tools/polly/lib/External/CMakeLists.txt b/tools/polly/lib/External/CMakeLists.txt -index 8991094d92c7..178d8ad606bb 100644 ---- a/tools/polly/lib/External/CMakeLists.txt -+++ b/tools/polly/lib/External/CMakeLists.txt -@@ -275,7 +275,7 @@ if (POLLY_BUNDLED_ISL) - install(DIRECTORY - ${ISL_SOURCE_DIR}/include/ - ${ISL_BINARY_DIR}/include/ -- DESTINATION include/polly -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/polly - FILES_MATCHING - PATTERN "*.h" - PATTERN "CMakeFiles" EXCLUDE diff --git a/pkgs/by-name/ll/llvm/12/llvm/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/12/llvm/gnu-install-dirs.patch deleted file mode 100644 index da8dc14..0000000 --- a/pkgs/by-name/ll/llvm/12/llvm/gnu-install-dirs.patch +++ /dev/null @@ -1,417 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 277d0fe54d7b..af69c8be8745 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -256,15 +256,21 @@ if (CMAKE_BUILD_TYPE AND - message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}") - endif() - -+include(GNUInstallDirs) -+ - set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" ) - --set(LLVM_TOOLS_INSTALL_DIR "bin" CACHE STRING "Path for binary subdirectory (defaults to 'bin')") -+set(LLVM_TOOLS_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}" CACHE STRING -+ "Path for binary subdirectory (defaults to 'bin')") - mark_as_advanced(LLVM_TOOLS_INSTALL_DIR) - - set(LLVM_UTILS_INSTALL_DIR "${LLVM_TOOLS_INSTALL_DIR}" CACHE STRING - "Path to install LLVM utilities (enabled by LLVM_INSTALL_UTILS=ON) (defaults to LLVM_TOOLS_INSTALL_DIR)") - mark_as_advanced(LLVM_UTILS_INSTALL_DIR) - -+set(LLVM_INSTALL_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/cmake/llvm" CACHE STRING -+ "Path for CMake subdirectory (defaults to lib/cmake/llvm)" ) -+ - # They are used as destination of target generators. - set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin) - set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) -@@ -567,9 +573,9 @@ option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF) - option (LLVM_ENABLE_OCAMLDOC "Build OCaml bindings documentation." ON) - option (LLVM_ENABLE_BINDINGS "Build bindings." ON) - --set(LLVM_INSTALL_DOXYGEN_HTML_DIR "share/doc/llvm/doxygen-html" -+set(LLVM_INSTALL_DOXYGEN_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html" - CACHE STRING "Doxygen-generated HTML documentation install directory") --set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "share/doc/llvm/ocaml-html" -+set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html" - CACHE STRING "OCamldoc-generated HTML documentation install directory") - - option (LLVM_BUILD_EXTERNAL_COMPILER_RT -@@ -1027,7 +1033,7 @@ endif() - - if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - install(DIRECTORY include/llvm include/llvm-c -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - COMPONENT llvm-headers - FILES_MATCHING - PATTERN "*.def" -@@ -1038,7 +1044,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - ) - - install(DIRECTORY ${LLVM_INCLUDE_DIR}/llvm ${LLVM_INCLUDE_DIR}/llvm-c -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - COMPONENT llvm-headers - FILES_MATCHING - PATTERN "*.def" -@@ -1052,13 +1058,13 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - - if (LLVM_INSTALL_MODULEMAPS) - install(DIRECTORY include/llvm include/llvm-c -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - COMPONENT llvm-headers - FILES_MATCHING - PATTERN "module.modulemap" - ) - install(FILES include/llvm/module.install.modulemap -- DESTINATION include/llvm -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm - COMPONENT llvm-headers - RENAME "module.extern.modulemap" - ) -diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake -index 97c9980c7de3..409e8b615f75 100644 ---- a/cmake/modules/AddLLVM.cmake -+++ b/cmake/modules/AddLLVM.cmake -@@ -804,9 +804,9 @@ macro(add_llvm_library name) - - install(TARGETS ${name} - ${export_to_llvmexports} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} -- RUNTIME DESTINATION bin COMPONENT ${name}) -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} -+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${name}) - - if (NOT LLVM_ENABLE_IDE) - add_llvm_install_targets(install-${name} -@@ -1022,7 +1022,7 @@ function(process_llvm_pass_plugins) - "set(LLVM_STATIC_EXTENSIONS ${LLVM_STATIC_EXTENSIONS})") - install(FILES - ${llvm_cmake_builddir}/LLVMConfigExtensions.cmake -- DESTINATION ${LLVM_INSTALL_PACKAGE_DIR} -+ DESTINATION ${LLVM_INSTALL_CMAKE_DIR} - COMPONENT cmake-exports) - - set(ExtensionDef "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def") -@@ -1242,7 +1242,7 @@ macro(add_llvm_example name) - endif() - add_llvm_executable(${name} ${ARGN}) - if( LLVM_BUILD_EXAMPLES ) -- install(TARGETS ${name} RUNTIME DESTINATION examples) -+ install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples) - endif() - set_target_properties(${name} PROPERTIES FOLDER "Examples") - endmacro(add_llvm_example name) -@@ -1854,7 +1854,7 @@ function(llvm_install_library_symlink name dest type) - set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX}) - set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX}) - -- set(output_dir lib${LLVM_LIBDIR_SUFFIX}) -+ set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) - if(WIN32 AND "${type}" STREQUAL "SHARED") - set(output_dir bin) - endif() -@@ -1871,7 +1871,7 @@ function(llvm_install_library_symlink name dest type) - endif() - endfunction() - --function(llvm_install_symlink name dest) -+function(llvm_install_symlink name dest output_dir) - cmake_parse_arguments(ARG "ALWAYS_GENERATE" "COMPONENT" "" ${ARGN}) - foreach(path ${CMAKE_MODULE_PATH}) - if(EXISTS ${path}/LLVMInstallSymlink.cmake) -@@ -1894,7 +1894,7 @@ function(llvm_install_symlink name dest) - set(full_dest ${dest}${CMAKE_EXECUTABLE_SUFFIX}) - - install(SCRIPT ${INSTALL_SYMLINK} -- CODE "install_symlink(${full_name} ${full_dest} ${LLVM_TOOLS_INSTALL_DIR})" -+ CODE "install_symlink(${full_name} ${full_dest} ${output_dir})" - COMPONENT ${component}) - - if (NOT LLVM_ENABLE_IDE AND NOT ARG_ALWAYS_GENERATE) -@@ -1977,7 +1977,8 @@ function(add_llvm_tool_symlink link_name target) - endif() - - if ((TOOL_IS_TOOLCHAIN OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY) AND LLVM_BUILD_TOOLS) -- llvm_install_symlink(${link_name} ${target}) -+ GNUInstallDirs_get_absolute_install_dir(output_dir LLVM_TOOLS_INSTALL_DIR) -+ llvm_install_symlink(${link_name} ${target} ${output_dir}) - endif() - endif() - endfunction() -@@ -2100,9 +2101,9 @@ function(llvm_setup_rpath name) - - if (APPLE) - set(_install_name_dir INSTALL_NAME_DIR "@rpath") -- set(_install_rpath "@loader_path/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -+ set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) - elseif(UNIX) -- set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -+ set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) - if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)") - set_property(TARGET ${name} APPEND_STRING PROPERTY - LINK_FLAGS " -Wl,-z,origin ") -diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake -index 554046b20edf..4d1ad980641e 100644 ---- a/cmake/modules/AddOCaml.cmake -+++ b/cmake/modules/AddOCaml.cmake -@@ -144,9 +144,9 @@ function(add_ocaml_library name) - endforeach() - - if( APPLE ) -- set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}") -+ set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") - elseif( UNIX ) -- set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}") -+ set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") - endif() - list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}") - -diff --git a/cmake/modules/AddSphinxTarget.cmake b/cmake/modules/AddSphinxTarget.cmake -index e80c3b5c1cac..482f6d715ef5 100644 ---- a/cmake/modules/AddSphinxTarget.cmake -+++ b/cmake/modules/AddSphinxTarget.cmake -@@ -90,7 +90,7 @@ function (add_sphinx_target builder project) - endif() - elseif (builder STREQUAL html) - string(TOUPPER "${project}" project_upper) -- set(${project_upper}_INSTALL_SPHINX_HTML_DIR "share/doc/${project}/html" -+ set(${project_upper}_INSTALL_SPHINX_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/html" - CACHE STRING "HTML documentation install directory for ${project}") - - # '/.' indicates: copy the contents of the directory directly into -diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt -index 505dc9a29d70..36e6c63af3f4 100644 ---- a/cmake/modules/CMakeLists.txt -+++ b/cmake/modules/CMakeLists.txt -@@ -1,4 +1,4 @@ --set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm) -+set(LLVM_INSTALL_PACKAGE_DIR ${LLVM_INSTALL_CMAKE_DIR} CACHE STRING "Path for CMake subdirectory (defaults to 'cmake/llvm')") - set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}") - - # First for users who use an installed LLVM, create the LLVMExports.cmake file. -@@ -107,13 +107,13 @@ foreach(p ${_count}) - set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE} - get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)") - endforeach(p) --set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include") -+set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}") - set(LLVM_CONFIG_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}") - set(LLVM_CONFIG_MAIN_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}") --set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}") -+set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}") - set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}") - set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}") --set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin") -+set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}") - - # Generate a default location for lit - if (LLVM_INSTALL_UTILS AND LLVM_BUILD_UTILS) -diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake -index 09fed8085c23..aa79f192abf0 100644 ---- a/cmake/modules/LLVMInstallSymlink.cmake -+++ b/cmake/modules/LLVMInstallSymlink.cmake -@@ -10,7 +10,7 @@ function(install_symlink name target outdir) - set(LINK_OR_COPY copy) - endif() - -- set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/${outdir}/") -+ set(bindir "${DESTDIR}${outdir}/") - - message(STATUS "Creating ${name}") - -diff --git a/docs/CMake.rst b/docs/CMake.rst -index bb821b417ad9..6a528f7c2ad3 100644 ---- a/docs/CMake.rst -+++ b/docs/CMake.rst -@@ -196,7 +196,7 @@ CMake manual, or execute ``cmake --help-variable VARIABLE_NAME``. - **LLVM_LIBDIR_SUFFIX**:STRING - Extra suffix to append to the directory where libraries are to be - installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64`` -- to install libraries to ``/usr/lib64``. -+ to install libraries to ``/usr/lib64``. See also ``CMAKE_INSTALL_LIBDIR``. - - **CMAKE_C_FLAGS**:STRING - Extra flags to use when compiling C source files. -@@ -550,8 +550,8 @@ LLVM-specific variables - - **LLVM_INSTALL_DOXYGEN_HTML_DIR**:STRING - The path to install Doxygen-generated HTML documentation to. This path can -- either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to -- `share/doc/llvm/doxygen-html`. -+ either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to -+ `${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html`. - - **LLVM_ENABLE_SPHINX**:BOOL - If specified, CMake will search for the ``sphinx-build`` executable and will make -@@ -582,13 +582,33 @@ LLVM-specific variables - - **LLVM_INSTALL_SPHINX_HTML_DIR**:STRING - The path to install Sphinx-generated HTML documentation to. This path can -- either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to -- `share/doc/llvm/html`. -+ either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to -+ `${CMAKE_INSTALL_DOCDIR}/${project}/html`. - - **LLVM_INSTALL_OCAMLDOC_HTML_DIR**:STRING - The path to install OCamldoc-generated HTML documentation to. This path can -- either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to -- `share/doc/llvm/ocaml-html`. -+ either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to -+ `${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html`. -+ -+**CMAKE_INSTALL_BINDIR**:STRING -+ The path to install binary tools, relative to the ``CMAKE_INSTALL_PREFIX``. -+ Defaults to `bin`. -+ -+**CMAKE_INSTALL_LIBDIR**:STRING -+ The path to install libraries, relative to the ``CMAKE_INSTALL_PREFIX``. -+ Defaults to `lib`. -+ -+**CMAKE_INSTALL_INCLUDEDIR**:STRING -+ The path to install header files, relative to the ``CMAKE_INSTALL_PREFIX``. -+ Defaults to `include`. -+ -+**CMAKE_INSTALL_DOCDIR**:STRING -+ The path to install documentation, relative to the ``CMAKE_INSTALL_PREFIX``. -+ Defaults to `share/doc`. -+ -+**CMAKE_INSTALL_MANDIR**:STRING -+ The path to install manpage files, relative to the ``CMAKE_INSTALL_PREFIX``. -+ Defaults to `share/man`. - - **LLVM_CREATE_XCODE_TOOLCHAIN**:BOOL - macOS Only: If enabled CMake will generate a target named -@@ -786,9 +806,11 @@ the ``cmake`` command or by setting it directly in ``ccmake`` or ``cmake-gui``). - - This file is available in two different locations. - --* ``/lib/cmake/llvm/LLVMConfig.cmake`` where -- ```` is the install prefix of an installed version of LLVM. -- On Linux typically this is ``/usr/lib/cmake/llvm/LLVMConfig.cmake``. -+* ``LLVMConfig.cmake`` where -+ ```` is the location where LLVM CMake modules are -+ installed as part of an installed version of LLVM. This is typically -+ ``cmake/llvm/`` within the lib directory. On Linux, this is typically -+ ``/usr/lib/cmake/llvm/LLVMConfig.cmake``. - - * ``/lib/cmake/llvm/LLVMConfig.cmake`` where - ```` is the root of the LLVM build tree. **Note: this is only -diff --git a/examples/Bye/CMakeLists.txt b/examples/Bye/CMakeLists.txt -index bb96edb4b4bf..678c22fb43c8 100644 ---- a/examples/Bye/CMakeLists.txt -+++ b/examples/Bye/CMakeLists.txt -@@ -14,6 +14,6 @@ if (NOT WIN32) - BUILDTREE_ONLY - ) - -- install(TARGETS ${name} RUNTIME DESTINATION examples) -+ install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples) - set_target_properties(${name} PROPERTIES FOLDER "Examples") - endif() -diff --git a/include/llvm/CMakeLists.txt b/include/llvm/CMakeLists.txt -index b46319f24fc8..2feabd1954e4 100644 ---- a/include/llvm/CMakeLists.txt -+++ b/include/llvm/CMakeLists.txt -@@ -5,5 +5,5 @@ add_subdirectory(Frontend) - # If we're doing an out-of-tree build, copy a module map for generated - # header files into the build area. - if (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") -- configure_file(module.modulemap.build module.modulemap COPYONLY) -+ configure_file(module.modulemap.build ${LLVM_INCLUDE_DIR}/module.modulemap COPYONLY) - endif (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") -diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in -index ebe5b73a5c65..70c497be12f5 100644 ---- a/tools/llvm-config/BuildVariables.inc.in -+++ b/tools/llvm-config/BuildVariables.inc.in -@@ -23,6 +23,10 @@ - #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@" - #define LLVM_BUILDMODE "@LLVM_BUILDMODE@" - #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@" -+#define LLVM_INSTALL_BINDIR "@CMAKE_INSTALL_BINDIR@" -+#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@" -+#define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@" -+#define LLVM_INSTALL_CMAKEDIR "@LLVM_INSTALL_CMAKE_DIR@" - #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@" - #define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@" - #define LLVM_BUILD_SYSTEM "@LLVM_BUILD_SYSTEM@" -diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp -index 1a2f04552d13..44fa7d3eec6b 100644 ---- a/tools/llvm-config/llvm-config.cpp -+++ b/tools/llvm-config/llvm-config.cpp -@@ -357,12 +357,26 @@ int main(int argc, char **argv) { - ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include"); - } else { - ActivePrefix = CurrentExecPrefix; -- ActiveIncludeDir = ActivePrefix + "/include"; -- SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR)); -- sys::fs::make_absolute(ActivePrefix, path); -- ActiveBinDir = std::string(path.str()); -- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX; -- ActiveCMakeDir = ActiveLibDir + "/cmake/llvm"; -+ { -+ SmallString<256> path(StringRef(LLVM_INSTALL_INCLUDEDIR)); -+ sys::fs::make_absolute(ActivePrefix, path); -+ ActiveIncludeDir = std::string(path.str()); -+ } -+ { -+ SmallString<256> path(StringRef(LLVM_INSTALL_BINDIR)); -+ sys::fs::make_absolute(ActivePrefix, path); -+ ActiveBinDir = std::string(path.str()); -+ } -+ { -+ SmallString<256> path(StringRef(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX)); -+ sys::fs::make_absolute(ActivePrefix, path); -+ ActiveLibDir = std::string(path.str()); -+ } -+ { -+ SmallString<256> path(StringRef(LLVM_INSTALL_CMAKEDIR)); -+ sys::fs::make_absolute(ActivePrefix, path); -+ ActiveCMakeDir = std::string(path.str()); -+ } - ActiveIncludeOption = "-I" + ActiveIncludeDir; - } - -diff --git a/tools/lto/CMakeLists.txt b/tools/lto/CMakeLists.txt -index 2963f97cad88..69d66c9c9ca1 100644 ---- a/tools/lto/CMakeLists.txt -+++ b/tools/lto/CMakeLists.txt -@@ -25,7 +25,7 @@ add_llvm_library(LTO SHARED INSTALL_WITH_TOOLCHAIN ${SOURCES} DEPENDS - intrinsics_gen) - - install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h -- DESTINATION include/llvm-c -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c - COMPONENT LTO) - - if (APPLE) -diff --git a/tools/opt-viewer/CMakeLists.txt b/tools/opt-viewer/CMakeLists.txt -index ead73ec13a8f..250362021f17 100644 ---- a/tools/opt-viewer/CMakeLists.txt -+++ b/tools/opt-viewer/CMakeLists.txt -@@ -8,7 +8,7 @@ set (files - - foreach (file ${files}) - install(PROGRAMS ${file} -- DESTINATION share/opt-viewer -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/opt-viewer - COMPONENT opt-viewer) - endforeach (file) - -diff --git a/tools/remarks-shlib/CMakeLists.txt b/tools/remarks-shlib/CMakeLists.txt -index 865436247270..ce1daa62f6ab 100644 ---- a/tools/remarks-shlib/CMakeLists.txt -+++ b/tools/remarks-shlib/CMakeLists.txt -@@ -19,7 +19,7 @@ if(LLVM_ENABLE_PIC) - endif() - - install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/Remarks.h -- DESTINATION include/llvm-c -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c - COMPONENT Remarks) - - if (APPLE) diff --git a/pkgs/by-name/ll/llvm/13/clang/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/13/clang/gnu-install-dirs.patch deleted file mode 100644 index b834d38..0000000 --- a/pkgs/by-name/ll/llvm/13/clang/gnu-install-dirs.patch +++ /dev/null @@ -1,235 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 9e74014134a0..976e6a1757fd 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -5,6 +5,8 @@ cmake_minimum_required(VERSION 3.13.4) - if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR ) - project(Clang) - -+ include(GNUInstallDirs) -+ - set(CMAKE_CXX_STANDARD 14 CACHE STRING "C++ standard to conform to") - set(CMAKE_CXX_STANDARD_REQUIRED YES) - set(CMAKE_CXX_EXTENSIONS NO) -@@ -416,7 +418,7 @@ include_directories(BEFORE - - if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - install(DIRECTORY include/clang include/clang-c -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - COMPONENT clang-headers - FILES_MATCHING - PATTERN "*.def" -@@ -425,7 +427,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - ) - - install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/clang -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - COMPONENT clang-headers - FILES_MATCHING - PATTERN "CMakeFiles" EXCLUDE -@@ -445,7 +447,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - - add_custom_target(bash-autocomplete DEPENDS utils/bash-autocomplete.sh) - install(PROGRAMS utils/bash-autocomplete.sh -- DESTINATION share/clang -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang - COMPONENT bash-autocomplete) - if(NOT LLVM_ENABLE_IDE) - add_llvm_install_targets(install-bash-autocomplete -diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake -index 704278a0e93b..d25c8d325c71 100644 ---- a/cmake/modules/AddClang.cmake -+++ b/cmake/modules/AddClang.cmake -@@ -123,9 +123,9 @@ macro(add_clang_library name) - install(TARGETS ${lib} - COMPONENT ${lib} - ${export_to_clangtargets} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- RUNTIME DESTINATION bin) -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} -+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - - if (NOT LLVM_ENABLE_IDE) - add_llvm_install_targets(install-${lib} -@@ -170,7 +170,7 @@ macro(add_clang_tool name) - - install(TARGETS ${name} - ${export_to_clangtargets} -- RUNTIME DESTINATION bin -+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - COMPONENT ${name}) - - if(NOT LLVM_ENABLE_IDE) -@@ -185,7 +185,7 @@ endmacro() - macro(add_clang_symlink name dest) - add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE) - # Always generate install targets -- llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE) -+ llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE) - endmacro() - - function(clang_target_link_libraries target type) -diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt -index b2c0ce8dd4a0..19e5443d8c25 100644 ---- a/lib/Headers/CMakeLists.txt -+++ b/lib/Headers/CMakeLists.txt -@@ -215,7 +215,7 @@ set_target_properties(clang-resource-headers PROPERTIES - FOLDER "Misc" - RUNTIME_OUTPUT_DIRECTORY "${output_dir}") - --set(header_install_dir lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include) -+set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include) - - install( - FILES ${files} ${generated_files} -diff --git a/tools/c-index-test/CMakeLists.txt b/tools/c-index-test/CMakeLists.txt -index ceef4b08637c..8efad5520ca4 100644 ---- a/tools/c-index-test/CMakeLists.txt -+++ b/tools/c-index-test/CMakeLists.txt -@@ -54,7 +54,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - set_property(TARGET c-index-test APPEND PROPERTY INSTALL_RPATH - "@executable_path/../../lib") - else() -- set(INSTALL_DESTINATION bin) -+ set(INSTALL_DESTINATION ${CMAKE_INSTALL_BINDIR}) - endif() - - install(TARGETS c-index-test -diff --git a/tools/clang-format/CMakeLists.txt b/tools/clang-format/CMakeLists.txt -index 35ecdb11253c..d77d75de0094 100644 ---- a/tools/clang-format/CMakeLists.txt -+++ b/tools/clang-format/CMakeLists.txt -@@ -21,20 +21,20 @@ if( LLVM_LIB_FUZZING_ENGINE OR LLVM_USE_SANITIZE_COVERAGE ) - endif() - - install(PROGRAMS clang-format-bbedit.applescript -- DESTINATION share/clang -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang - COMPONENT clang-format) - install(PROGRAMS clang-format-diff.py -- DESTINATION share/clang -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang - COMPONENT clang-format) - install(PROGRAMS clang-format-sublime.py -- DESTINATION share/clang -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang - COMPONENT clang-format) - install(PROGRAMS clang-format.el -- DESTINATION share/clang -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang - COMPONENT clang-format) - install(PROGRAMS clang-format.py -- DESTINATION share/clang -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang - COMPONENT clang-format) - install(PROGRAMS git-clang-format -- DESTINATION bin -+ DESTINATION ${CMAKE_INSTALL_BINDIR} - COMPONENT clang-format) -diff --git a/tools/clang-rename/CMakeLists.txt b/tools/clang-rename/CMakeLists.txt -index cda8e29ec5b1..0134d8ccd70b 100644 ---- a/tools/clang-rename/CMakeLists.txt -+++ b/tools/clang-rename/CMakeLists.txt -@@ -19,8 +19,8 @@ clang_target_link_libraries(clang-rename - ) - - install(PROGRAMS clang-rename.py -- DESTINATION share/clang -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang - COMPONENT clang-rename) - install(PROGRAMS clang-rename.el -- DESTINATION share/clang -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang - COMPONENT clang-rename) -diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt -index 51ff2e7e1565..1ed5f8a079a1 100644 ---- a/tools/libclang/CMakeLists.txt -+++ b/tools/libclang/CMakeLists.txt -@@ -166,7 +166,7 @@ endif() - if(INTERNAL_INSTALL_PREFIX) - set(LIBCLANG_HEADERS_INSTALL_DESTINATION "${INTERNAL_INSTALL_PREFIX}/include") - else() -- set(LIBCLANG_HEADERS_INSTALL_DESTINATION include) -+ set(LIBCLANG_HEADERS_INSTALL_DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) - endif() - - install(DIRECTORY ../../include/clang-c -@@ -196,7 +196,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS}) - COMPONENT - libclang-python-bindings - DESTINATION -- "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages") -+ "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages") - endforeach() - if(NOT LLVM_ENABLE_IDE) - add_custom_target(libclang-python-bindings) -diff --git a/tools/scan-build/CMakeLists.txt b/tools/scan-build/CMakeLists.txt -index ec0702d76f18..d25d982f51da 100644 ---- a/tools/scan-build/CMakeLists.txt -+++ b/tools/scan-build/CMakeLists.txt -@@ -47,7 +47,7 @@ if(CLANG_INSTALL_SCANBUILD) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile}) - install(PROGRAMS bin/${BinFile} -- DESTINATION bin -+ DESTINATION ${CMAKE_INSTALL_BINDIR} - COMPONENT scan-build) - endforeach() - -@@ -61,7 +61,7 @@ if(CLANG_INSTALL_SCANBUILD) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/libexec/${LibexecFile}) - install(PROGRAMS libexec/${LibexecFile} -- DESTINATION libexec -+ DESTINATION ${CMAKE_INSTALL_LIBEXECDIR} - COMPONENT scan-build) - endforeach() - -@@ -89,7 +89,7 @@ if(CLANG_INSTALL_SCANBUILD) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile}) - install(FILES share/scan-build/${ShareFile} -- DESTINATION share/scan-build -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-build - COMPONENT scan-build) - endforeach() - -diff --git a/tools/scan-view/CMakeLists.txt b/tools/scan-view/CMakeLists.txt -index dd3d33439299..fea19c12ce70 100644 ---- a/tools/scan-view/CMakeLists.txt -+++ b/tools/scan-view/CMakeLists.txt -@@ -19,7 +19,7 @@ if(CLANG_INSTALL_SCANVIEW) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile}) - install(PROGRAMS bin/${BinFile} -- DESTINATION bin -+ DESTINATION ${CMAKE_INSTALL_BINDIR} - COMPONENT scan-view) - endforeach() - -@@ -33,7 +33,7 @@ if(CLANG_INSTALL_SCANVIEW) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/${ShareFile}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-view/${ShareFile}) - install(FILES share/${ShareFile} -- DESTINATION share/scan-view -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-view - COMPONENT scan-view) - endforeach() - -diff --git a/utils/hmaptool/CMakeLists.txt b/utils/hmaptool/CMakeLists.txt -index 62f2de0cb15c..6aa66825b6ec 100644 ---- a/utils/hmaptool/CMakeLists.txt -+++ b/utils/hmaptool/CMakeLists.txt -@@ -10,7 +10,7 @@ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HM - - list(APPEND Depends ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HMAPTOOL}) - install(PROGRAMS ${CLANG_HMAPTOOL} -- DESTINATION bin -+ DESTINATION ${CMAKE_INSTALL_BINDIR} - COMPONENT hmaptool) - - add_custom_target(hmaptool ALL DEPENDS ${Depends}) diff --git a/pkgs/by-name/ll/llvm/13/clang/purity.patch b/pkgs/by-name/ll/llvm/13/clang/purity.patch deleted file mode 100644 index deb230a..0000000 --- a/pkgs/by-name/ll/llvm/13/clang/purity.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001 -From: Will Dietz -Date: Thu, 18 May 2017 11:56:12 -0500 -Subject: [PATCH] "purity" patch for 5.0 - ---- - lib/Driver/ToolChains/Gnu.cpp | 7 ------- - 1 file changed, 7 deletions(-) - -diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp -index fe3c0191bb..c6a482bece 100644 ---- a/lib/Driver/ToolChains/Gnu.cpp -+++ b/lib/Driver/ToolChains/Gnu.cpp -@@ -487,12 +487,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA, - if (!IsStatic) { - if (Args.hasArg(options::OPT_rdynamic)) - CmdArgs.push_back("-export-dynamic"); -- -- if (!Args.hasArg(options::OPT_shared) && !IsStaticPIE) { -- CmdArgs.push_back("-dynamic-linker"); -- CmdArgs.push_back(Args.MakeArgString(Twine(D.DyldPrefix) + -- ToolChain.getDynamicLinker(Args))); -- } - } - - CmdArgs.push_back("-o"); --- -2.11.0 diff --git a/pkgs/by-name/ll/llvm/13/clang/revert-malloc-alignment-assumption.patch b/pkgs/by-name/ll/llvm/13/clang/revert-malloc-alignment-assumption.patch deleted file mode 100644 index f8e55ff..0000000 --- a/pkgs/by-name/ll/llvm/13/clang/revert-malloc-alignment-assumption.patch +++ /dev/null @@ -1,78 +0,0 @@ ---- b/include/clang/Basic/TargetInfo.h -+++ a/include/clang/Basic/TargetInfo.h -@@ -612,8 +612,8 @@ - } - - /// Return the largest alignment for which a suitably-sized allocation with -+ /// '::operator new(size_t)' is guaranteed to produce a correctly-aligned -+ /// pointer. -- /// '::operator new(size_t)' or 'malloc' is guaranteed to produce a -- /// correctly-aligned pointer. - unsigned getNewAlign() const { - return NewAlign ? NewAlign : std::max(LongDoubleAlign, LongLongAlign); - } ---- b/lib/CodeGen/CGCall.cpp -+++ a/lib/CodeGen/CGCall.cpp -@@ -2048,24 +2048,6 @@ - // allows it to work on indirect virtual function calls. - if (AttrOnCallSite && TargetDecl->hasAttr()) - FuncAttrs.addAttribute(llvm::Attribute::NoMerge); -- -- // Add known guaranteed alignment for allocation functions. -- if (unsigned BuiltinID = Fn->getBuiltinID()) { -- switch (BuiltinID) { -- case Builtin::BIaligned_alloc: -- case Builtin::BIcalloc: -- case Builtin::BImalloc: -- case Builtin::BImemalign: -- case Builtin::BIrealloc: -- case Builtin::BIstrdup: -- case Builtin::BIstrndup: -- RetAttrs.addAlignmentAttr(Context.getTargetInfo().getNewAlign() / -- Context.getTargetInfo().getCharWidth()); -- break; -- default: -- break; -- } -- } - } - - // 'const', 'pure' and 'noalias' attributed functions are also nounwind. ---- b/test/CodeGen/alloc-fns-alignment.c -+++ /dev/null -@@ -1,35 +0,0 @@ --// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm < %s | FileCheck %s --check-prefix=ALIGN16 --// RUN: %clang_cc1 -triple x86_64-windows-msvc -emit-llvm < %s | FileCheck %s --check-prefix=ALIGN16 --// RUN: %clang_cc1 -triple i386-apple-darwin -emit-llvm < %s | FileCheck %s --check-prefix=ALIGN16 --// RUN: %clang_cc1 -triple i386-unknown-linux-gnu -emit-llvm < %s | FileCheck %s --check-prefix=ALIGN8 --// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fno-builtin-malloc -emit-llvm < %s | FileCheck %s --check-prefix=NOBUILTIN-MALLOC --// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fno-builtin-calloc -emit-llvm < %s | FileCheck %s --check-prefix=NOBUILTIN-CALLOC --// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fno-builtin-realloc -emit-llvm < %s | FileCheck %s --check-prefix=NOBUILTIN-REALLOC -- --typedef __SIZE_TYPE__ size_t; -- --void *malloc(size_t); --void *calloc(size_t, size_t); --void *realloc(void *, size_t); -- --void *malloc_test(size_t n) { -- return malloc(n); --} -- --void *calloc_test(size_t n) { -- return calloc(1, n); --} -- --void *raalloc_test(void *p, size_t n) { -- return realloc(p, n); --} -- --// ALIGN16: align 16 i8* @malloc --// ALIGN16: align 16 i8* @calloc --// ALIGN16: align 16 i8* @realloc --// ALIGN8: align 8 i8* @malloc --// ALIGN8: align 8 i8* @calloc --// ALIGN8: align 8 i8* @realloc --// NOBUILTIN-MALLOC: declare i8* @malloc --// NOBUILTIN-CALLOC: declare i8* @calloc --// NOBUILTIN-REALLOC: declare i8* @realloc diff --git a/pkgs/by-name/ll/llvm/13/compiler-rt/X86-support-extension.patch b/pkgs/by-name/ll/llvm/13/compiler-rt/X86-support-extension.patch deleted file mode 100644 index 66742e5..0000000 --- a/pkgs/by-name/ll/llvm/13/compiler-rt/X86-support-extension.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt -index 3a66dd9c3fb..7efc85d9f9f 100644 ---- a/lib/builtins/CMakeLists.txt -+++ b/lib/builtins/CMakeLists.txt -@@ -345,4 +345,8 @@ if (NOT MSVC) - -+ set(i486_SOURCES ${i386_SOURCES}) -+ set(i586_SOURCES ${i386_SOURCES}) -+ set(i686_SOURCES ${i386_SOURCES}) -+ - if (WIN32) - set(i386_SOURCES - ${i386_SOURCES} -@@ -608,6 +612,7 @@ else () - endif() - - foreach (arch ${BUILTIN_SUPPORTED_ARCH}) -+ message("arch: ${arch}") - if (CAN_TARGET_${arch}) - # For ARM archs, exclude any VFP builtins if VFP is not supported - if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$") diff --git a/pkgs/by-name/ll/llvm/13/compiler-rt/armv7l.patch b/pkgs/by-name/ll/llvm/13/compiler-rt/armv7l.patch deleted file mode 100644 index 6818684..0000000 --- a/pkgs/by-name/ll/llvm/13/compiler-rt/armv7l.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff -ur compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake ---- compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake 2020-03-24 00:01:02.000000000 +0900 -+++ compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake 2020-05-10 03:42:00.883450706 +0900 -@@ -37,6 +37,6 @@ - - set(ARM64 aarch64) --set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv8m.main armv8.1m.main) -+set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv7l armv8m.main armv8.1m.main) - set(HEXAGON hexagon) - set(X86 i386) - set(X86_64 x86_64) -diff -ur compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt ---- compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt 2020-03-24 00:01:02.000000000 +0900 -+++ compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt 2020-05-10 03:44:49.468579650 +0900 -@@ -555,6 +555,7 @@ - set(armv7_SOURCES ${arm_SOURCES}) - set(armv7s_SOURCES ${arm_SOURCES}) - set(armv7k_SOURCES ${arm_SOURCES}) -+set(armv7l_SOURCES ${arm_SOURCES}) - set(arm64_SOURCES ${aarch64_SOURCES}) - - # macho_embedded archs -@@ -705,7 +705,7 @@ - foreach (arch ${BUILTIN_SUPPORTED_ARCH}) - if (CAN_TARGET_${arch}) - # For ARM archs, exclude any VFP builtins if VFP is not supported -- if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em|armv8m.main|armv8.1m.main)$") -+ if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7l|armv7m|armv7em|armv8m.main|armv8.1m.main)$") - string(REPLACE ";" " " _TARGET_${arch}_CFLAGS "${TARGET_${arch}_CFLAGS}") - check_compile_definition(__VFP_FP__ "${CMAKE_C_FLAGS} ${_TARGET_${arch}_CFLAGS}" COMPILER_RT_HAS_${arch}_VFP) - if(NOT COMPILER_RT_HAS_${arch}_VFP) diff --git a/pkgs/by-name/ll/llvm/13/compiler-rt/codesign.patch b/pkgs/by-name/ll/llvm/13/compiler-rt/codesign.patch deleted file mode 100644 index 065959d..0000000 --- a/pkgs/by-name/ll/llvm/13/compiler-rt/codesign.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 3dec5f3475a26aeb4678627795c4b67c6b7b4785 Mon Sep 17 00:00:00 2001 -From: Will Dietz -Date: Tue, 19 Sep 2017 13:13:06 -0500 -Subject: [PATCH] remove codesign use on Apple, disable ios sim testing that - needs it - ---- - cmake/Modules/AddCompilerRT.cmake | 8 ------ - test/asan/CMakeLists.txt | 52 --------------------------------------- - test/tsan/CMakeLists.txt | 47 ----------------------------------- - 3 files changed, 107 deletions(-) - -diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake -index bc69ec95c419..9f100fdcec2f 100644 ---- a/cmake/Modules/AddCompilerRT.cmake -+++ b/cmake/Modules/AddCompilerRT.cmake -@@ -366,14 +366,6 @@ function(add_compiler_rt_runtime name type) - set_target_properties(${libname} PROPERTIES IMPORT_PREFIX "") - set_target_properties(${libname} PROPERTIES IMPORT_SUFFIX ".lib") - endif() -- if(APPLE) -- # Ad-hoc sign the dylibs -- add_custom_command(TARGET ${libname} -- POST_BUILD -- COMMAND codesign --sign - $ -- WORKING_DIRECTORY ${COMPILER_RT_OUTPUT_LIBRARY_DIR} -- ) -- endif() - endif() - - set(parent_target_arg) -2.14.1 - diff --git a/pkgs/by-name/ll/llvm/13/compiler-rt/darwin-targetconditionals.patch b/pkgs/by-name/ll/llvm/13/compiler-rt/darwin-targetconditionals.patch deleted file mode 100644 index 425dc2a..0000000 --- a/pkgs/by-name/ll/llvm/13/compiler-rt/darwin-targetconditionals.patch +++ /dev/null @@ -1,71 +0,0 @@ -diff --git a/lib/sanitizer_common/sanitizer_mac.cpp b/lib/sanitizer_common/sanitizer_mac.cpp ---- a/lib/sanitizer_common/sanitizer_mac.cpp -+++ b/lib/sanitizer_common/sanitizer_mac.cpp -@@ -613,9 +613,15 @@ HandleSignalMode GetHandleSignalMode(int signum) { - // Offset example: - // XNU 17 -- macOS 10.13 -- iOS 11 -- tvOS 11 -- watchOS 4 - constexpr u16 GetOSMajorKernelOffset() { -- if (TARGET_OS_OSX) return 4; -- if (TARGET_OS_IOS || TARGET_OS_TV) return 6; -- if (TARGET_OS_WATCH) return 13; -+#if TARGET_OS_OSX -+ return 4; -+#endif -+#if TARGET_OS_IOS || TARGET_OS_TV -+ return 6; -+#endif -+#if TARGET_OS_WATCH -+ return 13; -+#endif - } - - using VersStr = char[64]; -@@ -627,13 +633,13 @@ static uptr ApproximateOSVersionViaKernelVersion(VersStr vers) { - u16 os_major = kernel_major - offset; - - const char *format = "%d.0"; -- if (TARGET_OS_OSX) { -- if (os_major >= 16) { // macOS 11+ -- os_major -= 5; -- } else { // macOS 10.15 and below -- format = "10.%d"; -- } -+#if TARGET_OS_OSX -+ if (os_major >= 16) { // macOS 11+ -+ os_major -= 5; -+ } else { // macOS 10.15 and below -+ format = "10.%d"; - } -+#endif - return internal_snprintf(vers, sizeof(VersStr), format, os_major); - } - -@@ -681,15 +687,14 @@ void ParseVersion(const char *vers, u16 *major, u16 *minor) { - // Aligned versions example: - // macOS 10.15 -- iOS 13 -- tvOS 13 -- watchOS 6 - static void MapToMacos(u16 *major, u16 *minor) { -- if (TARGET_OS_OSX) -- return; -- -- if (TARGET_OS_IOS || TARGET_OS_TV) -+#if !TARGET_OS_OSX -+#if TARGET_OS_IOS || TARGET_OS_TV - *major += 2; -- else if (TARGET_OS_WATCH) -+#elif TARGET_OS_WATCH - *major += 9; -- else -+#else - UNREACHABLE("unsupported platform"); -+#endif - - if (*major >= 16) { // macOS 11+ - *major -= 5; -@@ -697,6 +702,7 @@ static void MapToMacos(u16 *major, u16 *minor) { - *minor = *major; - *major = 10; - } -+#endif - } - - static MacosVersion GetMacosAlignedVersionInternal() { diff --git a/pkgs/by-name/ll/llvm/13/compiler-rt/normalize-var.patch b/pkgs/by-name/ll/llvm/13/compiler-rt/normalize-var.patch deleted file mode 100644 index 135cf62..0000000 --- a/pkgs/by-name/ll/llvm/13/compiler-rt/normalize-var.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/compiler-rt/cmake/Modules/CompilerRTUtils.cmake b/compiler-rt/cmake/Modules/CompilerRTUtils.cmake -index f1f46fb9599c..6f19e69507ba 100644 ---- a/cmake/Modules/CompilerRTUtils.cmake -+++ b/cmake/Modules/CompilerRTUtils.cmake -@@ -302,8 +302,9 @@ macro(load_llvm_config) - # Get some LLVM variables from LLVMConfig. - include("${LLVM_CMAKE_PATH}/LLVMConfig.cmake") - -- set(LLVM_LIBRARY_OUTPUT_INTDIR -- ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) -+ get_filename_component(LLVM_LIBRARY_OUTPUT_INTDIR -+ ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX} -+ REALPATH) - endif() - endmacro() - diff --git a/pkgs/by-name/ll/llvm/13/default.nix b/pkgs/by-name/ll/llvm/13/default.nix deleted file mode 100644 index 018fb0c..0000000 --- a/pkgs/by-name/ll/llvm/13/default.nix +++ /dev/null @@ -1,388 +0,0 @@ -{ 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" */; - # rev = /* commit SHA */; - # 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"; } - # 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 - -}: - -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 - # 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; - - 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" - ''; - - bintoolsNoLibc' = - if bootBintoolsNoLibc == null - then tools.bintoolsNoLibc - else bootBintoolsNoLibc; - bintools' = - if bootBintools == null - then tools.bintools - else bootBintools; - - in { - - 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; - - 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; - - 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 - }); - - # 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; - - 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; - }; - - 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 - { - 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 - && !stdenv.targetPlatform.isAarch64 - && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0") - ) ./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. - - 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 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-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; - - stdenv = overrideCC stdenv buildLlvmTools.clang; - - libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang; - - 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/" - ]; - }) - ]; - 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; - }; - - 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) diff --git a/pkgs/by-name/ll/llvm/13/libunwind/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/13/libunwind/gnu-install-dirs.patch deleted file mode 100644 index 8cd25c5..0000000 --- a/pkgs/by-name/ll/llvm/13/libunwind/gnu-install-dirs.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 81eddbc24879..e2afb2002150 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -23,6 +23,8 @@ set(LIBUNWIND_LIBCXX_PATH "${CMAKE_CURRENT_LIST_DIR}/../libcxx" CACHE PATH - if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBUNWIND_STANDALONE_BUILD) - project(libunwind LANGUAGES C CXX ASM) - -+ include(GNUInstallDirs) -+ - set(PACKAGE_NAME libunwind) - set(PACKAGE_VERSION 13.0.0git) - set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") -@@ -116,7 +118,7 @@ set(CMAKE_MODULE_PATH - - if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) - set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}) -- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH -+ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH - "Path where built libunwind libraries should be installed.") - if(LIBCXX_LIBDIR_SUBDIR) - string(APPEND LIBUNWIND_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR}) -@@ -124,11 +126,11 @@ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) - endif() - elseif(LLVM_LIBRARY_OUTPUT_INTDIR) - set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}) -- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX} CACHE PATH -+ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} CACHE PATH - "Path where built libunwind libraries should be installed.") - else() - set(LIBUNWIND_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBUNWIND_LIBDIR_SUFFIX}) -- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX} CACHE PATH -+ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} CACHE PATH - "Path where built libunwind libraries should be installed.") - endif() - diff --git a/pkgs/by-name/ll/llvm/13/lld/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/13/lld/gnu-install-dirs.patch deleted file mode 100644 index 61e2f0e..0000000 --- a/pkgs/by-name/ll/llvm/13/lld/gnu-install-dirs.patch +++ /dev/null @@ -1,68 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index d4e561b50d8f..cfa5bdd79c2a 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -6,6 +6,8 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) - set(CMAKE_INCLUDE_CURRENT_DIR ON) - set(LLD_BUILT_STANDALONE TRUE) - -+ include(GNUInstallDirs) -+ - find_program(LLVM_CONFIG_PATH "llvm-config" DOC "Path to llvm-config binary") - if(NOT LLVM_CONFIG_PATH) - message(FATAL_ERROR "llvm-config not found: specify LLVM_CONFIG_PATH") -@@ -179,7 +181,7 @@ include_directories(BEFORE - - if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - install(DIRECTORY include/ -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - FILES_MATCHING - PATTERN "*.h" - ) -diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake -index 23df41312403..d62372c88de7 100644 ---- a/cmake/modules/AddLLD.cmake -+++ b/cmake/modules/AddLLD.cmake -@@ -20,9 +20,9 @@ macro(add_lld_library name) - install(TARGETS ${name} - COMPONENT ${name} - ${export_to_lldtargets} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- RUNTIME DESTINATION bin) -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} -+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - - if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES) - add_llvm_install_targets(install-${name} -@@ -54,7 +54,7 @@ macro(add_lld_tool name) - - install(TARGETS ${name} - ${export_to_lldtargets} -- RUNTIME DESTINATION bin -+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - COMPONENT ${name}) - - if(NOT CMAKE_CONFIGURATION_TYPES) -@@ -69,5 +69,5 @@ endmacro() - macro(add_lld_symlink name dest) - add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE) - # Always generate install targets -- llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE) -+ llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE) - endmacro() -diff --git a/tools/lld/CMakeLists.txt b/tools/lld/CMakeLists.txt -index 5cff736ff57f..64e775c771b9 100644 ---- a/tools/lld/CMakeLists.txt -+++ b/tools/lld/CMakeLists.txt -@@ -21,7 +21,7 @@ target_link_libraries(lld - ) - - install(TARGETS lld -- RUNTIME DESTINATION bin) -+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - - if(NOT LLD_SYMLINKS_TO_CREATE) - set(LLD_SYMLINKS_TO_CREATE diff --git a/pkgs/by-name/ll/llvm/13/lldb/cpu_subtype_arm64e_replacement.patch b/pkgs/by-name/ll/llvm/13/lldb/cpu_subtype_arm64e_replacement.patch deleted file mode 100644 index 20d35c9..0000000 --- a/pkgs/by-name/ll/llvm/13/lldb/cpu_subtype_arm64e_replacement.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/source/Host/macosx/objcxx/HostInfoMacOSX.mm b/source/Host/macosx/objcxx/HostInfoMacOSX.mm ---- a/source/Host/macosx/objcxx/HostInfoMacOSX.mm -+++ b/source/Host/macosx/objcxx/HostInfoMacOSX.mm -@@ -233,7 +233,7 @@ void HostInfoMacOSX::ComputeHostArchitectureSupport(ArchSpec &arch_32, - len = sizeof(is_64_bit_capable); - ::sysctlbyname("hw.cpu64bit_capable", &is_64_bit_capable, &len, NULL, 0); - -- if (cputype == CPU_TYPE_ARM64 && cpusubtype == CPU_SUBTYPE_ARM64E) { -+ if (cputype == CPU_TYPE_ARM64 && cpusubtype == ((cpu_subtype_t) 2)) { // CPU_SUBTYPE_ARM64E is not available in the macOS 10.12 headers - // The arm64e architecture is a preview. Pretend the host architecture - // is arm64. - cpusubtype = CPU_SUBTYPE_ARM64_ALL; diff --git a/pkgs/by-name/ll/llvm/13/lldb/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/13/lldb/gnu-install-dirs.patch deleted file mode 100644 index afc945c..0000000 --- a/pkgs/by-name/ll/llvm/13/lldb/gnu-install-dirs.patch +++ /dev/null @@ -1,91 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index b5633e21c56a..f2f1035e9238 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -10,6 +10,8 @@ set(CMAKE_MODULE_PATH - # If we are not building as part of LLVM, build LLDB as a standalone project, - # using LLVM as an external library. - if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) -+ include(GNUInstallDirs) -+ - project(lldb) - include(LLDBStandalone) - -diff --git a/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake -index 4ed5c647c5d2..89f96e710d55 100644 ---- a/cmake/modules/AddLLDB.cmake -+++ b/cmake/modules/AddLLDB.cmake -@@ -107,13 +107,13 @@ function(add_lldb_library name) - endif() - - if(PARAM_SHARED) -- set(install_dest lib${LLVM_LIBDIR_SUFFIX}) -+ set(install_dest ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) - if(PARAM_INSTALL_PREFIX) - set(install_dest ${PARAM_INSTALL_PREFIX}) - endif() - # RUNTIME is relevant for DLL platforms, FRAMEWORK for macOS - install(TARGETS ${name} COMPONENT ${name} -- RUNTIME DESTINATION bin -+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${install_dest} - ARCHIVE DESTINATION ${install_dest} - FRAMEWORK DESTINATION ${install_dest}) -diff --git a/cmake/modules/LLDBConfig.cmake b/cmake/modules/LLDBConfig.cmake -index 2fdf1502d055..37364341ff8b 100644 ---- a/cmake/modules/LLDBConfig.cmake -+++ b/cmake/modules/LLDBConfig.cmake -@@ -225,7 +225,7 @@ include_directories(BEFORE - if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - install(DIRECTORY include/ - COMPONENT lldb-headers -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - FILES_MATCHING - PATTERN "*.h" - PATTERN ".cmake" EXCLUDE -@@ -233,7 +233,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - - install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/ - COMPONENT lldb-headers -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - FILES_MATCHING - PATTERN "*.h" - PATTERN ".cmake" EXCLUDE -diff --git a/tools/intel-features/CMakeLists.txt b/tools/intel-features/CMakeLists.txt -index 734167e51bc5..f95761b5df58 100644 ---- a/tools/intel-features/CMakeLists.txt -+++ b/tools/intel-features/CMakeLists.txt -@@ -65,4 +65,4 @@ if (LLDB_ENABLE_PYTHON AND LLDB_BUILD_INTEL_PT) - endif() - - install(TARGETS lldbIntelFeatures -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}) -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) -diff --git a/cmake/modules/LLDBStandalone.cmake b/cmake/modules/LLDBStandalone.cmake -index 752113b..010f187 100644 ---- a/cmake/modules/LLDBStandalone.cmake -+++ b/cmake/modules/LLDBStandalone.cmake -@@ -62,7 +62,7 @@ endif() - - # They are used as destination of target generators. - set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin) --set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) -+set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) - if(WIN32 OR CYGWIN) - # DLL platform -- put DLLs into bin. - set(LLVM_SHLIB_OUTPUT_INTDIR ${LLVM_RUNTIME_OUTPUT_INTDIR}) -diff --git a/CMakeLists.txt b/CMakeLists.txt -index b5633e2..86e4738 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -79,7 +79,7 @@ if (LLDB_ENABLE_PYTHON) - if(LLDB_BUILD_FRAMEWORK) - set(lldb_python_target_dir "${LLDB_FRAMEWORK_ABSOLUTE_BUILD_DIR}/LLDB.framework/Resources/Python/lldb") - else() -- set(lldb_python_target_dir "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${LLDB_PYTHON_RELATIVE_PATH}/lldb") -+ set(lldb_python_target_dir "${CMAKE_INSTALL_LIBDIR}/../${LLDB_PYTHON_RELATIVE_PATH}/lldb") - endif() - get_target_property(lldb_python_bindings_dir swig_wrapper_python BINARY_DIR) - finish_swig_python("lldb-python" "${lldb_python_bindings_dir}" "${lldb_python_target_dir}") diff --git a/pkgs/by-name/ll/llvm/13/lldb/procfs.patch b/pkgs/by-name/ll/llvm/13/lldb/procfs.patch deleted file mode 100644 index b075dba..0000000 --- a/pkgs/by-name/ll/llvm/13/lldb/procfs.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- a/source/Plugins/Process/Linux/Procfs.h -+++ b/source/Plugins/Process/Linux/Procfs.h -@@ -11,21 +11,12 @@ - // sys/procfs.h on Android/Linux for all supported architectures. - - #include -+#include - --#ifdef __ANDROID__ --#if defined(__arm64__) || defined(__aarch64__) --typedef unsigned long elf_greg_t; --typedef elf_greg_t -- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))]; --typedef struct user_fpsimd_state elf_fpregset_t; --#ifndef NT_FPREGSET --#define NT_FPREGSET NT_PRFPREG --#endif // NT_FPREGSET --#elif defined(__mips__) --#ifndef NT_FPREGSET --#define NT_FPREGSET NT_PRFPREG --#endif // NT_FPREGSET --#endif --#else // __ANDROID__ -+#if !defined(__GLIBC__) && defined(__powerpc__) -+#define pt_regs musl_pt_regs -+#include -+#undef pt_regs -+#else - #include --#endif // __ANDROID__ -+#endif diff --git a/pkgs/by-name/ll/llvm/13/lldb/resource-dir.patch b/pkgs/by-name/ll/llvm/13/lldb/resource-dir.patch deleted file mode 100644 index e0db80a..0000000 --- a/pkgs/by-name/ll/llvm/13/lldb/resource-dir.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/lldb/cmake/modules/LLDBConfig.cmake b/lldb/cmake/modules/LLDBConfig.cmake -index 37364341ff8b..7f74c1a3e257 100644 ---- a/cmake/modules/LLDBConfig.cmake -+++ b/cmake/modules/LLDBConfig.cmake -@@ -257,7 +257,7 @@ if (NOT TARGET clang-resource-headers) - # Iterate over the possible places where the external resource directory - # could be and pick the first that exists. - foreach(CANDIDATE "${Clang_DIR}/../.." "${LLVM_DIR}" "${LLVM_LIBRARY_DIRS}" -- "${LLVM_BUILD_LIBRARY_DIR}" -+ "${LLVM_BUILD_LIBRARY_DIR}" "@clangLibDir@" - "${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}") - # Build the resource directory path by appending 'clang/'. - set(CANDIDATE_RESOURCE_DIR "${CANDIDATE}/clang/${LLDB_CLANG_RESOURCE_DIR_NAME}") diff --git a/pkgs/by-name/ll/llvm/13/llvm/default.nix b/pkgs/by-name/ll/llvm/13/llvm/default.nix deleted file mode 100644 index 58e742b..0000000 --- a/pkgs/by-name/ll/llvm/13/llvm/default.nix +++ /dev/null @@ -1,315 +0,0 @@ -{ 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)); - - # Ordinarily we would just the `doCheck` and `checkDeps` functionality - # `mkDerivation` gives us to manage our test dependencies (instead of breaking - # out `doCheck` as a package level attribute). - # - # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in - # particular the children it uses to do feature detection. - # - # This means that python deps we add to `checkDeps` (which the python - # interpreter is made aware of via `$PYTHONPATH` – populated by the python - # setup hook) are not picked up by `lit` which causes it to skip tests. - # - # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work - # because this package is shadowed in `$PATH` by the regular `python3` - # package. - # - # 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" - ( - 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 - ]) - ) - ]; - - postBuild = '' - rm -fR $out - ''; - - 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/llvm/gnu-install-dirs-polly.patch b/pkgs/by-name/ll/llvm/13/llvm/gnu-install-dirs-polly.patch deleted file mode 100644 index 68f3c45..0000000 --- a/pkgs/by-name/ll/llvm/13/llvm/gnu-install-dirs-polly.patch +++ /dev/null @@ -1,105 +0,0 @@ -diff --git a/tools/polly/CMakeLists.txt b/tools/polly/CMakeLists.txt -index ca7c04c565bb..6ed5db5dd4f8 100644 ---- a/tools/polly/CMakeLists.txt -+++ b/tools/polly/CMakeLists.txt -@@ -2,7 +2,11 @@ - if (NOT DEFINED LLVM_MAIN_SRC_DIR) - project(Polly) - cmake_minimum_required(VERSION 3.13.4) -+endif() -+ -+include(GNUInstallDirs) - -+if (NOT DEFINED LLVM_MAIN_SRC_DIR) - # Where is LLVM installed? - find_package(LLVM CONFIG REQUIRED) - set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR}) -@@ -122,13 +126,13 @@ include_directories( - - if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - install(DIRECTORY include/ -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - FILES_MATCHING - PATTERN "*.h" - ) - - install(DIRECTORY ${POLLY_BINARY_DIR}/include/ -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - FILES_MATCHING - PATTERN "*.h" - PATTERN "CMakeFiles" EXCLUDE -diff --git a/tools/polly/cmake/CMakeLists.txt b/tools/polly/cmake/CMakeLists.txt -index 7cc129ba2e90..137be25e4b80 100644 ---- a/tools/polly/cmake/CMakeLists.txt -+++ b/tools/polly/cmake/CMakeLists.txt -@@ -79,18 +79,18 @@ file(GENERATE - - # Generate PollyConfig.cmake for the install tree. - unset(POLLY_EXPORTS) --set(POLLY_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") -+set(POLLY_INSTALL_PREFIX "") - set(POLLY_CONFIG_LLVM_CMAKE_DIR "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}") --set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}") --set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}") -+set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}") -+set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") - if (POLLY_BUNDLED_ISL) - set(POLLY_CONFIG_INCLUDE_DIRS -- "${POLLY_INSTALL_PREFIX}/include" -- "${POLLY_INSTALL_PREFIX}/include/polly" -+ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}" -+ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}/polly" - ) - else() - set(POLLY_CONFIG_INCLUDE_DIRS -- "${POLLY_INSTALL_PREFIX}/include" -+ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_INCLUDEDIR}" - ${ISL_INCLUDE_DIRS} - ) - endif() -@@ -100,12 +100,12 @@ endif() - foreach(tgt IN LISTS POLLY_CONFIG_EXPORTED_TARGETS) - get_target_property(tgt_type ${tgt} TYPE) - if (tgt_type STREQUAL "EXECUTABLE") -- set(tgt_prefix "bin/") -+ set(tgt_prefix "${CMAKE_INSTALL_BINDIR}/") - else() -- set(tgt_prefix "lib/") -+ set(tgt_prefix "${CMAKE_INSTALL_LIBDIR}/") - endif() - -- set(tgt_path "${CMAKE_INSTALL_PREFIX}/${tgt_prefix}$") -+ set(tgt_path "${tgt_prefix}$") - file(RELATIVE_PATH tgt_path ${POLLY_CONFIG_CMAKE_DIR} ${tgt_path}) - - if (NOT tgt_type STREQUAL "INTERFACE_LIBRARY") -diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake -index 518a09b45a42..bd9d6f5542ad 100644 ---- a/tools/polly/cmake/polly_macros.cmake -+++ b/tools/polly/cmake/polly_macros.cmake -@@ -44,8 +44,8 @@ macro(add_polly_library name) - if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly") - install(TARGETS ${name} - EXPORT LLVMExports -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}) -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) - endif() - set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name}) - endmacro(add_polly_library) -diff --git a/tools/polly/lib/External/CMakeLists.txt b/tools/polly/lib/External/CMakeLists.txt -index 8991094d92c7..178d8ad606bb 100644 ---- a/tools/polly/lib/External/CMakeLists.txt -+++ b/tools/polly/lib/External/CMakeLists.txt -@@ -275,7 +275,7 @@ if (POLLY_BUNDLED_ISL) - install(DIRECTORY - ${ISL_SOURCE_DIR}/include/ - ${ISL_BINARY_DIR}/include/ -- DESTINATION include/polly -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/polly - FILES_MATCHING - PATTERN "*.h" - PATTERN "CMakeFiles" EXCLUDE diff --git a/pkgs/by-name/ll/llvm/13/llvm/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/13/llvm/gnu-install-dirs.patch deleted file mode 100644 index 18fa5fc..0000000 --- a/pkgs/by-name/ll/llvm/13/llvm/gnu-install-dirs.patch +++ /dev/null @@ -1,381 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 135036f509d2..265c36f8211b 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -270,15 +270,21 @@ if (CMAKE_BUILD_TYPE AND - message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}") - endif() - -+include(GNUInstallDirs) -+ - set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" ) - --set(LLVM_TOOLS_INSTALL_DIR "bin" CACHE STRING "Path for binary subdirectory (defaults to 'bin')") -+set(LLVM_TOOLS_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}" CACHE STRING -+ "Path for binary subdirectory (defaults to 'bin')") - mark_as_advanced(LLVM_TOOLS_INSTALL_DIR) - - set(LLVM_UTILS_INSTALL_DIR "${LLVM_TOOLS_INSTALL_DIR}" CACHE STRING - "Path to install LLVM utilities (enabled by LLVM_INSTALL_UTILS=ON) (defaults to LLVM_TOOLS_INSTALL_DIR)") - mark_as_advanced(LLVM_UTILS_INSTALL_DIR) - -+set(LLVM_INSTALL_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/cmake/llvm" CACHE STRING -+ "Path for CMake subdirectory (defaults to lib/cmake/llvm)" ) -+ - # They are used as destination of target generators. - set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin) - set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) -@@ -581,9 +587,9 @@ option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF) - option (LLVM_ENABLE_OCAMLDOC "Build OCaml bindings documentation." ON) - option (LLVM_ENABLE_BINDINGS "Build bindings." ON) - --set(LLVM_INSTALL_DOXYGEN_HTML_DIR "share/doc/llvm/doxygen-html" -+set(LLVM_INSTALL_DOXYGEN_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html" - CACHE STRING "Doxygen-generated HTML documentation install directory") --set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "share/doc/llvm/ocaml-html" -+set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html" - CACHE STRING "OCamldoc-generated HTML documentation install directory") - - option (LLVM_BUILD_EXTERNAL_COMPILER_RT -@@ -1048,7 +1054,7 @@ endif() - - if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - install(DIRECTORY include/llvm include/llvm-c -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - COMPONENT llvm-headers - FILES_MATCHING - PATTERN "*.def" -@@ -1059,7 +1065,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - ) - - install(DIRECTORY ${LLVM_INCLUDE_DIR}/llvm ${LLVM_INCLUDE_DIR}/llvm-c -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - COMPONENT llvm-headers - FILES_MATCHING - PATTERN "*.def" -@@ -1073,13 +1079,13 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) - - if (LLVM_INSTALL_MODULEMAPS) - install(DIRECTORY include/llvm include/llvm-c -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - COMPONENT llvm-headers - FILES_MATCHING - PATTERN "module.modulemap" - ) - install(FILES include/llvm/module.install.modulemap -- DESTINATION include/llvm -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm - COMPONENT llvm-headers - RENAME "module.extern.modulemap" - ) -diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake -index 9c2b85374307..5531ceeb2eeb 100644 ---- a/cmake/modules/AddLLVM.cmake -+++ b/cmake/modules/AddLLVM.cmake -@@ -818,9 +818,9 @@ macro(add_llvm_library name) - get_target_export_arg(${name} LLVM export_to_llvmexports ${umbrella}) - install(TARGETS ${name} - ${export_to_llvmexports} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} -- RUNTIME DESTINATION bin COMPONENT ${name}) -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} -+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${name}) - - if (NOT LLVM_ENABLE_IDE) - add_llvm_install_targets(install-${name} -@@ -1036,7 +1036,7 @@ function(process_llvm_pass_plugins) - "set(LLVM_STATIC_EXTENSIONS ${LLVM_STATIC_EXTENSIONS})") - install(FILES - ${llvm_cmake_builddir}/LLVMConfigExtensions.cmake -- DESTINATION ${LLVM_INSTALL_PACKAGE_DIR} -+ DESTINATION ${LLVM_INSTALL_CMAKE_DIR} - COMPONENT cmake-exports) - - set(ExtensionDef "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def") -@@ -1250,7 +1250,7 @@ macro(add_llvm_example name) - endif() - add_llvm_executable(${name} ${ARGN}) - if( LLVM_BUILD_EXAMPLES ) -- install(TARGETS ${name} RUNTIME DESTINATION examples) -+ install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples) - endif() - set_target_properties(${name} PROPERTIES FOLDER "Examples") - endmacro(add_llvm_example name) -@@ -1868,7 +1868,7 @@ function(llvm_install_library_symlink name dest type) - set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX}) - set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX}) - -- set(output_dir lib${LLVM_LIBDIR_SUFFIX}) -+ set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) - if(WIN32 AND "${type}" STREQUAL "SHARED") - set(output_dir bin) - endif() -@@ -1879,7 +1879,7 @@ function(llvm_install_library_symlink name dest type) - - endfunction() - --function(llvm_install_symlink name dest) -+function(llvm_install_symlink name dest output_dir) - cmake_parse_arguments(ARG "ALWAYS_GENERATE" "COMPONENT" "" ${ARGN}) - foreach(path ${CMAKE_MODULE_PATH}) - if(EXISTS ${path}/LLVMInstallSymlink.cmake) -@@ -1902,7 +1902,7 @@ function(llvm_install_symlink name dest) - set(full_dest ${dest}${CMAKE_EXECUTABLE_SUFFIX}) - - install(SCRIPT ${INSTALL_SYMLINK} -- CODE "install_symlink(${full_name} ${full_dest} ${LLVM_TOOLS_INSTALL_DIR})" -+ CODE "install_symlink(${full_name} ${full_dest} ${output_dir})" - COMPONENT ${component}) - - if (NOT LLVM_ENABLE_IDE AND NOT ARG_ALWAYS_GENERATE) -@@ -1985,7 +1985,8 @@ function(add_llvm_tool_symlink link_name target) - endif() - - if ((TOOL_IS_TOOLCHAIN OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY) AND LLVM_BUILD_TOOLS) -- llvm_install_symlink(${link_name} ${target}) -+ GNUInstallDirs_get_absolute_install_dir(output_dir LLVM_TOOLS_INSTALL_DIR) -+ llvm_install_symlink(${link_name} ${target} ${output_dir}) - endif() - endif() - endfunction() -@@ -2114,9 +2115,9 @@ function(llvm_setup_rpath name) - # Since BUILD_SHARED_LIBS is only recommended for use by developers, - # hardcode the rpath to build/install lib dir first in this mode. - # FIXME: update this when there is better solution. -- set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -+ set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) - elseif(UNIX) -- set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -+ set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) - if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)") - set_property(TARGET ${name} APPEND_STRING PROPERTY - LINK_FLAGS " -Wl,-z,origin ") -diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake -index 554046b20edf..4d1ad980641e 100644 ---- a/cmake/modules/AddOCaml.cmake -+++ b/cmake/modules/AddOCaml.cmake -@@ -144,9 +144,9 @@ function(add_ocaml_library name) - endforeach() - - if( APPLE ) -- set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}") -+ set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") - elseif( UNIX ) -- set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}") -+ set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") - endif() - list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}") - -diff --git a/cmake/modules/AddSphinxTarget.cmake b/cmake/modules/AddSphinxTarget.cmake -index e80c3b5c1cac..482f6d715ef5 100644 ---- a/cmake/modules/AddSphinxTarget.cmake -+++ b/cmake/modules/AddSphinxTarget.cmake -@@ -90,7 +90,7 @@ function (add_sphinx_target builder project) - endif() - elseif (builder STREQUAL html) - string(TOUPPER "${project}" project_upper) -- set(${project_upper}_INSTALL_SPHINX_HTML_DIR "share/doc/${project}/html" -+ set(${project_upper}_INSTALL_SPHINX_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/html" - CACHE STRING "HTML documentation install directory for ${project}") - - # '/.' indicates: copy the contents of the directory directly into -diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt -index 51b6a4fdc284..4adc2acfc074 100644 ---- a/cmake/modules/CMakeLists.txt -+++ b/cmake/modules/CMakeLists.txt -@@ -1,6 +1,6 @@ - include(LLVMDistributionSupport) - --set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm) -+set(LLVM_INSTALL_PACKAGE_DIR ${LLVM_INSTALL_CMAKE_DIR} CACHE STRING "Path for CMake subdirectory (defaults to 'cmake/llvm')") - set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}") - - # First for users who use an installed LLVM, create the LLVMExports.cmake file. -@@ -109,13 +109,13 @@ foreach(p ${_count}) - set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE} - get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)") - endforeach(p) --set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include") -+set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}") - set(LLVM_CONFIG_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}") - set(LLVM_CONFIG_MAIN_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}") --set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}") -+set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}") - set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}") - set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}") --set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin") -+set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}") - - # Generate a default location for lit - if (LLVM_INSTALL_UTILS AND LLVM_BUILD_UTILS) -diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake -index 3e6a2c9a2648..52e14d955c60 100644 ---- a/cmake/modules/LLVMInstallSymlink.cmake -+++ b/cmake/modules/LLVMInstallSymlink.cmake -@@ -4,7 +4,7 @@ - - function(install_symlink name target outdir) - set(DESTDIR $ENV{DESTDIR}) -- set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/${outdir}/") -+ set(bindir "${DESTDIR}${outdir}/") - - message(STATUS "Creating ${name}") - -diff --git a/docs/CMake.rst b/docs/CMake.rst -index f1ac2c7d4934..c6e1469b5e13 100644 ---- a/docs/CMake.rst -+++ b/docs/CMake.rst -@@ -202,7 +202,7 @@ CMake manual, or execute ``cmake --help-variable VARIABLE_NAME``. - **LLVM_LIBDIR_SUFFIX**:STRING - Extra suffix to append to the directory where libraries are to be - installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64`` -- to install libraries to ``/usr/lib64``. -+ to install libraries to ``/usr/lib64``. See also ``CMAKE_INSTALL_LIBDIR``. - - Rarely-used CMake variables - --------------------------- -@@ -551,8 +551,8 @@ LLVM-specific variables - - **LLVM_INSTALL_DOXYGEN_HTML_DIR**:STRING - The path to install Doxygen-generated HTML documentation to. This path can -- either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to -- `share/doc/llvm/doxygen-html`. -+ either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to -+ `${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html`. - - **LLVM_LINK_LLVM_DYLIB**:BOOL - If enabled, tools will be linked with the libLLVM shared library. Defaults -@@ -792,9 +792,11 @@ the ``cmake`` command or by setting it directly in ``ccmake`` or ``cmake-gui``). - - This file is available in two different locations. - --* ``/lib/cmake/llvm/LLVMConfig.cmake`` where -- ```` is the install prefix of an installed version of LLVM. -- On Linux typically this is ``/usr/lib/cmake/llvm/LLVMConfig.cmake``. -+* ``LLVMConfig.cmake`` where -+ ```` is the location where LLVM CMake modules are -+ installed as part of an installed version of LLVM. This is typically -+ ``cmake/llvm/`` within the lib directory. On Linux, this is typically -+ ``/usr/lib/cmake/llvm/LLVMConfig.cmake``. - - * ``/lib/cmake/llvm/LLVMConfig.cmake`` where - ```` is the root of the LLVM build tree. **Note: this is only -diff --git a/examples/Bye/CMakeLists.txt b/examples/Bye/CMakeLists.txt -index bb96edb4b4bf..678c22fb43c8 100644 ---- a/examples/Bye/CMakeLists.txt -+++ b/examples/Bye/CMakeLists.txt -@@ -14,6 +14,6 @@ if (NOT WIN32) - BUILDTREE_ONLY - ) - -- install(TARGETS ${name} RUNTIME DESTINATION examples) -+ install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples) - set_target_properties(${name} PROPERTIES FOLDER "Examples") - endif() -diff --git a/include/llvm/CMakeLists.txt b/include/llvm/CMakeLists.txt -index b46319f24fc8..2feabd1954e4 100644 ---- a/include/llvm/CMakeLists.txt -+++ b/include/llvm/CMakeLists.txt -@@ -5,5 +5,5 @@ add_subdirectory(Frontend) - # If we're doing an out-of-tree build, copy a module map for generated - # header files into the build area. - if (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") -- configure_file(module.modulemap.build module.modulemap COPYONLY) -+ configure_file(module.modulemap.build ${LLVM_INCLUDE_DIR}/module.modulemap COPYONLY) - endif (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") -diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in -index ebe5b73a5c65..70c497be12f5 100644 ---- a/tools/llvm-config/BuildVariables.inc.in -+++ b/tools/llvm-config/BuildVariables.inc.in -@@ -23,6 +23,10 @@ - #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@" - #define LLVM_BUILDMODE "@LLVM_BUILDMODE@" - #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@" -+#define LLVM_INSTALL_BINDIR "@CMAKE_INSTALL_BINDIR@" -+#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@" -+#define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@" -+#define LLVM_INSTALL_CMAKEDIR "@LLVM_INSTALL_CMAKE_DIR@" - #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@" - #define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@" - #define LLVM_BUILD_SYSTEM "@LLVM_BUILD_SYSTEM@" -diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp -index 1a2f04552d13..44fa7d3eec6b 100644 ---- a/tools/llvm-config/llvm-config.cpp -+++ b/tools/llvm-config/llvm-config.cpp -@@ -357,12 +357,26 @@ int main(int argc, char **argv) { - ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include"); - } else { - ActivePrefix = CurrentExecPrefix; -- ActiveIncludeDir = ActivePrefix + "/include"; -- SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR)); -- sys::fs::make_absolute(ActivePrefix, path); -- ActiveBinDir = std::string(path.str()); -- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX; -- ActiveCMakeDir = ActiveLibDir + "/cmake/llvm"; -+ { -+ SmallString<256> path(StringRef(LLVM_INSTALL_INCLUDEDIR)); -+ sys::fs::make_absolute(ActivePrefix, path); -+ ActiveIncludeDir = std::string(path.str()); -+ } -+ { -+ SmallString<256> path(StringRef(LLVM_INSTALL_BINDIR)); -+ sys::fs::make_absolute(ActivePrefix, path); -+ ActiveBinDir = std::string(path.str()); -+ } -+ { -+ SmallString<256> path(StringRef(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX)); -+ sys::fs::make_absolute(ActivePrefix, path); -+ ActiveLibDir = std::string(path.str()); -+ } -+ { -+ SmallString<256> path(StringRef(LLVM_INSTALL_CMAKEDIR)); -+ sys::fs::make_absolute(ActivePrefix, path); -+ ActiveCMakeDir = std::string(path.str()); -+ } - ActiveIncludeOption = "-I" + ActiveIncludeDir; - } - -diff --git a/tools/lto/CMakeLists.txt b/tools/lto/CMakeLists.txt -index 0af29ad762c5..37b99b83e35c 100644 ---- a/tools/lto/CMakeLists.txt -+++ b/tools/lto/CMakeLists.txt -@@ -33,7 +33,7 @@ add_llvm_library(${LTO_LIBRARY_NAME} ${LTO_LIBRARY_TYPE} INSTALL_WITH_TOOLCHAIN - ${SOURCES} DEPENDS intrinsics_gen) - - install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h -- DESTINATION include/llvm-c -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c - COMPONENT LTO) - - if (APPLE) -diff --git a/tools/opt-viewer/CMakeLists.txt b/tools/opt-viewer/CMakeLists.txt -index ead73ec13a8f..250362021f17 100644 ---- a/tools/opt-viewer/CMakeLists.txt -+++ b/tools/opt-viewer/CMakeLists.txt -@@ -8,7 +8,7 @@ set (files - - foreach (file ${files}) - install(PROGRAMS ${file} -- DESTINATION share/opt-viewer -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/opt-viewer - COMPONENT opt-viewer) - endforeach (file) - -diff --git a/tools/remarks-shlib/CMakeLists.txt b/tools/remarks-shlib/CMakeLists.txt -index 865436247270..ce1daa62f6ab 100644 ---- a/tools/remarks-shlib/CMakeLists.txt -+++ b/tools/remarks-shlib/CMakeLists.txt -@@ -19,7 +19,7 @@ if(LLVM_ENABLE_PIC) - endif() - - install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/Remarks.h -- DESTINATION include/llvm-c -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c - COMPONENT Remarks) - - if (APPLE) diff --git a/pkgs/by-name/ll/llvm/14/clang/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/14/clang/gnu-install-dirs.patch deleted file mode 100644 index 57c54e1..0000000 --- a/pkgs/by-name/ll/llvm/14/clang/gnu-install-dirs.patch +++ /dev/null @@ -1,50 +0,0 @@ -diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake -index 9bbbfc032b7d..947bd0da865d 100644 ---- a/cmake/modules/AddClang.cmake -+++ b/cmake/modules/AddClang.cmake -@@ -119,8 +119,8 @@ macro(add_clang_library name) - install(TARGETS ${lib} - COMPONENT ${lib} - ${export_to_clangtargets} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") - - if (NOT LLVM_ENABLE_IDE) -@@ -175,7 +175,7 @@ endmacro() - macro(add_clang_symlink name dest) - add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE) - # Always generate install targets -- llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE) -+ llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE) - endmacro() - - function(clang_target_link_libraries target type) -diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt -index 078988980c52..14b58614b40a 100644 ---- a/lib/Headers/CMakeLists.txt -+++ b/lib/Headers/CMakeLists.txt -@@ -234,7 +234,7 @@ set_target_properties(clang-resource-headers PROPERTIES - FOLDER "Misc" - RUNTIME_OUTPUT_DIRECTORY "${output_dir}") - --set(header_install_dir lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include) -+set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include) - - install( - FILES ${files} ${generated_files} -diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt -index 4e0647971ab4..68dd67fcc476 100644 ---- a/tools/libclang/CMakeLists.txt -+++ b/tools/libclang/CMakeLists.txt -@@ -216,7 +216,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS}) - COMPONENT - libclang-python-bindings - DESTINATION -- "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages") -+ "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages") - endforeach() - if(NOT LLVM_ENABLE_IDE) - add_custom_target(libclang-python-bindings) diff --git a/pkgs/by-name/ll/llvm/14/clang/purity.patch b/pkgs/by-name/ll/llvm/14/clang/purity.patch deleted file mode 100644 index deb230a..0000000 --- a/pkgs/by-name/ll/llvm/14/clang/purity.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001 -From: Will Dietz -Date: Thu, 18 May 2017 11:56:12 -0500 -Subject: [PATCH] "purity" patch for 5.0 - ---- - lib/Driver/ToolChains/Gnu.cpp | 7 ------- - 1 file changed, 7 deletions(-) - -diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp -index fe3c0191bb..c6a482bece 100644 ---- a/lib/Driver/ToolChains/Gnu.cpp -+++ b/lib/Driver/ToolChains/Gnu.cpp -@@ -487,12 +487,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA, - if (!IsStatic) { - if (Args.hasArg(options::OPT_rdynamic)) - CmdArgs.push_back("-export-dynamic"); -- -- if (!Args.hasArg(options::OPT_shared) && !IsStaticPIE) { -- CmdArgs.push_back("-dynamic-linker"); -- CmdArgs.push_back(Args.MakeArgString(Twine(D.DyldPrefix) + -- ToolChain.getDynamicLinker(Args))); -- } - } - - CmdArgs.push_back("-o"); --- -2.11.0 diff --git a/pkgs/by-name/ll/llvm/14/compiler-rt/X86-support-extension.patch b/pkgs/by-name/ll/llvm/14/compiler-rt/X86-support-extension.patch deleted file mode 100644 index 66742e5..0000000 --- a/pkgs/by-name/ll/llvm/14/compiler-rt/X86-support-extension.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt -index 3a66dd9c3fb..7efc85d9f9f 100644 ---- a/lib/builtins/CMakeLists.txt -+++ b/lib/builtins/CMakeLists.txt -@@ -345,4 +345,8 @@ if (NOT MSVC) - -+ set(i486_SOURCES ${i386_SOURCES}) -+ set(i586_SOURCES ${i386_SOURCES}) -+ set(i686_SOURCES ${i386_SOURCES}) -+ - if (WIN32) - set(i386_SOURCES - ${i386_SOURCES} -@@ -608,6 +612,7 @@ else () - endif() - - foreach (arch ${BUILTIN_SUPPORTED_ARCH}) -+ message("arch: ${arch}") - if (CAN_TARGET_${arch}) - # For ARM archs, exclude any VFP builtins if VFP is not supported - if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$") diff --git a/pkgs/by-name/ll/llvm/14/compiler-rt/armv7l.patch b/pkgs/by-name/ll/llvm/14/compiler-rt/armv7l.patch deleted file mode 100644 index 6818684..0000000 --- a/pkgs/by-name/ll/llvm/14/compiler-rt/armv7l.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff -ur compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake ---- compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake 2020-03-24 00:01:02.000000000 +0900 -+++ compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake 2020-05-10 03:42:00.883450706 +0900 -@@ -37,6 +37,6 @@ - - set(ARM64 aarch64) --set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv8m.main armv8.1m.main) -+set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv7l armv8m.main armv8.1m.main) - set(HEXAGON hexagon) - set(X86 i386) - set(X86_64 x86_64) -diff -ur compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt ---- compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt 2020-03-24 00:01:02.000000000 +0900 -+++ compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt 2020-05-10 03:44:49.468579650 +0900 -@@ -555,6 +555,7 @@ - set(armv7_SOURCES ${arm_SOURCES}) - set(armv7s_SOURCES ${arm_SOURCES}) - set(armv7k_SOURCES ${arm_SOURCES}) -+set(armv7l_SOURCES ${arm_SOURCES}) - set(arm64_SOURCES ${aarch64_SOURCES}) - - # macho_embedded archs -@@ -705,7 +705,7 @@ - foreach (arch ${BUILTIN_SUPPORTED_ARCH}) - if (CAN_TARGET_${arch}) - # For ARM archs, exclude any VFP builtins if VFP is not supported -- if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em|armv8m.main|armv8.1m.main)$") -+ if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7l|armv7m|armv7em|armv8m.main|armv8.1m.main)$") - string(REPLACE ";" " " _TARGET_${arch}_CFLAGS "${TARGET_${arch}_CFLAGS}") - check_compile_definition(__VFP_FP__ "${CMAKE_C_FLAGS} ${_TARGET_${arch}_CFLAGS}" COMPILER_RT_HAS_${arch}_VFP) - if(NOT COMPILER_RT_HAS_${arch}_VFP) diff --git a/pkgs/by-name/ll/llvm/14/compiler-rt/codesign.patch b/pkgs/by-name/ll/llvm/14/compiler-rt/codesign.patch deleted file mode 100644 index 065959d..0000000 --- a/pkgs/by-name/ll/llvm/14/compiler-rt/codesign.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 3dec5f3475a26aeb4678627795c4b67c6b7b4785 Mon Sep 17 00:00:00 2001 -From: Will Dietz -Date: Tue, 19 Sep 2017 13:13:06 -0500 -Subject: [PATCH] remove codesign use on Apple, disable ios sim testing that - needs it - ---- - cmake/Modules/AddCompilerRT.cmake | 8 ------ - test/asan/CMakeLists.txt | 52 --------------------------------------- - test/tsan/CMakeLists.txt | 47 ----------------------------------- - 3 files changed, 107 deletions(-) - -diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake -index bc69ec95c419..9f100fdcec2f 100644 ---- a/cmake/Modules/AddCompilerRT.cmake -+++ b/cmake/Modules/AddCompilerRT.cmake -@@ -366,14 +366,6 @@ function(add_compiler_rt_runtime name type) - set_target_properties(${libname} PROPERTIES IMPORT_PREFIX "") - set_target_properties(${libname} PROPERTIES IMPORT_SUFFIX ".lib") - endif() -- if(APPLE) -- # Ad-hoc sign the dylibs -- add_custom_command(TARGET ${libname} -- POST_BUILD -- COMMAND codesign --sign - $ -- WORKING_DIRECTORY ${COMPILER_RT_OUTPUT_LIBRARY_DIR} -- ) -- endif() - endif() - - set(parent_target_arg) -2.14.1 - diff --git a/pkgs/by-name/ll/llvm/14/compiler-rt/darwin-targetconditionals.patch b/pkgs/by-name/ll/llvm/14/compiler-rt/darwin-targetconditionals.patch deleted file mode 100644 index 425dc2a..0000000 --- a/pkgs/by-name/ll/llvm/14/compiler-rt/darwin-targetconditionals.patch +++ /dev/null @@ -1,71 +0,0 @@ -diff --git a/lib/sanitizer_common/sanitizer_mac.cpp b/lib/sanitizer_common/sanitizer_mac.cpp ---- a/lib/sanitizer_common/sanitizer_mac.cpp -+++ b/lib/sanitizer_common/sanitizer_mac.cpp -@@ -613,9 +613,15 @@ HandleSignalMode GetHandleSignalMode(int signum) { - // Offset example: - // XNU 17 -- macOS 10.13 -- iOS 11 -- tvOS 11 -- watchOS 4 - constexpr u16 GetOSMajorKernelOffset() { -- if (TARGET_OS_OSX) return 4; -- if (TARGET_OS_IOS || TARGET_OS_TV) return 6; -- if (TARGET_OS_WATCH) return 13; -+#if TARGET_OS_OSX -+ return 4; -+#endif -+#if TARGET_OS_IOS || TARGET_OS_TV -+ return 6; -+#endif -+#if TARGET_OS_WATCH -+ return 13; -+#endif - } - - using VersStr = char[64]; -@@ -627,13 +633,13 @@ static uptr ApproximateOSVersionViaKernelVersion(VersStr vers) { - u16 os_major = kernel_major - offset; - - const char *format = "%d.0"; -- if (TARGET_OS_OSX) { -- if (os_major >= 16) { // macOS 11+ -- os_major -= 5; -- } else { // macOS 10.15 and below -- format = "10.%d"; -- } -+#if TARGET_OS_OSX -+ if (os_major >= 16) { // macOS 11+ -+ os_major -= 5; -+ } else { // macOS 10.15 and below -+ format = "10.%d"; - } -+#endif - return internal_snprintf(vers, sizeof(VersStr), format, os_major); - } - -@@ -681,15 +687,14 @@ void ParseVersion(const char *vers, u16 *major, u16 *minor) { - // Aligned versions example: - // macOS 10.15 -- iOS 13 -- tvOS 13 -- watchOS 6 - static void MapToMacos(u16 *major, u16 *minor) { -- if (TARGET_OS_OSX) -- return; -- -- if (TARGET_OS_IOS || TARGET_OS_TV) -+#if !TARGET_OS_OSX -+#if TARGET_OS_IOS || TARGET_OS_TV - *major += 2; -- else if (TARGET_OS_WATCH) -+#elif TARGET_OS_WATCH - *major += 9; -- else -+#else - UNREACHABLE("unsupported platform"); -+#endif - - if (*major >= 16) { // macOS 11+ - *major -= 5; -@@ -697,6 +702,7 @@ static void MapToMacos(u16 *major, u16 *minor) { - *minor = *major; - *major = 10; - } -+#endif - } - - static MacosVersion GetMacosAlignedVersionInternal() { diff --git a/pkgs/by-name/ll/llvm/14/compiler-rt/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/14/compiler-rt/gnu-install-dirs.patch deleted file mode 100644 index 55837bd..0000000 --- a/pkgs/by-name/ll/llvm/14/compiler-rt/gnu-install-dirs.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 3a41aa43e406..f000cee6eae0 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -5,6 +5,8 @@ - - cmake_minimum_required(VERSION 3.13.4) - -+include(GNUInstallDirs) -+ - # Check if compiler-rt is built as a standalone project. - if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR COMPILER_RT_STANDALONE_BUILD) - project(CompilerRT C CXX ASM) -diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake -index d7b0124f3546..3e111146df4d 100644 ---- a/cmake/base-config-ix.cmake -+++ b/cmake/base-config-ix.cmake -@@ -67,7 +67,7 @@ if (LLVM_TREE_AVAILABLE) - else() - # Take output dir and install path from the user. - set(COMPILER_RT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH -- "Path where built compiler-rt libraries should be stored.") -+ "Path where built compiler-rt build artifacts should be stored.") - set(COMPILER_RT_EXEC_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/bin CACHE PATH - "Path where built compiler-rt executables should be stored.") - set(COMPILER_RT_INSTALL_PATH "" CACHE PATH -@@ -99,13 +99,13 @@ endif() - if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) - set(COMPILER_RT_OUTPUT_LIBRARY_DIR - ${COMPILER_RT_OUTPUT_DIR}/lib) -- extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" lib) -+ extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "${CMAKE_INSTALL_LIBDIR}") - set(COMPILER_RT_INSTALL_LIBRARY_DIR "${default_install_path}" CACHE PATH - "Path where built compiler-rt libraries should be installed.") - else(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) - set(COMPILER_RT_OUTPUT_LIBRARY_DIR - ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR}) -- extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "lib/${COMPILER_RT_OS_DIR}") -+ extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "${CMAKE_INSTALL_LIBDIR}/${COMPILER_RT_OS_DIR}") - set(COMPILER_RT_INSTALL_LIBRARY_DIR "${default_install_path}" CACHE PATH - "Path where built compiler-rt libraries should be installed.") - endif() diff --git a/pkgs/by-name/ll/llvm/14/compiler-rt/normalize-var.patch b/pkgs/by-name/ll/llvm/14/compiler-rt/normalize-var.patch deleted file mode 100644 index 135cf62..0000000 --- a/pkgs/by-name/ll/llvm/14/compiler-rt/normalize-var.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/compiler-rt/cmake/Modules/CompilerRTUtils.cmake b/compiler-rt/cmake/Modules/CompilerRTUtils.cmake -index f1f46fb9599c..6f19e69507ba 100644 ---- a/cmake/Modules/CompilerRTUtils.cmake -+++ b/cmake/Modules/CompilerRTUtils.cmake -@@ -302,8 +302,9 @@ macro(load_llvm_config) - # Get some LLVM variables from LLVMConfig. - include("${LLVM_CMAKE_PATH}/LLVMConfig.cmake") - -- set(LLVM_LIBRARY_OUTPUT_INTDIR -- ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) -+ get_filename_component(LLVM_LIBRARY_OUTPUT_INTDIR -+ ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX} -+ REALPATH) - endif() - endmacro() - diff --git a/pkgs/by-name/ll/llvm/14/default.nix b/pkgs/by-name/ll/llvm/14/default.nix deleted file mode 100644 index 588dc8f..0000000 --- a/pkgs/by-name/ll/llvm/14/default.nix +++ /dev/null @@ -1,380 +0,0 @@ -{ 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" */; - # rev = /* commit SHA */; - # 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="; } - # 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 -}: - -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 - # 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; - - 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; - - in { - - 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; - - 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; - - 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 - }); - - # 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; - - 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; - }; - - 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 - { - 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 - && !stdenv.targetPlatform.isAarch64 - && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0") - ) ./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. - - 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 = 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" - "-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" - ]; - }; - - 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; - }; - - }); - - 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-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; - - stdenv = overrideCC stdenv buildLlvmTools.clang; - - libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang; - - 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/" - ]; - }) - ]; - 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; - }; - }); - noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ]; - -in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools) diff --git a/pkgs/by-name/ll/llvm/14/libunwind/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/14/libunwind/gnu-install-dirs.patch deleted file mode 100644 index 3fce8bf..0000000 --- a/pkgs/by-name/ll/llvm/14/libunwind/gnu-install-dirs.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -147,7 +147,7 @@ set(LIBUNWIND_INSTALL_RUNTIME_DIR "${CMAKE_INSTALL_BINDIR}" CACHE PATH - - if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) - set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}) -- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH -+ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH - "Path where built libunwind libraries should be installed.") - if(LIBCXX_LIBDIR_SUBDIR) - string(APPEND LIBUNWIND_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR}) -@@ -159,7 +159,7 @@ else() - else() - set(LIBUNWIND_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBUNWIND_LIBDIR_SUFFIX}) - endif() -- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX} CACHE PATH -+ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX} CACHE PATH - "Path where built libunwind libraries should be installed.") - endif() - diff --git a/pkgs/by-name/ll/llvm/14/lld/fix-root-src-dir.patch b/pkgs/by-name/ll/llvm/14/lld/fix-root-src-dir.patch deleted file mode 100644 index 38fb965..0000000 --- a/pkgs/by-name/ll/llvm/14/lld/fix-root-src-dir.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 9bcc135665d0..d38679ed41e9 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -74,7 +74,7 @@ if(LLD_BUILT_STANDALONE) - - set(LLVM_MAIN_INCLUDE_DIR "${MAIN_INCLUDE_DIR}" CACHE PATH "Path to llvm/include") - set(LLVM_BINARY_DIR "${LLVM_OBJ_ROOT}" CACHE PATH "Path to LLVM build tree") -- set(LLVM_MAIN_SRC_DIR "${MAIN_SRC_DIR}" CACHE PATH "Path to LLVM source tree") -+ set(LLVM_MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm" CACHE PATH "Path to LLVM source tree") - - find_program(LLVM_TABLEGEN_EXE "llvm-tblgen" ${LLVM_TOOLS_BINARY_DIR} - NO_DEFAULT_PATH) diff --git a/pkgs/by-name/ll/llvm/14/lld/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/14/lld/gnu-install-dirs.patch deleted file mode 100644 index 89a5822..0000000 --- a/pkgs/by-name/ll/llvm/14/lld/gnu-install-dirs.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake -index dd2898ce6236..ebbea040ff54 100644 ---- a/cmake/modules/AddLLD.cmake -+++ b/cmake/modules/AddLLD.cmake -@@ -18,8 +18,8 @@ macro(add_lld_library name) - install(TARGETS ${name} - COMPONENT ${name} - ${export_to_lldtargets} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} -+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" -+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") - - if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES) -@@ -62,5 +62,5 @@ endmacro() - macro(add_lld_symlink name dest) - add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE) - # Always generate install targets -- llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE) -+ llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE) - endmacro() diff --git a/pkgs/by-name/ll/llvm/14/lldb/cpu_subtype_arm64e_replacement.patch b/pkgs/by-name/ll/llvm/14/lldb/cpu_subtype_arm64e_replacement.patch deleted file mode 100644 index 20d35c9..0000000 --- a/pkgs/by-name/ll/llvm/14/lldb/cpu_subtype_arm64e_replacement.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/source/Host/macosx/objcxx/HostInfoMacOSX.mm b/source/Host/macosx/objcxx/HostInfoMacOSX.mm ---- a/source/Host/macosx/objcxx/HostInfoMacOSX.mm -+++ b/source/Host/macosx/objcxx/HostInfoMacOSX.mm -@@ -233,7 +233,7 @@ void HostInfoMacOSX::ComputeHostArchitectureSupport(ArchSpec &arch_32, - len = sizeof(is_64_bit_capable); - ::sysctlbyname("hw.cpu64bit_capable", &is_64_bit_capable, &len, NULL, 0); - -- if (cputype == CPU_TYPE_ARM64 && cpusubtype == CPU_SUBTYPE_ARM64E) { -+ if (cputype == CPU_TYPE_ARM64 && cpusubtype == ((cpu_subtype_t) 2)) { // CPU_SUBTYPE_ARM64E is not available in the macOS 10.12 headers - // The arm64e architecture is a preview. Pretend the host architecture - // is arm64. - cpusubtype = CPU_SUBTYPE_ARM64_ALL; diff --git a/pkgs/by-name/ll/llvm/14/lldb/procfs.patch b/pkgs/by-name/ll/llvm/14/lldb/procfs.patch deleted file mode 100644 index b075dba..0000000 --- a/pkgs/by-name/ll/llvm/14/lldb/procfs.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- a/source/Plugins/Process/Linux/Procfs.h -+++ b/source/Plugins/Process/Linux/Procfs.h -@@ -11,21 +11,12 @@ - // sys/procfs.h on Android/Linux for all supported architectures. - - #include -+#include - --#ifdef __ANDROID__ --#if defined(__arm64__) || defined(__aarch64__) --typedef unsigned long elf_greg_t; --typedef elf_greg_t -- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))]; --typedef struct user_fpsimd_state elf_fpregset_t; --#ifndef NT_FPREGSET --#define NT_FPREGSET NT_PRFPREG --#endif // NT_FPREGSET --#elif defined(__mips__) --#ifndef NT_FPREGSET --#define NT_FPREGSET NT_PRFPREG --#endif // NT_FPREGSET --#endif --#else // __ANDROID__ -+#if !defined(__GLIBC__) && defined(__powerpc__) -+#define pt_regs musl_pt_regs -+#include -+#undef pt_regs -+#else - #include --#endif // __ANDROID__ -+#endif diff --git a/pkgs/by-name/ll/llvm/14/lldb/resource-dir.patch b/pkgs/by-name/ll/llvm/14/lldb/resource-dir.patch deleted file mode 100644 index e0db80a..0000000 --- a/pkgs/by-name/ll/llvm/14/lldb/resource-dir.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/lldb/cmake/modules/LLDBConfig.cmake b/lldb/cmake/modules/LLDBConfig.cmake -index 37364341ff8b..7f74c1a3e257 100644 ---- a/cmake/modules/LLDBConfig.cmake -+++ b/cmake/modules/LLDBConfig.cmake -@@ -257,7 +257,7 @@ if (NOT TARGET clang-resource-headers) - # Iterate over the possible places where the external resource directory - # could be and pick the first that exists. - foreach(CANDIDATE "${Clang_DIR}/../.." "${LLVM_DIR}" "${LLVM_LIBRARY_DIRS}" -- "${LLVM_BUILD_LIBRARY_DIR}" -+ "${LLVM_BUILD_LIBRARY_DIR}" "@clangLibDir@" - "${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}") - # Build the resource directory path by appending 'clang/'. - set(CANDIDATE_RESOURCE_DIR "${CANDIDATE}/clang/${LLDB_CLANG_RESOURCE_DIR_NAME}") diff --git a/pkgs/by-name/ll/llvm/14/llvm/default.nix b/pkgs/by-name/ll/llvm/14/llvm/default.nix deleted file mode 100644 index 124d07e..0000000 --- a/pkgs/by-name/ll/llvm/14/llvm/default.nix +++ /dev/null @@ -1,323 +0,0 @@ -{ 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)); - - # Ordinarily we would just the `doCheck` and `checkDeps` functionality - # `mkDerivation` gives us to manage our test dependencies (instead of breaking - # out `doCheck` as a package level attribute). - # - # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in - # particular the children it uses to do feature detection. - # - # This means that python deps we add to `checkDeps` (which the python - # interpreter is made aware of via `$PYTHONPATH` – populated by the python - # setup hook) are not picked up by `lit` which causes it to skip tests. - # - # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work - # because this package is shadowed in `$PATH` by the regular `python3` - # package. - # - # 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" - ( - 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 - ]) - ) - ]; - - postBuild = '' - rm -fR $out - ''; - - 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/14/llvm/gnu-install-dirs-polly.patch b/pkgs/by-name/ll/llvm/14/llvm/gnu-install-dirs-polly.patch deleted file mode 100644 index b01363e..0000000 --- a/pkgs/by-name/ll/llvm/14/llvm/gnu-install-dirs-polly.patch +++ /dev/null @@ -1,19 +0,0 @@ -This is the one remaining Polly install dirs related change that hasn't made it -into upstream yet; previously this patch file also included: -https://reviews.llvm.org/D117541 - -diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake -index 518a09b45a42..bd9d6f5542ad 100644 ---- a/tools/polly/cmake/polly_macros.cmake -+++ b/tools/polly/cmake/polly_macros.cmake -@@ -44,8 +44,8 @@ macro(add_polly_library name) - if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly") - install(TARGETS ${name} - EXPORT LLVMExports -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}) -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) - endif() - set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name}) - endmacro(add_polly_library) diff --git a/pkgs/by-name/ll/llvm/14/llvm/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/14/llvm/gnu-install-dirs.patch deleted file mode 100644 index 55862ab..0000000 --- a/pkgs/by-name/ll/llvm/14/llvm/gnu-install-dirs.patch +++ /dev/null @@ -1,220 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index fec956091cd5..5a766f5c5d7c 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -303,6 +303,9 @@ set(LLVM_EXAMPLES_INSTALL_DIR "examples" CACHE STRING - "Path for examples subdirectory (enabled by LLVM_BUILD_EXAMPLES=ON) (defaults to 'examples')") - mark_as_advanced(LLVM_EXAMPLES_INSTALL_DIR) - -+set(LLVM_INSTALL_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/cmake/llvm" CACHE STRING -+ "Path for CMake subdirectory (defaults to lib/cmake/llvm)" ) -+ - # They are used as destination of target generators. - set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin) - set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) -diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake -index fed1fec7d72e..4baed19b9e98 100644 ---- a/cmake/modules/AddLLVM.cmake -+++ b/cmake/modules/AddLLVM.cmake -@@ -838,8 +838,8 @@ macro(add_llvm_library name) - get_target_export_arg(${name} LLVM export_to_llvmexports ${umbrella}) - install(TARGETS ${name} - ${export_to_llvmexports} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} -+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" COMPONENT ${name} -+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" COMPONENT ${name} - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${name}) - - if (NOT LLVM_ENABLE_IDE) -@@ -1056,7 +1056,7 @@ function(process_llvm_pass_plugins) - "set(LLVM_STATIC_EXTENSIONS ${LLVM_STATIC_EXTENSIONS})") - install(FILES - ${llvm_cmake_builddir}/LLVMConfigExtensions.cmake -- DESTINATION ${LLVM_INSTALL_PACKAGE_DIR} -+ DESTINATION ${LLVM_INSTALL_CMAKE_DIR} - COMPONENT cmake-exports) - - set(ExtensionDef "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def") -@@ -1902,7 +1902,7 @@ function(llvm_install_library_symlink name dest type) - set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX}) - set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX}) - -- set(output_dir lib${LLVM_LIBDIR_SUFFIX}) -+ set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) - if(WIN32 AND "${type}" STREQUAL "SHARED") - set(output_dir bin) - endif() -@@ -1913,7 +1913,7 @@ function(llvm_install_library_symlink name dest type) - - endfunction() - --function(llvm_install_symlink name dest) -+function(llvm_install_symlink name dest output_dir) - cmake_parse_arguments(ARG "ALWAYS_GENERATE" "COMPONENT" "" ${ARGN}) - foreach(path ${CMAKE_MODULE_PATH}) - if(EXISTS ${path}/LLVMInstallSymlink.cmake) -@@ -1936,7 +1936,7 @@ function(llvm_install_symlink name dest) - set(full_dest ${dest}${CMAKE_EXECUTABLE_SUFFIX}) - - install(SCRIPT ${INSTALL_SYMLINK} -- CODE "install_symlink(${full_name} ${full_dest} ${LLVM_TOOLS_INSTALL_DIR})" -+ CODE "install_symlink(${full_name} ${full_dest} ${output_dir})" - COMPONENT ${component}) - - if (NOT LLVM_ENABLE_IDE AND NOT ARG_ALWAYS_GENERATE) -@@ -2019,7 +2019,8 @@ function(add_llvm_tool_symlink link_name target) - endif() - - if ((TOOL_IS_TOOLCHAIN OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY) AND LLVM_BUILD_TOOLS) -- llvm_install_symlink(${link_name} ${target}) -+ GNUInstallDirs_get_absolute_install_dir(output_dir LLVM_TOOLS_INSTALL_DIR) -+ llvm_install_symlink(${link_name} ${target} ${output_dir}) - endif() - endif() - endfunction() -@@ -2148,9 +2149,9 @@ function(llvm_setup_rpath name) - # Since BUILD_SHARED_LIBS is only recommended for use by developers, - # hardcode the rpath to build/install lib dir first in this mode. - # FIXME: update this when there is better solution. -- set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -+ set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) - elseif(UNIX) -- set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -+ set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) - if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)") - set_property(TARGET ${name} APPEND_STRING PROPERTY - LINK_FLAGS " -Wl,-z,origin ") -diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake -index 891c9e6d618c..8d963f3b0069 100644 ---- a/cmake/modules/AddOCaml.cmake -+++ b/cmake/modules/AddOCaml.cmake -@@ -147,9 +147,9 @@ function(add_ocaml_library name) - endforeach() - - if( APPLE ) -- set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}") -+ set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") - elseif( UNIX ) -- set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}") -+ set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") - endif() - list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}") - -diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt -index cea0c1df0a14..eedcd9450312 100644 ---- a/cmake/modules/CMakeLists.txt -+++ b/cmake/modules/CMakeLists.txt -@@ -2,7 +2,7 @@ include(ExtendPath) - include(LLVMDistributionSupport) - include(FindPrefixFromConfig) - --set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm) -+set(LLVM_INSTALL_PACKAGE_DIR ${LLVM_INSTALL_CMAKE_DIR} CACHE STRING "Path for CMake subdirectory (defaults to 'cmake/llvm')") - set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}") - - # First for users who use an installed LLVM, create the LLVMExports.cmake file. -@@ -122,7 +122,7 @@ set(LLVM_CONFIG_INCLUDE_DIRS - ) - list(REMOVE_DUPLICATES LLVM_CONFIG_INCLUDE_DIRS) - --extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "lib\${LLVM_LIBDIR_SUFFIX}") -+extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}") - set(LLVM_CONFIG_LIBRARY_DIRS - "${LLVM_CONFIG_LIBRARY_DIR}" - # FIXME: Should there be other entries here? -diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake -index b5c35f706cb7..9261ab797de6 100644 ---- a/cmake/modules/LLVMInstallSymlink.cmake -+++ b/cmake/modules/LLVMInstallSymlink.cmake -@@ -6,7 +6,7 @@ include(GNUInstallDirs) - - function(install_symlink name target outdir) - set(DESTDIR $ENV{DESTDIR}) -- set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/${outdir}") -+ set(bindir "${DESTDIR}${outdir}/") - - message(STATUS "Creating ${name}") - -diff --git a/docs/CMake.rst b/docs/CMake.rst -index 044ec8a4d39d..504d0eac3ade 100644 ---- a/docs/CMake.rst -+++ b/docs/CMake.rst -@@ -224,7 +224,7 @@ description is in `LLVM-related variables`_ below. - **LLVM_LIBDIR_SUFFIX**:STRING - Extra suffix to append to the directory where libraries are to be - installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64`` -- to install libraries to ``/usr/lib64``. -+ to install libraries to ``/usr/lib64``. See also ``CMAKE_INSTALL_LIBDIR``. - - **LLVM_PARALLEL_{COMPILE,LINK}_JOBS**:STRING - Building the llvm toolchain can use a lot of resources, particularly -@@ -910,9 +910,11 @@ the ``cmake`` command or by setting it directly in ``ccmake`` or ``cmake-gui``). - - This file is available in two different locations. - --* ``/lib/cmake/llvm/LLVMConfig.cmake`` where -- ```` is the install prefix of an installed version of LLVM. -- On Linux typically this is ``/usr/lib/cmake/llvm/LLVMConfig.cmake``. -+* ``LLVMConfig.cmake`` where -+ ```` is the location where LLVM CMake modules are -+ installed as part of an installed version of LLVM. This is typically -+ ``cmake/llvm/`` within the lib directory. On Linux, this is typically -+ ``/usr/lib/cmake/llvm/LLVMConfig.cmake``. - - * ``/lib/cmake/llvm/LLVMConfig.cmake`` where - ```` is the root of the LLVM build tree. **Note: this is only -diff --git a/include/llvm/CMakeLists.txt b/include/llvm/CMakeLists.txt -index b46319f24fc8..2feabd1954e4 100644 ---- a/include/llvm/CMakeLists.txt -+++ b/include/llvm/CMakeLists.txt -@@ -5,5 +5,5 @@ add_subdirectory(Frontend) - # If we're doing an out-of-tree build, copy a module map for generated - # header files into the build area. - if (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") -- configure_file(module.modulemap.build module.modulemap COPYONLY) -+ configure_file(module.modulemap.build ${LLVM_INCLUDE_DIR}/module.modulemap COPYONLY) - endif (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") -diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in -index abbb8a450da6..70c497be12f5 100644 ---- a/tools/llvm-config/BuildVariables.inc.in -+++ b/tools/llvm-config/BuildVariables.inc.in -@@ -23,7 +23,10 @@ - #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@" - #define LLVM_BUILDMODE "@LLVM_BUILDMODE@" - #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@" -+#define LLVM_INSTALL_BINDIR "@CMAKE_INSTALL_BINDIR@" -+#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@" - #define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@" -+#define LLVM_INSTALL_CMAKEDIR "@LLVM_INSTALL_CMAKE_DIR@" - #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@" - #define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@" - #define LLVM_BUILD_SYSTEM "@LLVM_BUILD_SYSTEM@" -diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp -index 8ed88f33ead4..5e7184bab90d 100644 ---- a/tools/llvm-config/llvm-config.cpp -+++ b/tools/llvm-config/llvm-config.cpp -@@ -363,12 +363,20 @@ int main(int argc, char **argv) { - ActiveIncludeDir = std::string(Path.str()); - } - { -- SmallString<256> Path(LLVM_TOOLS_INSTALL_DIR); -+ SmallString<256> Path(LLVM_INSTALL_BINDIR); - sys::fs::make_absolute(ActivePrefix, Path); - ActiveBinDir = std::string(Path.str()); - } -- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX; -- ActiveCMakeDir = ActiveLibDir + "/cmake/llvm"; -+ { -+ SmallString<256> Path(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX); -+ sys::fs::make_absolute(ActivePrefix, Path); -+ ActiveLibDir = std::string(Path.str()); -+ } -+ { -+ SmallString<256> Path(LLVM_INSTALL_CMAKEDIR); -+ sys::fs::make_absolute(ActivePrefix, Path); -+ ActiveCMakeDir = std::string(Path.str()); -+ } - ActiveIncludeOption = "-I" + ActiveIncludeDir; - } - diff --git a/pkgs/by-name/ll/llvm/14/openmp/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/14/openmp/gnu-install-dirs.patch deleted file mode 100644 index e85fde4..0000000 --- a/pkgs/by-name/ll/llvm/14/openmp/gnu-install-dirs.patch +++ /dev/null @@ -1,45 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -24,7 +24,7 @@ if (OPENMP_STANDALONE_BUILD) - set(OPENMP_LIBDIR_SUFFIX "" CACHE STRING - "Suffix of lib installation directory, e.g. 64 => lib64") - # Do not use OPENMP_LIBDIR_SUFFIX directly, use OPENMP_INSTALL_LIBDIR. -- set(OPENMP_INSTALL_LIBDIR "lib${OPENMP_LIBDIR_SUFFIX}") -+ set(OPENMP_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}${OPENMP_LIBDIR_SUFFIX}") - - # Group test settings. - set(OPENMP_TEST_C_COMPILER ${CMAKE_C_COMPILER} CACHE STRING -@@ -35,7 +35,7 @@ if (OPENMP_STANDALONE_BUILD) - else() - set(OPENMP_ENABLE_WERROR ${LLVM_ENABLE_WERROR}) - # If building in tree, we honor the same install suffix LLVM uses. -- set(OPENMP_INSTALL_LIBDIR "lib${LLVM_LIBDIR_SUFFIX}") -+ set(OPENMP_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") - - if (NOT MSVC) - set(OPENMP_TEST_C_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang) -diff --git a/libomptarget/plugins/amdgpu/CMakeLists.txt b/libomptarget/plugins/amdgpu/CMakeLists.txt ---- a/libomptarget/plugins/amdgpu/CMakeLists.txt -+++ b/libomptarget/plugins/amdgpu/CMakeLists.txt -@@ -74,7 +74,7 @@ add_library(omptarget.rtl.amdgpu SHARED - - # Install plugin under the lib destination folder. - # When we build for debug, OPENMP_LIBDIR_SUFFIX get set to -debug --install(TARGETS omptarget.rtl.amdgpu LIBRARY DESTINATION "lib${OPENMP_LIBDIR_SUFFIX}") -+install(TARGETS omptarget.rtl.amdgpu LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${OPENMP_LIBDIR_SUFFIX}") - set_property(TARGET omptarget.rtl.amdgpu PROPERTY INSTALL_RPATH_USE_LINK_PATH ON) - - if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") -diff --git a/libomptarget/plugins/ve/CMakeLists.txt b/libomptarget/plugins/ve/CMakeLists.txt ---- a/libomptarget/plugins/ve/CMakeLists.txt -+++ b/libomptarget/plugins/ve/CMakeLists.txt -@@ -32,7 +32,7 @@ if(${LIBOMPTARGET_DEP_VEO_FOUND}) - - # Install plugin under the lib destination folder. - install(TARGETS "omptarget.rtl.${tmachine_libname}" -- LIBRARY DESTINATION lib${OPENMP_LIBDIR_SUFFIX}) -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${OPENMP_LIBDIR_SUFFIX}) - - target_link_libraries( - "omptarget.rtl.${tmachine_libname}" diff --git a/pkgs/by-name/ll/llvm/14/openmp/run-lit-directly.patch b/pkgs/by-name/ll/llvm/14/openmp/run-lit-directly.patch deleted file mode 100644 index 1e952fd..0000000 --- a/pkgs/by-name/ll/llvm/14/openmp/run-lit-directly.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/cmake/OpenMPTesting.cmake b/cmake/OpenMPTesting.cmake ---- a/cmake/OpenMPTesting.cmake -+++ b/cmake/OpenMPTesting.cmake -@@ -185,7 +185,7 @@ function(add_openmp_testsuite target comment) - if (${OPENMP_STANDALONE_BUILD}) - set(LIT_ARGS ${OPENMP_LIT_ARGS} ${ARG_ARGS}) - add_custom_target(${target} -- COMMAND ${PYTHON_EXECUTABLE} ${OPENMP_LLVM_LIT_EXECUTABLE} ${LIT_ARGS} ${ARG_UNPARSED_ARGUMENTS} -+ COMMAND ${OPENMP_LLVM_LIT_EXECUTABLE} ${LIT_ARGS} ${ARG_UNPARSED_ARGUMENTS} - COMMENT ${comment} - DEPENDS ${ARG_DEPENDS} - USES_TERMINAL diff --git a/pkgs/by-name/ll/llvm/15/clang/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/15/clang/gnu-install-dirs.patch deleted file mode 100644 index f767c56..0000000 --- a/pkgs/by-name/ll/llvm/15/clang/gnu-install-dirs.patch +++ /dev/null @@ -1,105 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index c27beec313d7..480f13e73c9f 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -78,15 +78,17 @@ if(CLANG_BUILT_STANDALONE) - if (NOT LLVM_CONFIG_FOUND) - # Pull values from LLVMConfig.cmake. We can drop this once the llvm-config - # path is removed. -- set(MAIN_INCLUDE_DIR "${LLVM_INCLUDE_DIR}") -+ set(INCLUDE_DIRS ${LLVM_INCLUDE_DIRS}) - set(LLVM_OBJ_DIR "${LLVM_BINARY_DIR}") - # N.B. this is just a default value, the CACHE PATHs below can be overriden. - set(MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm") - set(TOOLS_BINARY_DIR "${LLVM_TOOLS_BINARY_DIR}") - set(LIBRARY_DIR "${LLVM_LIBRARY_DIR}") -+ else() -+ set(INCLUDE_DIRS "${LLVM_BINARY_DIR}/include" "${MAIN_INCLUDE_DIR}") - endif() - -- set(LLVM_MAIN_INCLUDE_DIR "${MAIN_INCLUDE_DIR}" CACHE PATH "Path to llvm/include") -+ set(LLVM_INCLUDE_DIRS ${INCLUDE_DIRS} CACHE PATH "Path to llvm/include and any other header dirs needed") - set(LLVM_BINARY_DIR "${LLVM_OBJ_ROOT}" CACHE PATH "Path to LLVM build tree") - set(LLVM_MAIN_SRC_DIR "${MAIN_SRC_DIR}" CACHE PATH "Path to LLVM source tree") - set(LLVM_TOOLS_BINARY_DIR "${TOOLS_BINARY_DIR}" CACHE PATH "Path to llvm/bin") -@@ -128,7 +130,7 @@ if(CLANG_BUILT_STANDALONE) - set(LLVM_INCLUDE_TESTS ON) - endif() - -- include_directories("${LLVM_BINARY_DIR}/include" "${LLVM_MAIN_INCLUDE_DIR}") -+ include_directories(${LLVM_INCLUDE_DIRS}) - link_directories("${LLVM_LIBRARY_DIR}") - - set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin ) -diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake -index 21ac332e4f5f..b16c314bd1e2 100644 ---- a/cmake/modules/AddClang.cmake -+++ b/cmake/modules/AddClang.cmake -@@ -119,8 +119,8 @@ macro(add_clang_library name) - install(TARGETS ${lib} - COMPONENT ${lib} - ${export_to_clangtargets} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} -+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" -+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") - - if (NOT LLVM_ENABLE_IDE) -diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt -index 6e2060991b92..b9bc930d26b8 100644 ---- a/lib/Headers/CMakeLists.txt -+++ b/lib/Headers/CMakeLists.txt -@@ -420,7 +420,7 @@ add_header_target("openmp-resource-headers" ${openmp_wrapper_files}) - add_header_target("windows-resource-headers" ${windows_only_files}) - add_header_target("utility-resource-headers" ${utility_files}) - --set(header_install_dir lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include) -+set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include) - - ############################################################# - # Install rules for the catch-all clang-resource-headers target -diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt -index 8d95d0900e8c..ebc70ff7526d 100644 ---- a/tools/libclang/CMakeLists.txt -+++ b/tools/libclang/CMakeLists.txt -@@ -180,7 +180,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS}) - COMPONENT - libclang-python-bindings - DESTINATION -- "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages") -+ "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages") - endforeach() - if(NOT LLVM_ENABLE_IDE) - add_custom_target(libclang-python-bindings) -diff --git a/tools/scan-build-py/CMakeLists.txt b/tools/scan-build-py/CMakeLists.txt -index 061dc7ef4dd9..adc54b2edc32 100644 ---- a/tools/scan-build-py/CMakeLists.txt -+++ b/tools/scan-build-py/CMakeLists.txt -@@ -88,7 +88,7 @@ foreach(lib ${LibScanbuild}) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/${lib}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/${lib}) - install(PROGRAMS lib/libscanbuild/${lib} -- DESTINATION lib/libscanbuild -+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libscanbuild" - COMPONENT scan-build-py) - endforeach() - -@@ -106,7 +106,7 @@ foreach(resource ${LibScanbuildResources}) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/resources/${resource}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/resources/${resource}) - install(PROGRAMS lib/libscanbuild/resources/${resource} -- DESTINATION lib/libscanbuild/resources -+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libscanbuild/resources" - COMPONENT scan-build-py) - endforeach() - -@@ -122,7 +122,7 @@ foreach(lib ${LibEar}) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libear/${lib}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libear/${lib}) - install(PROGRAMS lib/libear/${lib} -- DESTINATION lib/libear -+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libear" - COMPONENT scan-build-py) - endforeach() - diff --git a/pkgs/by-name/ll/llvm/15/clang/purity.patch b/pkgs/by-name/ll/llvm/15/clang/purity.patch deleted file mode 100644 index 1c94f29..0000000 --- a/pkgs/by-name/ll/llvm/15/clang/purity.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001 -From: Will Dietz -Date: Thu, 18 May 2017 11:56:12 -0500 -Subject: [PATCH] "purity" patch for 5.0 - ---- - lib/Driver/ToolChains/Gnu.cpp | 7 ------- - 1 file changed, 7 deletions(-) - -diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp -index fe3c0191bb..c6a482bece 100644 ---- a/lib/Driver/ToolChains/Gnu.cpp -+++ b/lib/Driver/ToolChains/Gnu.cpp -@@ -487,13 +487,7 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA, - } else { - if (Args.hasArg(options::OPT_rdynamic)) - CmdArgs.push_back("-export-dynamic"); - -- if (!Args.hasArg(options::OPT_shared) && !IsStaticPIE && -- !Args.hasArg(options::OPT_r)) { -- CmdArgs.push_back("-dynamic-linker"); -- CmdArgs.push_back(Args.MakeArgString(Twine(D.DyldPrefix) + -- ToolChain.getDynamicLinker(Args))); -- } - } - - CmdArgs.push_back("-o"); --- -2.11.0 diff --git a/pkgs/by-name/ll/llvm/15/compiler-rt/X86-support-extension.patch b/pkgs/by-name/ll/llvm/15/compiler-rt/X86-support-extension.patch deleted file mode 100644 index 07013e5..0000000 --- a/pkgs/by-name/ll/llvm/15/compiler-rt/X86-support-extension.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt -index 3a66dd9c3fb..7efc85d9f9f 100644 ---- a/lib/builtins/CMakeLists.txt -+++ b/lib/builtins/CMakeLists.txt -@@ -348,4 +348,8 @@ if (NOT MSVC) - -+ set(i486_SOURCES ${i386_SOURCES}) -+ set(i586_SOURCES ${i386_SOURCES}) -+ set(i686_SOURCES ${i386_SOURCES}) -+ - if (WIN32) - set(i386_SOURCES - ${i386_SOURCES} -@@ -723,6 +723,7 @@ else () - endif() - - foreach (arch ${BUILTIN_SUPPORTED_ARCH}) -+ message("arch: ${arch}") - if (CAN_TARGET_${arch}) - # For ARM archs, exclude any VFP builtins if VFP is not supported - if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$") diff --git a/pkgs/by-name/ll/llvm/15/compiler-rt/darwin-targetconditionals.patch b/pkgs/by-name/ll/llvm/15/compiler-rt/darwin-targetconditionals.patch deleted file mode 100644 index 425dc2a..0000000 --- a/pkgs/by-name/ll/llvm/15/compiler-rt/darwin-targetconditionals.patch +++ /dev/null @@ -1,71 +0,0 @@ -diff --git a/lib/sanitizer_common/sanitizer_mac.cpp b/lib/sanitizer_common/sanitizer_mac.cpp ---- a/lib/sanitizer_common/sanitizer_mac.cpp -+++ b/lib/sanitizer_common/sanitizer_mac.cpp -@@ -613,9 +613,15 @@ HandleSignalMode GetHandleSignalMode(int signum) { - // Offset example: - // XNU 17 -- macOS 10.13 -- iOS 11 -- tvOS 11 -- watchOS 4 - constexpr u16 GetOSMajorKernelOffset() { -- if (TARGET_OS_OSX) return 4; -- if (TARGET_OS_IOS || TARGET_OS_TV) return 6; -- if (TARGET_OS_WATCH) return 13; -+#if TARGET_OS_OSX -+ return 4; -+#endif -+#if TARGET_OS_IOS || TARGET_OS_TV -+ return 6; -+#endif -+#if TARGET_OS_WATCH -+ return 13; -+#endif - } - - using VersStr = char[64]; -@@ -627,13 +633,13 @@ static uptr ApproximateOSVersionViaKernelVersion(VersStr vers) { - u16 os_major = kernel_major - offset; - - const char *format = "%d.0"; -- if (TARGET_OS_OSX) { -- if (os_major >= 16) { // macOS 11+ -- os_major -= 5; -- } else { // macOS 10.15 and below -- format = "10.%d"; -- } -+#if TARGET_OS_OSX -+ if (os_major >= 16) { // macOS 11+ -+ os_major -= 5; -+ } else { // macOS 10.15 and below -+ format = "10.%d"; - } -+#endif - return internal_snprintf(vers, sizeof(VersStr), format, os_major); - } - -@@ -681,15 +687,14 @@ void ParseVersion(const char *vers, u16 *major, u16 *minor) { - // Aligned versions example: - // macOS 10.15 -- iOS 13 -- tvOS 13 -- watchOS 6 - static void MapToMacos(u16 *major, u16 *minor) { -- if (TARGET_OS_OSX) -- return; -- -- if (TARGET_OS_IOS || TARGET_OS_TV) -+#if !TARGET_OS_OSX -+#if TARGET_OS_IOS || TARGET_OS_TV - *major += 2; -- else if (TARGET_OS_WATCH) -+#elif TARGET_OS_WATCH - *major += 9; -- else -+#else - UNREACHABLE("unsupported platform"); -+#endif - - if (*major >= 16) { // macOS 11+ - *major -= 5; -@@ -697,6 +702,7 @@ static void MapToMacos(u16 *major, u16 *minor) { - *minor = *major; - *major = 10; - } -+#endif - } - - static MacosVersion GetMacosAlignedVersionInternal() { diff --git a/pkgs/by-name/ll/llvm/15/compiler-rt/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/15/compiler-rt/gnu-install-dirs.patch deleted file mode 100644 index f3b1f63..0000000 --- a/pkgs/by-name/ll/llvm/15/compiler-rt/gnu-install-dirs.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake -index 8a6219568b3f..30ee68a47ccf 100644 ---- a/cmake/base-config-ix.cmake -+++ b/cmake/base-config-ix.cmake -@@ -100,13 +100,13 @@ endif() - if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) - set(COMPILER_RT_OUTPUT_LIBRARY_DIR - ${COMPILER_RT_OUTPUT_DIR}/lib) -- extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" lib) -+ extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "${CMAKE_INSTALL_LIBDIR}") - set(COMPILER_RT_INSTALL_LIBRARY_DIR "${default_install_path}" CACHE PATH - "Path where built compiler-rt libraries should be installed.") - else(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) - set(COMPILER_RT_OUTPUT_LIBRARY_DIR - ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR}) -- extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "lib/${COMPILER_RT_OS_DIR}") -+ extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "${CMAKE_INSTALL_LIBDIR}/${COMPILER_RT_OS_DIR}") - set(COMPILER_RT_INSTALL_LIBRARY_DIR "${default_install_path}" CACHE PATH - "Path where built compiler-rt libraries should be installed.") - endif() diff --git a/pkgs/by-name/ll/llvm/15/compiler-rt/normalize-var.patch b/pkgs/by-name/ll/llvm/15/compiler-rt/normalize-var.patch deleted file mode 100644 index 135cf62..0000000 --- a/pkgs/by-name/ll/llvm/15/compiler-rt/normalize-var.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/compiler-rt/cmake/Modules/CompilerRTUtils.cmake b/compiler-rt/cmake/Modules/CompilerRTUtils.cmake -index f1f46fb9599c..6f19e69507ba 100644 ---- a/cmake/Modules/CompilerRTUtils.cmake -+++ b/cmake/Modules/CompilerRTUtils.cmake -@@ -302,8 +302,9 @@ macro(load_llvm_config) - # Get some LLVM variables from LLVMConfig. - include("${LLVM_CMAKE_PATH}/LLVMConfig.cmake") - -- set(LLVM_LIBRARY_OUTPUT_INTDIR -- ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) -+ get_filename_component(LLVM_LIBRARY_OUTPUT_INTDIR -+ ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX} -+ REALPATH) - endif() - endmacro() - diff --git a/pkgs/by-name/ll/llvm/15/default.nix b/pkgs/by-name/ll/llvm/15/default.nix deleted file mode 100644 index bfcbe2b..0000000 --- a/pkgs/by-name/ll/llvm/15/default.nix +++ /dev/null @@ -1,396 +0,0 @@ -{ 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" */; - # rev = /* commit SHA */; - # 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="; } - # 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 -}: - -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 - # 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; - - 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" - ''; - - bintoolsNoLibc' = - if bootBintoolsNoLibc == null - then tools.bintoolsNoLibc - else bootBintoolsNoLibc; - bintools' = - if bootBintools == null - then tools.bintools - else bootBintools; - - in { - - 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; - - 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; - - 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 - }); - - 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; - - 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; - }; - - 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 - { - 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 - && !stdenv.targetPlatform.isAarch64 - && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0") - ) ./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. - - 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 = 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" - "-nostdlib++" - ] - ++ 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 = - [ - "-rtlib=compiler-rt" - "-B${targetLlvmLibraries.compiler-rt}/lib" - ] - ++ 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 = - [ - "-nostartfiles" - ] - ++ 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" ]; - }); - - }); - - 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-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; - - stdenv = overrideCC stdenv buildLlvmTools.clang; - - 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/" - ]; - }) - ] ++ 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 { - 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; - }; - }); - noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ]; - -in { inherit tools libraries release_version lldbPlugins; } // (noExtend libraries) // (noExtend tools) diff --git a/pkgs/by-name/ll/llvm/15/libunwind/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/15/libunwind/gnu-install-dirs.patch deleted file mode 100644 index edfb2a8..0000000 --- a/pkgs/by-name/ll/llvm/15/libunwind/gnu-install-dirs.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 5a06805f05f1..86a50329e6a8 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -117,7 +117,7 @@ set(LIBUNWIND_INSTALL_RUNTIME_DIR "${CMAKE_INSTALL_BINDIR}" CACHE PATH - - if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) - set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}) -- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH -+ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH - "Path where built libunwind libraries should be installed.") - if(LIBCXX_LIBDIR_SUBDIR) - string(APPEND LIBUNWIND_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR}) -@@ -129,7 +129,7 @@ else() - else() - set(LIBUNWIND_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBUNWIND_LIBDIR_SUFFIX}) - endif() -- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX} CACHE PATH -+ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX} CACHE PATH - "Path where built libunwind libraries should be installed.") - endif() - diff --git a/pkgs/by-name/ll/llvm/15/lld/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/15/lld/gnu-install-dirs.patch deleted file mode 100644 index ea62b2a..0000000 --- a/pkgs/by-name/ll/llvm/15/lld/gnu-install-dirs.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index dcc649629a4b..58dca54642e4 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -70,13 +70,15 @@ if(LLD_BUILT_STANDALONE) - if (NOT LLVM_CONFIG_FOUND) - # Pull values from LLVMConfig.cmake. We can drop this once the llvm-config - # path is removed. -- set(MAIN_INCLUDE_DIR "${LLVM_INCLUDE_DIR}") -+ set(INCLUDE_DIRS ${LLVM_INCLUDE_DIRS}) - set(LLVM_OBJ_DIR "${LLVM_BINARY_DIR}") - # N.B. this is just a default value, the CACHE PATHs below can be overridden. - set(MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm") -+ else() -+ set(INCLUDE_DIRS "${LLVM_BINARY_DIR}/include" "${MAIN_INCLUDE_DIR}") - endif() - -- set(LLVM_MAIN_INCLUDE_DIR "${MAIN_INCLUDE_DIR}" CACHE PATH "Path to llvm/include") -+ set(LLVM_INCLUDE_DIRS ${INCLUDE_DIRS} CACHE PATH "Path to llvm/include and any other header dirs needed") - set(LLVM_BINARY_DIR "${LLVM_OBJ_ROOT}" CACHE PATH "Path to LLVM build tree") - set(LLVM_MAIN_SRC_DIR "${MAIN_SRC_DIR}" CACHE PATH "Path to LLVM source tree") - -@@ -95,7 +97,7 @@ if(LLD_BUILT_STANDALONE) - - set(PACKAGE_VERSION "${LLVM_PACKAGE_VERSION}") - -- include_directories("${LLVM_BINARY_DIR}/include" ${LLVM_INCLUDE_DIRS}) -+ include_directories(${LLVM_INCLUDE_DIRS}) - link_directories(${LLVM_LIBRARY_DIRS}) - - if(LLVM_INCLUDE_TESTS) -diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake -index d3924f7243d4..42a7cd62281c 100644 ---- a/cmake/modules/AddLLD.cmake -+++ b/cmake/modules/AddLLD.cmake -@@ -18,8 +18,8 @@ macro(add_lld_library name) - install(TARGETS ${name} - COMPONENT ${name} - ${export_to_lldtargets} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} -+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" -+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") - - if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES) diff --git a/pkgs/by-name/ll/llvm/15/lldb/cpu_subtype_arm64e_replacement.patch b/pkgs/by-name/ll/llvm/15/lldb/cpu_subtype_arm64e_replacement.patch deleted file mode 100644 index 20d35c9..0000000 --- a/pkgs/by-name/ll/llvm/15/lldb/cpu_subtype_arm64e_replacement.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/source/Host/macosx/objcxx/HostInfoMacOSX.mm b/source/Host/macosx/objcxx/HostInfoMacOSX.mm ---- a/source/Host/macosx/objcxx/HostInfoMacOSX.mm -+++ b/source/Host/macosx/objcxx/HostInfoMacOSX.mm -@@ -233,7 +233,7 @@ void HostInfoMacOSX::ComputeHostArchitectureSupport(ArchSpec &arch_32, - len = sizeof(is_64_bit_capable); - ::sysctlbyname("hw.cpu64bit_capable", &is_64_bit_capable, &len, NULL, 0); - -- if (cputype == CPU_TYPE_ARM64 && cpusubtype == CPU_SUBTYPE_ARM64E) { -+ if (cputype == CPU_TYPE_ARM64 && cpusubtype == ((cpu_subtype_t) 2)) { // CPU_SUBTYPE_ARM64E is not available in the macOS 10.12 headers - // The arm64e architecture is a preview. Pretend the host architecture - // is arm64. - cpusubtype = CPU_SUBTYPE_ARM64_ALL; diff --git a/pkgs/by-name/ll/llvm/15/lldb/procfs.patch b/pkgs/by-name/ll/llvm/15/lldb/procfs.patch deleted file mode 100644 index 7b200e8..0000000 --- a/pkgs/by-name/ll/llvm/15/lldb/procfs.patch +++ /dev/null @@ -1,46 +0,0 @@ ---- a/source/Plugins/Process/Linux/Procfs.h -+++ b/source/Plugins/Process/Linux/Procfs.h -@@ -10,6 +10,13 @@ - // sys/procfs.h on Android/Linux for all supported architectures. - - #include -+#include -+ -+// on i686 preprocessor symbols with these register names are defined as -+// numeric constants; these symbols clash with identifier names used in -+// `llvm/Support/VirtualFileSystem.h` and `llvm/ADT/SmallVector.h` -+#undef FS -+#undef CS - - #include "lldb/lldb-types.h" - -@@ -17,23 +24,13 @@ - - #include - --#ifdef __ANDROID__ --#if defined(__arm64__) || defined(__aarch64__) --typedef unsigned long elf_greg_t; --typedef elf_greg_t -- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))]; --typedef struct user_fpsimd_state elf_fpregset_t; --#ifndef NT_FPREGSET --#define NT_FPREGSET NT_PRFPREG --#endif // NT_FPREGSET --#elif defined(__mips__) --#ifndef NT_FPREGSET --#define NT_FPREGSET NT_PRFPREG --#endif // NT_FPREGSET --#endif --#else // __ANDROID__ -+#if !defined(__GLIBC__) && defined(__powerpc__) -+#define pt_regs musl_pt_regs -+#include -+#undef pt_regs -+#else - #include --#endif // __ANDROID__ -+#endif - - namespace lldb_private { - namespace process_linux { diff --git a/pkgs/by-name/ll/llvm/15/lldb/resource-dir.patch b/pkgs/by-name/ll/llvm/15/lldb/resource-dir.patch deleted file mode 100644 index e0db80a..0000000 --- a/pkgs/by-name/ll/llvm/15/lldb/resource-dir.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/lldb/cmake/modules/LLDBConfig.cmake b/lldb/cmake/modules/LLDBConfig.cmake -index 37364341ff8b..7f74c1a3e257 100644 ---- a/cmake/modules/LLDBConfig.cmake -+++ b/cmake/modules/LLDBConfig.cmake -@@ -257,7 +257,7 @@ if (NOT TARGET clang-resource-headers) - # Iterate over the possible places where the external resource directory - # could be and pick the first that exists. - foreach(CANDIDATE "${Clang_DIR}/../.." "${LLVM_DIR}" "${LLVM_LIBRARY_DIRS}" -- "${LLVM_BUILD_LIBRARY_DIR}" -+ "${LLVM_BUILD_LIBRARY_DIR}" "@clangLibDir@" - "${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}") - # Build the resource directory path by appending 'clang/'. - set(CANDIDATE_RESOURCE_DIR "${CANDIDATE}/clang/${LLDB_CLANG_RESOURCE_DIR_NAME}") diff --git a/pkgs/by-name/ll/llvm/15/llvm/default.nix b/pkgs/by-name/ll/llvm/15/llvm/default.nix deleted file mode 100644 index d7ebcbc..0000000 --- a/pkgs/by-name/ll/llvm/15/llvm/default.nix +++ /dev/null @@ -1,442 +0,0 @@ -{ 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)); - - # Ordinarily we would just the `doCheck` and `checkDeps` functionality - # `mkDerivation` gives us to manage our test dependencies (instead of breaking - # out `doCheck` as a package level attribute). - # - # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in - # particular the children it uses to do feature detection. - # - # This means that python deps we add to `checkDeps` (which the python - # interpreter is made aware of via `$PYTHONPATH` – populated by the python - # setup hook) are not picked up by `lit` which causes it to skip tests. - # - # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work - # because this package is shadowed in `$PATH` by the regular `python3` - # package. - # - # 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" - ( - 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/15/llvm/gnu-install-dirs-polly.patch b/pkgs/by-name/ll/llvm/15/llvm/gnu-install-dirs-polly.patch deleted file mode 100644 index b01363e..0000000 --- a/pkgs/by-name/ll/llvm/15/llvm/gnu-install-dirs-polly.patch +++ /dev/null @@ -1,19 +0,0 @@ -This is the one remaining Polly install dirs related change that hasn't made it -into upstream yet; previously this patch file also included: -https://reviews.llvm.org/D117541 - -diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake -index 518a09b45a42..bd9d6f5542ad 100644 ---- a/tools/polly/cmake/polly_macros.cmake -+++ b/tools/polly/cmake/polly_macros.cmake -@@ -44,8 +44,8 @@ macro(add_polly_library name) - if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly") - install(TARGETS ${name} - EXPORT LLVMExports -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}) -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) - endif() - set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name}) - endmacro(add_polly_library) diff --git a/pkgs/by-name/ll/llvm/15/llvm/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/15/llvm/gnu-install-dirs.patch deleted file mode 100644 index 0ef317a..0000000 --- a/pkgs/by-name/ll/llvm/15/llvm/gnu-install-dirs.patch +++ /dev/null @@ -1,138 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 45399dc0537e..5d946e9e6583 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -942,7 +942,7 @@ if (NOT TENSORFLOW_AOT_PATH STREQUAL "") - add_subdirectory(${TENSORFLOW_AOT_PATH}/xla_aot_runtime_src - ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/tf_runtime) - install(TARGETS tf_xla_runtime EXPORT LLVMExports -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT tf_xla_runtime) -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT tf_xla_runtime) - set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS tf_xla_runtime) - # Once we add more modules, we should handle this more automatically. - if (DEFINED LLVM_OVERRIDE_MODEL_HEADER_INLINERSIZEMODEL) -diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake -index 057431208322..56f0dcb258da 100644 ---- a/cmake/modules/AddLLVM.cmake -+++ b/cmake/modules/AddLLVM.cmake -@@ -844,8 +844,8 @@ macro(add_llvm_library name) - get_target_export_arg(${name} LLVM export_to_llvmexports ${umbrella}) - install(TARGETS ${name} - ${export_to_llvmexports} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} -+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" COMPONENT ${name} -+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" COMPONENT ${name} - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${name}) - - if (NOT LLVM_ENABLE_IDE) -@@ -2007,7 +2007,7 @@ function(llvm_install_library_symlink name dest type) - set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX}) - set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX}) - -- set(output_dir lib${LLVM_LIBDIR_SUFFIX}) -+ set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) - if(WIN32 AND "${type}" STREQUAL "SHARED") - set(output_dir "${CMAKE_INSTALL_BINDIR}") - endif() -@@ -2271,15 +2271,15 @@ function(llvm_setup_rpath name) - - if (APPLE) - set(_install_name_dir INSTALL_NAME_DIR "@rpath") -- set(_install_rpath "@loader_path/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -+ set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) - elseif(${CMAKE_SYSTEM_NAME} MATCHES "AIX" AND BUILD_SHARED_LIBS) - # $ORIGIN is not interpreted at link time by aix ld. - # Since BUILD_SHARED_LIBS is only recommended for use by developers, - # hardcode the rpath to build/install lib dir first in this mode. - # FIXME: update this when there is better solution. -- set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -+ set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) - elseif(UNIX) -- set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -+ set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) - if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)") - set_property(TARGET ${name} APPEND_STRING PROPERTY - LINK_FLAGS " -Wl,-z,origin ") -diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake -index 891c9e6d618c..8d963f3b0069 100644 ---- a/cmake/modules/AddOCaml.cmake -+++ b/cmake/modules/AddOCaml.cmake -@@ -147,9 +147,9 @@ function(add_ocaml_library name) - endforeach() - - if( APPLE ) -- set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}") -+ set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") - elseif( UNIX ) -- set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}") -+ set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") - endif() - list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}") - -diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt -index d4b0ab959148..26ed981fd09f 100644 ---- a/cmake/modules/CMakeLists.txt -+++ b/cmake/modules/CMakeLists.txt -@@ -128,7 +128,7 @@ set(LLVM_CONFIG_INCLUDE_DIRS - ) - list(REMOVE_DUPLICATES LLVM_CONFIG_INCLUDE_DIRS) - --extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "lib\${LLVM_LIBDIR_SUFFIX}") -+extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}") - set(LLVM_CONFIG_LIBRARY_DIRS - "${LLVM_CONFIG_LIBRARY_DIR}" - # FIXME: Should there be other entries here? -diff --git a/docs/CMake.rst b/docs/CMake.rst -index 879b7b231d4c..9c31d14e8950 100644 ---- a/docs/CMake.rst -+++ b/docs/CMake.rst -@@ -250,7 +250,7 @@ description is in `LLVM-related variables`_ below. - **LLVM_LIBDIR_SUFFIX**:STRING - Extra suffix to append to the directory where libraries are to be - installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64`` -- to install libraries to ``/usr/lib64``. -+ to install libraries to ``/usr/lib64``. See also ``CMAKE_INSTALL_LIBDIR``. - - **LLVM_PARALLEL_{COMPILE,LINK}_JOBS**:STRING - Building the llvm toolchain can use a lot of resources, particularly -@@ -284,6 +284,10 @@ manual, or execute ``cmake --help-variable VARIABLE_NAME``. - The path to install executables, relative to the *CMAKE_INSTALL_PREFIX*. - Defaults to "bin". - -+**CMAKE_INSTALL_LIBDIR**:PATH -+ The path to install libraries, relative to the *CMAKE_INSTALL_PREFIX*. -+ Defaults to "lib". -+ - **CMAKE_INSTALL_INCLUDEDIR**:PATH - The path to install header files, relative to the *CMAKE_INSTALL_PREFIX*. - Defaults to "include". -diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in -index 370005cd8d7d..7e790bc52111 100644 ---- a/tools/llvm-config/BuildVariables.inc.in -+++ b/tools/llvm-config/BuildVariables.inc.in -@@ -23,6 +23,7 @@ - #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@" - #define LLVM_BUILDMODE "@LLVM_BUILDMODE@" - #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@" -+#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@" - #define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@" - #define LLVM_INSTALL_PACKAGE_DIR "@LLVM_INSTALL_PACKAGE_DIR@" - #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@" -diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp -index 2c6c55f89d38..f6d2068a0827 100644 ---- a/tools/llvm-config/llvm-config.cpp -+++ b/tools/llvm-config/llvm-config.cpp -@@ -369,7 +369,11 @@ int main(int argc, char **argv) { - sys::fs::make_absolute(ActivePrefix, Path); - ActiveBinDir = std::string(Path.str()); - } -- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX; -+ { -+ SmallString<256> Path(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX); -+ sys::fs::make_absolute(ActivePrefix, Path); -+ ActiveLibDir = std::string(Path.str()); -+ } - { - SmallString<256> Path(LLVM_INSTALL_PACKAGE_DIR); - sys::fs::make_absolute(ActivePrefix, Path); diff --git a/pkgs/by-name/ll/llvm/15/llvm/lit-shell-script-runner-set-dyld-library-path.patch b/pkgs/by-name/ll/llvm/15/llvm/lit-shell-script-runner-set-dyld-library-path.patch deleted file mode 100644 index 32f1d13..0000000 --- a/pkgs/by-name/ll/llvm/15/llvm/lit-shell-script-runner-set-dyld-library-path.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/utils/lit/lit/TestRunner.py b/utils/lit/lit/TestRunner.py -index 0242e0b75af3..d732011306f7 100644 ---- a/utils/lit/lit/TestRunner.py -+++ b/utils/lit/lit/TestRunner.py -@@ -1029,6 +1029,12 @@ def executeScript(test, litConfig, tmpBase, commands, cwd): - f.write('@echo off\n') - f.write('\n@if %ERRORLEVEL% NEQ 0 EXIT\n'.join(commands)) - else: -+ # This env var is *purged* when invoking subprocesses so we have to -+ # manually set it from within the bash script in order for the commands -+ # in run lines to see this var: -+ if "DYLD_LIBRARY_PATH" in test.config.environment: -+ f.write(f'export DYLD_LIBRARY_PATH="{test.config.environment["DYLD_LIBRARY_PATH"]}"\n') -+ - for i, ln in enumerate(commands): - match = re.match(kPdbgRegex, ln) - if match: -@@ -1363,7 +1369,7 @@ def applySubstitutions(script, substitutions, conditions={}, - return processed - - process = processLine if recursion_limit is None else processLineToFixedPoint -- -+ - return [unescapePercents(process(ln)) for ln in script] - - diff --git a/pkgs/by-name/ll/llvm/15/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch b/pkgs/by-name/ll/llvm/15/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch deleted file mode 100644 index d824516..0000000 --- a/pkgs/by-name/ll/llvm/15/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch +++ /dev/null @@ -1,79 +0,0 @@ -diff --git a/test/Unit/lit.cfg.py b/test/Unit/lit.cfg.py -index 81e8dc04acea..479ff95681e2 100644 ---- a/test/Unit/lit.cfg.py -+++ b/test/Unit/lit.cfg.py -@@ -3,6 +3,7 @@ - # Configuration file for the 'lit' test runner. - - import os -+import platform - import subprocess - - import lit.formats -@@ -55,3 +56,26 @@ if sys.platform in ['win32', 'cygwin'] and os.path.isdir(config.shlibdir): - # Win32 may use %SYSTEMDRIVE% during file system shell operations, so propogate. - if sys.platform == 'win32' and 'SYSTEMDRIVE' in os.environ: - config.environment['SYSTEMDRIVE'] = os.environ['SYSTEMDRIVE'] -+ -+# Add the LLVM dynamic libs to the platform-specific loader search path env var: -+# -+# TODO: this is copied from `clang`'s `lit.cfg.py`; should unify.. -+def find_shlibpath_var(): -+ if platform.system() in ['Linux', 'FreeBSD', 'NetBSD', 'OpenBSD', 'SunOS']: -+ yield 'LD_LIBRARY_PATH' -+ elif platform.system() == 'Darwin': -+ yield 'DYLD_LIBRARY_PATH' -+ elif platform.system() == 'Windows': -+ yield 'PATH' -+ elif platform.system() == 'AIX': -+ yield 'LIBPATH' -+ -+for shlibpath_var in find_shlibpath_var(): -+ shlibpath = os.path.pathsep.join( -+ (config.shlibdir, -+ config.environment.get(shlibpath_var, ''))) -+ config.environment[shlibpath_var] = shlibpath -+ break -+else: -+ lit_config.warning("unable to inject shared library path on '{}'" -+ .format(platform.system())) -diff --git a/test/lit.cfg.py b/test/lit.cfg.py -index 75a38b4c5dad..856fc75c9d74 100644 ---- a/test/lit.cfg.py -+++ b/test/lit.cfg.py -@@ -42,6 +42,26 @@ llvm_config.with_environment('PATH', config.llvm_tools_dir, append_path=True) - llvm_config.with_system_environment( - ['HOME', 'INCLUDE', 'LIB', 'TMP', 'TEMP']) - -+# Add the LLVM dynamic libs to the platform-specific loader search path env var: -+# -+# TODO: this is copied from `clang`'s `lit.cfg.py`; should unify.. -+def find_shlibpath_var(): -+ if platform.system() in ['Linux', 'FreeBSD', 'NetBSD', 'OpenBSD', 'SunOS']: -+ yield 'LD_LIBRARY_PATH' -+ elif platform.system() == 'Darwin': -+ yield 'DYLD_LIBRARY_PATH' -+ elif platform.system() == 'Windows': -+ yield 'PATH' -+ elif platform.system() == 'AIX': -+ yield 'LIBPATH' -+ -+for shlibpath_var in find_shlibpath_var(): -+ shlibpath = config.llvm_shlib_dir -+ llvm_config.with_environment(shlibpath_var, shlibpath, append_path = True) -+ break -+else: -+ lit_config.warning("unable to inject shared library path on '{}'" -+ .format(platform.system())) - - # Set up OCAMLPATH to include newly built OCaml libraries. - top_ocaml_lib = os.path.join(config.llvm_lib_dir, 'ocaml') -@@ -318,7 +338,7 @@ def have_cxx_shared_library(): - - try: - readobj_cmd = subprocess.Popen( -- [readobj_exe, '--needed-libs', readobj_exe], stdout=subprocess.PIPE) -+ [readobj_exe, '--needed-libs', readobj_exe], stdout=subprocess.PIPE, env=config.environment) - except OSError: - print('could not exec llvm-readobj') - return False diff --git a/pkgs/by-name/ll/llvm/15/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch b/pkgs/by-name/ll/llvm/15/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch deleted file mode 100644 index 1354ad2..0000000 --- a/pkgs/by-name/ll/llvm/15/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/tools/polly/test/lit.cfg b/tools/polly/test/lit.cfg -index 41e3a589c61e..09f3b17498b0 100644 ---- a/tools/polly/test/lit.cfg -+++ b/tools/polly/test/lit.cfg -@@ -36,9 +36,17 @@ base_paths = [config.llvm_tools_dir, config.environment['PATH']] - path = os.path.pathsep.join(base_paths + config.extra_paths) - config.environment['PATH'] = path - -+# (Copied from polly/test/Unit/lit.cfg) -+if platform.system() == 'Darwin': -+ shlibpath_var = 'DYLD_LIBRARY_PATH' -+elif platform.system() == 'Windows': -+ shlibpath_var = 'PATH' -+else: -+ shlibpath_var = 'LD_LIBRARY_PATH' -+ - path = os.path.pathsep.join((config.llvm_libs_dir, -- config.environment.get('LD_LIBRARY_PATH',''))) --config.environment['LD_LIBRARY_PATH'] = path -+ config.environment.get(shlibpath_var,''))) -+config.environment[shlibpath_var] = path - - llvm_config.use_default_substitutions() - diff --git a/pkgs/by-name/ll/llvm/15/openmp/fix-find-tool.patch b/pkgs/by-name/ll/llvm/15/openmp/fix-find-tool.patch deleted file mode 100644 index 103b054..0000000 --- a/pkgs/by-name/ll/llvm/15/openmp/fix-find-tool.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/libomptarget/DeviceRTL/CMakeLists.txt b/libomptarget/DeviceRTL/CMakeLists.txt -index ce66214822a2..6ab7b33c95da 100644 ---- a/libomptarget/DeviceRTL/CMakeLists.txt -+++ b/libomptarget/DeviceRTL/CMakeLists.txt -@@ -27,10 +27,10 @@ endif() - if (LLVM_DIR) - # Builds that use pre-installed LLVM have LLVM_DIR set. - # A standalone or LLVM_ENABLE_RUNTIMES=openmp build takes this route -- find_program(CLANG_TOOL clang PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) -+ find_program(CLANG_TOOL clang PATHS ${LLVM_TOOLS_BINARY_DIR}) - find_program(LINK_TOOL llvm-link PATHS ${LLVM_TOOLS_BINARY_DIR} -- NO_DEFAULT_PATH) -- find_program(OPT_TOOL opt PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) -+ ) -+ find_program(OPT_TOOL opt PATHS ${LLVM_TOOLS_BINARY_DIR}) - if ((NOT CLANG_TOOL) OR (NOT LINK_TOOL) OR (NOT OPT_TOOL)) - libomptarget_say("Not building DeviceRTL. Missing clang: ${CLANG_TOOL}, llvm-link: ${LINK_TOOL} or opt: ${OPT_TOOL}") - return() diff --git a/pkgs/by-name/ll/llvm/15/openmp/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/15/openmp/gnu-install-dirs.patch deleted file mode 100644 index 77a9320..0000000 --- a/pkgs/by-name/ll/llvm/15/openmp/gnu-install-dirs.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index b6ddbe90516d..311ab1d50e7f 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -29,7 +29,7 @@ if (OPENMP_STANDALONE_BUILD) - set(OPENMP_LIBDIR_SUFFIX "" CACHE STRING - "Suffix of lib installation directory, e.g. 64 => lib64") - # Do not use OPENMP_LIBDIR_SUFFIX directly, use OPENMP_INSTALL_LIBDIR. -- set(OPENMP_INSTALL_LIBDIR "lib${OPENMP_LIBDIR_SUFFIX}") -+ set(OPENMP_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}${OPENMP_LIBDIR_SUFFIX}") - - # Group test settings. - set(OPENMP_TEST_C_COMPILER ${CMAKE_C_COMPILER} CACHE STRING -@@ -40,7 +40,7 @@ if (OPENMP_STANDALONE_BUILD) - else() - set(OPENMP_ENABLE_WERROR ${LLVM_ENABLE_WERROR}) - # If building in tree, we honor the same install suffix LLVM uses. -- set(OPENMP_INSTALL_LIBDIR "lib${LLVM_LIBDIR_SUFFIX}") -+ set(OPENMP_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") - - if (NOT MSVC) - set(OPENMP_TEST_C_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang) diff --git a/pkgs/by-name/ll/llvm/15/openmp/run-lit-directly.patch b/pkgs/by-name/ll/llvm/15/openmp/run-lit-directly.patch deleted file mode 100644 index 1e952fd..0000000 --- a/pkgs/by-name/ll/llvm/15/openmp/run-lit-directly.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/cmake/OpenMPTesting.cmake b/cmake/OpenMPTesting.cmake ---- a/cmake/OpenMPTesting.cmake -+++ b/cmake/OpenMPTesting.cmake -@@ -185,7 +185,7 @@ function(add_openmp_testsuite target comment) - if (${OPENMP_STANDALONE_BUILD}) - set(LIT_ARGS ${OPENMP_LIT_ARGS} ${ARG_ARGS}) - add_custom_target(${target} -- COMMAND ${PYTHON_EXECUTABLE} ${OPENMP_LLVM_LIT_EXECUTABLE} ${LIT_ARGS} ${ARG_UNPARSED_ARGUMENTS} -+ COMMAND ${OPENMP_LLVM_LIT_EXECUTABLE} ${LIT_ARGS} ${ARG_UNPARSED_ARGUMENTS} - COMMENT ${comment} - DEPENDS ${ARG_DEPENDS} - USES_TERMINAL diff --git a/pkgs/by-name/ll/llvm/16/clang/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/16/clang/gnu-install-dirs.patch deleted file mode 100644 index e5465c9..0000000 --- a/pkgs/by-name/ll/llvm/16/clang/gnu-install-dirs.patch +++ /dev/null @@ -1,109 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 090cfa352078..624b7c9f3400 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -38,12 +38,26 @@ if(CLANG_BUILT_STANDALONE) - find_package(LLVM REQUIRED HINTS "${LLVM_CMAKE_DIR}") - list(APPEND CMAKE_MODULE_PATH "${LLVM_DIR}") - -- # Turn into CACHE PATHs for overwritting -- set(LLVM_INCLUDE_DIRS ${LLVM_INCLUDE_DIRS} CACHE PATH "Path to llvm/include and any other header dirs needed") -- set(LLVM_BINARY_DIR "${LLVM_BINARY_DIR}" CACHE PATH "Path to LLVM build tree") -- set(LLVM_MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm" CACHE PATH "Path to LLVM source tree") -- set(LLVM_TOOLS_BINARY_DIR "${LLVM_TOOLS_BINARY_DIR}" CACHE PATH "Path to llvm/bin") -- set(LLVM_LIBRARY_DIR "${LLVM_LIBRARY_DIR}" CACHE PATH "Path to llvm/lib") -+ # We can't check LLVM_CONFIG here, because find_package(LLVM ...) also sets -+ # LLVM_CONFIG. -+ if (NOT LLVM_CONFIG_FOUND) -+ # Pull values from LLVMConfig.cmake. We can drop this once the llvm-config -+ # path is removed. -+ set(INCLUDE_DIRS ${LLVM_INCLUDE_DIRS}) -+ set(LLVM_OBJ_DIR "${LLVM_BINARY_DIR}") -+ # N.B. this is just a default value, the CACHE PATHs below can be overriden. -+ set(MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm") -+ set(TOOLS_BINARY_DIR "${LLVM_TOOLS_BINARY_DIR}") -+ set(LIBRARY_DIR "${LLVM_LIBRARY_DIR}") -+ else() -+ set(INCLUDE_DIRS "${LLVM_BINARY_DIR}/include" "${MAIN_INCLUDE_DIR}") -+ endif() -+ -+ set(LLVM_INCLUDE_DIRS ${INCLUDE_DIRS} CACHE PATH "Path to llvm/include and any other header dirs needed") -+ set(LLVM_BINARY_DIR "${LLVM_OBJ_ROOT}" CACHE PATH "Path to LLVM build tree") -+ set(LLVM_MAIN_SRC_DIR "${MAIN_SRC_DIR}" CACHE PATH "Path to LLVM source tree") -+ set(LLVM_TOOLS_BINARY_DIR "${TOOLS_BINARY_DIR}" CACHE PATH "Path to llvm/bin") -+ set(LLVM_LIBRARY_DIR "${LIBRARY_DIR}" CACHE PATH "Path to llvm/lib") - - find_program(LLVM_TABLEGEN_EXE "llvm-tblgen" ${LLVM_TOOLS_BINARY_DIR} - NO_DEFAULT_PATH) -diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake -index 75b0080f6715..c895b884cd27 100644 ---- a/cmake/modules/AddClang.cmake -+++ b/cmake/modules/AddClang.cmake -@@ -119,8 +119,8 @@ macro(add_clang_library name) - install(TARGETS ${lib} - COMPONENT ${lib} - ${export_to_clangtargets} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} -+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" -+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") - - if (NOT LLVM_ENABLE_IDE) -diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt -index bb9a11eabbef..e2de91c65fbb 100644 ---- a/lib/Headers/CMakeLists.txt -+++ b/lib/Headers/CMakeLists.txt -@@ -437,7 +437,7 @@ add_header_target("openmp-resource-headers" ${openmp_wrapper_files}) - add_header_target("windows-resource-headers" ${windows_only_files}) - add_header_target("utility-resource-headers" ${utility_files}) - --set(header_install_dir lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION_MAJOR}/include) -+set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION_MAJOR}/include) - - ############################################################# - # Install rules for the catch-all clang-resource-headers target -diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt -index 4f23065a2472..6a0f55991e24 100644 ---- a/tools/libclang/CMakeLists.txt -+++ b/tools/libclang/CMakeLists.txt -@@ -234,7 +234,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS}) - COMPONENT - libclang-python-bindings - DESTINATION -- "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages") -+ "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages") - endforeach() - if(NOT LLVM_ENABLE_IDE) - add_custom_target(libclang-python-bindings) -diff --git a/tools/scan-build-py/CMakeLists.txt b/tools/scan-build-py/CMakeLists.txt -index 3aca22c0b0a8..3115353e3fe3 100644 ---- a/tools/scan-build-py/CMakeLists.txt -+++ b/tools/scan-build-py/CMakeLists.txt -@@ -88,7 +88,7 @@ foreach(lib ${LibScanbuild}) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/${lib}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/${lib}) - install(FILES lib/libscanbuild/${lib} -- DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libscanbuild -+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libscanbuild" - COMPONENT scan-build-py) - endforeach() - -@@ -106,7 +106,7 @@ foreach(resource ${LibScanbuildResources}) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/resources/${resource}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/resources/${resource}) - install(FILES lib/libscanbuild/resources/${resource} -- DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libscanbuild/resources -+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libscanbuild/resources" - COMPONENT scan-build-py) - endforeach() - -@@ -122,7 +122,7 @@ foreach(lib ${LibEar}) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libear/${lib}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libear/${lib}) - install(FILES lib/libear/${lib} -- DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libear -+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libear" - COMPONENT scan-build-py) - endforeach() - diff --git a/pkgs/by-name/ll/llvm/16/clang/purity.patch b/pkgs/by-name/ll/llvm/16/clang/purity.patch deleted file mode 100644 index 1c94f29..0000000 --- a/pkgs/by-name/ll/llvm/16/clang/purity.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001 -From: Will Dietz -Date: Thu, 18 May 2017 11:56:12 -0500 -Subject: [PATCH] "purity" patch for 5.0 - ---- - lib/Driver/ToolChains/Gnu.cpp | 7 ------- - 1 file changed, 7 deletions(-) - -diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp -index fe3c0191bb..c6a482bece 100644 ---- a/lib/Driver/ToolChains/Gnu.cpp -+++ b/lib/Driver/ToolChains/Gnu.cpp -@@ -487,13 +487,7 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA, - } else { - if (Args.hasArg(options::OPT_rdynamic)) - CmdArgs.push_back("-export-dynamic"); - -- if (!Args.hasArg(options::OPT_shared) && !IsStaticPIE && -- !Args.hasArg(options::OPT_r)) { -- CmdArgs.push_back("-dynamic-linker"); -- CmdArgs.push_back(Args.MakeArgString(Twine(D.DyldPrefix) + -- ToolChain.getDynamicLinker(Args))); -- } - } - - CmdArgs.push_back("-o"); --- -2.11.0 diff --git a/pkgs/by-name/ll/llvm/16/compiler-rt/X86-support-extension.patch b/pkgs/by-name/ll/llvm/16/compiler-rt/X86-support-extension.patch deleted file mode 100644 index 07013e5..0000000 --- a/pkgs/by-name/ll/llvm/16/compiler-rt/X86-support-extension.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt -index 3a66dd9c3fb..7efc85d9f9f 100644 ---- a/lib/builtins/CMakeLists.txt -+++ b/lib/builtins/CMakeLists.txt -@@ -348,4 +348,8 @@ if (NOT MSVC) - -+ set(i486_SOURCES ${i386_SOURCES}) -+ set(i586_SOURCES ${i386_SOURCES}) -+ set(i686_SOURCES ${i386_SOURCES}) -+ - if (WIN32) - set(i386_SOURCES - ${i386_SOURCES} -@@ -723,6 +723,7 @@ else () - endif() - - foreach (arch ${BUILTIN_SUPPORTED_ARCH}) -+ message("arch: ${arch}") - if (CAN_TARGET_${arch}) - # For ARM archs, exclude any VFP builtins if VFP is not supported - if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$") diff --git a/pkgs/by-name/ll/llvm/16/compiler-rt/darwin-targetconditionals.patch b/pkgs/by-name/ll/llvm/16/compiler-rt/darwin-targetconditionals.patch deleted file mode 100644 index 425dc2a..0000000 --- a/pkgs/by-name/ll/llvm/16/compiler-rt/darwin-targetconditionals.patch +++ /dev/null @@ -1,71 +0,0 @@ -diff --git a/lib/sanitizer_common/sanitizer_mac.cpp b/lib/sanitizer_common/sanitizer_mac.cpp ---- a/lib/sanitizer_common/sanitizer_mac.cpp -+++ b/lib/sanitizer_common/sanitizer_mac.cpp -@@ -613,9 +613,15 @@ HandleSignalMode GetHandleSignalMode(int signum) { - // Offset example: - // XNU 17 -- macOS 10.13 -- iOS 11 -- tvOS 11 -- watchOS 4 - constexpr u16 GetOSMajorKernelOffset() { -- if (TARGET_OS_OSX) return 4; -- if (TARGET_OS_IOS || TARGET_OS_TV) return 6; -- if (TARGET_OS_WATCH) return 13; -+#if TARGET_OS_OSX -+ return 4; -+#endif -+#if TARGET_OS_IOS || TARGET_OS_TV -+ return 6; -+#endif -+#if TARGET_OS_WATCH -+ return 13; -+#endif - } - - using VersStr = char[64]; -@@ -627,13 +633,13 @@ static uptr ApproximateOSVersionViaKernelVersion(VersStr vers) { - u16 os_major = kernel_major - offset; - - const char *format = "%d.0"; -- if (TARGET_OS_OSX) { -- if (os_major >= 16) { // macOS 11+ -- os_major -= 5; -- } else { // macOS 10.15 and below -- format = "10.%d"; -- } -+#if TARGET_OS_OSX -+ if (os_major >= 16) { // macOS 11+ -+ os_major -= 5; -+ } else { // macOS 10.15 and below -+ format = "10.%d"; - } -+#endif - return internal_snprintf(vers, sizeof(VersStr), format, os_major); - } - -@@ -681,15 +687,14 @@ void ParseVersion(const char *vers, u16 *major, u16 *minor) { - // Aligned versions example: - // macOS 10.15 -- iOS 13 -- tvOS 13 -- watchOS 6 - static void MapToMacos(u16 *major, u16 *minor) { -- if (TARGET_OS_OSX) -- return; -- -- if (TARGET_OS_IOS || TARGET_OS_TV) -+#if !TARGET_OS_OSX -+#if TARGET_OS_IOS || TARGET_OS_TV - *major += 2; -- else if (TARGET_OS_WATCH) -+#elif TARGET_OS_WATCH - *major += 9; -- else -+#else - UNREACHABLE("unsupported platform"); -+#endif - - if (*major >= 16) { // macOS 11+ - *major -= 5; -@@ -697,6 +702,7 @@ static void MapToMacos(u16 *major, u16 *minor) { - *minor = *major; - *major = 10; - } -+#endif - } - - static MacosVersion GetMacosAlignedVersionInternal() { diff --git a/pkgs/by-name/ll/llvm/16/compiler-rt/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/16/compiler-rt/gnu-install-dirs.patch deleted file mode 100644 index f3b1f63..0000000 --- a/pkgs/by-name/ll/llvm/16/compiler-rt/gnu-install-dirs.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake -index 8a6219568b3f..30ee68a47ccf 100644 ---- a/cmake/base-config-ix.cmake -+++ b/cmake/base-config-ix.cmake -@@ -100,13 +100,13 @@ endif() - if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) - set(COMPILER_RT_OUTPUT_LIBRARY_DIR - ${COMPILER_RT_OUTPUT_DIR}/lib) -- extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" lib) -+ extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "${CMAKE_INSTALL_LIBDIR}") - set(COMPILER_RT_INSTALL_LIBRARY_DIR "${default_install_path}" CACHE PATH - "Path where built compiler-rt libraries should be installed.") - else(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) - set(COMPILER_RT_OUTPUT_LIBRARY_DIR - ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR}) -- extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "lib/${COMPILER_RT_OS_DIR}") -+ extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "${CMAKE_INSTALL_LIBDIR}/${COMPILER_RT_OS_DIR}") - set(COMPILER_RT_INSTALL_LIBRARY_DIR "${default_install_path}" CACHE PATH - "Path where built compiler-rt libraries should be installed.") - endif() diff --git a/pkgs/by-name/ll/llvm/16/compiler-rt/normalize-var.patch b/pkgs/by-name/ll/llvm/16/compiler-rt/normalize-var.patch deleted file mode 100644 index 2b25fd4..0000000 --- a/pkgs/by-name/ll/llvm/16/compiler-rt/normalize-var.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/cmake/Modules/CompilerRTUtils.cmake b/cmake/Modules/CompilerRTUtils.cmake -index 4c85551d7766..297d7a47c54b 100644 ---- a/cmake/Modules/CompilerRTUtils.cmake -+++ b/cmake/Modules/CompilerRTUtils.cmake -@@ -328,8 +328,9 @@ macro(load_llvm_config) - endif() - endif() - -- set(LLVM_LIBRARY_OUTPUT_INTDIR -- ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) -+ get_filename_component(LLVM_LIBRARY_OUTPUT_INTDIR -+ ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX} -+ REALPATH) - - set(LLVM_MAIN_SRC_DIR "${LLVM_MAIN_SRC_DIR_DEFAULT}" CACHE PATH "Path to LLVM source tree") - message(STATUS "LLVM_MAIN_SRC_DIR: \"${LLVM_MAIN_SRC_DIR}\"") diff --git a/pkgs/by-name/ll/llvm/16/default.nix b/pkgs/by-name/ll/llvm/16/default.nix deleted file mode 100644 index 5dd07d7..0000000 --- a/pkgs/by-name/ll/llvm/16/default.nix +++ /dev/null @@ -1,389 +0,0 @@ -{ 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" */; - # rev = /* commit SHA */; - # 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="; } - # 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 -}: - -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 - # 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; - - 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" - ''; - - bintoolsNoLibc' = - if bootBintoolsNoLibc == null - then tools.bintoolsNoLibc - else bootBintoolsNoLibc; - bintools' = - if bootBintools == null - then tools.bintools - else bootBintools; - - in { - - 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; - - 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; - - 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 - }); - - 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; - - 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; - }; - - 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; - }; - - 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 - && !stdenv.targetPlatform.isAarch64 - && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0") - ) ./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. - - 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 = 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" - "-nostdlib++" - ] - ++ 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 = - [ - "-rtlib=compiler-rt" - "-B${targetLlvmLibraries.compiler-rt}/lib" - ] - ++ 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 = - [ - "-nostartfiles" - ] - ++ 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" ]; - }); - - # 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 { - - 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; - }; - - # 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; - - 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; - }; - - 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; - }; - }); - noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ]; - -in { inherit tools libraries release_version lldbPlugins; } // (noExtend libraries) // (noExtend tools) diff --git a/pkgs/by-name/ll/llvm/16/libunwind/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/16/libunwind/gnu-install-dirs.patch deleted file mode 100644 index edfb2a8..0000000 --- a/pkgs/by-name/ll/llvm/16/libunwind/gnu-install-dirs.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 5a06805f05f1..86a50329e6a8 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -117,7 +117,7 @@ set(LIBUNWIND_INSTALL_RUNTIME_DIR "${CMAKE_INSTALL_BINDIR}" CACHE PATH - - if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) - set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}) -- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH -+ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH - "Path where built libunwind libraries should be installed.") - if(LIBCXX_LIBDIR_SUBDIR) - string(APPEND LIBUNWIND_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR}) -@@ -129,7 +129,7 @@ else() - else() - set(LIBUNWIND_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBUNWIND_LIBDIR_SUFFIX}) - endif() -- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX} CACHE PATH -+ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX} CACHE PATH - "Path where built libunwind libraries should be installed.") - endif() - diff --git a/pkgs/by-name/ll/llvm/16/lld/add-table-base.patch b/pkgs/by-name/ll/llvm/16/lld/add-table-base.patch deleted file mode 100644 index 15fc903..0000000 --- a/pkgs/by-name/ll/llvm/16/lld/add-table-base.patch +++ /dev/null @@ -1,190 +0,0 @@ -From 93adcb770b99351b18553089c164fe3ef2119699 Mon Sep 17 00:00:00 2001 -From: Sam Clegg -Date: Fri, 25 Aug 2023 13:56:16 -0700 -Subject: [PATCH] [lld][WebAssembly] Add `--table-base` setting - -This is similar to `--global-base` but determines where to place the -table segments rather than that data segments. - -See https://github.com/emscripten-core/emscripten/issues/20097 - -Differential Revision: https://reviews.llvm.org/D158892 ---- - test/wasm/table-base.s | 72 ++++++++++++++++++++++++++++++++++++++ - wasm/Driver.cpp | 19 ++++++++-- - wasm/Options.td | 5 ++- - wasm/Writer.cpp | 8 ----- - 4 files changed, 93 insertions(+), 11 deletions(-) - create mode 100644 test/wasm/table-base.s - -diff --git a/test/wasm/table-base.s b/test/wasm/table-base.s -new file mode 100644 -index 000000000000000..56fff414fd31d96 ---- /dev/null -+++ b/test/wasm/table-base.s -@@ -0,0 +1,72 @@ -+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %s -o %t.o -+ -+# RUN: wasm-ld --export=__table_base -o %t.wasm %t.o -+# RUN: obj2yaml %t.wasm | FileCheck %s -check-prefix=CHECK-DEFAULT -+ -+# RUN: wasm-ld --table-base=100 --export=__table_base -o %t.wasm %t.o -+# RUN: obj2yaml %t.wasm | FileCheck %s -check-prefix=CHECK-100 -+ -+.globl _start -+_start: -+ .functype _start () -> () -+ i32.const _start -+ drop -+ end_function -+ -+# CHECK-DEFAULT: - Type: TABLE -+# CHECK-DEFAULT-NEXT: Tables: -+# CHECK-DEFAULT-NEXT: - Index: 0 -+# CHECK-DEFAULT-NEXT: ElemType: FUNCREF -+# CHECK-DEFAULT-NEXT: Limits: -+# CHECK-DEFAULT-NEXT: Flags: [ HAS_MAX ] -+# CHECK-DEFAULT-NEXT: Minimum: 0x2 -+# CHECK-DEFAULT-NEXT: Maximum: 0x2 -+ -+# CHECK-DEFAULT: - Type: GLOBAL -+# CHECK-DEFAULT-NEXT: Globals: -+# CHECK-DEFAULT-NEXT: - Index: 0 -+# CHECK-DEFAULT-NEXT: Type: I32 -+# CHECK-DEFAULT-NEXT: Mutable: true -+# CHECK-DEFAULT-NEXT: InitExpr: -+# CHECK-DEFAULT-NEXT: Opcode: I32_CONST -+# CHECK-DEFAULT-NEXT: Value: 66560 -+# CHECK-DEFAULT-NEXT: - Index: 1 -+# CHECK-DEFAULT-NEXT: Type: I32 -+# CHECK-DEFAULT-NEXT: Mutable: false -+# CHECK-DEFAULT-NEXT: InitExpr: -+# CHECK-DEFAULT-NEXT: Opcode: I32_CONST -+# CHECK-DEFAULT-NEXT: Value: 1 -+ -+# CHECK-DEFAULT: - Type: EXPORT -+# CHECK-DEFAULT: - Name: __table_base -+# CHECK-DEFAULT-NEXT: Kind: GLOBAL -+# CHECK-DEFAULT-NEXT: Index: 1 -+ -+# CHECK-100: - Type: TABLE -+# CHECK-100-NEXT: Tables: -+# CHECK-100-NEXT: - Index: 0 -+# CHECK-100-NEXT: ElemType: FUNCREF -+# CHECK-100-NEXT: Limits: -+# CHECK-100-NEXT: Flags: [ HAS_MAX ] -+# CHECK-100-NEXT: Minimum: 0x65 -+# CHECK-100-NEXT: Maximum: 0x65 -+ -+# CHECK-100: - Type: GLOBAL -+# CHECK-100-NEXT: Globals: -+# CHECK-100-NEXT: - Index: 0 -+# CHECK-100-NEXT: Type: I32 -+# CHECK-100-NEXT: Mutable: true -+# CHECK-100-NEXT: InitExpr: -+# CHECK-100-NEXT: Opcode: I32_CONST -+# CHECK-100-NEXT: Value: 66560 -+# CHECK-100-NEXT: - Index: 1 -+# CHECK-100-NEXT: Type: I32 -+# CHECK-100-NEXT: Mutable: false -+# CHECK-100-NEXT: InitExpr: -+# CHECK-100-NEXT: Opcode: I32_CONST -+# CHECK-100-NEXT: Value: 100 -+ -+# CHECK-100: - Type: EXPORT -+# CHECK-100: - Name: __table_base -+# CHECK-100-NEXT: Kind: GLOBAL -+# CHECK-100-NEXT: Index: 1 -diff --git a/wasm/Driver.cpp b/wasm/Driver.cpp -index 84304881f5ca34e..c2f5f0185781f36 100644 ---- a/wasm/Driver.cpp -+++ b/wasm/Driver.cpp -@@ -502,6 +502,7 @@ static void readConfigs(opt::InputArgList &args) { - - config->initialMemory = args::getInteger(args, OPT_initial_memory, 0); - config->globalBase = args::getInteger(args, OPT_global_base, 0); -+ config->tableBase = args::getInteger(args, OPT_table_base, 0); - config->maxMemory = args::getInteger(args, OPT_max_memory, 0); - config->zStackSize = - args::getZOptionValue(args, OPT_z, "stack-size", WasmPageSize); -@@ -573,6 +574,17 @@ static void setConfigs() { - if (config->exportTable) - error("-shared/-pie is incompatible with --export-table"); - config->importTable = true; -+ } else { -+ // Default table base. Defaults to 1, reserving 0 for the NULL function -+ // pointer. -+ if (!config->tableBase) -+ config->tableBase = 1; -+ // The default offset for static/global data, for when --global-base is -+ // not specified on the command line. The precise value of 1024 is -+ // somewhat arbitrary, and pre-dates wasm-ld (Its the value that -+ // emscripten used prior to wasm-ld). -+ if (!config->globalBase && !config->relocatable && !config->stackFirst) -+ config->globalBase = 1024; - } - - if (config->relocatable) { -@@ -666,8 +678,11 @@ static void checkOptions(opt::InputArgList &args) { - warn("-Bsymbolic is only meaningful when combined with -shared"); - } - -- if (config->globalBase && config->isPic) { -- error("--global-base may not be used with -shared/-pie"); -+ if (config->isPic) { -+ if (config->globalBase) -+ error("--global-base may not be used with -shared/-pie"); -+ if (config->tableBase) -+ error("--table-base may not be used with -shared/-pie"); - } - } - -diff --git a/wasm/Options.td b/wasm/Options.td -index 50417d2928e0a34..bb764396bf4df14 100644 ---- a/wasm/Options.td -+++ b/wasm/Options.td -@@ -191,7 +191,7 @@ def growable_table: FF<"growable-table">, - HelpText<"Remove maximum size from function table, allowing table to grow">; - - def global_base: JJ<"global-base=">, -- HelpText<"Where to start to place global data">; -+ HelpText<"Memory offset at which to place global data (Defaults to 1024)">; - - def import_memory: FF<"import-memory">, - HelpText<"Import the module's memory from the default module of \"env\" with the name \"memory\".">; -@@ -224,6 +224,9 @@ def no_entry: FF<"no-entry">, - def stack_first: FF<"stack-first">, - HelpText<"Place stack at start of linear memory rather than after data">; - -+def table_base: JJ<"table-base=">, -+ HelpText<"Table offset at which to place address taken functions (Defaults to 1)">; -+ - defm whole_archive: B<"whole-archive", - "Force load of all members in a static library", - "Do not force load of all members in a static library (default)">; -diff --git a/wasm/Writer.cpp b/wasm/Writer.cpp -index f25d358dc5bae6f..0576bf2907e49c4 100644 ---- a/wasm/Writer.cpp -+++ b/wasm/Writer.cpp -@@ -358,13 +358,6 @@ void Writer::layoutMemory() { - memoryPtr = config->globalBase; - } - } else { -- if (!config->globalBase && !config->relocatable && !config->isPic) { -- // The default offset for static/global data, for when --global-base is -- // not specified on the command line. The precise value of 1024 is -- // somewhat arbitrary, and pre-dates wasm-ld (Its the value that -- // emscripten used prior to wasm-ld). -- config->globalBase = 1024; -- } - memoryPtr = config->globalBase; - } - -@@ -1685,7 +1678,6 @@ void Writer::run() { - // For PIC code the table base is assigned dynamically by the loader. - // For non-PIC, we start at 1 so that accessing table index 0 always traps. - if (!config->isPic) { -- config->tableBase = 1; - if (WasmSym::definedTableBase) - WasmSym::definedTableBase->setVA(config->tableBase); - if (WasmSym::definedTableBase32) diff --git a/pkgs/by-name/ll/llvm/16/lld/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/16/lld/gnu-install-dirs.patch deleted file mode 100644 index 86e76f4..0000000 --- a/pkgs/by-name/ll/llvm/16/lld/gnu-install-dirs.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 3d6225646fe6..9b5d0b15af13 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -33,10 +33,22 @@ if(LLD_BUILT_STANDALONE) - find_package(LLVM REQUIRED HINTS "${LLVM_CMAKE_DIR}") - list(APPEND CMAKE_MODULE_PATH "${LLVM_DIR}") - -- # Turn into CACHE PATHs for overwriting -- set(LLVM_INCLUDE_DIRS ${LLVM_INCLUDE_DIRS} CACHE PATH "Path to llvm/include and any other header dirs needed") -- set(LLVM_BINARY_DIR "${LLVM_BINARY_DIR}" CACHE PATH "Path to LLVM build tree") -- set(LLVM_MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm" CACHE PATH "Path to LLVM source tree") -+ # We can't check LLVM_CONFIG here, because find_package(LLVM ...) also sets -+ # LLVM_CONFIG. -+ if (NOT LLVM_CONFIG_FOUND) -+ # Pull values from LLVMConfig.cmake. We can drop this once the llvm-config -+ # path is removed. -+ set(INCLUDE_DIRS ${LLVM_INCLUDE_DIRS}) -+ set(LLVM_OBJ_DIR "${LLVM_BINARY_DIR}") -+ # N.B. this is just a default value, the CACHE PATHs below can be overridden. -+ set(MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm") -+ else() -+ set(INCLUDE_DIRS "${LLVM_BINARY_DIR}/include" "${MAIN_INCLUDE_DIR}") -+ endif() -+ -+ set(LLVM_INCLUDE_DIRS ${INCLUDE_DIRS} CACHE PATH "Path to llvm/include and any other header dirs needed") -+ set(LLVM_BINARY_DIR "${LLVM_OBJ_ROOT}" CACHE PATH "Path to LLVM build tree") -+ set(LLVM_MAIN_SRC_DIR "${MAIN_SRC_DIR}" CACHE PATH "Path to LLVM source tree") - - find_program(LLVM_TABLEGEN_EXE "llvm-tblgen" ${LLVM_TOOLS_BINARY_DIR} - NO_DEFAULT_PATH) -diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake -index d3924f7243d4..42a7cd62281c 100644 ---- a/cmake/modules/AddLLD.cmake -+++ b/cmake/modules/AddLLD.cmake -@@ -18,8 +18,8 @@ macro(add_lld_library name) - install(TARGETS ${name} - COMPONENT ${name} - ${export_to_lldtargets} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} -+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" -+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") - - if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES) diff --git a/pkgs/by-name/ll/llvm/16/lldb/cpu_subtype_arm64e_replacement.patch b/pkgs/by-name/ll/llvm/16/lldb/cpu_subtype_arm64e_replacement.patch deleted file mode 100644 index 20d35c9..0000000 --- a/pkgs/by-name/ll/llvm/16/lldb/cpu_subtype_arm64e_replacement.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/source/Host/macosx/objcxx/HostInfoMacOSX.mm b/source/Host/macosx/objcxx/HostInfoMacOSX.mm ---- a/source/Host/macosx/objcxx/HostInfoMacOSX.mm -+++ b/source/Host/macosx/objcxx/HostInfoMacOSX.mm -@@ -233,7 +233,7 @@ void HostInfoMacOSX::ComputeHostArchitectureSupport(ArchSpec &arch_32, - len = sizeof(is_64_bit_capable); - ::sysctlbyname("hw.cpu64bit_capable", &is_64_bit_capable, &len, NULL, 0); - -- if (cputype == CPU_TYPE_ARM64 && cpusubtype == CPU_SUBTYPE_ARM64E) { -+ if (cputype == CPU_TYPE_ARM64 && cpusubtype == ((cpu_subtype_t) 2)) { // CPU_SUBTYPE_ARM64E is not available in the macOS 10.12 headers - // The arm64e architecture is a preview. Pretend the host architecture - // is arm64. - cpusubtype = CPU_SUBTYPE_ARM64_ALL; diff --git a/pkgs/by-name/ll/llvm/16/lldb/procfs.patch b/pkgs/by-name/ll/llvm/16/lldb/procfs.patch deleted file mode 100644 index 7b200e8..0000000 --- a/pkgs/by-name/ll/llvm/16/lldb/procfs.patch +++ /dev/null @@ -1,46 +0,0 @@ ---- a/source/Plugins/Process/Linux/Procfs.h -+++ b/source/Plugins/Process/Linux/Procfs.h -@@ -10,6 +10,13 @@ - // sys/procfs.h on Android/Linux for all supported architectures. - - #include -+#include -+ -+// on i686 preprocessor symbols with these register names are defined as -+// numeric constants; these symbols clash with identifier names used in -+// `llvm/Support/VirtualFileSystem.h` and `llvm/ADT/SmallVector.h` -+#undef FS -+#undef CS - - #include "lldb/lldb-types.h" - -@@ -17,23 +24,13 @@ - - #include - --#ifdef __ANDROID__ --#if defined(__arm64__) || defined(__aarch64__) --typedef unsigned long elf_greg_t; --typedef elf_greg_t -- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))]; --typedef struct user_fpsimd_state elf_fpregset_t; --#ifndef NT_FPREGSET --#define NT_FPREGSET NT_PRFPREG --#endif // NT_FPREGSET --#elif defined(__mips__) --#ifndef NT_FPREGSET --#define NT_FPREGSET NT_PRFPREG --#endif // NT_FPREGSET --#endif --#else // __ANDROID__ -+#if !defined(__GLIBC__) && defined(__powerpc__) -+#define pt_regs musl_pt_regs -+#include -+#undef pt_regs -+#else - #include --#endif // __ANDROID__ -+#endif - - namespace lldb_private { - namespace process_linux { diff --git a/pkgs/by-name/ll/llvm/16/lldb/resource-dir.patch b/pkgs/by-name/ll/llvm/16/lldb/resource-dir.patch deleted file mode 100644 index 3e1a8b7..0000000 --- a/pkgs/by-name/ll/llvm/16/lldb/resource-dir.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/cmake/modules/LLDBConfig.cmake b/cmake/modules/LLDBConfig.cmake -index ec06ba285f27..286162f098fb 100644 ---- a/cmake/modules/LLDBConfig.cmake -+++ b/cmake/modules/LLDBConfig.cmake -@@ -290,7 +290,8 @@ if (NOT TARGET clang-resource-headers) - # could be and pick the first that exists. - foreach(CANDIDATE "${Clang_DIR}/../.." "${LLVM_DIR}" "${LLVM_LIBRARY_DIRS}" - "${LLVM_BUILD_LIBRARY_DIR}" -- "${LLVM_LIBRARY_DIR}") -+ "${LLVM_LIBRARY_DIR}" -+ "@clangLibDir@") - # Build the resource directory path by appending 'clang/'. - set(CANDIDATE_RESOURCE_DIR "${CANDIDATE}/clang/${LLDB_CLANG_RESOURCE_DIR_NAME}") - if (IS_DIRECTORY "${CANDIDATE_RESOURCE_DIR}") diff --git a/pkgs/by-name/ll/llvm/16/llvm/default.nix b/pkgs/by-name/ll/llvm/16/llvm/default.nix deleted file mode 100644 index 0a8d877..0000000 --- a/pkgs/by-name/ll/llvm/16/llvm/default.nix +++ /dev/null @@ -1,435 +0,0 @@ -{ 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)); - - # Ordinarily we would just the `doCheck` and `checkDeps` functionality - # `mkDerivation` gives us to manage our test dependencies (instead of breaking - # out `doCheck` as a package level attribute). - # - # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in - # particular the children it uses to do feature detection. - # - # This means that python deps we add to `checkDeps` (which the python - # interpreter is made aware of via `$PYTHONPATH` – populated by the python - # setup hook) are not picked up by `lit` which causes it to skip tests. - # - # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work - # because this package is shadowed in `$PATH` by the regular `python3` - # package. - # - # 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 - 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" - ''); - - 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 - ] ++ 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" - ]; - 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/16/llvm/gnu-install-dirs-polly.patch b/pkgs/by-name/ll/llvm/16/llvm/gnu-install-dirs-polly.patch deleted file mode 100644 index b01363e..0000000 --- a/pkgs/by-name/ll/llvm/16/llvm/gnu-install-dirs-polly.patch +++ /dev/null @@ -1,19 +0,0 @@ -This is the one remaining Polly install dirs related change that hasn't made it -into upstream yet; previously this patch file also included: -https://reviews.llvm.org/D117541 - -diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake -index 518a09b45a42..bd9d6f5542ad 100644 ---- a/tools/polly/cmake/polly_macros.cmake -+++ b/tools/polly/cmake/polly_macros.cmake -@@ -44,8 +44,8 @@ macro(add_polly_library name) - if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly") - install(TARGETS ${name} - EXPORT LLVMExports -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}) -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) - endif() - set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name}) - endmacro(add_polly_library) diff --git a/pkgs/by-name/ll/llvm/16/llvm/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/16/llvm/gnu-install-dirs.patch deleted file mode 100644 index 1c2d52d..0000000 --- a/pkgs/by-name/ll/llvm/16/llvm/gnu-install-dirs.patch +++ /dev/null @@ -1,161 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 7e25e0407db2..72f031a82b75 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -995,7 +995,7 @@ if (NOT TENSORFLOW_AOT_PATH STREQUAL "") - add_subdirectory(${TENSORFLOW_AOT_PATH}/xla_aot_runtime_src - ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/tf_runtime) - install(TARGETS tf_xla_runtime EXPORT LLVMExports -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT tf_xla_runtime) -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT tf_xla_runtime) - set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS tf_xla_runtime) - # Once we add more modules, we should handle this more automatically. - if (DEFINED LLVM_OVERRIDE_MODEL_HEADER_INLINERSIZEMODEL) -diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake -index 93e6d67551de..8d367457af5a 100644 ---- a/cmake/modules/AddLLVM.cmake -+++ b/cmake/modules/AddLLVM.cmake -@@ -874,8 +874,8 @@ macro(add_llvm_library name) - get_target_export_arg(${name} LLVM export_to_llvmexports ${umbrella}) - install(TARGETS ${name} - ${export_to_llvmexports} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} -+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" COMPONENT ${name} -+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" COMPONENT ${name} - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${name}) - - if (NOT LLVM_ENABLE_IDE) -@@ -2043,7 +2043,7 @@ function(llvm_install_library_symlink name dest type) - set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX}) - set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX}) - -- set(output_dir lib${LLVM_LIBDIR_SUFFIX}) -+ set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) - if(WIN32 AND "${type}" STREQUAL "SHARED") - set(output_dir "${CMAKE_INSTALL_BINDIR}") - endif() -@@ -2312,16 +2312,37 @@ function(llvm_setup_rpath name) - - if (APPLE) - set(_install_name_dir INSTALL_NAME_DIR "@rpath") -- set(_install_rpath "@loader_path/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -+ set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) - elseif(${CMAKE_SYSTEM_NAME} MATCHES "AIX" AND BUILD_SHARED_LIBS) - # $ORIGIN is not interpreted at link time by aix ld. - # Since BUILD_SHARED_LIBS is only recommended for use by developers, - # hardcode the rpath to build/install lib dir first in this mode. - # FIXME: update this when there is better solution. -- set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -+ set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) - elseif(UNIX) -- set(_build_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -- set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}") -+ # Note that we add `extra_libdir` (aka `LLVM_LIBRARY_DIR` in our case) back -+ # to `_install_rpath` here. -+ # -+ # In nixpkgs we do not build and install LLVM alongside rdeps of LLVM (i.e. -+ # clang); instead LLVM is its own package and thus lands at its own nix -+ # store path. This makes it so that the default relative rpath (`../lib/`) -+ # does not point at the LLVM shared objects. -+ # -+ # More discussion here: -+ # - https://github.com/NixOS/nixpkgs/pull/235624#discussion_r1220150329 -+ # - https://reviews.llvm.org/D146918 (16.0.5+) -+ # -+ # Note that we leave `extra_libdir` in `_build_rpath`: without FHS there is -+ # no potential that this will result in us pulling in the "wrong" LLVM. -+ # Adding this to the build rpath means we aren't forced to use -+ # `installCheckPhase` instead of `checkPhase` (i.e. binaries in the build -+ # dir, pre-install, will have the right rpath for LLVM). -+ # -+ # As noted in the differential above, an alternative solution is to have -+ # all rdeps of nixpkgs' LLVM (that use the AddLLVM.cmake machinery) set -+ # `CMAKE_INSTALL_RPATH`. -+ set(_build_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -+ set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) - if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)") - set_property(TARGET ${name} APPEND_STRING PROPERTY - LINK_FLAGS " -Wl,-z,origin ") -diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake -index 891c9e6d618c..8d963f3b0069 100644 ---- a/cmake/modules/AddOCaml.cmake -+++ b/cmake/modules/AddOCaml.cmake -@@ -147,9 +147,9 @@ function(add_ocaml_library name) - endforeach() - - if( APPLE ) -- set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}") -+ set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") - elseif( UNIX ) -- set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}") -+ set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") - endif() - list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}") - -diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt -index d99af79aa38e..21e794224b99 100644 ---- a/cmake/modules/CMakeLists.txt -+++ b/cmake/modules/CMakeLists.txt -@@ -127,7 +127,7 @@ set(LLVM_CONFIG_INCLUDE_DIRS - ) - list(REMOVE_DUPLICATES LLVM_CONFIG_INCLUDE_DIRS) - --extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "lib\${LLVM_LIBDIR_SUFFIX}") -+extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}") - set(LLVM_CONFIG_LIBRARY_DIRS - "${LLVM_CONFIG_LIBRARY_DIR}" - # FIXME: Should there be other entries here? -diff --git a/docs/CMake.rst b/docs/CMake.rst -index 7926de258ec8..5ae01adc3905 100644 ---- a/docs/CMake.rst -+++ b/docs/CMake.rst -@@ -250,7 +250,7 @@ description is in `LLVM-related variables`_ below. - **LLVM_LIBDIR_SUFFIX**:STRING - Extra suffix to append to the directory where libraries are to be - installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64`` -- to install libraries to ``/usr/lib64``. -+ to install libraries to ``/usr/lib64``. See also ``CMAKE_INSTALL_LIBDIR``. - - **LLVM_PARALLEL_{COMPILE,LINK}_JOBS**:STRING - Building the llvm toolchain can use a lot of resources, particularly -@@ -284,6 +284,10 @@ manual, or execute ``cmake --help-variable VARIABLE_NAME``. - The path to install executables, relative to the *CMAKE_INSTALL_PREFIX*. - Defaults to "bin". - -+**CMAKE_INSTALL_LIBDIR**:PATH -+ The path to install libraries, relative to the *CMAKE_INSTALL_PREFIX*. -+ Defaults to "lib". -+ - **CMAKE_INSTALL_INCLUDEDIR**:PATH - The path to install header files, relative to the *CMAKE_INSTALL_PREFIX*. - Defaults to "include". -diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in -index 370005cd8d7d..7e790bc52111 100644 ---- a/tools/llvm-config/BuildVariables.inc.in -+++ b/tools/llvm-config/BuildVariables.inc.in -@@ -23,6 +23,7 @@ - #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@" - #define LLVM_BUILDMODE "@LLVM_BUILDMODE@" - #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@" -+#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@" - #define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@" - #define LLVM_INSTALL_PACKAGE_DIR "@LLVM_INSTALL_PACKAGE_DIR@" - #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@" -diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp -index b1d795a0a349..de6cb1514f05 100644 ---- a/tools/llvm-config/llvm-config.cpp -+++ b/tools/llvm-config/llvm-config.cpp -@@ -366,7 +366,11 @@ int main(int argc, char **argv) { - sys::fs::make_absolute(ActivePrefix, Path); - ActiveBinDir = std::string(Path.str()); - } -- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX; -+ { -+ SmallString<256> Path(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX); -+ sys::fs::make_absolute(ActivePrefix, Path); -+ ActiveLibDir = std::string(Path.str()); -+ } - { - SmallString<256> Path(LLVM_INSTALL_PACKAGE_DIR); - sys::fs::make_absolute(ActivePrefix, Path); diff --git a/pkgs/by-name/ll/llvm/16/llvm/lit-shell-script-runner-set-dyld-library-path.patch b/pkgs/by-name/ll/llvm/16/llvm/lit-shell-script-runner-set-dyld-library-path.patch deleted file mode 100644 index 82b7b21..0000000 --- a/pkgs/by-name/ll/llvm/16/llvm/lit-shell-script-runner-set-dyld-library-path.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/utils/lit/lit/TestRunner.py b/utils/lit/lit/TestRunner.py -index 0242e0b75af3..d732011306f7 100644 ---- a/utils/lit/lit/TestRunner.py -+++ b/utils/lit/lit/TestRunner.py -@@ -1029,6 +1029,12 @@ def executeScript(test, litConfig, tmpBase, commands, cwd): - f.write('@echo off\n') - f.write('\n@if %ERRORLEVEL% NEQ 0 EXIT\n'.join(commands)) - else: -+ # This env var is *purged* when invoking subprocesses so we have to -+ # manually set it from within the bash script in order for the commands -+ # in run lines to see this var: -+ if "DYLD_LIBRARY_PATH" in test.config.environment: -+ f.write(f'export DYLD_LIBRARY_PATH="{test.config.environment["DYLD_LIBRARY_PATH"]}"\n') -+ - for i, ln in enumerate(commands): - match = re.match(kPdbgRegex, ln) - if match: diff --git a/pkgs/by-name/ll/llvm/16/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch b/pkgs/by-name/ll/llvm/16/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch deleted file mode 100644 index d824516..0000000 --- a/pkgs/by-name/ll/llvm/16/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch +++ /dev/null @@ -1,79 +0,0 @@ -diff --git a/test/Unit/lit.cfg.py b/test/Unit/lit.cfg.py -index 81e8dc04acea..479ff95681e2 100644 ---- a/test/Unit/lit.cfg.py -+++ b/test/Unit/lit.cfg.py -@@ -3,6 +3,7 @@ - # Configuration file for the 'lit' test runner. - - import os -+import platform - import subprocess - - import lit.formats -@@ -55,3 +56,26 @@ if sys.platform in ['win32', 'cygwin'] and os.path.isdir(config.shlibdir): - # Win32 may use %SYSTEMDRIVE% during file system shell operations, so propogate. - if sys.platform == 'win32' and 'SYSTEMDRIVE' in os.environ: - config.environment['SYSTEMDRIVE'] = os.environ['SYSTEMDRIVE'] -+ -+# Add the LLVM dynamic libs to the platform-specific loader search path env var: -+# -+# TODO: this is copied from `clang`'s `lit.cfg.py`; should unify.. -+def find_shlibpath_var(): -+ if platform.system() in ['Linux', 'FreeBSD', 'NetBSD', 'OpenBSD', 'SunOS']: -+ yield 'LD_LIBRARY_PATH' -+ elif platform.system() == 'Darwin': -+ yield 'DYLD_LIBRARY_PATH' -+ elif platform.system() == 'Windows': -+ yield 'PATH' -+ elif platform.system() == 'AIX': -+ yield 'LIBPATH' -+ -+for shlibpath_var in find_shlibpath_var(): -+ shlibpath = os.path.pathsep.join( -+ (config.shlibdir, -+ config.environment.get(shlibpath_var, ''))) -+ config.environment[shlibpath_var] = shlibpath -+ break -+else: -+ lit_config.warning("unable to inject shared library path on '{}'" -+ .format(platform.system())) -diff --git a/test/lit.cfg.py b/test/lit.cfg.py -index 75a38b4c5dad..856fc75c9d74 100644 ---- a/test/lit.cfg.py -+++ b/test/lit.cfg.py -@@ -42,6 +42,26 @@ llvm_config.with_environment('PATH', config.llvm_tools_dir, append_path=True) - llvm_config.with_system_environment( - ['HOME', 'INCLUDE', 'LIB', 'TMP', 'TEMP']) - -+# Add the LLVM dynamic libs to the platform-specific loader search path env var: -+# -+# TODO: this is copied from `clang`'s `lit.cfg.py`; should unify.. -+def find_shlibpath_var(): -+ if platform.system() in ['Linux', 'FreeBSD', 'NetBSD', 'OpenBSD', 'SunOS']: -+ yield 'LD_LIBRARY_PATH' -+ elif platform.system() == 'Darwin': -+ yield 'DYLD_LIBRARY_PATH' -+ elif platform.system() == 'Windows': -+ yield 'PATH' -+ elif platform.system() == 'AIX': -+ yield 'LIBPATH' -+ -+for shlibpath_var in find_shlibpath_var(): -+ shlibpath = config.llvm_shlib_dir -+ llvm_config.with_environment(shlibpath_var, shlibpath, append_path = True) -+ break -+else: -+ lit_config.warning("unable to inject shared library path on '{}'" -+ .format(platform.system())) - - # Set up OCAMLPATH to include newly built OCaml libraries. - top_ocaml_lib = os.path.join(config.llvm_lib_dir, 'ocaml') -@@ -318,7 +338,7 @@ def have_cxx_shared_library(): - - try: - readobj_cmd = subprocess.Popen( -- [readobj_exe, '--needed-libs', readobj_exe], stdout=subprocess.PIPE) -+ [readobj_exe, '--needed-libs', readobj_exe], stdout=subprocess.PIPE, env=config.environment) - except OSError: - print('could not exec llvm-readobj') - return False diff --git a/pkgs/by-name/ll/llvm/16/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch b/pkgs/by-name/ll/llvm/16/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch deleted file mode 100644 index 1354ad2..0000000 --- a/pkgs/by-name/ll/llvm/16/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/tools/polly/test/lit.cfg b/tools/polly/test/lit.cfg -index 41e3a589c61e..09f3b17498b0 100644 ---- a/tools/polly/test/lit.cfg -+++ b/tools/polly/test/lit.cfg -@@ -36,9 +36,17 @@ base_paths = [config.llvm_tools_dir, config.environment['PATH']] - path = os.path.pathsep.join(base_paths + config.extra_paths) - config.environment['PATH'] = path - -+# (Copied from polly/test/Unit/lit.cfg) -+if platform.system() == 'Darwin': -+ shlibpath_var = 'DYLD_LIBRARY_PATH' -+elif platform.system() == 'Windows': -+ shlibpath_var = 'PATH' -+else: -+ shlibpath_var = 'LD_LIBRARY_PATH' -+ - path = os.path.pathsep.join((config.llvm_libs_dir, -- config.environment.get('LD_LIBRARY_PATH',''))) --config.environment['LD_LIBRARY_PATH'] = path -+ config.environment.get(shlibpath_var,''))) -+config.environment[shlibpath_var] = path - - llvm_config.use_default_substitutions() - diff --git a/pkgs/by-name/ll/llvm/16/openmp/fix-find-tool.patch b/pkgs/by-name/ll/llvm/16/openmp/fix-find-tool.patch deleted file mode 100644 index dd0a79f..0000000 --- a/pkgs/by-name/ll/llvm/16/openmp/fix-find-tool.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/libomptarget/DeviceRTL/CMakeLists.txt b/libomptarget/DeviceRTL/CMakeLists.txt -index 49b398c9f765..6f1dd1340010 100644 ---- a/libomptarget/DeviceRTL/CMakeLists.txt -+++ b/libomptarget/DeviceRTL/CMakeLists.txt -@@ -27,11 +27,11 @@ endif() - if (LLVM_DIR) - # Builds that use pre-installed LLVM have LLVM_DIR set. - # A standalone or LLVM_ENABLE_RUNTIMES=openmp build takes this route -- find_program(CLANG_TOOL clang PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) -- find_program(PACKAGER_TOOL clang-offload-packager PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) -- find_program(LINK_TOOL llvm-link PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) -- find_program(OPT_TOOL opt PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) -- find_program(EXTRACT_TOOL llvm-extract PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) -+ find_program(CLANG_TOOL clang PATHS ${LLVM_TOOLS_BINARY_DIR}) -+ find_program(PACKAGER_TOOL clang-offload-packager PATHS ${LLVM_TOOLS_BINARY_DIR}) -+ find_program(LINK_TOOL llvm-link PATHS ${LLVM_TOOLS_BINARY_DIR}) -+ find_program(OPT_TOOL opt PATHS ${LLVM_TOOLS_BINARY_DIR}) -+ find_program(EXTRACT_TOOL llvm-extract PATHS ${LLVM_TOOLS_BINARY_DIR}) - if ((NOT CLANG_TOOL) OR (NOT LINK_TOOL) OR (NOT OPT_TOOL) OR (NOT EXTRACT_TOOL) OR (NOT PACKAGER_TOOL)) - libomptarget_say("Not building DeviceRTL. Missing clang: ${CLANG_TOOL}, llvm-link: ${LINK_TOOL}, opt: ${OPT_TOOL}, llvm-extract: ${EXTRACT_TOOL}, or clang-offload-packager: ${PACKAGER_TOOL}") - return() diff --git a/pkgs/by-name/ll/llvm/16/openmp/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/16/openmp/gnu-install-dirs.patch deleted file mode 100644 index 77a9320..0000000 --- a/pkgs/by-name/ll/llvm/16/openmp/gnu-install-dirs.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index b6ddbe90516d..311ab1d50e7f 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -29,7 +29,7 @@ if (OPENMP_STANDALONE_BUILD) - set(OPENMP_LIBDIR_SUFFIX "" CACHE STRING - "Suffix of lib installation directory, e.g. 64 => lib64") - # Do not use OPENMP_LIBDIR_SUFFIX directly, use OPENMP_INSTALL_LIBDIR. -- set(OPENMP_INSTALL_LIBDIR "lib${OPENMP_LIBDIR_SUFFIX}") -+ set(OPENMP_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}${OPENMP_LIBDIR_SUFFIX}") - - # Group test settings. - set(OPENMP_TEST_C_COMPILER ${CMAKE_C_COMPILER} CACHE STRING -@@ -40,7 +40,7 @@ if (OPENMP_STANDALONE_BUILD) - else() - set(OPENMP_ENABLE_WERROR ${LLVM_ENABLE_WERROR}) - # If building in tree, we honor the same install suffix LLVM uses. -- set(OPENMP_INSTALL_LIBDIR "lib${LLVM_LIBDIR_SUFFIX}") -+ set(OPENMP_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") - - if (NOT MSVC) - set(OPENMP_TEST_C_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang) diff --git a/pkgs/by-name/ll/llvm/16/openmp/run-lit-directly.patch b/pkgs/by-name/ll/llvm/16/openmp/run-lit-directly.patch deleted file mode 100644 index e69de29..0000000 diff --git a/pkgs/by-name/ll/llvm/17/clang/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/17/clang/gnu-install-dirs.patch deleted file mode 100644 index cc8737f..0000000 --- a/pkgs/by-name/ll/llvm/17/clang/gnu-install-dirs.patch +++ /dev/null @@ -1,98 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index f7936d72e088..a362fa49b534 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -31,7 +31,21 @@ if(CLANG_BUILT_STANDALONE) - find_package(LLVM REQUIRED HINTS "${LLVM_CMAKE_DIR}") - list(APPEND CMAKE_MODULE_PATH "${LLVM_DIR}") - -- # Turn into CACHE PATHs for overwritting -+ # We can't check LLVM_CONFIG here, because find_package(LLVM ...) also sets -+ # LLVM_CONFIG. -+ if (NOT LLVM_CONFIG_FOUND) -+ # Pull values from LLVMConfig.cmake. We can drop this once the llvm-config -+ # path is removed. -+ set(INCLUDE_DIRS ${LLVM_INCLUDE_DIRS}) -+ set(LLVM_OBJ_DIR "${LLVM_BINARY_DIR}") -+ # N.B. this is just a default value, the CACHE PATHs below can be overriden. -+ set(MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm") -+ set(TOOLS_BINARY_DIR "${LLVM_TOOLS_BINARY_DIR}") -+ set(LIBRARY_DIR "${LLVM_LIBRARY_DIR}") -+ else() -+ set(INCLUDE_DIRS "${LLVM_BINARY_DIR}/include" "${MAIN_INCLUDE_DIR}") -+ endif() -+ - set(LLVM_INCLUDE_DIRS ${LLVM_INCLUDE_DIRS} CACHE PATH "Path to llvm/include and any other header dirs needed") - set(LLVM_BINARY_DIR "${LLVM_BINARY_DIR}" CACHE PATH "Path to LLVM build tree") - set(LLVM_MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm" CACHE PATH "Path to LLVM source tree") -diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake -index 75b0080f6715..c895b884cd27 100644 ---- a/cmake/modules/AddClang.cmake -+++ b/cmake/modules/AddClang.cmake -@@ -119,8 +119,8 @@ macro(add_clang_library name) - install(TARGETS ${lib} - COMPONENT ${lib} - ${export_to_clangtargets} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} -+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" -+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") - - if (NOT LLVM_ENABLE_IDE) -diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt -index f2b0c5cddcbb..52f37fc368ce 100644 ---- a/lib/Headers/CMakeLists.txt -+++ b/lib/Headers/CMakeLists.txt -@@ -473,6 +473,7 @@ add_header_target("windows-resource-headers" ${windows_only_files}) - add_header_target("utility-resource-headers" ${utility_files}) - - get_clang_resource_dir(header_install_dir SUBDIR include) -+set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${CLANG_VERSION_MAJOR}/include) - - ############################################################# - # Install rules for the catch-all clang-resource-headers target -diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt -index 4f23065a2472..6a0f55991e24 100644 ---- a/tools/libclang/CMakeLists.txt -+++ b/tools/libclang/CMakeLists.txt -@@ -234,7 +234,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS}) - COMPONENT - libclang-python-bindings - DESTINATION -- "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages") -+ "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages") - endforeach() - if(NOT LLVM_ENABLE_IDE) - add_custom_target(libclang-python-bindings) -diff --git a/tools/scan-build-py/CMakeLists.txt b/tools/scan-build-py/CMakeLists.txt -index 3aca22c0b0a8..3115353e3fe3 100644 ---- a/tools/scan-build-py/CMakeLists.txt -+++ b/tools/scan-build-py/CMakeLists.txt -@@ -88,7 +88,7 @@ foreach(lib ${LibScanbuild}) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/${lib}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/${lib}) - install(FILES lib/libscanbuild/${lib} -- DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libscanbuild -+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libscanbuild" - COMPONENT scan-build-py) - endforeach() - -@@ -106,7 +106,7 @@ foreach(resource ${LibScanbuildResources}) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/resources/${resource}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/resources/${resource}) - install(FILES lib/libscanbuild/resources/${resource} -- DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libscanbuild/resources -+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libscanbuild/resources" - COMPONENT scan-build-py) - endforeach() - -@@ -122,7 +122,7 @@ foreach(lib ${LibEar}) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libear/${lib}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libear/${lib}) - install(FILES lib/libear/${lib} -- DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libear -+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libear" - COMPONENT scan-build-py) - endforeach() - diff --git a/pkgs/by-name/ll/llvm/17/clang/purity.patch b/pkgs/by-name/ll/llvm/17/clang/purity.patch deleted file mode 100644 index 1c94f29..0000000 --- a/pkgs/by-name/ll/llvm/17/clang/purity.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001 -From: Will Dietz -Date: Thu, 18 May 2017 11:56:12 -0500 -Subject: [PATCH] "purity" patch for 5.0 - ---- - lib/Driver/ToolChains/Gnu.cpp | 7 ------- - 1 file changed, 7 deletions(-) - -diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp -index fe3c0191bb..c6a482bece 100644 ---- a/lib/Driver/ToolChains/Gnu.cpp -+++ b/lib/Driver/ToolChains/Gnu.cpp -@@ -487,13 +487,7 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA, - } else { - if (Args.hasArg(options::OPT_rdynamic)) - CmdArgs.push_back("-export-dynamic"); - -- if (!Args.hasArg(options::OPT_shared) && !IsStaticPIE && -- !Args.hasArg(options::OPT_r)) { -- CmdArgs.push_back("-dynamic-linker"); -- CmdArgs.push_back(Args.MakeArgString(Twine(D.DyldPrefix) + -- ToolChain.getDynamicLinker(Args))); -- } - } - - CmdArgs.push_back("-o"); --- -2.11.0 diff --git a/pkgs/by-name/ll/llvm/17/compiler-rt/X86-support-extension.patch b/pkgs/by-name/ll/llvm/17/compiler-rt/X86-support-extension.patch deleted file mode 100644 index 07013e5..0000000 --- a/pkgs/by-name/ll/llvm/17/compiler-rt/X86-support-extension.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt -index 3a66dd9c3fb..7efc85d9f9f 100644 ---- a/lib/builtins/CMakeLists.txt -+++ b/lib/builtins/CMakeLists.txt -@@ -348,4 +348,8 @@ if (NOT MSVC) - -+ set(i486_SOURCES ${i386_SOURCES}) -+ set(i586_SOURCES ${i386_SOURCES}) -+ set(i686_SOURCES ${i386_SOURCES}) -+ - if (WIN32) - set(i386_SOURCES - ${i386_SOURCES} -@@ -723,6 +723,7 @@ else () - endif() - - foreach (arch ${BUILTIN_SUPPORTED_ARCH}) -+ message("arch: ${arch}") - if (CAN_TARGET_${arch}) - # For ARM archs, exclude any VFP builtins if VFP is not supported - if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$") diff --git a/pkgs/by-name/ll/llvm/17/compiler-rt/darwin-targetconditionals.patch b/pkgs/by-name/ll/llvm/17/compiler-rt/darwin-targetconditionals.patch deleted file mode 100644 index 425dc2a..0000000 --- a/pkgs/by-name/ll/llvm/17/compiler-rt/darwin-targetconditionals.patch +++ /dev/null @@ -1,71 +0,0 @@ -diff --git a/lib/sanitizer_common/sanitizer_mac.cpp b/lib/sanitizer_common/sanitizer_mac.cpp ---- a/lib/sanitizer_common/sanitizer_mac.cpp -+++ b/lib/sanitizer_common/sanitizer_mac.cpp -@@ -613,9 +613,15 @@ HandleSignalMode GetHandleSignalMode(int signum) { - // Offset example: - // XNU 17 -- macOS 10.13 -- iOS 11 -- tvOS 11 -- watchOS 4 - constexpr u16 GetOSMajorKernelOffset() { -- if (TARGET_OS_OSX) return 4; -- if (TARGET_OS_IOS || TARGET_OS_TV) return 6; -- if (TARGET_OS_WATCH) return 13; -+#if TARGET_OS_OSX -+ return 4; -+#endif -+#if TARGET_OS_IOS || TARGET_OS_TV -+ return 6; -+#endif -+#if TARGET_OS_WATCH -+ return 13; -+#endif - } - - using VersStr = char[64]; -@@ -627,13 +633,13 @@ static uptr ApproximateOSVersionViaKernelVersion(VersStr vers) { - u16 os_major = kernel_major - offset; - - const char *format = "%d.0"; -- if (TARGET_OS_OSX) { -- if (os_major >= 16) { // macOS 11+ -- os_major -= 5; -- } else { // macOS 10.15 and below -- format = "10.%d"; -- } -+#if TARGET_OS_OSX -+ if (os_major >= 16) { // macOS 11+ -+ os_major -= 5; -+ } else { // macOS 10.15 and below -+ format = "10.%d"; - } -+#endif - return internal_snprintf(vers, sizeof(VersStr), format, os_major); - } - -@@ -681,15 +687,14 @@ void ParseVersion(const char *vers, u16 *major, u16 *minor) { - // Aligned versions example: - // macOS 10.15 -- iOS 13 -- tvOS 13 -- watchOS 6 - static void MapToMacos(u16 *major, u16 *minor) { -- if (TARGET_OS_OSX) -- return; -- -- if (TARGET_OS_IOS || TARGET_OS_TV) -+#if !TARGET_OS_OSX -+#if TARGET_OS_IOS || TARGET_OS_TV - *major += 2; -- else if (TARGET_OS_WATCH) -+#elif TARGET_OS_WATCH - *major += 9; -- else -+#else - UNREACHABLE("unsupported platform"); -+#endif - - if (*major >= 16) { // macOS 11+ - *major -= 5; -@@ -697,6 +702,7 @@ static void MapToMacos(u16 *major, u16 *minor) { - *minor = *major; - *major = 10; - } -+#endif - } - - static MacosVersion GetMacosAlignedVersionInternal() { diff --git a/pkgs/by-name/ll/llvm/17/compiler-rt/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/17/compiler-rt/gnu-install-dirs.patch deleted file mode 100644 index f3b1f63..0000000 --- a/pkgs/by-name/ll/llvm/17/compiler-rt/gnu-install-dirs.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake -index 8a6219568b3f..30ee68a47ccf 100644 ---- a/cmake/base-config-ix.cmake -+++ b/cmake/base-config-ix.cmake -@@ -100,13 +100,13 @@ endif() - if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) - set(COMPILER_RT_OUTPUT_LIBRARY_DIR - ${COMPILER_RT_OUTPUT_DIR}/lib) -- extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" lib) -+ extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "${CMAKE_INSTALL_LIBDIR}") - set(COMPILER_RT_INSTALL_LIBRARY_DIR "${default_install_path}" CACHE PATH - "Path where built compiler-rt libraries should be installed.") - else(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) - set(COMPILER_RT_OUTPUT_LIBRARY_DIR - ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR}) -- extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "lib/${COMPILER_RT_OS_DIR}") -+ extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "${CMAKE_INSTALL_LIBDIR}/${COMPILER_RT_OS_DIR}") - set(COMPILER_RT_INSTALL_LIBRARY_DIR "${default_install_path}" CACHE PATH - "Path where built compiler-rt libraries should be installed.") - endif() diff --git a/pkgs/by-name/ll/llvm/17/compiler-rt/normalize-var.patch b/pkgs/by-name/ll/llvm/17/compiler-rt/normalize-var.patch deleted file mode 100644 index 2b25fd4..0000000 --- a/pkgs/by-name/ll/llvm/17/compiler-rt/normalize-var.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/cmake/Modules/CompilerRTUtils.cmake b/cmake/Modules/CompilerRTUtils.cmake -index 4c85551d7766..297d7a47c54b 100644 ---- a/cmake/Modules/CompilerRTUtils.cmake -+++ b/cmake/Modules/CompilerRTUtils.cmake -@@ -328,8 +328,9 @@ macro(load_llvm_config) - endif() - endif() - -- set(LLVM_LIBRARY_OUTPUT_INTDIR -- ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) -+ get_filename_component(LLVM_LIBRARY_OUTPUT_INTDIR -+ ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX} -+ REALPATH) - - set(LLVM_MAIN_SRC_DIR "${LLVM_MAIN_SRC_DIR_DEFAULT}" CACHE PATH "Path to LLVM source tree") - message(STATUS "LLVM_MAIN_SRC_DIR: \"${LLVM_MAIN_SRC_DIR}\"") diff --git a/pkgs/by-name/ll/llvm/17/default.nix b/pkgs/by-name/ll/llvm/17/default.nix deleted file mode 100644 index 9f4be22..0000000 --- a/pkgs/by-name/ll/llvm/17/default.nix +++ /dev/null @@ -1,379 +0,0 @@ -{ 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" */; - # rev = /* commit SHA */; - # 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="; } - # 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 -}: - -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 - 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; - - 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; - - in { - - 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; - - 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; - - 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 - }); - - 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; - - 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; - }; - - 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; - }; - - 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; - }; - - # 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 = 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" - "-nostdlib++" - ] - ++ 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 = - [ - "-rtlib=compiler-rt" - "-B${targetLlvmLibraries.compiler-rt}/lib" - ] - ++ 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 = - [ - "-nostartfiles" - ] - ++ 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" ]; - }); - - # 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 { - - 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; - }; - - # 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; - - 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; - }; - - 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; - }; - }); - noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ]; - -in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools) diff --git a/pkgs/by-name/ll/llvm/17/lld/add-table-base.patch b/pkgs/by-name/ll/llvm/17/lld/add-table-base.patch deleted file mode 100644 index 15fc903..0000000 --- a/pkgs/by-name/ll/llvm/17/lld/add-table-base.patch +++ /dev/null @@ -1,190 +0,0 @@ -From 93adcb770b99351b18553089c164fe3ef2119699 Mon Sep 17 00:00:00 2001 -From: Sam Clegg -Date: Fri, 25 Aug 2023 13:56:16 -0700 -Subject: [PATCH] [lld][WebAssembly] Add `--table-base` setting - -This is similar to `--global-base` but determines where to place the -table segments rather than that data segments. - -See https://github.com/emscripten-core/emscripten/issues/20097 - -Differential Revision: https://reviews.llvm.org/D158892 ---- - test/wasm/table-base.s | 72 ++++++++++++++++++++++++++++++++++++++ - wasm/Driver.cpp | 19 ++++++++-- - wasm/Options.td | 5 ++- - wasm/Writer.cpp | 8 ----- - 4 files changed, 93 insertions(+), 11 deletions(-) - create mode 100644 test/wasm/table-base.s - -diff --git a/test/wasm/table-base.s b/test/wasm/table-base.s -new file mode 100644 -index 000000000000000..56fff414fd31d96 ---- /dev/null -+++ b/test/wasm/table-base.s -@@ -0,0 +1,72 @@ -+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %s -o %t.o -+ -+# RUN: wasm-ld --export=__table_base -o %t.wasm %t.o -+# RUN: obj2yaml %t.wasm | FileCheck %s -check-prefix=CHECK-DEFAULT -+ -+# RUN: wasm-ld --table-base=100 --export=__table_base -o %t.wasm %t.o -+# RUN: obj2yaml %t.wasm | FileCheck %s -check-prefix=CHECK-100 -+ -+.globl _start -+_start: -+ .functype _start () -> () -+ i32.const _start -+ drop -+ end_function -+ -+# CHECK-DEFAULT: - Type: TABLE -+# CHECK-DEFAULT-NEXT: Tables: -+# CHECK-DEFAULT-NEXT: - Index: 0 -+# CHECK-DEFAULT-NEXT: ElemType: FUNCREF -+# CHECK-DEFAULT-NEXT: Limits: -+# CHECK-DEFAULT-NEXT: Flags: [ HAS_MAX ] -+# CHECK-DEFAULT-NEXT: Minimum: 0x2 -+# CHECK-DEFAULT-NEXT: Maximum: 0x2 -+ -+# CHECK-DEFAULT: - Type: GLOBAL -+# CHECK-DEFAULT-NEXT: Globals: -+# CHECK-DEFAULT-NEXT: - Index: 0 -+# CHECK-DEFAULT-NEXT: Type: I32 -+# CHECK-DEFAULT-NEXT: Mutable: true -+# CHECK-DEFAULT-NEXT: InitExpr: -+# CHECK-DEFAULT-NEXT: Opcode: I32_CONST -+# CHECK-DEFAULT-NEXT: Value: 66560 -+# CHECK-DEFAULT-NEXT: - Index: 1 -+# CHECK-DEFAULT-NEXT: Type: I32 -+# CHECK-DEFAULT-NEXT: Mutable: false -+# CHECK-DEFAULT-NEXT: InitExpr: -+# CHECK-DEFAULT-NEXT: Opcode: I32_CONST -+# CHECK-DEFAULT-NEXT: Value: 1 -+ -+# CHECK-DEFAULT: - Type: EXPORT -+# CHECK-DEFAULT: - Name: __table_base -+# CHECK-DEFAULT-NEXT: Kind: GLOBAL -+# CHECK-DEFAULT-NEXT: Index: 1 -+ -+# CHECK-100: - Type: TABLE -+# CHECK-100-NEXT: Tables: -+# CHECK-100-NEXT: - Index: 0 -+# CHECK-100-NEXT: ElemType: FUNCREF -+# CHECK-100-NEXT: Limits: -+# CHECK-100-NEXT: Flags: [ HAS_MAX ] -+# CHECK-100-NEXT: Minimum: 0x65 -+# CHECK-100-NEXT: Maximum: 0x65 -+ -+# CHECK-100: - Type: GLOBAL -+# CHECK-100-NEXT: Globals: -+# CHECK-100-NEXT: - Index: 0 -+# CHECK-100-NEXT: Type: I32 -+# CHECK-100-NEXT: Mutable: true -+# CHECK-100-NEXT: InitExpr: -+# CHECK-100-NEXT: Opcode: I32_CONST -+# CHECK-100-NEXT: Value: 66560 -+# CHECK-100-NEXT: - Index: 1 -+# CHECK-100-NEXT: Type: I32 -+# CHECK-100-NEXT: Mutable: false -+# CHECK-100-NEXT: InitExpr: -+# CHECK-100-NEXT: Opcode: I32_CONST -+# CHECK-100-NEXT: Value: 100 -+ -+# CHECK-100: - Type: EXPORT -+# CHECK-100: - Name: __table_base -+# CHECK-100-NEXT: Kind: GLOBAL -+# CHECK-100-NEXT: Index: 1 -diff --git a/wasm/Driver.cpp b/wasm/Driver.cpp -index 84304881f5ca34e..c2f5f0185781f36 100644 ---- a/wasm/Driver.cpp -+++ b/wasm/Driver.cpp -@@ -502,6 +502,7 @@ static void readConfigs(opt::InputArgList &args) { - - config->initialMemory = args::getInteger(args, OPT_initial_memory, 0); - config->globalBase = args::getInteger(args, OPT_global_base, 0); -+ config->tableBase = args::getInteger(args, OPT_table_base, 0); - config->maxMemory = args::getInteger(args, OPT_max_memory, 0); - config->zStackSize = - args::getZOptionValue(args, OPT_z, "stack-size", WasmPageSize); -@@ -573,6 +574,17 @@ static void setConfigs() { - if (config->exportTable) - error("-shared/-pie is incompatible with --export-table"); - config->importTable = true; -+ } else { -+ // Default table base. Defaults to 1, reserving 0 for the NULL function -+ // pointer. -+ if (!config->tableBase) -+ config->tableBase = 1; -+ // The default offset for static/global data, for when --global-base is -+ // not specified on the command line. The precise value of 1024 is -+ // somewhat arbitrary, and pre-dates wasm-ld (Its the value that -+ // emscripten used prior to wasm-ld). -+ if (!config->globalBase && !config->relocatable && !config->stackFirst) -+ config->globalBase = 1024; - } - - if (config->relocatable) { -@@ -666,8 +678,11 @@ static void checkOptions(opt::InputArgList &args) { - warn("-Bsymbolic is only meaningful when combined with -shared"); - } - -- if (config->globalBase && config->isPic) { -- error("--global-base may not be used with -shared/-pie"); -+ if (config->isPic) { -+ if (config->globalBase) -+ error("--global-base may not be used with -shared/-pie"); -+ if (config->tableBase) -+ error("--table-base may not be used with -shared/-pie"); - } - } - -diff --git a/wasm/Options.td b/wasm/Options.td -index 50417d2928e0a34..bb764396bf4df14 100644 ---- a/wasm/Options.td -+++ b/wasm/Options.td -@@ -191,7 +191,7 @@ def growable_table: FF<"growable-table">, - HelpText<"Remove maximum size from function table, allowing table to grow">; - - def global_base: JJ<"global-base=">, -- HelpText<"Where to start to place global data">; -+ HelpText<"Memory offset at which to place global data (Defaults to 1024)">; - - def import_memory: FF<"import-memory">, - HelpText<"Import the module's memory from the default module of \"env\" with the name \"memory\".">; -@@ -224,6 +224,9 @@ def no_entry: FF<"no-entry">, - def stack_first: FF<"stack-first">, - HelpText<"Place stack at start of linear memory rather than after data">; - -+def table_base: JJ<"table-base=">, -+ HelpText<"Table offset at which to place address taken functions (Defaults to 1)">; -+ - defm whole_archive: B<"whole-archive", - "Force load of all members in a static library", - "Do not force load of all members in a static library (default)">; -diff --git a/wasm/Writer.cpp b/wasm/Writer.cpp -index f25d358dc5bae6f..0576bf2907e49c4 100644 ---- a/wasm/Writer.cpp -+++ b/wasm/Writer.cpp -@@ -358,13 +358,6 @@ void Writer::layoutMemory() { - memoryPtr = config->globalBase; - } - } else { -- if (!config->globalBase && !config->relocatable && !config->isPic) { -- // The default offset for static/global data, for when --global-base is -- // not specified on the command line. The precise value of 1024 is -- // somewhat arbitrary, and pre-dates wasm-ld (Its the value that -- // emscripten used prior to wasm-ld). -- config->globalBase = 1024; -- } - memoryPtr = config->globalBase; - } - -@@ -1685,7 +1678,6 @@ void Writer::run() { - // For PIC code the table base is assigned dynamically by the loader. - // For non-PIC, we start at 1 so that accessing table index 0 always traps. - if (!config->isPic) { -- config->tableBase = 1; - if (WasmSym::definedTableBase) - WasmSym::definedTableBase->setVA(config->tableBase); - if (WasmSym::definedTableBase32) diff --git a/pkgs/by-name/ll/llvm/17/lld/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/17/lld/gnu-install-dirs.patch deleted file mode 100644 index 86e76f4..0000000 --- a/pkgs/by-name/ll/llvm/17/lld/gnu-install-dirs.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 3d6225646fe6..9b5d0b15af13 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -33,10 +33,22 @@ if(LLD_BUILT_STANDALONE) - find_package(LLVM REQUIRED HINTS "${LLVM_CMAKE_DIR}") - list(APPEND CMAKE_MODULE_PATH "${LLVM_DIR}") - -- # Turn into CACHE PATHs for overwriting -- set(LLVM_INCLUDE_DIRS ${LLVM_INCLUDE_DIRS} CACHE PATH "Path to llvm/include and any other header dirs needed") -- set(LLVM_BINARY_DIR "${LLVM_BINARY_DIR}" CACHE PATH "Path to LLVM build tree") -- set(LLVM_MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm" CACHE PATH "Path to LLVM source tree") -+ # We can't check LLVM_CONFIG here, because find_package(LLVM ...) also sets -+ # LLVM_CONFIG. -+ if (NOT LLVM_CONFIG_FOUND) -+ # Pull values from LLVMConfig.cmake. We can drop this once the llvm-config -+ # path is removed. -+ set(INCLUDE_DIRS ${LLVM_INCLUDE_DIRS}) -+ set(LLVM_OBJ_DIR "${LLVM_BINARY_DIR}") -+ # N.B. this is just a default value, the CACHE PATHs below can be overridden. -+ set(MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm") -+ else() -+ set(INCLUDE_DIRS "${LLVM_BINARY_DIR}/include" "${MAIN_INCLUDE_DIR}") -+ endif() -+ -+ set(LLVM_INCLUDE_DIRS ${INCLUDE_DIRS} CACHE PATH "Path to llvm/include and any other header dirs needed") -+ set(LLVM_BINARY_DIR "${LLVM_OBJ_ROOT}" CACHE PATH "Path to LLVM build tree") -+ set(LLVM_MAIN_SRC_DIR "${MAIN_SRC_DIR}" CACHE PATH "Path to LLVM source tree") - - find_program(LLVM_TABLEGEN_EXE "llvm-tblgen" ${LLVM_TOOLS_BINARY_DIR} - NO_DEFAULT_PATH) -diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake -index d3924f7243d4..42a7cd62281c 100644 ---- a/cmake/modules/AddLLD.cmake -+++ b/cmake/modules/AddLLD.cmake -@@ -18,8 +18,8 @@ macro(add_lld_library name) - install(TARGETS ${name} - COMPONENT ${name} - ${export_to_lldtargets} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} -+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" -+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") - - if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES) diff --git a/pkgs/by-name/ll/llvm/17/lldb/cpu_subtype_arm64e_replacement.patch b/pkgs/by-name/ll/llvm/17/lldb/cpu_subtype_arm64e_replacement.patch deleted file mode 100644 index 20d35c9..0000000 --- a/pkgs/by-name/ll/llvm/17/lldb/cpu_subtype_arm64e_replacement.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/source/Host/macosx/objcxx/HostInfoMacOSX.mm b/source/Host/macosx/objcxx/HostInfoMacOSX.mm ---- a/source/Host/macosx/objcxx/HostInfoMacOSX.mm -+++ b/source/Host/macosx/objcxx/HostInfoMacOSX.mm -@@ -233,7 +233,7 @@ void HostInfoMacOSX::ComputeHostArchitectureSupport(ArchSpec &arch_32, - len = sizeof(is_64_bit_capable); - ::sysctlbyname("hw.cpu64bit_capable", &is_64_bit_capable, &len, NULL, 0); - -- if (cputype == CPU_TYPE_ARM64 && cpusubtype == CPU_SUBTYPE_ARM64E) { -+ if (cputype == CPU_TYPE_ARM64 && cpusubtype == ((cpu_subtype_t) 2)) { // CPU_SUBTYPE_ARM64E is not available in the macOS 10.12 headers - // The arm64e architecture is a preview. Pretend the host architecture - // is arm64. - cpusubtype = CPU_SUBTYPE_ARM64_ALL; diff --git a/pkgs/by-name/ll/llvm/17/lldb/procfs.patch b/pkgs/by-name/ll/llvm/17/lldb/procfs.patch deleted file mode 100644 index 7b200e8..0000000 --- a/pkgs/by-name/ll/llvm/17/lldb/procfs.patch +++ /dev/null @@ -1,46 +0,0 @@ ---- a/source/Plugins/Process/Linux/Procfs.h -+++ b/source/Plugins/Process/Linux/Procfs.h -@@ -10,6 +10,13 @@ - // sys/procfs.h on Android/Linux for all supported architectures. - - #include -+#include -+ -+// on i686 preprocessor symbols with these register names are defined as -+// numeric constants; these symbols clash with identifier names used in -+// `llvm/Support/VirtualFileSystem.h` and `llvm/ADT/SmallVector.h` -+#undef FS -+#undef CS - - #include "lldb/lldb-types.h" - -@@ -17,23 +24,13 @@ - - #include - --#ifdef __ANDROID__ --#if defined(__arm64__) || defined(__aarch64__) --typedef unsigned long elf_greg_t; --typedef elf_greg_t -- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))]; --typedef struct user_fpsimd_state elf_fpregset_t; --#ifndef NT_FPREGSET --#define NT_FPREGSET NT_PRFPREG --#endif // NT_FPREGSET --#elif defined(__mips__) --#ifndef NT_FPREGSET --#define NT_FPREGSET NT_PRFPREG --#endif // NT_FPREGSET --#endif --#else // __ANDROID__ -+#if !defined(__GLIBC__) && defined(__powerpc__) -+#define pt_regs musl_pt_regs -+#include -+#undef pt_regs -+#else - #include --#endif // __ANDROID__ -+#endif - - namespace lldb_private { - namespace process_linux { diff --git a/pkgs/by-name/ll/llvm/17/llvm/default.nix b/pkgs/by-name/ll/llvm/17/llvm/default.nix deleted file mode 100644 index a045bea..0000000 --- a/pkgs/by-name/ll/llvm/17/llvm/default.nix +++ /dev/null @@ -1,431 +0,0 @@ -{ 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)); - - # Ordinarily we would just the `doCheck` and `checkDeps` functionality - # `mkDerivation` gives us to manage our test dependencies (instead of breaking - # out `doCheck` as a package level attribute). - # - # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in - # particular the children it uses to do feature detection. - # - # This means that python deps we add to `checkDeps` (which the python - # interpreter is made aware of via `$PYTHONPATH` – populated by the python - # setup hook) are not picked up by `lit` which causes it to skip tests. - # - # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work - # because this package is shadowed in `$PATH` by the regular `python3` - # package. - # - # 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 - ] ++ 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" - ]; - 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/llvm/gnu-install-dirs-polly.patch b/pkgs/by-name/ll/llvm/17/llvm/gnu-install-dirs-polly.patch deleted file mode 100644 index b01363e..0000000 --- a/pkgs/by-name/ll/llvm/17/llvm/gnu-install-dirs-polly.patch +++ /dev/null @@ -1,19 +0,0 @@ -This is the one remaining Polly install dirs related change that hasn't made it -into upstream yet; previously this patch file also included: -https://reviews.llvm.org/D117541 - -diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake -index 518a09b45a42..bd9d6f5542ad 100644 ---- a/tools/polly/cmake/polly_macros.cmake -+++ b/tools/polly/cmake/polly_macros.cmake -@@ -44,8 +44,8 @@ macro(add_polly_library name) - if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly") - install(TARGETS ${name} - EXPORT LLVMExports -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}) -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) - endif() - set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name}) - endmacro(add_polly_library) diff --git a/pkgs/by-name/ll/llvm/17/llvm/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/17/llvm/gnu-install-dirs.patch deleted file mode 100644 index e2122eb..0000000 --- a/pkgs/by-name/ll/llvm/17/llvm/gnu-install-dirs.patch +++ /dev/null @@ -1,137 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 471817d68286..c51463304159 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -1010,7 +1010,7 @@ if (NOT TENSORFLOW_AOT_PATH STREQUAL "") - add_subdirectory(${TENSORFLOW_AOT_PATH}/xla_aot_runtime_src - ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/tf_runtime) - install(TARGETS tf_xla_runtime EXPORT LLVMExports -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT tf_xla_runtime) -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT tf_xla_runtime) - set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS tf_xla_runtime) - # Once we add more modules, we should handle this more automatically. - if (DEFINED LLVM_OVERRIDE_MODEL_HEADER_INLINERSIZEMODEL) -diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake -index 230620c37027..dd16cab1835e 100644 ---- a/cmake/modules/AddLLVM.cmake -+++ b/cmake/modules/AddLLVM.cmake -@@ -876,8 +876,8 @@ macro(add_llvm_library name) - get_target_export_arg(${name} LLVM export_to_llvmexports ${umbrella}) - install(TARGETS ${name} - ${export_to_llvmexports} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} -+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" COMPONENT ${name} -+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" COMPONENT ${name} - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${name}) - - if (NOT LLVM_ENABLE_IDE) -@@ -2069,7 +2069,7 @@ function(llvm_install_library_symlink name dest type) - set(LLVM_LINK_OR_COPY copy) - endif() - -- set(output_dir lib${LLVM_LIBDIR_SUFFIX}) -+ set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) - if(WIN32 AND "${type}" STREQUAL "SHARED") - set(output_dir "${CMAKE_INSTALL_BINDIR}") - endif() -@@ -2344,16 +2344,37 @@ function(llvm_setup_rpath name) - - if (APPLE) - set(_install_name_dir INSTALL_NAME_DIR "@rpath") -- set(_install_rpath "@loader_path/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -+ set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) - elseif(${CMAKE_SYSTEM_NAME} MATCHES "AIX" AND BUILD_SHARED_LIBS) - # $ORIGIN is not interpreted at link time by aix ld. - # Since BUILD_SHARED_LIBS is only recommended for use by developers, - # hardcode the rpath to build/install lib dir first in this mode. - # FIXME: update this when there is better solution. -- set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -+ set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) - elseif(UNIX) -- set(_build_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -- set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}") -+ # Note that we add `extra_libdir` (aka `LLVM_LIBRARY_DIR` in our case) back -+ # to `_install_rpath` here. -+ # -+ # In nixpkgs we do not build and install LLVM alongside rdeps of LLVM (i.e. -+ # clang); instead LLVM is its own package and thus lands at its own nix -+ # store path. This makes it so that the default relative rpath (`../lib/`) -+ # does not point at the LLVM shared objects. -+ # -+ # More discussion here: -+ # - https://github.com/NixOS/nixpkgs/pull/235624#discussion_r1220150329 -+ # - https://reviews.llvm.org/D146918 (16.0.5+) -+ # -+ # Note that we leave `extra_libdir` in `_build_rpath`: without FHS there is -+ # no potential that this will result in us pulling in the "wrong" LLVM. -+ # Adding this to the build rpath means we aren't forced to use -+ # `installCheckPhase` instead of `checkPhase` (i.e. binaries in the build -+ # dir, pre-install, will have the right rpath for LLVM). -+ # -+ # As noted in the differential above, an alternative solution is to have -+ # all rdeps of nixpkgs' LLVM (that use the AddLLVM.cmake machinery) set -+ # `CMAKE_INSTALL_RPATH`. -+ set(_build_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -+ set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) - if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)") - set_property(TARGET ${name} APPEND_STRING PROPERTY - LINK_FLAGS " -Wl,-z,origin ") -diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake -index 891c9e6d618c..8d963f3b0069 100644 ---- a/cmake/modules/AddOCaml.cmake -+++ b/cmake/modules/AddOCaml.cmake -@@ -147,9 +147,9 @@ function(add_ocaml_library name) - endforeach() - - if( APPLE ) -- set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}") -+ set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") - elseif( UNIX ) -- set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}") -+ set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") - endif() - list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}") - -diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt -index d99af79aa38e..21e794224b99 100644 ---- a/cmake/modules/CMakeLists.txt -+++ b/cmake/modules/CMakeLists.txt -@@ -127,7 +127,7 @@ set(LLVM_CONFIG_INCLUDE_DIRS - ) - list(REMOVE_DUPLICATES LLVM_CONFIG_INCLUDE_DIRS) - --extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "lib\${LLVM_LIBDIR_SUFFIX}") -+extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}") - set(LLVM_CONFIG_LIBRARY_DIRS - "${LLVM_CONFIG_LIBRARY_DIR}" - # FIXME: Should there be other entries here? -diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in -index 370005cd8d7d..7e790bc52111 100644 ---- a/tools/llvm-config/BuildVariables.inc.in -+++ b/tools/llvm-config/BuildVariables.inc.in -@@ -23,6 +23,7 @@ - #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@" - #define LLVM_BUILDMODE "@LLVM_BUILDMODE@" - #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@" -+#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@" - #define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@" - #define LLVM_INSTALL_PACKAGE_DIR "@LLVM_INSTALL_PACKAGE_DIR@" - #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@" -diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp -index e86eb2b44b10..f63e207e792e 100644 ---- a/tools/llvm-config/llvm-config.cpp -+++ b/tools/llvm-config/llvm-config.cpp -@@ -366,7 +366,11 @@ int main(int argc, char **argv) { - sys::fs::make_absolute(ActivePrefix, Path); - ActiveBinDir = std::string(Path.str()); - } -- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX; -+ { -+ SmallString<256> Path(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX); -+ sys::fs::make_absolute(ActivePrefix, Path); -+ ActiveLibDir = std::string(Path.str()); -+ } - { - SmallString<256> Path(LLVM_INSTALL_PACKAGE_DIR); - sys::fs::make_absolute(ActivePrefix, Path); diff --git a/pkgs/by-name/ll/llvm/17/llvm/lit-shell-script-runner-set-dyld-library-path.patch b/pkgs/by-name/ll/llvm/17/llvm/lit-shell-script-runner-set-dyld-library-path.patch deleted file mode 100644 index 82b7b21..0000000 --- a/pkgs/by-name/ll/llvm/17/llvm/lit-shell-script-runner-set-dyld-library-path.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/utils/lit/lit/TestRunner.py b/utils/lit/lit/TestRunner.py -index 0242e0b75af3..d732011306f7 100644 ---- a/utils/lit/lit/TestRunner.py -+++ b/utils/lit/lit/TestRunner.py -@@ -1029,6 +1029,12 @@ def executeScript(test, litConfig, tmpBase, commands, cwd): - f.write('@echo off\n') - f.write('\n@if %ERRORLEVEL% NEQ 0 EXIT\n'.join(commands)) - else: -+ # This env var is *purged* when invoking subprocesses so we have to -+ # manually set it from within the bash script in order for the commands -+ # in run lines to see this var: -+ if "DYLD_LIBRARY_PATH" in test.config.environment: -+ f.write(f'export DYLD_LIBRARY_PATH="{test.config.environment["DYLD_LIBRARY_PATH"]}"\n') -+ - for i, ln in enumerate(commands): - match = re.match(kPdbgRegex, ln) - if match: diff --git a/pkgs/by-name/ll/llvm/17/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch b/pkgs/by-name/ll/llvm/17/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch deleted file mode 100644 index d4ccb2a..0000000 --- a/pkgs/by-name/ll/llvm/17/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch +++ /dev/null @@ -1,80 +0,0 @@ -diff --git a/test/Unit/lit.cfg.py b/test/Unit/lit.cfg.py -index 81e8dc04acea..479ff95681e2 100644 ---- a/test/Unit/lit.cfg.py -+++ b/test/Unit/lit.cfg.py -@@ -3,6 +3,7 @@ - # Configuration file for the 'lit' test runner. - - import os -+import platform - import subprocess - - import lit.formats -@@ -55,3 +56,26 @@ if sys.platform in ["win32", "cygwin"] and os.path.isdir(config.shlibdir): - # Win32 may use %SYSTEMDRIVE% during file system shell operations, so propogate. - if sys.platform == "win32" and "SYSTEMDRIVE" in os.environ: - config.environment["SYSTEMDRIVE"] = os.environ["SYSTEMDRIVE"] -+ -+# Add the LLVM dynamic libs to the platform-specific loader search path env var: -+# -+# TODO: this is copied from `clang`'s `lit.cfg.py`; should unify.. -+def find_shlibpath_var(): -+ if platform.system() in ["Linux", "FreeBSD", "NetBSD", "OpenBSD", "SunOS"]: -+ yield "LD_LIBRARY_PATH" -+ elif platform.system() == "Darwin": -+ yield "DYLD_LIBRARY_PATH" -+ elif platform.system() == "Windows": -+ yield "PATH" -+ elif platform.system() == "AIX": -+ yield "LIBPATH" -+ -+for shlibpath_var in find_shlibpath_var(): -+ shlibpath = os.path.pathsep.join( -+ (config.shlibdir, -+ config.environment.get(shlibpath_var, ''))) -+ config.environment[shlibpath_var] = shlibpath -+ break -+else: -+ lit_config.warning("unable to inject shared library path on '{}'" -+ .format(platform.system())) -diff --git a/test/lit.cfg.py b/test/lit.cfg.py -index 75a38b4c5dad..856fc75c9d74 100644 ---- a/test/lit.cfg.py -+++ b/test/lit.cfg.py -@@ -42,6 +42,26 @@ llvm_config.with_environment("PATH", config.llvm_tools_dir, append_path=True) - llvm_config.with_system_environment( - ["HOME", "INCLUDE", "LIB", "TMP", "TEMP"]) - -+# Add the LLVM dynamic libs to the platform-specific loader search path env var: -+# -+# TODO: this is copied from `clang`'s `lit.cfg.py`; should unify.. -+def find_shlibpath_var(): -+ if platform.system() in ["Linux", "FreeBSD", "NetBSD", "OpenBSD", "SunOS"]: -+ yield "LD_LIBRARY_PATH" -+ elif platform.system() == "Darwin": -+ yield "DYLD_LIBRARY_PATH" -+ elif platform.system() == "Windows": -+ yield "PATH" -+ elif platform.system() == "AIX": -+ yield "LIBPATH" -+ -+for shlibpath_var in find_shlibpath_var(): -+ shlibpath = config.llvm_shlib_dir -+ llvm_config.with_environment(shlibpath_var, shlibpath, append_path = True) -+ break -+else: -+ lit_config.warning("unable to inject shared library path on '{}'" -+ .format(platform.system())) - - # Set up OCAMLPATH to include newly built OCaml libraries. - top_ocaml_lib = os.path.join(config.llvm_lib_dir, "ocaml") -@@ -318,7 +338,7 @@ def have_cxx_shared_library(): - - try: - readobj_cmd = subprocess.Popen( -- [readobj_exe, "--needed-libs", readobj_exe], stdout=subprocess.PIPE -+ [readobj_exe, "--needed-libs", readobj_exe], stdout=subprocess.PIPE, env=config.environment - ) - except OSError: - print("could not exec llvm-readobj") - diff --git a/pkgs/by-name/ll/llvm/17/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch b/pkgs/by-name/ll/llvm/17/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch deleted file mode 100644 index 1354ad2..0000000 --- a/pkgs/by-name/ll/llvm/17/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/tools/polly/test/lit.cfg b/tools/polly/test/lit.cfg -index 41e3a589c61e..09f3b17498b0 100644 ---- a/tools/polly/test/lit.cfg -+++ b/tools/polly/test/lit.cfg -@@ -36,9 +36,17 @@ base_paths = [config.llvm_tools_dir, config.environment['PATH']] - path = os.path.pathsep.join(base_paths + config.extra_paths) - config.environment['PATH'] = path - -+# (Copied from polly/test/Unit/lit.cfg) -+if platform.system() == 'Darwin': -+ shlibpath_var = 'DYLD_LIBRARY_PATH' -+elif platform.system() == 'Windows': -+ shlibpath_var = 'PATH' -+else: -+ shlibpath_var = 'LD_LIBRARY_PATH' -+ - path = os.path.pathsep.join((config.llvm_libs_dir, -- config.environment.get('LD_LIBRARY_PATH',''))) --config.environment['LD_LIBRARY_PATH'] = path -+ config.environment.get(shlibpath_var,''))) -+config.environment[shlibpath_var] = path - - llvm_config.use_default_substitutions() - diff --git a/pkgs/by-name/ll/llvm/17/openmp/fix-find-tool.patch b/pkgs/by-name/ll/llvm/17/openmp/fix-find-tool.patch deleted file mode 100644 index b7f5119..0000000 --- a/pkgs/by-name/ll/llvm/17/openmp/fix-find-tool.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/libomptarget/DeviceRTL/CMakeLists.txt b/libomptarget/DeviceRTL/CMakeLists.txt -index 630947abec7e..9f032dc7bd3f 100644 ---- a/libomptarget/DeviceRTL/CMakeLists.txt -+++ b/libomptarget/DeviceRTL/CMakeLists.txt -@@ -27,10 +27,10 @@ endif() - if (LLVM_DIR) - # Builds that use pre-installed LLVM have LLVM_DIR set. - # A standalone or LLVM_ENABLE_RUNTIMES=openmp build takes this route -- find_program(CLANG_TOOL clang PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) -+ find_program(CLANG_TOOL clang PATHS ${LLVM_TOOLS_BINARY_DIR}) - find_program(PACKAGER_TOOL clang-offload-packager PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) - find_program(LINK_TOOL llvm-link PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) -- find_program(OPT_TOOL opt PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) -+ find_program(OPT_TOOL opt PATHS ${LLVM_TOOLS_BINARY_DIR}) - if ((NOT CLANG_TOOL) OR (NOT LINK_TOOL) OR (NOT OPT_TOOL) OR (NOT PACKAGER_TOOL)) - libomptarget_say("Not building DeviceRTL. Missing clang: ${CLANG_TOOL}, llvm-link: ${LINK_TOOL}, opt: ${OPT_TOOL}, or clang-offload-packager: ${PACKAGER_TOOL}") - return() diff --git a/pkgs/by-name/ll/llvm/17/openmp/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/17/openmp/gnu-install-dirs.patch deleted file mode 100644 index 77a9320..0000000 --- a/pkgs/by-name/ll/llvm/17/openmp/gnu-install-dirs.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index b6ddbe90516d..311ab1d50e7f 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -29,7 +29,7 @@ if (OPENMP_STANDALONE_BUILD) - set(OPENMP_LIBDIR_SUFFIX "" CACHE STRING - "Suffix of lib installation directory, e.g. 64 => lib64") - # Do not use OPENMP_LIBDIR_SUFFIX directly, use OPENMP_INSTALL_LIBDIR. -- set(OPENMP_INSTALL_LIBDIR "lib${OPENMP_LIBDIR_SUFFIX}") -+ set(OPENMP_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}${OPENMP_LIBDIR_SUFFIX}") - - # Group test settings. - set(OPENMP_TEST_C_COMPILER ${CMAKE_C_COMPILER} CACHE STRING -@@ -40,7 +40,7 @@ if (OPENMP_STANDALONE_BUILD) - else() - set(OPENMP_ENABLE_WERROR ${LLVM_ENABLE_WERROR}) - # If building in tree, we honor the same install suffix LLVM uses. -- set(OPENMP_INSTALL_LIBDIR "lib${LLVM_LIBDIR_SUFFIX}") -+ set(OPENMP_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") - - if (NOT MSVC) - set(OPENMP_TEST_C_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang) diff --git a/pkgs/by-name/ll/llvm/17/openmp/run-lit-directly.patch b/pkgs/by-name/ll/llvm/17/openmp/run-lit-directly.patch deleted file mode 100644 index e69de29..0000000 diff --git a/pkgs/by-name/ll/llvm/18/clang/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/18/clang/gnu-install-dirs.patch deleted file mode 100644 index 9517df9..0000000 --- a/pkgs/by-name/ll/llvm/18/clang/gnu-install-dirs.patch +++ /dev/null @@ -1,71 +0,0 @@ -diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake -index 75b0080f6715..c895b884cd27 100644 ---- a/cmake/modules/AddClang.cmake -+++ b/cmake/modules/AddClang.cmake -@@ -119,8 +119,8 @@ macro(add_clang_library name) - install(TARGETS ${lib} - COMPONENT ${lib} - ${export_to_clangtargets} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} -+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" -+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") - - if (NOT LLVM_ENABLE_IDE) -diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt -index f2b0c5cddcbb..52f37fc368ce 100644 ---- a/lib/Headers/CMakeLists.txt -+++ b/lib/Headers/CMakeLists.txt -@@ -473,6 +473,7 @@ add_header_target("windows-resource-headers" ${windows_only_files}) - add_header_target("utility-resource-headers" ${utility_files}) - - get_clang_resource_dir(header_install_dir SUBDIR include) -+set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION_MAJOR}/include) - - ############################################################# - # Install rules for the catch-all clang-resource-headers target -diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt -index 4f23065a2472..6a0f55991e24 100644 ---- a/tools/libclang/CMakeLists.txt -+++ b/tools/libclang/CMakeLists.txt -@@ -234,7 +234,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS}) - COMPONENT - libclang-python-bindings - DESTINATION -- "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages") -+ "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages") - endforeach() - if(NOT LLVM_ENABLE_IDE) - add_custom_target(libclang-python-bindings) -diff --git a/tools/scan-build-py/CMakeLists.txt b/tools/scan-build-py/CMakeLists.txt -index 3aca22c0b0a8..3115353e3fe3 100644 ---- a/tools/scan-build-py/CMakeLists.txt -+++ b/tools/scan-build-py/CMakeLists.txt -@@ -88,7 +88,7 @@ foreach(lib ${LibScanbuild}) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/${lib}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/${lib}) - install(FILES lib/libscanbuild/${lib} -- DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libscanbuild -+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libscanbuild" - COMPONENT scan-build-py) - endforeach() - -@@ -106,7 +106,7 @@ foreach(resource ${LibScanbuildResources}) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/resources/${resource}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/resources/${resource}) - install(FILES lib/libscanbuild/resources/${resource} -- DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libscanbuild/resources -+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libscanbuild/resources" - COMPONENT scan-build-py) - endforeach() - -@@ -122,7 +122,7 @@ foreach(lib ${LibEar}) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libear/${lib}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libear/${lib}) - install(FILES lib/libear/${lib} -- DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libear -+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libear" - COMPONENT scan-build-py) - endforeach() - diff --git a/pkgs/by-name/ll/llvm/18/clang/purity.patch b/pkgs/by-name/ll/llvm/18/clang/purity.patch deleted file mode 100644 index 5ce14a3..0000000 --- a/pkgs/by-name/ll/llvm/18/clang/purity.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001 -From: Will Dietz -Date: Thu, 18 May 2017 11:56:12 -0500 -Subject: [PATCH] "purity" patch for 5.0 - ---- - lib/Driver/ToolChains/Gnu.cpp | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp -index fe3c0191bb..c6a482bece 100644 ---- a/lib/Driver/ToolChains/Gnu.cpp -+++ b/lib/Driver/ToolChains/Gnu.cpp -@@ -446,9 +446,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA, - ToolChain.isPIEDefault(Args)); - if (IsPIE) - CmdArgs.push_back("-pie"); -- CmdArgs.push_back("-dynamic-linker"); -- CmdArgs.push_back(Args.MakeArgString(Twine(D.DyldPrefix) + -- ToolChain.getDynamicLinker(Args))); - } - } - --- -2.11.0 diff --git a/pkgs/by-name/ll/llvm/18/compiler-rt/X86-support-extension.patch b/pkgs/by-name/ll/llvm/18/compiler-rt/X86-support-extension.patch deleted file mode 100644 index 07013e5..0000000 --- a/pkgs/by-name/ll/llvm/18/compiler-rt/X86-support-extension.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt -index 3a66dd9c3fb..7efc85d9f9f 100644 ---- a/lib/builtins/CMakeLists.txt -+++ b/lib/builtins/CMakeLists.txt -@@ -348,4 +348,8 @@ if (NOT MSVC) - -+ set(i486_SOURCES ${i386_SOURCES}) -+ set(i586_SOURCES ${i386_SOURCES}) -+ set(i686_SOURCES ${i386_SOURCES}) -+ - if (WIN32) - set(i386_SOURCES - ${i386_SOURCES} -@@ -723,6 +723,7 @@ else () - endif() - - foreach (arch ${BUILTIN_SUPPORTED_ARCH}) -+ message("arch: ${arch}") - if (CAN_TARGET_${arch}) - # For ARM archs, exclude any VFP builtins if VFP is not supported - if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$") diff --git a/pkgs/by-name/ll/llvm/18/compiler-rt/darwin-targetconditionals.patch b/pkgs/by-name/ll/llvm/18/compiler-rt/darwin-targetconditionals.patch deleted file mode 100644 index 425dc2a..0000000 --- a/pkgs/by-name/ll/llvm/18/compiler-rt/darwin-targetconditionals.patch +++ /dev/null @@ -1,71 +0,0 @@ -diff --git a/lib/sanitizer_common/sanitizer_mac.cpp b/lib/sanitizer_common/sanitizer_mac.cpp ---- a/lib/sanitizer_common/sanitizer_mac.cpp -+++ b/lib/sanitizer_common/sanitizer_mac.cpp -@@ -613,9 +613,15 @@ HandleSignalMode GetHandleSignalMode(int signum) { - // Offset example: - // XNU 17 -- macOS 10.13 -- iOS 11 -- tvOS 11 -- watchOS 4 - constexpr u16 GetOSMajorKernelOffset() { -- if (TARGET_OS_OSX) return 4; -- if (TARGET_OS_IOS || TARGET_OS_TV) return 6; -- if (TARGET_OS_WATCH) return 13; -+#if TARGET_OS_OSX -+ return 4; -+#endif -+#if TARGET_OS_IOS || TARGET_OS_TV -+ return 6; -+#endif -+#if TARGET_OS_WATCH -+ return 13; -+#endif - } - - using VersStr = char[64]; -@@ -627,13 +633,13 @@ static uptr ApproximateOSVersionViaKernelVersion(VersStr vers) { - u16 os_major = kernel_major - offset; - - const char *format = "%d.0"; -- if (TARGET_OS_OSX) { -- if (os_major >= 16) { // macOS 11+ -- os_major -= 5; -- } else { // macOS 10.15 and below -- format = "10.%d"; -- } -+#if TARGET_OS_OSX -+ if (os_major >= 16) { // macOS 11+ -+ os_major -= 5; -+ } else { // macOS 10.15 and below -+ format = "10.%d"; - } -+#endif - return internal_snprintf(vers, sizeof(VersStr), format, os_major); - } - -@@ -681,15 +687,14 @@ void ParseVersion(const char *vers, u16 *major, u16 *minor) { - // Aligned versions example: - // macOS 10.15 -- iOS 13 -- tvOS 13 -- watchOS 6 - static void MapToMacos(u16 *major, u16 *minor) { -- if (TARGET_OS_OSX) -- return; -- -- if (TARGET_OS_IOS || TARGET_OS_TV) -+#if !TARGET_OS_OSX -+#if TARGET_OS_IOS || TARGET_OS_TV - *major += 2; -- else if (TARGET_OS_WATCH) -+#elif TARGET_OS_WATCH - *major += 9; -- else -+#else - UNREACHABLE("unsupported platform"); -+#endif - - if (*major >= 16) { // macOS 11+ - *major -= 5; -@@ -697,6 +702,7 @@ static void MapToMacos(u16 *major, u16 *minor) { - *minor = *major; - *major = 10; - } -+#endif - } - - static MacosVersion GetMacosAlignedVersionInternal() { diff --git a/pkgs/by-name/ll/llvm/18/compiler-rt/normalize-var.patch b/pkgs/by-name/ll/llvm/18/compiler-rt/normalize-var.patch deleted file mode 100644 index 2b25fd4..0000000 --- a/pkgs/by-name/ll/llvm/18/compiler-rt/normalize-var.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/cmake/Modules/CompilerRTUtils.cmake b/cmake/Modules/CompilerRTUtils.cmake -index 4c85551d7766..297d7a47c54b 100644 ---- a/cmake/Modules/CompilerRTUtils.cmake -+++ b/cmake/Modules/CompilerRTUtils.cmake -@@ -328,8 +328,9 @@ macro(load_llvm_config) - endif() - endif() - -- set(LLVM_LIBRARY_OUTPUT_INTDIR -- ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) -+ get_filename_component(LLVM_LIBRARY_OUTPUT_INTDIR -+ ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX} -+ REALPATH) - - set(LLVM_MAIN_SRC_DIR "${LLVM_MAIN_SRC_DIR_DEFAULT}" CACHE PATH "Path to LLVM source tree") - message(STATUS "LLVM_MAIN_SRC_DIR: \"${LLVM_MAIN_SRC_DIR}\"") diff --git a/pkgs/by-name/ll/llvm/18/default.nix b/pkgs/by-name/ll/llvm/18/default.nix deleted file mode 100644 index 4d2b160..0000000 --- a/pkgs/by-name/ll/llvm/18/default.nix +++ /dev/null @@ -1,367 +0,0 @@ -{ 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" */; - # rev = /* commit SHA */; - # 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="; } - # 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 -}: - -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 - 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; - - 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; - - in { - - 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; - - 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; - - 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 - }); - - 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; - - 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; - }; - - lld = callPackage ../common/lld { - patches = [ - ./lld/gnu-install-dirs.patch - ]; - 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 - && !stdenv.targetPlatform.isAarch64 - && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0") - ) ./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. - - 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 = 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" - "-nostdlib++" - ] - ++ 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 = - [ - "-rtlib=compiler-rt" - "-B${targetLlvmLibraries.compiler-rt}/lib" - ] - ++ 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 = - [ - "-nostartfiles" - ] - ++ 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" ]; - }); - - # 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 { - - 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; - }; - - # 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; - - 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; - }; - - 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; - }; - }); - noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ]; - -in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools) diff --git a/pkgs/by-name/ll/llvm/18/libcxx/0001-darwin-10.12-mbstate_t-fix.patch b/pkgs/by-name/ll/llvm/18/libcxx/0001-darwin-10.12-mbstate_t-fix.patch deleted file mode 100644 index 29942f8..0000000 --- a/pkgs/by-name/ll/llvm/18/libcxx/0001-darwin-10.12-mbstate_t-fix.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 9c1cb26c1dd3f92d1c1177e548107d2cd3c5e616 Mon Sep 17 00:00:00 2001 -From: annalee <150648636+a-n-n-a-l-e-e@users.noreply.github.com> -Date: Fri, 23 Feb 2024 22:58:58 +0000 -Subject: [PATCH] darwin 10.12 mbstate_t fix - -https://github.com/llvm/llvm-project/issues/64226 - -removes space from -https://github.com/macports/macports-ports/raw/acd8acb171f1658596ed1cf25da48d5b932e2d19/lang/llvm-17/files/0042-mbstate_t-not-defined.patch -so it applies cleanly ---- - libcxx/include/__mbstate_t.h | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/libcxx/include/__mbstate_t.h b/libcxx/include/__mbstate_t.h -index bfa6d61..5f51112 100644 ---- a/libcxx/include/__mbstate_t.h -+++ b/libcxx/include/__mbstate_t.h -@@ -42,6 +42,9 @@ - #elif __has_include() - # include // works on most Unixes - #elif __has_include() -+# if __has_include() -+# include -+# endif - # include // works on Darwin - #elif !defined(_LIBCPP_HAS_NO_WIDE_CHARACTERS) && __has_include_next() - # include_next // fall back to the C standard provider of mbstate_t --- -2.43.0 - diff --git a/pkgs/by-name/ll/llvm/18/lld/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/18/lld/gnu-install-dirs.patch deleted file mode 100644 index 6c73a24..0000000 --- a/pkgs/by-name/ll/llvm/18/lld/gnu-install-dirs.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake -index d3924f7243d4..42a7cd62281c 100644 ---- a/cmake/modules/AddLLD.cmake -+++ b/cmake/modules/AddLLD.cmake -@@ -18,8 +18,8 @@ macro(add_lld_library name) - install(TARGETS ${name} - COMPONENT ${name} - ${export_to_lldtargets} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} -+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" -+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") - - if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES) diff --git a/pkgs/by-name/ll/llvm/18/lldb/cpu_subtype_arm64e_replacement.patch b/pkgs/by-name/ll/llvm/18/lldb/cpu_subtype_arm64e_replacement.patch deleted file mode 100644 index 20d35c9..0000000 --- a/pkgs/by-name/ll/llvm/18/lldb/cpu_subtype_arm64e_replacement.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/source/Host/macosx/objcxx/HostInfoMacOSX.mm b/source/Host/macosx/objcxx/HostInfoMacOSX.mm ---- a/source/Host/macosx/objcxx/HostInfoMacOSX.mm -+++ b/source/Host/macosx/objcxx/HostInfoMacOSX.mm -@@ -233,7 +233,7 @@ void HostInfoMacOSX::ComputeHostArchitectureSupport(ArchSpec &arch_32, - len = sizeof(is_64_bit_capable); - ::sysctlbyname("hw.cpu64bit_capable", &is_64_bit_capable, &len, NULL, 0); - -- if (cputype == CPU_TYPE_ARM64 && cpusubtype == CPU_SUBTYPE_ARM64E) { -+ if (cputype == CPU_TYPE_ARM64 && cpusubtype == ((cpu_subtype_t) 2)) { // CPU_SUBTYPE_ARM64E is not available in the macOS 10.12 headers - // The arm64e architecture is a preview. Pretend the host architecture - // is arm64. - cpusubtype = CPU_SUBTYPE_ARM64_ALL; diff --git a/pkgs/by-name/ll/llvm/18/lldb/procfs.patch b/pkgs/by-name/ll/llvm/18/lldb/procfs.patch deleted file mode 100644 index 7b200e8..0000000 --- a/pkgs/by-name/ll/llvm/18/lldb/procfs.patch +++ /dev/null @@ -1,46 +0,0 @@ ---- a/source/Plugins/Process/Linux/Procfs.h -+++ b/source/Plugins/Process/Linux/Procfs.h -@@ -10,6 +10,13 @@ - // sys/procfs.h on Android/Linux for all supported architectures. - - #include -+#include -+ -+// on i686 preprocessor symbols with these register names are defined as -+// numeric constants; these symbols clash with identifier names used in -+// `llvm/Support/VirtualFileSystem.h` and `llvm/ADT/SmallVector.h` -+#undef FS -+#undef CS - - #include "lldb/lldb-types.h" - -@@ -17,23 +24,13 @@ - - #include - --#ifdef __ANDROID__ --#if defined(__arm64__) || defined(__aarch64__) --typedef unsigned long elf_greg_t; --typedef elf_greg_t -- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))]; --typedef struct user_fpsimd_state elf_fpregset_t; --#ifndef NT_FPREGSET --#define NT_FPREGSET NT_PRFPREG --#endif // NT_FPREGSET --#elif defined(__mips__) --#ifndef NT_FPREGSET --#define NT_FPREGSET NT_PRFPREG --#endif // NT_FPREGSET --#endif --#else // __ANDROID__ -+#if !defined(__GLIBC__) && defined(__powerpc__) -+#define pt_regs musl_pt_regs -+#include -+#undef pt_regs -+#else - #include --#endif // __ANDROID__ -+#endif - - namespace lldb_private { - namespace process_linux { diff --git a/pkgs/by-name/ll/llvm/18/llvm/default.nix b/pkgs/by-name/ll/llvm/18/llvm/default.nix deleted file mode 100644 index a973276..0000000 --- a/pkgs/by-name/ll/llvm/18/llvm/default.nix +++ /dev/null @@ -1,439 +0,0 @@ -{ 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)); - - # Ordinarily we would just the `doCheck` and `checkDeps` functionality - # `mkDerivation` gives us to manage our test dependencies (instead of breaking - # out `doCheck` as a package level attribute). - # - # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in - # particular the children it uses to do feature detection. - # - # This means that python deps we add to `checkDeps` (which the python - # interpreter is made aware of via `$PYTHONPATH` – populated by the python - # setup hook) are not picked up by `lit` which causes it to skip tests. - # - # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work - # because this package is shadowed in `$PATH` by the regular `python3` - # package. - # - # 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 - ] ++ 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" - ]; - 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/18/llvm/gnu-install-dirs-polly.patch b/pkgs/by-name/ll/llvm/18/llvm/gnu-install-dirs-polly.patch deleted file mode 100644 index 6a359bd..0000000 --- a/pkgs/by-name/ll/llvm/18/llvm/gnu-install-dirs-polly.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/tools/polly/cmake/polly_macros.cmake 2024-03-15 17:36:20.550893344 -0700 -+++ b/tools/polly/cmake/polly_macros.cmake 2024-03-15 17:37:06.277332960 -0700 -@@ -45,8 +45,8 @@ - install(TARGETS ${name} - COMPONENT ${name} - EXPORT LLVMExports -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}) -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) - add_llvm_install_targets(install-${name} - COMPONENT ${name}) - endif() diff --git a/pkgs/by-name/ll/llvm/18/llvm/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/18/llvm/gnu-install-dirs.patch deleted file mode 100644 index 8b89839..0000000 --- a/pkgs/by-name/ll/llvm/18/llvm/gnu-install-dirs.patch +++ /dev/null @@ -1,137 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 471817d68286..c51463304159 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -1010,7 +1010,7 @@ if (NOT TENSORFLOW_AOT_PATH STREQUAL "") - add_subdirectory(${TENSORFLOW_AOT_PATH}/xla_aot_runtime_src - ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/tf_runtime) - install(TARGETS tf_xla_runtime EXPORT LLVMExports -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT tf_xla_runtime) -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT tf_xla_runtime) - set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS tf_xla_runtime) - # Once we add more modules, we should handle this more automatically. - if (DEFINED LLVM_OVERRIDE_MODEL_HEADER_INLINERSIZEMODEL) -diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake -index 230620c37027..dd16cab1835e 100644 ---- a/cmake/modules/AddLLVM.cmake -+++ b/cmake/modules/AddLLVM.cmake -@@ -876,8 +876,8 @@ macro(add_llvm_library name) - get_target_export_arg(${name} LLVM export_to_llvmexports ${umbrella}) - install(TARGETS ${name} - ${export_to_llvmexports} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} -+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" COMPONENT ${name} -+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" COMPONENT ${name} - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${name}) - - if (NOT LLVM_ENABLE_IDE) -@@ -2069,7 +2069,7 @@ function(llvm_install_library_symlink name dest type) - set(LLVM_LINK_OR_COPY copy) - endif() - -- set(output_dir lib${LLVM_LIBDIR_SUFFIX}) -+ set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) - if(WIN32 AND "${type}" STREQUAL "SHARED") - set(output_dir "${CMAKE_INSTALL_BINDIR}") - endif() -@@ -2344,16 +2344,37 @@ function(llvm_setup_rpath name) - - if (APPLE) - set(_install_name_dir INSTALL_NAME_DIR "@rpath") -- set(_install_rpath "@loader_path/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -+ set(_install_rpath ${extra_libdir}) - elseif(${CMAKE_SYSTEM_NAME} MATCHES "AIX" AND BUILD_SHARED_LIBS) - # $ORIGIN is not interpreted at link time by aix ld. - # Since BUILD_SHARED_LIBS is only recommended for use by developers, - # hardcode the rpath to build/install lib dir first in this mode. - # FIXME: update this when there is better solution. -- set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -+ set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) - elseif(UNIX) -- set(_build_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -- set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}") -+ # Note that we add `extra_libdir` (aka `LLVM_LIBRARY_DIR` in our case) back -+ # to `_install_rpath` here. -+ # -+ # In nixpkgs we do not build and install LLVM alongside rdeps of LLVM (i.e. -+ # clang); instead LLVM is its own package and thus lands at its own nix -+ # store path. This makes it so that the default relative rpath (`../lib/`) -+ # does not point at the LLVM shared objects. -+ # -+ # More discussion here: -+ # - https://github.com/NixOS/nixpkgs/pull/235624#discussion_r1220150329 -+ # - https://reviews.llvm.org/D146918 (16.0.5+) -+ # -+ # Note that we leave `extra_libdir` in `_build_rpath`: without FHS there is -+ # no potential that this will result in us pulling in the "wrong" LLVM. -+ # Adding this to the build rpath means we aren't forced to use -+ # `installCheckPhase` instead of `checkPhase` (i.e. binaries in the build -+ # dir, pre-install, will have the right rpath for LLVM). -+ # -+ # As noted in the differential above, an alternative solution is to have -+ # all rdeps of nixpkgs' LLVM (that use the AddLLVM.cmake machinery) set -+ # `CMAKE_INSTALL_RPATH`. -+ set(_build_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -+ set(_install_rpath ${extra_libdir}) - if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)") - set_property(TARGET ${name} APPEND_STRING PROPERTY - LINK_FLAGS " -Wl,-z,origin ") -diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake -index 891c9e6d618c..8d963f3b0069 100644 ---- a/cmake/modules/AddOCaml.cmake -+++ b/cmake/modules/AddOCaml.cmake -@@ -147,9 +147,9 @@ function(add_ocaml_library name) - endforeach() - - if( APPLE ) -- set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}") -+ set(ocaml_rpath ${LLVM_LIBRARY_DIR}) - elseif( UNIX ) -- set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}") -+ set(ocaml_rpath ${LLVM_LIBRARY_DIR}) - endif() - list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}") - -diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt -index d99af79aa38e..21e794224b99 100644 ---- a/cmake/modules/CMakeLists.txt -+++ b/cmake/modules/CMakeLists.txt -@@ -127,7 +127,7 @@ set(LLVM_CONFIG_INCLUDE_DIRS - ) - list(REMOVE_DUPLICATES LLVM_CONFIG_INCLUDE_DIRS) - --extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "lib\${LLVM_LIBDIR_SUFFIX}") -+extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}") - set(LLVM_CONFIG_LIBRARY_DIRS - "${LLVM_CONFIG_LIBRARY_DIR}" - # FIXME: Should there be other entries here? -diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in -index 370005cd8d7d..7e790bc52111 100644 ---- a/tools/llvm-config/BuildVariables.inc.in -+++ b/tools/llvm-config/BuildVariables.inc.in -@@ -23,6 +23,7 @@ - #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@" - #define LLVM_BUILDMODE "@LLVM_BUILDMODE@" - #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@" -+#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@" - #define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@" - #define LLVM_INSTALL_PACKAGE_DIR "@LLVM_INSTALL_PACKAGE_DIR@" - #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@" -diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp -index e86eb2b44b10..f63e207e792e 100644 ---- a/tools/llvm-config/llvm-config.cpp -+++ b/tools/llvm-config/llvm-config.cpp -@@ -366,7 +366,11 @@ int main(int argc, char **argv) { - sys::fs::make_absolute(ActivePrefix, Path); - ActiveBinDir = std::string(Path.str()); - } -- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX; -+ { -+ SmallString<256> Path(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX); -+ sys::fs::make_absolute(ActivePrefix, Path); -+ ActiveLibDir = std::string(Path.str()); -+ } - { - SmallString<256> Path(LLVM_INSTALL_PACKAGE_DIR); - sys::fs::make_absolute(ActivePrefix, Path); diff --git a/pkgs/by-name/ll/llvm/18/llvm/lit-shell-script-runner-set-dyld-library-path.patch b/pkgs/by-name/ll/llvm/18/llvm/lit-shell-script-runner-set-dyld-library-path.patch deleted file mode 100644 index e4f049f..0000000 --- a/pkgs/by-name/ll/llvm/18/llvm/lit-shell-script-runner-set-dyld-library-path.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/utils/lit/lit/TestRunner.py 2024-03-15 17:27:53.170780798 -0700 -+++ b/utils/lit/lit/TestRunner.py 2024-03-15 17:28:43.277447791 -0700 -@@ -1183,6 +1183,9 @@ - f.write("@echo on\n") - f.write("\n@if %ERRORLEVEL% NEQ 0 EXIT\n".join(commands)) - else: -+ if "DYLD_LIBRARY_PATH" in test.config.environment: -+ f.write(f'export DYLD_LIBRARY_PATH="{test.config.environment["DYLD_LIBRARY_PATH"]}"\n') -+ - for i, ln in enumerate(commands): - match = re.fullmatch(kPdbgRegex, ln) - if match: diff --git a/pkgs/by-name/ll/llvm/18/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch b/pkgs/by-name/ll/llvm/18/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch deleted file mode 100644 index d4ccb2a..0000000 --- a/pkgs/by-name/ll/llvm/18/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch +++ /dev/null @@ -1,80 +0,0 @@ -diff --git a/test/Unit/lit.cfg.py b/test/Unit/lit.cfg.py -index 81e8dc04acea..479ff95681e2 100644 ---- a/test/Unit/lit.cfg.py -+++ b/test/Unit/lit.cfg.py -@@ -3,6 +3,7 @@ - # Configuration file for the 'lit' test runner. - - import os -+import platform - import subprocess - - import lit.formats -@@ -55,3 +56,26 @@ if sys.platform in ["win32", "cygwin"] and os.path.isdir(config.shlibdir): - # Win32 may use %SYSTEMDRIVE% during file system shell operations, so propogate. - if sys.platform == "win32" and "SYSTEMDRIVE" in os.environ: - config.environment["SYSTEMDRIVE"] = os.environ["SYSTEMDRIVE"] -+ -+# Add the LLVM dynamic libs to the platform-specific loader search path env var: -+# -+# TODO: this is copied from `clang`'s `lit.cfg.py`; should unify.. -+def find_shlibpath_var(): -+ if platform.system() in ["Linux", "FreeBSD", "NetBSD", "OpenBSD", "SunOS"]: -+ yield "LD_LIBRARY_PATH" -+ elif platform.system() == "Darwin": -+ yield "DYLD_LIBRARY_PATH" -+ elif platform.system() == "Windows": -+ yield "PATH" -+ elif platform.system() == "AIX": -+ yield "LIBPATH" -+ -+for shlibpath_var in find_shlibpath_var(): -+ shlibpath = os.path.pathsep.join( -+ (config.shlibdir, -+ config.environment.get(shlibpath_var, ''))) -+ config.environment[shlibpath_var] = shlibpath -+ break -+else: -+ lit_config.warning("unable to inject shared library path on '{}'" -+ .format(platform.system())) -diff --git a/test/lit.cfg.py b/test/lit.cfg.py -index 75a38b4c5dad..856fc75c9d74 100644 ---- a/test/lit.cfg.py -+++ b/test/lit.cfg.py -@@ -42,6 +42,26 @@ llvm_config.with_environment("PATH", config.llvm_tools_dir, append_path=True) - llvm_config.with_system_environment( - ["HOME", "INCLUDE", "LIB", "TMP", "TEMP"]) - -+# Add the LLVM dynamic libs to the platform-specific loader search path env var: -+# -+# TODO: this is copied from `clang`'s `lit.cfg.py`; should unify.. -+def find_shlibpath_var(): -+ if platform.system() in ["Linux", "FreeBSD", "NetBSD", "OpenBSD", "SunOS"]: -+ yield "LD_LIBRARY_PATH" -+ elif platform.system() == "Darwin": -+ yield "DYLD_LIBRARY_PATH" -+ elif platform.system() == "Windows": -+ yield "PATH" -+ elif platform.system() == "AIX": -+ yield "LIBPATH" -+ -+for shlibpath_var in find_shlibpath_var(): -+ shlibpath = config.llvm_shlib_dir -+ llvm_config.with_environment(shlibpath_var, shlibpath, append_path = True) -+ break -+else: -+ lit_config.warning("unable to inject shared library path on '{}'" -+ .format(platform.system())) - - # Set up OCAMLPATH to include newly built OCaml libraries. - top_ocaml_lib = os.path.join(config.llvm_lib_dir, "ocaml") -@@ -318,7 +338,7 @@ def have_cxx_shared_library(): - - try: - readobj_cmd = subprocess.Popen( -- [readobj_exe, "--needed-libs", readobj_exe], stdout=subprocess.PIPE -+ [readobj_exe, "--needed-libs", readobj_exe], stdout=subprocess.PIPE, env=config.environment - ) - except OSError: - print("could not exec llvm-readobj") - diff --git a/pkgs/by-name/ll/llvm/18/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch b/pkgs/by-name/ll/llvm/18/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch deleted file mode 100644 index 1354ad2..0000000 --- a/pkgs/by-name/ll/llvm/18/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/tools/polly/test/lit.cfg b/tools/polly/test/lit.cfg -index 41e3a589c61e..09f3b17498b0 100644 ---- a/tools/polly/test/lit.cfg -+++ b/tools/polly/test/lit.cfg -@@ -36,9 +36,17 @@ base_paths = [config.llvm_tools_dir, config.environment['PATH']] - path = os.path.pathsep.join(base_paths + config.extra_paths) - config.environment['PATH'] = path - -+# (Copied from polly/test/Unit/lit.cfg) -+if platform.system() == 'Darwin': -+ shlibpath_var = 'DYLD_LIBRARY_PATH' -+elif platform.system() == 'Windows': -+ shlibpath_var = 'PATH' -+else: -+ shlibpath_var = 'LD_LIBRARY_PATH' -+ - path = os.path.pathsep.join((config.llvm_libs_dir, -- config.environment.get('LD_LIBRARY_PATH',''))) --config.environment['LD_LIBRARY_PATH'] = path -+ config.environment.get(shlibpath_var,''))) -+config.environment[shlibpath_var] = path - - llvm_config.use_default_substitutions() - diff --git a/pkgs/by-name/ll/llvm/18/openmp/fix-find-tool.patch b/pkgs/by-name/ll/llvm/18/openmp/fix-find-tool.patch deleted file mode 100644 index b7f5119..0000000 --- a/pkgs/by-name/ll/llvm/18/openmp/fix-find-tool.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/libomptarget/DeviceRTL/CMakeLists.txt b/libomptarget/DeviceRTL/CMakeLists.txt -index 630947abec7e..9f032dc7bd3f 100644 ---- a/libomptarget/DeviceRTL/CMakeLists.txt -+++ b/libomptarget/DeviceRTL/CMakeLists.txt -@@ -27,10 +27,10 @@ endif() - if (LLVM_DIR) - # Builds that use pre-installed LLVM have LLVM_DIR set. - # A standalone or LLVM_ENABLE_RUNTIMES=openmp build takes this route -- find_program(CLANG_TOOL clang PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) -+ find_program(CLANG_TOOL clang PATHS ${LLVM_TOOLS_BINARY_DIR}) - find_program(PACKAGER_TOOL clang-offload-packager PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) - find_program(LINK_TOOL llvm-link PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) -- find_program(OPT_TOOL opt PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) -+ find_program(OPT_TOOL opt PATHS ${LLVM_TOOLS_BINARY_DIR}) - if ((NOT CLANG_TOOL) OR (NOT LINK_TOOL) OR (NOT OPT_TOOL) OR (NOT PACKAGER_TOOL)) - libomptarget_say("Not building DeviceRTL. Missing clang: ${CLANG_TOOL}, llvm-link: ${LINK_TOOL}, opt: ${OPT_TOOL}, or clang-offload-packager: ${PACKAGER_TOOL}") - return() diff --git a/pkgs/by-name/ll/llvm/18/openmp/run-lit-directly.patch b/pkgs/by-name/ll/llvm/18/openmp/run-lit-directly.patch deleted file mode 100644 index e69de29..0000000 diff --git a/pkgs/by-name/ll/llvm/README.md b/pkgs/by-name/ll/llvm/README.md deleted file mode 100644 index af5530f..0000000 --- a/pkgs/by-name/ll/llvm/README.md +++ /dev/null @@ -1,79 +0,0 @@ -## How to upgrade llvm_git - -- Run `update-git.py`. - This will set the github revision and sha256 for `llvmPackages_git.llvm` to whatever the latest chromium build is using. - For a more recent, commit run `nix-prefetch-github` and change the rev and sha256 accordingly. - -- That was the easy part. - The hard part is updating the patch files. - - The general process is: - - 1. Try to build `llvmPackages_git.llvm` and associated packages such as - `clang` and `compiler-rt`. You can use the `-L` and `--keep-failed` flags to make - debugging patch errors easy, e.g., `nix build .#llvmPackages_git.clang -L --keep-failed` - - 2. The build will error out with something similar to this: - ```sh - ... - clang-unstable> patching sources - clang-unstable> applying patch /nix/store/nndv6gq6w608n197fndvv5my4a5zg2qi-purity.patch - clang-unstable> patching file lib/Driver/ToolChains/Gnu.cpp - clang-unstable> Hunk #1 FAILED at 487. - clang-unstable> 1 out of 1 hunk FAILED -- saving rejects to file lib/Driver/ToolChains/Gnu.cpp.rej - note: keeping build directory '/tmp/nix-build-clang-unstable-2022-25-07.drv-17' - error: builder for '/nix/store/zwi123kpkyz52fy7p6v23azixd807r8c-clang-unstable-2022-25-07.drv' failed with exit code 1; - last 8 log lines: - > unpacking sources - > unpacking source archive /nix/store/mrxadx11wv1ckjr2208qgxp472pmmg6g-clang-src-unstable-2022-25-07 - > source root is clang-src-unstable-2022-25-07/clang - > patching sources - > applying patch /nix/store/nndv6gq6w608n197fndvv5my4a5zg2qi-purity.patch - > patching file lib/Driver/ToolChains/Gnu.cpp - > Hunk #1 FAILED at 487. - > 1 out of 1 hunk FAILED -- saving rejects to file lib/Driver/ToolChains/Gnu.cpp.rej - For full logs, run 'nix log /nix/store/zwi123kpkyz52fy7p6v23azixd807r8c-clang-unstable-2022-25-07.drv'. - note: keeping build directory '/tmp/nix-build-compiler-rt-libc-unstable-2022-25-07.drv-20' - error: 1 dependencies of derivation '/nix/store/ndbbh3wrl0l39b22azf46f1n7zlqwmag-clang-wrapper-unstable-2022-25-07.drv' failed to build - ``` - - Notice the `Hunk #1 Failed at 487` line. - The lines above show us that the `purity.patch` failed on `lib/Driver/ToolChains/Gnu.cpp` when compiling `clang`. - - 3. The task now is to cross reference the hunks in the purity patch with - `lib/Driver/ToolCahins/Gnu.cpp.orig` to see why the patch failed. - The `.orig` file will be in the build directory referenced in the line `note: keeping build directory ...`; - this message results from the `--keep-failed` flag. - - 4. Now you should be able to open whichever patch failed, and the `foo.orig` file that it failed on. - Correct the patch by adapting it to the new code and be mindful of whitespace; - which can be an easily missed reason for failures. - For cases where the hunk is no longer needed you can simply remove it from the patch. - - This is fine for small corrections, but when more serious changes are needed its better to use git. - - 1. Clone the LLVM monorepo at https://github.com/llvm/llvm-project/ - - 2. Check out the revision we were using before. - - 3. Use `patch -p1 < path/to-path` in the project subdirectories to apply the patches and commit. - - 4. Use `git rebase HEAD^ --onto ` to rebase the patches onto the new revision we are trying to build, and fix all conflicts. - - 5. Use `git diff HEAD^: HEAD:` to get subdir diff to write back to Nixpkgs. - -## Information on our current patch sets - -### "GNU Install Dirs" patches - -Use CMake's [`GNUInstallDirs`](https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html) to support multiple outputs. - -Previously, LLVM Just hard-coded `bin`, `include`, and `lib${LLVM_TARGET_PREFIX}`. -We are making it use these variables. - -For the older LLVM versions, these patches live in https://github.com/Ericson2314/llvm-project branches `split-prefix`. -Instead of applying the patches to the worktree per the above instructions, one can checkout those directly and rebase those instead. - -For newer LLVM versions, enough has has been upstreamed, -(see https://reviews.llvm.org/differential/query/5UAfpj_9zHwY/ for my progress upstreaming), -that I have just assembled new gnu-install-dirs patches from the remaining unmerged patches instead of rebasing from the prior LLVM's gnu install dirs patch. diff --git a/pkgs/by-name/ll/llvm/common/bintools.nix b/pkgs/by-name/ll/llvm/common/bintools.nix deleted file mode 100644 index 85b570d..0000000 --- a/pkgs/by-name/ll/llvm/common/bintools.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ lib, runCommand, stdenv, llvm, lld, version, release_version }: - -let - 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 - - 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 - - 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 - - # 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/add-nostdlibinc-flag.patch b/pkgs/by-name/ll/llvm/common/clang/add-nostdlibinc-flag.patch deleted file mode 100644 index 80c2eb3..0000000 --- a/pkgs/by-name/ll/llvm/common/clang/add-nostdlibinc-flag.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp -index 3f29afd35971..223d2769cdfc 100644 ---- a/lib/Driver/Driver.cpp -+++ b/lib/Driver/Driver.cpp -@@ -491,6 +491,13 @@ DerivedArgList *Driver::TranslateInputArgs(const InputArgList &Args) const { - } - #endif - -+ { -+ Arg *A = DAL->MakeFlagArg(/*BaseArg=*/nullptr, -+ Opts.getOption(options::OPT_nostdlibinc)); -+ A->claim(); -+ DAL->append(A); -+ } -+ - return DAL; - } - diff --git a/pkgs/by-name/ll/llvm/common/clang/clang-11-15-LLVMgold-path.patch b/pkgs/by-name/ll/llvm/common/clang/clang-11-15-LLVMgold-path.patch deleted file mode 100644 index 8f89919..0000000 --- a/pkgs/by-name/ll/llvm/common/clang/clang-11-15-LLVMgold-path.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/lib/Driver/ToolChains/CommonArgs.cpp b/lib/Driver/ToolChains/CommonArgs.cpp -index 6b6e276b8ce7..7896542a1202 100644 ---- a/lib/Driver/ToolChains/CommonArgs.cpp -+++ b/lib/Driver/ToolChains/CommonArgs.cpp -@@ -409,7 +409,7 @@ void tools::addLTOOptions(const ToolChain &ToolChain, const ArgList &Args, - - SmallString<1024> Plugin; - llvm::sys::path::native( -- Twine(D.Dir) + "/../lib" CLANG_LIBDIR_SUFFIX "/LLVMgold" + Suffix, -+ Twine("@libllvmLibdir@" "/LLVMgold") + Suffix, - Plugin); - CmdArgs.push_back(Args.MakeArgString(Plugin)); - } diff --git a/pkgs/by-name/ll/llvm/common/clang/clang-6-10-LLVMgold-path.patch b/pkgs/by-name/ll/llvm/common/clang/clang-6-10-LLVMgold-path.patch deleted file mode 100644 index 9350431..0000000 --- a/pkgs/by-name/ll/llvm/common/clang/clang-6-10-LLVMgold-path.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/lib/Driver/ToolChains/CommonArgs.cpp b/lib/Driver/ToolChains/CommonArgs.cpp -index 37ec73468570..b73e75aa6e59 100644 ---- a/lib/Driver/ToolChains/CommonArgs.cpp -+++ b/lib/Driver/ToolChains/CommonArgs.cpp -@@ -370,8 +370,8 @@ void tools::AddGoldPlugin(const ToolChain &ToolChain, const ArgList &Args, - #endif - - SmallString<1024> Plugin; -- llvm::sys::path::native(Twine(ToolChain.getDriver().Dir) + -- "/../lib" CLANG_LIBDIR_SUFFIX "/LLVMgold" + -+ llvm::sys::path::native(Twine("@libllvmLibdir@" -+ "/LLVMgold") + - Suffix, - Plugin); - CmdArgs.push_back(Args.MakeArgString(Plugin)); diff --git a/pkgs/by-name/ll/llvm/common/clang/clang-at-least-16-LLVMgold-path.patch b/pkgs/by-name/ll/llvm/common/clang/clang-at-least-16-LLVMgold-path.patch deleted file mode 100644 index 74cdbac..0000000 --- a/pkgs/by-name/ll/llvm/common/clang/clang-at-least-16-LLVMgold-path.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/lib/Driver/ToolChains/CommonArgs.cpp b/lib/Driver/ToolChains/CommonArgs.cpp -index 34640b3c450d..93c4a4f4ec5c 100644 ---- a/lib/Driver/ToolChains/CommonArgs.cpp -+++ b/lib/Driver/ToolChains/CommonArgs.cpp -@@ -589,8 +589,7 @@ void tools::addLTOOptions(const ToolChain &ToolChain, const ArgList &Args, - #endif - - SmallString<1024> Plugin; -- llvm::sys::path::native(Twine(D.Dir) + -- "/../" CLANG_INSTALL_LIBDIR_BASENAME + -+ llvm::sys::path::native(Twine("@libllvmLibdir@") + - PluginName + Suffix, - Plugin); - CmdArgs.push_back(Args.MakeArgString(Twine(PluginPrefix) + Plugin)); diff --git a/pkgs/by-name/ll/llvm/common/clang/default.nix b/pkgs/by-name/ll/llvm/common/clang/default.nix deleted file mode 100644 index 2373795..0000000 --- a/pkgs/by-name/ll/llvm/common/clang/default.nix +++ /dev/null @@ -1,201 +0,0 @@ -{ 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; - - self = stdenv.mkDerivation (finalAttrs: 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) - ++ [ 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" - ]; - 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 - mv clang-* clang - sourceRoot=$PWD/clang - unpackFile ${clang-tools-extra_src} - mv clang-tools-extra-* $sourceRoot/tools/extra - substituteInPlace $sourceRoot/tools/extra/clangd/quality/CompletionModel.cmake \ - --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 diff --git a/pkgs/by-name/ll/llvm/common/common-let.nix b/pkgs/by-name/ll/llvm/common/common-let.nix deleted file mode 100644 index 31360f5..0000000 --- a/pkgs/by-name/ll/llvm/common/common-let.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ lib -, fetchFromGitHub ? null -, release_version ? null -, gitRelease ? null -, officialRelease ? null -, monorepoSrc' ? null -}: - -rec { - llvm_meta = { - license = lib.licenses.ncsa; - maintainers = lib.teams.llvm.members; - - # 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; - }; - - 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; - }; - - monorepoSrc = - if monorepoSrc' != null then - monorepoSrc' - else - let - sha256 = releaseInfo.original.sha256; - rev = - if gitRelease != null then - gitRelease.rev - else - "llvmorg-${releaseInfo.version}"; - in - fetchFromGitHub { - owner = "llvm"; - repo = "llvm-project"; - inherit rev sha256; - }; - -} diff --git a/pkgs/by-name/ll/llvm/common/compiler-rt/7-12-codesign.patch b/pkgs/by-name/ll/llvm/common/compiler-rt/7-12-codesign.patch deleted file mode 100644 index 3cc12b9..0000000 --- a/pkgs/by-name/ll/llvm/common/compiler-rt/7-12-codesign.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 3dec5f3475a26aeb4678627795c4b67c6b7b4785 Mon Sep 17 00:00:00 2001 -From: Will Dietz -Date: Tue, 19 Sep 2017 13:13:06 -0500 -Subject: [PATCH] remove codesign use on Apple, disable ios sim testing that - needs it - ---- - cmake/Modules/AddCompilerRT.cmake | 8 ------ - test/asan/CMakeLists.txt | 52 --------------------------------------- - test/tsan/CMakeLists.txt | 47 ----------------------------------- - 3 files changed, 107 deletions(-) - -diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake -index bc5fb9ff7..b64eb4246 100644 ---- a/cmake/Modules/AddCompilerRT.cmake -+++ b/cmake/Modules/AddCompilerRT.cmake -@@ -210,14 +210,6 @@ function(add_compiler_rt_runtime name type) - set_target_properties(${libname} PROPERTIES IMPORT_PREFIX "") - set_target_properties(${libname} PROPERTIES IMPORT_SUFFIX ".lib") - endif() -- if(APPLE) -- # Ad-hoc sign the dylibs -- add_custom_command(TARGET ${libname} -- POST_BUILD -- COMMAND codesign --sign - $ -- WORKING_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR} -- ) -- endif() - endif() - install(TARGETS ${libname} - ARCHIVE DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR} -2.14.1 - diff --git a/pkgs/by-name/ll/llvm/common/compiler-rt/armv6-mcr-dmb.patch b/pkgs/by-name/ll/llvm/common/compiler-rt/armv6-mcr-dmb.patch deleted file mode 100644 index acdcc9e..0000000 --- a/pkgs/by-name/ll/llvm/common/compiler-rt/armv6-mcr-dmb.patch +++ /dev/null @@ -1,75 +0,0 @@ -From a11d1cc41c725ec6dee58f75e4a852a658dd7543 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 10 Mar 2022 19:30:00 -0800 -Subject: [PATCH] [builtins] Use mcr for dmb instruction on armv6 - -At present compiler-rt cross compiles for armv6 ( -march=armv6 ) but includes -dmb instructions which are only available in armv7+ this causes SIGILL on -clang+compiler-rt compiled components on rpi0w platforms. - -Reviewed By: MaskRay - -Differential Revision: https://reviews.llvm.org/D99282 ---- - compiler-rt/lib/builtins/arm/sync-ops.h | 8 ++++---- - compiler-rt/lib/builtins/assembly.h | 8 ++++++++ - 2 files changed, 12 insertions(+), 4 deletions(-) - -diff --git a/lib/builtins/arm/sync-ops.h b/lib/builtins/arm/sync-ops.h -index c9623249e5d20..7a26170741ad2 100644 ---- a/lib/builtins/arm/sync-ops.h -+++ b/lib/builtins/arm/sync-ops.h -@@ -19,14 +19,14 @@ - .thumb; \ - .syntax unified; \ - DEFINE_COMPILERRT_THUMB_FUNCTION(__sync_fetch_and_##op) \ -- dmb; \ -+ DMB; \ - mov r12, r0; \ - LOCAL_LABEL(tryatomic_##op) : ldrex r0, [r12]; \ - op(r2, r0, r1); \ - strex r3, r2, [r12]; \ - cmp r3, #0; \ - bne LOCAL_LABEL(tryatomic_##op); \ -- dmb; \ -+ DMB; \ - bx lr - - #define SYNC_OP_8(op) \ -@@ -35,14 +35,14 @@ - .syntax unified; \ - DEFINE_COMPILERRT_THUMB_FUNCTION(__sync_fetch_and_##op) \ - push {r4, r5, r6, lr}; \ -- dmb; \ -+ DMB; \ - mov r12, r0; \ - LOCAL_LABEL(tryatomic_##op) : ldrexd r0, r1, [r12]; \ - op(r4, r5, r0, r1, r2, r3); \ - strexd r6, r4, r5, [r12]; \ - cmp r6, #0; \ - bne LOCAL_LABEL(tryatomic_##op); \ -- dmb; \ -+ DMB; \ - pop { r4, r5, r6, pc } - - #define MINMAX_4(rD, rN, rM, cmp_kind) \ -diff --git a/lib/builtins/assembly.h b/lib/builtins/assembly.h -index 69a3d8620f924..06aa18162e3b4 100644 ---- a/lib/builtins/assembly.h -+++ b/lib/builtins/assembly.h -@@ -189,6 +189,14 @@ - JMP(ip) - #endif - -+#if __ARM_ARCH >= 7 -+#define DMB dmb -+#elif __ARM_ARCH >= 6 -+#define DMB mcr p15, #0, r0, c7, c10, #5 -+#else -+#error only supported on ARMv6+ -+#endif -+ - #if defined(USE_THUMB_2) - #define WIDE(op) op.w - #else - diff --git a/pkgs/by-name/ll/llvm/common/compiler-rt/armv6-no-ldrexd-strexd.patch b/pkgs/by-name/ll/llvm/common/compiler-rt/armv6-no-ldrexd-strexd.patch deleted file mode 100644 index 2537ae1..0000000 --- a/pkgs/by-name/ll/llvm/common/compiler-rt/armv6-no-ldrexd-strexd.patch +++ /dev/null @@ -1,162 +0,0 @@ -From 4fe3f21bf8b20c766877d2251d61118d0ff36688 Mon Sep 17 00:00:00 2001 -From: Ben Wolsieffer -Date: Wed, 7 Dec 2022 14:56:51 -0500 -Subject: [PATCH] [compiler-rt][builtins] Do not use ldrexd or strexd on ARMv6 - -The ldrexd and strexd instructions are not available on base ARMv6, and were -only added in ARMv6K (see [1]). This patch solves this problem once and for all -using the __ARM_FEATURE_LDREX macro (see [2]) defined in the ARM C Language -Extensions (ACLE). Although this macro is technically deprecated in the ACLE, -it allows compiler-rt to reliably detect whether ldrexd and strexd are supported -without complicated conditionals to detect different ARM architecture variants. - -[1] https://developer.arm.com/documentation/dht0008/a/ch01s02s01 -[2] https://arm-software.github.io/acle/main/acle.html#ldrexstrex - -Differential Revision: https://reviews.llvm.org/D139585 ---- - compiler-rt/lib/builtins/arm/sync_fetch_and_add_8.S | 2 +- - compiler-rt/lib/builtins/arm/sync_fetch_and_and_8.S | 2 +- - compiler-rt/lib/builtins/arm/sync_fetch_and_max_8.S | 2 +- - compiler-rt/lib/builtins/arm/sync_fetch_and_min_8.S | 2 +- - compiler-rt/lib/builtins/arm/sync_fetch_and_nand_8.S | 2 +- - compiler-rt/lib/builtins/arm/sync_fetch_and_or_8.S | 2 +- - compiler-rt/lib/builtins/arm/sync_fetch_and_sub_8.S | 2 +- - compiler-rt/lib/builtins/arm/sync_fetch_and_umax_8.S | 2 +- - compiler-rt/lib/builtins/arm/sync_fetch_and_umin_8.S | 2 +- - compiler-rt/lib/builtins/arm/sync_fetch_and_xor_8.S | 2 +- - 10 files changed, 10 insertions(+), 10 deletions(-) - -diff --git a/lib/builtins/arm/sync_fetch_and_add_8.S b/lib/builtins/arm/sync_fetch_and_add_8.S -index 18bdd875b8b7..bee6f7ba0f34 100644 ---- a/lib/builtins/arm/sync_fetch_and_add_8.S -+++ b/lib/builtins/arm/sync_fetch_and_add_8.S -@@ -13,7 +13,7 @@ - - #include "sync-ops.h" - --#if __ARM_ARCH_PROFILE != 'M' -+#if __ARM_FEATURE_LDREX & 8 - #define add_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) \ - adds rD_LO, rN_LO, rM_LO ; \ - adc rD_HI, rN_HI, rM_HI -diff --git a/lib/builtins/arm/sync_fetch_and_and_8.S b/lib/builtins/arm/sync_fetch_and_and_8.S -index 3716eff809d5..b4e77a54edf6 100644 ---- a/lib/builtins/arm/sync_fetch_and_and_8.S -+++ b/lib/builtins/arm/sync_fetch_and_and_8.S -@@ -13,7 +13,7 @@ - - #include "sync-ops.h" - --#if __ARM_ARCH_PROFILE != 'M' -+#if __ARM_FEATURE_LDREX & 8 - #define and_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) \ - and rD_LO, rN_LO, rM_LO ; \ - and rD_HI, rN_HI, rM_HI -diff --git a/lib/builtins/arm/sync_fetch_and_max_8.S b/lib/builtins/arm/sync_fetch_and_max_8.S -index 06115ab55246..1813274cc649 100644 ---- a/lib/builtins/arm/sync_fetch_and_max_8.S -+++ b/lib/builtins/arm/sync_fetch_and_max_8.S -@@ -13,7 +13,7 @@ - - #include "sync-ops.h" - --#if __ARM_ARCH_PROFILE != 'M' -+#if __ARM_FEATURE_LDREX & 8 - #define max_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) MINMAX_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI, gt) - - SYNC_OP_8(max_8) -diff --git a/lib/builtins/arm/sync_fetch_and_min_8.S b/lib/builtins/arm/sync_fetch_and_min_8.S -index 4f3e299d95cc..fa8f3477757b 100644 ---- a/lib/builtins/arm/sync_fetch_and_min_8.S -+++ b/lib/builtins/arm/sync_fetch_and_min_8.S -@@ -13,7 +13,7 @@ - - #include "sync-ops.h" - --#if __ARM_ARCH_PROFILE != 'M' -+#if __ARM_FEATURE_LDREX & 8 - #define min_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) MINMAX_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI, lt) - - SYNC_OP_8(min_8) -diff --git a/lib/builtins/arm/sync_fetch_and_nand_8.S b/lib/builtins/arm/sync_fetch_and_nand_8.S -index 425c94474af7..fb27219ee200 100644 ---- a/lib/builtins/arm/sync_fetch_and_nand_8.S -+++ b/lib/builtins/arm/sync_fetch_and_nand_8.S -@@ -13,7 +13,7 @@ - - #include "sync-ops.h" - --#if __ARM_ARCH_PROFILE != 'M' -+#if __ARM_FEATURE_LDREX & 8 - #define nand_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) \ - bic rD_LO, rN_LO, rM_LO ; \ - bic rD_HI, rN_HI, rM_HI -diff --git a/lib/builtins/arm/sync_fetch_and_or_8.S b/lib/builtins/arm/sync_fetch_and_or_8.S -index 4f18dcf84df9..3b077c8737b1 100644 ---- a/lib/builtins/arm/sync_fetch_and_or_8.S -+++ b/lib/builtins/arm/sync_fetch_and_or_8.S -@@ -13,7 +13,7 @@ - - #include "sync-ops.h" - --#if __ARM_ARCH_PROFILE != 'M' -+#if __ARM_FEATURE_LDREX & 8 - #define or_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) \ - orr rD_LO, rN_LO, rM_LO ; \ - orr rD_HI, rN_HI, rM_HI -diff --git a/lib/builtins/arm/sync_fetch_and_sub_8.S b/lib/builtins/arm/sync_fetch_and_sub_8.S -index 25a4a1076555..c171607eabd8 100644 ---- a/lib/builtins/arm/sync_fetch_and_sub_8.S -+++ b/lib/builtins/arm/sync_fetch_and_sub_8.S -@@ -13,7 +13,7 @@ - - #include "sync-ops.h" - --#if __ARM_ARCH_PROFILE != 'M' -+#if __ARM_FEATURE_LDREX & 8 - #define sub_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) \ - subs rD_LO, rN_LO, rM_LO ; \ - sbc rD_HI, rN_HI, rM_HI -diff --git a/lib/builtins/arm/sync_fetch_and_umax_8.S b/lib/builtins/arm/sync_fetch_and_umax_8.S -index aa5213ff1def..d1224f758049 100644 ---- a/lib/builtins/arm/sync_fetch_and_umax_8.S -+++ b/lib/builtins/arm/sync_fetch_and_umax_8.S -@@ -13,7 +13,7 @@ - - #include "sync-ops.h" - --#if __ARM_ARCH_PROFILE != 'M' -+#if __ARM_FEATURE_LDREX & 8 - #define umax_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) MINMAX_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI, hi) - - SYNC_OP_8(umax_8) -diff --git a/lib/builtins/arm/sync_fetch_and_umin_8.S b/lib/builtins/arm/sync_fetch_and_umin_8.S -index 8b40541ab47d..595444e6d053 100644 ---- a/lib/builtins/arm/sync_fetch_and_umin_8.S -+++ b/lib/builtins/arm/sync_fetch_and_umin_8.S -@@ -13,7 +13,7 @@ - - #include "sync-ops.h" - --#if __ARM_ARCH_PROFILE != 'M' -+#if __ARM_FEATURE_LDREX & 8 - #define umin_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) MINMAX_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI, lo) - - SYNC_OP_8(umin_8) -diff --git a/lib/builtins/arm/sync_fetch_and_xor_8.S b/lib/builtins/arm/sync_fetch_and_xor_8.S -index 7436eb1d4cae..9fc3d85cef75 100644 ---- a/lib/builtins/arm/sync_fetch_and_xor_8.S -+++ b/lib/builtins/arm/sync_fetch_and_xor_8.S -@@ -13,7 +13,7 @@ - - #include "sync-ops.h" - --#if __ARM_ARCH_PROFILE != 'M' -+#if __ARM_FEATURE_LDREX & 8 - #define xor_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) \ - eor rD_LO, rN_LO, rM_LO ; \ - eor rD_HI, rN_HI, rM_HI --- -2.38.1 - diff --git a/pkgs/by-name/ll/llvm/common/compiler-rt/armv6-scudo-libatomic.patch b/pkgs/by-name/ll/llvm/common/compiler-rt/armv6-scudo-libatomic.patch deleted file mode 100644 index 13b67eb..0000000 --- a/pkgs/by-name/ll/llvm/common/compiler-rt/armv6-scudo-libatomic.patch +++ /dev/null @@ -1,65 +0,0 @@ -From a56bb19a9dc303a50ef12d83cd24c2395bf81076 Mon Sep 17 00:00:00 2001 -From: Ben Wolsieffer -Date: Wed, 7 Dec 2022 21:25:46 -0500 -Subject: [PATCH] [scudo][standalone] Use CheckAtomic to decide to link to - libatomic - -Standalone scudo uses the atomic operation builtin functions, which require -linking to libatomic on some platforms. Currently, this is done in an ad-hoc -manner. MIPS platforms always link to libatomic, and the tests are always linked -to it as well. libatomic is required on base ARMv6 (but not ARMv6K), but it is -currently not linked, causing the build to fail. - -This patch replaces this ad-hoc logic with the CheckAtomic CMake module already -used in other parts of LLVM. The CheckAtomic module checks whether std::atomic -requires libatomic, which is not strictly the same as checking the atomic -builtins, but should have the same results as far as I know. If this is -problematic, a custom version of CheckAtomic could be used to specifically test -the builtins. ---- - compiler-rt/lib/scudo/standalone/CMakeLists.txt | 7 +++++++ - compiler-rt/lib/scudo/standalone/tests/CMakeLists.txt | 4 +--- - 2 files changed, 8 insertions(+), 3 deletions(-) - -diff --git a/lib/scudo/standalone/CMakeLists.txt b/lib/scudo/standalone/CMakeLists.txt -index ae5c354768c8..eb27374ca520 100644 ---- a/lib/scudo/standalone/CMakeLists.txt -+++ b/lib/scudo/standalone/CMakeLists.txt -@@ -1,5 +1,8 @@ - add_compiler_rt_component(scudo_standalone) - -+include(DetermineGCCCompatible) -+include(CheckAtomic) -+ - include_directories(../.. include) - - set(SCUDO_CFLAGS) -@@ -34,6 +37,10 @@ list(APPEND SCUDO_LINK_FLAGS -Wl,-z,defs,-z,now,-z,relro) - - list(APPEND SCUDO_LINK_FLAGS -ffunction-sections -fdata-sections -Wl,--gc-sections) - -+if(HAVE_CXX_ATOMICS_WITH_LIB OR HAVE_CXX_ATOMICS64_WITH_LIB) -+ list(APPEND SCUDO_LINK_FLAGS -latomic) -+endif() -+ - # We don't use the C++ standard library, so avoid including it by mistake. - append_list_if(COMPILER_RT_HAS_NOSTDLIBXX_FLAG -nostdlib++ SCUDO_LINK_FLAGS) - -diff --git a/lib/scudo/standalone/tests/CMakeLists.txt b/lib/scudo/standalone/tests/CMakeLists.txt -index 6d0936cbb5c1..70a5a7e959c1 100644 ---- a/lib/scudo/standalone/tests/CMakeLists.txt -+++ b/lib/scudo/standalone/tests/CMakeLists.txt -@@ -38,9 +38,7 @@ set(LINK_FLAGS - ${SANITIZER_TEST_CXX_LIBRARIES} - ) - list(APPEND LINK_FLAGS -pthread) --# Linking against libatomic is required with some compilers --check_library_exists(atomic __atomic_load_8 "" COMPILER_RT_HAS_LIBATOMIC) --if (COMPILER_RT_HAS_LIBATOMIC) -+if(HAVE_CXX_ATOMICS_WITH_LIB OR HAVE_CXX_ATOMICS64_WITH_LIB) - list(APPEND LINK_FLAGS -latomic) - endif() - --- -2.38.1 - diff --git a/pkgs/by-name/ll/llvm/common/compiler-rt/armv6-scudo-no-yield.patch b/pkgs/by-name/ll/llvm/common/compiler-rt/armv6-scudo-no-yield.patch deleted file mode 100644 index 2fd48ed..0000000 --- a/pkgs/by-name/ll/llvm/common/compiler-rt/armv6-scudo-no-yield.patch +++ /dev/null @@ -1,34 +0,0 @@ -From ff0b373b959165477f45d9f5f9a8da471ae111ab Mon Sep 17 00:00:00 2001 -From: Ben Wolsieffer -Date: Wed, 7 Dec 2022 18:03:56 -0500 -Subject: [PATCH] [scudo][standalone] Only use yield on ARMv6K and newer - -The yield instruction is only available in ARMv6K and newer. It behaves as a -nop on single threaded platforms anyway, so use nop instead on unsupported -architectures. - -Differential Revision: https://reviews.llvm.org/D139600 ---- - compiler-rt/lib/scudo/standalone/common.h | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/lib/scudo/standalone/common.h b/lib/scudo/standalone/common.h -index bc3dfec6dbba..862cda1d4bc4 100644 ---- a/lib/scudo/standalone/common.h -+++ b/lib/scudo/standalone/common.h -@@ -109,7 +109,12 @@ inline void yieldProcessor(u8 Count) { - #elif defined(__aarch64__) || defined(__arm__) - __asm__ __volatile__("" ::: "memory"); - for (u8 I = 0; I < Count; I++) -+#if __ARM_ARCH >= 6 && !defined(__ARM_ARCH_6__) -+ // yield is supported on ARMv6K and newer - __asm__ __volatile__("yield"); -+#else -+ __asm__ __volatile__("nop"); -+#endif - #endif - __asm__ __volatile__("" ::: "memory"); - } --- -2.38.1 - diff --git a/pkgs/by-name/ll/llvm/common/compiler-rt/armv6-sync-ops-no-thumb.patch b/pkgs/by-name/ll/llvm/common/compiler-rt/armv6-sync-ops-no-thumb.patch deleted file mode 100644 index 098a155..0000000 --- a/pkgs/by-name/ll/llvm/common/compiler-rt/armv6-sync-ops-no-thumb.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 5017de8ba4b1fe985169cf54590e858a9019a91f Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 11 Mar 2022 16:25:49 -0800 -Subject: [PATCH] [builtins] Do not force thumb mode directive in - arm/sync-ops.h - -.thumb_func was not switching mode until [1] -so it did not show up but now that .thumb_func (without argument) is -switching mode, its causing build failures on armv6 ( rpi0 ) even when -build is explicitly asking for this file to be built with -marm (ARM -mode), therefore use DEFINE_COMPILERRT_FUNCTION macro to add function -header which considers arch and mode from compiler cmdline to decide if -the function is built using thumb mode or arm mode. - -[1] https://reviews.llvm.org/D101975 - -Note that it also needs https://reviews.llvm.org/D99282 - -Reviewed By: peter.smith, MaskRay - -Differential Revision: https://reviews.llvm.org/D104183 ---- - compiler-rt/lib/builtins/arm/sync-ops.h | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/lib/builtins/arm/sync-ops.h b/lib/builtins/arm/sync-ops.h -index 7a26170741ad2..d914f9d3a1093 100644 ---- a/lib/builtins/arm/sync-ops.h -+++ b/lib/builtins/arm/sync-ops.h -@@ -16,9 +16,8 @@ - - #define SYNC_OP_4(op) \ - .p2align 2; \ -- .thumb; \ - .syntax unified; \ -- DEFINE_COMPILERRT_THUMB_FUNCTION(__sync_fetch_and_##op) \ -+ DEFINE_COMPILERRT_FUNCTION(__sync_fetch_and_##op) \ - DMB; \ - mov r12, r0; \ - LOCAL_LABEL(tryatomic_##op) : ldrex r0, [r12]; \ -@@ -31,9 +30,8 @@ - - #define SYNC_OP_8(op) \ - .p2align 2; \ -- .thumb; \ - .syntax unified; \ -- DEFINE_COMPILERRT_THUMB_FUNCTION(__sync_fetch_and_##op) \ -+ DEFINE_COMPILERRT_FUNCTION(__sync_fetch_and_##op) \ - push {r4, r5, r6, lr}; \ - DMB; \ - mov r12, r0; \ - diff --git a/pkgs/by-name/ll/llvm/common/compiler-rt/armv7l-15.patch b/pkgs/by-name/ll/llvm/common/compiler-rt/armv7l-15.patch deleted file mode 100644 index ca1c233..0000000 --- a/pkgs/by-name/ll/llvm/common/compiler-rt/armv7l-15.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff -ur a/cmake/builtin-config-ix.cmake b/cmake/builtin-config-ix.cmake ---- a/cmake/builtin-config-ix.cmake @llvm 15.0.6 -+++ b/cmake/builtin-config-ix.cmake -@@ -46,7 +46,7 @@ - - set(ARM64 aarch64) --set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv8m.main armv8.1m.main) -+set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv7l armv8m.main armv8.1m.main) - set(AVR avr) - set(HEXAGON hexagon) - set(X86 i386) - set(X86_64 x86_64) -diff -ur a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt ---- a/lib/builtins/CMakeLists.txt @llvm 15.0.6 -+++ b/lib/builtins/CMakeLists.txt -@@ -565,6 +565,7 @@ - set(armv7_SOURCES ${arm_SOURCES}) - set(armv7s_SOURCES ${arm_SOURCES}) - set(armv7k_SOURCES ${arm_SOURCES}) -+set(armv7l_SOURCES ${arm_SOURCES}) - set(arm64_SOURCES ${aarch64_SOURCES}) - - # macho_embedded archs -@@ -734,7 +735,7 @@ - foreach (arch ${BUILTIN_SUPPORTED_ARCH}) - if (CAN_TARGET_${arch}) - # For ARM archs, exclude any VFP builtins if VFP is not supported -- if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em|armv8m.main|armv8.1m.main)$") -+ if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7l|armv7m|armv7em|armv8m.main|armv8.1m.main)$") - string(REPLACE ";" " " _TARGET_${arch}_CFLAGS "${TARGET_${arch}_CFLAGS}") - check_compile_definition(__VFP_FP__ "${CMAKE_C_FLAGS} ${_TARGET_${arch}_CFLAGS}" COMPILER_RT_HAS_${arch}_VFP) - if(NOT COMPILER_RT_HAS_${arch}_VFP) diff --git a/pkgs/by-name/ll/llvm/common/compiler-rt/darwin-plistbuddy-workaround.patch b/pkgs/by-name/ll/llvm/common/compiler-rt/darwin-plistbuddy-workaround.patch deleted file mode 100644 index dae8b3a..0000000 --- a/pkgs/by-name/ll/llvm/common/compiler-rt/darwin-plistbuddy-workaround.patch +++ /dev/null @@ -1,25 +0,0 @@ -CMake tries to read a list field from SDKSettings.plist, but the output of -xcbuild PlistBuddy is incompatible with Apple's. (Plus we don't want it in our -dependencies.) - -Simply assume ARM64 is supported by the SDK. We already limit the actual archs -we build for by setting DARWIN_osx_BUILTIN_ARCHS explicitely. - ---- a/cmake/builtin-config-ix.cmake -+++ b/cmake/builtin-config-ix.cmake -@@ -97,14 +97,7 @@ if(APPLE) - set(DARWIN_osx_BUILTIN_MIN_VER 10.5) - set(DARWIN_osx_BUILTIN_MIN_VER_FLAG - -mmacosx-version-min=${DARWIN_osx_BUILTIN_MIN_VER}) -- set(DARWIN_osx_BUILTIN_ALL_POSSIBLE_ARCHS ${X86} ${X86_64}) -- # Add support for arm64 macOS if available in SDK. -- foreach(arch ${ARM64}) -- sdk_has_arch_support(${DARWIN_osx_SYSROOT} macosx ${arch} MACOS_ARM_SUPPORT) -- if (MACOS_ARM_SUPPORT) -- list(APPEND DARWIN_osx_BUILTIN_ALL_POSSIBLE_ARCHS ${arch}) -- endif() -- endforeach(arch) -+ set(DARWIN_osx_BUILTIN_ALL_POSSIBLE_ARCHS ${X86} ${X86_64} ${ARM64}) - - if(COMPILER_RT_ENABLE_IOS) - list(APPEND DARWIN_EMBEDDED_PLATFORMS ios) diff --git a/pkgs/by-name/ll/llvm/common/compiler-rt/default.nix b/pkgs/by-name/ll/llvm/common/compiler-rt/default.nix deleted file mode 100644 index 4f44d63..0000000 --- a/pkgs/by-name/ll/llvm/common/compiler-rt/default.nix +++ /dev/null @@ -1,173 +0,0 @@ -{ 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 - - 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"; - 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; - - preConfigure = lib.optionalString (useLLVM && !haveLibc) '' - cmakeFlagsArray+=(-DCMAKE_C_FLAGS="-nodefaultlibs -ffreestanding") - ''; -in - -stdenv.mkDerivation ({ - inherit pname version patches; - - 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; - - 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" - ]; - - 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 " "" - ''); - - # 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 {})) diff --git a/pkgs/by-name/ll/llvm/common/compiler-rt/glibc.patch b/pkgs/by-name/ll/llvm/common/compiler-rt/glibc.patch deleted file mode 100644 index 2d21179..0000000 --- a/pkgs/by-name/ll/llvm/common/compiler-rt/glibc.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff --git a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc -index 54da635..c5dc1cd 100644 ---- a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc -+++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc -@@ -1158,8 +1158,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid); - CHECK_SIZE_AND_OFFSET(ipc_perm, gid); - CHECK_SIZE_AND_OFFSET(ipc_perm, cuid); - CHECK_SIZE_AND_OFFSET(ipc_perm, cgid); --#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21) --/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */ -+#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31) -+/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit -+ on many architectures. */ - CHECK_SIZE_AND_OFFSET(ipc_perm, mode); - #endif - -diff --git a/lib/sanitizer_common/sanitizer_platform_limits_posix.h b/lib/sanitizer_common/sanitizer_platform_limits_posix.h -index f89a113..f6f986f 100644 ---- a/lib/sanitizer_common/sanitizer_platform_limits_posix.h -+++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.h -@@ -213,26 +213,13 @@ namespace __sanitizer { - u64 __unused1; - u64 __unused2; - #elif defined(__sparc__) --#if defined(__arch64__) - unsigned mode; -- unsigned short __pad1; --#else -- unsigned short __pad1; -- unsigned short mode; - unsigned short __pad2; --#endif - unsigned short __seq; - unsigned long long __unused1; - unsigned long long __unused2; --#elif defined(__mips__) || defined(__aarch64__) || defined(__s390x__) -- unsigned int mode; -- unsigned short __seq; -- unsigned short __pad1; -- unsigned long __unused1; -- unsigned long __unused2; - #else -- unsigned short mode; -- unsigned short __pad1; -+ unsigned int mode; - unsigned short __seq; - unsigned short __pad2; - #if defined(__x86_64__) && !defined(_LP64) diff --git a/pkgs/by-name/ll/llvm/common/compiler-rt/libsanitizer-no-cyclades-11.patch b/pkgs/by-name/ll/llvm/common/compiler-rt/libsanitizer-no-cyclades-11.patch deleted file mode 100644 index 890230c..0000000 --- a/pkgs/by-name/ll/llvm/common/compiler-rt/libsanitizer-no-cyclades-11.patch +++ /dev/null @@ -1,80 +0,0 @@ -https://github.com/llvm/llvm-project/commit/68d5235cb58f988c71b403334cd9482d663841ab.patch -https://reviews.llvm.org/D102059 ---- a/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc -+++ b/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc -@@ -370,15 +370,6 @@ static void ioctl_table_fill() { - - #if SANITIZER_GLIBC - // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE -- _(CYGETDEFTHRESH, WRITE, sizeof(int)); -- _(CYGETDEFTIMEOUT, WRITE, sizeof(int)); -- _(CYGETMON, WRITE, struct_cyclades_monitor_sz); -- _(CYGETTHRESH, WRITE, sizeof(int)); -- _(CYGETTIMEOUT, WRITE, sizeof(int)); -- _(CYSETDEFTHRESH, NONE, 0); -- _(CYSETDEFTIMEOUT, NONE, 0); -- _(CYSETTHRESH, NONE, 0); -- _(CYSETTIMEOUT, NONE, 0); - _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz); - _(EQL_ENSLAVE, WRITE, struct_ifreq_sz); - _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz); ---- a/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp -+++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp -@@ -143,7 +143,6 @@ typedef struct user_fpregs elf_fpregset_t; - # include - #endif - #include --#include - #include - #include - #include -@@ -460,7 +459,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); - - #if SANITIZER_GLIBC - unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct); -- unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor); - #if EV_VERSION > (0x010000) - unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry); - #else -@@ -824,15 +822,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); - #endif // SANITIZER_LINUX - - #if SANITIZER_LINUX && !SANITIZER_ANDROID -- unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH; -- unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT; -- unsigned IOCTL_CYGETMON = CYGETMON; -- unsigned IOCTL_CYGETTHRESH = CYGETTHRESH; -- unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT; -- unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH; -- unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT; -- unsigned IOCTL_CYSETTHRESH = CYSETTHRESH; -- unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT; - unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE; - unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE; - unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG; ---- a/lib/sanitizer_common/sanitizer_platform_limits_posix.h -+++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.h -@@ -983,7 +983,6 @@ extern unsigned struct_vt_mode_sz; - - #if SANITIZER_LINUX && !SANITIZER_ANDROID - extern unsigned struct_ax25_parms_struct_sz; --extern unsigned struct_cyclades_monitor_sz; - extern unsigned struct_input_keymap_entry_sz; - extern unsigned struct_ipx_config_data_sz; - extern unsigned struct_kbdiacrs_sz; -@@ -1328,15 +1327,6 @@ extern unsigned IOCTL_VT_WAITACTIVE; - #endif // SANITIZER_LINUX - - #if SANITIZER_LINUX && !SANITIZER_ANDROID --extern unsigned IOCTL_CYGETDEFTHRESH; --extern unsigned IOCTL_CYGETDEFTIMEOUT; --extern unsigned IOCTL_CYGETMON; --extern unsigned IOCTL_CYGETTHRESH; --extern unsigned IOCTL_CYGETTIMEOUT; --extern unsigned IOCTL_CYSETDEFTHRESH; --extern unsigned IOCTL_CYSETDEFTIMEOUT; --extern unsigned IOCTL_CYSETTHRESH; --extern unsigned IOCTL_CYSETTIMEOUT; - extern unsigned IOCTL_EQL_EMANCIPATE; - extern unsigned IOCTL_EQL_ENSLAVE; - extern unsigned IOCTL_EQL_GETMASTRCFG; diff --git a/pkgs/by-name/ll/llvm/common/compiler-rt/libsanitizer-no-cyclades-9.patch b/pkgs/by-name/ll/llvm/common/compiler-rt/libsanitizer-no-cyclades-9.patch deleted file mode 100644 index 7ef02a1..0000000 --- a/pkgs/by-name/ll/llvm/common/compiler-rt/libsanitizer-no-cyclades-9.patch +++ /dev/null @@ -1,80 +0,0 @@ -https://github.com/llvm/llvm-project/commit/68d5235cb58f988c71b403334cd9482d663841ab.patch -https://reviews.llvm.org/D102059 ---- a/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc -+++ b/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc -@@ -370,15 +370,6 @@ static void ioctl_table_fill() { - - #if SANITIZER_GLIBC - // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE -- _(CYGETDEFTHRESH, WRITE, sizeof(int)); -- _(CYGETDEFTIMEOUT, WRITE, sizeof(int)); -- _(CYGETMON, WRITE, struct_cyclades_monitor_sz); -- _(CYGETTHRESH, WRITE, sizeof(int)); -- _(CYGETTIMEOUT, WRITE, sizeof(int)); -- _(CYSETDEFTHRESH, NONE, 0); -- _(CYSETDEFTIMEOUT, NONE, 0); -- _(CYSETTHRESH, NONE, 0); -- _(CYSETTIMEOUT, NONE, 0); - _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz); - _(EQL_ENSLAVE, WRITE, struct_ifreq_sz); - _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz); ---- a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc -+++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc -@@ -143,7 +143,6 @@ typedef struct user_fpregs elf_fpregset_t; - # include - #endif - #include --#include - #include - #include - #include -@@ -460,7 +459,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); - - #if SANITIZER_GLIBC - unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct); -- unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor); - #if EV_VERSION > (0x010000) - unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry); - #else -@@ -824,15 +822,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); - #endif // SANITIZER_LINUX - - #if SANITIZER_LINUX && !SANITIZER_ANDROID -- unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH; -- unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT; -- unsigned IOCTL_CYGETMON = CYGETMON; -- unsigned IOCTL_CYGETTHRESH = CYGETTHRESH; -- unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT; -- unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH; -- unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT; -- unsigned IOCTL_CYSETTHRESH = CYSETTHRESH; -- unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT; - unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE; - unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE; - unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG; ---- a/lib/sanitizer_common/sanitizer_platform_limits_posix.h -+++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.h -@@ -983,7 +983,6 @@ extern unsigned struct_vt_mode_sz; - - #if SANITIZER_LINUX && !SANITIZER_ANDROID - extern unsigned struct_ax25_parms_struct_sz; -- extern unsigned struct_cyclades_monitor_sz; - extern unsigned struct_input_keymap_entry_sz; - extern unsigned struct_ipx_config_data_sz; - extern unsigned struct_kbdiacrs_sz; -@@ -1328,15 +1327,6 @@ extern unsigned IOCTL_VT_WAITACTIVE; - #endif // SANITIZER_LINUX - - #if SANITIZER_LINUX && !SANITIZER_ANDROID -- extern unsigned IOCTL_CYGETDEFTHRESH; -- extern unsigned IOCTL_CYGETDEFTIMEOUT; -- extern unsigned IOCTL_CYGETMON; -- extern unsigned IOCTL_CYGETTHRESH; -- extern unsigned IOCTL_CYGETTIMEOUT; -- extern unsigned IOCTL_CYSETDEFTHRESH; -- extern unsigned IOCTL_CYSETDEFTIMEOUT; -- extern unsigned IOCTL_CYSETTHRESH; -- extern unsigned IOCTL_CYSETTIMEOUT; - extern unsigned IOCTL_EQL_EMANCIPATE; - extern unsigned IOCTL_EQL_ENSLAVE; - extern unsigned IOCTL_EQL_GETMASTRCFG; diff --git a/pkgs/by-name/ll/llvm/common/libclc.nix b/pkgs/by-name/ll/llvm/common/libclc.nix deleted file mode 100644 index 4c2081e..0000000 --- a/pkgs/by-name/ll/llvm/common/libclc.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ lib, stdenv, version, runCommand, monorepoSrc, llvm, buildPackages, buildLlvmTools, ninja, cmake, python3 }: - -stdenv.mkDerivation rec { - pname = "libclc"; - inherit version; - - src = runCommand "${pname}-src-${version}" {} '' - mkdir -p "$out" - cp -r ${monorepoSrc}/cmake "$out" - cp -r ${monorepoSrc}/${pname} "$out" - ''; - - sourceRoot = "${src.name}/${pname}"; - - outputs = [ "out" "dev" ]; - - patches = [ - ./libclc/libclc-gnu-install-dirs.patch - ]; - - # 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; - - postInstall = '' - install -Dt $dev/bin prepare_builtins - ''; - - meta = with lib; { - homepage = "http://libclc.llvm.org/"; - description = "Implementation of the library requirements of the OpenCL C programming language"; - mainProgram = "prepare_builtins"; - license = licenses.mit; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/ll/llvm/common/libclc/libclc-gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/common/libclc/libclc-gnu-install-dirs.patch deleted file mode 100644 index 1e5108a..0000000 --- a/pkgs/by-name/ll/llvm/common/libclc/libclc-gnu-install-dirs.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/libclc.pc.in -+++ b/libclc.pc.in -@@ -1,5 +1,5 @@ --includedir=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@ --libexecdir=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_DATADIR@/clc -+includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ -+libexecdir=@CMAKE_INSTALL_FULL_DATADIR@/clc - - Name: libclc - Description: Library requirements of the OpenCL C programming language diff --git a/pkgs/by-name/ll/llvm/common/libcxx/default.nix b/pkgs/by-name/ll/llvm/common/libcxx/default.nix deleted file mode 100644 index 0e91f50..0000000 --- a/pkgs/by-name/ll/llvm/common/libcxx/default.nix +++ /dev/null @@ -1,157 +0,0 @@ -{ 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 -# properly and not re-export the cxxabi symbols into libcxx -# https://github.com/NixOS/nixpkgs/issues/166205 -# https://github.com/NixOS/nixpkgs/issues/269548 -assert cxxabi == null || !stdenv.hostPlatform.isDarwin; -let - basename = "libcxx"; - pname = basename; - cxxabiName = "lib${if cxxabi == null then "cxxabi" else cxxabi.libName}"; - runtimes = [ "libcxx" ] ++ lib.optional (cxxabi == null) "libcxxabi"; - - # 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; - - 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" - ]; - - 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; - - src = src'; - - 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. - ''; - # "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/libcxx/libcxx-0001-musl-hacks.patch b/pkgs/by-name/ll/llvm/common/libcxx/libcxx-0001-musl-hacks.patch deleted file mode 100644 index bcb5ad8..0000000 --- a/pkgs/by-name/ll/llvm/common/libcxx/libcxx-0001-musl-hacks.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 1c936d7fda3275265e37f93697232a1ed652390f Mon Sep 17 00:00:00 2001 -From: Will Dietz -Date: Sat, 9 Jul 2016 19:22:54 -0500 -Subject: [PATCH] musl fixes/hacks - -Conflicts: - - include/__config - include/locale - src/locale.cpp ---- - include/locale | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/include/locale b/include/locale -index 3d804e8..9b01f5b 100644 ---- a/include/locale -+++ b/include/locale -@@ -695,7 +695,7 @@ __num_get_signed_integral(const char* __a, const char* __a_end, - typename remove_reference::type __save_errno = errno; - errno = 0; - char *__p2; -- long long __ll = strtoll_l(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE); -+ long long __ll = strtoll(__a, &__p2, __base); - typename remove_reference::type __current_errno = errno; - if (__current_errno == 0) - errno = __save_errno; -@@ -735,7 +735,7 @@ __num_get_unsigned_integral(const char* __a, const char* __a_end, - typename remove_reference::type __save_errno = errno; - errno = 0; - char *__p2; -- unsigned long long __ll = strtoull_l(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE); -+ unsigned long long __ll = strtoull(__a, &__p2, __base); - typename remove_reference::type __current_errno = errno; - if (__current_errno == 0) - errno = __save_errno; --- -1.7.1 - diff --git a/pkgs/by-name/ll/llvm/common/libcxxabi/no-threads.patch b/pkgs/by-name/ll/llvm/common/libcxxabi/no-threads.patch deleted file mode 100644 index 787f3e1..0000000 --- a/pkgs/by-name/ll/llvm/common/libcxxabi/no-threads.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 4138acf..41b4763 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -362,6 +362,7 @@ if (NOT LIBCXXABI_ENABLE_THREADS) - " is also set to ON.") - endif() - add_definitions(-D_LIBCXXABI_HAS_NO_THREADS) -+ add_definitions(-D_LIBCPP_HAS_NO_THREADS) - endif() - - if (LIBCXXABI_HAS_EXTERNAL_THREAD_API) diff --git a/pkgs/by-name/ll/llvm/common/libcxxabi/wasm.patch b/pkgs/by-name/ll/llvm/common/libcxxabi/wasm.patch deleted file mode 100644 index 4ebfe46..0000000 --- a/pkgs/by-name/ll/llvm/common/libcxxabi/wasm.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake -index 15497d405e0..33f7f18193a 100644 ---- a/cmake/modules/HandleLLVMOptions.cmake -+++ b/cmake/modules/HandleLLVMOptions.cmake -@@ -127,7 +127,10 @@ else(WIN32) - set(LLVM_HAVE_LINK_VERSION_SCRIPT 1) - endif() - else(FUCHSIA OR UNIX) -- MESSAGE(SEND_ERROR "Unable to determine platform") -+ if(${CMAKE_SYSTEM_NAME} MATCHES "Wasi") -+ else() -+ MESSAGE(SEND_ERROR "Unable to determine platform") -+ endif() - endif(FUCHSIA OR UNIX) - endif(WIN32) - diff --git a/pkgs/by-name/ll/llvm/common/libunwind/default.nix b/pkgs/by-name/ll/llvm/common/libunwind/default.nix deleted file mode 100644 index 515914e..0000000 --- a/pkgs/by-name/ll/llvm/common/libunwind/default.nix +++ /dev/null @@ -1,87 +0,0 @@ -{ 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; - - hasPatches = builtins.length patches > 0; - - postUnpack = lib.optionalString (lib.versions.major release_version == "12") '' - ln -s ${libcxx.src}/libcxx . - 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 . - ''; - - 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; - - 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}"; - - outputs = [ "out" "dev" ]; - - 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"; - - 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 deleted file mode 100644 index be296be..0000000 --- a/pkgs/by-name/ll/llvm/common/lld/default.nix +++ /dev/null @@ -1,77 +0,0 @@ -{ 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}" {} '' - 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; - - 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. - ''; - }; -} // (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 deleted file mode 100644 index f671132..0000000 --- a/pkgs/by-name/ll/llvm/common/lldb-plugins/llef.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, makeWrapper -, lldb -}: - -stdenv.mkDerivation { - pname = "llef"; - version = "unstable-2023-10-18"; - - src = fetchFromGitHub { - owner = "foundryzero"; - repo = "llef"; - rev = "629bd75f44c356f7a3576a6436d3919ce111240d"; - hash = "sha256-JtCHG89s436Di/6+V7Le4CZnkIPh/RYIllfXEO/B7+8"; - }; - - dontBuild = true; - - nativeBuildInputs = [ makeWrapper ]; - - installPhase = '' - runHook preInstall - - mkdir -p $out/share/llef - cp -r llef.py arch commands common handlers $out/share/llef - makeWrapper ${lib.getExe lldb} $out/bin/llef \ - --add-flags "-o 'settings set stop-disassembly-display never'" \ - --add-flags "-o \"command script import $out/share/llef/llef.py\"" - - runHook postInstall - ''; - - meta = with lib; { - description = "LLEF is a plugin for LLDB to make it more useful for RE and VR"; - homepage = "https://github.com/foundryzero/llef"; - license = licenses.mit; - platforms = platforms.all; - maintainers = with maintainers; [ nrabulinski ]; - mainProgram = "llef"; - }; -} diff --git a/pkgs/by-name/ll/llvm/common/lldb.nix b/pkgs/by-name/ll/llvm/common/lldb.nix deleted file mode 100644 index 59e427e..0000000 --- a/pkgs/by-name/ll/llvm/common/lldb.nix +++ /dev/null @@ -1,218 +0,0 @@ -{ 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 - src' = - if monorepoSrc != null then - runCommand "lldb-src-${version}" { } '' - mkdir -p "$out" - cp -r ${monorepoSrc}/cmake "$out" - cp -r ${monorepoSrc}/lldb "$out" - '' 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"; - }; - swig = if lib.versionAtLeast release_version "18" then swig4 else swig3; -in - -stdenv.mkDerivation (rec { - passthru.monorepoSrc = monorepoSrc; - pname = "lldb"; - inherit version; - - src = src'; - inherit patches; - - outputs = [ "out" "lib" "dev" ]; - - 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 - ]; - - 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 - ''; - - 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. - ''; - # 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"; - - 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" ]; - - propagatedBuildInputs = [ ]; - - # 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; - - outputs = [ "out" ]; - - doCheck = false; - - meta = llvm_meta // { - description = "man pages for LLDB ${version}"; - }; -}) diff --git a/pkgs/by-name/ll/llvm/common/lldb/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/common/lldb/gnu-install-dirs.patch deleted file mode 100644 index 093b9a8..0000000 --- a/pkgs/by-name/ll/llvm/common/lldb/gnu-install-dirs.patch +++ /dev/null @@ -1,49 +0,0 @@ -diff --git a/bindings/lua/CMakeLists.txt b/bindings/lua/CMakeLists.txt -index 1a739a980..59f8fc3a0 100644 ---- a/bindings/lua/CMakeLists.txt -+++ b/bindings/lua/CMakeLists.txt -@@ -56,7 +56,7 @@ function(finish_swig_lua swig_target lldb_lua_bindings_dir lldb_lua_target_dir) - if(LLDB_BUILD_FRAMEWORK) - set(LLDB_LUA_INSTALL_PATH ${LLDB_FRAMEWORK_INSTALL_DIR}/LLDB.framework/Resources/Python) - else() -- set(LLDB_LUA_INSTALL_PATH ${LLDB_LUA_RELATIVE_PATH}) -+ set(LLDB_LUA_INSTALL_PATH ${CMAKE_INSTALL_LIBDIR}/../${LLDB_LUA_RELATIVE_PATH}) - endif() - install(DIRECTORY ${lldb_lua_target_dir}/ - DESTINATION ${LLDB_LUA_INSTALL_PATH} -diff --git a/bindings/python/CMakeLists.txt b/bindings/python/CMakeLists.txt -index c631faf52ac3..1d92d069960b 100644 ---- a/bindings/python/CMakeLists.txt -+++ b/bindings/python/CMakeLists.txt -@@ -160,7 +160,7 @@ function(finish_swig_python swig_target lldb_python_bindings_dir lldb_python_tar - if(LLDB_BUILD_FRAMEWORK) - set(LLDB_PYTHON_INSTALL_PATH ${LLDB_FRAMEWORK_INSTALL_DIR}/LLDB.framework/Versions/${LLDB_FRAMEWORK_VERSION}/Resources/Python) - else() -- set(LLDB_PYTHON_INSTALL_PATH ${LLDB_PYTHON_RELATIVE_PATH}) -+ set(LLDB_PYTHON_INSTALL_PATH ${CMAKE_INSTALL_LIBDIR}/../${LLDB_PYTHON_RELATIVE_PATH}) - endif() - if (NOT CMAKE_CFG_INTDIR STREQUAL ".") - string(REPLACE ${CMAKE_CFG_INTDIR} "\$\{CMAKE_INSTALL_CONFIG_NAME\}" LLDB_PYTHON_INSTALL_PATH ${LLDB_PYTHON_INSTALL_PATH}) -diff --git a/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake -index 3291a7c808e1..b27d27ce6a87 100644 ---- a/cmake/modules/AddLLDB.cmake -+++ b/cmake/modules/AddLLDB.cmake -@@ -109,7 +109,7 @@ function(add_lldb_library name) - endif() - - if(PARAM_SHARED) -- set(install_dest lib${LLVM_LIBDIR_SUFFIX}) -+ set(install_dest ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) - if(PARAM_INSTALL_PREFIX) - set(install_dest ${PARAM_INSTALL_PREFIX}) - endif() -diff --git a/tools/intel-features/CMakeLists.txt b/tools/intel-features/CMakeLists.txt -index 7d48491ec89a..c04543585588 100644 ---- a/tools/intel-features/CMakeLists.txt -+++ b/tools/intel-features/CMakeLists.txt -@@ -30,4 +30,4 @@ add_lldb_library(lldbIntelFeatures SHARED - ) - - install(TARGETS lldbIntelFeatures -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}) -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) diff --git a/pkgs/by-name/ll/llvm/common/llvm/TLI-musl.patch b/pkgs/by-name/ll/llvm/common/llvm/TLI-musl.patch deleted file mode 100644 index 1a69080..0000000 --- a/pkgs/by-name/ll/llvm/common/llvm/TLI-musl.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 5c571082fdaf61f6df19d9b7137dc26d71334058 Mon Sep 17 00:00:00 2001 -From: Natanael Copa -Date: Thu, 18 Feb 2016 10:33:04 +0100 -Subject: [PATCH 2/3] Fix build with musl libc - -On musl libc the fopen64 and fopen are the same thing, but for -compatibility they have a `#define fopen64 fopen`. Same applies for -fseek64, fstat64, fstatvfs64, ftello64, lstat64, stat64 and tmpfile64. ---- - include/llvm/Analysis/TargetLibraryInfo.h | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/include/llvm/Analysis/TargetLibraryInfo.h b/include/llvm/Analysis/TargetLibraryInfo.h -index 7becdf0..7f14427 100644 ---- a/include/llvm/Analysis/TargetLibraryInfo.h -+++ b/include/llvm/Analysis/TargetLibraryInfo.h -@@ -18,6 +18,15 @@ - #include "llvm/IR/Module.h" - #include "llvm/Pass.h" - -+#undef fopen64 -+#undef fseeko64 -+#undef fstat64 -+#undef fstatvfs64 -+#undef ftello64 -+#undef lstat64 -+#undef stat64 -+#undef tmpfile64 -+ - namespace llvm { - /// VecDesc - Describes a possible vectorization of a function. - /// Function 'VectorFnName' is equivalent to 'ScalarFnName' vectorized --- -2.7.3 - diff --git a/pkgs/by-name/ll/llvm/common/llvm/llvm-config-link-static.patch b/pkgs/by-name/ll/llvm/common/llvm/llvm-config-link-static.patch deleted file mode 100644 index 3881cc5..0000000 --- a/pkgs/by-name/ll/llvm/common/llvm/llvm-config-link-static.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git llvm/tools/llvm-config/CMakeLists.txt llvm/tools/llvm-config/CMakeLists.txt -index 16ba54c0cf2f..20b017195e84 100644 ---- llvm/tools/llvm-config/CMakeLists.txt -+++ llvm/tools/llvm-config/CMakeLists.txt -@@ -6,6 +6,7 @@ set(BUILDVARIABLES_OBJPATH ${CMAKE_CURRENT_BINARY_DIR}/BuildVariables.inc) - # Add the llvm-config tool. - add_llvm_tool(llvm-config - llvm-config.cpp -+ DISABLE_LLVM_LINK_LLVM_DYLIB - ) - - # Compute the substitution values for various items. diff --git a/pkgs/by-name/ll/llvm/common/mlir/default.nix b/pkgs/by-name/ll/llvm/common/mlir/default.nix deleted file mode 100644 index 7a79ac3..0000000 --- a/pkgs/by-name/ll/llvm/common/mlir/default.nix +++ /dev/null @@ -1,77 +0,0 @@ -{ lib, stdenv, llvm_meta -, buildLlvmTools -, monorepoSrc, runCommand -, cmake -, ninja -, libxml2 -, libllvm -, version -, doCheck ? (!stdenv.isx86_32 /* TODO: why */) && (!stdenv.hostPlatform.isMusl) -}: - -stdenv.mkDerivation rec { - pname = "mlir"; - inherit version doCheck; - - # Blank llvm dir just so relative path works - src = runCommand "${pname}-src-${version}" {} '' - mkdir -p "$out" - cp -r ${monorepoSrc}/cmake "$out" - cp -r ${monorepoSrc}/mlir "$out" - cp -r ${monorepoSrc}/third-party "$out/third-party" - - mkdir -p "$out/llvm" - ''; - - sourceRoot = "${src.name}/mlir"; - - patches = [ - ./gnu-install-dirs.patch - ]; - - nativeBuildInputs = [ - cmake - ninja - ]; - - buildInputs = [ - libllvm - 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" - ]; - - outputs = [ "out" "dev" ]; - - meta = llvm_meta // { - homepage = "https://mlir.llvm.org/"; - description = "Multi-Level IR Compiler Framework"; - longDescription = '' - The MLIR project is a novel approach to building reusable and extensible - compiler infrastructure. MLIR aims to address software fragmentation, - improve compilation for heterogeneous hardware, significantly reduce - the cost of building domain specific compilers, and aid in connecting - existing compilers together. - ''; - }; -} diff --git a/pkgs/by-name/ll/llvm/common/mlir/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/common/mlir/gnu-install-dirs.patch deleted file mode 100644 index 9519102..0000000 --- a/pkgs/by-name/ll/llvm/common/mlir/gnu-install-dirs.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index c91e9cd93dc8..23b6032a46b7 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -32,8 +32,8 @@ if(MLIR_STANDALONE_BUILD) - endif() - - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY -- "${CMAKE_CURRENT_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}") -- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin") -+ "${CMAKE_INSTALL_LIBDIR}/${LLVM_LIBDIR_SUFFIX}") -+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_INSTALL_BINDIR}") - - set(LLVM_LIT_ARGS "-sv" CACHE STRING "Default options for lit") - endif() diff --git a/pkgs/by-name/ll/llvm/common/openmp/default.nix b/pkgs/by-name/ll/llvm/common/openmp/default.nix deleted file mode 100644 index 7d9d813..0000000 --- a/pkgs/by-name/ll/llvm/common/openmp/default.nix +++ /dev/null @@ -1,86 +0,0 @@ -{ 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}" {} '' - mkdir -p "$out" - cp -r ${monorepoSrc}/cmake "$out" - cp -r ${monorepoSrc}/${pname} "$out" - '' else src; -in -stdenv.mkDerivation (rec { - inherit pname version patches; - - src = src'; - - sourceRoot = - if lib.versionOlder release_version "13" then null - else "${src.name}/${pname}"; - - outputs = [ "out" ] - ++ lib.optionals (lib.versionAtLeast release_version "14") [ "dev" ]; - - 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 - ]; - - 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" - ]; - - 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 - ''; -})) diff --git a/pkgs/by-name/ll/llvm/git/clang/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/git/clang/gnu-install-dirs.patch deleted file mode 100644 index 9517df9..0000000 --- a/pkgs/by-name/ll/llvm/git/clang/gnu-install-dirs.patch +++ /dev/null @@ -1,71 +0,0 @@ -diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake -index 75b0080f6715..c895b884cd27 100644 ---- a/cmake/modules/AddClang.cmake -+++ b/cmake/modules/AddClang.cmake -@@ -119,8 +119,8 @@ macro(add_clang_library name) - install(TARGETS ${lib} - COMPONENT ${lib} - ${export_to_clangtargets} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} -+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" -+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") - - if (NOT LLVM_ENABLE_IDE) -diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt -index f2b0c5cddcbb..52f37fc368ce 100644 ---- a/lib/Headers/CMakeLists.txt -+++ b/lib/Headers/CMakeLists.txt -@@ -473,6 +473,7 @@ add_header_target("windows-resource-headers" ${windows_only_files}) - add_header_target("utility-resource-headers" ${utility_files}) - - get_clang_resource_dir(header_install_dir SUBDIR include) -+set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION_MAJOR}/include) - - ############################################################# - # Install rules for the catch-all clang-resource-headers target -diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt -index 4f23065a2472..6a0f55991e24 100644 ---- a/tools/libclang/CMakeLists.txt -+++ b/tools/libclang/CMakeLists.txt -@@ -234,7 +234,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS}) - COMPONENT - libclang-python-bindings - DESTINATION -- "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages") -+ "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages") - endforeach() - if(NOT LLVM_ENABLE_IDE) - add_custom_target(libclang-python-bindings) -diff --git a/tools/scan-build-py/CMakeLists.txt b/tools/scan-build-py/CMakeLists.txt -index 3aca22c0b0a8..3115353e3fe3 100644 ---- a/tools/scan-build-py/CMakeLists.txt -+++ b/tools/scan-build-py/CMakeLists.txt -@@ -88,7 +88,7 @@ foreach(lib ${LibScanbuild}) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/${lib}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/${lib}) - install(FILES lib/libscanbuild/${lib} -- DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libscanbuild -+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libscanbuild" - COMPONENT scan-build-py) - endforeach() - -@@ -106,7 +106,7 @@ foreach(resource ${LibScanbuildResources}) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/resources/${resource}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/resources/${resource}) - install(FILES lib/libscanbuild/resources/${resource} -- DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libscanbuild/resources -+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libscanbuild/resources" - COMPONENT scan-build-py) - endforeach() - -@@ -122,7 +122,7 @@ foreach(lib ${LibEar}) - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libear/${lib}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libear/${lib}) - install(FILES lib/libear/${lib} -- DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libear -+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libear" - COMPONENT scan-build-py) - endforeach() - diff --git a/pkgs/by-name/ll/llvm/git/clang/purity.patch b/pkgs/by-name/ll/llvm/git/clang/purity.patch deleted file mode 100644 index 5ce14a3..0000000 --- a/pkgs/by-name/ll/llvm/git/clang/purity.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001 -From: Will Dietz -Date: Thu, 18 May 2017 11:56:12 -0500 -Subject: [PATCH] "purity" patch for 5.0 - ---- - lib/Driver/ToolChains/Gnu.cpp | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp -index fe3c0191bb..c6a482bece 100644 ---- a/lib/Driver/ToolChains/Gnu.cpp -+++ b/lib/Driver/ToolChains/Gnu.cpp -@@ -446,9 +446,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA, - ToolChain.isPIEDefault(Args)); - if (IsPIE) - CmdArgs.push_back("-pie"); -- CmdArgs.push_back("-dynamic-linker"); -- CmdArgs.push_back(Args.MakeArgString(Twine(D.DyldPrefix) + -- ToolChain.getDynamicLinker(Args))); - } - } - --- -2.11.0 diff --git a/pkgs/by-name/ll/llvm/git/compiler-rt/X86-support-extension.patch b/pkgs/by-name/ll/llvm/git/compiler-rt/X86-support-extension.patch deleted file mode 100644 index 07013e5..0000000 --- a/pkgs/by-name/ll/llvm/git/compiler-rt/X86-support-extension.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt -index 3a66dd9c3fb..7efc85d9f9f 100644 ---- a/lib/builtins/CMakeLists.txt -+++ b/lib/builtins/CMakeLists.txt -@@ -348,4 +348,8 @@ if (NOT MSVC) - -+ set(i486_SOURCES ${i386_SOURCES}) -+ set(i586_SOURCES ${i386_SOURCES}) -+ set(i686_SOURCES ${i386_SOURCES}) -+ - if (WIN32) - set(i386_SOURCES - ${i386_SOURCES} -@@ -723,6 +723,7 @@ else () - endif() - - foreach (arch ${BUILTIN_SUPPORTED_ARCH}) -+ message("arch: ${arch}") - if (CAN_TARGET_${arch}) - # For ARM archs, exclude any VFP builtins if VFP is not supported - if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$") diff --git a/pkgs/by-name/ll/llvm/git/compiler-rt/darwin-targetconditionals.patch b/pkgs/by-name/ll/llvm/git/compiler-rt/darwin-targetconditionals.patch deleted file mode 100644 index 425dc2a..0000000 --- a/pkgs/by-name/ll/llvm/git/compiler-rt/darwin-targetconditionals.patch +++ /dev/null @@ -1,71 +0,0 @@ -diff --git a/lib/sanitizer_common/sanitizer_mac.cpp b/lib/sanitizer_common/sanitizer_mac.cpp ---- a/lib/sanitizer_common/sanitizer_mac.cpp -+++ b/lib/sanitizer_common/sanitizer_mac.cpp -@@ -613,9 +613,15 @@ HandleSignalMode GetHandleSignalMode(int signum) { - // Offset example: - // XNU 17 -- macOS 10.13 -- iOS 11 -- tvOS 11 -- watchOS 4 - constexpr u16 GetOSMajorKernelOffset() { -- if (TARGET_OS_OSX) return 4; -- if (TARGET_OS_IOS || TARGET_OS_TV) return 6; -- if (TARGET_OS_WATCH) return 13; -+#if TARGET_OS_OSX -+ return 4; -+#endif -+#if TARGET_OS_IOS || TARGET_OS_TV -+ return 6; -+#endif -+#if TARGET_OS_WATCH -+ return 13; -+#endif - } - - using VersStr = char[64]; -@@ -627,13 +633,13 @@ static uptr ApproximateOSVersionViaKernelVersion(VersStr vers) { - u16 os_major = kernel_major - offset; - - const char *format = "%d.0"; -- if (TARGET_OS_OSX) { -- if (os_major >= 16) { // macOS 11+ -- os_major -= 5; -- } else { // macOS 10.15 and below -- format = "10.%d"; -- } -+#if TARGET_OS_OSX -+ if (os_major >= 16) { // macOS 11+ -+ os_major -= 5; -+ } else { // macOS 10.15 and below -+ format = "10.%d"; - } -+#endif - return internal_snprintf(vers, sizeof(VersStr), format, os_major); - } - -@@ -681,15 +687,14 @@ void ParseVersion(const char *vers, u16 *major, u16 *minor) { - // Aligned versions example: - // macOS 10.15 -- iOS 13 -- tvOS 13 -- watchOS 6 - static void MapToMacos(u16 *major, u16 *minor) { -- if (TARGET_OS_OSX) -- return; -- -- if (TARGET_OS_IOS || TARGET_OS_TV) -+#if !TARGET_OS_OSX -+#if TARGET_OS_IOS || TARGET_OS_TV - *major += 2; -- else if (TARGET_OS_WATCH) -+#elif TARGET_OS_WATCH - *major += 9; -- else -+#else - UNREACHABLE("unsupported platform"); -+#endif - - if (*major >= 16) { // macOS 11+ - *major -= 5; -@@ -697,6 +702,7 @@ static void MapToMacos(u16 *major, u16 *minor) { - *minor = *major; - *major = 10; - } -+#endif - } - - static MacosVersion GetMacosAlignedVersionInternal() { diff --git a/pkgs/by-name/ll/llvm/git/compiler-rt/normalize-var.patch b/pkgs/by-name/ll/llvm/git/compiler-rt/normalize-var.patch deleted file mode 100644 index 2b25fd4..0000000 --- a/pkgs/by-name/ll/llvm/git/compiler-rt/normalize-var.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/cmake/Modules/CompilerRTUtils.cmake b/cmake/Modules/CompilerRTUtils.cmake -index 4c85551d7766..297d7a47c54b 100644 ---- a/cmake/Modules/CompilerRTUtils.cmake -+++ b/cmake/Modules/CompilerRTUtils.cmake -@@ -328,8 +328,9 @@ macro(load_llvm_config) - endif() - endif() - -- set(LLVM_LIBRARY_OUTPUT_INTDIR -- ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) -+ get_filename_component(LLVM_LIBRARY_OUTPUT_INTDIR -+ ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX} -+ REALPATH) - - set(LLVM_MAIN_SRC_DIR "${LLVM_MAIN_SRC_DIR_DEFAULT}" CACHE PATH "Path to LLVM source tree") - message(STATUS "LLVM_MAIN_SRC_DIR: \"${LLVM_MAIN_SRC_DIR}\"") diff --git a/pkgs/by-name/ll/llvm/git/default.nix b/pkgs/by-name/ll/llvm/git/default.nix deleted file mode 100644 index 1a34130..0000000 --- a/pkgs/by-name/ll/llvm/git/default.nix +++ /dev/null @@ -1,372 +0,0 @@ -{ 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" */; - # rev = /* commit SHA */; - # 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 - # 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 -}: - -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 - 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; - - 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; - - in { - - 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; - - 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; - - 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 - }); - - 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; - - 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; - }; - - lld = callPackage ../common/lld { - patches = [ - ./lld/gnu-install-dirs.patch - ]; - 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 - && !stdenv.targetPlatform.isAarch64 - && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0") - ) ./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. - - 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 = 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" - "-nostdlib++" - ] - ++ 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 = - [ - "-rtlib=compiler-rt" - "-B${targetLlvmLibraries.compiler-rt}/lib" - ] - ++ 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 = - [ - "-nostartfiles" - ] - ++ 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" ]; - }); - - # 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 { - - 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; - }; - - # 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; - - 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; - }; - - 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; - }; - }); - noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ]; - -in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools) diff --git a/pkgs/by-name/ll/llvm/git/libcxx/0001-darwin-10.12-mbstate_t-fix.patch b/pkgs/by-name/ll/llvm/git/libcxx/0001-darwin-10.12-mbstate_t-fix.patch deleted file mode 100644 index 29942f8..0000000 --- a/pkgs/by-name/ll/llvm/git/libcxx/0001-darwin-10.12-mbstate_t-fix.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 9c1cb26c1dd3f92d1c1177e548107d2cd3c5e616 Mon Sep 17 00:00:00 2001 -From: annalee <150648636+a-n-n-a-l-e-e@users.noreply.github.com> -Date: Fri, 23 Feb 2024 22:58:58 +0000 -Subject: [PATCH] darwin 10.12 mbstate_t fix - -https://github.com/llvm/llvm-project/issues/64226 - -removes space from -https://github.com/macports/macports-ports/raw/acd8acb171f1658596ed1cf25da48d5b932e2d19/lang/llvm-17/files/0042-mbstate_t-not-defined.patch -so it applies cleanly ---- - libcxx/include/__mbstate_t.h | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/libcxx/include/__mbstate_t.h b/libcxx/include/__mbstate_t.h -index bfa6d61..5f51112 100644 ---- a/libcxx/include/__mbstate_t.h -+++ b/libcxx/include/__mbstate_t.h -@@ -42,6 +42,9 @@ - #elif __has_include() - # include // works on most Unixes - #elif __has_include() -+# if __has_include() -+# include -+# endif - # include // works on Darwin - #elif !defined(_LIBCPP_HAS_NO_WIDE_CHARACTERS) && __has_include_next() - # include_next // fall back to the C standard provider of mbstate_t --- -2.43.0 - diff --git a/pkgs/by-name/ll/llvm/git/lld/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/git/lld/gnu-install-dirs.patch deleted file mode 100644 index 6c73a24..0000000 --- a/pkgs/by-name/ll/llvm/git/lld/gnu-install-dirs.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake -index d3924f7243d4..42a7cd62281c 100644 ---- a/cmake/modules/AddLLD.cmake -+++ b/cmake/modules/AddLLD.cmake -@@ -18,8 +18,8 @@ macro(add_lld_library name) - install(TARGETS ${name} - COMPONENT ${name} - ${export_to_lldtargets} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} -+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" -+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") - - if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES) diff --git a/pkgs/by-name/ll/llvm/git/lldb/cpu_subtype_arm64e_replacement.patch b/pkgs/by-name/ll/llvm/git/lldb/cpu_subtype_arm64e_replacement.patch deleted file mode 100644 index 20d35c9..0000000 --- a/pkgs/by-name/ll/llvm/git/lldb/cpu_subtype_arm64e_replacement.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/source/Host/macosx/objcxx/HostInfoMacOSX.mm b/source/Host/macosx/objcxx/HostInfoMacOSX.mm ---- a/source/Host/macosx/objcxx/HostInfoMacOSX.mm -+++ b/source/Host/macosx/objcxx/HostInfoMacOSX.mm -@@ -233,7 +233,7 @@ void HostInfoMacOSX::ComputeHostArchitectureSupport(ArchSpec &arch_32, - len = sizeof(is_64_bit_capable); - ::sysctlbyname("hw.cpu64bit_capable", &is_64_bit_capable, &len, NULL, 0); - -- if (cputype == CPU_TYPE_ARM64 && cpusubtype == CPU_SUBTYPE_ARM64E) { -+ if (cputype == CPU_TYPE_ARM64 && cpusubtype == ((cpu_subtype_t) 2)) { // CPU_SUBTYPE_ARM64E is not available in the macOS 10.12 headers - // The arm64e architecture is a preview. Pretend the host architecture - // is arm64. - cpusubtype = CPU_SUBTYPE_ARM64_ALL; diff --git a/pkgs/by-name/ll/llvm/git/lldb/procfs.patch b/pkgs/by-name/ll/llvm/git/lldb/procfs.patch deleted file mode 100644 index 7b200e8..0000000 --- a/pkgs/by-name/ll/llvm/git/lldb/procfs.patch +++ /dev/null @@ -1,46 +0,0 @@ ---- a/source/Plugins/Process/Linux/Procfs.h -+++ b/source/Plugins/Process/Linux/Procfs.h -@@ -10,6 +10,13 @@ - // sys/procfs.h on Android/Linux for all supported architectures. - - #include -+#include -+ -+// on i686 preprocessor symbols with these register names are defined as -+// numeric constants; these symbols clash with identifier names used in -+// `llvm/Support/VirtualFileSystem.h` and `llvm/ADT/SmallVector.h` -+#undef FS -+#undef CS - - #include "lldb/lldb-types.h" - -@@ -17,23 +24,13 @@ - - #include - --#ifdef __ANDROID__ --#if defined(__arm64__) || defined(__aarch64__) --typedef unsigned long elf_greg_t; --typedef elf_greg_t -- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))]; --typedef struct user_fpsimd_state elf_fpregset_t; --#ifndef NT_FPREGSET --#define NT_FPREGSET NT_PRFPREG --#endif // NT_FPREGSET --#elif defined(__mips__) --#ifndef NT_FPREGSET --#define NT_FPREGSET NT_PRFPREG --#endif // NT_FPREGSET --#endif --#else // __ANDROID__ -+#if !defined(__GLIBC__) && defined(__powerpc__) -+#define pt_regs musl_pt_regs -+#include -+#undef pt_regs -+#else - #include --#endif // __ANDROID__ -+#endif - - namespace lldb_private { - namespace process_linux { diff --git a/pkgs/by-name/ll/llvm/git/llvm/default.nix b/pkgs/by-name/ll/llvm/git/llvm/default.nix deleted file mode 100644 index 8987103..0000000 --- a/pkgs/by-name/ll/llvm/git/llvm/default.nix +++ /dev/null @@ -1,435 +0,0 @@ -{ 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)); - - # Ordinarily we would just the `doCheck` and `checkDeps` functionality - # `mkDerivation` gives us to manage our test dependencies (instead of breaking - # out `doCheck` as a package level attribute). - # - # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in - # particular the children it uses to do feature detection. - # - # This means that python deps we add to `checkDeps` (which the python - # interpreter is made aware of via `$PYTHONPATH` – populated by the python - # setup hook) are not picked up by `lit` which causes it to skip tests. - # - # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work - # because this package is shadowed in `$PATH` by the regular `python3` - # package. - # - # 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 - ] ++ 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" - ]; - 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/git/llvm/gnu-install-dirs-polly.patch b/pkgs/by-name/ll/llvm/git/llvm/gnu-install-dirs-polly.patch deleted file mode 100644 index 6a359bd..0000000 --- a/pkgs/by-name/ll/llvm/git/llvm/gnu-install-dirs-polly.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/tools/polly/cmake/polly_macros.cmake 2024-03-15 17:36:20.550893344 -0700 -+++ b/tools/polly/cmake/polly_macros.cmake 2024-03-15 17:37:06.277332960 -0700 -@@ -45,8 +45,8 @@ - install(TARGETS ${name} - COMPONENT ${name} - EXPORT LLVMExports -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}) -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) - add_llvm_install_targets(install-${name} - COMPONENT ${name}) - endif() diff --git a/pkgs/by-name/ll/llvm/git/llvm/gnu-install-dirs.patch b/pkgs/by-name/ll/llvm/git/llvm/gnu-install-dirs.patch deleted file mode 100644 index 8b89839..0000000 --- a/pkgs/by-name/ll/llvm/git/llvm/gnu-install-dirs.patch +++ /dev/null @@ -1,137 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 471817d68286..c51463304159 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -1010,7 +1010,7 @@ if (NOT TENSORFLOW_AOT_PATH STREQUAL "") - add_subdirectory(${TENSORFLOW_AOT_PATH}/xla_aot_runtime_src - ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/tf_runtime) - install(TARGETS tf_xla_runtime EXPORT LLVMExports -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT tf_xla_runtime) -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT tf_xla_runtime) - set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS tf_xla_runtime) - # Once we add more modules, we should handle this more automatically. - if (DEFINED LLVM_OVERRIDE_MODEL_HEADER_INLINERSIZEMODEL) -diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake -index 230620c37027..dd16cab1835e 100644 ---- a/cmake/modules/AddLLVM.cmake -+++ b/cmake/modules/AddLLVM.cmake -@@ -876,8 +876,8 @@ macro(add_llvm_library name) - get_target_export_arg(${name} LLVM export_to_llvmexports ${umbrella}) - install(TARGETS ${name} - ${export_to_llvmexports} -- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} -- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} -+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" COMPONENT ${name} -+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" COMPONENT ${name} - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${name}) - - if (NOT LLVM_ENABLE_IDE) -@@ -2069,7 +2069,7 @@ function(llvm_install_library_symlink name dest type) - set(LLVM_LINK_OR_COPY copy) - endif() - -- set(output_dir lib${LLVM_LIBDIR_SUFFIX}) -+ set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) - if(WIN32 AND "${type}" STREQUAL "SHARED") - set(output_dir "${CMAKE_INSTALL_BINDIR}") - endif() -@@ -2344,16 +2344,37 @@ function(llvm_setup_rpath name) - - if (APPLE) - set(_install_name_dir INSTALL_NAME_DIR "@rpath") -- set(_install_rpath "@loader_path/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -+ set(_install_rpath ${extra_libdir}) - elseif(${CMAKE_SYSTEM_NAME} MATCHES "AIX" AND BUILD_SHARED_LIBS) - # $ORIGIN is not interpreted at link time by aix ld. - # Since BUILD_SHARED_LIBS is only recommended for use by developers, - # hardcode the rpath to build/install lib dir first in this mode. - # FIXME: update this when there is better solution. -- set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -+ set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) - elseif(UNIX) -- set(_build_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -- set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}") -+ # Note that we add `extra_libdir` (aka `LLVM_LIBRARY_DIR` in our case) back -+ # to `_install_rpath` here. -+ # -+ # In nixpkgs we do not build and install LLVM alongside rdeps of LLVM (i.e. -+ # clang); instead LLVM is its own package and thus lands at its own nix -+ # store path. This makes it so that the default relative rpath (`../lib/`) -+ # does not point at the LLVM shared objects. -+ # -+ # More discussion here: -+ # - https://github.com/NixOS/nixpkgs/pull/235624#discussion_r1220150329 -+ # - https://reviews.llvm.org/D146918 (16.0.5+) -+ # -+ # Note that we leave `extra_libdir` in `_build_rpath`: without FHS there is -+ # no potential that this will result in us pulling in the "wrong" LLVM. -+ # Adding this to the build rpath means we aren't forced to use -+ # `installCheckPhase` instead of `checkPhase` (i.e. binaries in the build -+ # dir, pre-install, will have the right rpath for LLVM). -+ # -+ # As noted in the differential above, an alternative solution is to have -+ # all rdeps of nixpkgs' LLVM (that use the AddLLVM.cmake machinery) set -+ # `CMAKE_INSTALL_RPATH`. -+ set(_build_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) -+ set(_install_rpath ${extra_libdir}) - if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)") - set_property(TARGET ${name} APPEND_STRING PROPERTY - LINK_FLAGS " -Wl,-z,origin ") -diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake -index 891c9e6d618c..8d963f3b0069 100644 ---- a/cmake/modules/AddOCaml.cmake -+++ b/cmake/modules/AddOCaml.cmake -@@ -147,9 +147,9 @@ function(add_ocaml_library name) - endforeach() - - if( APPLE ) -- set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}") -+ set(ocaml_rpath ${LLVM_LIBRARY_DIR}) - elseif( UNIX ) -- set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}") -+ set(ocaml_rpath ${LLVM_LIBRARY_DIR}) - endif() - list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}") - -diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt -index d99af79aa38e..21e794224b99 100644 ---- a/cmake/modules/CMakeLists.txt -+++ b/cmake/modules/CMakeLists.txt -@@ -127,7 +127,7 @@ set(LLVM_CONFIG_INCLUDE_DIRS - ) - list(REMOVE_DUPLICATES LLVM_CONFIG_INCLUDE_DIRS) - --extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "lib\${LLVM_LIBDIR_SUFFIX}") -+extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}") - set(LLVM_CONFIG_LIBRARY_DIRS - "${LLVM_CONFIG_LIBRARY_DIR}" - # FIXME: Should there be other entries here? -diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in -index 370005cd8d7d..7e790bc52111 100644 ---- a/tools/llvm-config/BuildVariables.inc.in -+++ b/tools/llvm-config/BuildVariables.inc.in -@@ -23,6 +23,7 @@ - #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@" - #define LLVM_BUILDMODE "@LLVM_BUILDMODE@" - #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@" -+#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@" - #define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@" - #define LLVM_INSTALL_PACKAGE_DIR "@LLVM_INSTALL_PACKAGE_DIR@" - #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@" -diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp -index e86eb2b44b10..f63e207e792e 100644 ---- a/tools/llvm-config/llvm-config.cpp -+++ b/tools/llvm-config/llvm-config.cpp -@@ -366,7 +366,11 @@ int main(int argc, char **argv) { - sys::fs::make_absolute(ActivePrefix, Path); - ActiveBinDir = std::string(Path.str()); - } -- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX; -+ { -+ SmallString<256> Path(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX); -+ sys::fs::make_absolute(ActivePrefix, Path); -+ ActiveLibDir = std::string(Path.str()); -+ } - { - SmallString<256> Path(LLVM_INSTALL_PACKAGE_DIR); - sys::fs::make_absolute(ActivePrefix, Path); diff --git a/pkgs/by-name/ll/llvm/git/llvm/lit-shell-script-runner-set-dyld-library-path.patch b/pkgs/by-name/ll/llvm/git/llvm/lit-shell-script-runner-set-dyld-library-path.patch deleted file mode 100644 index e4f049f..0000000 --- a/pkgs/by-name/ll/llvm/git/llvm/lit-shell-script-runner-set-dyld-library-path.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/utils/lit/lit/TestRunner.py 2024-03-15 17:27:53.170780798 -0700 -+++ b/utils/lit/lit/TestRunner.py 2024-03-15 17:28:43.277447791 -0700 -@@ -1183,6 +1183,9 @@ - f.write("@echo on\n") - f.write("\n@if %ERRORLEVEL% NEQ 0 EXIT\n".join(commands)) - else: -+ if "DYLD_LIBRARY_PATH" in test.config.environment: -+ f.write(f'export DYLD_LIBRARY_PATH="{test.config.environment["DYLD_LIBRARY_PATH"]}"\n') -+ - for i, ln in enumerate(commands): - match = re.fullmatch(kPdbgRegex, ln) - if match: diff --git a/pkgs/by-name/ll/llvm/git/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch b/pkgs/by-name/ll/llvm/git/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch deleted file mode 100644 index d4ccb2a..0000000 --- a/pkgs/by-name/ll/llvm/git/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch +++ /dev/null @@ -1,80 +0,0 @@ -diff --git a/test/Unit/lit.cfg.py b/test/Unit/lit.cfg.py -index 81e8dc04acea..479ff95681e2 100644 ---- a/test/Unit/lit.cfg.py -+++ b/test/Unit/lit.cfg.py -@@ -3,6 +3,7 @@ - # Configuration file for the 'lit' test runner. - - import os -+import platform - import subprocess - - import lit.formats -@@ -55,3 +56,26 @@ if sys.platform in ["win32", "cygwin"] and os.path.isdir(config.shlibdir): - # Win32 may use %SYSTEMDRIVE% during file system shell operations, so propogate. - if sys.platform == "win32" and "SYSTEMDRIVE" in os.environ: - config.environment["SYSTEMDRIVE"] = os.environ["SYSTEMDRIVE"] -+ -+# Add the LLVM dynamic libs to the platform-specific loader search path env var: -+# -+# TODO: this is copied from `clang`'s `lit.cfg.py`; should unify.. -+def find_shlibpath_var(): -+ if platform.system() in ["Linux", "FreeBSD", "NetBSD", "OpenBSD", "SunOS"]: -+ yield "LD_LIBRARY_PATH" -+ elif platform.system() == "Darwin": -+ yield "DYLD_LIBRARY_PATH" -+ elif platform.system() == "Windows": -+ yield "PATH" -+ elif platform.system() == "AIX": -+ yield "LIBPATH" -+ -+for shlibpath_var in find_shlibpath_var(): -+ shlibpath = os.path.pathsep.join( -+ (config.shlibdir, -+ config.environment.get(shlibpath_var, ''))) -+ config.environment[shlibpath_var] = shlibpath -+ break -+else: -+ lit_config.warning("unable to inject shared library path on '{}'" -+ .format(platform.system())) -diff --git a/test/lit.cfg.py b/test/lit.cfg.py -index 75a38b4c5dad..856fc75c9d74 100644 ---- a/test/lit.cfg.py -+++ b/test/lit.cfg.py -@@ -42,6 +42,26 @@ llvm_config.with_environment("PATH", config.llvm_tools_dir, append_path=True) - llvm_config.with_system_environment( - ["HOME", "INCLUDE", "LIB", "TMP", "TEMP"]) - -+# Add the LLVM dynamic libs to the platform-specific loader search path env var: -+# -+# TODO: this is copied from `clang`'s `lit.cfg.py`; should unify.. -+def find_shlibpath_var(): -+ if platform.system() in ["Linux", "FreeBSD", "NetBSD", "OpenBSD", "SunOS"]: -+ yield "LD_LIBRARY_PATH" -+ elif platform.system() == "Darwin": -+ yield "DYLD_LIBRARY_PATH" -+ elif platform.system() == "Windows": -+ yield "PATH" -+ elif platform.system() == "AIX": -+ yield "LIBPATH" -+ -+for shlibpath_var in find_shlibpath_var(): -+ shlibpath = config.llvm_shlib_dir -+ llvm_config.with_environment(shlibpath_var, shlibpath, append_path = True) -+ break -+else: -+ lit_config.warning("unable to inject shared library path on '{}'" -+ .format(platform.system())) - - # Set up OCAMLPATH to include newly built OCaml libraries. - top_ocaml_lib = os.path.join(config.llvm_lib_dir, "ocaml") -@@ -318,7 +338,7 @@ def have_cxx_shared_library(): - - try: - readobj_cmd = subprocess.Popen( -- [readobj_exe, "--needed-libs", readobj_exe], stdout=subprocess.PIPE -+ [readobj_exe, "--needed-libs", readobj_exe], stdout=subprocess.PIPE, env=config.environment - ) - except OSError: - print("could not exec llvm-readobj") - diff --git a/pkgs/by-name/ll/llvm/git/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch b/pkgs/by-name/ll/llvm/git/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch deleted file mode 100644 index 1354ad2..0000000 --- a/pkgs/by-name/ll/llvm/git/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/tools/polly/test/lit.cfg b/tools/polly/test/lit.cfg -index 41e3a589c61e..09f3b17498b0 100644 ---- a/tools/polly/test/lit.cfg -+++ b/tools/polly/test/lit.cfg -@@ -36,9 +36,17 @@ base_paths = [config.llvm_tools_dir, config.environment['PATH']] - path = os.path.pathsep.join(base_paths + config.extra_paths) - config.environment['PATH'] = path - -+# (Copied from polly/test/Unit/lit.cfg) -+if platform.system() == 'Darwin': -+ shlibpath_var = 'DYLD_LIBRARY_PATH' -+elif platform.system() == 'Windows': -+ shlibpath_var = 'PATH' -+else: -+ shlibpath_var = 'LD_LIBRARY_PATH' -+ - path = os.path.pathsep.join((config.llvm_libs_dir, -- config.environment.get('LD_LIBRARY_PATH',''))) --config.environment['LD_LIBRARY_PATH'] = path -+ config.environment.get(shlibpath_var,''))) -+config.environment[shlibpath_var] = path - - llvm_config.use_default_substitutions() - diff --git a/pkgs/by-name/ll/llvm/git/openmp/fix-find-tool.patch b/pkgs/by-name/ll/llvm/git/openmp/fix-find-tool.patch deleted file mode 100644 index b7f5119..0000000 --- a/pkgs/by-name/ll/llvm/git/openmp/fix-find-tool.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/libomptarget/DeviceRTL/CMakeLists.txt b/libomptarget/DeviceRTL/CMakeLists.txt -index 630947abec7e..9f032dc7bd3f 100644 ---- a/libomptarget/DeviceRTL/CMakeLists.txt -+++ b/libomptarget/DeviceRTL/CMakeLists.txt -@@ -27,10 +27,10 @@ endif() - if (LLVM_DIR) - # Builds that use pre-installed LLVM have LLVM_DIR set. - # A standalone or LLVM_ENABLE_RUNTIMES=openmp build takes this route -- find_program(CLANG_TOOL clang PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) -+ find_program(CLANG_TOOL clang PATHS ${LLVM_TOOLS_BINARY_DIR}) - find_program(PACKAGER_TOOL clang-offload-packager PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) - find_program(LINK_TOOL llvm-link PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) -- find_program(OPT_TOOL opt PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) -+ find_program(OPT_TOOL opt PATHS ${LLVM_TOOLS_BINARY_DIR}) - if ((NOT CLANG_TOOL) OR (NOT LINK_TOOL) OR (NOT OPT_TOOL) OR (NOT PACKAGER_TOOL)) - libomptarget_say("Not building DeviceRTL. Missing clang: ${CLANG_TOOL}, llvm-link: ${LINK_TOOL}, opt: ${OPT_TOOL}, or clang-offload-packager: ${PACKAGER_TOOL}") - return() diff --git a/pkgs/by-name/ll/llvm/git/openmp/run-lit-directly.patch b/pkgs/by-name/ll/llvm/git/openmp/run-lit-directly.patch deleted file mode 100644 index e69de29..0000000 diff --git a/pkgs/by-name/ll/llvm/multi.nix b/pkgs/by-name/ll/llvm/multi.nix deleted file mode 100644 index 136e13b..0000000 --- a/pkgs/by-name/ll/llvm/multi.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ runCommand, -clang, -gcc64, -gcc32, -glibc_multi -}: - -let - 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 - - 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++ - - # 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 - # of the magic is done by setting the --gcc-toolchain option via - # `gccForLibs`. - 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})"; - gcc64.cc.langCC; - }; - }; - -in clangMulti diff --git a/pkgs/by-name/ll/llvm/packages.nix b/pkgs/by-name/ll/llvm/packages.nix deleted file mode 100644 index b36ae68..0000000 --- a/pkgs/by-name/ll/llvm/packages.nix +++ /dev/null @@ -1,162 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - - lld = llvmPackages.lld; - lld_12 = llvmPackages_12.lld; - lld_13 = llvmPackages_13.lld; - lld_14 = llvmPackages_14.lld; - lld_15 = llvmPackages_15.lld; - lld_16 = llvmPackages_16.lld; - lld_17 = llvmPackages_17.lld; - - lldb = llvmPackages.lldb; - lldb_12 = llvmPackages_12.lldb; - lldb_13 = llvmPackages_13.lldb; - lldb_14 = llvmPackages_14.lldb; - lldb_15 = llvmPackages_15.lldb; - lldb_16 = llvmPackages_16.lldb; - lldb_17 = llvmPackages_17.lldb; - - llvm = llvmPackages.llvm; - llvm_12 = llvmPackages_12.llvm; - llvm_13 = llvmPackages_13.llvm; - llvm_14 = llvmPackages_14.llvm; - llvm_15 = llvmPackages_15.llvm; - llvm_16 = llvmPackages_16.llvm; - llvm_17 = llvmPackages_17.llvm; - - mlir_16 = llvmPackages_16.mlir; - mlir_17 = llvmPackages_17.mlir; - - libllvm = llvmPackages.libllvm; - llvm-manpages = llvmPackages.llvm-manpages; - - llvmPackages = - 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 - # For unknown systems, assume the latest version is required. - 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)); - 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_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_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_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; - })); - - clang_18 = llvmPackages_18.clang; - lld_18 = llvmPackages_18.lld; - lldb_18 = llvmPackages_18.lldb; - llvm_18 = llvmPackages_18.llvm; - - # TODO: Fix clang-tools override - # clang-tools_18 = callPackage ../development/tools/clang-tools { - # llvmPackages = llvmPackages_18; - # }; - }) - llvmPackages_18 - clang_18 - lld_18 - lldb_18 - llvm_18 - clang-tools_18; - - 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}'"; - clang_multi = wrapClangMulti clang; - - clangMultiStdenv = overrideCC stdenv buildPackages.clang_multi; - libclang = llvmPackages.libclang; - clang-manpages = llvmPackages.clang-manpages; - - clang-sierraHack = clang.override { - name = "clang-wrapper-with-reexport-hack"; - bintools = darwin.binutils.override { - useMacosReexportHack = true; - }; - }; - - clang = llvmPackages.clang; - clang_12 = llvmPackages_12.clang; - clang_13 = llvmPackages_13.clang; - clang_14 = llvmPackages_14.clang; - clang_15 = llvmPackages_15.clang; - clang_16 = llvmPackages_16.clang; - clang_17 = llvmPackages_17.clang; - - #Use this instead of stdenv to build with clang - clangStdenv = if stdenv.cc.isClang then stdenv else lowPrio llvmPackages.stdenv; - clang-sierraHack-stdenv = overrideCC stdenv buildPackages.clang-sierraHack; - libcxxStdenv = if stdenv.isDarwin then stdenv else lowPrio llvmPackages.libcxxStdenv; - -} diff --git a/pkgs/by-name/ll/llvm/update-git.py b/pkgs/by-name/ll/llvm/update-git.py deleted file mode 100755 index 9be43e8..0000000 --- a/pkgs/by-name/ll/llvm/update-git.py +++ /dev/null @@ -1,88 +0,0 @@ -#! /usr/bin/env nix-shell -#! nix-shell -i python3 -p python3 nix - -import csv -import fileinput -import json -import os -import re -import subprocess -import sys - -from codecs import iterdecode -from datetime import datetime -from urllib.request import urlopen, Request - - -DEFAULT_NIX = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'git/default.nix') - - -def get_latest_chromium_build(): - RELEASES_URL = 'https://versionhistory.googleapis.com/v1/chrome/platforms/linux/channels/dev/versions/all/releases?filter=endtime=none&order_by=version%20desc' - print(f'GET {RELEASES_URL}') - with urlopen(RELEASES_URL) as resp: - return json.load(resp)['releases'][0] - - -def get_file_revision(revision, file_path): - """Fetches the requested Git revision of the given Chromium file.""" - url = f'https://raw.githubusercontent.com/chromium/chromium/{revision}/{file_path}' - with urlopen(url) as http_response: - return http_response.read().decode() - - -def get_commit(ref): - url = f'https://api.github.com/repos/llvm/llvm-project/commits/{ref}' - headers = {'Accept': 'application/vnd.github.v3+json'} - request = Request(url, headers=headers) - with urlopen(request) as http_response: - return json.loads(http_response.read().decode()) - - -def get_current_revision(): - """Get the current revision of llvmPackages_git.""" - with open(DEFAULT_NIX) as f: - for line in f: - rev = re.search(r'^ rev = "(.*)";', line) - if rev: - return rev.group(1) - sys.exit(1) - - -def nix_prefetch_url(url, algo='sha256'): - """Prefetches the content of the given URL.""" - print(f'nix-prefetch-url {url}') - out = subprocess.check_output(['nix-prefetch-url', '--type', algo, '--unpack', url]) - return out.decode('utf-8').rstrip() - - -chromium_build = get_latest_chromium_build() -chromium_version = chromium_build['version'] -print(f'chromiumDev version: {chromium_version}') -print('Getting LLVM commit...') -clang_update_script = get_file_revision(chromium_version, 'tools/clang/scripts/update.py') -clang_revision = re.search(r"^CLANG_REVISION = '(.+)'$", clang_update_script, re.MULTILINE).group(1) -clang_commit_short = re.search(r"llvmorg-[0-9]+-init-[0-9]+-g([0-9a-f]{8})", clang_revision).group(1) -release_version = re.search(r"^RELEASE_VERSION = '(.+)'$", clang_update_script, re.MULTILINE).group(1) -commit = get_commit(clang_commit_short) -if get_current_revision() == commit["sha"]: - print('No new update available.') - sys.exit(0) -date = datetime.fromisoformat(commit['commit']['committer']['date'].rstrip('Z')).date().isoformat() -version = f'unstable-{date}' -print('Prefetching source tarball...') -hash = nix_prefetch_url(f'https://github.com/llvm/llvm-project/archive/{commit["sha"]}.tar.gz') -print('Updating default.nix...') -with fileinput.FileInput(DEFAULT_NIX, inplace=True) as f: - for line in f: - if match := re.search(r'^ rev-version = "unstable-(.+)";', line): - old_date = match.group(1) - result = re.sub(r'^ version = ".+";', f' version = "{release_version}";', line) - result = re.sub(r'^ rev = ".*";', f' rev = "{commit["sha"]}";', result) - result = re.sub(r'^ rev-version = ".+";', f' rev-version = "{version}";', result) - result = re.sub(r'^ sha256 = ".+";', f' sha256 = "{hash}";', result) - print(result, end='') -# Commit the result: -commit_message = f"llvmPackages_git: {old_date} -> {date}" -subprocess.run(['git', 'add', DEFAULT_NIX], check=True) -subprocess.run(['git', 'commit', '--file=-'], input=commit_message.encode(), check=True) diff --git a/pkgs/by-name/ll/llvm/update.sh b/pkgs/by-name/ll/llvm/update.sh deleted file mode 100755 index 95ad356..0000000 --- a/pkgs/by-name/ll/llvm/update.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env bash - -set -eu - -# Example usage: ./pkgs/development/compilers/llvm/update.sh 12.0.0-rc4 - -readonly VERSION="$1" -readonly VERSION_MAJOR="${VERSION%%.*}" -readonly VERSION_MAIN="${VERSION%%-*}" -declare VERSION_PATCH="${VERSION/$VERSION_MAIN/}" -readonly VERSION_PATCH="${VERSION_PATCH/-/}" - -readonly DIR="pkgs/development/compilers/llvm/$VERSION_MAJOR" -readonly FILE="$DIR/default.nix" - -sed -Ei \ - -e "s/release_version = \".+\";/release_version = \"$VERSION_MAIN\";/" \ - -e "s/candidate = \".*\";/candidate = \"$VERSION_PATCH\";/" \ - "$FILE" - -readonly ATTRSET="llvmPackages_$VERSION_MAJOR" - -if [ "$VERSION_MAJOR" -ge "14" ]; then - readonly SOURCES=( - "llvm.monorepoSrc" - ) -elif [ "$VERSION_MAJOR" -eq "13" ]; then - readonly SOURCES=( - "llvm.src" - ) -else - readonly SOURCES=( - "clang-unwrapped.src" - "compiler-rt.src" - "clang-unwrapped.clang-tools-extra_src" - "libcxx.src" - "libcxxabi.src" - "libunwind.src" - "lld.src" - "lldb.src" - "llvm.src" - "llvm.polly_src" - "openmp.src" - ) -fi - -for SOURCE in "${SOURCES[@]}"; do - echo "Updating the hash of $SOURCE:" - declare ATTR="$ATTRSET.$SOURCE" - declare OLD_HASH="$(nix --extra-experimental-features nix-command eval -f . $ATTR.outputHash)" - declare NEW_HASH="\"$(nix-prefetch-url -A $ATTR)\"" - find "$DIR" -type f -exec sed -i "s/$OLD_HASH/$NEW_HASH/" {} + -done - -echo OK diff --git a/pkgs/by-name/lo/lowdown/default.nix b/pkgs/by-name/lo/lowdown/default.nix deleted file mode 100644 index 2c659ef..0000000 --- a/pkgs/by-name/lo/lowdown/default.nix +++ /dev/null @@ -1,93 +0,0 @@ -{ lib, stdenv, fetchurl, fixDarwinDylibNames, which, dieHook -, enableShared ? !stdenv.hostPlatform.isStatic -, enableStatic ? stdenv.hostPlatform.isStatic -# for passthru.tests -# , nix -}: - -stdenv.mkDerivation rec { - pname = "lowdown"; - version = "1.1.0"; - - 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 ]; - - preConfigure = lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) '' - echo 'HAVE_SANDBOX_INIT=0' > configure.local - ''; - - configurePhase = '' - runHook preConfigure - ./configure PREFIX=''${!outputDev} \ - BINDIR=''${!outputBin}/bin \ - LIBDIR=''${!outputLib}/lib \ - MANDIR=''${!outputMan}/share/man - runHook postConfigure - ''; - - makeFlags = [ - "bins" # prevents shared object from being built unnecessarily - ]; - - installTargets = [ - "install" - ] ++ lib.optionals enableShared [ - "install_shared" - ] ++ lib.optionals enableStatic [ - "install_static" - ]; - - postInstall = - let - soVersion = "1"; - in - - # Check that soVersion is up to date even if we are not on darwin - lib.optionalString (enableShared && !stdenv.isDarwin) '' - test -f $lib/lib/liblowdown.so.${soVersion} || \ - die "postInstall: expected $lib/lib/liblowdown.so.${soVersion} is missing" - '' - # Fix lib extension so that fixDarwinDylibNames detects it, see - # . - + lib.optionalString (enableShared && stdenv.isDarwin) '' - darwinDylib="$lib/lib/liblowdown.${soVersion}.dylib" - mv "$lib/lib/liblowdown.so.${soVersion}" "$darwinDylib" - - # Make sure we are re-creating a symbolic link here - test -L "$lib/lib/liblowdown.so" || \ - die "postInstall: expected $lib/lib/liblowdown.so to be a symlink" - ln -s "$darwinDylib" "$lib/lib/liblowdown.dylib" - rm "$lib/lib/liblowdown.so" - ''; - - doInstallCheck = true; - installCheckPhase = '' - runHook preInstallCheck - echo '# TEST' > test.md - $out/bin/lowdown test.md - runHook postInstallCheck - ''; - - doCheck = true; - checkTarget = "regress"; - - # passthru.tests = { - # # most important consumer in nixpkgs - # inherit nix; - # }; - - meta = with lib; { - homepage = "https://kristaps.bsd.lv/lowdown/"; - description = "Simple markdown translator"; - license = licenses.isc; - maintainers = [ maintainers.sternenseemann ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/ls/lsof/default.nix b/pkgs/by-name/ls/lsof/default.nix deleted file mode 100644 index 4cce674..0000000 --- a/pkgs/by-name/ls/lsof/default.nix +++ /dev/null @@ -1,69 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, buildPackages, perl, which, ncurses, nukeReferences }: - -let - dialect = with lib; last (splitString "-" stdenv.hostPlatform.system); -in - -stdenv.mkDerivation rec { - pname = "lsof"; - version = "4.99.3"; - - src = fetchFromGitHub { - owner = "lsof-org"; - repo = "lsof"; - rev = version; - 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 - ''; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ nukeReferences perl which ]; - buildInputs = [ ncurses ]; - - # Stop build scripts from searching global include paths - LSOF_INCLUDE = "${lib.getDev stdenv.cc.libc}/include"; - configurePhase = "LINUX_CONF_CC=$CC_FOR_BUILD LSOF_CC=$CC LSOF_AR=\"$AR cr\" LSOF_RANLIB=$RANLIB ./Configure -n ${dialect}"; - - preBuild = '' - for filepath in $(find dialects/${dialect} -type f); do - sed -i "s,/usr/include,$LSOF_INCLUDE,g" $filepath - done - - # Wipe out development-only flags from CFLAGS embedding - make version.h - nuke-refs version.h - ''; - - installPhase = '' - # Fix references from man page https://github.com/lsof-org/lsof/issues/66 - substituteInPlace Lsof.8 \ - --replace ".so ./00DIALECTS" "" \ - --replace ".so ./version" ".ds VN ${version}" - mkdir -p $out/bin $out/man/man8 - cp Lsof.8 $out/man/man8/lsof.8 - cp lsof $out/bin - ''; - - meta = with lib; { - homepage = "https://github.com/lsof-org/lsof"; - description = "A tool to list open files"; - mainProgram = "lsof"; - longDescription = '' - List open files. Can show what process has opened some file, - socket (IPv6/IPv4/UNIX local), or partition (by opening a file - from it). - ''; - license = licenses.purdueBsd; - maintainers = with maintainers; [ dezgeg ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/ly/lynx/default.nix b/pkgs/by-name/ly/lynx/default.nix deleted file mode 100644 index a31dc94..0000000 --- a/pkgs/by-name/ly/lynx/default.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ lib -, stdenv -, buildPackages -, fetchurl -, pkg-config -, ncurses -, gzip -, sslSupport ? true -, openssl -, nukeReferences -, fetchpatch -}: - -stdenv.mkDerivation rec { - pname = "lynx"; - version = "2.9.0dev.12"; - - src = fetchurl { - urls = [ - "ftp://ftp.invisible-island.net/lynx/tarballs/lynx${version}.tar.bz2" - "https://invisible-mirror.net/archives/lynx/tarballs/lynx${version}.tar.bz2" - ]; - hash = "sha256-pkVbFZ0Ad22OwQUShcly3B8MVS0FcaDP8Coj7BRu6OU="; - }; - - enableParallelBuilding = true; - - hardeningEnable = [ "pie" ]; - - configureFlags = [ - "--enable-default-colors" - "--enable-widec" - "--enable-ipv6" - ] ++ lib.optional sslSupport "--with-ssl"; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ nukeReferences ] - ++ lib.optional sslSupport pkg-config; - - buildInputs = [ ncurses gzip ] - ++ lib.optional sslSupport openssl; - - # cfg_defs.h captures lots of references to build-only dependencies, derived - # from config.cache. - postConfigure = '' - make cfg_defs.h - nuke-refs cfg_defs.h - ''; - - meta = with lib; { - description = "A text-mode web browser"; - homepage = "https://lynx.invisible-island.net/"; - mainProgram = "lynx"; - maintainers = with maintainers; [ ]; - license = licenses.gpl2Plus; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/lz/lzip/default.nix b/pkgs/by-name/lz/lzip/default.nix deleted file mode 100644 index 82052ba..0000000 --- a/pkgs/by-name/lz/lzip/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ lib, stdenv, fetchurl }: - -# 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. - -stdenv.mkDerivation rec { - pname = "lzip"; - version = "1.24.1"; - 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 - ]; - - configureFlags = [ - "CPPFLAGS=-DNDEBUG" - "CFLAGS=-O3" - "CXXFLAGS=-O3" - "CXX=${stdenv.cc.targetPrefix}c++" - ]; - - setupHook = ./lzip-setup-hook.sh; - - doCheck = true; - enableParallelBuilding = true; - - meta = with lib; { - homepage = "https://www.nongnu.org/lzip/lzip.html"; - description = "A lossless data compressor based on the LZMA algorithm"; - license = lib.licenses.gpl2Plus; - maintainers = with maintainers; [ vlaci ]; - platforms = lib.platforms.all; - mainProgram = "lzip"; - }; -} diff --git a/pkgs/by-name/lz/lzip/lzip-setup-hook.sh b/pkgs/by-name/lz/lzip/lzip-setup-hook.sh deleted file mode 100644 index 092ad77..0000000 --- a/pkgs/by-name/lz/lzip/lzip-setup-hook.sh +++ /dev/null @@ -1,5 +0,0 @@ -lzipUnpackCmdHook() { - [[ "$1" = *.tar.lz ]] && tar --lzip -xf "$1" -} - -unpackCmdHooks+=(lzipUnpackCmdHook) diff --git a/pkgs/by-name/lz/lzip/mingw-install-exe-file.patch b/pkgs/by-name/lz/lzip/mingw-install-exe-file.patch deleted file mode 100644 index b2b4b2b..0000000 --- a/pkgs/by-name/lz/lzip/mingw-install-exe-file.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/Makefile.in b/Makefile.in -index d07ad5a..1c15203 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -64,7 +64,7 @@ install-strip-compress : install-bin-strip install-info-compress install-man-com - - install-bin : all - if [ ! -d "$(DESTDIR)$(bindir)" ] ; then $(INSTALL_DIR) "$(DESTDIR)$(bindir)" ; fi -- $(INSTALL_PROGRAM) ./$(progname) "$(DESTDIR)$(bindir)/$(progname)" -+ $(INSTALL_PROGRAM) ./$(progname).exe "$(DESTDIR)$(bindir)/$(progname).exe" - - install-bin-strip : all - $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install-bin diff --git a/pkgs/by-name/lz/lzo/default.nix b/pkgs/by-name/lz/lzo/default.nix deleted file mode 100644 index 480e2bb..0000000 --- a/pkgs/by-name/lz/lzo/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{lib, stdenv, fetchurl}: - -stdenv.mkDerivation rec { - pname = "lzo"; - version = "2.10"; - - src = fetchurl { - url = "https://www.oberhumer.com/opensource/lzo/download/${pname}-${version}.tar.gz"; - sha256 = "0wm04519pd3g8hqpjqhfr72q8qmbiwqaxcs3cndny9h86aa95y60"; - }; - - configureFlags = lib.optional (!stdenv.hostPlatform.isStatic) "--enable-shared" ; - - enableParallelBuilding = true; - - doCheck = true; # not cross; - - strictDeps = true; - - meta = with lib; { - description = "Real-time data (de)compression library"; - longDescription = '' - LZO is a portable lossless data compression library written in ANSI C. - Both the source code and the compressed data format are designed to be - portable across platforms. - LZO offers pretty fast compression and *extremely* fast decompression. - While it favours speed over compression ratio, it includes slower - compression levels achieving a quite competitive compression ratio - while still decompressing at this very high speed. - ''; - - homepage = "http://www.oberhumer.com/opensource/lzo"; - license = licenses.gpl2Plus; - - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/ma/mailcap/default.nix b/pkgs/by-name/ma/mailcap/default.nix deleted file mode 100644 index 06c8047..0000000 --- a/pkgs/by-name/ma/mailcap/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "mailcap"; - version = "2.1.53"; - - src = fetchurl { - url = "https://releases.pagure.org/mailcap/mailcap-${version}.tar.xz"; - sha256 = "sha256-Xuou8XswSXe6PsuHr61DGfoEQPgl5Pb7puj6L/64h4U="; - }; - - installPhase = '' - runHook preInstall - - substituteInPlace mailcap --replace "/usr/bin/" "" - sh generate-nginx-mimetypes.sh < mime.types > nginx-mime.types - - install -D -m0644 nginx-mime.types $out/etc/nginx/mime.types - install -D -m0644 -t $out/etc mailcap mime.types - install -D -m0644 -t $out/share/man/man5 mailcap.5 - - runHook postInstall - ''; - - meta = with lib; { - description = "Helper application and MIME type associations for file types"; - homepage = "https://pagure.io/mailcap"; - license = licenses.mit; - maintainers = with maintainers; [ c0bw3b ]; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/ma/man-db/default.nix b/pkgs/by-name/ma/man-db/default.nix deleted file mode 100644 index 846c0c3..0000000 --- a/pkgs/by-name/ma/man-db/default.nix +++ /dev/null @@ -1,98 +0,0 @@ -{ buildPackages -, db -, fetchurl -, groff -, gzip -, lib -, libiconv -, libpipeline -, makeWrapper -, pkg-config -, stdenv -, zstd -, autoreconfHook -# for passthru.tests -# , nixosTests -}: - -stdenv.mkDerivation rec { - pname = "man-db"; - version = "2.12.1"; - - src = fetchurl { - url = "mirror://savannah/man-db/man-db-${version}.tar.xz"; - hash = "sha256-3e4kna63jPkrq3lMzQacyLV1mSJl6iDiOeiHFW6IAmU="; - }; - - 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 - ]; - - postPatch = '' - # Remove all mandatory manpaths. Nixpkgs makes no requirements on - # these directories existing. - sed -i 's/^MANDATORY_MANPATH/# &/' src/man_db.conf.in - - # Add Nix-related manpaths - echo "MANPATH_MAP /nix/var/nix/profiles/default/bin /nix/var/nix/profiles/default/share/man" >> src/man_db.conf.in - - # Add mandb locations for the above - 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" - ]; - - preConfigure = '' - configureFlagsArray+=("--with-sections=1 n l 8 3 0 2 5 4 9 6 7") - ''; - - postInstall = '' - # apropos/whatis uses program name to decide whether to act like apropos or whatis - # (multi-call binary). `apropos` is actually just a symlink to whatis. So we need to - # 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 ]}" - done - ''; - - disallowedReferences = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - buildPackages.groff - ]; - - enableParallelBuilding = true; - - doCheck = !stdenv.hostPlatform.isMusl /* iconv binary */; - - # passthru.tests = { - # nixos = nixosTests.man; - # }; - - meta = with lib; { - homepage = "http://man-db.nongnu.org"; - description = "An implementation of the standard Unix documentation system accessed using the man command"; - license = licenses.gpl2; - platforms = lib.platforms.unix; - mainProgram = "man"; - }; -} diff --git a/pkgs/by-name/ma/man-db/packages.nix b/pkgs/by-name/ma/man-db/packages.nix deleted file mode 100644 index 70423b2..0000000 --- a/pkgs/by-name/ma/man-db/packages.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - man = man-db; - man-db = callPackage ./. { }; -} diff --git a/pkgs/by-name/ma/man-db/systemwide-man-db-conf.patch b/pkgs/by-name/ma/man-db/systemwide-man-db-conf.patch deleted file mode 100644 index 2d44777..0000000 --- a/pkgs/by-name/ma/man-db/systemwide-man-db-conf.patch +++ /dev/null @@ -1,39 +0,0 @@ -commit 9089291006a4258c39c75a920ad536b61504251a -Author: rnhmjoj -Date: Fri May 1 19:32:15 2020 +0200 - - check for systemwide man_db.conf before the bundled one - -diff --git a/src/manp.c b/src/manp.c -index 5441339..0bbf566 100644 ---- a/src/manp.c -+++ b/src/manp.c -@@ -841,18 +841,24 @@ void read_config_file (bool optional) - } - - if (getenv ("MAN_TEST_DISABLE_SYSTEM_CONFIG") == NULL) { -- config_file = fopen (CONFIG_FILE, "r"); -+ const char *config_filepath; -+ if (access ("/etc/man_db.conf", F_OK) != -1) { -+ config_filepath = "/etc/man_db.conf"; -+ } else { -+ config_filepath = CONFIG_FILE; -+ } -+ config_file = fopen (config_filepath, "r"); - if (config_file == NULL) { - if (optional) - debug ("can't open %s; continuing anyway\n", -- CONFIG_FILE); -+ config_filepath); - else - error (FAIL, 0, - _("can't open the manpath " - "configuration file %s"), -- CONFIG_FILE); -+ config_filepath); - } else { -- debug ("From the config file %s:\n", CONFIG_FILE); -+ debug ("From the config file %s:\n", config_filepath); - - add_to_dirlist (config_file, 0); - fclose (config_file); diff --git a/pkgs/by-name/ma/maturin/default.nix b/pkgs/by-name/ma/maturin/default.nix deleted file mode 100644 index f7c213c..0000000 --- a/pkgs/by-name/ma/maturin/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ callPackage -, lib -, stdenv -, fetchFromGitHub -, rustPlatform -, libiconv -, Security -}: - -rustPlatform.buildRustPackage rec { - pname = "maturin"; - version = "1.5.1"; - - src = fetchFromGitHub { - owner = "PyO3"; - repo = "maturin"; - rev = "v${version}"; - hash = "sha256-3rID2epV1pCwpofFf9Wuafs1SlBWH7e7/4HPaSUAriQ="; - }; - - cargoHash = "sha256-hPyPMQm/Oege0PPjYIrd1fEDOGqoQ1ffS2l6o8je4t4="; - - buildInputs = lib.optionals stdenv.isDarwin [ Security libiconv ]; - - # Requires network access, fails in sandbox. - doCheck = false; - - passthru.tests.pyo3 = callPackage ./pyo3-test {}; - - meta = with lib; { - description = "Build and publish Rust crates Python packages"; - mainProgram = "maturin"; - longDescription = '' - Build and publish Rust crates with PyO3, rust-cpython, and - cffi bindings as well as Rust binaries as Python packages. - - This project is meant as a zero-configuration replacement for - setuptools-rust and Milksnake. It supports building wheels for - Python and can upload them to PyPI. - ''; - homepage = "https://github.com/PyO3/maturin"; - changelog = "https://github.com/PyO3/maturin/blob/v${version}/Changelog.md"; - 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 deleted file mode 100644 index 9a1d75b..0000000 --- a/pkgs/by-name/ma/maturin/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - maturin = callPackage ./. { - inherit (darwin.apple_sdk.frameworks) Security; - }; -} diff --git a/pkgs/by-name/ma/maturin/pyo3-test/Cargo.lock b/pkgs/by-name/ma/maturin/pyo3-test/Cargo.lock deleted file mode 100644 index 5e698d4..0000000 --- a/pkgs/by-name/ma/maturin/pyo3-test/Cargo.lock +++ /dev/null @@ -1,682 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -[[package]] -name = "ahash" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e" - -[[package]] -name = "assert_approx_eq" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c07dab4369547dbe5114677b33fbbf724971019f3818172d59a97a61c774ffd" - -[[package]] -name = "autocfg" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" - -[[package]] -name = "bitflags" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" - -[[package]] -name = "byteorder" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "const_fn" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b9d6de7f49e22cf97ad17fc4036ece69300032f45f78f30b4a4482cdc3f4a6" - -[[package]] -name = "crossbeam-channel" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9" -dependencies = [ - "cfg-if", - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1aaa739f95311c2c7887a76863f500026092fb1dce0161dab577e559ef3569d" -dependencies = [ - "cfg-if", - "const_fn", - "crossbeam-utils", - "lazy_static", - "memoffset", - "scopeguard", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d" -dependencies = [ - "autocfg", - "cfg-if", - "lazy_static", -] - -[[package]] -name = "ctor" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8f45d9ad417bcef4817d614a501ab55cdd96a6fdb24f49aab89a54acfd66b19" -dependencies = [ - "quote", - "syn", -] - -[[package]] -name = "either" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" - -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "ghost" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5bcf1bbeab73aa4cf2fde60a846858dc036163c7c33bec309f8d17de785479" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "glob" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" - -[[package]] -name = "hashbrown" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" -dependencies = [ - "ahash", -] - -[[package]] -name = "hermit-abi" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" -dependencies = [ - "libc", -] - -[[package]] -name = "indoc" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47741a8bc60fb26eb8d6e0238bbb26d8575ff623fdc97b1a2c00c050b9684ed8" -dependencies = [ - "indoc-impl", - "proc-macro-hack", -] - -[[package]] -name = "indoc-impl" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce046d161f000fffde5f432a0d034d0341dc152643b2598ed5bfce44c4f3a8f0" -dependencies = [ - "proc-macro-hack", - "proc-macro2", - "quote", - "syn", - "unindent", -] - -[[package]] -name = "instant" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "inventory" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0f7efb804ec95e33db9ad49e4252f049e37e8b0a4652e3cd61f7999f2eff7f" -dependencies = [ - "ctor", - "ghost", - "inventory-impl", -] - -[[package]] -name = "inventory-impl" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75c094e94816723ab936484666968f5b58060492e880f3c8d00489a1e244fa51" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "itoa" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libc" -version = "0.2.86" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7282d924be3275cec7f6756ff4121987bc6481325397dde6ba3e7802b1a8b1c" - -[[package]] -name = "lock_api" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312" -dependencies = [ - "scopeguard", -] - -[[package]] -name = "memoffset" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "157b4208e3059a8f9e78d559edc658e13df41410cb3ae03979c83130067fdd87" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num-bigint" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e9a41747ae4633fce5adffb4d2e81ffc5e89593cb19917f8fb2cc5ff76507bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-complex" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-integer" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "parking_lot" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018" -dependencies = [ - "cfg-if", - "instant", - "libc", - "redox_syscall", - "smallvec", - "winapi", -] - -[[package]] -name = "paste" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880" -dependencies = [ - "paste-impl", - "proc-macro-hack", -] - -[[package]] -name = "paste-impl" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6" -dependencies = [ - "proc-macro-hack", -] - -[[package]] -name = "ppv-lite86" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" - -[[package]] -name = "proc-macro-hack" -version = "0.5.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" - -[[package]] -name = "proc-macro2" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" -dependencies = [ - "unicode-xid", -] - -[[package]] -name = "proptest" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12e6c80c1139113c28ee4670dc50cc42915228b51f56a9e407f0ec60f966646f" -dependencies = [ - "bitflags", - "byteorder", - "lazy_static", - "num-traits", - "quick-error", - "rand", - "rand_chacha", - "rand_xorshift", - "regex-syntax", -] - -[[package]] -name = "pyo3" -version = "0.13.2" -dependencies = [ - "assert_approx_eq", - "cfg-if", - "ctor", - "hashbrown", - "indoc", - "inventory", - "libc", - "num-bigint", - "num-complex", - "parking_lot", - "paste", - "proptest", - "pyo3", - "pyo3-macros", - "rustversion", - "serde", - "serde_json", - "trybuild", - "unindent", -] - -[[package]] -name = "pyo3-macros" -version = "0.13.2" -dependencies = [ - "pyo3-macros-backend", - "quote", - "syn", -] - -[[package]] -name = "pyo3-macros-backend" -version = "0.13.2" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - -[[package]] -name = "quote" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom", - "libc", - "rand_chacha", - "rand_core", - "rand_hc", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core", -] - -[[package]] -name = "rand_xorshift" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77d416b86801d23dde1aa643023b775c3a462efc0ed96443add11546cdf1dca8" -dependencies = [ - "rand_core", -] - -[[package]] -name = "rayon" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674" -dependencies = [ - "autocfg", - "crossbeam-deque", - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-utils", - "lazy_static", - "num_cpus", -] - -[[package]] -name = "redox_syscall" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9" -dependencies = [ - "bitflags", -] - -[[package]] -name = "regex-syntax" -version = "0.6.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5eb417147ba9860a96cfe72a0b93bf88fee1744b5636ec99ab20c1aa9376581" - -[[package]] -name = "rustapi-module" -version = "0.1.0" -dependencies = [ - "pyo3", -] - -[[package]] -name = "rustversion" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb5d2a036dc6d2d8fd16fde3498b04306e29bd193bf306a57427019b823d5acd" - -[[package]] -name = "ryu" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" - -[[package]] -name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "serde" -version = "1.0.123" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92d5161132722baa40d802cc70b15262b98258453e85e5d1d365c757c73869ae" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.123" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9391c295d64fc0abb2c556bad848f33cb8296276b1ad2677d1ae1ace4f258f31" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.62" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea1c6153794552ea7cf7cf63b1231a25de00ec90db326ba6264440fa08e31486" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "smallvec" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" - -[[package]] -name = "syn" -version = "1.0.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c700597eca8a5a762beb35753ef6b94df201c81cca676604f547495a0d7f0081" -dependencies = [ - "proc-macro2", - "quote", - "unicode-xid", -] - -[[package]] -name = "termcolor" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "toml" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" -dependencies = [ - "serde", -] - -[[package]] -name = "trybuild" -version = "1.0.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99471a206425fba51842a9186315f32d91c56eadc21ea4c21f847b59cf778f8b" -dependencies = [ - "glob", - "lazy_static", - "serde", - "serde_json", - "termcolor", - "toml", -] - -[[package]] -name = "unicode-xid" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" - -[[package]] -name = "unindent" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f14ee04d9415b52b3aeab06258a3f07093182b88ba0f9b8d203f211a7a7d41c7" - -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "word-count" -version = "0.1.0" -dependencies = [ - "pyo3", - "rayon", -] diff --git a/pkgs/by-name/ma/maturin/pyo3-test/default.nix b/pkgs/by-name/ma/maturin/pyo3-test/default.nix deleted file mode 100644 index 7f79c85..0000000 --- a/pkgs/by-name/ma/maturin/pyo3-test/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ python3 -, rustPlatform -}: - -python3.pkgs.callPackage ./generic.nix { - buildAndTestSubdir = "examples/word-count"; - - nativeBuildInputs = with rustPlatform; [ - cargoSetupHook - maturinBuildHook - ]; -} diff --git a/pkgs/by-name/ma/maturin/pyo3-test/generic.nix b/pkgs/by-name/ma/maturin/pyo3-test/generic.nix deleted file mode 100644 index 7bc7e8d..0000000 --- a/pkgs/by-name/ma/maturin/pyo3-test/generic.nix +++ /dev/null @@ -1,45 +0,0 @@ -# Derivation prototype, used by maturin and setuptools-rust -# passthrough tests. - -{ lib -, fetchFromGitHub -, python -, rustPlatform - -, nativeBuildInputs - -, buildAndTestSubdir ? null -, format ? "pyproject" -, preConfigure ? "" -}: - -python.pkgs.buildPythonPackage rec { - pname = "word-count"; - version = "0.13.2"; - - src = fetchFromGitHub { - owner = "PyO3"; - repo = "pyo3"; - rev = "v${version}"; - hash = "sha256-NOMrrfo8WjlPhtGxWUOPJS/UDDdbLQRCXR++Zd6JmIA="; - }; - - cargoDeps = rustPlatform.importCargoLock { - lockFile = ./Cargo.lock; - }; - - postPatch = '' - ln -s ${./Cargo.lock} Cargo.lock - ''; - - inherit buildAndTestSubdir format nativeBuildInputs preConfigure; - - pythonImportsCheck = [ "word_count" ]; - - meta = with lib; { - description = "PyO3 word count example"; - homepage = "https://github.com/PyO3/pyo3"; - license = licenses.asl20; - maintainers = [ ]; - }; -} diff --git a/pkgs/by-name/mc/mcpp/default.nix b/pkgs/by-name/mc/mcpp/default.nix deleted file mode 100644 index 9db55e2..0000000 --- a/pkgs/by-name/mc/mcpp/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "mcpp"; - version = "2.7.2.1"; - - src = fetchFromGitHub { - owner = "museoa"; - repo = "mcpp"; - rev = finalAttrs.version; - hash= "sha256-T4feegblOeG+NU+c+PAobf8HT8KDSfcINkRAa1hNpkY="; - }; - - patches = [ - ./readlink.patch - ]; - - configureFlags = [ "--enable-mcpplib" ]; - - meta = with lib; { - homepage = "https://github.com/museoa/mcpp"; - description = "Matsui's C preprocessor"; - mainProgram = "mcpp"; - license = licenses.bsd2; - maintainers = with maintainers; [ AndersonTorres ]; - platforms = platforms.unix; - }; -}) diff --git a/pkgs/by-name/mc/mcpp/readlink.patch b/pkgs/by-name/mc/mcpp/readlink.patch deleted file mode 100644 index 0f5fc6d..0000000 --- a/pkgs/by-name/mc/mcpp/readlink.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 1c4b0f26614bff331eb8a9f2b514309af6f31fd0 Mon Sep 17 00:00:00 2001 -From: Jose -Date: Mon, 26 Jun 2023 16:43:43 +0200 -Subject: [PATCH] Add 'unistd' header for readlink (#8) - ---- - src/system.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/system.c b/src/system.c -index a3501f9..646caf6 100644 ---- a/src/system.c -+++ b/src/system.c -@@ -37,6 +37,11 @@ - * 2. append the system-dependent routines in this file. - */ -+ -+#ifndef _MSC_VER -+# include // For readlink() -+#endif -+ - #if PREPROCESSED - #include "mcpp.H" - #else diff --git a/pkgs/by-name/md/mdbook-linkcheck/default.nix b/pkgs/by-name/md/mdbook-linkcheck/default.nix deleted file mode 100644 index b8d19d0..0000000 --- a/pkgs/by-name/md/mdbook-linkcheck/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, Security -, testers, mdbook-linkcheck }: - -rustPlatform.buildRustPackage rec { - pname = "mdbook-linkcheck"; - version = "0.7.7"; - - src = fetchFromGitHub { - owner = "Michael-F-Bryan"; - repo = pname; - rev = "v${version}"; - sha256 = "sha256-ZbraChBHuKAcUA62EVHZ1RygIotNEEGv24nhSPAEj00="; - }; - - cargoSha256 = "sha256-AwixlCL5ZcLgj9wYeBvkSy2U6J8alXf488l8DMn73w4="; - - buildInputs = if stdenv.isDarwin then [ Security ] else [ openssl ]; - - nativeBuildInputs = lib.optionals (!stdenv.isDarwin) [ pkg-config ]; - - OPENSSL_NO_VENDOR = 1; - - doCheck = false; # tries to access network to test broken web link functionality - - passthru.tests.version = testers.testVersion { package = mdbook-linkcheck; }; - - meta = with lib; { - description = "A backend for `mdbook` which will check your links for you"; - mainProgram = "mdbook-linkcheck"; - homepage = "https://github.com/Michael-F-Bryan/mdbook-linkcheck"; - license = licenses.mit; - 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 deleted file mode 100644 index 6a43971..0000000 --- a/pkgs/by-name/md/mdbook-linkcheck/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index 4939cfc..0000000 --- a/pkgs/by-name/md/mdbook/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, nix, rustPlatform, CoreServices, installShellFiles }: - -rustPlatform.buildRustPackage rec { - pname = "mdbook"; - version = "0.4.37"; - - src = fetchFromGitHub { - owner = "rust-lang"; - repo = "mdBook"; - rev = "refs/tags/v${version}"; - sha256 = "sha256-A8ZSqIG+rGKwggs9ogvbMIi9gClFKe8gS6D5W426ebc="; - }; - - cargoHash = "sha256-8GQM4pHiFbyoRkOx3SXuIV118ndzL+O+eA+Gd2jbsdI="; - - nativeBuildInputs = [ installShellFiles ]; - - buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ]; - - postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' - installShellCompletion --cmd mdbook \ - --bash <($out/bin/mdbook completions bash) \ - --fish <($out/bin/mdbook completions fish) \ - --zsh <($out/bin/mdbook completions zsh ) - ''; - - passthru = { - tests = { - inherit nix; - }; - }; - - meta = with lib; { - description = "Create books from MarkDown"; - mainProgram = "mdbook"; - 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 ]; - }; -} diff --git a/pkgs/by-name/md/mdbook/packages.nix b/pkgs/by-name/md/mdbook/packages.nix deleted file mode 100644 index 8955cac..0000000 --- a/pkgs/by-name/md/mdbook/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index 90505a5..0000000 --- a/pkgs/by-name/me/memstream/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "memstream"; - version = "0.1"; - - src = fetchurl { - url = "https://piumarta.com/software/memstream/memstream-${version}.tar.gz"; - sha256 = "0kvdb897g7nyviaz72arbqijk2g2wa61cmi3l5yh48rzr49r3a3a"; - }; - - dontConfigure = true; - - postBuild = '' - $AR rcs libmemstream.a memstream.o - ''; - - doCheck = true; - checkPhase = '' - runHook preCheck - - ./test | grep "This is a test of memstream" - - runHook postCheck - ''; - - installPhase = '' - runHook preInstall - - install -D libmemstream.a "$out"/lib/libmemstream.a - install -D memstream.h "$out"/include/memstream.h - - runHook postInstall - ''; - - meta = with lib; { - homepage = "https://www.piumarta.com/software/memstream/"; - description = "memstream.c is an implementation of the POSIX function open_memstream() for BSD and BSD-like operating systems"; - license = licenses.mit; - maintainers = with maintainers; [ veprbl ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/me/memstream/packages.nix b/pkgs/by-name/me/memstream/packages.nix deleted file mode 100644 index f238576..0000000 --- a/pkgs/by-name/me/memstream/packages.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - memstream = callPackage ./. { }; - memstreamHook = makeSetupHook { - name = "memstream-hook"; - propagatedBuildInputs = [ memstream ]; - } ./setup-hook.sh; -} diff --git a/pkgs/by-name/me/memstream/setup-hook.sh b/pkgs/by-name/me/memstream/setup-hook.sh deleted file mode 100644 index 09aabe7..0000000 --- a/pkgs/by-name/me/memstream/setup-hook.sh +++ /dev/null @@ -1,6 +0,0 @@ -useMemstream () { - export NIX_CFLAGS_COMPILE="${NIX_CFLAGS_COMPILE-}${NIX_CFLAGS_COMPILE:+ }-include memstream.h"; - export NIX_LDFLAGS="${NIX_LDFLAGS-}${NIX_LDFLAGS:+ }-lmemstream"; -} - -postHooks+=(useMemstream) diff --git a/pkgs/by-name/me/mercurial/default.nix b/pkgs/by-name/me/mercurial/default.nix deleted file mode 100644 index a5a5b2b..0000000 --- a/pkgs/by-name/me/mercurial/default.nix +++ /dev/null @@ -1,228 +0,0 @@ -{ 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 -# , which -# , sqlite -# , git -# , cacert -# , gnupg -}: - -let - inherit (python3Packages) docutils python fb-re2 pygit2 pygments; - - self = python3Packages.buildPythonApplication rec { - pname = "mercurial${lib.optionalString fullBuild "-full"}"; - version = "6.6.3"; - - src = fetchurl { - url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz"; - hash = "sha256-911qSnWCOht9cTpJZ+yi9Zb0ZuWPxrwG1yZCky/X4wc="; - }; - - format = "other"; - - 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; - cargoRoot = if rustSupport then "rust" else null; - - propagatedBuildInputs = lib.optional re2Support fb-re2 - ++ lib.optional gitSupport pygit2 - ++ lib.optional highlightSupport pygments; - nativeBuildInputs = [ makeWrapper gettext installShellFiles python3Packages.setuptools ] - ++ lib.optionals rustSupport [ - rustPlatform.cargoSetupHook - cargo - rustc - ]; - buildInputs = [ docutils ] - ++ lib.optionals stdenv.isDarwin [ ApplicationServices ]; - - 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 - - # 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 - ''; - - # passthru.tests = { - # mercurial-tests = makeTests { flags = "--with-hg=$MERCURIAL_BASE/bin/hg"; }; - # }; - - meta = with lib; { - description = "A fast, lightweight SCM system for very large distributed projects"; - homepage = "https://www.mercurial-scm.org"; - 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 ]; - platforms = platforms.unix; - mainProgram = "hg"; - }; - }; - - # makeTests = { mercurial ? self, nameSuffix ? "", flags ? "" }: runCommand "${mercurial.pname}${nameSuffix}-tests" { - # inherit (mercurial) src; - - # SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; # needed for git - # MERCURIAL_BASE = mercurial; - # nativeBuildInputs = [ - # python - # unzip - # which - # sqlite - # git - # gnupg - # ]; - - # postPatch = '' - # patchShebangs . - - # for f in **/*.{py,c,t}; do - # # not only used in shebangs - # substituteAllInPlace "$f" '/bin/sh' '${stdenv.shell}' - # done - - # for f in **/*.t; do - # substituteInPlace 2>/dev/null "$f" \ - # --replace '*/hg:' '*/*hg*:' \${/* paths emitted by our wrapped hg look like ..hg-wrapped-wrapped */""} - # --replace '"$PYTHON" "$BINDIR"/hg' '"$BINDIR"/hg' ${/* 'hg' is a wrapper; don't run using python directly */""} - # done - # ''; - - # # This runs Mercurial _a lot_ of times. - # requiredSystemFeatures = [ "big-parallel" ]; - - # # Don't run tests if not-Linux or if cross-compiling. - # meta.broken = !stdenv.hostPlatform.isLinux || stdenv.buildPlatform != stdenv.hostPlatform; - # } '' - # addToSearchPathWithCustomDelimiter : PYTHONPATH "${mercurial}/${python.sitePackages}" - - # unpackPhase - # cd "$sourceRoot" - # patchPhase - - # cat << EOF > tests/blacklists/nix - # # tests enforcing "/usr/bin/env" shebangs, which are patched for nix - # test-run-tests.t - # test-check-shbang.t - - # # unstable experimental/unsupported features - # # https://bz.mercurial-scm.org/show_bug.cgi?id=6633#c1 - # test-git-interop.t - - # # doesn't like the extra setlocale warnings emitted by our bash wrappers - # test-locale.t - - # # Python 3.10-3.12 deprecation warning: asyncore - # # https://bz.mercurial-scm.org/show_bug.cgi?id=6727 - # 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 - python = self.python; - 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 { - pname = "${self.pname}-with-extensions"; - - inherit (self) src version meta; - - buildInputs = self.buildInputs ++ self.propagatedBuildInputs; - nativeBuildInputs = self.nativeBuildInputs; - - dontUnpack = true; - dontPatch = true; - dontConfigure = true; - dontBuild = true; - doCheck = false; - - installPhase = '' - runHook preInstall - - mkdir -p $out/bin - - for bindir in ${lib.concatStringsSep " " (map (d: "${lib.getBin d}/bin") plugins)}; do - for bin in $bindir/*; do - ln -s ${env}/bin/$(basename $bin) $out/bin/ - done - done - - ln -s ${self}/share $out/share - - runHook postInstall - ''; - - installCheckPhase = '' - runHook preInstallCheck - - $out/bin/hg help >/dev/null || exit 1 - - runHook postInstallCheck - ''; - }; - - # 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 deleted file mode 100644 index a9f055c..0000000 --- a/pkgs/by-name/me/mercurial/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index a544e1b..0000000 --- a/pkgs/by-name/me/mesa/default.nix +++ /dev/null @@ -1,417 +0,0 @@ -{ 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): -# nix build .#mesa .#pkgsi686Linux.mesa .#pkgsCross.aarch64-multiplatform.mesa .#pkgsMusl.mesa - -let - version = "24.0.5"; - hash = "sha256-OMwkXKj6o8adptJof4kGN3AB9jNlNIpizG9/r7HowBg="; - - # Release calendar: https://www.mesa3d.org/release-calendar.html - # Release frequency: https://www.mesa3d.org/releasing.html#schedule - branch = lib.versions.major version; - - withLibdrm = lib.meta.availableOn stdenv.hostPlatform libdrm; - - haveWayland = lib.elem "wayland" eglPlatforms; - haveZink = lib.elem "zink" galliumDrivers; - haveDozen = (lib.elem "d3d12" galliumDrivers) || (lib.elem "microsoft-experimental" vulkanDrivers); - - rustDeps = [ - { - pname = "proc-macro2"; - version = "1.0.70"; - hash = "sha256-e4ZgyZUTu5nAtaH5QVkLelqJQX/XPj/rWkzf/g2c+1g="; - } - { - pname = "quote"; - version = "1.0.33"; - hash = "sha256-VWRCZJO0/DJbNu0/V9TLaqlwMot65YjInWT9VWg57DY="; - } - { - pname = "syn"; - version = "2.0.39"; - hash = "sha256-Mjen2L/omhVbhU/+Ao65mogs3BP3fY+Bodab3uU63EI="; - } - { - pname = "unicode-ident"; - version = "1.0.12"; - hash = "sha256-KX8NqYYw6+rGsoR9mdZx8eT1HIPEUUyxErdk2H/Rlj8="; - } - ]; - - copyRustDep = dep: '' - cp -R --no-preserve=mode,ownership ${fetchCrate dep} subprojects/${dep.pname}-${dep.version} - cp -R subprojects/packagefiles/${dep.pname}/* subprojects/${dep.pname}-${dep.version}/ - ''; - - copyRustDeps = lib.concatStringsSep "\n" (builtins.map copyRustDep rustDeps); - -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; - }; - - patches = [ - ./opencl.patch - ]; - - 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'" - - ${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"; - - # 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 - ''; - - 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" - - "-Ddri-search-path=${libglvnd.driverLink}/lib/dri" - - "-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" - - "-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" - - # meson auto_features enables these features, but we do not want them - "-Dandroid-libbacktrace=disabled" - - ] ++ 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" - - # 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; - - 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; - - 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 ]; - - 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 - - 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 - - # 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* - - # 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 - - # 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 - - # 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" - - # 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\"" - ]); - - passthru = { - inherit (libglvnd) driverLink; - inherit llvmPackages; - - 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 ]; - }; - }; - }; - - 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 diff --git a/pkgs/by-name/me/mesa/opencl.patch b/pkgs/by-name/me/mesa/opencl.patch deleted file mode 100644 index cd27f0a..0000000 --- a/pkgs/by-name/me/mesa/opencl.patch +++ /dev/null @@ -1,66 +0,0 @@ -diff --git a/meson.build b/meson.build -index fbb0b29322d..b4825056449 100644 ---- a/meson.build -+++ b/meson.build -@@ -1805,7 +1805,7 @@ endif - - dep_clang = null_dep - if with_clc -- llvm_libdir = dep_llvm.get_variable(cmake : 'LLVM_LIBRARY_DIR', configtool: 'libdir') -+ llvm_libdir = get_option('clang-libdir') - - dep_clang = cpp.find_library('clang-cpp', dirs : llvm_libdir, required : false) - -diff --git a/meson_options.txt b/meson_options.txt -index e885ba61a8a..591ed957c85 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -23,6 +23,12 @@ option( - description : 'the window system EGL assumes for EGL_DEFAULT_DISPLAY', - ) - -+option( -+ 'clang-libdir', -+ type : 'string', -+ value : '', -+ description : 'Locations to search for clang libraries.' -+) - option( - 'android-stub', - type : 'boolean', -diff --git a/src/gallium/targets/opencl/meson.build b/src/gallium/targets/opencl/meson.build -index 7c14135898e..74dc6850603 100644 ---- a/src/gallium/targets/opencl/meson.build -+++ b/src/gallium/targets/opencl/meson.build -@@ -39,7 +39,8 @@ if dep_llvm.version().version_compare('>=10.0.0') - polly_isl_dep = cpp.find_library('PollyISL', dirs : llvm_libdir, required : false) - endif - --dep_clang = cpp.find_library('clang-cpp', dirs : llvm_libdir, required : false) -+clang_libdir = get_option('clang-libdir') -+dep_clang = cpp.find_library('clang-cpp', dirs : clang_libdir, required : false) - - # meson will return clang-cpp from system dirs if it's not found in llvm_libdir - linker_rpath_arg = '-Wl,--rpath=@0@'.format(llvm_libdir) -@@ -123,7 +124,7 @@ if with_opencl_icd - configuration : _config, - input : 'mesa.icd.in', - output : 'mesa.icd', -- install : true, -+ install : false, - install_tag : 'runtime', - install_dir : join_paths(get_option('sysconfdir'), 'OpenCL', 'vendors'), - ) -diff --git a/src/gallium/targets/rusticl/meson.build b/src/gallium/targets/rusticl/meson.build -index b2963fe6dfa..99d6d801b94 100644 ---- a/src/gallium/targets/rusticl/meson.build -+++ b/src/gallium/targets/rusticl/meson.build -@@ -76,7 +76,7 @@ configure_file( - configuration : _config, - input : 'rusticl.icd.in', - output : 'rusticl.icd', -- install : true, -+ install : false, - install_tag : 'runtime', - install_dir : join_paths(get_option('sysconfdir'), 'OpenCL', 'vendors'), - ) diff --git a/pkgs/by-name/me/mesa/packages.nix b/pkgs/by-name/me/mesa/packages.nix deleted file mode 100644 index 2f74a9d..0000000 --- a/pkgs/by-name/me/mesa/packages.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ ... }: -res: pkgs: super: - -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; - }; - - # Default libGLU - libGLU = mesa_glu; - - mesa = darwin.apple_sdk_11_0.callPackage ./. { - inherit (darwin.apple_sdk_11_0.frameworks) OpenGL; - inherit (darwin.apple_sdk_11_0.libs) Xplugin; - }; - mesa_i686 = pkgsi686Linux.mesa; # make it build on Hydra -} diff --git a/pkgs/by-name/me/mesa/stubs.nix b/pkgs/by-name/me/mesa/stubs.nix deleted file mode 100644 index 7738975..0000000 --- a/pkgs/by-name/me/mesa/stubs.nix +++ /dev/null @@ -1,87 +0,0 @@ -{ stdenv -, libglvnd -, mesa -, OpenGL -, testers -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "libGL"; - inherit (if stdenv.hostPlatform.isDarwin then mesa else libglvnd) version; - 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 - - 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/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 - '' - - # 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 - - 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 - } - - 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; - }; -}) diff --git a/pkgs/by-name/me/meson/0001-Revert-rust-recursively-pull-proc-macro-dependencies.patch b/pkgs/by-name/me/meson/0001-Revert-rust-recursively-pull-proc-macro-dependencies.patch deleted file mode 100644 index ff94409..0000000 --- a/pkgs/by-name/me/meson/0001-Revert-rust-recursively-pull-proc-macro-dependencies.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 8304b645c655832c47ee9ca706d182c26d29eaff Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= -Date: Tue, 9 Apr 2024 06:35:39 +0000 -Subject: [PATCH] Revert "rust: recursively pull proc-macro dependencies as - well" -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This reverts commit aee941559c4b88a062e88186819a820c69c200ae. - -Signed-off-by: Jörg Thalheim ---- - mesonbuild/build.py | 2 ++ - test cases/rust/18 proc-macro/lib.rs | 8 -------- - test cases/rust/18 proc-macro/meson.build | 11 ----------- - test cases/rust/18 proc-macro/subdir/meson.build | 1 - - .../rust/18 proc-macro/transitive-proc-macro.rs | 7 ------- - 5 files changed, 2 insertions(+), 27 deletions(-) - delete mode 100644 test cases/rust/18 proc-macro/lib.rs - delete mode 100644 test cases/rust/18 proc-macro/subdir/meson.build - delete mode 100644 test cases/rust/18 proc-macro/transitive-proc-macro.rs - -diff --git a/mesonbuild/build.py b/mesonbuild/build.py -index 6f0d6a2dd..7be9b497b 100644 ---- a/mesonbuild/build.py -+++ b/mesonbuild/build.py -@@ -1295,6 +1295,8 @@ def get_dependencies_recurse(self, result: OrderedSet[BuildTargetTypes], include - for t in self.link_targets: - if t in result: - continue -+ if t.rust_crate_type == 'proc-macro': -+ continue - if include_internals or not t.is_internal(): - result.add(t) - if isinstance(t, StaticLibrary): -diff --git a/test cases/rust/18 proc-macro/lib.rs b/test cases/rust/18 proc-macro/lib.rs -deleted file mode 100644 -index 5242886cc..000000000 ---- a/test cases/rust/18 proc-macro/lib.rs -+++ /dev/null -@@ -1,8 +0,0 @@ --extern crate proc_macro_examples; --use proc_macro_examples::make_answer; -- --make_answer!(); -- --pub fn func() -> u32 { -- answer() --} -diff --git a/test cases/rust/18 proc-macro/meson.build b/test cases/rust/18 proc-macro/meson.build -index e8b28eda1..c5f0dfc82 100644 ---- a/test cases/rust/18 proc-macro/meson.build -+++ b/test cases/rust/18 proc-macro/meson.build -@@ -31,14 +31,3 @@ main = executable( - ) - - test('main_test2', main) -- --subdir('subdir') -- --staticlib = static_library('staticlib', 'lib.rs', -- link_with: pm_in_subdir, -- rust_dependency_map : {'proc_macro_examples3' : 'proc_macro_examples'} --) -- --executable('transitive-proc-macro', 'transitive-proc-macro.rs', -- link_with: staticlib, --) -diff --git a/test cases/rust/18 proc-macro/subdir/meson.build b/test cases/rust/18 proc-macro/subdir/meson.build -deleted file mode 100644 -index 04842c431..000000000 ---- a/test cases/rust/18 proc-macro/subdir/meson.build -+++ /dev/null -@@ -1 +0,0 @@ --pm_in_subdir = rust.proc_macro('proc_macro_examples3', '../proc.rs') -diff --git a/test cases/rust/18 proc-macro/transitive-proc-macro.rs b/test cases/rust/18 proc-macro/transitive-proc-macro.rs -deleted file mode 100644 -index 4c804b3b6..000000000 ---- a/test cases/rust/18 proc-macro/transitive-proc-macro.rs -+++ /dev/null -@@ -1,7 +0,0 @@ --extern crate staticlib; --use staticlib::func; -- -- --fn main() { -- assert_eq!(42, func()); --} --- -2.44.0 - diff --git a/pkgs/by-name/me/meson/001-fix-rpath.patch b/pkgs/by-name/me/meson/001-fix-rpath.patch deleted file mode 100644 index 29bec79..0000000 --- a/pkgs/by-name/me/meson/001-fix-rpath.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- a/mesonbuild/backend/backends.py -+++ b/mesonbuild/backend/backends.py -@@ -723,6 +723,21 @@ - @staticmethod - def get_rpath_dirs_from_link_args(args: T.List[str]) -> T.Set[str]: - dirs: T.Set[str] = set() -+ -+ nix_ldflags = os.environ.get('NIX_LDFLAGS', '').split() -+ next_is_path = False -+ # Try to add rpaths set by user or ld-wrapper so that they are not removed. -+ # Based on https://github.com/NixOS/nixpkgs/blob/69711a2f5ffe8cda208163be5258266172ff527f/pkgs/build-support/bintools-wrapper/ld-wrapper.sh#L148-L177 -+ for flag in nix_ldflags: -+ if flag == '-rpath' or flag == '-L': -+ next_is_path = True -+ elif next_is_path or flag.startswith('-L/'): -+ if flag.startswith('-L/'): -+ flag = flag[2:] -+ if flag.startswith('@storeDir@'): -+ dirs.add(flag) -+ next_is_path = False -+ - # Match rpath formats: - # -Wl,-rpath= - # -Wl,-rpath, diff --git a/pkgs/by-name/me/meson/002-clear-old-rpath.patch b/pkgs/by-name/me/meson/002-clear-old-rpath.patch deleted file mode 100644 index f1e3c76..0000000 --- a/pkgs/by-name/me/meson/002-clear-old-rpath.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/mesonbuild/scripts/depfixer.py b/mesonbuild/scripts/depfixer.py -index 4176b9a03..faaabf616 100644 ---- a/mesonbuild/scripts/depfixer.py -+++ b/mesonbuild/scripts/depfixer.py -@@ -336,6 +336,15 @@ class Elf(DataSizes): - if not new_rpath: - self.remove_rpath_entry(entrynum) - else: -+ # Clear old rpath to avoid stale references, -+ # not heeding the warning above about de-duplication -+ # since it does not seem to cause issues for us -+ # and not doing so trips up Nix’s reference checker. -+ # See https://github.com/NixOS/nixpkgs/pull/46020 -+ # and https://github.com/NixOS/nixpkgs/issues/95163 -+ self.bf.seek(rp_off) -+ self.bf.write(b'\0'*len(old_rpath)) -+ - self.bf.seek(rp_off) - self.bf.write(new_rpath) - self.bf.write(b'\0') diff --git a/pkgs/by-name/me/meson/003-more-env-vars.patch b/pkgs/by-name/me/meson/003-more-env-vars.patch deleted file mode 100644 index e4ad435..0000000 --- a/pkgs/by-name/me/meson/003-more-env-vars.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur meson-0.60.2-old/mesonbuild/environment.py meson-0.60.2-new/mesonbuild/environment.py ---- meson-0.60.2-old/mesonbuild/environment.py 2021-11-02 16:58:13.000000000 -0300 -+++ meson-0.60.2-new/mesonbuild/environment.py 2021-12-12 17:44:00.350499307 -0300 -@@ -68,7 +68,7 @@ - # compiling we fall back on the unprefixed host version. This - # allows native builds to never need to worry about the 'BUILD_*' - # ones. -- ([var_name + '_FOR_BUILD'] if is_cross else [var_name]), -+ [var_name + '_FOR_BUILD'] + ([] if is_cross else [var_name]), - # Always just the unprefixed host versions - [var_name] - )[for_machine] diff --git a/pkgs/by-name/me/meson/004-gir-fallback-path.patch b/pkgs/by-name/me/meson/004-gir-fallback-path.patch deleted file mode 100644 index e6d7402..0000000 --- a/pkgs/by-name/me/meson/004-gir-fallback-path.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py -index 1c6952df7..9466a0b7d 100644 ---- a/mesonbuild/modules/gnome.py -+++ b/mesonbuild/modules/gnome.py -@@ -923,6 +923,16 @@ class GnomeModule(ExtensionModule): - if fatal_warnings: - scan_command.append('--warn-error') - -+ if len(set(girtarget.get_custom_install_dir()[0] for girtarget in girtargets if girtarget.get_custom_install_dir())) > 1: -+ raise MesonException('generate_gir tries to build multiple libraries with different install_dir at once: {}'.format(','.join([str(girtarget) for girtarget in girtargets]))) -+ -+ if girtargets[0].get_custom_install_dir(): -+ fallback_libpath = girtargets[0].get_custom_install_dir()[0] -+ else: -+ fallback_libpath = None -+ if fallback_libpath is not None and isinstance(fallback_libpath, str) and len(fallback_libpath) > 0 and fallback_libpath[0] == "/": -+ scan_command += ['--fallback-library-path=' + fallback_libpath] -+ - generated_files = [f for f in libsources if isinstance(f, (GeneratedList, CustomTarget, CustomTargetIndex))] - - scan_target = self._make_gir_target(state, girfile, scan_command, generated_files, depends, kwargs) diff --git a/pkgs/by-name/me/meson/005-boost-Do-not-add-system-paths-on-nix.patch b/pkgs/by-name/me/meson/005-boost-Do-not-add-system-paths-on-nix.patch deleted file mode 100644 index 0a2eda9..0000000 --- a/pkgs/by-name/me/meson/005-boost-Do-not-add-system-paths-on-nix.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -Naur meson-0.60.2-old/mesonbuild/dependencies/boost.py meson-0.60.2-new/mesonbuild/dependencies/boost.py ---- meson-0.60.2-old/mesonbuild/dependencies/boost.py 2021-11-02 16:58:07.000000000 -0300 -+++ meson-0.60.2-new/mesonbuild/dependencies/boost.py 2021-12-12 19:21:27.895705897 -0300 -@@ -682,16 +682,7 @@ - else: - tmp = [] # type: T.List[Path] - -- # Add some default system paths -- tmp += [Path('/opt/local')] -- tmp += [Path('/usr/local/opt/boost')] -- tmp += [Path('/usr/local')] -- tmp += [Path('/usr')] -- -- # Cleanup paths -- tmp = [x for x in tmp if x.is_dir()] -- tmp = [x.resolve() for x in tmp] -- roots += tmp -+ # Remove such spurious, non-explicit "system" paths for Nix&Nixpkgs - - self.check_and_set_roots(roots, use_system=True) - diff --git a/pkgs/by-name/me/meson/006-disable-bitcode.patch b/pkgs/by-name/me/meson/006-disable-bitcode.patch deleted file mode 100644 index a72997c..0000000 --- a/pkgs/by-name/me/meson/006-disable-bitcode.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- a/mesonbuild/compilers/mixins/clang.py -+++ b/mesonbuild/compilers/mixins/clang.py -@@ -56,10 +56,6 @@ class ClangCompiler(GnuLikeCompiler): - {OptionKey('b_colorout'), OptionKey('b_lto_threads'), OptionKey('b_lto_mode'), OptionKey('b_thinlto_cache'), - OptionKey('b_thinlto_cache_dir')}) - -- # TODO: this really should be part of the linker base_options, but -- # linkers don't have base_options. -- if isinstance(self.linker, AppleDynamicLinker): -- self.base_options.add(OptionKey('b_bitcode')) - # All Clang backends can also do LLVM IR - self.can_compile_suffixes.add('ll') - ---- a/mesonbuild/linkers/linkers.py -+++ b/mesonbuild/linkers/linkers.py -@@ -785,7 +785,7 @@ class AppleDynamicLinker(PosixDynamicLinkerMixin, DynamicLinker): - return self._apply_prefix('-headerpad_max_install_names') - - def bitcode_args(self) -> T.List[str]: -- return self._apply_prefix('-bitcode_bundle') -+ raise MesonException('Nixpkgs cctools does not support bitcode bundles') - - def fatal_warnings(self) -> T.List[str]: - return self._apply_prefix('-fatal_warnings') diff --git a/pkgs/by-name/me/meson/default.nix b/pkgs/by-name/me/meson/default.nix deleted file mode 100644 index b2c85c4..0000000 --- a/pkgs/by-name/me/meson/default.nix +++ /dev/null @@ -1,165 +0,0 @@ -{ 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; -in -python3.pkgs.buildPythonApplication rec { - pname = "meson"; - version = "1.4.0"; - - src = fetchFromGitHub { - owner = "mesonbuild"; - repo = "meson"; - rev = "refs/tags/${version}"; - hash = "sha256-hRTmKO2E6SIdvAhO7OJtV8dcsGm39c51H+2ZGEkdcFY="; - }; - - patches = [ - # In typical distributions, RPATH is only needed for internal libraries so - # meson removes everything else. With Nix, the locations of libraries - # are not as predictable, therefore we need to keep them in the RPATH. - # At the moment we are keeping the paths starting with /nix/store. - # https://github.com/NixOS/nixpkgs/issues/31222#issuecomment-365811634 - (substituteAll { - src = ./001-fix-rpath.patch; - inherit (builtins) storeDir; - }) - - # When Meson removes build_rpath from DT_RUNPATH entry, it just writes - # the shorter NUL-terminated new rpath over the old one to reduce - # the risk of potentially breaking the ELF files. - # But this can cause much bigger problem for Nix as it can produce - # cut-in-half-by-\0 store path references. - # Let’s just clear the whole rpath and hope for the best. - ./002-clear-old-rpath.patch - - # Meson is currently inspecting fewer variables than autoconf does, which - # makes it harder for us to use setup hooks, etc. - # https://github.com/mesonbuild/meson/pull/6827 - ./003-more-env-vars.patch - - # Unlike libtool, vanilla Meson does not pass any information about the path - # library will be installed to to g-ir-scanner, breaking the GIR when path - # other than ${!outputLib}/lib is used. - # We patch Meson to add a --fallback-library-path argument with library - # install_dir to g-ir-scanner. - ./004-gir-fallback-path.patch - - # Patch out default boost search paths to avoid impure builds on - # unsandboxed non-NixOS builds, see: - # https://github.com/NixOS/nixpkgs/issues/86131#issuecomment-711051774 - ./005-boost-Do-not-add-system-paths-on-nix.patch - - # Nixpkgs cctools does not have bitcode support. - ./006-disable-bitcode.patch - - # Fix cross-compilation of proc-macro (and mesa) - # https://github.com/mesonbuild/meson/issues/12973 - ./0001-Revert-rust-recursively-pull-proc-macro-dependencies.patch - ]; - - buildInputs = lib.optionals (python3.pythonOlder "3.9") [ - libxcrypt - ]; - - nativeBuildInputs = [ installShellFiles ]; - - nativeCheckInputs = [ - ninja - pkg-config - ]; - - 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" - ]); - - postInstall = '' - installShellCompletion --zsh data/shell-completions/zsh/_meson - installShellCompletion --bash data/shell-completions/bash/meson - ''; - - postFixup = '' - pushd $out/bin - # undo shell wrapper as meson tools are called with python - for i in *; do - mv ".$i-wrapped" "$i" - done - popd - - # Do not propagate Python - rm $out/nix-support/propagated-build-inputs - - substituteInPlace "$out/share/bash-completion/completions/meson" \ - --replace "python3 -c " "${python3.interpreter} -c " - ''; - - setupHook = ./setup-hook.sh; - - meta = { - homepage = "https://mesonbuild.com"; - description = "An open source, fast and friendly build system made in Python"; - mainProgram = "meson"; - longDescription = '' - Meson is an open source build system meant to be both extremely fast, and, - even more importantly, as user friendly as possible. - - The main design point of Meson is that every moment a developer spends - writing or debugging build definitions is a second wasted. So is every - second spent waiting for the build system to actually start compiling - code. - ''; - license = lib.licenses.asl20; - maintainers = with lib.maintainers; [ AndersonTorres ]; - inherit (python3.meta) platforms; - }; -} -# TODO: a more Nixpkgs-tailoired test suite diff --git a/pkgs/by-name/me/meson/emulator-hook.sh b/pkgs/by-name/me/meson/emulator-hook.sh deleted file mode 100644 index 4f08087..0000000 --- a/pkgs/by-name/me/meson/emulator-hook.sh +++ /dev/null @@ -1,5 +0,0 @@ -add_meson_exe_wrapper_cross_flag() { - mesonFlagsArray+=(--cross-file=@crossFile@) -} - -preConfigureHooks+=(add_meson_exe_wrapper_cross_flag) diff --git a/pkgs/by-name/me/meson/packages.nix b/pkgs/by-name/me/meson/packages.nix deleted file mode 100644 index 58d7361..0000000 --- a/pkgs/by-name/me/meson/packages.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - meson = callPackage ./. { }; - - # while building documentation meson may want to run binaries for host - # which needs an emulator - # example of an error which this fixes - # [Errno 8] Exec format error: './gdk3-scan' - mesonEmulatorHook = - makeSetupHook - { - name = "mesonEmulatorHook"; - substitutions = { - crossFile = writeText "cross-file.conf" '' - [binaries] - exe_wrapper = ${lib.escapeShellArg (stdenv.targetPlatform.emulator 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."); -} - diff --git a/pkgs/by-name/me/meson/setup-hook.sh b/pkgs/by-name/me/meson/setup-hook.sh deleted file mode 100644 index 85849fb..0000000 --- a/pkgs/by-name/me/meson/setup-hook.sh +++ /dev/null @@ -1,87 +0,0 @@ -# shellcheck shell=bash disable=SC2206 - -mesonConfigurePhase() { - runHook preConfigure - - local flagsArray=() - - if [ -z "${dontAddPrefix-}" ]; then - flagsArray+=("--prefix=$prefix") - fi - - # See multiple-outputs.sh and meson’s coredata.py - flagsArray+=( - "--libdir=${!outputLib}/lib" - "--libexecdir=${!outputLib}/libexec" - "--bindir=${!outputBin}/bin" - "--sbindir=${!outputBin}/sbin" - "--includedir=${!outputInclude}/include" - "--mandir=${!outputMan}/share/man" - "--infodir=${!outputInfo}/share/info" - "--localedir=${!outputLib}/share/locale" - "-Dauto_features=${mesonAutoFeatures:-enabled}" - "-Dwrap_mode=${mesonWrapMode:-nodownload}" - ${crossMesonFlags} - "--buildtype=${mesonBuildType:-plain}" - ) - - flagsArray+=( - $mesonFlags - "${mesonFlagsArray[@]}" - ) - - echoCmd 'mesonConfigurePhase flags' "${flagsArray[@]}" - - meson setup build "${flagsArray[@]}" - cd build || { echoCmd 'mesonConfigurePhase' "could not cd to build"; exit 1; } - - if ! [[ -v enableParallelBuilding ]]; then - enableParallelBuilding=1 - echoCmd 'mesonConfigurePhase' "enabled parallel building" - fi - - if [[ ${checkPhase-ninjaCheckPhase} = ninjaCheckPhase && -z $dontUseMesonCheck ]]; then - checkPhase=mesonCheckPhase - fi - if [[ ${installPhase-ninjaInstallPhase} = ninjaInstallPhase && -z $dontUseMesonInstall ]]; then - installPhase=mesonInstallPhase - fi - - runHook postConfigure -} - -mesonCheckPhase() { - runHook preCheck - - local flagsArray=($mesonCheckFlags "${mesonCheckFlagsArray[@]}") - - echoCmd 'mesonCheckPhase flags' "${flagsArray[@]}" - meson test --no-rebuild "${flagsArray[@]}" - - runHook postCheck -} - -mesonInstallPhase() { - runHook preInstall - - local flagsArray=() - - if [[ -n "$mesonInstallTags" ]]; then - flagsArray+=("--tags" "${mesonInstallTags// /,}") - fi - flagsArray+=( - $mesonInstallFlags - "${mesonInstallFlagsArray[@]}" - ) - - echoCmd 'mesonInstallPhase flags' "${flagsArray[@]}" - meson install --no-rebuild "${flagsArray[@]}" - - runHook postInstall -} - -if [ -z "${dontUseMesonConfigure-}" ] && [ -z "${configurePhase-}" ]; then - # shellcheck disable=SC2034 - setOutputFlags= - configurePhase=mesonConfigurePhase -fi diff --git a/pkgs/by-name/mi/minizip/default.nix b/pkgs/by-name/mi/minizip/default.nix deleted file mode 100644 index 586dd11..0000000 --- a/pkgs/by-name/mi/minizip/default.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ lib, stdenv, zlib, autoreconfHook, fetchpatch }: - -stdenv.mkDerivation { - pname = "minizip"; - inherit (zlib) src version; - - patchFlags = [ "-p3" ]; - - nativeBuildInputs = [ autoreconfHook ]; - buildInputs = [ zlib ]; - - sourceRoot = "zlib-${zlib.version}/contrib/minizip"; - - meta = { - description = "Compression library implementing the deflate compression method found in gzip and PKZIP"; - inherit (zlib.meta) license homepage; - platforms = lib.platforms.unix; - }; -} diff --git a/pkgs/by-name/mp/mpdecimal/default.nix b/pkgs/by-name/mp/mpdecimal/default.nix deleted file mode 100644 index 514c61f..0000000 --- a/pkgs/by-name/mp/mpdecimal/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "mpdecimal"; - version = "4.0.0"; - outputs = [ "out" "cxx" "doc" "dev" ]; - - src = fetchurl { - url = "https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-${version}.tar.gz"; - hash = "sha256-lCRFwyRbInMP1Bpnp8XCMdEcsbmTa5wPdjNPt9C0Row="; - }; - - configureFlags = [ "LD=${stdenv.cc.targetPrefix}cc" ]; - - postInstall = '' - mkdir -p $cxx/lib - mv $out/lib/*c++* $cxx/lib - - mkdir -p $dev/nix-support - echo -n $cxx >> $dev/nix-support/propagated-build-inputs - ''; - - meta = { - description = "Library for arbitrary precision decimal floating point arithmetic"; - - 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 - Specification. The full specification is available here: - - http://speleotrove.com/decimal/ - - libmpdec will - with minor restrictions - also conform to the IEEE - 754-2008 Standard for Floating-Point Arithmetic, provided that the - appropriate context parameters are set. - - libmpdec++ is a complete implementation of the General Decimal Arithmetic - Specification. libmpdec++ is mostly a header library around libmpdec's C - functions. - ''; - - homepage = "https://www.bytereef.org/mpdecimal/index.html"; - - downloadPage = "https://www.bytereef.org/mpdecimal/download.html"; - - changelog = "https://www.bytereef.org/mpdecimal/changelog.html"; - - license = lib.licenses.bsd2; - - maintainers = with lib.maintainers; [ kaction ]; - - platforms = lib.platforms.unix; - }; -} diff --git a/pkgs/by-name/mp/mpfr/default.nix b/pkgs/by-name/mp/mpfr/default.nix deleted file mode 100644 index dec33a6..0000000 --- a/pkgs/by-name/mp/mpfr/default.nix +++ /dev/null @@ -1,78 +0,0 @@ -{ lib -, stdenv -, fetchurl -, gmp -, writeScript -}: - -# 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. - -stdenv.mkDerivation rec { - version = "4.2.1"; - pname = "mpfr"; - - src = fetchurl { - urls = [ - "https://www.mpfr.org/${pname}-${version}/${pname}-${version}.tar.xz" - "mirror://gnu/mpfr/${pname}-${version}.tar.xz" - ]; - hash = "sha256-J3gHNTpnJpeJlpRa8T5Sgp46vXqaW3+yeTiU4Y8fy7I="; - }; - - outputs = [ "out" "dev" "doc" "info" ]; - - strictDeps = true; - # mpfr.h requires gmp.h - propagatedBuildInputs = [ gmp ]; - - 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 - # error due to missing `__dpd_trunctdkf`. - "--disable-decimal-float" - ]; - - doCheck = true; # not cross; - - enableParallelBuilding = true; - - passthru = { - updateScript = writeScript "update-mpfr" '' - #!/usr/bin/env nix-shell - #!nix-shell -i bash -p curl pcre common-updater-scripts - - set -eu -o pipefail - - # Expect the text in format of 'GNU MPFR version 4.1.1' - new_version="$(curl -s https://www.mpfr.org/mpfr-current/ | - pcregrep -o1 'GNU MPFR version ([0-9.]+)')" - update-source-version ${pname} "$new_version" - ''; - }; - - meta = { - homepage = "https://www.mpfr.org/"; - description = "Library for multiple-precision floating-point arithmetic"; - - longDescription = '' - The GNU MPFR library is a C library for multiple-precision - floating-point computations with correct rounding. MPFR is - based on the GMP multiple-precision library. - - The main goal of MPFR is to provide a library for - multiple-precision floating-point computation which is both - efficient and has a well-defined semantics. It copies the good - ideas from the ANSI/IEEE-754 standard for double-precision - floating-point arithmetic (53-bit mantissa). - ''; - - license = lib.licenses.lgpl2Plus; - - maintainers = [ ]; - platforms = lib.platforms.all; - }; -} diff --git a/pkgs/by-name/ms/mscgen/default.nix b/pkgs/by-name/ms/mscgen/default.nix deleted file mode 100644 index a391a62..0000000 --- a/pkgs/by-name/ms/mscgen/default.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ lib, stdenv -, bison -, fetchurl -, flex -, gd -, libjpeg -, libpng -, libwebp -, pkg-config -, runtimeShell -, zlib -}: - -stdenv.mkDerivation rec { - pname = "mscgen"; - version = "0.20"; - - src = fetchurl { - url = "http://www.mcternan.me.uk/mscgen/software/mscgen-src-${version}.tar.gz"; - sha256 = "3c3481ae0599e1c2d30b7ed54ab45249127533ab2f20e768a0ae58d8551ddc23"; - }; - - 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" ]; - - meta = { - homepage = "http://www.mcternan.me.uk/mscgen/"; - description = "Convert Message Sequence Chart descriptions into PNG, SVG, or EPS images"; - license = lib.licenses.gpl2; - - longDescription = '' - Mscgen is a small program that parses Message Sequence Chart - descriptions and produces PNG, SVG, EPS or server side image maps - (ismaps) as the output. Message Sequence Charts (MSCs) are a way - of representing entities and interactions over some time period - and are often used in combination with SDL. MSCs are popular in - Telecoms to specify how protocols operate although MSCs need not - be complicated to create or use. Mscgen aims to provide a simple - text language that is clear to create, edit and understand, which - can also be transformed into common image formats for display or - printing. - ''; - - platforms = lib.platforms.unix; - mainProgram = "mscgen"; - }; -} diff --git a/pkgs/by-name/mu/musl/default.nix b/pkgs/by-name/mu/musl/default.nix deleted file mode 100644 index 9f78670..0000000 --- a/pkgs/by-name/mu/musl/default.nix +++ /dev/null @@ -1,161 +0,0 @@ -{ stdenv, lib, fetchurl -, linuxHeaders ? null -, useBSDCompatHeaders ? true -}: -let - cdefs_h = fetchurl { - name = "sys-cdefs.h"; - url = "https://git.alpinelinux.org/aports/plain/main/libc-dev/sys-cdefs.h?id=7ca0ed62d4c0d713d9c7dd5b9a077fba78bce578"; - sha256 = "16l3dqnfq0f20rzbkhc38v74nqcsh9n3f343bpczqq8b1rz6vfrh"; - }; - queue_h = fetchurl { - name = "sys-queue.h"; - url = "http://git.alpinelinux.org/aports/plain/main/libc-dev/sys-queue.h?id=7ca0ed62d4c0d713d9c7dd5b9a077fba78bce578"; - sha256 = "12qm82id7zys92a1qh2l1qf2wqgq6jr4qlbjmqyfffz3s3nhfd61"; - }; - tree_h = fetchurl { - name = "sys-tree.h"; - url = "http://git.alpinelinux.org/aports/plain/main/libc-dev/sys-tree.h?id=7ca0ed62d4c0d713d9c7dd5b9a077fba78bce578"; - sha256 = "14igk6k00bnpfw660qhswagyhvr0gfqg4q55dxvaaq7ikfkrir71"; - }; - - stack_chk_fail_local_c = fetchurl { - name = "__stack_chk_fail_local.c"; - url = "https://git.alpinelinux.org/aports/plain/main/musl/__stack_chk_fail_local.c?id=9afbe3cbbf4c30ff23c733218c3c03d7e8c6461d"; - sha256 = "1nhkzzy9pklgjcq2yg89d3l18jif331srd3z3vhy5qwxl1spv6i9"; - }; - - # iconv tool, implemented by musl author. - # Original: http://git.etalabs.net/cgit/noxcuse/plain/src/iconv.c?id=02d288d89683e99fd18fe9f54d4e731a6c474a4f - # We use copy from Alpine which fixes error messages, see: - # https://git.alpinelinux.org/aports/commit/main/musl/iconv.c?id=a3d97e95f766c9c378194ee49361b375f093b26f - iconv_c = fetchurl { - name = "iconv.c"; - url = "https://git.alpinelinux.org/aports/plain/main/musl/iconv.c?id=a3d97e95f766c9c378194ee49361b375f093b26f"; - sha256 = "1mzxnc2ncq8lw9x6n7p00fvfklc9p3wfv28m68j0dfz5l8q2k6pp"; - }; - - arch = if stdenv.hostPlatform.isx86_64 - then "x86_64" - else if stdenv.hostPlatform.isx86_32 - then "i386" - else null; - -in -stdenv.mkDerivation rec { - pname = "musl"; - version = "1.2.3"; - - src = fetchurl { - url = "https://musl.libc.org/releases/${pname}-${version}.tar.gz"; - sha256 = "sha256-fVsLYGJSHkYn4JnkydyCSNMqMChelZt+7Kp4DPjP1KQ="; - }; - - enableParallelBuilding = true; - - # Disable auto-adding stack protector flags, - # so musl can selectively disable as needed - hardeningDisable = [ "stackprotector" ]; - - # Leave these, be friendlier to debuggers/perf tools - # Don't force them on, but don't force off either - postPatch = '' - substituteInPlace configure \ - --replace -fno-unwind-tables "" \ - --replace -fno-asynchronous-unwind-tables "" - ''; - - patches = [ - # Minor touchup to build system making dynamic linker symlink relative - (fetchurl { - url = "https://raw.githubusercontent.com/openwrt/openwrt/87606e25afac6776d1bbc67ed284434ec5a832b4/toolchain/musl/patches/300-relative.patch"; - sha256 = "0hfadrycb60sm6hb6by4ycgaqc9sgrhh42k39v8xpmcvdzxrsq2n"; - }) - - # fix parsing lines with optional fields in fstab etc. NOTE: Remove for the next release since it has been merged upstream - (fetchurl { - url = "https://git.musl-libc.org/cgit/musl/patch/?id=751bee0ee727e8d8b003c87cff77ac76f1dbecd6"; - sha256 = "sha256-qCw132TCSaZrkISmtDb8Q8ufyt8sAJdwACkvfwuoi/0="; - }) - ]; - CFLAGS = [ "-fstack-protector-strong" ] - ++ lib.optional stdenv.hostPlatform.isPower "-mlong-double-64"; - - configureFlags = [ - "--enable-shared" - "--enable-static" - "--enable-debug" - "--enable-wrapper=all" - "--syslibdir=${placeholder "out"}/lib" - ]; - - outputs = [ "out" "bin" "dev" ]; - - dontDisableStatic = true; - dontAddStaticConfigureFlags = true; - separateDebugInfo = true; - - NIX_DONT_SET_RPATH = true; - - preBuild = '' - ${lib.optionalString (stdenv.targetPlatform.libc == "musl" && stdenv.targetPlatform.isx86_32) - "# 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$") .) - - ${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 - - # (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 - ''; - - 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" - ]; - maintainers = with maintainers; [ thoughtpolice dtzWill ]; - }; -} diff --git a/pkgs/by-name/mu/musl/packages.nix b/pkgs/by-name/mu/musl/packages.nix deleted file mode 100644 index 7dd8e56..0000000 --- a/pkgs/by-name/mu/musl/packages.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - musl = callPackage ./. { }; - muslCross = musl.override { - stdenv = crossLibcStdenv; - }; -} diff --git a/pkgs/by-name/na/nasm/default.nix b/pkgs/by-name/na/nasm/default.nix deleted file mode 100644 index 64abd3a..0000000 --- a/pkgs/by-name/na/nasm/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ lib -, stdenv -, fetchurl -, perl -, gitUpdater -}: - -stdenv.mkDerivation rec { - pname = "nasm"; - version = "2.16.02"; - - src = fetchurl { - url = "https://www.nasm.us/pub/nasm/releasebuilds/${version}/${pname}-${version}.tar.xz"; - sha256 = "sha256-HhuULqiPIu2uiWWeFb4m+gJ+rgdH9RQTVA9S1OrEeQ0="; - }; - - nativeBuildInputs = [ perl ]; - - enableParallelBuilding = true; - - doCheck = true; - - checkPhase = '' - runHook preCheck - - make golden - make test - - runHook postCheck - ''; - - passthru.updateScript = gitUpdater { - url = "https://github.com/netwide-assembler/nasm.git"; - rev-prefix = "nasm-"; - ignoredVersions = "rc.*"; - }; - - meta = with lib; { - 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 ]; - license = licenses.bsd2; - }; -} diff --git a/pkgs/by-name/nc/ncompress/default.nix b/pkgs/by-name/nc/ncompress/default.nix deleted file mode 100644 index c4678cd..0000000 --- a/pkgs/by-name/nc/ncompress/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, stdenv, fetchFromGitHub }: - -stdenv.mkDerivation rec { - pname = "ncompress"; - version = "5.0"; - - src = fetchFromGitHub { - owner = "vapier"; - repo = "ncompress"; - rev = "v${version}"; - sha256 = "sha256-Yhs3C5/kR7Ve56E84usYJprxIMAIwXVahLi1N9TIfj0="; - }; - - makeFlags = [ "PREFIX=$(out)" ]; - installTargets = "install_core"; - - postInstall = '' - mv $out/bin/uncompress $out/bin/uncompress-ncompress - ''; - - meta = with lib; { - homepage = "http://ncompress.sourceforge.net/"; - license = licenses.publicDomain; - description = "A fast, simple LZW file compressor"; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/nc/ncurses/default.nix b/pkgs/by-name/nc/ncurses/default.nix deleted file mode 100644 index 2d383c8..0000000 --- a/pkgs/by-name/nc/ncurses/default.nix +++ /dev/null @@ -1,203 +0,0 @@ -{ 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: { - version = "6.4"; - pname = "ncurses" + lib.optionalString (abiVersion == "5") "-abi5-compat"; - - src = fetchurl { - url = "https://invisible-island.net/archives/ncurses/ncurses-${finalAttrs.version}.tar.gz"; - hash = "sha256-aTEoPZrIfFBz8wtikMTHXyFjK7T8NgOsgQCBK+0kgVk="; - }; - - 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" - ++ 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) [ - # 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" - ]; - - # 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 - ]; - - 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 - ''; - - 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}}')" - - # 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 - - 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 - - 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 - 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 - 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 - 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" - ''; - - preFixup = lib.optionalString (!stdenv.hostPlatform.isCygwin && !enableStatic) '' - rm "$out"/lib/*.a - ''; - - meta = with lib; { - homepage = "https://www.gnu.org/software/ncurses/"; - description = "Free software emulation of curses in SVR4 and more"; - longDescription = '' - The Ncurses (new curses) library is a free software emulation of curses in - System V Release 4.0, and more. It uses Terminfo format, supports pads and - color and multiple highlights and forms characters and function-key - mapping, and has all the other SYSV-curses enhancements over BSD Curses. - - The ncurses code was developed under GNU/Linux. It has been in use for - some time with OpenBSD as the system curses library, and on FreeBSD and - NetBSD as an external package. It should port easily to any - 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); - platforms = platforms.all; - }; - - passthru = { - ldflags = "-lncurses"; - inherit unicodeSupport abiVersion; - tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - }; -}) diff --git a/pkgs/by-name/nc/ncurses/packages.nix b/pkgs/by-name/nc/ncurses/packages.nix deleted file mode 100644 index 663cacd..0000000 --- a/pkgs/by-name/nc/ncurses/packages.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index fd5e24a..0000000 --- a/pkgs/by-name/ne/netbsd/default.nix +++ /dev/null @@ -1,137 +0,0 @@ -{ 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 { - - 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"}" - ]; - - 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. - - 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; - }; - - 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; - }; - - # 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; - }; - - 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; - }; - - 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; - }; - - 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; - }; - - 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; - }; - - _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; - }; - - 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 deleted file mode 100644 index 2ca3c8a..0000000 --- a/pkgs/by-name/ne/netbsd/packages.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - netbsd = callPackage ./. { }; - netbsdCross = callPackage ./. { - stdenv = crossLibcStdenv; - }; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/cksum.nix b/pkgs/by-name/ne/netbsd/pkgs/cksum.nix deleted file mode 100644 index a2ec387..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/cksum.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ lib, mkDerivation }: - -mkDerivation { - path = "usr.bin/cksum"; - version = "9.2"; - sha256 = "0msfhgyvh5c2jmc6qjnf12c378dhw32ffsl864qz4rdb2b98rfcq"; - meta.platforms = lib.platforms.netbsd; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/column.nix b/pkgs/by-name/ne/netbsd/pkgs/column.nix deleted file mode 100644 index f3cebfa..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/column.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ mkDerivation }: - -mkDerivation { - path = "usr.bin/column"; - version = "9.2"; - sha256 = "0r6b0hjn5ls3j3sv6chibs44fs32yyk2cg8kh70kb4cwajs4ifyl"; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/common.nix b/pkgs/by-name/ne/netbsd/pkgs/common.nix deleted file mode 100644 index 464fc1c..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/common.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ fetchNetBSD }: - -fetchNetBSD "common" "9.2" "1pfylz9r3ap5wnwwbwczbfjb1m5qdyspzbnmxmcdkpzz2zgj64b9" diff --git a/pkgs/by-name/ne/netbsd/pkgs/compat/compat-cxx-safe-header.patch b/pkgs/by-name/ne/netbsd/pkgs/compat/compat-cxx-safe-header.patch deleted file mode 100644 index 2aaa90b..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/compat/compat-cxx-safe-header.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff -u -r1.35.2.1 nbtool_config.h.in ---- a/tools/compat/nbtool_config.h.in 22 Apr 2015 07:18:58 -0000 1.35.2.1 -+++ b/tools/compat/nbtool_config.h.in 31 May 2018 01:46:53 -0000 -@@ -680,5 +680,14 @@ - /* Define if you have u_int8_t, but not uint8_t. */ - #undef uint8_t - -+#ifdef __cplusplus -+extern "C" { -+#endif -+ - #include "compat_defs.h" -+ -+#ifdef __cplusplus -+} -+#endif -+ - #endif /* !__NETBSD_NBTOOL_CONFIG_H__ */ diff --git a/pkgs/by-name/ne/netbsd/pkgs/compat/compat-dont-configure-twice.patch b/pkgs/by-name/ne/netbsd/pkgs/compat/compat-dont-configure-twice.patch deleted file mode 100644 index 2758e25..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/compat/compat-dont-configure-twice.patch +++ /dev/null @@ -1,22 +0,0 @@ -commit f2d0ff85e05b49e9d11735ce4810b242c1dbf5af -Author: John Ericson -Date: Wed Sep 1 15:38:56 2021 +0000 - - Make should not hit configure - -diff --git a/Makefile b/Makefile -index b5adb8a5f2e9..1a914ef16739 100644 ---- a/tools/compat/Makefile -+++ b/tools/compat/Makefile -@@ -76,11 +76,6 @@ _CURDIR:= ${.CURDIR} - - SRCS:= ${SRCS:M*.c} - --config.cache: include/.stamp configure nbtool_config.h.in defs.mk.in -- rm -f ${.TARGET} -- CC=${HOST_CC:Q} CFLAGS=${HOST_CFLAGS:Q} LDFLAGS=${HOST_LDFLAGS:Q} \ -- ${HOST_SH} ${.CURDIR}/configure --cache-file=config.cache -- - defs.mk: config.cache - @touch ${.TARGET} - diff --git a/pkgs/by-name/ne/netbsd/pkgs/compat/compat-no-force-native.patch b/pkgs/by-name/ne/netbsd/pkgs/compat/compat-no-force-native.patch deleted file mode 100644 index 117fb7e..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/compat/compat-no-force-native.patch +++ /dev/null @@ -1,101 +0,0 @@ -commit 5acf3bdea5140e90135d15d6479f29fbf624f75e -Author: John Ericson -Date: Wed Sep 1 15:38:56 2021 +0000 - - Don't force building and installing for the build platform - - Also remove `compat/` subdir from install directories. - -diff --git a/Makefile b/Makefile -index 4bcf227f0e75..9ed1d6eea6ff 100644 ---- a/tools/compat/Makefile -+++ b/tools/compat/Makefile -@@ -1,6 +1,6 @@ - # $NetBSD: Makefile,v 1.87 2019/05/08 02:25:50 thorpej Exp $ - --HOSTLIB= nbcompat -+LIB= nbcompat - --.include -+.include - -@@ -94,63 +94,37 @@ include/.stamp: - - # Install rules - --HOST_LIBDIR= ${TOOLDIR}/lib --HOST_INCSDIR= ${TOOLDIR}/include --HOST_SHAREDIR= ${TOOLDIR}/share -- --install: .PHONY install.lib includes install.defs.mk -- --# Install lib${HOSTLIB}.a in ${TOOLDIR}/lib --install.lib: .PHONY ${HOST_LIBDIR}/lib${HOSTLIB}.a --${HOST_LIBDIR}/lib${HOSTLIB}.a: lib${HOSTLIB}.a -- ${_MKTARGET_INSTALL} -- ${HOST_INSTALL_DIR} ${HOST_LIBDIR} -- ${HOST_INSTALL_FILE} -m ${LIBMODE} ${.ALLSRC} ${.TARGET} -+install: .PHONY includes install.defs.mk - - .for _f in ${INCFILES} --HOST_INCINSTFILES+= ${HOST_INCSDIR}/compat/${_f} --${HOST_INCSDIR}/compat/${_f}: ${_f} -+INCINSTFILES+= ${INCSDIR}/${_f} -+${INCSDIR}/${_f}: ${_f} - ${_MKTARGET_INSTALL} -- ${HOST_INSTALL_FILE} ${.ALLSRC} ${.TARGET} -+ ${INSTALL_FILE} ${.ALLSRC} ${.TARGET} - .endfor - - .for _d in ${INCSUBDIRS} --HOST_INCINSTDIRS+= ${HOST_INCSDIR}/compat/${_d} --${HOST_INCSDIR}/compat/${_d}: -+INCINSTDIRS+= ${INCSDIR}/${_d} -+${INCSDIR}/${_d}: - ${_MKTARGET_INSTALL} -- ${HOST_INSTALL_DIR} ${.TARGET} -+ ${INSTALL_DIR} ${.TARGET} - .endfor - --# Install include files in ${TOOLDIR}/include/compat --includes: .PHONY ${HOST_INCINSTDIRS} .WAIT ${HOST_INCINSTFILES} -+# Install include files in ${INCSDIR} -+includes: .PHONY ${INCINSTDIRS} .WAIT ${INCINSTFILES} - @(cd include && find . -name '*.h' -print | while read f ; do \ -- ${HOST_INSTALL_FILE} $$f ${HOST_INCSDIR}/compat/$$f ; \ -+ ${INSTALL_FILE} $$f ${INCSDIR}/$$f ; \ - done) - - --# Install defs.mk in ${TOOLDIR}/share/compat --install.defs.mk: .PHONY ${HOST_SHAREDIR}/compat/defs.mk --${HOST_SHAREDIR}/compat/defs.mk: defs.mk -+# Install defs.mk in ${DATADIR} -+install.defs.mk: .PHONY ${DATADIR}/defs.mk -+${DATADIR}/defs.mk: defs.mk - ${_MKTARGET_INSTALL} -- ${HOST_INSTALL_DIR} ${HOST_SHAREDIR} -- ${HOST_INSTALL_DIR} ${HOST_SHAREDIR}/compat -- ${HOST_INSTALL_FILE} ${.ALLSRC} ${.TARGET} -- --# bsd.hostlib.mk wants HOST_CPPFLAGS, not CPPFLAGS -- --HOST_CPPFLAGS:= ${CPPFLAGS} --CPPFLAGS:= # empty -- --.include -- --# Use uninstalled copy of host-mkdep --HOST_MKDEP_OBJ!= cd ${.CURDIR}/../host-mkdep && ${PRINTOBJDIR} --HOST_MKDEP= ${HOST_MKDEP_OBJ}/host-mkdep --MKDEP= ${HOST_MKDEP} -+ ${INSTALL_DIR} ${DATADIR} -+ ${INSTALL_FILE} ${.ALLSRC} ${.TARGET} - --# Use uninstalled copy of the install program --INSTALL_OBJ!= cd ${NETBSDSRCDIR}/tools/binstall && ${PRINTOBJDIR} --INSTALL= ${INSTALL_OBJ}/xinstall -+.include - - # Run "${TOOLDIR}/bin/nbmake-${MACHINE} regen" by hand after editing - # configure.ac. See more detailed instructions in configure.ac. diff --git a/pkgs/by-name/ne/netbsd/pkgs/compat/compat-setup-hook.sh b/pkgs/by-name/ne/netbsd/pkgs/compat/compat-setup-hook.sh deleted file mode 100644 index acd90b7..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/compat/compat-setup-hook.sh +++ /dev/null @@ -1,5 +0,0 @@ -# See pkgs/build-support/setup-hooks/role.bash -getHostRole - -export NIX_LDFLAGS${role_post}+=" -lnbcompat" -export NIX_CFLAGS_COMPILE${role_post}+=" -DHAVE_NBTOOL_CONFIG_H" diff --git a/pkgs/by-name/ne/netbsd/pkgs/compat/libbsd-overlay.pc b/pkgs/by-name/ne/netbsd/pkgs/compat/libbsd-overlay.pc deleted file mode 100644 index 3aadabe..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/compat/libbsd-overlay.pc +++ /dev/null @@ -1,11 +0,0 @@ -prefix=@out@ -exec_prefix=${prefix} -libdir=${exec_prefix}/lib -includedir=${prefix}/include - -Name: nbcompat -Description: NetBSD compatibility framework -Version: @version@ -URL: https://www.netbsd.org/ -Libs: -L${libdir} -lnbcompat -Cflags: -I${includedir} -DHAVE_NBTOOL_CONFIG_H -include nbtool_config.h diff --git a/pkgs/by-name/ne/netbsd/pkgs/compat/package.nix b/pkgs/by-name/ne/netbsd/pkgs/compat/package.nix deleted file mode 100644 index a1336ad..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/compat/package.nix +++ /dev/null @@ -1,120 +0,0 @@ -{ lib, mkDerivation, stdenv -, zlib -, defaultMakeFlags -, coreutils -, cctools-port -, include, libc, libutil -, install -, bsdSetupHook, netbsdSetupHook -, makeMinimal -, rsync -, fetchNetBSD -, _mainLibcExtraPaths -}: - -mkDerivation (let - version = "9.2"; - commonDeps = [ zlib ]; - in { - path = "tools/compat"; - sha256 = "1vsxg7136nlhc72vpa664vs22874xh7ila95nkmsd8crn3z3cyn0"; - inherit version; - - setupHooks = [ - ../../../../../build-support/setup-hooks/role.bash - ./compat-setup-hook.sh - ]; - - preConfigure = '' - 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" - ]; - - nativeBuildInputs = commonDeps ++ [ - bsdSetupHook netbsdSetupHook - makeMinimal - rsync - ]; - - buildInputs = commonDeps; - - # 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" - ]; - RENAME = "-D"; - - passthru.tests = { netbsd-install = install; }; - - patches = [ - ./compat-cxx-safe-header.patch - ./compat-dont-configure-twice.patch - ./compat-no-force-native.patch - ]; - - preInstall = '' - makeFlagsArray+=('INSTALL_FILE=''${INSTALL} ''${COPY} ''${PRESERVE} ''${RENAME}') - makeFlagsArray+=('INSTALL_DIR=''${INSTALL} -d') - 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 - - # 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") - ] ++ libutil.extraPaths ++ _mainLibcExtraPaths; - }) diff --git a/pkgs/by-name/ne/netbsd/pkgs/config.nix b/pkgs/by-name/ne/netbsd/pkgs/config.nix deleted file mode 100644 index 277d701..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/config.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ mkDerivation -, bsdSetupHook, netbsdSetupHook -, makeMinimal, install, mandoc, byacc, flex, rsync -, compatIfNeeded -, cksum -}: -mkDerivation { - path = "usr.bin/config"; - version = "9.2"; - sha256 = "1yz3n4hncdkk6kp595fh2q5lg150vpqg8iw2dccydkyw4y3hgsjj"; - env.NIX_CFLAGS_COMPILE = toString [ "-DMAKE_BOOTSTRAP" ]; - nativeBuildInputs = [ - 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 deleted file mode 100644 index 2d13ced..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/csu.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib, mkDerivation -, bsdSetupHook, netbsdSetupHook -, makeMinimal -, install, mandoc, groff, flex -, byacc, genassym, gencat, lorder, tsort, statHook, rsync -, headers -, sys -, ld_elf_so -}: - -mkDerivation { - path = "lib/csu"; - version = "9.2"; - sha256 = "0al5jfazvhlzn9hvmnrbchx4d0gm282hq5gp4xs2zmj9ycmf6d03"; - meta.platforms = lib.platforms.netbsd; - nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook - makeMinimal - install mandoc groff flex - byacc genassym gencat lorder tsort statHook rsync - ]; - buildInputs = [ headers ]; - extraPaths = [ sys.src ld_elf_so.src ]; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/dict.nix b/pkgs/by-name/ne/netbsd/pkgs/dict.nix deleted file mode 100644 index 0d7d026..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/dict.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ mkDerivation, defaultMakeFlags }: - -mkDerivation { - path = "share/dict"; - noCC = true; - version = "9.2"; - sha256 = "0svfc0byk59ri37pyjslv4c4rc7zw396r73mr593i78d39q5g3ad"; - makeFlags = defaultMakeFlags ++ [ "BINDIR=$(out)/share" ]; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/fts/fts-setup-hook.sh b/pkgs/by-name/ne/netbsd/pkgs/fts/fts-setup-hook.sh deleted file mode 100644 index b6cb5aa..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/fts/fts-setup-hook.sh +++ /dev/null @@ -1,4 +0,0 @@ -# See pkgs/build-support/setup-hooks/role.bash -getHostRole - -export NIX_LDFLAGS${role_post}+=" -lfts" diff --git a/pkgs/by-name/ne/netbsd/pkgs/fts/package.nix b/pkgs/by-name/ne/netbsd/pkgs/fts/package.nix deleted file mode 100644 index 0393d36..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/fts/package.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ mkDerivation -, bsdSetupHook, netbsdSetupHook, rsync -, compatIfNeeded -, fetchNetBSD -}: - -mkDerivation { - pname = "fts"; - path = "include/fts.h"; - sha256 = "01d4fpxvz1pgzfk5xznz5dcm0x0gdzwcsfm1h3d0xc9kc6hj2q77"; - version = "9.2"; - nativeBuildInputs = [ - 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/gen/fts.3" "9.2" "1asxw0n3fhjdadwkkq3xplfgqgl3q32w1lyrvbakfa3gs0wz5zc1") - ]; - skipIncludesPhase = true; - buildPhase = '' - "$CC" -c -Iinclude -Ilib/libc/include lib/libc/gen/fts.c \ - -o lib/libc/gen/fts.o - "$AR" -rsc libfts.a lib/libc/gen/fts.o - ''; - installPhase = '' - runHook preInstall - - install -D lib/libc/gen/fts.3 $out/share/man/man3/fts.3 - install -D include/fts.h $out/include/fts.h - install -D lib/libc/include/namespace.h $out/include/namespace.h - install -D libfts.a $out/lib/libfts.a - - runHook postInstall - ''; - setupHooks = [ - ../../../../../build-support/setup-hooks/role.bash - ./fts-setup-hook.sh - ]; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/genassym.nix b/pkgs/by-name/ne/netbsd/pkgs/genassym.nix deleted file mode 100644 index 7f81a77..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/genassym.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ mkDerivation }: - -mkDerivation { - path = "usr.bin/genassym"; - version = "9.2"; - sha256 = "1acl1dz5kvh9h5806vkz2ap95rdsz7phmynh5i3x5y7agbki030c"; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/gencat.nix b/pkgs/by-name/ne/netbsd/pkgs/gencat.nix deleted file mode 100644 index 411be85..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/gencat.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ mkDerivation }: - -mkDerivation { - path = "usr.bin/gencat"; - version = "9.2"; - sha256 = "0gd463x1hg36bhr7y0xryb5jyxk0z0g7xvy8rgk82nlbnlnsbbwb"; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/getconf.nix b/pkgs/by-name/ne/netbsd/pkgs/getconf.nix deleted file mode 100644 index c8483d4..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/getconf.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ mkDerivation }: - -mkDerivation { - path = "usr.bin/getconf"; - sha256 = "122vslz4j3h2mfs921nr2s6m078zcj697yrb75rwp2hnw3qz4s8q"; - version = "9.2"; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/getent/getent.patch b/pkgs/by-name/ne/netbsd/pkgs/getent/getent.patch deleted file mode 100644 index 18258b6..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/getent/getent.patch +++ /dev/null @@ -1,455 +0,0 @@ -Author: Matthew Bauer -Description: Remove unavailable getent databases -Version: 7.1.2 ---- a/usr.bin/getent/getent.c 2018-04-16 13:33:49.000000000 -0500 -+++ b/usr.bin/getent/getent.c 2018-04-16 13:29:30.000000000 -0500 -@@ -42,7 +42,6 @@ - #include - #include - #include --#include - #include - #include - #include -@@ -57,27 +56,16 @@ - #include - - #include --#include - - #include /* for INET6_ADDRSTRLEN */ - --#include -- --#include -- - static int usage(void) __attribute__((__noreturn__)); - static int parsenum(const char *, unsigned long *); --static int disktab(int, char *[]); --static int gettytab(int, char *[]); --static int ethers(int, char *[]); - static int group(int, char *[]); - static int hosts(int, char *[]); --static int netgroup(int, char *[]); - static int networks(int, char *[]); - static int passwd(int, char *[]); --static int printcap(int, char *[]); - static int protocols(int, char *[]); --static int rpc(int, char *[]); - static int services(int, char *[]); - static int shells(int, char *[]); - -@@ -92,17 +80,11 @@ - const char *name; - int (*callback)(int, char *[]); - } databases[] = { -- { "disktab", disktab, }, -- { "ethers", ethers, }, -- { "gettytab", gettytab, }, - { "group", group, }, - { "hosts", hosts, }, -- { "netgroup", netgroup, }, - { "networks", networks, }, - { "passwd", passwd, }, -- { "printcap", printcap, }, - { "protocols", protocols, }, -- { "rpc", rpc, }, - { "services", services, }, - { "shells", shells, }, - -@@ -195,49 +177,6 @@ - (void)printf("\n"); - } - -- -- /* -- * ethers -- */ -- --static int --ethers(int argc, char *argv[]) --{ -- char hostname[MAXHOSTNAMELEN + 1], *hp; -- struct ether_addr ea, *eap; -- int i, rv; -- -- assert(argc > 1); -- assert(argv != NULL); -- --#define ETHERSPRINT (void)printf("%-17s %s\n", ether_ntoa(eap), hp) -- -- rv = RV_OK; -- if (argc == 2) { -- warnx("Enumeration not supported on ethers"); -- rv = RV_NOENUM; -- } else { -- for (i = 2; i < argc; i++) { -- if ((eap = ether_aton(argv[i])) == NULL) { -- eap = &ea; -- hp = argv[i]; -- if (ether_hostton(hp, eap) != 0) { -- rv = RV_NOTFOUND; -- break; -- } -- } else { -- hp = hostname; -- if (ether_ntohost(hp, eap) != 0) { -- rv = RV_NOTFOUND; -- break; -- } -- } -- ETHERSPRINT; -- } -- } -- return rv; --} -- - /* - * group - */ -@@ -298,7 +237,7 @@ - hosts(int argc, char *argv[]) - { - struct hostent *he; -- char addr[IN6ADDRSZ]; -+ char addr[NS_IN6ADDRSZ]; - int i, rv; - - assert(argc > 1); -@@ -312,9 +251,9 @@ - } else { - for (i = 2; i < argc; i++) { - if (inet_pton(AF_INET6, argv[i], (void *)addr) > 0) -- he = gethostbyaddr(addr, IN6ADDRSZ, AF_INET6); -+ he = gethostbyaddr(addr, NS_IN6ADDRSZ, AF_INET6); - else if (inet_pton(AF_INET, argv[i], (void *)addr) > 0) -- he = gethostbyaddr(addr, INADDRSZ, AF_INET); -+ he = gethostbyaddr(addr, NS_INADDRSZ, AF_INET); - else - he = gethostbyname(argv[i]); - if (he != NULL) -@@ -330,48 +269,6 @@ - } - - /* -- * netgroup -- */ --static int --netgroup(int argc, char *argv[]) --{ -- int rv, i; -- bool first; -- const char *host, *user, *domain; -- -- assert(argc > 1); -- assert(argv != NULL); -- --#define NETGROUPPRINT(s) (((s) != NULL) ? (s) : "") -- -- rv = RV_OK; -- if (argc == 2) { -- warnx("Enumeration not supported on netgroup"); -- rv = RV_NOENUM; -- } else { -- for (i = 2; i < argc; i++) { -- setnetgrent(argv[i]); -- first = true; -- while (getnetgrent(&host, &user, &domain) != 0) { -- if (first) { -- first = false; -- (void)fputs(argv[i], stdout); -- } -- (void)printf(" (%s,%s,%s)", -- NETGROUPPRINT(host), -- NETGROUPPRINT(user), -- NETGROUPPRINT(domain)); -- } -- if (!first) -- (void)putchar('\n'); -- endnetgrent(); -- } -- } -- -- return rv; --} -- -- /* - * networks - */ - -@@ -464,227 +361,6 @@ - return rv; - } - --static char * --mygetent(const char * const * db_array, const char *name) --{ -- char *buf = NULL; -- int error; -- -- switch (error = cgetent(&buf, db_array, name)) { -- case -3: -- warnx("tc= loop in record `%s' in `%s'", name, db_array[0]); -- break; -- case -2: -- warn("system error fetching record `%s' in `%s'", name, -- db_array[0]); -- break; -- case -1: -- case 0: -- break; -- case 1: -- warnx("tc= reference not found in record for `%s' in `%s'", -- name, db_array[0]); -- break; -- default: -- warnx("unknown error %d in record `%s' in `%s'", error, name, -- db_array[0]); -- break; -- } -- return buf; --} -- --static char * --mygetone(const char * const * db_array, int first) --{ -- char *buf = NULL; -- int error; -- -- switch (error = (first ? cgetfirst : cgetnext)(&buf, db_array)) { -- case -2: -- warnx("tc= loop in `%s'", db_array[0]); -- break; -- case -1: -- warn("system error fetching record in `%s'", db_array[0]); -- break; -- case 0: -- case 1: -- break; -- case 2: -- warnx("tc= reference not found in `%s'", db_array[0]); -- break; -- default: -- warnx("unknown error %d in `%s'", error, db_array[0]); -- break; -- } -- return buf; --} -- --static void --capprint(const char *cap) --{ -- char *c = strchr(cap, ':'); -- if (c) -- if (c == cap) -- (void)printf("true\n"); -- else { -- int l = (int)(c - cap); -- (void)printf("%*.*s\n", l, l, cap); -- } -- else -- (void)printf("%s\n", cap); --} -- --static void --prettyprint(char *b) --{ --#define TERMWIDTH 65 -- int did = 0; -- size_t len; -- char *s, c; -- -- for (;;) { -- len = strlen(b); -- if (len <= TERMWIDTH) { --done: -- if (did) -- printf("\t:"); -- printf("%s\n", b); -- return; -- } -- for (s = b + TERMWIDTH; s > b && *s != ':'; s--) -- continue; -- if (*s++ != ':') -- goto done; -- c = *s; -- *s = '\0'; -- if (did) -- printf("\t:"); -- did++; -- printf("%s\\\n", b); -- *s = c; -- b = s; -- } --} -- --static void --handleone(const char * const *db_array, char *b, int recurse, int pretty, -- int level) --{ -- char *tc; -- -- if (level && pretty) -- printf("\n"); -- if (pretty) -- prettyprint(b); -- else -- printf("%s\n", b); -- if (!recurse || cgetstr(b, "tc", &tc) <= 0) -- return; -- -- b = mygetent(db_array, tc); -- free(tc); -- -- if (b == NULL) -- return; -- -- handleone(db_array, b, recurse, pretty, ++level); -- free(b); --} -- --static int --handlecap(const char *db, int argc, char *argv[]) --{ -- static const char sfx[] = "=#:"; -- const char *db_array[] = { db, NULL }; -- char *b, *cap; -- int i, rv, c; -- size_t j; -- int expand = 1, recurse = 0, pretty = 0; -- -- assert(argc > 1); -- assert(argv != NULL); -- -- argc--; -- argv++; -- while ((c = getopt(argc, argv, "pnr")) != -1) -- switch (c) { -- case 'n': -- expand = 0; -- break; -- case 'r': -- expand = 0; -- recurse = 1; -- break; -- case 'p': -- pretty = 1; -- break; -- default: -- usage(); -- break; -- } -- -- argc -= optind; -- argv += optind; -- csetexpandtc(expand); -- rv = RV_OK; -- if (argc == 0) { -- for (b = mygetone(db_array, 1); b; b = mygetone(db_array, 0)) { -- handleone(db_array, b, recurse, pretty, 0); -- free(b); -- } -- } else { -- if ((b = mygetent(db_array, argv[0])) == NULL) -- return RV_NOTFOUND; -- if (argc == 1) -- handleone(db_array, b, recurse, pretty, 0); -- else { -- for (i = 2; i < argc; i++) { -- for (j = 0; j < sizeof(sfx) - 1; j++) { -- cap = cgetcap(b, argv[i], sfx[j]); -- if (cap) { -- capprint(cap); -- break; -- } -- } -- if (j == sizeof(sfx) - 1) -- printf("false\n"); -- } -- } -- free(b); -- } -- return rv; --} -- -- /* -- * gettytab -- */ -- --static int --gettytab(int argc, char *argv[]) --{ -- return handlecap(_PATH_GETTYTAB, argc, argv); --} -- -- /* -- * printcap -- */ -- --static int --printcap(int argc, char *argv[]) --{ -- return handlecap(_PATH_PRINTCAP, argc, argv); --} -- -- /* -- * disktab -- */ -- --static int --disktab(int argc, char *argv[]) --{ -- return handlecap(_PATH_DISKTAB, argc, argv); --} -- - /* - * protocols - */ -@@ -726,47 +402,6 @@ - } - - /* -- * rpc -- */ -- --static int --rpc(int argc, char *argv[]) --{ -- struct rpcent *re; -- unsigned long id; -- int i, rv; -- -- assert(argc > 1); -- assert(argv != NULL); -- --#define RPCPRINT printfmtstrings(re->r_aliases, " ", " ", \ -- "%-16s %6d", \ -- re->r_name, re->r_number) -- -- setrpcent(1); -- rv = RV_OK; -- if (argc == 2) { -- while ((re = getrpcent()) != NULL) -- RPCPRINT; -- } else { -- for (i = 2; i < argc; i++) { -- if (parsenum(argv[i], &id)) -- re = getrpcbynumber((int)id); -- else -- re = getrpcbyname(argv[i]); -- if (re != NULL) -- RPCPRINT; -- else { -- rv = RV_NOTFOUND; -- break; -- } -- } -- } -- endrpcent(); -- return rv; --} -- -- /* - * services - */ - diff --git a/pkgs/by-name/ne/netbsd/pkgs/getent/package.nix b/pkgs/by-name/ne/netbsd/pkgs/getent/package.nix deleted file mode 100644 index 7a9acb1..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/getent/package.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ mkDerivation }: - -mkDerivation { - path = "usr.bin/getent"; - sha256 = "1qngywcmm0y7nl8h3n8brvkxq4jw63szbci3kc1q6a6ndhycbbvr"; - version = "9.2"; - patches = [ ./getent.patch ]; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/headers.nix b/pkgs/by-name/ne/netbsd/pkgs/headers.nix deleted file mode 100644 index 646e567..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/headers.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ lib, symlinkJoin, include, sys-headers, libpthread-headers }: - -symlinkJoin { - name = "netbsd-headers-9.2"; - paths = [ - include - sys-headers - libpthread-headers - ]; - meta.platforms = lib.platforms.netbsd; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/i18n_module.nix b/pkgs/by-name/ne/netbsd/pkgs/i18n_module.nix deleted file mode 100644 index 60b091e..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/i18n_module.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ lib, mkDerivation, libc }: - -mkDerivation { - path = "lib/i18n_module"; - version = "9.2"; - sha256 = "0w6y5v3binm7gf2kn7y9jja8k18rhnyl55cvvfnfipjqdxvxd9jd"; - meta.platforms = lib.platforms.netbsd; - extraPaths = [ libc.src ]; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/include.nix b/pkgs/by-name/ne/netbsd/pkgs/include.nix deleted file mode 100644 index 1ecdec9..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/include.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ lib, mkDerivation -, bsdSetupHook, netbsdSetupHook -, makeMinimal -, install, mandoc, groff, rsync, nbperf, rpcgen -, common -, defaultMakeFlags -, stdenv -}: - -mkDerivation { - path = "include"; - version = "9.2"; - sha256 = "0nxnmj4c8s3hb9n3fpcmd0zl3l1nmhivqgi9a35sis943qvpgl9h"; - nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook - makeMinimal - install mandoc groff rsync nbperf rpcgen - ]; - - # The makefiles define INCSDIR per subdirectory, so we have to set - # something else on the command line so those definitions aren't - # overridden. - postPatch = '' - find "$BSDSRCDIR" -name Makefile -exec \ - sed -i -E \ - -e 's_/usr/include_''${INCSDIR0}_' \ - {} \; - ''; - - # multiple header dirs, see above - postConfigure = '' - makeFlags=''${makeFlags/INCSDIR/INCSDIR0} - ''; - - extraPaths = [ common ]; - headersOnly = true; - noCC = true; - meta.platforms = lib.platforms.netbsd; - makeFlags = defaultMakeFlags ++ [ "RPCGEN_CPP=${stdenv.cc.cc}/bin/cpp" ]; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/install/install-setup-hook.sh b/pkgs/by-name/ne/netbsd/pkgs/install/install-setup-hook.sh deleted file mode 100644 index 4bfd4d7..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/install/install-setup-hook.sh +++ /dev/null @@ -1,8 +0,0 @@ -addNetBSDInstallMakeFlags() { - export INSTALL_FILE="install -U -c" - export INSTALL_DIR="install -U -d" - export INSTALL_LINK="install -U -l h" - export INSTALL_SYMLINK="install -U -l s" -} - -preConfigureHooks+=(addNetBSDInstallMakeFlags) diff --git a/pkgs/by-name/ne/netbsd/pkgs/install/package.nix b/pkgs/by-name/ne/netbsd/pkgs/install/package.nix deleted file mode 100644 index 991517a..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/install/package.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ mkDerivation -, writeShellScript -, mtree, make -, bsdSetupHook, netbsdSetupHook -, makeMinimal -, mandoc, groff, rsync -, compatIfNeeded, fts - -}: - -# HACK: to ensure parent directories exist. This emulates GNU -# install’s -D option. No alternative seems to exist in BSD install. -let - binstall = writeShellScript "binstall" '' - set -eu - for last in "$@"; do true; done - mkdir -p $(dirname $last) - @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 - - 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; - } diff --git a/pkgs/by-name/ne/netbsd/pkgs/ld_elf_so.nix b/pkgs/by-name/ne/netbsd/pkgs/ld_elf_so.nix deleted file mode 100644 index 1496ad6..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/ld_elf_so.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ lib -, mkDerivation -, libc -, defaultMakeFlags -}: - -mkDerivation { - path = "libexec/ld.elf_so"; - version = "9.2"; - sha256 = "0ia9mqzdljly0vqfwflm5mzz55k7qsr4rw2bzhivky6k30vgirqa"; - meta.platforms = lib.platforms.netbsd; - LIBC_PIC = "${libc}/lib/libc_pic.a"; - # Hack to prevent a symlink being installed here for compatibility. - SHLINKINSTALLDIR = "/usr/libexec"; - USE_FORT = "yes"; - makeFlags = defaultMakeFlags ++ [ "BINDIR=$(out)/libexec" "CLIBOBJ=${libc}/lib" ]; - extraPaths = [ libc.src ] ++ libc.extraPaths; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/libarch.nix b/pkgs/by-name/ne/netbsd/pkgs/libarch.nix deleted file mode 100644 index 93ea02f..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/libarch.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ lib, mkDerivation }: - -mkDerivation { - path = "lib/libarch"; - version = "9.2"; - sha256 = "6ssenRhuSwp0Jn71ErT0PrEoCJ+cIYRztwdL4QTDZsQ="; - meta.platforms = lib.platforms.netbsd; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/libc.nix b/pkgs/by-name/ne/netbsd/pkgs/libc.nix deleted file mode 100644 index ebc01a1..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/libc.nix +++ /dev/null @@ -1,76 +0,0 @@ -{ lib -, mkDerivation -, defaultMakeFlags -, _mainLibcExtraPaths -, fetchNetBSD -, bsdSetupHook, netbsdSetupHook -, makeMinimal -, install, mandoc, groff, flex -, byacc, genassym, gencat, lorder, tsort, statHook, rsync, rpcgen -, csu, headers -, librt -}: - -mkDerivation { - path = "lib/libc"; - version = "9.2"; - sha256 = "1y9c13igg0kai07sqvf9cm6yqmd8lhfd8hq3q7biilbgs1l99as3"; - USE_FORT = "yes"; - MKPROFILE = "no"; - extraPaths = _mainLibcExtraPaths ++ [ - (fetchNetBSD "external/bsd/jemalloc" "9.2" "0cq704swa0h2yxv4gc79z2lwxibk9k7pxh3q5qfs7axx3jx3n8kb") - ]; - nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook - makeMinimal - install mandoc groff flex - byacc genassym gencat lorder tsort statHook rsync rpcgen - ]; - 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"]; - postInstall = '' - pushd ${headers} - find . -type d -exec mkdir -p $out/\{} \; - find . \( -type f -o -type l \) -exec cp -pr \{} $out/\{} \; - popd - - pushd ${csu} - find . -type d -exec mkdir -p $out/\{} \; - find . \( -type f -o -type l \) -exec cp -pr \{} $out/\{} \; - popd - - NIX_CFLAGS_COMPILE+=" -B$out/lib" - NIX_CFLAGS_COMPILE+=" -I$out/include" - NIX_LDFLAGS+=" -L$out/lib" - - make -C $BSDSRCDIR/lib/libpthread $makeFlags - make -C $BSDSRCDIR/lib/libpthread $makeFlags install - - make -C $BSDSRCDIR/lib/libm $makeFlags - make -C $BSDSRCDIR/lib/libm $makeFlags install - - make -C $BSDSRCDIR/lib/libresolv $makeFlags - make -C $BSDSRCDIR/lib/libresolv $makeFlags install - - make -C $BSDSRCDIR/lib/librpcsvc $makeFlags - make -C $BSDSRCDIR/lib/librpcsvc $makeFlags install - - make -C $BSDSRCDIR/lib/i18n_module $makeFlags - make -C $BSDSRCDIR/lib/i18n_module $makeFlags install - - make -C $BSDSRCDIR/lib/libutil $makeFlags - make -C $BSDSRCDIR/lib/libutil $makeFlags install - - make -C $BSDSRCDIR/lib/librt $makeFlags - make -C $BSDSRCDIR/lib/librt $makeFlags install - - make -C $BSDSRCDIR/lib/libcrypt $makeFlags - make -C $BSDSRCDIR/lib/libcrypt $makeFlags install - ''; - inherit (librt) postPatch; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/libcrypt.nix b/pkgs/by-name/ne/netbsd/pkgs/libcrypt.nix deleted file mode 100644 index c5f9def..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/libcrypt.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ lib, mkDerivation }: - -mkDerivation { - path = "lib/libcrypt"; - version = "9.2"; - sha256 = "0siqan1wdqmmhchh2n8w6a8x1abbff8n4yb6jrqxap3hqn8ay54g"; - SHLIBINSTALLDIR = "$(out)/lib"; - meta.platforms = lib.platforms.netbsd; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/libcurses.nix b/pkgs/by-name/ne/netbsd/pkgs/libcurses.nix deleted file mode 100644 index 2409879..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/libcurses.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, mkDerivation, stdenv -, libterminfo -, compatIfNeeded -, defaultMakeFlags -}: - -mkDerivation { - path = "lib/libcurses"; - 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)="); - propagatedBuildInputs = compatIfNeeded; - MKDOC = "no"; # missing vfontedpr - makeFlags = defaultMakeFlags ++ [ "LIBDO.terminfo=${libterminfo}/lib" ]; - postPatch = lib.optionalString (!stdenv.isDarwin) '' - substituteInPlace $COMPONENT_PATH/printw.c \ - --replace "funopen(win, NULL, __winwrite, NULL, NULL)" NULL \ - --replace "__strong_alias(vwprintw, vw_printw)" 'extern int vwprintw(WINDOW*, const char*, va_list) __attribute__ ((alias ("vw_printw")));' - substituteInPlace $COMPONENT_PATH/scanw.c \ - --replace "__strong_alias(vwscanw, vw_scanw)" 'extern int vwscanw(WINDOW*, const char*, va_list) __attribute__ ((alias ("vw_scanw")));' - ''; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/libedit.nix b/pkgs/by-name/ne/netbsd/pkgs/libedit.nix deleted file mode 100644 index eb734f3..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/libedit.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ 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" - ]; - } diff --git a/pkgs/by-name/ne/netbsd/pkgs/libm.nix b/pkgs/by-name/ne/netbsd/pkgs/libm.nix deleted file mode 100644 index 8699008..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/libm.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ lib, mkDerivation, sys }: - -mkDerivation { - path = "lib/libm"; - version = "9.2"; - sha256 = "1apwfr26shdmbqqnmg7hxf7bkfxw44ynqnnnghrww9bnhqdnsy92"; - SHLIBINSTALLDIR = "$(out)/lib"; - meta.platforms = lib.platforms.netbsd; - extraPaths = [ sys.src ]; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/libossaudio.nix b/pkgs/by-name/ne/netbsd/pkgs/libossaudio.nix deleted file mode 100644 index 51bbc21..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/libossaudio.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ lib, mkDerivation }: - -mkDerivation { - path = "lib/libossaudio"; - version = "9.2"; - sha256 = "16l3bfy6dcwqnklvh3x0ps8ld1y504vf57v9rx8f9adzhb797jh0"; - meta.platforms = lib.platforms.netbsd; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/libpci.nix b/pkgs/by-name/ne/netbsd/pkgs/libpci.nix deleted file mode 100644 index 21ca0f6..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/libpci.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ lib, mkDerivation, sys }: - -mkDerivation { - pname = "libpci"; - path = "lib/libpci"; - version = "9.2"; - sha256 = "+IOEO1Bw3/H3iCp3uk3bwsFZbvCqN5Ciz70irnPl8E8="; - env.NIX_CFLAGS_COMPILE = toString [ "-I." ]; - meta.platforms = lib.platforms.netbsd; - extraPaths = [ sys.src ]; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/libpthread/base.nix b/pkgs/by-name/ne/netbsd/pkgs/libpthread/base.nix deleted file mode 100644 index 485a128..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/libpthread/base.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - path = "lib/libpthread"; - 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 deleted file mode 100644 index 3896562..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/libpthread/headers.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ lib, mkDerivation }: - -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 deleted file mode 100644 index c2a0d40..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/libpthread/package.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ 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; -}) diff --git a/pkgs/by-name/ne/netbsd/pkgs/libresolv.nix b/pkgs/by-name/ne/netbsd/pkgs/libresolv.nix deleted file mode 100644 index 2427592..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/libresolv.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ lib, mkDerivation, libc }: - -mkDerivation { - path = "lib/libresolv"; - version = "9.2"; - sha256 = "1am74s74mf1ynwz3p4ncjkg63f78a1zjm983q166x4sgzps15626"; - meta.platforms = lib.platforms.netbsd; - extraPaths = [ libc.src ]; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/librpcsvc.nix b/pkgs/by-name/ne/netbsd/pkgs/librpcsvc.nix deleted file mode 100644 index 8752433..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/librpcsvc.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ lib -, mkDerivation -, defaultMakeFlags -, bsdSetupHook, netbsdSetupHook -, makeMinimal -, install, tsort, lorder, rpcgen, statHook -}: - -mkDerivation { - path = "lib/librpcsvc"; - version = "9.2"; - sha256 = "1q34pfiyjbrgrdqm46jwrsqms49ly6z3b0xh1wg331zga900vq5n"; - makeFlags = defaultMakeFlags ++ [ "INCSDIR=$(out)/include/rpcsvc" ]; - meta.platforms = lib.platforms.netbsd; - nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook - makeMinimal - 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 deleted file mode 100644 index 2ffe078..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/librt.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ lib, mkDerivation, libc, headers }: - -mkDerivation { - path = "lib/librt"; - version = "9.2"; - sha256 = "07f8mpjcqh5kig5z5sp97fg55mc4dz6aa1x5g01nv2pvbmqczxc6"; - meta.platforms = lib.platforms.netbsd; - extraPaths = [ libc.src ] ++ libc.extraPaths; - postPatch = '' - sed -i 's,/usr\(/include/sys/syscall.h\),${headers}\1,g' \ - $BSDSRCDIR/lib/{libc,librt}/sys/Makefile.inc - ''; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/libterminfo.nix b/pkgs/by-name/ne/netbsd/pkgs/libterminfo.nix deleted file mode 100644 index b9268cc..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/libterminfo.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ mkDerivation -, bsdSetupHook, netbsdSetupHook -, makeMinimal, install, tsort, lorder, mandoc, statHook, nbperf, tic, rsync -, compatIfNeeded -, fetchNetBSD -}: - -mkDerivation { - path = "lib/libterminfo"; - version = "9.2"; - sha256 = "0pq05k3dj0dfsczv07frnnji92mazmy2qqngqbx2zgqc1x251414"; - nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook - makeMinimal install tsort lorder mandoc statHook nbperf tic rsync - ]; - buildInputs = compatIfNeeded; - SHLIBINSTALLDIR = "$(out)/lib"; - postPatch = '' - substituteInPlace $COMPONENT_PATH/term.c --replace /usr/share $out/share - substituteInPlace $COMPONENT_PATH/setupterm.c \ - --replace '#include ' 'void use_env(bool);' - ''; - postBuild = '' - make -C $BSDSRCDIR/share/terminfo $makeFlags BINDIR=$out/share - ''; - postInstall = '' - make -C $BSDSRCDIR/share/terminfo $makeFlags BINDIR=$out/share install - ''; - extraPaths = [ - (fetchNetBSD "share/terminfo" "9.2" "1vh9rl4w8118a9qdpblfxmv1wkpm83rm9gb4rzz5bpm56i6d7kk7") - ]; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/libutil.nix b/pkgs/by-name/ne/netbsd/pkgs/libutil.nix deleted file mode 100644 index 4aaf8f0..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/libutil.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ 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 ]; - nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook - makeMinimal - byacc install tsort lorder mandoc statHook rsync - ]; - buildInputs = [ headers ]; - SHLIBINSTALLDIR = "$(out)/lib"; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/locale/locale.patch b/pkgs/by-name/ne/netbsd/pkgs/locale/locale.patch deleted file mode 100644 index 4b7f478..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/locale/locale.patch +++ /dev/null @@ -1,85 +0,0 @@ ---- a/usr.bin/locale/locale.c 2018-06-11 14:39:06.449762000 -0400 -+++ b/usr.bin/locale/locale.c 2018-06-11 14:42:28.461122899 -0400 -@@ -56,14 +56,8 @@ - #include - #include - --#include "citrus_namespace.h" --#include "citrus_region.h" --#include "citrus_lookup.h" --#include "setlocale_local.h" -- - /* Local prototypes */ - void init_locales_list(void); --void init_locales_list_alias(void); - void list_charmaps(void); - void list_locales(void); - const char *lookup_localecat(int); -@@ -221,6 +215,8 @@ - }; - #define NKWINFO (sizeof(kwinfo)/sizeof(kwinfo[0])) - -+const char *_PathLocale = NULL; -+ - int - main(int argc, char *argv[]) - { -@@ -411,8 +407,7 @@ - while ((dp = readdir(dirp)) != NULL) { - /* exclude "." and "..", _LOCALE_ALIAS_NAME */ - if ((dp->d_name[0] != '.' || (dp->d_name[1] != '\0' && -- (dp->d_name[1] != '.' || dp->d_name[2] != '\0'))) && -- strcmp(_LOCALE_ALIAS_NAME, dp->d_name) != 0) { -+ (dp->d_name[1] != '.' || dp->d_name[2] != '\0')))) { - s = strdup(dp->d_name); - if (s == NULL) - err(1, "could not allocate memory"); -@@ -431,48 +426,10 @@ - if (sl_find(locales, "C") == NULL) - sl_add(locales, "C"); - -- init_locales_list_alias(); -- - /* make output nicer, sort the list */ - qsort(locales->sl_str, locales->sl_cur, sizeof(char *), scmp); - } - --void --init_locales_list_alias(void) --{ -- char aliaspath[PATH_MAX]; -- struct _lookup *hlookup; -- struct _region key, dat; -- size_t n; -- char *s, *t; -- -- _DIAGASSERT(locales != NULL); -- _DIAGASSERT(_PathLocale != NULL); -- -- (void)snprintf(aliaspath, sizeof(aliaspath), -- "%s/" _LOCALE_ALIAS_NAME, _PathLocale); -- -- if (_lookup_seq_open(&hlookup, aliaspath, -- _LOOKUP_CASE_SENSITIVE) == 0) { -- while (_lookup_seq_next(hlookup, &key, &dat) == 0) { -- n = _region_size((const struct _region *)&key); -- s = _region_head((const struct _region *)&key); -- for (t = s; n > 0 && *s!= '/'; --n, ++s); -- n = (size_t)(s - t); -- s = malloc(n + 1); -- if (s == NULL) -- err(1, "could not allocate memory"); -- memcpy(s, t, n); -- s[n] = '\0'; -- if (sl_find(locales, s) == NULL) -- sl_add(locales, s); -- else -- free(s); -- } -- _lookup_seq_close(hlookup); -- } --} -- - /* - * Show current locale status, depending on environment variables - */ diff --git a/pkgs/by-name/ne/netbsd/pkgs/locale/package.nix b/pkgs/by-name/ne/netbsd/pkgs/locale/package.nix deleted file mode 100644 index 3c61e85..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/locale/package.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ mkDerivation }: - -mkDerivation { - path = "usr.bin/locale"; - version = "9.2"; - sha256 = "0kk6v9k2bygq0wf9gbinliqzqpzs9bgxn0ndyl2wcv3hh2bmsr9p"; - patches = [ ./locale.patch ]; - env.NIX_CFLAGS_COMPILE = "-DYESSTR=__YESSTR -DNOSTR=__NOSTR"; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/lorder.nix b/pkgs/by-name/ne/netbsd/pkgs/lorder.nix deleted file mode 100644 index d310960..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/lorder.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ mkDerivation -, bsdSetupHook, netbsdSetupHook -, makeMinimal -, install, mandoc, groff, rsync -}: - -mkDerivation { - path = "usr.bin/lorder"; - version = "9.2"; - sha256 = "0rjf9blihhm0n699vr2bg88m4yjhkbxh6fxliaay3wxkgnydjwn2"; - nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook - makeMinimal - install mandoc groff rsync - ]; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/make.nix b/pkgs/by-name/ne/netbsd/pkgs/make.nix deleted file mode 100644 index dcd80ef..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/make.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ 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}' "" - - # 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' "" - ''; - postInstall = '' - make -C $BSDSRCDIR/share/mk FILESDIR=$out/share/mk install - ''; - extraPaths = [ - (fetchNetBSD "share/mk" "9.2" "0w9x77cfnm6zwy40slradzi0ip9gz80x6lk7pvnlxzsr2m5ra5sy") - ]; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/makeMinimal.nix b/pkgs/by-name/ne/netbsd/pkgs/makeMinimal.nix deleted file mode 100644 index 18655b3..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/makeMinimal.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ mkDerivation -, bsdSetupHook, netbsdSetupHook, rsync -, make -}: - -mkDerivation { - path = "tools/make"; - sha256 = "0fh0nrnk18m613m5blrliq2aydciv51qhc0ihsj4k63incwbk90n"; - version = "9.2"; - - buildInputs = []; - nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook rsync - ]; - - skipIncludesPhase = true; - - postPatch = '' - patchShebangs $COMPONENT_PATH/configure - ${make.postPatch} - ''; - - buildPhase = '' - runHook preBuild - - sh ./buildmake.sh - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - install -D nbmake $out/bin/nbmake - ln -s $out/bin/nbmake $out/bin/make - mkdir -p $out/share - cp -r $BSDSRCDIR/share/mk $out/share/mk - - runHook postInstall - ''; - - extraPaths = [ make.src ] ++ make.extraPaths; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/man.nix b/pkgs/by-name/ne/netbsd/pkgs/man.nix deleted file mode 100644 index bce5bce..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/man.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ mkDerivation, defaultMakeFlags }: - -mkDerivation { - path = "share/man"; - noCC = true; - version = "9.2"; - sha256 = "1l4lmj4kmg8dl86x94sr45w0xdnkz8dn4zjx0ipgr9bnq98663zl"; - # man0 generates a man.pdf using ps2pdf, but doesn't install it later, - # so we can avoid the dependency on ghostscript - postPatch = '' - substituteInPlace $COMPONENT_PATH/man0/Makefile --replace "ps2pdf" "echo noop " - ''; - makeFlags = defaultMakeFlags ++ [ - "FILESDIR=$(out)/share" - "MKRUMP=no" # would require to have additional path sys/rump/share/man - ]; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/misc.nix b/pkgs/by-name/ne/netbsd/pkgs/misc.nix deleted file mode 100644 index 7f96f4d..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/misc.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ mkDerivation, defaultMakeFlags }: - -mkDerivation { - path = "share/misc"; - noCC = true; - version = "9.2"; - sha256 = "1j2cdssdx6nncv8ffj7f7ybl7m9hadjj8vm8611skqdvxnjg6nbc"; - makeFlags = defaultMakeFlags ++ [ "BINDIR=$(out)/share" ]; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/mkDerivation.nix b/pkgs/by-name/ne/netbsd/pkgs/mkDerivation.nix deleted file mode 100644 index 82e8889..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/mkDerivation.nix +++ /dev/null @@ -1,82 +0,0 @@ -{ 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; - - extraPaths = [ ]; - - nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook - makeMinimal - install tsort lorder mandoc groff statHook rsync - ]; - buildInputs = compatIfNeeded; - - HOST_SH = stdenv'.shell; - - 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; - - COMPONENT_PATH = attrs.path; - - makeFlags = defaultMakeFlags; - - strictDeps = true; - - 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 ""; -})) diff --git a/pkgs/by-name/ne/netbsd/pkgs/mknod.nix b/pkgs/by-name/ne/netbsd/pkgs/mknod.nix deleted file mode 100644 index 5c4c172..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/mknod.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ mkDerivation }: - -mkDerivation { - path = "sbin/mknod"; - version = "9.2"; - sha256 = "1d9369shzwgixz3nph991i8q5vk7hr04py3n9avbfbhzy4gndqs2"; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/mtree.nix b/pkgs/by-name/ne/netbsd/pkgs/mtree.nix deleted file mode 100644 index 723da3a..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/mtree.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ mkDerivation, mknod }: - -mkDerivation { - path = "usr.sbin/mtree"; - version = "9.2"; - sha256 = "04p7w540vz9npvyb8g8hcf2xa05phn1y88hsyrcz3vwanvpc0yv9"; - extraPaths = [ mknod.src ]; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/nbperf.nix b/pkgs/by-name/ne/netbsd/pkgs/nbperf.nix deleted file mode 100644 index 02ce7cf..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/nbperf.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ mkDerivation }: - -mkDerivation { - path = "usr.bin/nbperf"; - 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 deleted file mode 100644 index e80571f..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/netbsdSetupHook/package.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ makeSetupHook }: - -makeSetupHook { - name = "netbsd-setup-hook"; - } ./setup-hook.sh diff --git a/pkgs/by-name/ne/netbsd/pkgs/netbsdSetupHook/setup-hook.sh b/pkgs/by-name/ne/netbsd/pkgs/netbsdSetupHook/setup-hook.sh deleted file mode 100644 index fa8b19e..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/netbsdSetupHook/setup-hook.sh +++ /dev/null @@ -1,15 +0,0 @@ -mergeNetBSDSourceDir() { - # merge together all extra paths - # there should be a better way to do this - chmod -R u+w $BSDSRCDIR - for path in $extraPaths; do - rsync -Er --chmod u+w $path/ $BSDSRCDIR/ - done -} - -addNetBSDMakeFlags() { - makeFlags="INCSDIR=${!outputDev}/include $makeFlags" -} - -postUnpackHooks+=(mergeNetBSDSourceDir) -preConfigureHooks+=(addNetBSDMakeFlags) diff --git a/pkgs/by-name/ne/netbsd/pkgs/rpcgen.nix b/pkgs/by-name/ne/netbsd/pkgs/rpcgen.nix deleted file mode 100644 index b1482d4..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/rpcgen.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ mkDerivation }: - -mkDerivation { - path = "usr.bin/rpcgen"; - version = "9.2"; - sha256 = "1kfgfx54jg98wbg0d95p0rvf4w0302v8fz724b0bdackdsrd4988"; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/stat/hook.nix b/pkgs/by-name/ne/netbsd/pkgs/stat/hook.nix deleted file mode 100644 index 78186f5..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/stat/hook.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ 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 -# breaks stdenv. Work around that with a hook that will point -# 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) -'') - diff --git a/pkgs/by-name/ne/netbsd/pkgs/stat/package.nix b/pkgs/by-name/ne/netbsd/pkgs/stat/package.nix deleted file mode 100644 index fa4d5cb..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/stat/package.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ mkDerivation -, bsdSetupHook, netbsdSetupHook -, makeMinimal -, install, mandoc, groff, rsync -}: - -# Don't add this to nativeBuildInputs directly. -# Use statHook instead. See note in stat/hook.nix - -mkDerivation { - path = "usr.bin/stat"; - version = "9.2"; - sha256 = "18nqwlndfc34qbbgqx5nffil37jfq9aw663ippasfxd2hlyc106x"; - nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook - makeMinimal - 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 deleted file mode 100644 index ba458ef..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/sys/base.nix +++ /dev/null @@ -1,72 +0,0 @@ -{ lib, mkDerivation -, include -, bsdSetupHook, netbsdSetupHook -, makeMinimal, install, tsort, lorder, statHook, rsync, uudecode, config, genassym -, defaultMakeFlags -, common -}: -{ - path = "sys"; - version = "9.2"; - sha256 = "03s18q8d9giipf05bx199fajc2qwikji0djz7hw63d2lya6bfnpj"; - - # Make the build ignore linker warnings - prePatch = '' - substituteInPlace sys/conf/Makefile.kern.inc \ - --replace "-Wa,--fatal-warnings" "" - ''; - - patches = [ - # Fix this error when building bootia32.efi and bootx64.efi: - # error: PHDR segment not covered by LOAD segment - ./no-dynamic-linker.patch - - # multiple header dirs, see above - ./sys-headers-incsdir.patch - ]; - - postPatch = - '' - substituteInPlace sys/arch/i386/stand/efiboot/Makefile.efiboot \ - --replace "-nocombreloc" "-z nocombreloc" - '' + - # multiple header dirs, see above - include.postPatch; - - CONFIG = "GENERIC"; - - propagatedBuildInputs = [ include ]; - nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook - makeMinimal install tsort lorder statHook rsync uudecode config genassym - ]; - - postConfigure = '' - pushd arch/$MACHINE/conf - config $CONFIG - popd - '' - # multiple header dirs, see above - + include.postConfigure; - - makeFlags = defaultMakeFlags ++ [ "FIRMWAREDIR=$(out)/libdata/firmware" ]; - hardeningDisable = [ "pic" ]; - MKKMOD = "no"; - env.NIX_CFLAGS_COMPILE = toString [ - "-Wno-error=array-parameter" - "-Wno-error=array-bounds" - "-Wa,--no-warn" - ]; - - postBuild = '' - make -C arch/$MACHINE/compile/$CONFIG $makeFlags - ''; - - postInstall = '' - cp arch/$MACHINE/compile/$CONFIG/netbsd $out - ''; - - meta.platforms = lib.platforms.netbsd; - extraPaths = [ common ]; - -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/sys/headers.nix b/pkgs/by-name/ne/netbsd/pkgs/sys/headers.nix deleted file mode 100644 index a3f20d7..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/sys/headers.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ 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; - }; -in - mkDerivation (base // { - pname = "sys-headers"; - installPhase = "includesPhase"; - dontBuild = true; - noCC = true; - }) diff --git a/pkgs/by-name/ne/netbsd/pkgs/sys/no-dynamic-linker.patch b/pkgs/by-name/ne/netbsd/pkgs/sys/no-dynamic-linker.patch deleted file mode 100644 index b3e9f3c..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/sys/no-dynamic-linker.patch +++ /dev/null @@ -1,16 +0,0 @@ -=================================================================== -RCS file: /ftp/cvs/cvsroot/src/sys/arch/i386/stand/efiboot/Makefile.efiboot,v -rcsdiff: /ftp/cvs/cvsroot/src/sys/arch/i386/stand/efiboot/Makefile.efiboot,v: warning: Unknown phrases like `commitid ...;' are present. -retrieving revision 1.16 -retrieving revision 1.17 -diff -u -p -r1.16 -r1.17 ---- a/sys/arch/i386/stand/efiboot/Makefile.efiboot 2019/09/13 02:19:45 1.16 -+++ b/sys/arch/i386/stand/efiboot/Makefile.efiboot 2020/04/04 15:30:46 1.17 -@@ -41,6 +41,7 @@ BINMODE=444 - .PATH: ${.CURDIR}/../../libsa - - LDSCRIPT?= ${.CURDIR}/ldscript -+LDFLAGS+= --no-dynamic-linker --noinhibit-exec - LDFLAGS+= -nostdlib -T${LDSCRIPT} -Bsymbolic -shared -nocombreloc - CPPFLAGS+= -I$S -I${.CURDIR} -I${.CURDIR}/.. -I$S/lib/libsa - CPPFLAGS+= -I${.OBJDIR} diff --git a/pkgs/by-name/ne/netbsd/pkgs/sys/package.nix b/pkgs/by-name/ne/netbsd/pkgs/sys/package.nix deleted file mode 100644 index 87031a5..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/sys/package.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ 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; - }; -in - mkDerivation (base // { - pname = "sys"; - installPhase = null; - noCC = false; - dontBuild = false; - }) diff --git a/pkgs/by-name/ne/netbsd/pkgs/sys/sys-headers-incsdir.patch b/pkgs/by-name/ne/netbsd/pkgs/sys/sys-headers-incsdir.patch deleted file mode 100644 index 5cfb2a5..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/sys/sys-headers-incsdir.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/Makefile b/Makefile -index 3f1e18dc659d..163362b82f94 100644 ---- a/sys/Makefile -+++ b/sys/Makefile -@@ -2,6 +2,8 @@ - - .include - -+INCSDIR= ${INCSDIR0} -+ - SUBDIR= altq arch compat dev fs miscfs \ - net net80211 netatalk netbt netcan netipsec netinet netinet6 \ - netmpls netsmb \ diff --git a/pkgs/by-name/ne/netbsd/pkgs/tic.nix b/pkgs/by-name/ne/netbsd/pkgs/tic.nix deleted file mode 100644 index 2a7e364..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/tic.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ mkDerivation -, bsdSetupHook, netbsdSetupHook -, makeMinimal -, install, mandoc, groff, nbperf, rsync -, compatIfNeeded -, defaultMakeFlags -, libterminfo -, fetchNetBSD -}: - -mkDerivation { - path = "tools/tic"; - version = "9.2"; - sha256 = "092y7db7k4kh2jq8qc55126r5qqvlb8lq8mhmy5ipbi36hwb4zrz"; - HOSTPROG = "tic"; - buildInputs = compatIfNeeded; - nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook - makeMinimal - install mandoc groff nbperf rsync - ]; - makeFlags = defaultMakeFlags ++ [ "TOOLDIR=$(out)" ]; - extraPaths = [ - libterminfo.src - (fetchNetBSD "usr.bin/tic" "9.2" "1mwdfg7yx1g43ss378qsgl5rqhsxskqvsd2mqvrn38qw54i8v5i1") - (fetchNetBSD "tools/Makefile.host" "9.2" "15b4ab0n36lqj00j5lz2xs83g7l8isk3wx1wcapbrn66qmzz2sxy") - ]; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/tsort.nix b/pkgs/by-name/ne/netbsd/pkgs/tsort.nix deleted file mode 100644 index 334eccc..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/tsort.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ mkDerivation -, bsdSetupHook, netbsdSetupHook -, makeMinimal -, install, mandoc, groff, rsync -}: - -mkDerivation { - path = "usr.bin/tsort"; - version = "9.2"; - sha256 = "1dqvf9gin29nnq3c4byxc7lfd062pg7m84843zdy6n0z63hnnwiq"; - nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook - makeMinimal - install mandoc groff rsync - ]; -} diff --git a/pkgs/by-name/ne/netbsd/pkgs/uudecode.nix b/pkgs/by-name/ne/netbsd/pkgs/uudecode.nix deleted file mode 100644 index dac9674..0000000 --- a/pkgs/by-name/ne/netbsd/pkgs/uudecode.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ lib, mkDerivation, stdenv }: - -mkDerivation { - path = "usr.bin/uudecode"; - version = "9.2"; - sha256 = "00a3zmh15pg4vx6hz0kaa5mi8d2b1sj4h512d7p6wbvxq6mznwcn"; - 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 deleted file mode 100644 index e7cc5a6..0000000 --- a/pkgs/by-name/ne/netpbm/default.nix +++ /dev/null @@ -1,130 +0,0 @@ -{ lib -, stdenv -, fetchsvn -, pkg-config -, libjpeg -, libpng -, jbigkit -, flex -, zlib -, perl -, libxml2 -, makeWrapper -, libtiff -, enableX11 ? false -, libX11 -, buildPackages -}: - -stdenv.mkDerivation { - # Determine version and revision from: - # https://sourceforge.net/p/netpbm/code/HEAD/log/?path=/advanced - pname = "netpbm"; - version = "11.6.0"; - - outputs = [ "bin" "out" "dev" ]; - - src = fetchsvn { - url = "https://svn.code.sf.net/p/netpbm/code/advanced"; - rev = "4897"; - sha256 = "2aTDM0aVfav2mnOLXj0HuTdbsY7EUH8ieBrXgaFU7FU="; - }; - - nativeBuildInputs = [ - pkg-config - flex - makeWrapper - ]; - - buildInputs = [ - zlib - perl - libpng - libjpeg - libxml2 - libtiff - jbigkit - ] ++ lib.optional enableX11 libX11; - - - strictDeps = true; - - enableParallelBuilding = true; - - # Environment variables - STRIPPROG = "${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}strip"; - - postPatch = '' - # Install libnetpbm.so symlink to correct destination - substituteInPlace lib/Makefile \ - --replace '/sharedlink' '/lib' - ''; - - configurePhase = '' - runHook preConfigure - - cp config.mk.in 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 - - # 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 - ''; - - env = lib.optionalAttrs stdenv.cc.isClang { - NIX_CFLAGS_COMPILE = "-Wno-implicit-function-declaration"; - }; - - installPhase = '' - runHook preInstall - - make package pkgdir=$out - - rm -rf $out/*_template $out/{pkginfo,README,VERSION} $out/man/web - - mkdir -p $out/share/netpbm - mv $out/misc $out/share/netpbm/ - - moveToOutput bin "''${!outputBin}" - - # wrap any scripts that expect other programs in the package to be in their PATH - for prog in ppmquant; do - wrapProgram "''${!outputBin}/bin/$prog" --prefix PATH : "''${!outputBin}/bin" - done - - runHook postInstall - ''; - - passthru.updateScript = ./update.sh; - - meta = { - homepage = "https://netpbm.sourceforge.net/"; - description = "Toolkit for manipulation of graphic images"; - license = lib.licenses.free; # http://netpbm.svn.code.sourceforge.net/p/netpbm/code/trunk/doc/copyright_summary - platforms = with lib.platforms; linux ++ darwin; - }; -} diff --git a/pkgs/by-name/ne/netpbm/update.sh b/pkgs/by-name/ne/netpbm/update.sh deleted file mode 100755 index 670e872..0000000 --- a/pkgs/by-name/ne/netpbm/update.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell -p bash -p subversion -p common-updater-scripts -i bash - -die() { - echo "error: $1" >&2 - exit 1 -} - -attr=netpbm -svnRoot=https://svn.code.sf.net/p/netpbm/code/advanced - -oldRev=$(nix-instantiate --eval -E "with import ./. {}; $attr.src.rev" | tr -d '"') -if [[ -z "$oldRev" ]]; then - die "Could not extract old revision." -fi - -latestRev=$(svn info --show-item "last-changed-revision" "$svnRoot") -if [[ -z "$latestRev" ]]; then - die "Could not find out last changed revision." -fi - -versionInfo=$(svn cat -r "$latestRev" "$svnRoot/version.mk") -if [[ -z "$versionInfo" ]]; then - die "Could not get version info." -fi - -nixFile=$(nix-instantiate --eval --strict -A "$attr.meta.position" | sed -re 's/^"(.*):[0-9]+"$/\1/') -if [[ ! -f "$nixFile" ]]; then - die "Could not evaluate '$attr.meta.position' to locate the .nix file!" -fi - -# h remembers if we found the pattern; on the last line, if a pattern was previously found, we exit with 1 -# https://stackoverflow.com/a/12145797/160386 -sed -i "$nixFile" -re '/(\brev\b\s*=\s*)"'"$oldRev"'"/{ s||\1"'"$latestRev"'"|; h }; ${x; /./{x; q1}; x}' && die "Unable to update revision." - -majorRelease=$(grep --perl-regex --only-matching 'NETPBM_MAJOR_RELEASE = \K.+' <<< "$versionInfo") -minorRelease=$(grep --perl-regex --only-matching 'NETPBM_MINOR_RELEASE = \K.+' <<< "$versionInfo") -pointRelease=$(grep --perl-regex --only-matching 'NETPBM_POINT_RELEASE = \K.+' <<< "$versionInfo") - -update-source-version "$attr" "$majorRelease.$minorRelease.$pointRelease" diff --git a/pkgs/by-name/ng/nghttp2/default.nix b/pkgs/by-name/ng/nghttp2/default.nix deleted file mode 100644 index 3abd7b2..0000000 --- a/pkgs/by-name/ng/nghttp2/default.nix +++ /dev/null @@ -1,104 +0,0 @@ -{ 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 - -# Unit tests ; we have to set TZDIR, which is a GNUism. -, enableTests ? stdenv.hostPlatform.isGnu, cunit, tzdata - -# for passthru.tests -# downstream dependencies, for testing -# , curl -# , libsoup -}: - -# 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 enableGetAssets -> enableApp; -assert enableHpack -> enableApp; -assert enableHttp3 -> enableApp; -assert enableJemalloc -> enableApp; - -stdenv.mkDerivation rec { - pname = "nghttp2"; - version = "1.61.0"; - - src = fetchurl { - url = "https://github.com/${pname}/${pname}/releases/download/v${version}/${pname}-${version}.tar.bz2"; - sha256 = "sha256-Toz37DLUxaQwlmJC1yA10lXNlHCodm1h7tegGQ3VRP0="; - }; - - outputs = [ "out" "dev" "lib" "doc" "man" ]; - - nativeBuildInputs = [ pkg-config ] - ++ lib.optionals (enableApp) [ installShellFiles ]; - - 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 (enablePython) [ python3 ]; - - enableParallelBuilding = true; - - configureFlags = [ - "--disable-examples" - (lib.enableFeature enableApp "app") - (lib.enableFeature enableHttp3 "http3") - ]; - - # Unit tests require CUnit and setting TZDIR environment variable - doCheck = enableTests; - 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 - ''; - - # passthru.tests = { - # inherit curl libsoup; - # }; - - meta = with lib; { - description = "HTTP/2 C library and tools"; - longDescription = '' - nghttp2 is an implementation of the HyperText Transfer Protocol version 2 in C. - The framing layer of HTTP/2 is implemented as a reusable C library. On top of that, - we have implemented an HTTP/2 client, server and proxy. We have also developed - load test and benchmarking tools for HTTP/2. - An HPACK encoder and decoder are available as a public API. - We have Python bindings of this library, but we do not have full code coverage yet. - An experimental high level C++ library is also available. - ''; - - homepage = "https://nghttp2.org/"; - changelog = "https://github.com/nghttp2/nghttp2/releases/tag/v${version}"; - # News articles with changes summary can be found here: https://nghttp2.org/blog/archives/ - license = licenses.mit; - maintainers = with maintainers; [ c0bw3b ]; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/ng/nghttp2/packages.nix b/pkgs/by-name/ng/nghttp2/packages.nix deleted file mode 100644 index 25246e1..0000000 --- a/pkgs/by-name/ng/nghttp2/packages.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index 6bf25dc..0000000 --- a/pkgs/by-name/ng/nghttp3/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ lib, stdenv, fetchFromGitHub -, cmake -, CoreServices -# for passthru.tests -# , curlHTTP3 -}: - -stdenv.mkDerivation rec { - pname = "nghttp3"; - version = "1.2.0"; - - src = fetchFromGitHub { - owner = "ngtcp2"; - repo = pname; - rev = "v${version}"; - hash = "sha256-kJt4aQGNiJ0XhlEKunR8jYKytv3rh23jRrNelCDe/Kk="; - fetchSubmodules = true; - }; - - outputs = [ "out" "dev" "doc" ]; - - nativeBuildInputs = [ cmake ]; - buildInputs = lib.optionals stdenv.isDarwin [ - CoreServices - ]; - - cmakeFlags = [ - (lib.cmakeBool "ENABLE_STATIC_LIB" false) - ]; - - doCheck = true; - - # passthru.tests = { - # inherit curlHTTP3; - # }; - - meta = with lib; { - homepage = "https://github.com/ngtcp2/nghttp3"; - description = "nghttp3 is an implementation of HTTP/3 mapping over QUIC and QPACK in C."; - license = licenses.mit; - platforms = platforms.unix; - maintainers = with maintainers; [ izorkin ]; - }; -} diff --git a/pkgs/by-name/ng/nghttp3/packages.nix b/pkgs/by-name/ng/nghttp3/packages.nix deleted file mode 100644 index bb285bc..0000000 --- a/pkgs/by-name/ng/nghttp3/packages.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index c511d89..0000000 --- a/pkgs/by-name/ng/ngtcp2/default.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ lib, stdenv, fetchFromGitHub -, cmake -, brotli, libev, nghttp3, quictls -, CoreServices -, withJemalloc ? false, jemalloc -# for passthru.tests -# , curlHTTP3 -}: - -stdenv.mkDerivation rec { - pname = "ngtcp2"; - version = "1.4.0"; - - src = fetchFromGitHub { - owner = "ngtcp2"; - repo = pname; - rev = "v${version}"; - hash = "sha256-te/kFt7/09QpmkHZ7dJxyKvvxP+mHtIQIgESkJATR38="; - fetchSubmodules = true; - }; - - outputs = [ "out" "dev" "doc" ]; - - nativeBuildInputs = [ cmake ]; - buildInputs = [ - brotli - libev - nghttp3 - quictls - ] ++ lib.optionals stdenv.isDarwin [ - CoreServices - ] ++ lib.optional withJemalloc jemalloc; - - cmakeFlags = [ - (lib.cmakeBool "ENABLE_STATIC_LIB" false) - ]; - - doCheck = true; - - # passthru.tests = { - # inherit curlHTTP3; - # }; - - meta = with lib; { - homepage = "https://github.com/ngtcp2/ngtcp2"; - description = "ngtcp2 project is an effort to implement QUIC protocol which is now being discussed in IETF QUICWG for its standardization."; - license = licenses.mit; - platforms = platforms.unix; - maintainers = with maintainers; [ izorkin ]; - }; -} diff --git a/pkgs/by-name/ng/ngtcp2/gnutls.nix b/pkgs/by-name/ng/ngtcp2/gnutls.nix deleted file mode 100644 index b521569..0000000 --- a/pkgs/by-name/ng/ngtcp2/gnutls.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ lib, stdenv, fetchFromGitHub -, autoreconfHook, pkg-config -, gnutls -, cunit, ncurses, knot-dns -}: - -stdenv.mkDerivation rec { - pname = "ngtcp2"; - version = "1.4.0"; - - src = fetchFromGitHub { - owner = "ngtcp2"; - repo = "ngtcp2"; - rev = "v${version}"; - hash = "sha256-C1Rk0KzTvFpwCz8vXvhSqGjYmGyLZxmnzZhPLZiL97M="; - }; - - outputs = [ "out" "dev" ]; - - nativeBuildInputs = [ autoreconfHook pkg-config ]; - buildInputs = [ gnutls ]; - - configureFlags = [ "--with-gnutls=yes" ]; - enableParallelBuilding = true; - - doCheck = true; - nativeCheckInputs = [ cunit ] - ++ lib.optional stdenv.isDarwin ncurses; - - passthru.tests = knot-dns.passthru.tests; # the only consumer so far - - meta = with lib; { - homepage = "https://github.com/ngtcp2/ngtcp2"; - description = "an effort to implement RFC9000 QUIC protocol."; - license = licenses.mit; - platforms = platforms.unix; - maintainers = with maintainers; [ vcunat/* for knot-dns */ ]; - }; -} - -/* - Why split from ./default.nix? - - ngtcp2 libs contain helpers to plug into various crypto libs (gnutls, patched openssl, ...). - Building multiple of them while keeping closures separable would be relatively complicated. - Separating the builds is easier for now; the missed opportunity to share the 0.3--0.4 MB - library isn't such a big deal. - - Moreover upstream still commonly does incompatible changes, so agreeing - 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 deleted file mode 100644 index 8f14934..0000000 --- a/pkgs/by-name/ng/ngtcp2/packages.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index 3402bcf..0000000 --- a/pkgs/by-name/ni/ninja/default.nix +++ /dev/null @@ -1,108 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, asciidoc -, docbook_xml_dtd_45 -, docbook_xsl -, installShellFiles -, libxslt -, python3 -, re2c -, buildPackages -, buildDocs ? true -}: - -stdenv.mkDerivation rec { - pname = "ninja"; - version = "1.11.1"; - - src = fetchFromGitHub { - owner = "ninja-build"; - repo = "ninja"; - rev = "v${version}"; - hash = "sha256-LvV/Fi2ARXBkfyA1paCRmLUwCh/rTyz+tGMg2/qEepI="; - }; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - - 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. - (fetchpatch { - name = "stat64.patch"; - url = "https://github.com/ninja-build/ninja/commit/7bba11ae704efc84cac5fde5e9be53f653f237d1.diff"; - hash = "sha256-tINS57xLh1lwnYFWCQs5OudfgtIShaOh5zbmv7w5BnQ="; - }) - ]; - - postPatch = '' - # write rebuild args to file after bootstrap - substituteInPlace configure.py --replace "subprocess.check_call(rebuild_args)" "open('rebuild_args','w').write(rebuild_args[0])" - ''; - - 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 - - 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 - ''; - - 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 - '' + '' - - runHook postInstall - ''; - - setupHook = ./setup-hook.sh; - - meta = with lib; { - description = "Small build system with a focus on speed"; - mainProgram = "ninja"; - longDescription = '' - Ninja is a small build system with a focus on speed. It differs from - other build systems in two major respects: it is designed to have its - input files generated by a higher-level build system, and it is designed - to run builds as fast as possible. - ''; - homepage = "https://ninja-build.org/"; - license = licenses.asl20; - platforms = platforms.unix; - maintainers = with maintainers; [ thoughtpolice bjornfor orivej ]; - }; -} diff --git a/pkgs/by-name/ni/ninja/setup-hook.sh b/pkgs/by-name/ni/ninja/setup-hook.sh deleted file mode 100644 index 7fa5e46..0000000 --- a/pkgs/by-name/ni/ninja/setup-hook.sh +++ /dev/null @@ -1,86 +0,0 @@ -ninjaBuildPhase() { - runHook preBuild - - local buildCores=1 - - # Parallel building is enabled by default. - if [ "${enableParallelBuilding-1}" ]; then - buildCores="$NIX_BUILD_CORES" - fi - - local flagsArray=( - -j$buildCores - $ninjaFlags "${ninjaFlagsArray[@]}" - ) - - echoCmd 'build flags' "${flagsArray[@]}" - TERM=dumb ninja "${flagsArray[@]}" - - runHook postBuild -} - -ninjaCheckPhase() { - runHook preCheck - - if [ -z "${checkTarget:-}" ]; then - if ninja -t query test >/dev/null 2>&1; then - checkTarget=test - fi - fi - - if [ -z "${checkTarget:-}" ]; then - echo "no test target found in ninja, doing nothing" - else - local buildCores=1 - - if [ "${enableParallelChecking-1}" ]; then - buildCores="$NIX_BUILD_CORES" - fi - - local flagsArray=( - -j$buildCores - $ninjaFlags "${ninjaFlagsArray[@]}" - $checkTarget - ) - - echoCmd 'check flags' "${flagsArray[@]}" - TERM=dumb ninja "${flagsArray[@]}" - fi - - runHook postCheck -} - -ninjaInstallPhase() { - runHook preInstall - - local buildCores=1 - - # Parallel building is enabled by default. - if [ "${enableParallelInstalling-1}" ]; then - buildCores="$NIX_BUILD_CORES" - fi - - # shellcheck disable=SC2086 - local flagsArray=( - -j$buildCores - $ninjaFlags "${ninjaFlagsArray[@]}" - ${installTargets:-install} - ) - - echoCmd 'install flags' "${flagsArray[@]}" - TERM=dumb ninja "${flagsArray[@]}" - - runHook postInstall -} - -if [ -z "${dontUseNinjaBuild-}" -a -z "${buildPhase-}" ]; then - buildPhase=ninjaBuildPhase -fi - -if [ -z "${dontUseNinjaCheck-}" -a -z "${checkPhase-}" ]; then - checkPhase=ninjaCheckPhase -fi - -if [ -z "${dontUseNinjaInstall-}" -a -z "${installPhase-}" ]; then - installPhase=ninjaInstallPhase -fi diff --git a/pkgs/by-name/ni/nix/common.nix b/pkgs/by-name/ni/nix/common.nix deleted file mode 100644 index b04c593..0000000 --- a/pkgs/by-name/ni/nix/common.nix +++ /dev/null @@ -1,277 +0,0 @@ -{ 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 - atLeast24 = lib.versionAtLeast version "2.4pre"; - atLeast25 = lib.versionAtLeast version "2.5pre"; - atLeast27 = lib.versionAtLeast version "2.7pre"; - atLeast210 = lib.versionAtLeast version "2.10pre"; - atLeast213 = lib.versionAtLeast version "2.13pre"; - atLeast214 = lib.versionAtLeast version "2.14pre"; - atLeast219 = lib.versionAtLeast version "2.19pre"; - atLeast220 = lib.versionAtLeast version "2.20pre"; - atLeast221 = lib.versionAtLeast version "2.21pre"; - # Major.minor versions unaffected by CVE-2024-27297 - unaffectedByFodSandboxEscape = [ - "2.3" - "2.16" - "2.18" - "2.19" - "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 - -, 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 - - # passthru tests -, pkgsi686Linux -}: let -self = stdenv.mkDerivation { - pname = "nix"; - - version = "${version}${suffix}"; - VERSION_SUFFIX = suffix; - - inherit src patches; - - outputs = - [ "out" "dev" ] - ++ lib.optionals enableDocumentation [ "man" "doc" ]; - - hardeningEnable = lib.optionals (!stdenv.isDarwin) [ "pie" ]; - - 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 - ]; - - 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 - ]; - - 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 - ''; - - 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" - ]; - - 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"; - - installFlags = [ "sysconfdir=$(out)/etc" ]; - - doInstallCheck = true; - installCheckTarget = if atLeast210 then "installcheck" else null; - - # 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 - ''; - - separateDebugInfo = stdenv.isLinux && (atLeast24 -> !enableStatic); - - enableParallelBuilding = true; - - passthru = { - inherit aws-sdk-cpp boehmgc; - - 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"; - }; -}; -in self diff --git a/pkgs/by-name/ni/nix/default.nix b/pkgs/by-name/ni/nix/default.nix deleted file mode 100644 index 4c8f26e..0000000 --- a/pkgs/by-name/ni/nix/default.nix +++ /dev/null @@ -1,217 +0,0 @@ -{ lib -, config -, aws-sdk-cpp -, boehmgc -, callPackage -, fetchFromGitHub -, fetchpatch -, fetchpatch2 -, runCommand -, Security - -, storeDir ? "/nix/store" -, stateDir ? "/nix/var" -, confDir ? "/etc" - -, path -}: -let - boehmgc-nix_2_3 = boehmgc.override { enableLargeConfig = true; }; - - boehmgc-nix = boehmgc-nix_2_3.overrideAttrs (drv: { - patches = (drv.patches or [ ]) ++ [ - # Part of the GC solution in https://github.com/NixOS/nix/pull/4944 - ./patches/boehmgc-coroutine-sp-fallback.patch - ]; - }); - - # 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"; - - 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 - ''; - - 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 = [ ]; - }); - - 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)) - { - 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"; - url = "https://github.com/NixOS/nix/commit/1df3d62c769dc68c279e89f68fdd3723ed3bcb5a.patch"; - hash = "sha256-f+F0fUO+bqyPXjt+IXJtISVr589hdc3y+Cdrxznb+Nk="; - }; - - # 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="; - }; - }; - - 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-fallback-paths.nix b/pkgs/by-name/ni/nix/nix-fallback-paths.nix deleted file mode 100644 index e4241e9..0000000 --- a/pkgs/by-name/ni/nix/nix-fallback-paths.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - x86_64-linux = "/nix/store/azvn85cras6xv4z5j85fiy406f24r1q0-nix-2.18.1"; - i686-linux = "/nix/store/9bnwy7f9h0kzdzmcnjjsjg0aak5waj40-nix-2.18.1"; - aarch64-linux = "/nix/store/hh65xwqm9s040s3cgn9vzcmrxj0sf5ij-nix-2.18.1"; - x86_64-darwin = "/nix/store/6zi5fqzn9n17wrk8r41rhdw4j7jqqsi3-nix-2.18.1"; - aarch64-darwin = "/nix/store/0pbq6wzr2f1jgpn5212knyxpwmkjgjah-nix-2.18.1"; -} diff --git a/pkgs/by-name/ni/nix/nix-perl.nix b/pkgs/by-name/ni/nix/nix-perl.nix deleted file mode 100644 index 8fc2657..0000000 --- a/pkgs/by-name/ni/nix/nix-perl.nix +++ /dev/null @@ -1,83 +0,0 @@ -{ 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 }: - let - setFlagTo = if atLeast223 - then lib.mesonOption mesonOption - else lib.withFeatureAs true autoconfOption; - in - setFlagTo value; -in stdenv.mkDerivation (finalAttrs: { - pname = "nix-perl"; - inherit (nix) version src; - - postUnpack = "sourceRoot=$sourceRoot/perl"; - - buildInputs = [ - boost - bzip2 - curl - libsodium - nix - perl - xz - ] ++ lib.optional (stdenv.isDarwin) Security; - - # 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 - ]); - - # `perlPackages.Test2Harness` is marked broken for Darwin - doCheck = !stdenv.isDarwin; - - nativeCheckInputs = [ - perl.pkgs.Test2Harness - ]; - - ${if atLeast223 then "mesonFlags" else "configureFlags"} = [ - (mkConfigureOption { - mesonOption = "dbi_path"; - autoconfOption = "dbi"; - value = "${perl.pkgs.DBI}/${perl.libPrefix}"; - }) - (mkConfigureOption { - mesonOption = "dbd_sqlite_path"; - autoconfOption = "dbd-sqlite"; - value = "${perl.pkgs.DBDSQLite}/${perl.libPrefix}"; - }) - ] ++ 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 deleted file mode 100644 index 7d9e468..0000000 --- a/pkgs/by-name/ni/nix/packages.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ ... }: -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; - }); - - nix = nixVersions.stable; - - nixStatic = pkgsStatic.nix; -} diff --git a/pkgs/by-name/ni/nix/patches/aws-sdk-cpp-TransferManager-ContentEncoding.patch b/pkgs/by-name/ni/nix/patches/aws-sdk-cpp-TransferManager-ContentEncoding.patch deleted file mode 100644 index 59cc305..0000000 --- a/pkgs/by-name/ni/nix/patches/aws-sdk-cpp-TransferManager-ContentEncoding.patch +++ /dev/null @@ -1,127 +0,0 @@ -From 7d58e303159b2fb343af9a1ec4512238efa147c7 Mon Sep 17 00:00:00 2001 -From: Eelco Dolstra -Date: Mon, 6 Aug 2018 17:15:04 +0200 -Subject: [PATCH] TransferManager: Allow setting a content-encoding for S3 uploads - ---- a/aws-cpp-sdk-transfer/include/aws/transfer/TransferHandle.h -+++ b/aws-cpp-sdk-transfer/include/aws/transfer/TransferHandle.h -@@ -297,6 +297,14 @@ namespace Aws - * Content type of the object being transferred - */ - inline void SetContentType(const Aws::String& value) { std::lock_guard locker(m_getterSetterLock); m_contentType = value; } -+ /** -+ * Content encoding of the object being transferred -+ */ -+ inline const Aws::String GetContentEncoding() const { std::lock_guard locker(m_getterSetterLock); return m_contentEncoding; } -+ /** -+ * Content type of the object being transferred -+ */ -+ inline void SetContentEncoding(const Aws::String& value) { std::lock_guard locker(m_getterSetterLock); m_contentEncoding = value; } - /** - * In case of an upload, this is the metadata that was placed on the object when it was uploaded. - * In the case of a download, this is the object metadata from the GetObject operation. -@@ -383,6 +391,7 @@ namespace Aws - Aws::String m_key; - Aws::String m_fileName; - Aws::String m_contentType; -+ Aws::String m_contentEncoding; - Aws::String m_versionId; - Aws::Map m_metadata; - TransferStatus m_status; ---- a/aws-cpp-sdk-transfer/include/aws/transfer/TransferManager.h -+++ b/aws-cpp-sdk-transfer/include/aws/transfer/TransferManager.h -@@ -154,7 +154,8 @@ namespace Aws - const Aws::String& keyName, - const Aws::String& contentType, - const Aws::Map& metadata, -- const std::shared_ptr& context = nullptr); -+ const std::shared_ptr& context = nullptr, -+ const Aws::String& contentEncoding = ""); - - /** - * Downloads the contents of bucketName/keyName in S3 to the file specified by writeToFile. This will perform a GetObject operation. -@@ -246,7 +247,8 @@ namespace Aws - const Aws::Map& metadata, - const std::shared_ptr& context, -- const Aws::String& fileName = ""); -+ const Aws::String& fileName = "", -+ const Aws::String& contentEncoding = ""); - - /** - * Submits the actual task to task schecduler -@@ -262,7 +264,8 @@ namespace Aws - const Aws::String& keyName, - const Aws::String& contentType, - const Aws::Map& metadata, -- const std::shared_ptr& context); -+ const std::shared_ptr& context, -+ const Aws::String& contentEncoding); - - /** - * Uploads the contents of file, to bucketName/keyName in S3. contentType and metadata will be added to the object. If the object is larger than the configured bufferSize, ---- a/aws-cpp-sdk-transfer/source/transfer/TransferManager.cpp -+++ b/aws-cpp-sdk-transfer/source/transfer/TransferManager.cpp -@@ -87,9 +87,10 @@ namespace Aws - const Aws::String& bucketName, - const Aws::String& keyName, const Aws::String& contentType, - const Aws::Map& metadata, -- const std::shared_ptr& context) -+ const std::shared_ptr& context, -+ const Aws::String& contentEncoding) - { -- return this->DoUploadFile(fileStream, bucketName, keyName, contentType, metadata, context); -+ return this->DoUploadFile(fileStream, bucketName, keyName, contentType, metadata, context, contentEncoding); - } - - std::shared_ptr TransferManager::DownloadFile(const Aws::String& bucketName, -@@ -286,6 +287,9 @@ namespace Aws - createMultipartRequest.WithKey(handle->GetKey()); - createMultipartRequest.WithMetadata(handle->GetMetadata()); - -+ if (handle->GetContentEncoding() != "") -+ createMultipartRequest.WithContentEncoding(handle->GetContentEncoding()); -+ - auto createMultipartResponse = m_transferConfig.s3Client->CreateMultipartUpload(createMultipartRequest); - if (createMultipartResponse.IsSuccess()) - { -@@ -441,6 +445,9 @@ namespace Aws - - putObjectRequest.SetContentType(handle->GetContentType()); - -+ if (handle->GetContentEncoding() != "") -+ putObjectRequest.SetContentEncoding(handle->GetContentEncoding()); -+ - auto buffer = m_bufferManager.Acquire(); - - auto lengthToWrite = (std::min)(m_transferConfig.bufferSize, handle->GetBytesTotalSize()); -@@ -1140,12 +1147,15 @@ namespace Aws - const Aws::String& contentType, - const Aws::Map& metadata, - const std::shared_ptr& context, -- const Aws::String& fileName) -+ const Aws::String& fileName, -+ const Aws::String& contentEncoding) - { - auto handle = Aws::MakeShared(CLASS_TAG, bucketName, keyName, 0, fileName); - handle->SetContentType(contentType); - handle->SetMetadata(metadata); - handle->SetContext(context); -+ if (contentEncoding != "") -+ handle->SetContentEncoding(contentEncoding); - - if (!fileStream->good()) - { -@@ -1213,9 +1223,10 @@ namespace Aws - const Aws::String& keyName, - const Aws::String& contentType, - const Aws::Map& metadata, -- const std::shared_ptr& context) -+ const std::shared_ptr& context, -+ const Aws::String& contentEncoding) - { -- auto handle = CreateUploadFileHandle(fileStream.get(), bucketName, keyName, contentType, metadata, context); -+ auto handle = CreateUploadFileHandle(fileStream.get(), bucketName, keyName, contentType, metadata, context, "", contentEncoding); - return SubmitUpload(handle, fileStream); - } - diff --git a/pkgs/by-name/ni/nix/patches/boehmgc-coroutine-sp-fallback.patch b/pkgs/by-name/ni/nix/patches/boehmgc-coroutine-sp-fallback.patch deleted file mode 100644 index 578bd32..0000000 --- a/pkgs/by-name/ni/nix/patches/boehmgc-coroutine-sp-fallback.patch +++ /dev/null @@ -1,45 +0,0 @@ -diff --git a/pthread_stop_world.c b/pthread_stop_world.c -index 2b45489..0e6d8ef 100644 ---- a/pthread_stop_world.c -+++ b/pthread_stop_world.c -@@ -776,6 +776,8 @@ STATIC void GC_restart_handler(int sig) - /* world is stopped. Should not fail if it isn't. */ - GC_INNER void GC_push_all_stacks(void) - { -+ size_t stack_limit; -+ pthread_attr_t pattr; - GC_bool found_me = FALSE; - size_t nthreads = 0; - int i; -@@ -868,6 +870,31 @@ GC_INNER void GC_push_all_stacks(void) - hi = p->altstack + p->altstack_size; - # endif - /* FIXME: Need to scan the normal stack too, but how ? */ -+ } else { -+ if (pthread_getattr_np(p->id, &pattr)) { -+ ABORT("GC_push_all_stacks: pthread_getattr_np failed!"); -+ } -+ if (pthread_attr_getstacksize(&pattr, &stack_limit)) { -+ ABORT("GC_push_all_stacks: pthread_attr_getstacksize failed!"); -+ } -+ if (pthread_attr_destroy(&pattr)) { -+ ABORT("GC_push_all_stacks: pthread_attr_destroy failed!"); -+ } -+ // When a thread goes into a coroutine, we lose its original sp until -+ // control flow returns to the thread. -+ // While in the coroutine, the sp points outside the thread stack, -+ // so we can detect this and push the entire thread stack instead, -+ // as an approximation. -+ // We assume that the coroutine has similarly added its entire stack. -+ // This could be made accurate by cooperating with the application -+ // via new functions and/or callbacks. -+ #ifndef STACK_GROWS_UP -+ if (lo >= hi || lo < hi - stack_limit) { // sp outside stack -+ lo = hi - stack_limit; -+ } -+ #else -+ #error "STACK_GROWS_UP not supported in boost_coroutine2 (as of june 2021), so we don't support it in Nix." -+ #endif - } - # ifdef STACKPTR_CORRECTOR_AVAILABLE - if (GC_sp_corrector != 0) diff --git a/pkgs/by-name/ni/nix/patches/flaky-tests.patch b/pkgs/by-name/ni/nix/patches/flaky-tests.patch deleted file mode 100644 index 3684b09..0000000 --- a/pkgs/by-name/ni/nix/patches/flaky-tests.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/mk/run_test.sh b/mk/run_test.sh -index 7e95df2ac..58420c317 100755 ---- a/mk/run_test.sh -+++ b/mk/run_test.sh -@@ -27,7 +27,6 @@ run_test "$1" - # appear randomly without anyone knowing why. - # See https://github.com/NixOS/nix/issues/3605 for more info - if [[ $status -ne 0 && $status -ne 99 && \ -- "$(uname)" == "Darwin" && \ - "$log" =~ "unexpected EOF reading a line" \ - ]]; then - echo "$post_run_msg [${yellow}FAIL$normal] (possibly flaky, so will be retried)" diff --git a/pkgs/by-name/ni/nixdoc/default.nix b/pkgs/by-name/ni/nixdoc/default.nix deleted file mode 100644 index e1e7f19..0000000 --- a/pkgs/by-name/ni/nixdoc/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ - lib, - stdenv, - fetchFromGitHub, - rustPlatform, - darwin, -}: let - version = "3.0.2"; -in - rustPlatform.buildRustPackage { - pname = "nixdoc"; - inherit version; - - src = fetchFromGitHub { - owner = "nix-community"; - repo = "nixdoc"; - rev = "v${version}"; - sha256 = "sha256-V3MAvbdYk3DL064UYcJE9HmwfQBwpMxVXWiAKX6honA="; - }; - - cargoHash = "sha256-RFxTjLiJCEc42Mb8rcayOFHkYk2GfpgsO3+hAaRwHgs="; - - 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; - }; - } diff --git a/pkgs/by-name/nl/nlohmann_json/default.nix b/pkgs/by-name/nl/nlohmann_json/default.nix deleted file mode 100644 index 339db2b..0000000 --- a/pkgs/by-name/nl/nlohmann_json/default.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ stdenv -, lib -, fetchFromGitHub -, cmake -}: -let - testData = fetchFromGitHub { - owner = "nlohmann"; - repo = "json_test_data"; - rev = "v3.1.0"; - hash = "sha256-bG34W63ew7haLnC82A3lS7bviPDnApLipaBjJAjLcVk="; - }; -in stdenv.mkDerivation (finalAttrs: { - pname = "nlohmann_json"; - version = "3.11.3"; - - src = fetchFromGitHub { - owner = "nlohmann"; - repo = "json"; - rev = "v${finalAttrs.version}"; - hash = "sha256-7F0Jon+1oWL7uqet5i1IgHX0fUw/+z0QwEcA3zs5xHg="; - }; - - nativeBuildInputs = [ cmake ]; - - cmakeFlags = [ - "-DJSON_BuildTests=${if finalAttrs.finalPackage.doCheck then "ON" else "OFF"}" - "-DJSON_FastTests=ON" - "-DJSON_MultipleHeaders=ON" - ] ++ lib.optional finalAttrs.finalPackage.doCheck "-DJSON_TestDataDirectory=${testData}"; - - doCheck = stdenv.hostPlatform == stdenv.buildPlatform; - - # skip tests that require git or modify “installed files” - preCheck = '' - checkFlagsArray+=("ARGS=-LE 'not_reproducible|git_required'") - ''; - - postInstall = "rm -rf $out/lib64"; - - meta = with lib; { - description = "JSON for Modern C++"; - homepage = "https://json.nlohmann.me"; - changelog = "https://github.com/nlohmann/json/blob/develop/ChangeLog.md"; - license = licenses.mit; - platforms = platforms.all; - }; -}) diff --git a/pkgs/by-name/on/oniguruma/default.nix b/pkgs/by-name/on/oniguruma/default.nix deleted file mode 100644 index cf00629..0000000 --- a/pkgs/by-name/on/oniguruma/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, stdenv, fetchurl, autoreconfHook }: - -stdenv.mkDerivation rec { - pname = "oniguruma"; - version = "6.9.9"; - - # Note: do not use fetchpatch or fetchFromGitHub to keep this package available in __bootPackages - src = fetchurl { - url = "https://github.com/kkos/oniguruma/releases/download/v${version}/onig-${version}.tar.gz"; - sha256 = "sha256-YBYr07n8b0iG1MegeSX/03QWdzL1Xc6MSRv9nNgYps8="; - }; - - outputs = [ "dev" "lib" "out" ]; - outputBin = "dev"; # onig-config - - nativeBuildInputs = [ autoreconfHook ]; - configureFlags = [ "--enable-posix-api=yes" ]; - - meta = with lib; { - homepage = "https://github.com/kkos/oniguruma"; - description = "Regular expressions library"; - mainProgram = "onig-config"; - license = licenses.bsd2; - maintainers = with maintainers; [ artturin ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/op/openexr/3.nix b/pkgs/by-name/op/openexr/3.nix deleted file mode 100644 index 074fdf4..0000000 --- a/pkgs/by-name/op/openexr/3.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, imath -, libdeflate -, pkg-config -, pkgsCross -}: - -stdenv.mkDerivation rec { - pname = "openexr"; - version = "3.2.4"; - - src = fetchFromGitHub { - owner = "AcademySoftwareFoundation"; - repo = "openexr"; - rev = "v${version}"; - hash = "sha256-mVUxxYe6teiJ18PQ9703/kjBpJ9+a7vcDme+NwtQQQM="; - }; - - 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 - ; - - # tests are determined to use /var/tmp on unix - postPatch = '' - cat <(find . -name tmpDir.h) <(echo src/test/OpenEXRCoreTest/main.cpp) | while read -r f ; do - substituteInPlace $f --replace '/var/tmp' "$TMPDIR" - done - ''; - - cmakeFlags = lib.optional stdenv.hostPlatform.isStatic "-DCMAKE_SKIP_RPATH=ON"; - - 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 - env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isi686 "-msse2 -mfpmath=sse"; - - # https://github.com/AcademySoftwareFoundation/openexr/issues/1400 - doCheck = !stdenv.isAarch32; - - passthru.tests = { - musl = pkgsCross.musl64.openexr_3; - }; - - meta = with lib; { - description = "A high dynamic-range (HDR) image file format"; - homepage = "https://www.openexr.com"; - license = licenses.bsd3; - maintainers = with maintainers; [ paperdigits ]; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/op/openexr/default.nix b/pkgs/by-name/op/openexr/default.nix deleted file mode 100644 index 6d45ca3..0000000 --- a/pkgs/by-name/op/openexr/default.nix +++ /dev/null @@ -1,69 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, zlib -, ilmbase -, fetchpatch -, cmake -}: - -stdenv.mkDerivation rec { - pname = "openexr"; - version = "2.5.10"; - - outputs = [ "bin" "dev" "out" "doc" ]; - - src = fetchFromGitHub { - owner = "AcademySoftwareFoundation"; - repo = "openexr"; - rev = "v${version}"; - hash = "sha256-xdC+T79ZQBx/XhuIXtP93Roj0N9lF+E65ReEKQ4kIsg="; - }; - - patches = [ - (fetchpatch { - name = "CVE-2021-45942.patch"; - url = "https://github.com/AcademySoftwareFoundation/openexr/commit/11cad77da87c4fa2aab7d58dd5339e254db7937e.patch"; - stripLen = 4; - extraPrefix = "OpenEXR/IlmImf/"; - sha256 = "1wa2jn6sa0n3phaqvklnlbgk1bz60y756ad4jk4d757pzpnannsy"; - }) - (fetchpatch { - name = "CVE-2021-3933.patch"; - url = "https://github.com/AcademySoftwareFoundation/openexr/commit/5db6f7aee79e3e75e8c3780b18b28699614dd08e.patch"; - stripLen = 4; - extraPrefix = "OpenEXR/IlmImf/"; - sha256 = "sha256-DrpldpNgN5pWKzIuuPIrynGX3EpP8YhJlu+lLfNFGxQ="; - }) - - # GCC 13 fixes - ./gcc-13.patch - ]; - - postPatch = '' - # tests are determined to use /var/tmp on unix - find . -name tmpDir.h | while read -r f ; do - substituteInPlace $f --replace '/var/tmp' "$TMPDIR" - done - # On slower machines this test can take more than the default 1500 seconds - echo 'set_tests_properties(OpenEXR.IlmImf PROPERTIES TIMEOUT 3000)' >> OpenEXR/IlmImfTest/CMakeLists.txt - ''; - - cmakeFlags = [ - "-DCMAKE_CTEST_ARGUMENTS=--timeout;3600" - ] ++ lib.optional stdenv.hostPlatform.isStatic "-DCMAKE_SKIP_RPATH=ON"; - - nativeBuildInputs = [ cmake ]; - propagatedBuildInputs = [ ilmbase zlib ]; - - # https://github.com/AcademySoftwareFoundation/openexr/issues/1400 - # https://github.com/AcademySoftwareFoundation/openexr/issues/1281 - doCheck = !stdenv.isAarch32 && !stdenv.isi686; - - meta = with lib; { - description = "A high dynamic-range (HDR) image file format"; - homepage = "https://www.openexr.com/"; - license = licenses.bsd3; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/op/openexr/disable-iex-test.patch b/pkgs/by-name/op/openexr/disable-iex-test.patch deleted file mode 100644 index f1ceb13..0000000 --- a/pkgs/by-name/op/openexr/disable-iex-test.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt -index 25f429da..918f56e9 100644 ---- a/src/test/CMakeLists.txt -+++ b/src/test/CMakeLists.txt -@@ -5,7 +5,7 @@ - # combined python 2 + 3 support - - if (OPENEXR_TEST_LIBRARIES) -- add_subdirectory(IexTest) -+ #add_subdirectory(IexTest) - add_subdirectory(OpenEXRCoreTest) - add_subdirectory(OpenEXRTest) - add_subdirectory(OpenEXRUtilTest) diff --git a/pkgs/by-name/op/openexr/gcc-13.patch b/pkgs/by-name/op/openexr/gcc-13.patch deleted file mode 100644 index 6264a8d..0000000 --- a/pkgs/by-name/op/openexr/gcc-13.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 8aa103fe6e815514990e59708468eabc36f7f332 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=C3=A9clairevoyant?= - <848000+eclairevoyant@users.noreply.github.com> -Date: Fri, 5 Jan 2024 18:12:16 -0500 -Subject: [PATCH] gcc13 - ---- - OpenEXR/IlmImf/ImfTiledMisc.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/OpenEXR/IlmImf/ImfTiledMisc.cpp b/OpenEXR/IlmImf/ImfTiledMisc.cpp -index 06ea3144..749537d4 100644 ---- a/OpenEXR/IlmImf/ImfTiledMisc.cpp -+++ b/OpenEXR/IlmImf/ImfTiledMisc.cpp -@@ -46,6 +46,7 @@ - #include - #include - #include -+#include - - #include "ImfNamespace.h" - --- -2.42.0 - diff --git a/pkgs/by-name/op/openexr/packages.nix b/pkgs/by-name/op/openexr/packages.nix deleted file mode 100644 index 7ea0169..0000000 --- a/pkgs/by-name/op/openexr/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index 12b05df..0000000 --- a/pkgs/by-name/op/openjpeg/default.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ 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 - mkFlag = optSet: flag: "-D${flag}=${if optSet then "ON" else "OFF"}"; -in - -stdenv.mkDerivation rec { - pname = "openjpeg"; - version = "2.5.2"; - - src = fetchFromGitHub { - owner = "uclouvain"; - repo = "openjpeg"; - rev = "v${version}"; - hash = "sha256-mQ9B3MJY2/bg0yY/7jUJrAXM6ozAHT5fmwES5Q1SGxw="; - }; - - outputs = [ "out" "dev" ]; - - cmakeFlags = [ - "-DCMAKE_INSTALL_NAME_DIR=\${CMAKE_INSTALL_PREFIX}/lib" - "-DBUILD_SHARED_LIBS=ON" - "-DBUILD_CODEC=ON" - "-DBUILD_THIRDPARTY=OFF" - (mkFlag jpipLibSupport "BUILD_JPIP") - (mkFlag jpipServerSupport "BUILD_JPIP_SERVER") - "-DBUILD_VIEWER=OFF" - "-DBUILD_JAVA=OFF" - (mkFlag doCheck "BUILD_TESTING") - ]; - - nativeBuildInputs = [ cmake pkg-config ]; - - 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 - nativeCheckInputs = [ jpylyzer ]; - checkPhase = '' - substituteInPlace ../tools/ctest_scripts/travis-ci.cmake \ - --replace "JPYLYZER_EXECUTABLE=" "JPYLYZER_EXECUTABLE=\"$(command -v jpylyzer)\" # " - OPJ_SOURCE_DIR=.. ctest -S ../tools/ctest_scripts/travis-ci.cmake - ''; - - passthru = { - incDir = "openjpeg-${lib.versions.majorMinor version}"; - tests = { - inherit poppler; - }; - }; - - meta = with lib; { - description = "Open-source JPEG 2000 codec written in C language"; - homepage = "https://www.openjpeg.org/"; - license = licenses.bsd2; - maintainers = with maintainers; [ codyopel ]; - platforms = platforms.all; - changelog = "https://github.com/uclouvain/openjpeg/blob/v${version}/CHANGELOG.md"; - }; -} diff --git a/pkgs/by-name/op/openldap/default.nix b/pkgs/by-name/op/openldap/default.nix deleted file mode 100644 index 4a00f40..0000000 --- a/pkgs/by-name/op/openldap/default.nix +++ /dev/null @@ -1,141 +0,0 @@ -{ lib -, stdenv -, fetchurl - -# dependencies -, cyrus_sasl -, groff -, libsodium -, libtool -, openssl -, systemdMinimal -, libxcrypt - -# for passthru.tests -# , nixosTests -}: - -stdenv.mkDerivation rec { - pname = "openldap"; - version = "2.6.7"; - - src = fetchurl { - url = "https://www.openldap.org/software/download/OpenLDAP/openldap-release/${pname}-${version}.tgz"; - hash = "sha256-zXdfYlyUTteKPaGKA7A7CO6nPIqryXtBuzNumhCVSTA="; - }; - - # TODO: separate "out" and "bin" - outputs = [ - "out" - "dev" - "man" - "devdoc" - ]; - - __darwinAllowLocalNetworking = true; - - enableParallelBuilding = true; - - nativeBuildInputs = [ - groff - ]; - - 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"; - - env.NIX_CFLAGS_COMPILE = toString [ "-DLDAPI_SOCK=\"/run/openldap/ldapi\"" ]; - - makeFlags= [ - "CC=${stdenv.cc.targetPrefix}cc" - "STRIP=" # Disable install stripping as it breaks cross-compiling. We strip binaries anyway in fixupPhase. - "STRIP_OPTS=" - "prefix=${placeholder "out"}" - "sysconfdir=/etc" - "systemdsystemunitdir=${placeholder "out"}/lib/systemd/system" - # contrib modules require these - "moduledir=${placeholder "out"}/lib/modules" - "mandir=${placeholder "out"}/share/man" - ]; - - extraContribModules = [ - # https://git.openldap.org/openldap/openldap/-/tree/master/contrib/slapd-modules - "passwd/sha2" - "passwd/pbkdf2" - "passwd/totp" - ]; - - postBuild = '' - for module in $extraContribModules; do - make $makeFlags CC=$CC -C contrib/slapd-modules/$module - done - ''; - - preCheck = '' - substituteInPlace tests/scripts/all \ - --replace "/bin/rm" "rm" - - # skip flaky tests - rm -f tests/scripts/test063-delta-multiprovider - - # https://bugs.openldap.org/show_bug.cgi?id=10009 - # can probably be re-added once https://github.com/cyrusimap/cyrus-sasl/pull/772 - # has made it to a release - rm -f tests/scripts/test076-authid-rewrite - ''; - - doCheck = true; - - # The directory is empty and serve no purpose. - preFixup = '' - rm -r $out/var - ''; - - installFlags = [ - "prefix=${placeholder "out"}" - "sysconfdir=${placeholder "out"}/etc" - "moduledir=${placeholder "out"}/lib/modules" - "INSTALL=install" - ]; - - postInstall = '' - for module in $extraContribModules; do - make $installFlags install -C contrib/slapd-modules/$module - done - chmod +x "$out"/lib/*.{so,dylib} - ''; - - # passthru.tests = { - # inherit (nixosTests) openldap; - # }; - - meta = with lib; { - homepage = "https://www.openldap.org/"; - description = "An open source implementation of the Lightweight Directory Access Protocol"; - license = licenses.openldap; - maintainers = with maintainers; [ hexa ] ++ teams.helsinki-systems.members; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/op/openmpi/default.nix b/pkgs/by-name/op/openmpi/default.nix deleted file mode 100644 index 913cccf..0000000 --- a/pkgs/by-name/op/openmpi/default.nix +++ /dev/null @@ -1,136 +0,0 @@ -{ 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 - -# 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 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="; - }; - - postPatch = '' - patchShebangs ./ - - # Ensure build is reproducible - ts=`date -d @$SOURCE_DATE_EPOCH` - sed -i 's/OPAL_CONFIGURE_USER=.*/OPAL_CONFIGURE_USER="nixbld"/' configure - sed -i 's/OPAL_CONFIGURE_HOST=.*/OPAL_CONFIGURE_HOST="localhost"/' configure - sed -i "s/OPAL_CONFIGURE_DATE=.*/OPAL_CONFIGURE_DATE=\"$ts\"/" configure - find -name "Makefile.in" -exec sed -i "s/\`date\`/$ts/" \{} \; - ''; - - outputs = [ "out" "man" "dev" ]; - - buildInputs = [ zlib ] - ++ lib.optionals stdenv.isLinux [ libnl numactl pmix ucx ucc ] - ++ lib.optionals cudaSupport [ cudaPackages.cuda_cudart ] - ++ [ libevent hwloc ] - ++ lib.optional (stdenv.isLinux || stdenv.isFreeBSD) rdma-core - ++ lib.optionals fabricSupport [ libpsm2 libfabric ]; - - nativeBuildInputs = [ perl removeReferencesTo makeWrapper ] - ++ lib.optionals cudaSupport [ cudaPackages.cuda_nvcc ] - ++ lib.optionals fortranSupport [ gfortran ]; - - configureFlags = lib.optional (!cudaSupport) "--disable-mca-dso" - ++ lib.optional (!fortranSupport) "--disable-mpi-fortran" - ++ 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 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}" ] - ; - - enableParallelBuilding = true; - - postInstall = '' - find $out/lib/ -name "*.la" -exec rm -f \{} \; - - for f in mpi shmem osh; do - for i in f77 f90 CC c++ cxx cc fort; do - moveToOutput "bin/$f$i" "''${!outputDev}" - echo "move $fi$i" - moveToOutput "share/openmpi/$f$i-wrapper-data.txt" "''${!outputDev}" - done - done - - for i in ortecc orte-info ompi_info oshmem_info opal_wrapper; do - moveToOutput "bin/$i" "''${!outputDev}" - 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 - - ''; - - doCheck = true; - - passthru = { - inherit cudaSupport; - cudatoolkit = cudaPackages.cudatoolkit; # For backward compatibility only - }; - - meta = with lib; { - homepage = "https://www.open-mpi.org/"; - description = "Open source MPI-3 implementation"; - longDescription = "The Open MPI Project is an open source MPI-3 implementation that is developed and maintained by a consortium of academic, research, and industry partners. Open MPI is therefore able to combine the expertise, technologies, and resources from all across the High Performance Computing community in order to build the best MPI library available. Open MPI offers advantages for system and software vendors, application developers and computer science researchers."; - maintainers = with maintainers; [ markuskowa ]; - license = licenses.bsd3; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/op/openmpi/packages.nix b/pkgs/by-name/op/openmpi/packages.nix deleted file mode 100644 index 95e875f..0000000 --- a/pkgs/by-name/op/openmpi/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index 27f5dc4..0000000 --- a/pkgs/by-name/op/opensp/default.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ lib, stdenv, fetchurl, fetchpatch, xmlto, docbook_xml_dtd_412 -, docbook_xsl, autoconf, automake, libtool -, autoreconfHook -}: - -stdenv.mkDerivation rec { - pname = "opensp"; - version = "1.5.2"; - - src = fetchurl { - url = "mirror://sourceforge/openjade/OpenSP-${version}.tar.gz"; - sha256 = "1khpasr6l0a8nfz6kcf3s81vgdab8fm2dj291n5r2s53k228kx2p"; - }; - - postPatch = '' - sed -i s,/usr/share/sgml/docbook/xml-dtd-4.1.2/,${docbook_xml_dtd_412}/xml/dtd/docbook/, \ - docsrc/*.xml - ''; - - patches = [ - (fetchpatch { - url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/app-text/opensp/files/opensp-1.5.2-c11-using.patch?id=688d9675782dfc162d4e6cff04c668f7516118d0"; - sha256 = "04q14s8qsad0bkjmj067dn831i0r6v7742rafdlnbfm5y249m2q6"; - }) - # Clang 16 defaults to C++17, which does not allow `register` as a storage class specifier. - ./fix-register-storage-class.patch - ]; - - setupHook = ./setup-hook.sh; - - postFixup = '' - # 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 - ''; - - 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 ]; - - doCheck = false; # fails - - meta = with lib; { - description = "A suite of SGML/XML processing tools"; - license = licenses.mit; - homepage = "https://openjade.sourceforge.net/"; - platforms = platforms.unix; - maintainers = with maintainers; [ ]; - }; -} diff --git a/pkgs/by-name/op/opensp/fix-register-storage-class.patch b/pkgs/by-name/op/opensp/fix-register-storage-class.patch deleted file mode 100644 index ce1aba3..0000000 --- a/pkgs/by-name/op/opensp/fix-register-storage-class.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/lib/Recognizer.cxx 2005-11-05 04:05:20.000000000 -0500 -+++ b/lib/Recognizer.cxx 2023-06-03 11:45:04.497116217 -0400 -@@ -39,7 +39,7 @@ - } - else - in->startTokenNoMulticode(); -- register const Trie *pos = trie_.pointer(); -+ const Trie *pos = trie_.pointer(); - do { - pos = pos->next(map_[in->tokenChar(mgr)]); - } while (pos->hasNext()); diff --git a/pkgs/by-name/op/opensp/setup-hook.sh b/pkgs/by-name/op/opensp/setup-hook.sh deleted file mode 100644 index 5bace3c..0000000 --- a/pkgs/by-name/op/opensp/setup-hook.sh +++ /dev/null @@ -1,22 +0,0 @@ -addSGMLCatalogs () { - if test -d $1/sgml/dtd; then - for i in $(find $1/sgml/dtd -name docbook.cat); do - export SGML_CATALOG_FILES="${SGML_CATALOG_FILES:+:}$i" - done - fi -} - -if test -z "${sgmlHookDone-}"; then - sgmlHookDone=1 - - # Set http_proxy and ftp_proxy to a invalid host to prevent - # xmllint and xsltproc from trying to download DTDs from the - # network even when --nonet is not given. That would be impure. - # (Note that .invalid is a reserved domain guaranteed not to - # work.) - export http_proxy=http://nodtd.invalid/ - export ftp_proxy=http://nodtd.invalid/ - - export SGML_CATALOG_FILES - addEnvHooks "$targetOffset" addSGMLCatalogs -fi diff --git a/pkgs/by-name/op/openssh/common.nix b/pkgs/by-name/op/openssh/common.nix deleted file mode 100644 index 8d26085..0000000 --- a/pkgs/by-name/op/openssh/common.nix +++ /dev/null @@ -1,188 +0,0 @@ -{ 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 -# for passthru.tests -# , nixosTests -}: - -stdenv.mkDerivation { - inherit pname version src; - - patches = [ - ./locale_archive.patch - - (fetchurl { - url = "https://git.alpinelinux.org/aports/plain/main/openssh/gss-serv.c.patch?id=a7509603971ce2f3282486a43bb773b1b522af83"; - sha256 = "sha256-eFFOd4B2nccRZAQWwdBPBoKWjfEdKEVGJvKZAzLu3HU="; - }) - - # See discussion in https://github.com/NixOS/nixpkgs/pull/16966 - ./dont_create_privsep_path.patch - ] ++ extraPatches; - - postPatch = - # On Hydra this makes installation fail (sometimes?), - # and nix store doesn't allow such fancy permission bits anyway. - '' - substituteInPlace Makefile.in --replace '$(INSTALL) -m 4711' '$(INSTALL) -m 0711' - ''; - - strictDeps = true; - 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 ] - ++ [ (if linkOpenssl then openssl else libxcrypt) ] - ++ lib.optional withFIDO libfido2 - ++ lib.optional withKerberos libkrb5 - ++ lib.optional withLdns ldns - ++ lib.optional withPAM pam; - - preConfigure = '' - # Setting LD causes `configure' and `make' to disagree about which linker - # to use: `configure' wants `gcc', but `make' wants `ld'. - unset LD - ''; - - # 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}" - ++ lib.optional withFIDO "--with-security-key-builtin=yes" - ++ 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" ]; - - buildFlags = [ "SSH_KEYSIGN=ssh-keysign" ]; - - enableParallelBuilding = true; - - hardeningEnable = [ "pie" ]; - - doCheck = true; - enableParallelChecking = false; - nativeCheckInputs = [ openssl ] ++ lib.optional (!stdenv.isDarwin) hostname; - preCheck = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) '' - # construct a dummy HOME - export HOME=$(realpath ../dummy-home) - mkdir -p ~/.ssh - - # construct a dummy /etc/passwd file for the sshd under test - # to use to look up the connecting user - DUMMY_PASSWD=$(realpath ../dummy-passwd) - cat > $DUMMY_PASSWD < ~/.ssh/environment.base < regress/test-exec.sh.new <> $HOME/.ssh/environment - EOF - mv regress/test-exec.sh.new regress/test-exec.sh - - # explicitly enable the PermitUserEnvironment feature - substituteInPlace regress/test-exec.sh \ - --replace \ - 'cat << EOF > $OBJ/sshd_config' \ - $'cat << EOF > $OBJ/sshd_config\n\tPermitUserEnvironment yes' - - # some tests want to use files under /bin as example files - for f in regress/sftp-cmds.sh regress/forwarding.sh; do - substituteInPlace $f --replace '/bin' "$(dirname $(type -p ls))" - done - - # set up NIX_REDIRECTS for direct invocations - set -a; source ~/.ssh/environment.base; set +a - ''; - # 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" - # other tests are less demanding of the environment - ++ [ "unit" "file-tests" "interop-tests" ]; - - postInstall = '' - # Install ssh-copy-id, it's very useful. - cp contrib/ssh-copy-id $out/bin/ - chmod +x $out/bin/ssh-copy-id - cp contrib/ssh-copy-id.1 $out/share/man/man1/ - ''; - - installTargets = [ "install-nokeys" ]; - 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; -} diff --git a/pkgs/by-name/op/openssh/copyid.nix b/pkgs/by-name/op/openssh/copyid.nix deleted file mode 100644 index 40707c2..0000000 --- a/pkgs/by-name/op/openssh/copyid.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ 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 -'' diff --git a/pkgs/by-name/op/openssh/default.nix b/pkgs/by-name/op/openssh/default.nix deleted file mode 100644 index 855ce3d..0000000 --- a/pkgs/by-name/op/openssh/default.nix +++ /dev/null @@ -1,81 +0,0 @@ -{ callPackage, lib, fetchurl, fetchpatch, autoreconfHook }: -let - common = opts: callPackage (import ./common.nix opts) { }; -in -{ - openssh = common rec { - pname = "openssh"; - version = "9.7p1"; - - src = fetchurl { - url = "mirror://openbsd/OpenSSH/portable/openssh-${version}.tar.gz"; - hash = "sha256-SQQm92bYKidj/KzY2D6j1weYdQx70q/y5X3FZg93P/0="; - }; - - extraPatches = [ ./ssh-keysign-8.5.patch ]; - extraMeta.maintainers = lib.teams.helsinki-systems.members; - }; - - openssh_hpn = common rec { - pname = "openssh-with-hpn"; - version = "9.7p1"; - extraDesc = " with high performance networking patches"; - - src = fetchurl { - url = "mirror://openbsd/OpenSSH/portable/openssh-${version}.tar.gz"; - 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 - - # 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="; - }) - ]; - - extraNativeBuildInputs = [ autoreconfHook ]; - - extraConfigureFlags = [ "--with-hpn" ]; - extraMeta = { - maintainers = with lib.maintainers; [ abbe ]; - }; - }; - - openssh_gssapi = common rec { - pname = "openssh-with-gssapi"; - version = "9.7p1"; - extraDesc = " with GSSAPI support"; - - src = fetchurl { - url = "mirror://openbsd/OpenSSH/portable/openssh-${version}.tar.gz"; - hash = "sha256-SQQm92bYKidj/KzY2D6j1weYdQx70q/y5X3FZg93P/0="; - }; - - extraPatches = [ - ./ssh-keysign-8.5.patch - - (fetchpatch { - name = "openssh-gssapi.patch"; - url = "https://salsa.debian.org/ssh-team/openssh/raw/debian/1%25${version}-3/debian/patches/gssapi.patch"; - hash = "sha256-/lEbH5sIS+o+DStEDAghFy43nZlvcIXSFJrnvp+fDdY="; - }) - ]; - - extraNativeBuildInputs = [ autoreconfHook ]; - }; -} diff --git a/pkgs/by-name/op/openssh/dont_create_privsep_path.patch b/pkgs/by-name/op/openssh/dont_create_privsep_path.patch deleted file mode 100644 index 23f3ab6..0000000 --- a/pkgs/by-name/op/openssh/dont_create_privsep_path.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git i/Makefile.in w/Makefile.in -index 04e1c8e5..9bd5d01b 100644 ---- i/Makefile.in -+++ w/Makefile.in -@@ -329,7 +329,6 @@ install-files: - $(MKDIR_P) $(DESTDIR)$(mandir)/$(mansubdir)5 - $(MKDIR_P) $(DESTDIR)$(mandir)/$(mansubdir)8 - $(MKDIR_P) $(DESTDIR)$(libexecdir) -- $(MKDIR_P) -m 0755 $(DESTDIR)$(PRIVSEP_PATH) - $(INSTALL) -m 0755 $(STRIP_OPT) ssh$(EXEEXT) $(DESTDIR)$(bindir)/ssh$(EXEEXT) - $(INSTALL) -m 0755 $(STRIP_OPT) scp$(EXEEXT) $(DESTDIR)$(bindir)/scp$(EXEEXT) - $(INSTALL) -m 0755 $(STRIP_OPT) ssh-add$(EXEEXT) $(DESTDIR)$(bindir)/ssh-add$(EXEEXT) diff --git a/pkgs/by-name/op/openssh/locale_archive.patch b/pkgs/by-name/op/openssh/locale_archive.patch deleted file mode 100644 index 3fe4a21..0000000 --- a/pkgs/by-name/op/openssh/locale_archive.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git i/session.c w/session.c -index 58826db1..658dd911 100644 ---- i/session.c -+++ w/session.c -@@ -1053,6 +1053,10 @@ do_setup_env(struct ssh *ssh, Session *s, const char *shell) - if (getenv("TZ")) - child_set_env(&env, &envsize, "TZ", getenv("TZ")); - -+ /* NixOS path to the glibc locale archive, to be set in the systemd job */ -+ if (getenv("LOCALE_ARCHIVE")) -+ child_set_env(&env, &envsize, "LOCALE_ARCHIVE", getenv("LOCALE_ARCHIVE")); -+ - /* Set custom environment options from pubkey authentication. */ - if (options.permit_user_env) { - for (n = 0 ; n < auth_opts->nenv; n++) { diff --git a/pkgs/by-name/op/openssh/packages.nix b/pkgs/by-name/op/openssh/packages.nix deleted file mode 100644 index 4427ade..0000000 --- a/pkgs/by-name/op/openssh/packages.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - opensshPackages = dontRecurseIntoAttrs (callPackage ./. {}); - - openssh = opensshPackages.openssh.override { - etcDir = "/etc/ssh"; - }; - - openssh_hpn = opensshPackages.openssh_hpn.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/openssh/ssh-keysign-8.5.patch b/pkgs/by-name/op/openssh/ssh-keysign-8.5.patch deleted file mode 100644 index 67c45b6..0000000 --- a/pkgs/by-name/op/openssh/ssh-keysign-8.5.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/pathnames.h b/pathnames.h -index cb44caa4..354fdf05 100644 ---- a/pathnames.h -+++ b/pathnames.h -@@ -124,7 +124,7 @@ - - /* Location of ssh-keysign for hostbased authentication */ - #ifndef _PATH_SSH_KEY_SIGN --#define _PATH_SSH_KEY_SIGN "/usr/libexec/ssh-keysign" -+#define _PATH_SSH_KEY_SIGN "ssh-keysign" - #endif - - /* Location of ssh-pkcs11-helper to support keys in tokens */ ---- a/sshconnect2.c -+++ b/sshconnect2.c -@@ -2021,7 +2021,7 @@ - - debug3_f("[child] pid=%ld, exec %s", - (long)getpid(), _PATH_SSH_KEY_SIGN); -- execl(_PATH_SSH_KEY_SIGN, _PATH_SSH_KEY_SIGN, (char *)NULL); -+ execlp(_PATH_SSH_KEY_SIGN, _PATH_SSH_KEY_SIGN, (char *)NULL); - fatal_f("exec(%s): %s", _PATH_SSH_KEY_SIGN, - strerror(errno)); - } diff --git a/pkgs/by-name/op/openssl/1.1/nix-ssl-cert-file.patch b/pkgs/by-name/op/openssl/1.1/nix-ssl-cert-file.patch deleted file mode 100644 index 9e871cf..0000000 --- a/pkgs/by-name/op/openssl/1.1/nix-ssl-cert-file.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/crypto/x509/by_file.c b/crypto/x509/by_file.c -index 244512c935..f0b70d7ea1 100644 ---- a/crypto/x509/by_file.c -+++ b/crypto/x509/by_file.c -@@ -46,7 +46,9 @@ static int by_file_ctrl(X509_LOOKUP *ctx, int cmd, const char *argp, - switch (cmd) { - case X509_L_FILE_LOAD: - if (argl == X509_FILETYPE_DEFAULT) { -- file = ossl_safe_getenv(X509_get_default_cert_file_env()); -+ file = ossl_safe_getenv("NIX_SSL_CERT_FILE"); -+ if (!file) -+ file = ossl_safe_getenv(X509_get_default_cert_file_env()); - if (file) - ok = (X509_load_cert_crl_file(ctx, file, - X509_FILETYPE_PEM) != 0); diff --git a/pkgs/by-name/op/openssl/3.0/legacy.cnf b/pkgs/by-name/op/openssl/3.0/legacy.cnf deleted file mode 100644 index a6485a8..0000000 --- a/pkgs/by-name/op/openssl/3.0/legacy.cnf +++ /dev/null @@ -1,395 +0,0 @@ -# Taken from OpenSSL 3.0.7 and modified according to: https://wiki.openssl.org/index.php/OpenSSL_3.0#Programming_in_OpenSSL_3.0 -# -# OpenSSL example configuration file. -# See doc/man5/config.pod for more info. -# -# This is mostly being used for generation of certificate requests, -# but may be used for auto loading of providers - -# Note that you can include other files from the main configuration -# file using the .include directive. -#.include filename - -# This definition stops the following lines choking if HOME isn't -# defined. -HOME = . - - # Use this in order to automatically load providers. -openssl_conf = openssl_init - -# Comment out the next line to ignore configuration errors -config_diagnostics = 1 - -# Extra OBJECT IDENTIFIER info: -# oid_file = $ENV::HOME/.oid -oid_section = new_oids - -# To use this configuration file with the "-extfile" option of the -# "openssl x509" utility, name here the section containing the -# X.509v3 extensions to use: -# extensions = -# (Alternatively, use a configuration file that has only -# X.509v3 extensions in its main [= default] section.) - -[ new_oids ] -# We can add new OIDs in here for use by 'ca', 'req' and 'ts'. -# Add a simple OID like this: -# testoid1=1.2.3.4 -# Or use config file substitution like this: -# testoid2=${testoid1}.5.6 - -# Policies used by the TSA examples. -tsa_policy1 = 1.2.3.4.1 -tsa_policy2 = 1.2.3.4.5.6 -tsa_policy3 = 1.2.3.4.5.7 - -# For FIPS -# Optionally include a file that is generated by the OpenSSL fipsinstall -# application. This file contains configuration data required by the OpenSSL -# fips provider. It contains a named section e.g. [fips_sect] which is -# referenced from the [provider_sect] below. -# Refer to the OpenSSL security policy for more information. -# .include fipsmodule.cnf - -[openssl_init] -providers = provider_sect - -# List of providers to load -[provider_sect] -default = default_sect -legacy = legacy_sect - -# The fips section name should match the section name inside the -# included fipsmodule.cnf. -# fips = fips_sect - -# If no providers are activated explicitly, the default one is activated implicitly. -# See man 7 OSSL_PROVIDER-default for more details. -# -# If you add a section explicitly activating any other provider(s), you most -# probably need to explicitly activate the default provider, otherwise it -# becomes unavailable in openssl. As a consequence applications depending on -# OpenSSL may not work correctly which could lead to significant system -# problems including inability to remotely access the system. -[default_sect] -activate = 1 - -[legacy_sect] -activate = 1 - -#################################################################### -[ ca ] -default_ca = CA_default # The default ca section - -#################################################################### -[ CA_default ] - -dir = ./demoCA # Where everything is kept -certs = $dir/certs # Where the issued certs are kept -crl_dir = $dir/crl # Where the issued crl are kept -database = $dir/index.txt # database index file. -#unique_subject = no # Set to 'no' to allow creation of - # several certs with same subject. -new_certs_dir = $dir/newcerts # default place for new certs. - -certificate = $dir/cacert.pem # The CA certificate -serial = $dir/serial # The current serial number -crlnumber = $dir/crlnumber # the current crl number - # must be commented out to leave a V1 CRL -crl = $dir/crl.pem # The current CRL -private_key = $dir/private/cakey.pem# The private key - -x509_extensions = usr_cert # The extensions to add to the cert - -# Comment out the following two lines for the "traditional" -# (and highly broken) format. -name_opt = ca_default # Subject Name options -cert_opt = ca_default # Certificate field options - -# Extension copying option: use with caution. -# copy_extensions = copy - -# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs -# so this is commented out by default to leave a V1 CRL. -# crlnumber must also be commented out to leave a V1 CRL. -# crl_extensions = crl_ext - -default_days = 365 # how long to certify for -default_crl_days= 30 # how long before next CRL -default_md = default # use public key default MD -preserve = no # keep passed DN ordering - -# A few difference way of specifying how similar the request should look -# For type CA, the listed attributes must be the same, and the optional -# and supplied fields are just that :-) -policy = policy_match - -# For the CA policy -[ policy_match ] -countryName = match -stateOrProvinceName = match -organizationName = match -organizationalUnitName = optional -commonName = supplied -emailAddress = optional - -# For the 'anything' policy -# At this point in time, you must list all acceptable 'object' -# types. -[ policy_anything ] -countryName = optional -stateOrProvinceName = optional -localityName = optional -organizationName = optional -organizationalUnitName = optional -commonName = supplied -emailAddress = optional - -#################################################################### -[ req ] -default_bits = 2048 -default_keyfile = privkey.pem -distinguished_name = req_distinguished_name -attributes = req_attributes -x509_extensions = v3_ca # The extensions to add to the self signed cert - -# Passwords for private keys if not present they will be prompted for -# input_password = secret -# output_password = secret - -# This sets a mask for permitted string types. There are several options. -# default: PrintableString, T61String, BMPString. -# pkix : PrintableString, BMPString (PKIX recommendation before 2004) -# utf8only: only UTF8Strings (PKIX recommendation after 2004). -# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). -# MASK:XXXX a literal mask value. -# WARNING: ancient versions of Netscape crash on BMPStrings or UTF8Strings. -string_mask = utf8only - -# req_extensions = v3_req # The extensions to add to a certificate request - -[ req_distinguished_name ] -countryName = Country Name (2 letter code) -countryName_default = AU -countryName_min = 2 -countryName_max = 2 - -stateOrProvinceName = State or Province Name (full name) -stateOrProvinceName_default = Some-State - -localityName = Locality Name (eg, city) - -0.organizationName = Organization Name (eg, company) -0.organizationName_default = Internet Widgits Pty Ltd - -# we can do this but it is not needed normally :-) -#1.organizationName = Second Organization Name (eg, company) -#1.organizationName_default = World Wide Web Pty Ltd - -organizationalUnitName = Organizational Unit Name (eg, section) -#organizationalUnitName_default = - -commonName = Common Name (e.g. server FQDN or YOUR name) -commonName_max = 64 - -emailAddress = Email Address -emailAddress_max = 64 - -# SET-ex3 = SET extension number 3 - -[ req_attributes ] -challengePassword = A challenge password -challengePassword_min = 4 -challengePassword_max = 20 - -unstructuredName = An optional company name - -[ usr_cert ] - -# These extensions are added when 'ca' signs a request. - -# This goes against PKIX guidelines but some CAs do it and some software -# requires this to avoid interpreting an end user certificate as a CA. - -basicConstraints=CA:FALSE - -# This is typical in keyUsage for a client certificate. -# keyUsage = nonRepudiation, digitalSignature, keyEncipherment - -# PKIX recommendations harmless if included in all certificates. -subjectKeyIdentifier=hash -authorityKeyIdentifier=keyid,issuer - -# This stuff is for subjectAltName and issuerAltname. -# Import the email address. -# subjectAltName=email:copy -# An alternative to produce certificates that aren't -# deprecated according to PKIX. -# subjectAltName=email:move - -# Copy subject details -# issuerAltName=issuer:copy - -# This is required for TSA certificates. -# extendedKeyUsage = critical,timeStamping - -[ v3_req ] - -# Extensions to add to a certificate request - -basicConstraints = CA:FALSE -keyUsage = nonRepudiation, digitalSignature, keyEncipherment - -[ v3_ca ] - - -# Extensions for a typical CA - - -# PKIX recommendation. - -subjectKeyIdentifier=hash - -authorityKeyIdentifier=keyid:always,issuer - -basicConstraints = critical,CA:true - -# Key usage: this is typical for a CA certificate. However since it will -# prevent it being used as an test self-signed certificate it is best -# left out by default. -# keyUsage = cRLSign, keyCertSign - -# Include email address in subject alt name: another PKIX recommendation -# subjectAltName=email:copy -# Copy issuer details -# issuerAltName=issuer:copy - -# DER hex encoding of an extension: beware experts only! -# obj=DER:02:03 -# Where 'obj' is a standard or added object -# You can even override a supported extension: -# basicConstraints= critical, DER:30:03:01:01:FF - -[ crl_ext ] - -# CRL extensions. -# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. - -# issuerAltName=issuer:copy -authorityKeyIdentifier=keyid:always - -[ proxy_cert_ext ] -# These extensions should be added when creating a proxy certificate - -# This goes against PKIX guidelines but some CAs do it and some software -# requires this to avoid interpreting an end user certificate as a CA. - -basicConstraints=CA:FALSE - -# This is typical in keyUsage for a client certificate. -# keyUsage = nonRepudiation, digitalSignature, keyEncipherment - -# PKIX recommendations harmless if included in all certificates. -subjectKeyIdentifier=hash -authorityKeyIdentifier=keyid,issuer - -# This stuff is for subjectAltName and issuerAltname. -# Import the email address. -# subjectAltName=email:copy -# An alternative to produce certificates that aren't -# deprecated according to PKIX. -# subjectAltName=email:move - -# Copy subject details -# issuerAltName=issuer:copy - -# This really needs to be in place for it to be a proxy certificate. -proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo - -#################################################################### -[ tsa ] - -default_tsa = tsa_config1 # the default TSA section - -[ tsa_config1 ] - -# These are used by the TSA reply generation only. -dir = ./demoCA # TSA root directory -serial = $dir/tsaserial # The current serial number (mandatory) -crypto_device = builtin # OpenSSL engine to use for signing -signer_cert = $dir/tsacert.pem # The TSA signing certificate - # (optional) -certs = $dir/cacert.pem # Certificate chain to include in reply - # (optional) -signer_key = $dir/private/tsakey.pem # The TSA private key (optional) -signer_digest = sha256 # Signing digest to use. (Optional) -default_policy = tsa_policy1 # Policy if request did not specify it - # (optional) -other_policies = tsa_policy2, tsa_policy3 # acceptable policies (optional) -digests = sha1, sha256, sha384, sha512 # Acceptable message digests (mandatory) -accuracy = secs:1, millisecs:500, microsecs:100 # (optional) -clock_precision_digits = 0 # number of digits after dot. (optional) -ordering = yes # Is ordering defined for timestamps? - # (optional, default: no) -tsa_name = yes # Must the TSA name be included in the reply? - # (optional, default: no) -ess_cert_id_chain = no # Must the ESS cert id chain be included? - # (optional, default: no) -ess_cert_id_alg = sha1 # algorithm to compute certificate - # identifier (optional, default: sha1) - -[insta] # CMP using Insta Demo CA -# Message transfer -server = pki.certificate.fi:8700 -# proxy = # set this as far as needed, e.g., http://192.168.1.1:8080 -# tls_use = 0 -path = pkix/ - -# Server authentication -recipient = "/C=FI/O=Insta Demo/CN=Insta Demo CA" # or set srvcert or issuer -ignore_keyusage = 1 # potentially needed quirk -unprotected_errors = 1 # potentially needed quirk -extracertsout = insta.extracerts.pem - -# Client authentication -ref = 3078 # user identification -secret = pass:insta # can be used for both client and server side - -# Generic message options -cmd = ir # default operation, can be overridden on cmd line with, e.g., kur - -# Certificate enrollment -subject = "/CN=openssl-cmp-test" -newkey = insta.priv.pem -out_trusted = insta.ca.crt -certout = insta.cert.pem - -[pbm] # Password-based protection for Insta CA -# Server and client authentication -ref = $insta::ref # 3078 -secret = $insta::secret # pass:insta - -[signature] # Signature-based protection for Insta CA -# Server authentication -trusted = insta.ca.crt # does not include keyUsage digitalSignature - -# Client authentication -secret = # disable PBM -key = $insta::newkey # insta.priv.pem -cert = $insta::certout # insta.cert.pem - -[ir] -cmd = ir - -[cr] -cmd = cr - -[kur] -# Certificate update -cmd = kur -oldcert = $insta::certout # insta.cert.pem - -[rr] -# Certificate revocation -cmd = rr -oldcert = $insta::certout # insta.cert.pem diff --git a/pkgs/by-name/op/openssl/3.0/nix-ssl-cert-file.patch b/pkgs/by-name/op/openssl/3.0/nix-ssl-cert-file.patch deleted file mode 100644 index e7090f4..0000000 --- a/pkgs/by-name/op/openssl/3.0/nix-ssl-cert-file.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/crypto/x509/by_file.c b/crypto/x509/by_file.c -index 37d73ca84c..e328896234 100644 ---- a/crypto/x509/by_file.c -+++ b/crypto/x509/by_file.c -@@ -54,7 +54,9 @@ static int by_file_ctrl_ex(X509_LOOKUP *ctx, int cmd, const char *argp, - switch (cmd) { - case X509_L_FILE_LOAD: - if (argl == X509_FILETYPE_DEFAULT) { -- file = ossl_safe_getenv(X509_get_default_cert_file_env()); -+ file = ossl_safe_getenv("NIX_SSL_CERT_FILE"); -+ if (!file) -+ file = ossl_safe_getenv(X509_get_default_cert_file_env()); - if (file) - ok = (X509_load_cert_crl_file_ex(ctx, file, X509_FILETYPE_PEM, - libctx, propq) != 0); diff --git a/pkgs/by-name/op/openssl/3.0/openssl-disable-kernel-detection.patch b/pkgs/by-name/op/openssl/3.0/openssl-disable-kernel-detection.patch deleted file mode 100644 index 0458556..0000000 --- a/pkgs/by-name/op/openssl/3.0/openssl-disable-kernel-detection.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/Configure b/Configure -index a558e5ab1a..9a884f0b0f 100755 ---- a/Configure -+++ b/Configure -@@ -1714,20 +1714,6 @@ unless ($disabled{devcryptoeng}) { - - unless ($disabled{ktls}) { - $config{ktls}=""; -- my $cc = $config{CROSS_COMPILE}.$config{CC}; -- if ($target =~ m/^linux/) { -- system("printf '#include \n#include ' | $cc -E - >/dev/null 2>&1"); -- if ($? != 0) { -- disable('too-old-kernel', 'ktls'); -- } -- } elsif ($target =~ m/^BSD/) { -- system("printf '#include \n#include ' | $cc -E - >/dev/null 2>&1"); -- if ($? != 0) { -- disable('too-old-freebsd', 'ktls'); -- } -- } else { -- disable('not-linux-or-freebsd', 'ktls'); -- } - } - - push @{$config{openssl_other_defines}}, "OPENSSL_NO_KTLS" if ($disabled{ktls}); diff --git a/pkgs/by-name/op/openssl/3.2/use-etc-ssl-certs-darwin.patch b/pkgs/by-name/op/openssl/3.2/use-etc-ssl-certs-darwin.patch deleted file mode 100644 index e8b07b4..0000000 --- a/pkgs/by-name/op/openssl/3.2/use-etc-ssl-certs-darwin.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/include/internal/common.h b/include/internal/common.h -index 15666f1..d91e25b 100644 ---- a/include/internal/common.h -+++ b/include/internal/common.h -@@ -83,7 +83,7 @@ __owur static ossl_inline int ossl_assert_int(int expr, const char *exprstr, - # ifndef OPENSSL_SYS_VMS - # define X509_CERT_AREA OPENSSLDIR - # define X509_CERT_DIR OPENSSLDIR "/certs" --# define X509_CERT_FILE OPENSSLDIR "/cert.pem" -+# define X509_CERT_FILE "/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt" - # define X509_PRIVATE_DIR OPENSSLDIR "/private" - # define CTLOG_FILE OPENSSLDIR "/ct_log_list.cnf" - # else diff --git a/pkgs/by-name/op/openssl/3.2/use-etc-ssl-certs.patch b/pkgs/by-name/op/openssl/3.2/use-etc-ssl-certs.patch deleted file mode 100644 index 13a36fb..0000000 --- a/pkgs/by-name/op/openssl/3.2/use-etc-ssl-certs.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/include/internal/common.h b/include/internal/common.h -index 15666f1..d91e25b 100644 ---- a/include/internal/common.h -+++ b/include/internal/common.h -@@ -83,7 +83,7 @@ __owur static ossl_inline int ossl_assert_int(int expr, const char *exprstr, - # ifndef OPENSSL_SYS_VMS - # define X509_CERT_AREA OPENSSLDIR - # define X509_CERT_DIR OPENSSLDIR "/certs" --# define X509_CERT_FILE OPENSSLDIR "/cert.pem" -+# define X509_CERT_FILE "/etc/ssl/certs/ca-certificates.crt" - # define X509_PRIVATE_DIR OPENSSLDIR "/private" - # define CTLOG_FILE OPENSSLDIR "/ct_log_list.cnf" - # else diff --git a/pkgs/by-name/op/openssl/default.nix b/pkgs/by-name/op/openssl/default.nix deleted file mode 100644 index 86afc47..0000000 --- a/pkgs/by-name/op/openssl/default.nix +++ /dev/null @@ -1,335 +0,0 @@ -{ 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 -# cannot use fetchpatch! All mutable patches (generated by GitHub or -# cgit) that are needed here should be included directly in Nixpkgs as -# files. - -let - 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; - }; - - 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 -}' - ''; - - 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; - - # 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}" - ]; - - 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" - ]; - 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 - # - latest 3.x non-LTS as preview/for development - # - # - other versions in between only when reasonable need is stated for some package - # - backport every security critical fix release e.g. 3.0.y -> 3.0.y+1 but no new version, e.g. 3.1 -> 3.2 - - # If you do upgrade here, please update in pkgs/top-level/release.nix - # the permitted insecure version to ensure it gets cached for our users - # and backport this to stable release (23.05). - openssl_1_1 = common { - version = "1.1.1w"; - hash = "sha256-zzCYlQy02FOtlcCEHx+cbT3BAtzPys1SHZOSUgi3asg="; - 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) - ]; - withDocs = true; - extraMeta = { - knownVulnerabilities = [ - "OpenSSL 1.1 is reaching its end of life on 2023/09/11 and cannot be supported through the NixOS 23.05 release cycle. https://www.openssl.org/blog/blog/2023/03/28/1.1.1-EOL/" - ]; - }; - }; - - openssl_3 = common { - version = "3.0.13"; - hash = "sha256-iFJXU/edO+wn0vp8ZqoLkrOqlJja/ZPXz6SzeAza4xM="; - - patches = [ - ./3.0/nix-ssl-cert-file.patch - - # openssl will only compile in KTLS if the current kernel supports it. - # 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) - ]; - - withDocs = true; - - extraMeta = with lib; { - license = licenses.asl20; - }; - }; - - openssl_3_2 = common { - version = "3.2.1"; - hash = "sha256-g8cyn+UshQZ3115dCwyiRTCbl+jsvP3B39xKufrDWzk="; - - patches = [ - ./3.0/nix-ssl-cert-file.patch - - # openssl will only compile in KTLS if the current kernel supports it. - # 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) - ]; - - withDocs = true; - - extraMeta = with lib; { - license = licenses.asl20; - }; - }; - - openssl_3_3 = common { - version = "3.3.0"; - hash = "sha256-U+ZrBDMipgar8Ah+dpmg4DOjf6E/65dC3zXDozsY+wI="; - - patches = [ - ./3.0/nix-ssl-cert-file.patch - - # openssl will only compile in KTLS if the current kernel supports it. - # 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) - ]; - - withDocs = true; - - extraMeta = with lib; { - license = licenses.asl20; - }; - }; -} diff --git a/pkgs/by-name/op/openssl/packages.nix b/pkgs/by-name/op/openssl/packages.nix deleted file mode 100644 index 6f5163e..0000000 --- a/pkgs/by-name/op/openssl/packages.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - openssl = openssl_3; - - openssl_legacy = openssl.override { - conf = ./3.0/legacy.cnf; - }; - - inherit (callPackages ./. { }) - openssl_1_1 - openssl_3 - openssl_3_2 - openssl_3_3; -} diff --git a/pkgs/by-name/op/openssl/use-etc-ssl-certs-darwin.patch b/pkgs/by-name/op/openssl/use-etc-ssl-certs-darwin.patch deleted file mode 100644 index 2c98ccf..0000000 --- a/pkgs/by-name/op/openssl/use-etc-ssl-certs-darwin.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/include/internal/cryptlib.h b/include/internal/cryptlib.h -index 329ef62..9a8df64 100644 ---- a/include/internal/cryptlib.h -+++ b/include/internal/cryptlib.h -@@ -56,7 +56,7 @@ DEFINE_LHASH_OF(MEM); - # ifndef OPENSSL_SYS_VMS - # define X509_CERT_AREA OPENSSLDIR - # define X509_CERT_DIR OPENSSLDIR "/certs" --# define X509_CERT_FILE OPENSSLDIR "/cert.pem" -+# define X509_CERT_FILE "/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt" - # define X509_PRIVATE_DIR OPENSSLDIR "/private" - # define CTLOG_FILE OPENSSLDIR "/ct_log_list.cnf" - # else diff --git a/pkgs/by-name/op/openssl/use-etc-ssl-certs.patch b/pkgs/by-name/op/openssl/use-etc-ssl-certs.patch deleted file mode 100644 index 67d1996..0000000 --- a/pkgs/by-name/op/openssl/use-etc-ssl-certs.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/include/internal/cryptlib.h b/include/internal/cryptlib.h -index 329ef62..9a8df64 100644 ---- a/include/internal/cryptlib.h -+++ b/include/internal/cryptlib.h -@@ -56,7 +56,7 @@ DEFINE_LHASH_OF(MEM); - # ifndef OPENSSL_SYS_VMS - # define X509_CERT_AREA OPENSSLDIR - # define X509_CERT_DIR OPENSSLDIR "/certs" --# define X509_CERT_FILE OPENSSLDIR "/cert.pem" -+# define X509_CERT_FILE "/etc/ssl/certs/ca-certificates.crt" - # define X509_PRIVATE_DIR OPENSSLDIR "/private" - # define CTLOG_FILE OPENSSLDIR "/ct_log_list.cnf" - # else diff --git a/pkgs/by-name/pa/pam/default.nix b/pkgs/by-name/pa/pam/default.nix deleted file mode 100644 index cb5b13e..0000000 --- a/pkgs/by-name/pa/pam/default.nix +++ /dev/null @@ -1,88 +0,0 @@ -{ lib, stdenv, buildPackages, fetchurl, fetchpatch -, flex, cracklib, db4, gettext, audit, libxcrypt -, autoreconfHook269, pkg-config-unwrapped -# for passthru.tests -# , nixosTests -}: - -stdenv.mkDerivation rec { - pname = "linux-pam"; - version = "1.6.0"; - - src = fetchurl { - url = "https://github.com/linux-pam/linux-pam/releases/download/v${version}/Linux-PAM-${version}.tar.xz"; - hash = "sha256-//SjTlu+534ujxmS8nYx4jKby/igVj3etcM4m04xaa0="; - }; - - patches = [ - ./suid-wrapper-path.patch - - # Backport fix for missing include breaking musl builds. - (fetchpatch { - name = "pam_namespace-stdint.h.patch"; - url = "https://github.com/linux-pam/linux-pam/commit/cc9d40b7cdbd3e15ccaa324a0dda1680ef9dea13.patch"; - hash = "sha256-tCnH2yPO4dBbJOZA0fP2gm1EavHRMEJyfzB5Vy7YjAA="; - }) - - # Resotre handling of empty passwords: - # https://github.com/linux-pam/linux-pam/pull/784 - # TODO: drop upstreamed patch on 1.6.1 update. - (fetchpatch { - name = "revert-unconditional-helper.patch"; - url = "https://github.com/linux-pam/linux-pam/commit/8d0c575336ad301cd14e16ad2fdec6fe621764b8.patch"; - hash = "sha256-z9KfMxxqXQVnmNaixaVjLnQqaGsH8MBHhHbiP/8fvhE="; - }) - ]; - - # 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; - - 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; - - 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 - ''; - - configureFlags = [ - "--includedir=${placeholder "out"}/include/security" - "--enable-sconfigdir=/etc/security" - # The module is deprecated. We re-enable it explicitly until NixOS - # module stops using it. - "--enable-lastlog" - ]; - - installFlags = [ - "SCONFIGDIR=${placeholder "out"}/etc/security" - ]; - - doCheck = false; # fails - - # passthru.tests = { - # inherit (nixosTests) pam-oath-login pam-u2f shadow sssd-ldap; - # }; - - meta = with lib; { - homepage = "http://www.linux-pam.org/"; - description = "Pluggable Authentication Modules, a flexible mechanism for authenticating user"; - platforms = platforms.linux; - license = licenses.bsd3; - }; -} diff --git a/pkgs/by-name/pa/pam/packages.nix b/pkgs/by-name/pa/pam/packages.nix deleted file mode 100644 index 2084880..0000000 --- a/pkgs/by-name/pa/pam/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - linux-pam = callPackage ./. { }; - - pam = if stdenv.isLinux then linux-pam else openpam; -} diff --git a/pkgs/by-name/pa/pam/suid-wrapper-path.patch b/pkgs/by-name/pa/pam/suid-wrapper-path.patch deleted file mode 100644 index a427ccf..0000000 --- a/pkgs/by-name/pa/pam/suid-wrapper-path.patch +++ /dev/null @@ -1,6 +0,0 @@ -It needs the SUID version during runtime, and that can't be in /nix/store/** ---- a/modules/pam_unix/Makefile.am -+++ b/modules/pam_unix/Makefile.am -@@ -21 +21 @@ -- -DCHKPWD_HELPER=\"$(sbindir)/unix_chkpwd\" \ -+ -DCHKPWD_HELPER=\"/run/wrappers/bin/unix_chkpwd\" \ diff --git a/pkgs/by-name/pa/pango/default.nix b/pkgs/by-name/pa/pango/default.nix deleted file mode 100644 index 3428877..0000000 --- a/pkgs/by-name/pa/pango/default.nix +++ /dev/null @@ -1,134 +0,0 @@ -{ 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"; - - src = fetchurl { - url = with finalAttrs; "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "sha256-PbpAfytfwRfhkvMCXwocyO3B/ZuTSxxXiyuXNCE5QVo="; - }; - - depsBuildBuild = [ - pkg-config - ]; - - 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 - ]); - - propagatedBuildInputs = [ - cairo - glib - libintl - harfbuzz - ] ++ lib.optionals x11Support [ - libXft - ]; - - mesonFlags = [ - (lib.mesonBool "gtk_doc" withIntrospection) - (lib.mesonEnable "introspection" withIntrospection) - (lib.mesonEnable "xft" x11Support) - ]; - - # Fontconfig error: Cannot load default config file - 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 - # TODO: send upstream - postPatch = '' - substituteInPlace docs/meson.build \ - --replace "'gi-docgen', req" "'gi-docgen', native:true, req" - ''; - - doCheck = false; # test-font: FAIL - - postFixup = '' - # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back. - moveToOutput "share/doc" "$devdoc" - ''; - - passthru = { - updateScript = gnome.updateScript { - packageName = finalAttrs.pname; - # 1.90 is alpha for API 2. - freeze = "1.90.0"; - }; - tests = { - pkg-config = testers.hasPkgConfigModules { - package = finalAttrs.finalPackage; - }; - }; - }; - - meta = with lib; { - description = "A library for laying out and rendering of text, with an emphasis on internationalization"; - - longDescription = '' - Pango is a library for laying out and rendering of text, with an - emphasis on internationalization. Pango can be used anywhere - that text layout is needed, though most of the work on Pango so - far has been done in the context of the GTK widget toolkit. - Pango forms the core of text and font handling for GTK. - ''; - - homepage = "https://www.pango.org/"; - license = licenses.lgpl2Plus; - - maintainers = with maintainers; [ raskin ] ++ teams.gnome.members; - platforms = platforms.unix; - - pkgConfigModules = [ - "pango" - "pangocairo" - "pangofc" - "pangoft2" - "pangoot" - "pangoxft" - ]; - }; -}) diff --git a/pkgs/by-name/pa/pango/packages.nix b/pkgs/by-name/pa/pango/packages.nix deleted file mode 100644 index 2757e8c..0000000 --- a/pkgs/by-name/pa/pango/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index 94c0539..0000000 --- a/pkgs/by-name/pa/patchelf/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchurl }: - -# 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. - -stdenv.mkDerivation rec { - pname = "patchelf"; - version = "0.15.0"; - - src = fetchurl { - url = "https://github.com/NixOS/${pname}/releases/download/${version}/${pname}-${version}.tar.bz2"; - sha256 = "sha256-9ANtPuTY4ijewb7/8PbkbYpA6eVw4AaOOdd+YuLIvcI="; - }; - - strictDeps = true; - - setupHook = [ ./setup-hook.sh ]; - - enableParallelBuilding = true; - - # fails 8 out of 24 tests, problems when loading libc.so.6 - doCheck = stdenv.name == "stdenv-linux" - # test scripts require unprefixed bintools binaries - # https://github.com/NixOS/patchelf/issues/417 - && stdenv.cc.targetPrefix == ""; - - meta = with lib; { - homepage = "https://github.com/NixOS/patchelf"; - license = licenses.gpl3Plus; - description = "A small utility to modify the dynamic linker and RPATH of ELF executables"; - mainProgram = "patchelf"; - maintainers = [ maintainers.eelco ]; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/pa/patchelf/setup-hook.sh b/pkgs/by-name/pa/patchelf/setup-hook.sh deleted file mode 100644 index 8f010a3..0000000 --- a/pkgs/by-name/pa/patchelf/setup-hook.sh +++ /dev/null @@ -1,20 +0,0 @@ -# This setup hook calls patchelf to automatically remove unneeded -# directories from the RPATH of every library or executable in every -# output. - -fixupOutputHooks+=('if [ -z "${dontPatchELF-}" ]; then patchELF "$prefix"; fi') - -patchELF() { - local dir="$1" - [ -e "$dir" ] || return 0 - - echo "shrinking RPATHs of ELF executables and libraries in $dir" - - local i - while IFS= read -r -d $'\0' i; do - if [[ "$i" =~ .build-id ]]; then continue; fi - if ! isELF "$i"; then continue; fi - echo "shrinking $i" - patchelf --shrink-rpath "$i" || true - done < <(find "$dir" -type f -print0) -} diff --git a/pkgs/by-name/pa/patchelf/unstable.nix b/pkgs/by-name/pa/patchelf/unstable.nix deleted file mode 100644 index c2d9b2c..0000000 --- a/pkgs/by-name/pa/patchelf/unstable.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ lib, stdenv, fetchurl, autoreconfHook, fetchFromGitHub, unstableGitUpdater }: - -stdenv.mkDerivation rec { - pname = "patchelf"; - version = "unstable-2024-01-15"; - - src = fetchFromGitHub { - owner = "NixOS"; - repo = "patchelf"; - rev = "7c2f768bf9601268a4e71c2ebe91e2011918a70f"; - sha256 = "sha256-PPXqKY2hJng4DBVE0I4xshv/vGLUskL7jl53roB8UdU="; - }; - - # Drop test that fails on musl (?) - postPatch = lib.optionalString stdenv.hostPlatform.isMusl '' - substituteInPlace tests/Makefile.am \ - --replace "set-rpath-library.sh" "" - ''; - - setupHook = [ ./setup-hook.sh ]; - - nativeBuildInputs = [ autoreconfHook ]; - buildInputs = [ ]; - - doCheck = !stdenv.isDarwin; - - passthru = { - updateScript = unstableGitUpdater { - url = "https://github.com/NixOS/patchelf.git"; - }; - }; - - meta = with lib; { - homepage = "https://github.com/NixOS/patchelf"; - license = licenses.gpl3; - description = "A small utility to modify the dynamic linker and RPATH of ELF executables"; - mainProgram = "patchelf"; - maintainers = [ maintainers.eelco ]; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/pa/patchutils/0.3.3.nix b/pkgs/by-name/pa/patchutils/0.3.3.nix deleted file mode 100644 index f503541..0000000 --- a/pkgs/by-name/pa/patchutils/0.3.3.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ 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 -}) diff --git a/pkgs/by-name/pa/patchutils/0.4.2.nix b/pkgs/by-name/pa/patchutils/0.4.2.nix deleted file mode 100644 index d3d26c1..0000000 --- a/pkgs/by-name/pa/patchutils/0.4.2.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ 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 ]; -}) diff --git a/pkgs/by-name/pa/patchutils/Revert-Fix-grepdiff-test.patch b/pkgs/by-name/pa/patchutils/Revert-Fix-grepdiff-test.patch deleted file mode 100644 index 434378a..0000000 --- a/pkgs/by-name/pa/patchutils/Revert-Fix-grepdiff-test.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 13672e53371ea9593130bdca178f3b8b2e174032 Mon Sep 17 00:00:00 2001 -From: Alyssa Ross -Date: Thu, 25 Apr 2024 09:10:54 +0200 -Subject: [PATCH] Revert "Fix grepdiff test" -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This reverts commit a6538753a51db973a05c9034ed78f2dd946453db. - -There's no need for an escape here, because POSIX regexes don't treat -'+' specially if it's at the start of the experssion. musl rejects -the version with the backslash. - -I'm still not clear why this change was made in the first place, but -reverting it seems to make the test pass on both glibc and musl… - -Link: https://github.com/twaugh/patchutils/issues/61 ---- - tests/grepdiff1/run-test | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/grepdiff1/run-test b/tests/grepdiff1/run-test -index c4311f8..c3cebdd 100755 ---- a/tests/grepdiff1/run-test -+++ b/tests/grepdiff1/run-test -@@ -20,7 +20,7 @@ cat << EOF > diff - +b - EOF - --${GREPDIFF} '\+a' diff 2>errors >index || exit 1 -+${GREPDIFF} '+a' diff 2>errors >index || exit 1 - [ -s errors ] && exit 1 - - cat << EOF | cmp - index || exit 1 --- -2.44.0 - diff --git a/pkgs/by-name/pa/patchutils/default.nix b/pkgs/by-name/pa/patchutils/default.nix deleted file mode 100644 index 902773f..0000000 --- a/pkgs/by-name/pa/patchutils/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ callPackage, ... } @ args: - -callPackage ./generic.nix (args // { - version = "0.3.4"; - sha256 = "0xp8mcfyi5nmb5a2zi5ibmyshxkb1zv1dgmnyn413m7ahgdx8mfg"; -}) diff --git a/pkgs/by-name/pa/patchutils/drop-comments.patch b/pkgs/by-name/pa/patchutils/drop-comments.patch deleted file mode 100644 index e02693a..0000000 --- a/pkgs/by-name/pa/patchutils/drop-comments.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 58987954647f51dc42fb13b7759923c6170dd905 Mon Sep 17 00:00:00 2001 -From: Tim Waugh -Date: Fri, 9 May 2014 16:23:27 +0100 -Subject: Make --clean drop comments after '@@' lines as well (trac #29). - - -diff --git a/Makefile.am b/Makefile.am -index 99ad2a3..f3c6dbc 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -198,6 +198,7 @@ TESTS = tests/newline1/run-test \ - tests/convert1/run-test \ - tests/convert2/run-test \ - tests/clean1/run-test \ -+ tests/clean2/run-test \ - tests/stdin/run-test - - # These ones don't work yet. -diff --git a/src/filterdiff.c b/src/filterdiff.c -index 383e72b..6ca2316 100644 ---- a/src/filterdiff.c -+++ b/src/filterdiff.c -@@ -2,7 +2,7 @@ - * filterdiff - extract (or exclude) a diff from a diff file - * lsdiff - show which files are modified by a patch - * grepdiff - show files modified by a patch containing a regexp -- * Copyright (C) 2001, 2002, 2003, 2004, 2008, 2009, 2011 Tim Waugh -+ * Copyright (C) 2001, 2002, 2003, 2004, 2008, 2009, 2011, 2013, 2014 Tim Waugh - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by -@@ -408,7 +408,8 @@ do_unified (FILE *f, char *header[2], int match, char **line, - " Hunk #%lu, %s", - hunknum, bestname); - -- fputs (trailing, output_to); -+ fputs (clean_comments ? "\n" : trailing, -+ output_to); - break; - case Before: - // Note the initial line number -diff --git a/tests/clean2/run-test b/tests/clean2/run-test -new file mode 100755 -index 0000000..42320df ---- /dev/null -+++ b/tests/clean2/run-test -@@ -0,0 +1,34 @@ -+#!/bin/sh -+ -+# This is a filterdiff(1) testcase. -+# Test: Make sure --clean removes hunk-level comments. -+ -+ -+. ${top_srcdir-.}/tests/common.sh -+ -+cat << EOF > diff -+non-diff line -+--- a/file1 -++++ b/file1 -+@@ -0,0 +1 @@ this is a hunk-level comment -++a -+EOF -+ -+${FILTERDIFF} --clean diff 2>errors >filtered || exit 1 -+[ -s errors ] && exit 1 -+ -+cat << EOF | cmp - filtered || exit 1 -+--- a/file1 -++++ b/file1 -+@@ -0,0 +1 @@ -++a -+EOF -+ -+${FILTERDIFF} --clean -x file1 diff 2>errors >filtered || exit 1 -+[ -s errors ] && exit 1 -+cat << EOF | cmp - filtered || exit 1 -+--- a/file1 -++++ b/file1 -+@@ -0,0 +1 @@ -++a -+EOF --- -cgit v0.10.1 - diff --git a/pkgs/by-name/pa/patchutils/generic.nix b/pkgs/by-name/pa/patchutils/generic.nix deleted file mode 100644 index d1cd433..0000000 --- a/pkgs/by-name/pa/patchutils/generic.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ lib, stdenv, fetchurl, perl, makeWrapper -, version, sha256, patches ? [], extraBuildInputs ? [] -, ... -}: -stdenv.mkDerivation rec { - pname = "patchutils"; - inherit version patches; - - src = fetchurl { - url = "http://cyberelk.net/tim/data/patchutils/stable/${pname}-${version}.tar.xz"; - inherit sha256; - }; - - nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ perl ] ++ extraBuildInputs; - hardeningDisable = [ "format" ]; - - # tests fail when building in parallel - enableParallelBuilding = false; - - postInstall = '' - for bin in $out/bin/{splitdiff,rediff,editdiff,dehtmldiff}; do - wrapProgram "$bin" \ - --prefix PATH : "$out/bin" - done - ''; - - 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' \; - ''; - - meta = with lib; { - description = "Tools to manipulate patch files"; - homepage = "http://cyberelk.net/tim/software/patchutils"; - license = licenses.gpl2Plus; - platforms = platforms.all; - maintainers = with maintainers; [ artturin ]; - }; -} diff --git a/pkgs/by-name/pa/patchutils/packages.nix b/pkgs/by-name/pa/patchutils/packages.nix deleted file mode 100644 index 89b6c9c..0000000 --- a/pkgs/by-name/pa/patchutils/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index 44555cd..0000000 --- a/pkgs/by-name/pb/pbzx/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{stdenv, lib, fetchFromGitHub, xz, xar}: - -stdenv.mkDerivation rec { - pname = "pbzx"; - version = "1.0.2"; - src = fetchFromGitHub { - owner = "NiklasRosenstein"; - repo = "pbzx"; - rev = "v${version}"; - sha256 = "0bwd7wmnhpz1n5p39mh6asfyccj4cm06hwigslcwbb3pdwmvxc90"; - }; - buildInputs = [ xz xar ]; - buildPhase = '' - ${stdenv.cc.targetPrefix}cc pbzx.c -llzma -lxar -o pbzx - ''; - installPhase = '' - mkdir -p $out/bin - cp pbzx $out/bin - ''; - meta = with lib; { - description = "Stream parser of Apple's pbzx compression format"; - platforms = platforms.unix; - license = licenses.gpl3; - maintainers = [ maintainers.matthewbauer ]; - mainProgram = "pbzx"; - }; -} diff --git a/pkgs/by-name/pc/pcre/default.nix b/pkgs/by-name/pc/pcre/default.nix deleted file mode 100644 index 5221915..0000000 --- a/pkgs/by-name/pc/pcre/default.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ lib, stdenv, fetchurl -, pcre, windows ? null -, variant ? null -}: - -assert lib.elem variant [ null "cpp" "pcre16" "pcre32" ]; - -stdenv.mkDerivation rec { - pname = "pcre" - + lib.optionalString (variant == "cpp") "-cpp" - + lib.optionalString (variant != "cpp" && variant != null) variant; - version = "8.45"; - - src = fetchurl { - url = "mirror://sourceforge/project/pcre/pcre/${version}/pcre-${version}.tar.bz2"; - sha256 = "sha256-Ta5v3NK7C7bDe1+Xwzwr6VTadDmFNpzdrDVG4yGL/7g="; - }; - - 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" - ] - ++ lib.optional (variant != null) "--enable-${variant}"; - - # https://bugs.exim.org/show_bug.cgi?id=2173 - patches = [ ./stacksize-detection.patch ]; - - preCheck = '' - 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 - - 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/"; - description = "A library for Perl Compatible Regular Expressions"; - license = lib.licenses.bsd3; - - longDescription = '' - The PCRE library is a set of functions that implement regular - expression pattern matching using the same syntax and semantics as - Perl 5. PCRE has its own native API, as well as a set of wrapper - functions that correspond to the POSIX regular expression API. The - PCRE library is free, even for building proprietary software. - ''; - - platforms = lib.platforms.all; - maintainers = with lib.maintainers; [ ]; - pkgConfigModules = [ - "libpcre" - "libpcreposix" - ]; - }; -} diff --git a/pkgs/by-name/pc/pcre/packages.nix b/pkgs/by-name/pc/pcre/packages.nix deleted file mode 100644 index 67a6fc0..0000000 --- a/pkgs/by-name/pc/pcre/packages.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - pcre = callPackage ./. { }; - pcre16 = res.pcre.override { variant = "pcre16"; }; - # pcre32 seems unused - pcre-cpp = res.pcre.override { variant = "cpp"; }; -} diff --git a/pkgs/by-name/pc/pcre/stacksize-detection.patch b/pkgs/by-name/pc/pcre/stacksize-detection.patch deleted file mode 100644 index 4bc9706..0000000 --- a/pkgs/by-name/pc/pcre/stacksize-detection.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/pcre_exec.c b/pcre_exec.c ---- a/pcre_exec.c -+++ b/pcre_exec.c -@@ -509,6 +509,12 @@ - (e.g. stopped by repeated call or recursion limit) - */ - -+#ifdef __GNUC__ -+static int -+match(REGISTER PCRE_PUCHAR eptr, REGISTER const pcre_uchar *ecode, -+ PCRE_PUCHAR mstart, int offset_top, match_data *md, eptrblock *eptrb, -+ unsigned int rdepth) __attribute__((noinline,noclone)); -+#endif - static int - match(REGISTER PCRE_PUCHAR eptr, REGISTER const pcre_uchar *ecode, - PCRE_PUCHAR mstart, int offset_top, match_data *md, eptrblock *eptrb, diff --git a/pkgs/by-name/pc/pcre2/default.nix b/pkgs/by-name/pc/pcre2/default.nix deleted file mode 100644 index 23234c4..0000000 --- a/pkgs/by-name/pc/pcre2/default.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ lib -, stdenv -, fetchurl -, withJitSealloc ? true -}: - -stdenv.mkDerivation rec { - pname = "pcre2"; - version = "10.43"; - - src = fetchurl { - url = "https://github.com/PhilipHazel/pcre2/releases/download/pcre2-${version}/pcre2-${version}.tar.bz2"; - hash = "sha256-4qU5hP8LB9/bWuRIa7ubIcyo598kNAlsyb8bcow1C8s="; - }; - - postPatch = '' - # Fix jit autodetection: - # https://github.com/PCRE2Project/pcre2/pull/396 - # Applying manually to avoid fetchpatch and autoreconfHook. - # TODO: remove once 10.44 is released - substituteInPlace configure --replace-fail \ - '#include "src/sljit/sljitConfigInternal.h"' \ - '#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"; - - outputs = [ "bin" "dev" "out" "doc" "man" "devdoc" ]; - - postFixup = '' - moveToOutput bin/pcre2-config "$dev" - ''; - - meta = with lib; { - homepage = "https://www.pcre.org/"; - description = "Perl Compatible Regular Expressions"; - license = licenses.bsd3; - maintainers = with maintainers; [ ttuegel ]; - platforms = platforms.all; - pkgConfigModules = [ - "libpcre2-posix" - "libpcre2-8" - "libpcre2-16" - "libpcre2-32" - ]; - }; -} diff --git a/pkgs/by-name/pe/perl/cpp-precomp.patch b/pkgs/by-name/pe/perl/cpp-precomp.patch deleted file mode 100644 index 231853f..0000000 --- a/pkgs/by-name/pe/perl/cpp-precomp.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/hints/darwin.sh 2013-05-08 11:13:45.000000000 -0600 -+++ b/hints/darwin.sh 2013-05-08 11:15:04.000000000 -0600 -@@ -129,7 +129,7 @@ - - # Avoid Apple's cpp precompiler, better for extensions - if [ "X`echo | ${cc} -no-cpp-precomp -E - 2>&1 >/dev/null`" = "X" ]; then -- cppflags="${cppflags} -no-cpp-precomp" -+ #cppflags="${cppflags} -no-cpp-precomp" - - # This is necessary because perl's build system doesn't - # apply cppflags to cc compile lines as it should. diff --git a/pkgs/by-name/pe/perl/cross.patch b/pkgs/by-name/pe/perl/cross.patch deleted file mode 100644 index e0f05ed..0000000 --- a/pkgs/by-name/pe/perl/cross.patch +++ /dev/null @@ -1,250 +0,0 @@ -From: =?UTF-8?q?Christian=20K=C3=B6gler?= -Date: Mon, 10 Apr 2023 22:12:24 +0200 -Subject: [PATCH] miniperl compatible modules - -CPAN::Meta -ExtUtils::MakeMaker -JSON::PP -Data::Dumper - -Updated for perl v5.38.0 by stig@stig.io - ---- - -diff --git a/cpan/CPAN-Meta-Requirements/lib/CPAN/Meta/Requirements.pm b/cpan/CPAN-Meta-Requirements/lib/CPAN/Meta/Requirements.pm -index b0e83b0d2d..dab4907704 100644 ---- a/cpan/CPAN-Meta-Requirements/lib/CPAN/Meta/Requirements.pm -+++ b/cpan/CPAN-Meta-Requirements/lib/CPAN/Meta/Requirements.pm -@@ -86,21 +86,7 @@ sub new { - # from version::vpp - sub _find_magic_vstring { - my $value = shift; -- my $tvalue = ''; -- require B; -- my $sv = B::svref_2object(\$value); -- my $magic = ref($sv) eq 'B::PVMG' ? $sv->MAGIC : undef; -- while ( $magic ) { -- if ( $magic->TYPE eq 'V' ) { -- $tvalue = $magic->PTR; -- $tvalue =~ s/^v?(.+)$/v$1/; -- last; -- } -- else { -- $magic = $magic->MOREMAGIC; -- } -- } -- return $tvalue; -+ return version::->parse($value)->stringify; - } - - # safe if given an unblessed reference -diff --git a/cpan/CPAN-Meta-YAML/lib/CPAN/Meta/YAML.pm b/cpan/CPAN-Meta-YAML/lib/CPAN/Meta/YAML.pm -index 746abd63bc..c55d7cd2d0 100644 ---- a/cpan/CPAN-Meta-YAML/lib/CPAN/Meta/YAML.pm -+++ b/cpan/CPAN-Meta-YAML/lib/CPAN/Meta/YAML.pm -@@ -1,6 +1,7 @@ - use 5.008001; # sane UTF-8 support - use strict; - use warnings; -+no warnings 'experimental::builtin'; - package CPAN::Meta::YAML; # git description: v1.68-2-gcc5324e - # XXX-INGY is 5.8.1 too old/broken for utf8? - # XXX-XDG Lancaster consensus was that it was sufficient until -@@ -650,27 +651,29 @@ sub _dump_string { - join '', map { "$_\n" } @lines; - } - --sub _has_internal_string_value { -+# taken from cpan/JSON-PP/lib/JSON/PP.pm -+sub _looks_like_number { - my $value = shift; -- my $b_obj = B::svref_2object(\$value); # for round trip problem -- return $b_obj->FLAGS & B::SVf_POK(); -+ no warnings 'numeric'; -+ # if the utf8 flag is on, it almost certainly started as a string -+ return if utf8::is_utf8($value); -+ # detect numbers -+ # string & "" -> "" -+ # number & "" -> 0 (with warning) -+ # nan and inf can detect as numbers, so check with * 0 -+ return unless length((my $dummy = "") & $value); -+ return unless 0 + $value eq $value; -+ return 1 if $value * 0 == 0; -+ return -1; # inf/nan - } - - sub _dump_scalar { - my $string = $_[1]; - my $is_key = $_[2]; -- # Check this before checking length or it winds up looking like a string! -- my $has_string_flag = _has_internal_string_value($string); - return '~' unless defined $string; - return "''" unless length $string; -- if (Scalar::Util::looks_like_number($string)) { -- # keys and values that have been used as strings get quoted -- if ( $is_key || $has_string_flag ) { -- return qq['$string']; -- } -- else { -- return $string; -- } -+ if (_looks_like_number($string)) { -+ return qq['$string']; - } - if ( $string =~ /[\x00-\x09\x0b-\x0d\x0e-\x1f\x7f-\x9f\'\n]/ ) { - $string =~ s/\\/\\\\/g; -@@ -800,9 +803,6 @@ sub errstr { - # Helper functions. Possibly not needed. - - --# Use to detect nv or iv --use B; -- - # XXX-INGY Is flock CPAN::Meta::YAML's responsibility? - # Some platforms can't flock :-( - # XXX-XDG I think it is. When reading and writing files, we ought -@@ -822,35 +822,8 @@ sub _can_flock { - } - } - -- --# XXX-INGY Is this core in 5.8.1? Can we remove this? --# XXX-XDG Scalar::Util 1.18 didn't land until 5.8.8, so we need this --##################################################################### --# Use Scalar::Util if possible, otherwise emulate it -- --use Scalar::Util (); - BEGIN { -- local $@; -- if ( eval { Scalar::Util->VERSION(1.18); } ) { -- *refaddr = *Scalar::Util::refaddr; -- } -- else { -- eval <<'END_PERL'; --# Scalar::Util failed to load or too old --sub refaddr { -- my $pkg = ref($_[0]) or return undef; -- if ( !! UNIVERSAL::can($_[0], 'can') ) { -- bless $_[0], 'Scalar::Util::Fake'; -- } else { -- $pkg = undef; -- } -- "$_[0]" =~ /0x(\w+)/; -- my $i = do { no warnings 'portable'; hex $1 }; -- bless $_[0], $pkg if defined $pkg; -- $i; --} --END_PERL -- } -+ *refaddr = *builtin::refaddr; - } - - delete $CPAN::Meta::YAML::{refaddr}; -diff --git a/cpan/CPAN-Meta/lib/CPAN/Meta/Merge.pm b/cpan/CPAN-Meta/lib/CPAN/Meta/Merge.pm -index 3604eae402..991f69d275 100644 ---- a/cpan/CPAN-Meta/lib/CPAN/Meta/Merge.pm -+++ b/cpan/CPAN-Meta/lib/CPAN/Meta/Merge.pm -@@ -1,12 +1,13 @@ - use strict; - use warnings; -+no warnings 'experimental::builtin'; - - package CPAN::Meta::Merge; - - our $VERSION = '2.150010'; - - use Carp qw/croak/; --use Scalar::Util qw/blessed/; -+use builtin qw/blessed/; - use CPAN::Meta::Converter 2.141170; - - sub _is_identical { -diff --git a/cpan/CPAN-Meta/lib/CPAN/Meta/Prereqs.pm b/cpan/CPAN-Meta/lib/CPAN/Meta/Prereqs.pm -index d4e93fd8a5..809da68d02 100644 ---- a/cpan/CPAN-Meta/lib/CPAN/Meta/Prereqs.pm -+++ b/cpan/CPAN-Meta/lib/CPAN/Meta/Prereqs.pm -@@ -1,6 +1,7 @@ - use 5.006; - use strict; - use warnings; -+no warnings 'experimental::builtin'; - package CPAN::Meta::Prereqs; - - our $VERSION = '2.150010'; -@@ -14,7 +15,6 @@ our $VERSION = '2.150010'; - #pod =cut - - use Carp qw(confess); --use Scalar::Util qw(blessed); - use CPAN::Meta::Requirements 2.121; - - #pod =method new -@@ -168,7 +168,12 @@ sub types_in { - sub with_merged_prereqs { - my ($self, $other) = @_; - -- my @other = blessed($other) ? $other : @$other; -+ eval 'require Scalar::Util'; -+ my @other = unless($@){ -+ Scalar::Util::blessed($other) ? $other : @$other; -+ }else{ -+ builtin::blessed($other) ? $other : @$other; -+ } - - my @prereq_objs = ($self, @other); - -diff --git a/cpan/JSON-PP/lib/JSON/PP.pm b/cpan/JSON-PP/lib/JSON/PP.pm -index fc8fcbc8f0..cda7b90c65 100644 ---- a/cpan/JSON-PP/lib/JSON/PP.pm -+++ b/cpan/JSON-PP/lib/JSON/PP.pm -@@ -4,6 +4,7 @@ package JSON::PP; - - use 5.008; - use strict; -+no warnings 'experimental::builtin'; - - use Exporter (); - BEGIN { our @ISA = ('Exporter') } -diff --git a/dist/Data-Dumper/Dumper.pm b/dist/Data-Dumper/Dumper.pm -index bb6d3caedb..0c2fde4743 100644 ---- a/dist/Data-Dumper/Dumper.pm -+++ b/dist/Data-Dumper/Dumper.pm -@@ -11,6 +11,7 @@ package Data::Dumper; - - use strict; - use warnings; -+no warnings 'experimental::builtin'; - - #$| = 1; - -@@ -125,8 +126,7 @@ sub new { - # Packed numeric addresses take less memory. Plus pack is faster than sprintf - - sub format_refaddr { -- require Scalar::Util; -- pack "J", Scalar::Util::refaddr(shift); -+ pack "J", builtin::refaddr(shift); - }; - - # -@@ -282,9 +282,8 @@ sub _dump { - warn "WARNING(Freezer method call failed): $@" if $@; - } - -- require Scalar::Util; -- my $realpack = Scalar::Util::blessed($val); -- my $realtype = $realpack ? Scalar::Util::reftype($val) : ref $val; -+ my $realpack = builtin::blessed($val); -+ my $realtype = $realpack ? builtin::reftype($val) : ref $val; - $id = format_refaddr($val); - - # Note: By this point $name is always defined and of non-zero length. -@@ -576,7 +575,7 @@ sub _dump { - # here generates a different result. So there are actually "three" different - # implementations of Data::Dumper (kind of sort of) but we only test two. - elsif (!defined &_vstring -- and ref $ref eq 'VSTRING' || eval{Scalar::Util::isvstring($val)}) { -+ and ref $ref eq 'VSTRING') { - $out .= sprintf "v%vd", $val; - } - # \d here would treat "1\x{660}" as a safe decimal number diff --git a/pkgs/by-name/pe/perl/default.nix b/pkgs/by-name/pe/perl/default.nix deleted file mode 100644 index dc0a2ea..0000000 --- a/pkgs/by-name/pe/perl/default.nix +++ /dev/null @@ -1,72 +0,0 @@ -{ callPackage }: - -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; - }; - - 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 { - # Maint version - perl536 = callPackage ./interpreter.nix { - self = perl536; - version = "5.36.3"; - sha256 = "sha256-8qGtiBFjkaF2Ji3ULfxS7yKvtA9MDpgQ8V1WHm8ccmo="; - inherit passthruFun; - }; - - # Maint version - perl538 = callPackage ./interpreter.nix { - self = perl538; - version = "5.38.2"; - sha256 = "sha256-oKMVNEUet7g8fWWUpJdUOlTUiLyQygD140diV39AZV4="; - inherit passthruFun; - }; -} diff --git a/pkgs/by-name/pe/perl/http-tiny-verify-ssl-by-default.patch b/pkgs/by-name/pe/perl/http-tiny-verify-ssl-by-default.patch deleted file mode 100644 index 5924806..0000000 --- a/pkgs/by-name/pe/perl/http-tiny-verify-ssl-by-default.patch +++ /dev/null @@ -1,79 +0,0 @@ -Patch for HTTP::Tiny that defaults verify_SSL to 1 - -Based on proposed Debian patch by Dominic Hargreaves: -https://salsa.debian.org/perl-team/interpreter/perl/-/commit/1490431e40e22052f75a0b3449f1f53cbd27ba92 - - -diff --git a/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm b/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm -index 5803e4599..88ba51461 100644 ---- a/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm -+++ b/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm -@@ -40,7 +40,7 @@ sub _croak { require Carp; Carp::croak(@_) } - #pod * C — Request timeout in seconds (default is 60) If a socket open, - #pod read or write takes longer than the timeout, an exception is thrown. - #pod * C — A boolean that indicates whether to validate the SSL --#pod certificate of an C — connection (default is false) -+#pod certificate of an C — connection (default is true) - #pod * C — A hashref of C — options to pass through to - #pod L - #pod -@@ -112,7 +112,7 @@ sub new { - max_redirect => 5, - timeout => defined $args{timeout} ? $args{timeout} : 60, - keep_alive => 1, -- verify_SSL => $args{verify_SSL} || $args{verify_ssl} || 0, # no verification by default -+ verify_SSL => $args{verify_SSL} // $args{verify_ssl} // 1, # verification by default - no_proxy => $ENV{no_proxy}, - }; - -@@ -1038,7 +1038,7 @@ sub new { - timeout => 60, - max_line_size => 16384, - max_header_lines => 64, -- verify_SSL => 0, -+ verify_SSL => 1, - SSL_options => {}, - %args - }, $class; -@@ -1765,7 +1765,7 @@ C — Request timeout in seconds (default is 60) If a socket open, read - - =item * - --C — A boolean that indicates whether to validate the SSL certificate of an C — connection (default is false) -+C — A boolean that indicates whether to validate the SSL certificate of an C — connection (default is true) - - =item * - -@@ -2035,7 +2035,7 @@ Verification of server identity - - =back - --B. -+B. - - Server identity verification is controversial and potentially tricky because it - depends on a (usually paid) third-party Certificate Authority (CA) trust model -@@ -2043,16 +2043,14 @@ to validate a certificate as legitimate. This discriminates against servers - with self-signed certificates or certificates signed by free, community-driven - CA's such as L. - --By default, HTTP::Tiny does not make any assumptions about your trust model, --threat level or risk tolerance. It just aims to give you an encrypted channel --when you need one. -- - Setting the C attribute to a true value will make HTTP::Tiny verify - that an SSL connection has a valid SSL certificate corresponding to the host - name of the connection and that the SSL certificate has been verified by a CA. - Assuming you trust the CA, this will protect against a L. If you are --concerned about security, you should enable this option. -+attack|http://en.wikipedia.org/wiki/Man-in-the-middle_attack>. -+ -+If you are not concerned about security, and this default in NixOS causes -+problems, you should disable this option. - - Certificate verification requires a file containing trusted CA certificates. - --- - - diff --git a/pkgs/by-name/pe/perl/interpreter.nix b/pkgs/by-name/pe/perl/interpreter.nix deleted file mode 100644 index 95ddc5a..0000000 --- a/pkgs/by-name/pe/perl/interpreter.nix +++ /dev/null @@ -1,261 +0,0 @@ -{ 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 -# cgit) that are needed here should be included directly in Nixpkgs as -# files. - -assert (enableCrypt -> (libxcrypt != null)); - -let - crossCompiling = stdenv.buildPlatform != stdenv.hostPlatform; - libc = if stdenv.cc.libc or null != null then stdenv.cc.libc else "/usr"; - libcInc = lib.getDev libc; - libcLib = lib.getLib libc; -in - -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 - '' - mkdir -p $mini/lib/perl5/cross_perl/${version} - for dir in cnf/{stub,cpan}; do - cp -r $dir/* $mini/lib/perl5/cross_perl/${version} - done - - mkdir -p $mini/bin - install -m755 miniperl $mini/bin/perl - - export runtimeArch="$(ls $out/lib/perl5/site_perl/${version})" - # wrapProgram should use a runtime-native SHELL by default, but - # it actually uses a buildtime-native one. If we ever fix that, - # we'll need to fix this to use a buildtime-native one. - # - # Adding the arch-specific directory is morally incorrect, as - # miniperl can't load the native modules there. However, it can - # (and sometimes needs to) load and run some of the pure perl - # code there, so we add it anyway. When needed, stubs can be put - # into $mini/lib/perl5/cross_perl/${version}. - wrapProgram $mini/bin/perl --prefix PERL5LIB : \ - "$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 - - 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 ]; - - 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" ]; - - # TODO merge setup hooks - setupHook = ./setup-hook-cross.sh; -}) diff --git a/pkgs/by-name/pe/perl/ld-shared.patch b/pkgs/by-name/pe/perl/ld-shared.patch deleted file mode 100644 index 9f92368..0000000 --- a/pkgs/by-name/pe/perl/ld-shared.patch +++ /dev/null @@ -1,24 +0,0 @@ -$NetBSD: patch-hints_solaris__2.sh,v 1.2 2015/10/27 09:10:44 jperkin Exp $ - -Redo PR pkg/44999. - ---- perl-5.20.2/hints/solaris_2.sh.orig 2015-05-13 20:19:29.000000000 +0000 -+++ perl-5.20.2/hints/solaris_2.sh -@@ -585,7 +585,7 @@ EOM - fi - fi - case "${cc:-cc} -v 2>/dev/null" in -- *gcc*) -+ *gcc*|clang*) - echo 'int main() { return 0; }' > try.c - case "`${cc:-cc} $ccflags -mcpu=v9 -m64 -S try.c 2>&1 | grep 'm64 is not supported by this configuration'`" in - *"m64 is not supported"*) -@@ -622,7 +622,7 @@ EOM - # use that with Solaris 11 and later, but keep - # the old behavior for older Solaris versions. - case "$osvers" in -- 2.?|2.10) lddlflags="$lddlflags -G -m64" ;; -+ 2.?|2.10) lddlflags="$lddlflags -shared -m64" ;; - *) lddlflags="$lddlflags -shared -m64" ;; - esac - ;; diff --git a/pkgs/by-name/pe/perl/no-sys-dirs-5.31.patch b/pkgs/by-name/pe/perl/no-sys-dirs-5.31.patch deleted file mode 100644 index 62dce0e..0000000 --- a/pkgs/by-name/pe/perl/no-sys-dirs-5.31.patch +++ /dev/null @@ -1,254 +0,0 @@ -diff -ru -x '*~' -x '*.rej' perl-5.20.0-orig/Configure perl-5.20.0/Configure ---- perl-5.20.0-orig/Configure 2014-05-26 15:34:18.000000000 +0200 -+++ perl-5.20.0/Configure 2014-06-25 10:43:35.368285986 +0200 -@@ -106,15 +106,7 @@ - fi - - : Proper PATH setting --paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin' --paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin" --paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin" --paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin" --paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb" --paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /opt/ansic/bin /usr/ccs/bin" --paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib" --paths="$paths /sbin /usr/sbin /usr/libexec" --paths="$paths /system/gnu_library/bin" -+paths='' - - for p in $paths - do -@@ -1337,8 +1329,7 @@ - archname='' - : Possible local include directories to search. - : Set locincpth to "" in a hint file to defeat local include searches. --locincpth="/usr/local/include /opt/local/include /usr/gnu/include" --locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include" -+locincpth="" - : - : no include file wanted by default - inclwanted='' -@@ -1349,17 +1340,12 @@ - - libnames='' - : change the next line if compiling for Xenix/286 on Xenix/386 --xlibpth='/usr/lib/386 /lib/386' -+xlibpth='' - : Possible local library directories to search. --loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib" --loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib" -+loclibpth="" - - : general looking path for locating libraries --glibpth="/lib /usr/lib $xlibpth" --glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib" --test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth" --test -f /shlib/libc.so && glibpth="/shlib $glibpth" --test -d /usr/lib64 && glibpth="$glibpth /lib64 /usr/lib64 /usr/local/lib64" -+glibpth="" - - : Private path used by Configure to find libraries. Its value - : is prepended to libpth. This variable takes care of special -@@ -1391,8 +1377,6 @@ - libswanted="$libswanted m crypt sec util c cposix posix ucb bsd BSD" - : We probably want to search /usr/shlib before most other libraries. - : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist. --glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'` --glibpth="/usr/shlib $glibpth" - : Do not use vfork unless overridden by a hint file. - usevfork=false - -@@ -2446,7 +2430,6 @@ - zip - " - pth=`echo $PATH | sed -e "s/$p_/ /g"` --pth="$pth $sysroot/lib $sysroot/usr/lib" - for file in $loclist; do - eval xxx=\$$file - case "$xxx" in -@@ -4936,7 +4919,7 @@ - : Set private lib path - case "$plibpth" in - '') if ./mips; then -- plibpth="$incpath/usr/lib $sysroot/usr/local/lib $sysroot/usr/ccs/lib" -+ plibpth="$incpath/usr/lib" - fi;; - esac - case "$libpth" in -@@ -8600,13 +8583,8 @@ - echo " " - case "$sysman" in - '') -- syspath='/usr/share/man/man1 /usr/man/man1' -- syspath="$syspath /usr/man/mann /usr/man/manl /usr/man/local/man1" -- syspath="$syspath /usr/man/u_man/man1" -- syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1" -- syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1" -- syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1" -- sysman=`./loc . /usr/man/man1 $syspath` -+ syspath='' -+ sysman='' - ;; - esac - if $test -d "$sysman"; then -@@ -19900,9 +19878,10 @@ - case "$full_ar" in - '') full_ar=$ar ;; - esac -+full_ar=ar - - : Store the full pathname to the sed program for use in the C program --full_sed=$sed -+full_sed=sed - - : see what type gids are declared as in the kernel - echo " " -Only in perl-5.20.0/: Configure.orig -diff -ru -x '*~' -x '*.rej' perl-5.20.0-orig/ext/Errno/Errno_pm.PL perl-5.20.0/ext/Errno/Errno_pm.PL ---- perl-5.20.0-orig/ext/Errno/Errno_pm.PL 2014-05-26 15:34:20.000000000 +0200 -+++ perl-5.20.0/ext/Errno/Errno_pm.PL 2014-06-25 10:31:24.317970047 +0200 -@@ -134,12 +126,7 @@ - if ($dep =~ /(\S+errno\.h)/) { - $file{$1} = 1; - } -- } elsif ($^O eq 'linux' && -- $Config{gccversion} ne '' && -- $Config{gccversion} !~ /intel/i && -- # might be using, say, Intel's icc -- $linux_errno_h -- ) { -+ } elsif (0) { - $file{$linux_errno_h} = 1; - } elsif ($^O eq 'haiku') { - # hidden in a special place -Only in perl-5.20.0/ext/Errno: Errno_pm.PL.orig -diff -ru -x '*~' -x '*.rej' perl-5.20.0-orig/hints/freebsd.sh perl-5.20.0/hints/freebsd.sh ---- perl-5.20.0-orig/hints/freebsd.sh 2014-01-31 22:55:51.000000000 +0100 -+++ perl-5.20.0/hints/freebsd.sh 2014-06-25 10:25:53.263964680 +0200 -@@ -119,21 +119,21 @@ - objformat=`/usr/bin/objformat` - if [ x$objformat = xaout ]; then - if [ -e /usr/lib/aout ]; then -- libpth="/usr/lib/aout /usr/local/lib /usr/lib" -- glibpth="/usr/lib/aout /usr/local/lib /usr/lib" -+ libpth="" -+ glibpth="" - fi - lddlflags='-Bshareable' - else -- libpth="/usr/lib /usr/local/lib" -- glibpth="/usr/lib /usr/local/lib" -+ libpth="" -+ glibpth="" - ldflags="-Wl,-E " - lddlflags="-shared " - fi - cccdlflags='-DPIC -fPIC' - ;; - *) -- libpth="/usr/lib /usr/local/lib" -- glibpth="/usr/lib /usr/local/lib" -+ libpth="" -+ glibpth="" - ldflags="-Wl,-E " - lddlflags="-shared " - cccdlflags='-DPIC -fPIC' -diff -ru -x '*~' -x '*.rej' perl-5.20.0-orig/hints/linux.sh perl-5.20.0/hints/linux.sh ---- perl-5.20.0-orig/hints/linux.sh 2014-05-26 15:34:20.000000000 +0200 -+++ perl-5.20.0/hints/linux.sh 2014-06-25 10:33:47.354883843 +0200 -@@ -150,28 +150,6 @@ case "$optimize" in - ;; - esac - --# Ubuntu 11.04 (and later, presumably) doesn't keep most libraries --# (such as -lm) in /lib or /usr/lib. So we have to ask gcc to tell us --# where to look. We don't want gcc's own libraries, however, so we --# filter those out. --# This could be conditional on Unbuntu, but other distributions may --# follow suit, and this scheme seems to work even on rather old gcc's. --# This unconditionally uses gcc because even if the user is using another --# compiler, we still need to find the math library and friends, and I don't --# know how other compilers will cope with that situation. --# Morever, if the user has their own gcc earlier in $PATH than the system gcc, --# we don't want its libraries. So we try to prefer the system gcc --# Still, as an escape hatch, allow Configure command line overrides to --# plibpth to bypass this check. --if [ -x /usr/bin/gcc ] ; then -- gcc=/usr/bin/gcc --# clang also provides -print-search-dirs --elif ${cc:-cc} --version 2>/dev/null | grep -q '^clang ' ; then -- gcc=${cc:-cc} --else -- gcc=gcc --fi -- - case "$plibpth" in - '') plibpth=`LANG=C LC_ALL=C $gcc $ccflags $ldflags -print-search-dirs | grep libraries | - cut -f2- -d= | tr ':' $trnl | grep -v 'gcc' | sed -e 's:/$::'` -@@ -208,32 +186,6 @@ case "$usequadmath" in - ;; - esac - --case "$libc" in --'') --# If you have glibc, then report the version for ./myconfig bug reporting. --# (Configure doesn't need to know the specific version since it just uses --# gcc to load the library for all tests.) --# We don't use __GLIBC__ and __GLIBC_MINOR__ because they --# are insufficiently precise to distinguish things like --# libc-2.0.6 and libc-2.0.7. -- for p in $plibpth -- do -- for trylib in libc.so.6 libc.so -- do -- if $test -e $p/$trylib; then -- libc=`ls -l $p/$trylib | awk '{print $NF}'` -- if $test "X$libc" != X; then -- break -- fi -- fi -- done -- if $test "X$libc" != X; then -- break -- fi -- done -- ;; --esac -- - if ${sh:-/bin/sh} -c exit; then - echo '' - echo 'You appear to have a working bash. Good.' -@@ -311,33 +263,6 @@ sparc*) - ;; - esac - --# SuSE8.2 has /usr/lib/libndbm* which are ld scripts rather than --# true libraries. The scripts cause binding against static --# version of -lgdbm which is a bad idea. So if we have 'nm' --# make sure it can read the file --# NI-S 2003/08/07 --case "$nm" in -- '') ;; -- *) -- for p in $plibpth -- do -- if $test -r $p/libndbm.so; then -- if $nm $p/libndbm.so >/dev/null 2>&1 ; then -- echo 'Your shared -lndbm seems to be a real library.' -- _libndbm_real=1 -- break -- fi -- fi -- done -- if $test "X$_libndbm_real" = X; then -- echo 'Your shared -lndbm is not a real library.' -- set `echo X "$libswanted "| sed -e 's/ ndbm / /'` -- shift -- libswanted="$*" -- fi -- ;; --esac -- - # Linux on Synology. - if [ -f /etc/synoinfo.conf -a -d /usr/syno ]; then - # Tested on Synology DS213 and DS413 diff --git a/pkgs/by-name/pe/perl/no-sys-dirs-5.38.0.patch b/pkgs/by-name/pe/perl/no-sys-dirs-5.38.0.patch deleted file mode 100644 index c959730..0000000 --- a/pkgs/by-name/pe/perl/no-sys-dirs-5.38.0.patch +++ /dev/null @@ -1,256 +0,0 @@ -diff --git a/Configure b/Configure -index e261cb9548..3bbbc4b9df 100755 ---- a/Configure -+++ b/Configure -@@ -108,15 +108,7 @@ if test -d c:/. || ( uname -a | grep -i 'os\(/\|\)2' 2>&1 ) 2>&1 >/dev/null ; th - fi - - : Proper PATH setting --paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin' --paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin" --paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin" --paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin" --paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb" --paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /opt/ansic/bin /usr/ccs/bin" --paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib" --paths="$paths /sbin /usr/sbin /usr/libexec" --paths="$paths /system/gnu_library/bin" -+paths='' - - for p in $paths - do -@@ -1455,8 +1447,7 @@ groupstype='' - i_whoami='' - : Possible local include directories to search. - : Set locincpth to "" in a hint file to defeat local include searches. --locincpth="/usr/local/include /opt/local/include /usr/gnu/include" --locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include" -+locincpth="" - : - : no include file wanted by default - inclwanted='' -@@ -1470,17 +1461,12 @@ DEBUGGING='' - archobjs='' - libnames='' - : change the next line if compiling for Xenix/286 on Xenix/386 --xlibpth='/usr/lib/386 /lib/386' -+xlibpth='' - : Possible local library directories to search. --loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib" --loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib" -+loclibpth="" - - : general looking path for locating libraries --glibpth="/lib /usr/lib $xlibpth" --glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib" --test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth" --test -f /shlib/libc.so && glibpth="/shlib $glibpth" --test -d /usr/lib64 && glibpth="$glibpth /lib64 /usr/lib64 /usr/local/lib64" -+glibpth="" - - : Private path used by Configure to find libraries. Its value - : is prepended to libpth. This variable takes care of special -@@ -1515,8 +1501,6 @@ libswanted="cl pthread socket bind inet ndbm gdbm dbm db malloc dl ld" - libswanted="$libswanted sun m crypt sec util c cposix posix ucb bsd BSD" - : We probably want to search /usr/shlib before most other libraries. - : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist. --glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'` --glibpth="/usr/shlib $glibpth" - : Do not use vfork unless overridden by a hint file. - usevfork=false - -@@ -2581,7 +2565,6 @@ uname - zip - " - pth=`echo $PATH | sed -e "s/$p_/ /g"` --pth="$pth $sysroot/lib $sysroot/usr/lib" - for file in $loclist; do - eval xxx=\$$file - case "$xxx" in -@@ -5023,7 +5006,7 @@ esac - : Set private lib path - case "$plibpth" in - '') if ./mips; then -- plibpth="$incpath/usr/lib $sysroot/usr/local/lib $sysroot/usr/ccs/lib" -+ plibpth="$incpath/usr/lib" - fi;; - esac - case "$libpth" in -@@ -8860,13 +8843,8 @@ esac - echo " " - case "$sysman" in - '') -- syspath='/usr/share/man/man1 /usr/man/man1' -- syspath="$syspath /usr/man/mann /usr/man/manl /usr/man/local/man1" -- syspath="$syspath /usr/man/u_man/man1" -- syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1" -- syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1" -- syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1" -- sysman=`./loc . /usr/man/man1 $syspath` -+ syspath='' -+ sysman='' - ;; - esac - if $test -d "$sysman"; then -@@ -21500,9 +21478,10 @@ $rm_try tryp - case "$full_ar" in - '') full_ar=$ar ;; - esac -+full_ar=ar - - : Store the full pathname to the sed program for use in the C program --full_sed=$sed -+full_sed=sed - - : see what type gids are declared as in the kernel - echo " " -diff --git a/ext/Errno/Errno_pm.PL b/ext/Errno/Errno_pm.PL -index ae647d5f06..9a05d66592 100644 ---- a/ext/Errno/Errno_pm.PL -+++ b/ext/Errno/Errno_pm.PL -@@ -135,12 +135,7 @@ sub get_files { - if ($dep =~ /(\S+errno\.h)/) { - push(@file, $1); - } -- } elsif ($^O eq 'linux' && -- $Config{gccversion} ne '' && -- $Config{gccversion} !~ /intel/i && -- # might be using, say, Intel's icc -- $linux_errno_h -- ) { -+ } elsif (0) { - push(@file, $linux_errno_h); - } elsif ($^O eq 'haiku') { - # hidden in a special place -diff --git a/hints/freebsd.sh b/hints/freebsd.sh -index 4d26835e99..c6d365d84d 100644 ---- a/hints/freebsd.sh -+++ b/hints/freebsd.sh -@@ -127,21 +127,21 @@ case "$osvers" in - objformat=`/usr/bin/objformat` - if [ x$objformat = xaout ]; then - if [ -e /usr/lib/aout ]; then -- libpth="/usr/lib/aout /usr/local/lib /usr/lib" -- glibpth="/usr/lib/aout /usr/local/lib /usr/lib" -+ libpth="" -+ glibpth="" - fi - lddlflags='-Bshareable' - else -- libpth="/usr/lib /usr/local/lib" -- glibpth="/usr/lib /usr/local/lib" -+ libpth="" -+ glibpth="" - ldflags="-Wl,-E " - lddlflags="-shared " - fi - cccdlflags='-DPIC -fPIC' - ;; - *) -- libpth="/usr/lib /usr/local/lib" -- glibpth="/usr/lib /usr/local/lib" -+ libpth="" -+ glibpth="" - ldflags="-Wl,-E " - lddlflags="-shared " - cccdlflags='-DPIC -fPIC' -diff --git a/hints/linux.sh b/hints/linux.sh -index e1508c7509..5a187c583a 100644 ---- a/hints/linux.sh -+++ b/hints/linux.sh -@@ -150,28 +150,6 @@ case "$optimize" in - ;; - esac - --# Ubuntu 11.04 (and later, presumably) doesn't keep most libraries --# (such as -lm) in /lib or /usr/lib. So we have to ask gcc to tell us --# where to look. We don't want gcc's own libraries, however, so we --# filter those out. --# This could be conditional on Ubuntu, but other distributions may --# follow suit, and this scheme seems to work even on rather old gcc's. --# This unconditionally uses gcc because even if the user is using another --# compiler, we still need to find the math library and friends, and I don't --# know how other compilers will cope with that situation. --# Morever, if the user has their own gcc earlier in $PATH than the system gcc, --# we don't want its libraries. So we try to prefer the system gcc --# Still, as an escape hatch, allow Configure command line overrides to --# plibpth to bypass this check. --if [ -x /usr/bin/gcc ] ; then -- gcc=/usr/bin/gcc --# clang also provides -print-search-dirs --elif ${cc:-cc} --version 2>/dev/null | grep -q '^clang ' ; then -- gcc=${cc:-cc} --else -- gcc=gcc --fi -- - case "$plibpth" in - '') plibpth=`LANG=C LC_ALL=C $gcc $ccflags $ldflags -print-search-dirs | grep libraries | - cut -f2- -d= | tr ':' $trnl | grep -v 'gcc' | sed -e 's:/$::'` -@@ -208,32 +186,6 @@ case "$usequadmath" in - ;; - esac - --case "$libc" in --'') --# If you have glibc, then report the version for ./myconfig bug reporting. --# (Configure doesn't need to know the specific version since it just uses --# gcc to load the library for all tests.) --# We don't use __GLIBC__ and __GLIBC_MINOR__ because they --# are insufficiently precise to distinguish things like --# libc-2.0.6 and libc-2.0.7. -- for p in $plibpth -- do -- for trylib in libc.so.6 libc.so -- do -- if $test -e $p/$trylib; then -- libc=`ls -l $p/$trylib | awk '{print $NF}'` -- if $test "X$libc" != X; then -- break -- fi -- fi -- done -- if $test "X$libc" != X; then -- break -- fi -- done -- ;; --esac -- - if ${sh:-/bin/sh} -c exit; then - echo '' - echo 'You appear to have a working bash. Good.' -@@ -311,33 +263,6 @@ sparc*) - ;; - esac - --# SuSE8.2 has /usr/lib/libndbm* which are ld scripts rather than --# true libraries. The scripts cause binding against static --# version of -lgdbm which is a bad idea. So if we have 'nm' --# make sure it can read the file --# NI-S 2003/08/07 --case "$nm" in -- '') ;; -- *) -- for p in $plibpth -- do -- if $test -r $p/libndbm.so; then -- if $nm $p/libndbm.so >/dev/null 2>&1 ; then -- echo 'Your shared -lndbm seems to be a real library.' -- _libndbm_real=1 -- break -- fi -- fi -- done -- if $test "X$_libndbm_real" = X; then -- echo 'Your shared -lndbm is not a real library.' -- set `echo X "$libswanted "| sed -e 's/ ndbm / /'` -- shift -- libswanted="$*" -- fi -- ;; --esac -- - # Linux on Synology. - if [ -f /etc/synoinfo.conf -a -d /usr/syno ]; then - # Tested on Synology DS213 and DS413 diff --git a/pkgs/by-name/pe/perl/packages.nix b/pkgs/by-name/pe/perl/packages.nix deleted file mode 100644 index 187aae6..0000000 --- a/pkgs/by-name/pe/perl/packages.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - perlInterpreters = import ./. { inherit callPackage; }; - inherit (perlInterpreters) perl536 perl538; - - perl536Packages = recurseIntoAttrs perl536.pkgs; - perl538Packages = recurseIntoAttrs perl538.pkgs; - - perl = perl538; - perlPackages = perl538Packages; - - ack = perlPackages.ack; - po4a = perlPackages.Po4a; -} diff --git a/pkgs/by-name/pe/perl/perl-modules/Alien-FFI-dont-download.patch b/pkgs/by-name/pe/perl/perl-modules/Alien-FFI-dont-download.patch deleted file mode 100644 index ba79c8c..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/Alien-FFI-dont-download.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff --git a/alienfile b/alienfile -index 18d6b42..5ccf296 100644 ---- a/alienfile -+++ b/alienfile -@@ -11,12 +11,6 @@ plugin 'PkgConfig' => 'libffi'; - - share { - -- plugin 'Download::GitHub' => ( -- github_user => 'libffi', -- github_repo => 'libffi', -- asset => 1, -- ); -- - plugin 'Build::Autoconf' => (); - - my $configure = '--disable-shared --enable-static --disable-builddir'; -diff --git a/t/00_diag.t b/t/00_diag.t -index 51dd784..2bc314c 100644 ---- a/t/00_diag.t -+++ b/t/00_diag.t -@@ -13,7 +13,6 @@ $modules{$_} = $_ for qw( - Alien::Base - Alien::Build - Alien::Build::MM -- Alien::Build::Plugin::Download::GitHub - Alien::Build::Plugin::Probe::Vcpkg - Capture::Tiny - ExtUtils::MakeMaker diff --git a/pkgs/by-name/pe/perl/perl-modules/ArchiveLibarchive-set-findlib-path.patch b/pkgs/by-name/pe/perl/perl-modules/ArchiveLibarchive-set-findlib-path.patch deleted file mode 100644 index 47bc8ee..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/ArchiveLibarchive-set-findlib-path.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/lib/Archive/Libarchive/Lib.pm b/lib/Archive/Libarchive/Lib.pm -index 3fcbcf4..214df7a 100644 ---- a/lib/Archive/Libarchive/Lib.pm -+++ b/lib/Archive/Libarchive/Lib.pm -@@ -3,7 +3,7 @@ package Archive::Libarchive::Lib; - use strict; - use warnings; - use 5.020; --use FFI::CheckLib 0.30 qw( find_lib_or_die ); -+use FFI::CheckLib qw( find_lib_or_die ); - use Encode qw( decode ); - use experimental qw( signatures ); - -index 3fcbcf4..718caed 100644 ---- a/lib/Archive/Libarchive/Lib.pm -+++ b/lib/Archive/Libarchive/Lib.pm -@@ -23,7 +23,7 @@ L. - - sub lib - { -- $ENV{ARCHIVE_LIBARCHIVE_LIB_DLL} // find_lib_or_die( lib => 'archive', symbol => ['archive_read_free','archive_write_free','archive_free'], alien => ['Alien::Libarchive3'] ); -+ $ENV{ARCHIVE_LIBARCHIVE_LIB_DLL} // find_lib_or_die( lib => 'archive', symbol => ['archive_read_free','archive_write_free','archive_free'], libpath => '@@libarchive@@' ); - } - - sub ffi 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 deleted file mode 100644 index 516b6d0..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/Bio-BigFile/default.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ - BioPerl, - IOString, - buildPerlModule, - fetchFromGitHub, - fetchpatch, - fetchurl, - kent, - lib, - libmysqlclient, - libpng, - openssl, - perl -}: - -buildPerlModule rec { - pname = "Bio-BigFile"; - version = "1.07"; - - src = fetchurl { - url = "mirror://cpan/authors/id/L/LD/LDS/Bio-BigFile-${version}.tar.gz"; - sha256 = "277b66ce8acbdd52399e2c5a0cf4e3bd5c74c12b94877cd383d0c4c97740d16d"; - }; - - # Only kent 335 works with Bio-BigFile, see - # - official documentation: https://www.ensembl.org/info/docs/tools/vep/script/vep_download.html#bigfile - # - one of the developer's answer: https://github.com/Ensembl/ensembl-vep/issues/1412 - # BioBigfile needs the environment variable KENT_SRC to find kent - KENT_SRC = kent.overrideAttrs (old: rec { - pname = "kent"; - version = "335"; - - src = fetchFromGitHub { - owner = "ucscGenomeBrowser"; - repo = "kent"; - rev = "v${version}_base"; - sha256 = "1455dwzpaq4hyhcqj3fpwgq5a39kp46qarfbr6ms6l2lz583r083"; - }; - - patches = [ - # Fix for linking error with zlib. Adding zlib as a dependency is not enough - ./kent-utils.patch - # Vendoring upstream patch (not merged in uscsGenomeBrowser/kent) - ./kent-316e4fd40f53c96850128fd65097a42623d1e736.patch - ]; - }); - - - buildInputs = [ - BioPerl - IOString - libpng - libmysqlclient - openssl - ]; - - # Ensure compatibility with GCC-11 (compilation fails if -Wno-format-security) - hardeningDisable = [ "format" ]; - - meta = with lib; { - homepage = "https://metacpan.org/dist/Bio-BigFile"; - description = "Manipulate Jim Kent's BigWig and BigBed index files for genomic features"; - license = licenses.artistic2; - maintainers = with maintainers; [ apraga ]; - }; -} diff --git a/pkgs/by-name/pe/perl/perl-modules/Bio-BigFile/kent-316e4fd40f53c96850128fd65097a42623d1e736.patch b/pkgs/by-name/pe/perl/perl-modules/Bio-BigFile/kent-316e4fd40f53c96850128fd65097a42623d1e736.patch deleted file mode 100644 index 42d122a..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/Bio-BigFile/kent-316e4fd40f53c96850128fd65097a42623d1e736.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 316e4fd40f53c96850128fd65097a42623d1e736 Mon Sep 17 00:00:00 2001 -From: Marcel Bargull -Date: Sat, 27 Mar 2021 16:23:34 +0100 -Subject: [PATCH] Fix linking Clang 11 compiled objects - -With Clang 11 htmlRecover from lib/htmshell.h is picked up as a -definition, not just declaration of the jmp_buf. As such both -lib/htmshell.c and hg/lib/cart.c export two symbols with the same name. ---- - src/inc/htmshell.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/inc/htmshell.h b/src/inc/htmshell.h -index 9d85f45b936..dd586db761c 100644 ---- a/src/inc/htmshell.h -+++ b/src/inc/htmshell.h -@@ -160,7 +160,7 @@ void htmlBadVar(char *varName); - void htmlImage(char *fileName, int width, int height); - /* Display centered image file. */ - --jmp_buf htmlRecover; /* Error recovery jump. Exposed for cart's use. */ -+extern jmp_buf htmlRecover; /* Error recovery jump. Exposed for cart's use. */ - - void htmlVaWarn(char *format, va_list args); - /* Write an error message. (Generally you just call warn() or errAbort(). diff --git a/pkgs/by-name/pe/perl/perl-modules/Bio-BigFile/kent-utils.patch b/pkgs/by-name/pe/perl/perl-modules/Bio-BigFile/kent-utils.patch deleted file mode 100644 index 0c1db4d..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/Bio-BigFile/kent-utils.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- ./src/utils/bigWigCat/makefile 2023-03-27 14:03:01.585896516 +0000 -+++ ./src/utils/bigWigCat/makefile 2023-03-27 14:03:27.716180479 +0000 -@@ -1,3 +1,4 @@ - kentSrc = ../.. - A = bigWigCat - include $(kentSrc)/inc/userApp.mk -+L += -lz - ---- ./src/utils/pslLiftSubrangeBlat/makefile 1970-01-01 00:00:01.000000000 +0000 -+++ ./src/utils/pslLiftSubrangeBlat/makefile 2023-03-27 14:36:59.044600213 +0000 -@@ -3,7 +3,7 @@ - preMyLibs += ../../lib/$(MACHTYPE)/jkhgap.a - include $(kentSrc)/inc/userApp.mk - HG_INC += -I../../hg/inc --L += $(MYSQLLIBS) -lm -+L += $(MYSQLLIBS) -lm -lz - - test:: - cd tests && ${MAKE} test - ---- ./src/utils/bigWigCorrelate/makefile 2023-03-27 14:36:23.117545553 +0000 -+++ ./src/utils/bigWigCorrelate/makefile 2023-03-27 14:36:33.854328176 +0000 -@@ -1,3 +1,4 @@ - kentSrc = ../.. - A = bigWigCorrelate - include $(kentSrc)/inc/userApp.mk -+L += -lz 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 deleted file mode 100644 index 237a4be..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/Bio-Ext-Align/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, buildPerlPackage, fetchFromGitHub }: - -buildPerlPackage rec { - pname = "BioExtAlign"; - version = "1.5.1"; - - outputs = [ "out" "dev" ]; - - src = fetchFromGitHub { - owner = "bioperl"; - repo = "bioperl-ext"; - rev = "bioperl-ext-release-${lib.replaceStrings ["."] ["-"] version}"; - sha256 = "sha256-+0tZ6q3PFem8DWa2vq+njOLmjDvMB0JhD0FGk00lVMA="; - }; - - patches = [ ./fprintf.patch ]; - - # Do not install other Bio-ext packages - preConfigure = '' - cd Bio/Ext/Align - ''; - - # Disable tests as it requires Bio::Tools::Align which is in a different directory - buildPhase = '' - make - ''; - - meta = { - homepage = "https://github.com/bioperl/bioperl-ext"; - description = "Write Perl Subroutines in Other Programming Languages"; - longDescription = '' - Part of BioPerl Extensions (BioPerl-Ext) distribution, a collection of Bioperl C-compiled extensions. - ''; - license = with lib.licenses; [ artistic1 ]; - }; -} diff --git a/pkgs/by-name/pe/perl/perl-modules/Bio-Ext-Align/fprintf.patch b/pkgs/by-name/pe/perl/perl-modules/Bio-Ext-Align/fprintf.patch deleted file mode 100644 index f62004a..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/Bio-Ext-Align/fprintf.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/libs/dpalign.c b/libs/dpalign.c -index 0e07b67..0eab932 100644 ---- a/Bio/Ext/Align/libs/dpalign.c -+++ b/Bio/Ext/Align/libs/dpalign.c -@@ -40,7 +40,7 @@ int blosum62[24][24] = { - void - dpAlign_fatal(char * s) - { -- fprintf(stderr, s); -+ fputs(stderr, s); - exit(-1); - } - diff --git a/pkgs/by-name/pe/perl/perl-modules/CSSDOM-replace-apostrophe.patch b/pkgs/by-name/pe/perl/perl-modules/CSSDOM-replace-apostrophe.patch deleted file mode 100644 index 54bc7f8..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/CSSDOM-replace-apostrophe.patch +++ /dev/null @@ -1,1412 +0,0 @@ -commit 7dda09313a63c4c64563f582844d7b04302d94bd -Author: Yves Orton -Date: Wed Feb 22 13:28:01 2023 +0100 - - Replace apostrophe with :: as package separator - - In 5.37.9 this is deprecated, and in 5.40 it will be forbidden - -diff --git a/lib/CSS/DOM/Parser.pm b/lib/CSS/DOM/Parser.pm -index 473992c..d688f19 100644 ---- a/lib/CSS/DOM/Parser.pm -+++ b/lib/CSS/DOM/Parser.pm -@@ -369,7 +369,7 @@ sub _parse_at_rule { for (shift) { for my $tokens (shift) { - - $selector =~ s/s\z// and pop @selector; - -- require CSS'DOM'Rule; -+ require CSS::DOM::Rule; - (my $rule = new CSS::DOM::Rule $_[0]||()) - ->_set_tokens( - $selector,\@selector -@@ -413,7 +413,7 @@ sub _parse_at_rule { for (shift) { for my $tokens (shift) { - my ($types,@tokens) = ("\@$1",$at,splice @$tokens,0,$+[0]); - $types =~ /"/ and return; # ignore rules w/invalid strings - $types =~ s/s\z// and pop @tokens; -- require CSS'DOM'Rule; -+ require CSS::DOM::Rule; - (my $rule = new CSS::DOM::Rule $_[0]||()) - ->_set_tokens( - $types, \@tokens -diff --git a/lib/CSS/DOM/PropertyParser.pm b/lib/CSS/DOM/PropertyParser.pm -index 258158f..76b0d99 100644 ---- a/lib/CSS/DOM/PropertyParser.pm -+++ b/lib/CSS/DOM/PropertyParser.pm -@@ -6,8 +6,8 @@ use warnings; no warnings qw 'utf8 parenthesis'; - use strict; - - use constant 1.03 (); # multiple --use CSS::DOM'Constants ':primitive', ':value'; --use CSS'DOM'Util; -+use CSS::DOM::Constants ':primitive', ':value'; -+use CSS::DOM::Util; - - use constant old_perl => $] < 5.01; - { no strict 'refs'; delete ${__PACKAGE__.'::'}{old_perl} } -@@ -19,7 +19,7 @@ use constant old_perl => $] < 5.01; - use constant naughty_perl => 0+$] eq 5.01; - { no strict 'refs'; delete ${__PACKAGE__.'::'}{naughty_perl} } - --*s2c = *CSS'DOM'Constants'SuffixToConst; -+*s2c = *CSS::DOM::Constants::SuffixToConst; - our %s2c; - - our %compiled; # compiled formats -@@ -60,7 +60,7 @@ sub clone { - # exists &dclone or require Storable, "Storable"->import('dclone'); - # return dclone($_[0]); - require Clone; -- return Clone'clone($_[0]); -+ return Clone::clone($_[0]); - } - - # Declare the variables that the re-evals use. Some nasty hacker went and -@@ -202,7 +202,7 @@ sub _make_arg_list { - my($stypes,$stokens) = _space_out($types, $tokens); - my $css = join "", @$stokens; - if(@_ == 1) { # list property -- my $list = shift @'_; -+ my $list = shift @_; - my $sep = @$list <= 1 ? '' : do { - my $range_start = $$list[0][4]; - my $range_end = $$list[1][4] - length($$list[1][4]) - 1; -@@ -301,7 +301,7 @@ sub _make_arg_list { - - sub _space_out { - my($types,$tokens) = @_; --Carp'cluck() if ref $tokens ne 'ARRAY'; -+Carp::cluck() if ref $tokens ne 'ARRAY'; - $tokens = [@$tokens]; - my @posses; - $types =~ s/(?<=[^(f])(?![),]|\z)/ -@@ -328,7 +328,7 @@ sub _prep_val { - } - else { - require CSS::DOM::Parser; -- ($types, $tokens) = CSS::DOM::Parser'tokenise($_[0]); -+ ($types, $tokens) = CSS::DOM::Parser::tokenise($_[0]); - } - - # strip out all whitespace tokens -diff --git a/lib/CSS/DOM/Rule.pm b/lib/CSS/DOM/Rule.pm -index 921efb0..666fb08 100644 ---- a/lib/CSS/DOM/Rule.pm -+++ b/lib/CSS/DOM/Rule.pm -@@ -46,7 +46,7 @@ sub _parse { # This method parses the code passed to it and checks to see - # the rule data from the new rule. - my $self = shift; - require CSS::DOM::Parser; -- my $new_rule = CSS::DOM::Parser'parse_statement(shift) -+ my $new_rule = CSS::DOM::Parser::parse_statement(shift) - || die CSS::DOM::Exception->new(SYNTAX_ERR, $@); - - ref $new_rule eq ref $self or die CSS::DOM::Exception->new( -diff --git a/lib/CSS/DOM/Rule/Import.pm b/lib/CSS/DOM/Rule/Import.pm -index 1afdcdc..75c8505 100644 ---- a/lib/CSS/DOM/Rule/Import.pm -+++ b/lib/CSS/DOM/Rule/Import.pm -@@ -45,7 +45,7 @@ sub cssText { - sub href { - my $self =shift; - $self->[hrfe] ||= do { -- require CSS'DOM'Parser; -+ require CSS::DOM::Parser; - if($self->[urlt][00] eq 'u') { - # ~~~ I probably ought to put things like this in a - # Parser::token_val function. -@@ -53,10 +53,10 @@ sub href { - $url =~ s/^url\([ \t\r\n\f]*//; - $url =~ s/[ \t\r\n\f]*\)\z//; - $url =~ s/^['"]// and chop $url; -- CSS'DOM'Parser'unescape($url); -+ CSS::DOM::Parser::unescape($url); - } - else { -- CSS'DOM'Parser'unescape( -+ CSS::DOM::Parser::unescape( - substr $$self[urlt][1], 1, -1 - ) - } -diff --git a/lib/CSS/DOM/Rule/Style.pm b/lib/CSS/DOM/Rule/Style.pm -index dfa7501..54da057 100644 ---- a/lib/CSS/DOM/Rule/Style.pm -+++ b/lib/CSS/DOM/Rule/Style.pm -@@ -93,8 +93,8 @@ sub _selector_matches { # ~~~ Does this work with initial space in the selector? - - # tokenise if necessary - unless(ref $self->[selc]) { -- require CSS'DOM'Parser; -- $self->[selc] = [ CSS'DOM'tokenise($self->[selc]) ]; -+ require CSS::DOM::Parser; -+ $self->[selc] = [ CSS::DOM::tokenise($self->[selc]) ]; - } - - # parse selector tokens if necessary -@@ -130,7 +130,7 @@ sub _selector_matches { # ~~~ Does this work with initial space in the selector? - - # ids: - if($types =~ s/^#//) { -- push @subsel, '#', CSS'DOM'Util'unescape( substr shift @tokens, 1 ), -+ push @subsel, '#', CSS::DOM::Util::unescape( substr shift @tokens, 1 ), - undef; - } - -@@ -138,12 +138,12 @@ sub _selector_matches { # ~~~ Does this work with initial space in the selector? - elsif($types =~ /^di/ && $tokens[0] eq '.') { - $types =~ s/^..//; shift @tokens; - push @subsel, '~', 'class', -- CSS'DOM'Util'unescape( shift @tokens ); -+ CSS::DOM::Util::unescape( shift @tokens ); - } - - # pseudo-elems and classes - elsif($types =~ s/^(::?)i//) { -- push @subsel, $1,lc CSS'DOM'Util'unescape($tokens[length $1]), undef; -+ push @subsel, $1,lc CSS::DOM::Util::unescape($tokens[length $1]), undef; - splice @tokens, 0, $+[0]; - } - -@@ -151,14 +151,14 @@ sub _selector_matches { # ~~~ Does this work with initial space in the selector? - elsif($types =~ s/^:fi\)//) { - push @subsel, - ':', -- lc CSS'DOM'Util'unescape(substr $tokens[1], 0, -1), -- lc CSS'DOM'Util'unescape($tokens[2]); -+ lc CSS::DOM::Util::unescape(substr $tokens[1], 0, -1), -+ lc CSS::DOM::Util::unescape($tokens[2]); - splice @tokens, 0, 4; - } - - # [attr] - elsif($types =~ s/^\[i]//) { -- push @subsel, '=', lc CSS'DOM'Util'unescape($tokens[1]), undef; -+ push @subsel, '=', lc CSS::DOM::Util::unescape($tokens[1]), undef; - splice @tokens, 0, 3; - } - -@@ -166,16 +166,16 @@ sub _selector_matches { # ~~~ Does this work with initial space in the selector? - elsif($types =~ /^\[id']/ && $tokens[2] eq '=') { - $types =~ s/^.{5}//; - push @subsel, '=', -- lc CSS'DOM'Util'unescape($tokens[1]), -- CSS'DOM'Util'unescape_str($tokens[3]); -+ lc CSS::DOM::Util::unescape($tokens[1]), -+ CSS::DOM::Util::unescape_str($tokens[3]); - splice @tokens, 0, 5; - } - - # [attr~='value'], [attr|='value'] - elsif($types =~ s/^\[i[~|]']//) { - push @subsel, $tokens[2], -- lc CSS'DOM'Util'unescape($tokens[1]), -- CSS'DOM'Util'unescape_str($tokens[3]); -+ lc CSS::DOM::Util::unescape($tokens[1]), -+ CSS::DOM::Util::unescape_str($tokens[3]); - splice @tokens, 0, 5; - } - -diff --git a/lib/CSS/DOM/Style.pm b/lib/CSS/DOM/Style.pm -index 47d1291..b42b8db 100644 ---- a/lib/CSS/DOM/Style.pm -+++ b/lib/CSS/DOM/Style.pm -@@ -171,9 +171,9 @@ sub setProperty { - # short-circuit for the common case - length $value or $self->removeProperty($name),return; - -- require CSS'DOM'Parser; -- my @tokens = eval { CSS'DOM'Parser'tokenise_value($value); } -- or die CSS::DOM'Exception->new( SYNTAX_ERR, $@); -+ require CSS::DOM::Parser; -+ my @tokens = eval { CSS::DOM::Parser::tokenise_value($value); } -+ or die CSS::DOM::Exception->new( SYNTAX_ERR, $@); - - # check for whitespace/comment assignment - $tokens[0] =~ /^s+\z/ and $self->removeProperty($name),return; -diff --git a/lib/CSS/DOM/Value.pm b/lib/CSS/DOM/Value.pm -index 45f89e9..83b04e7 100644 ---- a/lib/CSS/DOM/Value.pm -+++ b/lib/CSS/DOM/Value.pm -@@ -7,9 +7,9 @@ use strict; - - use Carp; - use CSS::DOM::Constants; --use CSS'DOM'Exception 'NO_MODIFICATION_ALLOWED_ERR'; -+use CSS::DOM::Exception 'NO_MODIFICATION_ALLOWED_ERR'; - use Exporter 5.57 'import'; --use Scalar'Util < weaken reftype >; -+use Scalar::Util < weaken reftype >; - - use constant 1.03 our $_const = { - type => 0, -@@ -46,11 +46,11 @@ sub cssText { - ? $self->[valu] : 'inherit' - if defined wantarray; - if(@_) { -- die new CSS'DOM'Exception -+ die new CSS::DOM::Exception - NO_MODIFICATION_ALLOWED_ERR, - "Unowned value objects cannot be modified" - unless my $owner = $self->[ownr]; -- die new CSS'DOM'Exception -+ die new CSS::DOM::Exception - NO_MODIFICATION_ALLOWED_ERR, - "CSS::DOM::Value objects that do not know to which " - ."property they belong cannot be modified" -diff --git a/lib/CSS/DOM/Value/List.pm b/lib/CSS/DOM/Value/List.pm -index 85f5ef5..e681fa2 100644 ---- a/lib/CSS/DOM/Value/List.pm -+++ b/lib/CSS/DOM/Value/List.pm -@@ -2,8 +2,8 @@ package CSS::DOM::Value::List; - - $VERSION = '0.17'; - --use CSS'DOM'Constants ; --use Scalar'Util 'weaken'; -+use CSS::DOM::Constants ; -+use Scalar::Util 'weaken'; - - # Object of this class are hashes, with the following keys: - # c: CSS code -@@ -14,7 +14,7 @@ use Scalar'Util 'weaken'; - - sub DOES { - return 1 if $_[1] eq 'CSS::DOM::Value'; -- goto &UNIVERSAL'DOES if defined &UNIVERSAL'DOES; -+ goto &UNIVERSAL::DOES if defined &UNIVERSAL::DOES; - } - - use overload -@@ -37,14 +37,14 @@ sub cssText { - if(defined wantarray) {{ - if(!defined $$self{c} || grep ref ne 'ARRAY', @{$$self{v}}) { - @{$$self{v}} or $old = 'none', last; -- require CSS'DOM'Value'Primitive; -+ require CSS::DOM::Value::Primitive; - my @args; my $index = 0; - for(@{$$self{v}}) { - next unless ref eq 'ARRAY'; - @args or @args = ( - (owner => property => @$self{})[0,2,1,3], index => $index - ); -- $_ = new CSS'DOM'Value'Primitive @$_, @args; -+ $_ = new CSS::DOM::Value::Primitive @$_, @args; - } - no warnings 'uninitialized'; - $old = join length $$self{s} ? $$self{s} : ' ', -@@ -53,11 +53,11 @@ sub cssText { - else { $old = $$self{c} } - }} - if(@_) { # assignment -- die new CSS'DOM'Exception -+ die new CSS::DOM::Exception - NO_MODIFICATION_ALLOWED_ERR, - "Unowned value objects cannot be modified" - unless my $owner = $self->{o}; -- die new CSS'DOM'Exception -+ die new CSS::DOM::Exception - NO_MODIFICATION_ALLOWED_ERR, - "CSS::DOM::Value objects that do not know to which " - ."property they belong cannot be modified" -@@ -67,8 +67,8 @@ sub cssText { - my @arsg - = $owner->property_parser->match($prop, $_[0]) - ) { -- require CSS'DOM'Value; -- CSS'DOM'Value::_apply_args_to_self($self,$owner,$prop,@arsg); -+ require CSS::DOM::Value; -+ CSS::DOM::Value::_apply_args_to_self($self,$owner,$prop,@arsg); - } - - if(my $mh = $owner->modification_handler) { -@@ -89,8 +89,8 @@ sub item { - defined or return; - ref eq 'ARRAY' or return exit die return $_; - -- require CSS'DOM'Value'Primitive; -- return $_ = new CSS'DOM'Value'Primitive -+ require CSS::DOM::Value::Primitive; -+ return $_ = new CSS::DOM::Value::Primitive - @$_, - (owner => property => @$self{})[0,2,1,3], - index => $index; -diff --git a/lib/CSS/DOM/Value/Primitive.pm b/lib/CSS/DOM/Value/Primitive.pm -index 2ce0e9d..2046ff4 100644 ---- a/lib/CSS/DOM/Value/Primitive.pm -+++ b/lib/CSS/DOM/Value/Primitive.pm -@@ -17,7 +17,7 @@ use Exporter 5.57 'import'; - - sub DOES { - return 1 if $_[1] eq 'CSS::DOM::Value'; -- goto &UNIVERSAL'DOES if defined &UNIVERSAL'DOES; -+ goto &UNIVERSAL::DOES if defined &UNIVERSAL::DOES; - } - - use constant 1.03 our $_const = { # Don’t conflict with the superclass! -@@ -203,8 +203,8 @@ sub cssText { - }} - } - if(@_) { -- require CSS'DOM'Exception, -- die new CSS'DOM'Exception -+ require CSS::DOM::Exception, -+ die new CSS::DOM::Exception - NO_MODIFICATION_ALLOWED_ERR, - "Unowned value objects cannot be modified" - unless my $owner = $self->[ownr]; -@@ -213,15 +213,15 @@ sub cssText { - # deal with formats - if(my $format = $$self[form]) { - if(!our $parser) { -- require CSS'DOM'PropertyParser; -+ require CSS::DOM::PropertyParser; - add_property{ -- $parser = new CSS'DOM'PropertyParser -+ $parser = new CSS::DOM::PropertyParser - } _=>our $prop_spec = {}; - } - our $prop_spec->{format} = $format; - if(my @args = match { our $parser } _=> shift) { -- require CSS'DOM'Value; -- CSS'DOM'Value'_apply_args_to_self( -+ require CSS::DOM::Value; -+ CSS::DOM::Value::_apply_args_to_self( - $self, $owner, $prop, - @args, format => $format, - ); -@@ -231,8 +231,8 @@ sub cssText { - # This is never reached, at least not when CSS::DOM’s mod- - # ules call the constructor: - elsif(!defined $prop) { -- require CSS'DOM'Exception, -- die new CSS'DOM'Exception -+ require CSS::DOM::Exception, -+ die new CSS::DOM::Exception - NO_MODIFICATION_ALLOWED_ERR, - ref($self) . " objects that do not know to which " - ."property they belong cannot be modified" -@@ -263,8 +263,8 @@ sub cssText { - $index+1..$length-1 - ), - ); -- require CSS'DOM'Value; -- CSS'DOM'Value'_load_if_necessary($arsg[1]); -+ require CSS::DOM::Value; -+ CSS::DOM::Value::_load_if_necessary($arsg[1]); - my $list = $arsg[1]->new( - owner => $owner, - property => $prop, -@@ -284,8 +284,8 @@ sub cssText { - my @arsg - = $owner->property_parser->match($prop, $_[0]) - ) { -- require CSS'DOM'Value; -- CSS'DOM'Value'_apply_args_to_self( -+ require CSS::DOM::Value; -+ CSS::DOM::Value::_apply_args_to_self( - $self, $owner, $prop, @arsg - ); - } -@@ -341,10 +341,10 @@ sub cssValueType { CSS::DOM::Value::CSS_PRIMITIVE_VALUE } - sub primitiveType { shift->[type] } - - sub setFloatValue { -- my ($self,$type,$val) = @'_; -+ my ($self,$type,$val) = @_; - -- require CSS'DOM'Exception, -- die new CSS'DOM'Exception INVALID_ACCESS_ERR, "Invalid value type" -+ require CSS::DOM::Exception, -+ die new CSS::DOM::Exception INVALID_ACCESS_ERR, "Invalid value type" - if $type == CSS_UNKNOWN || $type == CSS_COUNTER - || $type == CSS_RECT || $type == CSS_RGBCOLOR || $type == CSS_DIMENSION; - -@@ -352,8 +352,8 @@ sub setFloatValue { - # using this API. - no warnings 'numeric'; - $self->cssText(my $css = _serialise($type, $val)); -- require CSS'DOM'Exception, -- die new CSS'DOM'Exception INVALID_ACCESS_ERR, "Invalid value: $css" -+ require CSS::DOM::Exception, -+ die new CSS::DOM::Exception INVALID_ACCESS_ERR, "Invalid value: $css" - if $self->cssText ne $css; - _: - } -@@ -364,8 +364,8 @@ sub getFloatValue { - # There are more types that are numbers than are not, so we - # invert our list. - my $type = $self->[type]; -- require CSS'DOM'Exception, -- die new CSS'DOM'Exception INVALID_ACCESS_ERR, "Not a numeric value" -+ require CSS::DOM::Exception, -+ die new CSS::DOM::Exception INVALID_ACCESS_ERR, "Not a numeric value" - if $type == CSS_UNKNOWN || $type == CSS_STRING || $type == CSS_URI - || $type == CSS_IDENT || $type == CSS_ATTR || $type == CSS_COUNTER - || $type == CSS_RECT || $type == CSS_RGBCOLOR; -@@ -380,8 +380,8 @@ sub getStringValue { - my $self = shift; - - my $type = $self->[type]; -- require CSS'DOM'Exception, -- die new CSS'DOM'Exception INVALID_ACCESS_ERR, "Not a string value" -+ require CSS::DOM::Exception, -+ die new CSS::DOM::Exception INVALID_ACCESS_ERR, "Not a string value" - unless $type == CSS_STRING || $type == CSS_URI - || $type == CSS_IDENT || $type == CSS_ATTR; - -diff --git a/t/CSS2Properties.t b/t/CSS2Properties.t -index 315321b..13fc438 100644 ---- a/t/CSS2Properties.t -+++ b/t/CSS2Properties.t -@@ -3,8 +3,8 @@ - use strict; use warnings; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; --sub tests'import { $tests += pop if @_ > 1 }; -+sub tests::VERSION { $tests += pop }; -+sub tests::import { $tests += pop if @_ > 1 }; - use Test::More; - plan tests => $tests; - -diff --git a/t/CSSCharsetRule.t b/t/CSSCharsetRule.t -index 92a8e74..fc3dba5 100644 ---- a/t/CSSCharsetRule.t -+++ b/t/CSSCharsetRule.t -@@ -3,7 +3,7 @@ - use strict; use warnings; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -@@ -13,7 +13,7 @@ use_ok 'CSS::DOM::Rule::Charset',; - - require CSS::DOM; - my $rule = ( -- my $ss = CSS::DOM'parse( -+ my $ss = CSS::DOM::parse( - '@charset "utf-8";' - ) - )-> cssRules->[0]; -diff --git a/t/CSSFontFaceRule.t b/t/CSSFontFaceRule.t -index 9f4879e..abd5b6c 100644 ---- a/t/CSSFontFaceRule.t -+++ b/t/CSSFontFaceRule.t -@@ -3,7 +3,7 @@ - use strict; use warnings; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -@@ -13,7 +13,7 @@ use_ok 'CSS::DOM::Rule::FontFace',; - - require CSS::DOM; - my $rule = ( -- my $ss = CSS::DOM'parse( -+ my $ss = CSS::DOM::parse( - '@font-face { font-family: "foo";src:url(bar) }' - ) - )-> cssRules->[0]; -diff --git a/t/CSSImportRule.t b/t/CSSImportRule.t -index 6ec65ef..c8a6a51 100644 ---- a/t/CSSImportRule.t -+++ b/t/CSSImportRule.t -@@ -3,7 +3,7 @@ - use strict; use warnings; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -@@ -15,7 +15,7 @@ use_ok 'CSS::DOM::Rule::Import'; - - require CSS::DOM; - my $rule = ( -- my $ss = CSS::DOM'parse( -+ my $ss = CSS::DOM::parse( - '@import "foo.css" tv, screen' - ) - )-> cssRules->[0]; -@@ -95,7 +95,7 @@ use tests 5; # styleSheet - 'foo.css' => '@import "bar.css"', - 'bar.css' => 'a { color: blue }', - ); -- is CSS'DOM'parse('@import "foo.css',url_fetcher=>sub{$urls{$_[0]}}) -+ is CSS::DOM::parse('@import "foo.css',url_fetcher=>sub{$urls{$_[0]}}) - ->cssRules->[0]->styleSheet - ->cssRules->[0]->styleSheet - ->cssRules->[0]->style->color, -diff --git a/t/CSSMediaRule.t b/t/CSSMediaRule.t -index fffa7fb..9d01698 100644 ---- a/t/CSSMediaRule.t -+++ b/t/CSSMediaRule.t -@@ -3,7 +3,7 @@ - use strict; use warnings; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -@@ -15,7 +15,7 @@ use_ok 'CSS::DOM::Rule::Media'; - - require CSS::DOM; - my $rule = ( -- my $ss = CSS::DOM'parse( -+ my $ss = CSS::DOM::parse( - '@media print { body { background: none } }' - ) - )-> cssRules->[0]; -@@ -133,4 +133,4 @@ use tests 4; # deleteRule - cmp_ok $@, '==', CSS::DOM::Exception::INDEX_SIZE_ERR, - 'error raised by deleteRule'; - --} -\ No newline at end of file -+} -diff --git a/t/CSSPageRule.t b/t/CSSPageRule.t -index 108923e..764e1a1 100644 ---- a/t/CSSPageRule.t -+++ b/t/CSSPageRule.t -@@ -3,7 +3,7 @@ - use strict; use warnings; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -@@ -14,7 +14,7 @@ use_ok 'CSS::DOM::Rule::Page',; - - require CSS::DOM; - my $rule = ( -- my $ss = CSS::DOM'parse( '@page:first{ margin-top: 3in }') -+ my $ss = CSS::DOM::parse( '@page:first{ margin-top: 3in }') - )-> cssRules->[0]; - - use tests 1; # isa -diff --git a/t/CSSPrimitiveValue.t b/t/CSSPrimitiveValue.t -index 5b30046..ad378f7 100644 ---- a/t/CSSPrimitiveValue.t -+++ b/t/CSSPrimitiveValue.t -@@ -4,8 +4,8 @@ use strict; use warnings; - no warnings; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; --sub tests'import { $tests += pop if @_ > 1 }; -+sub tests::VERSION { $tests += pop }; -+sub tests::import { $tests += pop if @_ > 1 }; - use Test::More; - plan tests => $tests; - -@@ -441,9 +441,9 @@ for(CSS::DOM::Value::Primitive->new( - # ------------------------------------------ - # Tests for setFloatValue and setStringValue - --use CSS'DOM'Style; -+use CSS::DOM::Style; - require CSS::DOM::PropertyParser; --my $s = new CSS'DOM'Style -+my $s = new CSS::DOM::Style - property_parser => $CSS::DOM::PropertyParser::Default; - - for my $meth ('setFloatValue' ,'setStringValue'){ -diff --git a/t/CSSRule.t b/t/CSSRule.t -index b33007c..582eb04 100644 ---- a/t/CSSRule.t -+++ b/t/CSSRule.t -@@ -3,7 +3,7 @@ - use strict; use warnings; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -@@ -24,7 +24,7 @@ use tests 7; # constants - - - require CSS::DOM; --my $ss = CSS::DOM'parse( 'a{text-decoration: none} p { margin: 0 }'); -+my $ss = CSS::DOM::parse( 'a{text-decoration: none} p { margin: 0 }'); - my $rule = cssRules $ss ->[0]; - - use tests 1; # isa -diff --git a/t/CSSRuleList.t b/t/CSSRuleList.t -index bc2bfaf..5cee6f6 100644 ---- a/t/CSSRuleList.t -+++ b/t/CSSRuleList.t -@@ -3,7 +3,7 @@ - use strict; use warnings; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -diff --git a/t/CSSStyleDeclaration-setProperty.t b/t/CSSStyleDeclaration-setProperty.t -index cceb993..d0615b7 100644 ---- a/t/CSSStyleDeclaration-setProperty.t -+++ b/t/CSSStyleDeclaration-setProperty.t -@@ -7,7 +7,7 @@ - use strict; use warnings; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -diff --git a/t/CSSStyleDeclaration.t b/t/CSSStyleDeclaration.t -index 57bfe98..7bcc370 100644 ---- a/t/CSSStyleDeclaration.t -+++ b/t/CSSStyleDeclaration.t -@@ -3,7 +3,7 @@ - use strict; use warnings; no warnings qw 'utf8 parenthesis regexp once qw'; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -@@ -26,7 +26,7 @@ use tests 3; # first make sure we can use it without loading CSS::DOM - - - require CSS::DOM; --my $ss = CSS::DOM'parse ('a{text-decoration: none} p { margin: 0 }'); -+my $ss = CSS::DOM::parse ('a{text-decoration: none} p { margin: 0 }'); - my $rule = cssRules $ss ->[0]; - my $decl = $rule->style; - -@@ -105,7 +105,7 @@ like $decl->cssText, qr/color: blue !very\\ important/, - - use tests 4; # length - { -- my $decl = new CSS'DOM'Style; -+ my $decl = new CSS::DOM::Style; - is eval { $decl->length }, 0, # This used to die [RT #54810] - 'length when no properties have been added'; # (fixed in 0.09). - $decl = CSS::DOM::Style::parse( -diff --git a/t/CSSStyleRule.t b/t/CSSStyleRule.t -index 024012b..fb550da 100644 ---- a/t/CSSStyleRule.t -+++ b/t/CSSStyleRule.t -@@ -3,7 +3,7 @@ - use strict; use warnings; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -@@ -14,7 +14,7 @@ use_ok 'CSS::DOM::Rule::Style',; - - require CSS::DOM; - my $rule = ( -- my $ss = CSS::DOM'parse('a{text-decoration: none} p { margin: 0 }') -+ my $ss = CSS::DOM::parse('a{text-decoration: none} p { margin: 0 }') - )-> cssRules->[0]; - - use tests 1; # isa -diff --git a/t/CSSStyleSheet-insertRule.t b/t/CSSStyleSheet-insertRule.t -index 3302966..94b3ee7 100644 ---- a/t/CSSStyleSheet-insertRule.t -+++ b/t/CSSStyleSheet-insertRule.t -@@ -7,7 +7,7 @@ - use strict; use warnings; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -@@ -19,4 +19,3 @@ ok eval{$ss->insertRule('a{ color: red }',0);1}, - 'insertRule on empty style sheet doesn\'t die'; - # At one point during development, it did die because it was call- - # ing methods on CSS::DOM::RuleParser which hadn’t been loaded. -- -diff --git a/t/CSSStyleSheet.t b/t/CSSStyleSheet.t -index ab82e6a..40b3edf 100644 ---- a/t/CSSStyleSheet.t -+++ b/t/CSSStyleSheet.t -@@ -3,7 +3,7 @@ - use strict; use warnings; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -@@ -30,7 +30,7 @@ use tests 3; # (_set_)ownerRule - - use tests 2; # cssRules - { -- $ss = CSS::DOM'parse( 'a{text-decoration: none} p { margin: 0 }'); -+ $ss = CSS::DOM::parse( 'a{text-decoration: none} p { margin: 0 }'); - is +()=$ss->cssRules, 2, 'cssRules in list context'; - isa_ok my $rules = cssRules $ss, 'CSS::DOM::RuleList', - 'cssRules in scalar context'; -@@ -38,7 +38,7 @@ use tests 2; # cssRules - - use tests 11; # insertRule - { -- $ss = CSS::DOM'parse ('a{text-decoration: none} p { margin: 0 }'); -+ $ss = CSS::DOM::parse ('a{text-decoration: none} p { margin: 0 }'); - - is $ss->insertRule('b { font-weight: bold }', 0), 0, - 'retval of insertRule'; -@@ -70,7 +70,7 @@ use tests 11; # insertRule - - use tests 4; # deleteRule - { -- $ss = CSS::DOM'parse ('a{text-decoration: none} p { margin: 0 } -+ $ss = CSS::DOM::parse ('a{text-decoration: none} p { margin: 0 } - i {}'); - is +()=$ss->deleteRule(1), 0, 'retval of deleteRule'; - is_deeply [map $_->selectorText, $ss->cssRules], [qw/ a i /], -@@ -82,4 +82,4 @@ use tests 4; # deleteRule - cmp_ok $@, '==', CSS::DOM::Exception::INDEX_SIZE_ERR, - 'error raised by deleteRule'; - --} -\ No newline at end of file -+} -diff --git a/t/CSSValue-prim-cssText.t b/t/CSSValue-prim-cssText.t -index 09f657b..b19836a 100644 ---- a/t/CSSValue-prim-cssText.t -+++ b/t/CSSValue-prim-cssText.t -@@ -6,7 +6,7 @@ - use strict; use warnings; no warnings qw 'qw regexp once utf8 parenthesis'; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -diff --git a/t/CSSValue.t b/t/CSSValue.t -index 5fad855..f5a04d0 100644 ---- a/t/CSSValue.t -+++ b/t/CSSValue.t -@@ -3,7 +3,7 @@ - use strict; use warnings; no warnings qw 'qw regexp once utf8 parenthesis'; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -@@ -38,7 +38,7 @@ isa_ok +CSS::DOM::Value->new(type => &CSS_CUSTOM, value => "top left"), - - require CSS::DOM::Style; - require CSS::DOM::PropertyParser; --my $s = new CSS'DOM'Style -+my $s = new CSS::DOM::Style - property_parser => my $spec = $CSS::DOM::PropertyParser::Default; - - # The default parser has no properties with a simple string, attr or -diff --git a/t/CSSValueList.t b/t/CSSValueList.t -index 1805209..25c1bec 100644 ---- a/t/CSSValueList.t -+++ b/t/CSSValueList.t -@@ -3,17 +3,17 @@ - use strict; use warnings; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - --use CSS'DOM'Constants ':primitive'; --use CSS'DOM'Value'List; -+use CSS::DOM::Constants ':primitive'; -+use CSS::DOM::Value::List; - - use tests 1; # DOES --ok +CSS'DOM'Value'List->DOES('CSS::DOM::Value'), 'DOES'; -+ok +CSS::DOM::Value::List->DOES('CSS::DOM::Value'), 'DOES'; - --my $v = new CSS'DOM'Value'List values => [ -+my $v = new CSS::DOM::Value::List values => [ - [ type => CSS_STRING, value => 'sphed' ], - [ type => CSS_STRING, value => 'flit' ], - ]; -diff --git a/t/MediaList.t b/t/MediaList.t -index 3092c62..0888d61 100644 ---- a/t/MediaList.t -+++ b/t/MediaList.t -@@ -3,7 +3,7 @@ - use strict; use warnings; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -diff --git a/t/RGBColor.t b/t/RGBColor.t -index 3758529..12d2938 100644 ---- a/t/RGBColor.t -+++ b/t/RGBColor.t -@@ -3,7 +3,7 @@ - use strict; use warnings; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -diff --git a/t/Rect.t b/t/Rect.t -index e7f83a4..ea8f046 100644 ---- a/t/Rect.t -+++ b/t/Rect.t -@@ -3,7 +3,7 @@ - use strict; use warnings; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -@@ -25,4 +25,4 @@ use tests 4; - is $v->left->cssText, '4cm', 'left'; - } - --# ~~~ test for modifications of the cssText property -\ No newline at end of file -+# ~~~ test for modifications of the cssText property -diff --git a/t/StyleSheet.t b/t/StyleSheet.t -index a4469fb..e84e7d4 100644 ---- a/t/StyleSheet.t -+++ b/t/StyleSheet.t -@@ -3,7 +3,7 @@ - use strict; use warnings; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -@@ -55,7 +55,7 @@ use tests 1; # (set_)href - - use tests 1; # title - { -- sub foo'attr { return shift->{+shift} } -+ sub foo::attr { return shift->{+shift} } - $ss->set_ownerNode(my $foo = bless {title => 'tilde'}, 'foo'); - is $ss->title, 'tilde', 'title'; - } -diff --git a/t/StyleSheetList.t b/t/StyleSheetList.t -index 8e8c7cf..745f894 100644 ---- a/t/StyleSheetList.t -+++ b/t/StyleSheetList.t -@@ -3,7 +3,7 @@ - use strict; use warnings; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -diff --git a/t/charset.t b/t/charset.t -index eed053e..1666157 100644 ---- a/t/charset.t -+++ b/t/charset.t -@@ -3,7 +3,7 @@ - use strict; use warnings; no warnings qw 'utf8 parenthesis'; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -diff --git a/t/css-dom-interface.t b/t/css-dom-interface.t -index 41bca29..76e5f2f 100644 ---- a/t/css-dom-interface.t -+++ b/t/css-dom-interface.t -@@ -6,7 +6,7 @@ - use strict; use warnings; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -diff --git a/t/css-dom-style.t b/t/css-dom-style.t -index f852f6f..9a6582f 100644 ---- a/t/css-dom-style.t -+++ b/t/css-dom-style.t -@@ -6,13 +6,13 @@ - use strict; use warnings; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - - use tests 4; # modification_handler - require CSS::DOM::Style; --my $style = CSS::DOM::Style'parse('margin-top: 2px'); -+my $style = CSS::DOM::Style::parse('margin-top: 2px'); - $style->modification_handler(sub { ++$}; ${{} .= shift}); - $style->cssText('margin-bottom: 600%'); - is $}, 1, 'cssText triggers mod hander'; -@@ -25,4 +25,3 @@ is $}, 3, 'AUTOLOAD triggers the handler'; - # ~~~ We also needs tests for modification_handler triggered by: - # • removeProperty - # • modifications to CSSValue objects and their sub-objects (RGBColor etc -- -diff --git a/t/css-dom-util.t b/t/css-dom-util.t -index 5dbef09..554cd1b 100644 ---- a/t/css-dom-util.t -+++ b/t/css-dom-util.t -@@ -3,7 +3,7 @@ - use strict; use warnings; no warnings qw 'utf8 parenthesis'; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -diff --git a/t/css-dom.t b/t/css-dom.t -index e36a046..d43d458 100644 ---- a/t/css-dom.t -+++ b/t/css-dom.t -@@ -3,7 +3,7 @@ - use strict; use warnings; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -@@ -28,7 +28,7 @@ use tests 1; # compute_style - local $SIG{__WARN__} = sub { $w .= shift }; - require CSS::DOM::Style; - my $elem = bless{ -- style => CSS'DOM'Style'parse('color:red'), tagName => 'p', -+ style => CSS::DOM::Style::parse('color:red'), tagName => 'p', - }, MyElem=>; - CSS::DOM::compute_style(element => $elem); - is $w, undef, 'no warnings for style belonging to element itself'; -diff --git a/t/parser-rules.t b/t/parser-rules.t -index 16cb536..7387caf 100644 ---- a/t/parser-rules.t -+++ b/t/parser-rules.t -@@ -8,7 +8,7 @@ - use strict; use warnings; no warnings qw 'utf8 parenthesis'; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -@@ -35,7 +35,7 @@ use tests 2; # miscellaneous CSS::DOM::parse stuff - - use tests 7; # - { -- my $sheet = CSS'DOM'parse ' -+ my $sheet = CSS::DOM::parse ' - /* /**/ - @at-rule {/* -@@ -46,9 +46,9 @@ use tests 7; # - '@at-rule {/*'; -- CSS'DOM'parse 'a { --> }'; -+ CSS::DOM::parse 'a { --> }'; - ok $@, 'invalid -->'; -- CSS'DOM'parse 'a { a { }');1}, - 'invalid --> before statement'; -@@ -62,7 +62,7 @@ use tests 7; # - - use tests 5; # single statement parser - { -- my $sheet = new CSS'DOM; -+ my $sheet = new CSS::DOM; - $sheet->insertRule('phoo { bar : baz} ',0); - isa_ok cssRules$sheet->[0], 'CSS::DOM::Rule::Style', - 'ruleset created by insertRule'; -@@ -79,36 +79,36 @@ use tests 5; # single statement parser - - use tests 9; # styledecl parser - { -- my $style = CSS'DOM'Style'parse ' foo : bar '; -+ my $style = CSS::DOM::Style::parse ' foo : bar '; - is $style->cssText, 'foo: bar', 'style parser'; -- CSS'DOM'Style'parse 'foo: bar}'; -+ CSS::DOM::Style::parse 'foo: bar}'; - ok $@, 'style parser chokes on }'; -- is CSS'DOM'Style'parse ' ; ;;;;;foo : bar ;;;; ; ',->cssText, -+ is CSS::DOM::Style::parse ' ; ;;;;;foo : bar ;;;; ; ',->cssText, - 'foo: bar', 'style wit extra semicolons'; -- is CSS'DOM'Style'parse 'foo:bar',->cssText, -+ is CSS::DOM::Style::parse 'foo:bar',->cssText, - 'foo: bar', 'style with no space'; -- is CSS'DOM'Style'parse 'foo:bar;;;baz:bonk;;',->cssText, -+ is CSS::DOM::Style::parse 'foo:bar;;;baz:bonk;;',->cssText, - 'foo: bar; baz: bonk', - 'style with no space & extra semicolons'; -- is CSS'DOM'Style'parse 'foo:bar;;;!baz:bonk;;',->cssText, -+ is CSS::DOM::Style::parse 'foo:bar;;;!baz:bonk;;',->cssText, - 'foo: bar', - 'style with delimiter+ident for property name'; -- is CSS'DOM'Style'parse '\70\41 dding:0;;;;;',->cssText, -+ is CSS::DOM::Style::parse '\70\41 dding:0;;;;;',->cssText, - 'padding: 0', - 'style with escaped property name'; - -- is CSS'DOM'Style'parse '\a\z\A\Z\)\a a :bar', -+ is CSS::DOM::Style::parse '\a\z\A\Z\)\a a :bar', - ->getPropertyValue("\nz\nZ)\na"), 'bar', - 'style with both kinds of ident escapes'; - - { package Phoo; use overload '""'=>sub{'foo:bar'}} -- is CSS'DOM'Style'parse(bless [], 'Phoo')->cssText, 'foo: bar', -+ is CSS::DOM::Style::parse(bless [], 'Phoo')->cssText, 'foo: bar', - '::Style::parse\'s force stringification'; - } - - use tests 121; # @media - { -- my $sheet = new CSS'DOM; my $rule; -+ my $sheet = new CSS::DOM; my $rule; - - $sheet->insertRule('@media print{a{color:blue}}',0); - isa_ok $rule=pop@{$sheet->cssRules}, 'CSS::DOM::Rule::Media', -@@ -464,7 +464,7 @@ use tests 121; # @media - is $rule->cssText, "\@meDIa { }\n", - 'serialised empty unclosed fake @meDIa rule w/ws'; - -- $sheet = CSS'DOM'parse ' -+ $sheet = CSS::DOM::parse ' - @media print { a { color: blue } "stuff"} - td { padding: 0 } - '; -@@ -496,7 +496,7 @@ use tests 121; # @media - - use tests 1; # bracket closure - { -- my $sheet = new CSS'DOM; my $rule; -+ my $sheet = new CSS::DOM; my $rule; - - $sheet->insertRule('@unknown {(rect([',0); - is +($rule=pop@{$sheet->cssRules})->cssText, -@@ -506,7 +506,7 @@ use tests 1; # bracket closure - - use tests 14; # @page - { -- my $sheet = new CSS'DOM; my $rule; -+ my $sheet = new CSS::DOM; my $rule; - - $sheet->insertRule('@page{color:blue}',0); - is +($rule=pop@{$sheet->cssRules})->type, PAGE_RULE, -@@ -553,7 +553,7 @@ use tests 14; # @page - - use tests 6; # unrecognised at-rules - { -- my $sheet = new CSS'DOM; my $rule; -+ my $sheet = new CSS::DOM; my $rule; - - $sheet->insertRule('@unknown \ / \ / :-P {...}',0); - is +($rule=pop@{$sheet->cssRules})->type, UNKNOWN_RULE, -@@ -579,7 +579,7 @@ use tests 6; # unrecognised at-rules - - use tests 6; # ruselet pasrer - { -- my $sheet = new CSS'DOM; my $rule; -+ my $sheet = new CSS::DOM; my $rule; - - $sheet->insertRule('a{text-decoration:none;color:blue}',0); - is +($rule=pop@{$sheet->cssRules})->type, STYLE_RULE, -@@ -605,7 +605,7 @@ use tests 6; # ruselet pasrer - - use tests 1; # invaldi strings - { -- my $sheet = CSS'DOM'parse q* -+ my $sheet = CSS::DOM::parse q* - p { - color: green; - font-family: 'Courier New Times -@@ -634,51 +634,51 @@ use tests 1; # invaldi strings - - use tests 10; # invalid closing brackets - { -- is CSS'DOM'parse q" @eotetet ]" =>-> cssRules->length,0, -+ is CSS::DOM::parse q" @eotetet ]" =>-> cssRules->length,0, - 'invalid closing bracket in unknown rule'; - ok $@, '$@ is set by invalid closing bracket in unknown rule'; -- is CSS'DOM'parse q" @media { ]" =>-> cssRules->length, 0, -+ is CSS::DOM::parse q" @media { ]" =>-> cssRules->length, 0, - 'invalid closing bracket in media rule'; - ok $@, '$@ is set by invalid closing bracket in media rule'; -- is CSS'DOM'parse q" @page { ]" =>-> cssRules->length, 0, -+ is CSS::DOM::parse q" @page { ]" =>-> cssRules->length, 0, - 'invalid closing bracket in page rule'; - ok $@, '$@ is set by invalid closing bracket in page rule'; -- is CSS'DOM'parse q" page ( ]" =>-> cssRules->length, 0, -+ is CSS::DOM::parse q" page ( ]" =>-> cssRules->length, 0, - 'invalid closing bracket in selector'; - ok $@, '$@ is set by invalid closing bracket in selector'; -- is CSS'DOM'parse q" a { (}" =>-> cssRules->length, 0, -+ is CSS::DOM::parse q" a { (}" =>-> cssRules->length, 0, - 'invalid closing bracket in style declaration'; - ok $@, '$@ is set by invalid closing bracket in selector'; - } - - use tests 14; # invalid [\@;] - { -- is CSS'DOM'parse q" @eotetet @aa ]" =>-> cssRules->length,0, -+ is CSS::DOM::parse q" @eotetet @aa ]" =>-> cssRules->length,0, - 'invalid @ in unknown rule'; - ok $@, '$@ is set by invalid @ in unknown rule'; -- is CSS'DOM'parse q" @eotetet aa (;" =>-> cssRules->length,0, -+ is CSS::DOM::parse q" @eotetet aa (;" =>-> cssRules->length,0, - 'invalid ; in unknown rule'; - ok $@, '$@ is set by invalid ; in unknown rule'; -- is CSS'DOM'parse q" @media {(; { " =>-> cssRules->length,0, -+ is CSS::DOM::parse q" @media {(; { " =>-> cssRules->length,0, - 'invalid ; in media rule'; - ok $@, '$@ is set by invalid ; in media rule'; -- is CSS'DOM'parse q" @page { (;fooo" =>-> cssRules->length,0, -+ is CSS::DOM::parse q" @page { (;fooo" =>-> cssRules->length,0, - 'invalid ; in page rule'; - ok $@, '$@ is set by invalid ; in page rule'; -- is CSS'DOM'parse q" page @oo " =>-> cssRules->length,0, -+ is CSS::DOM::parse q" page @oo " =>-> cssRules->length,0, - 'invalid @ in selector'; - ok $@, '$@ is set by invalid @ in selector'; -- is CSS'DOM'parse q" page ;( " =>-> cssRules->length,0, -+ is CSS::DOM::parse q" page ;( " =>-> cssRules->length,0, - 'invalid ; in selector'; - ok $@, '$@ is set by invalid ; in selector'; -- is CSS'DOM'parse q" a { ( ;( " =>-> cssRules->length,0, -+ is CSS::DOM::parse q" a { ( ;( " =>-> cssRules->length,0, - 'invalid ; in style declaration'; - ok $@, '$@ is set by invalid ; in style declaration'; - } - - use tests 14; # @import - { -- my $sheet = new CSS'DOM; my $rule; -+ my $sheet = new CSS::DOM; my $rule; - - $sheet->insertRule('@import"foo.css"print,screen;',0); - is +($rule=pop@{$sheet->cssRules})->type, IMPORT_RULE, -@@ -722,7 +722,7 @@ use tests 14; # @import - - use tests 8; # @font-face - { -- my $sheet = new CSS'DOM; my $rule; -+ my $sheet = new CSS::DOM; my $rule; - - $sheet->insertRule('@font-face{color:blue}',0); - is +($rule=pop@{$sheet->cssRules})->type, FONT_FACE_RULE, -@@ -751,7 +751,7 @@ use tests 8; # @font-face - - use tests 13; # @charset - { -- my $sheet = new CSS'DOM; my $rule; -+ my $sheet = new CSS::DOM; my $rule; - - $sheet->insertRule('@charset "utf-8";',0); - is +($rule=pop@{$sheet->cssRules})->type, CHARSET_RULE, -@@ -799,4 +799,3 @@ use tests 13; # @charset - is +($rule=pop@{$sheet->cssRules})->type, UNKNOWN_RULE, - '@charset w/space b4 ; is an unknown rule'; - } -- -diff --git a/t/parser-tokens.t b/t/parser-tokens.t -index 9c0fae3..d6a42b7 100644 ---- a/t/parser-tokens.t -+++ b/t/parser-tokens.t -@@ -3,7 +3,7 @@ - use strict; use warnings; no warnings qw 'utf8 parenthesis'; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -@@ -37,7 +37,7 @@ for('_', 'a'..'z', 'A'.."Z", map(chr,0x80..0x100) ,"\x{2003}","\x{3000}"){ - { - my $style = CSS::DOM::Style::parse("--a: 65"); - is $style->cssText, '', 'identifier can\'t begin with --'; -- $style = CSS'DOM'Style'parse"-0b:-0b"; -+ $style = CSS::DOM::Style::parse"-0b:-0b"; - is $style->cssText, '', 'nor with -0'; - } - -@@ -49,7 +49,7 @@ use tests 8; # strings - . q/\'\"/; - my $expect = - qq/ \x{10ffff}f-_abcABC}}}}}}}}\xff\x{2003}\x{100}\t'"/; -- my $rule = new CSS::DOM::Rule'Import; -+ my $rule = new CSS::DOM::Rule::Import; - - $rule->cssText('@import ' . "'$nasty_escaped_string'"); - is $rule->href, $expect, "'...'"; -@@ -80,7 +80,7 @@ use tests 8; # strings - - use tests 23; # urls - { -- my $rule = new CSS'DOM'Rule::Import; -+ my $rule = new CSS::DOM::Rule::Import; - - $rule->cssText('@import url(!$#%&][\\\}|{*~foo/bar.gif)'); - is $rule->href, '!$#%&][\}|{*~foo/bar.gif', 'unquoted url'; -@@ -118,7 +118,7 @@ use tests 23; # urls - is $rule->href, "\x{2000}\x{2000}\n 0 )\tz", - 'double-quoted url with escapes'; - -- my $style = new CSS'DOM'Style; -+ my $style = new CSS::DOM::Style; - - $style->name('url(foo'); - is $style->name, 'url(foo)', 'unquoted, unterminated url'; -@@ -179,7 +179,7 @@ use tests 3; # spaces and comments - "name:valu /*eeeee " - ); - is $style->name, 'valu', 'another ws /**/ test'; -- $style = CSS'DOM'Style'parse( "name: /*\n*/valu"); -+ $style = CSS::DOM::Style::parse( "name: /*\n*/valu"); - is $style->name, 'valu', 'multiline comments'; - } - -@@ -187,27 +187,27 @@ use tests 3; # spaces and comments - - use tests 6; # - { -- my $sheet = CSS'DOM'parse ' @media print{}'; -+ my $sheet = CSS::DOM::parse ' @media print{}'; - is join('',map cssText$_,cssRules$sheet), - "{ name: value }\n\@media print {\n}\n", - 'ignored '; -- is CSS'DOM'parse"{}{name: value; n:v}" =>-> -+ is CSS::DOM::parse"{}{name: --> value; n:v}" =>-> - cssRules->length, - 1, - 'invalid -->'; - ok $@, '$@ after invalid -->'; -- is CSS'DOM'Style'parse"name:'",->name, -+ is CSS::DOM::Style::parse"name:'",->name, - "''", ' in a string'; - } - - use tests 1; # miscellaneous tokens - { -- my $sheet = CSS'DOM'parse '@foo ()[~=:,./+-]{[("\"'; -+ my $sheet = CSS::DOM::parse '@foo ()[~=:,./+-]{[("\"'; - is $sheet->cssRules->[0]->cssText, - '@foo ()[~=:,./+-]{[("\"")]}'. "\n", - 'miscellaneous tokens' -diff --git a/t/property-parser.t b/t/property-parser.t -index 6423b39..f785054 100644 ---- a/t/property-parser.t -+++ b/t/property-parser.t -@@ -3,7 +3,7 @@ - use strict; use warnings; no warnings qw 'utf8 parenthesis regexp once qw'; - our $tests; - BEGIN { ++$INC{'tests.pm'} } --sub tests'VERSION { $tests += pop }; -+sub tests::VERSION { $tests += pop }; - use Test::More; - plan tests => $tests; - -@@ -18,11 +18,11 @@ isa_ok my $parser = CSS::DOM::PropertyParser->new, - - use tests 4; # clone - my $clone = (my $css21 = $CSS::DOM::PropertyParser::CSS21)->clone; --isn't $clone, $css21, 'clone at the first level'; --isn't $clone->get_property('background-position'), -+isnt $clone, $css21, 'clone at the first level'; -+isnt $clone->get_property('background-position'), - $css21->get_property('background-position'), - 'clone clones individual property specs'; --isn't -+isnt - $clone->get_property('border-color')->{properties} - {'border-top-color'}, - $css21->get_property('border-color')->{properties} -@@ -1314,17 +1314,17 @@ use tests 2; # parsing colours - { # Tests for problems with colours in cygwin’s perl (broken in 0.08; fixed - # in 0.09) and for bugs temporarily introduced while those problems were - # being addressed. -- my $p = new CSS'DOM'PropertyParser; -+ my $p = new CSS::DOM::PropertyParser; - $p->add_property( - 'colours' => { - format => '+', - }, - ); -- my $s = CSS'DOM'Style'parse( -+ my $s = CSS::DOM::Style::parse( - "colours: rgb(0,0,0) rgb(1,1,1)", - property_parser => $p - ); -- use CSS'DOM'Constants 'CSS_CUSTOM'; -+ use CSS::DOM::Constants 'CSS_CUSTOM'; - is $s->getPropertyCSSValue('colours')->cssValueType, CSS_CUSTOM, - 'quantified s'; - $p->add_property( -@@ -1346,18 +1346,18 @@ use tests 1; # backtracking with list properties - # local ${$whatever}[0] localises one element. But it actually - # replaces the array temporarily with a new one, which cannot - # work with references. -- my $p = new CSS'DOM'PropertyParser; -+ my $p = new CSS::DOM::PropertyParser; - $p->add_property( - 'foo' => { - format => '[(foo)|(foo),]+', # [(foo),?]+ does not trigger the bug - list => 1, - }, - ); -- my $s = CSS'DOM'Style'parse( -+ my $s = CSS::DOM::Style::parse( - "foo: foo, foo", - property_parser => $p - ); -- use CSS'DOM'Constants 'CSS_VALUE_LIST'; -+ use CSS::DOM::Constants 'CSS_VALUE_LIST'; - is_deeply [map cssText $_, @{$s->getPropertyCSSValue('foo')}],[('foo')x2], - 'backtracking does not preserve existing captures'; - } diff --git a/pkgs/by-name/pe/perl/perl-modules/CatalystAuthenticationStoreHtpasswd-test-replace-DES-hash-with-bcrypt.patch b/pkgs/by-name/pe/perl/perl-modules/CatalystAuthenticationStoreHtpasswd-test-replace-DES-hash-with-bcrypt.patch deleted file mode 100644 index f3ce028..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/CatalystAuthenticationStoreHtpasswd-test-replace-DES-hash-with-bcrypt.patch +++ /dev/null @@ -1,12 +0,0 @@ -Replaces the legacy DES crypt hash used in tests with a stronger -bcrypt function, as crypt() in pkgs.perl no longer supports DES - -# htpasswd -nbB mufasa "Circle of Life" - -diff --git a/t/lib/TestApp/htpasswd b/t/lib/TestApp/htpasswd -index 6cec784..91e5375 100644 ---- a/t/lib/TestApp/htpasswd -+++ b/t/lib/TestApp/htpasswd -@@ -1 +1 @@ --mufasa:Y7hn4ncIVPOuI -+mufasa:$2y$05$.KPC4Gja9L5AxJATDQBzs.lCHkm49l/9dcoyPcJg0JhyIvsD6Gqza diff --git a/pkgs/by-name/pe/perl/perl-modules/CatalystXScriptServerStarman-fork-arg.patch b/pkgs/by-name/pe/perl/perl-modules/CatalystXScriptServerStarman-fork-arg.patch deleted file mode 100644 index af7dc0d..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/CatalystXScriptServerStarman-fork-arg.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff --git a/lib/CatalystX/Script/Server/Starman.pm b/lib/CatalystX/Script/Server/Starman.pm -index 670bd74..7b3bd2e 100644 ---- a/lib/CatalystX/Script/Server/Starman.pm -+++ b/lib/CatalystX/Script/Server/Starman.pm -@@ -9,5 +9,5 @@ our $VERSION = '0.02'; - - extends 'Catalyst::Script::Server'; - --has '+fork' => ( default => 1, init_arg => undef ); -+has '+fork' => ( default => 1 ); - diff --git a/pkgs/by-name/pe/perl/perl-modules/DBD-SQLite/external-sqlite.patch b/pkgs/by-name/pe/perl/perl-modules/DBD-SQLite/external-sqlite.patch deleted file mode 100644 index 5aafa46..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/DBD-SQLite/external-sqlite.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/Makefile.PL 2016-04-21 15:44:34.000000000 +0200 -+++ b/Makefile.PL 2017-10-31 11:04:28.389959946 +0100 -@@ -129,7 +129,7 @@ - # a system sqlite is also sophisticated enough to have a patching system - # that can change the if ( 0 ) to if ( 1 ) - my ($sqlite_local, $sqlite_base, $sqlite_lib, $sqlite_inc); --if ( 0 ) { -+if ( 1 ) { - require File::Spec; - if ( $sqlite_base = (grep(/SQLITE_LOCATION=.*/, @ARGV))[0] ) { - $sqlite_base =~ /=(.*)/; diff --git a/pkgs/by-name/pe/perl/perl-modules/Data-Clone-fix-apostrophe-package-separator.patch b/pkgs/by-name/pe/perl/perl-modules/Data-Clone-fix-apostrophe-package-separator.patch deleted file mode 100644 index 4d2bef1..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/Data-Clone-fix-apostrophe-package-separator.patch +++ /dev/null @@ -1,26 +0,0 @@ -https://github.com/gfx/p5-Data-Clone/pull/3 - -From 43102a83d15aedc61e5904eb5a6dab33c3c02b40 Mon Sep 17 00:00:00 2001 -From: Yves Orton -Date: Thu, 9 Feb 2023 16:24:45 +0100 -Subject: [PATCH] t/07_stack.t - isn't is deprecated, use isnt instead - -As of 5.37.8 use of apostrophe for a package separator is deprecated, -and in 5.40 it will be removed entirely. Switch to isnt() instead -of isn't(). ---- - t/07_stack.t | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/t/07_stack.t b/t/07_stack.t -index 165e6a5..a750366 100644 ---- a/t/07_stack.t -+++ b/t/07_stack.t -@@ -17,6 +17,6 @@ use Data::Clone; - - my $before = bless [], Bar::; - my $after = clone($before); --isn't $after, $before, 'stack reallocation during callback'; -+isnt $after, $before, 'stack reallocation during callback'; - - done_testing; \ No newline at end of file diff --git a/pkgs/by-name/pe/perl/perl-modules/Data-UUID-CVE-2013-4184.patch b/pkgs/by-name/pe/perl/perl-modules/Data-UUID-CVE-2013-4184.patch deleted file mode 100644 index 731e2ee..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/Data-UUID-CVE-2013-4184.patch +++ /dev/null @@ -1,214 +0,0 @@ -Eliminate use of state/node files in temp directory, which are a security concern due to insecure writing of State/Node files in a temporary directory, with predictable filenames, with a possible symlink attack. - -Fixes CVE-2013-4184 - -https://github.com/bleargh45/Data-UUID/pull/40 by Graham TerMarsch @bleargh45 - - -diff --git a/Makefile.PL b/Makefile.PL -index 4ca26af..fb1a0f0 100644 ---- a/Makefile.PL -+++ b/Makefile.PL -@@ -89,30 +89,14 @@ WriteMakefile( - - CONFIGURE => sub { - my %opt; -- GetOptions(\%opt, 's|state-storage-directory:s', 'd|default-umask:s', -- 'help|?', 'man') or pod2usage(2); -+ GetOptions(\%opt, 'help|?', 'man') or pod2usage(2); - pod2usage(1) if $opt{help}; - pod2usage(-verbose => 2) if $opt{man}; - - print "Configured options (run perl Makefile.PL --help for how to change this):\n"; - -- my $d = File::Spec->tmpdir; -- $d = $opt{s} || $d; -- print "\tUUID state storage: $d\n"; -- $d =~ s/\\/\\\\/g if $^O eq 'MSWin32'; -- -- my $m = '0007'; -- unless ($^O eq 'MSWin32') { -- $m = $opt{d} || $m; -- print "\tdefault umask: $m\n"; -- } -- -- chmod(0666, sprintf("%s/%s", $d, ".UUID_NODEID")); -- chmod(0666, sprintf("%s/%s", $d, ".UUID_STATE")); - return { -- DEFINE => '-D_STDIR=' . shell_quote(c_quote($d)) -- . ' -D' . shell_quote("__$Config{osname}__") -- . ' -D_DEFAULT_UMASK=' . shell_quote($m) -+ DEFINE => ' -D' . shell_quote("__$Config{osname}__") - }; - } - ); -@@ -127,11 +111,9 @@ Makefile.PL - configure Makefile for Data::UUID - - perl Makefile.PL [options] [EU::MM options] - --perl Makefile.PL -s=/var/local/lib/data-uuid -d=0007 -+perl Makefile.PL - - Options: -- --state-storage-directory directory for storing library state information -- --default-umask umask for files in the state storage directory - --help brief help message - --man full documentation - -@@ -141,18 +123,6 @@ Options can be abbreviated, see L. - - =over - --=item --state-storage-directory -- --Optional. Takes a string that is interpreted as directory for storing library --state information. Default is c:/tmp/ on Windows if it already exists, or the --operating system's temporary directory (see tmpdir in L), --or /var/tmp as fallback. -- --=item --default-umask -- --Optional. Takes a string that is interpreted as umask for the files in the state --storage directory. Default is 0007. This is ignored on Windows. -- - =item --help - - Print a brief help message and exits. -@@ -165,10 +135,7 @@ Prints the manual page and exits. - - =head1 DESCRIPTION - --B writes the Makefile for the Data::UUID library. It is configured --with the options L and L. --Unless given, default values are used. In any case the values are printed for --confirmation. -+B writes the Makefile for the Data::UUID library. - - Additionally, the usual EU::MM options are processed, see - L. -diff --git a/README b/README -index 8aaa1c2..34d53a5 100644 ---- a/README -+++ b/README -@@ -23,15 +23,6 @@ To install this module type the following: - make test - make install - --NOTE: This module is designed to save its state information in a permanent --storage location. The installation script (i.e. Makefile.PL) prompts for --a directory name to use as a storage location for state file and defaults --this directory to "/var/tmp" if no directory name is provided. --The installation script will not accept names of directories that do not --exist, however, it will take the locations, which the installing user --has no write permissions to. In this case, the state information will not be --saved, which will maximize the chances of generating duplicate UUIDs. -- - COPYRIGHT AND LICENCE - - Copyright (C) 2001, Alexander Golomshtok -diff --git a/UUID.h b/UUID.h -index dc5ea28..11d6e13 100644 ---- a/UUID.h -+++ b/UUID.h -@@ -44,23 +44,6 @@ - #include - #endif - --#if !defined _STDIR --# define _STDIR "/var/tmp" --#endif --#if !defined _DEFAULT_UMASK --# define _DEFAULT_UMASK 0007 --#endif -- --#define UUID_STATE ".UUID_STATE" --#define UUID_NODEID ".UUID_NODEID" --#if defined __mingw32__ || (defined _WIN32 && !defined(__cygwin__)) || defined _MSC_VER --#define UUID_STATE_NV_STORE _STDIR"\\"UUID_STATE --#define UUID_NODEID_NV_STORE _STDIR"\\"UUID_NODEID --#else --#define UUID_STATE_NV_STORE _STDIR"/"UUID_STATE --#define UUID_NODEID_NV_STORE _STDIR"/"UUID_NODEID --#endif -- - #define UUIDS_PER_TICK 1024 - #ifdef _MSC_VER - #define I64(C) C##i64 -@@ -134,7 +117,6 @@ typedef struct _uuid_state_t { - typedef struct _uuid_context_t { - uuid_state_t state; - uuid_node_t nodeid; -- perl_uuid_time_t next_save; - } uuid_context_t; - - static void format_uuid_v1( -diff --git a/UUID.xs b/UUID.xs -index c3496a8..8191727 100644 ---- a/UUID.xs -+++ b/UUID.xs -@@ -356,29 +356,11 @@ PREINIT: - UV one = 1; - CODE: - RETVAL = (uuid_context_t *)PerlMemShared_malloc(sizeof(uuid_context_t)); -- if ((fd = fopen(UUID_STATE_NV_STORE, "rb"))) { -- fread(&(RETVAL->state), sizeof(uuid_state_t), 1, fd); -- fclose(fd); -- get_current_time(×tamp); -- RETVAL->next_save = timestamp; -- } -- if ((fd = fopen(UUID_NODEID_NV_STORE, "rb"))) { -- pid_t *hate = (pid_t *) &(RETVAL->nodeid); -- fread(&(RETVAL->nodeid), sizeof(uuid_node_t), 1, fd ); -- fclose(fd); -- -- *hate += getpid(); -- } else { -+ - get_random_info(seed); - seed[0] |= 0x80; - memcpy(&(RETVAL->nodeid), seed, sizeof(uuid_node_t)); -- mask = umask(_DEFAULT_UMASK); -- if ((fd = fopen(UUID_NODEID_NV_STORE, "wb"))) { -- fwrite(&(RETVAL->nodeid), sizeof(uuid_node_t), 1, fd); -- fclose(fd); -- }; -- umask(mask); -- } -+ - errno = 0; - #if DU_THREADSAFE - MUTEX_LOCK(&instances_mutex); -@@ -415,17 +397,6 @@ PPCODE: - self->state.node = self->nodeid; - self->state.ts = timestamp; - self->state.cs = clockseq; -- if (timestamp > self->next_save ) { -- mask = umask(_DEFAULT_UMASK); -- if((fd = fopen(UUID_STATE_NV_STORE, "wb"))) { -- LOCK(fd); -- fwrite(&(self->state), sizeof(uuid_state_t), 1, fd); -- UNLOCK(fd); -- fclose(fd); -- } -- umask(mask); -- self->next_save = timestamp + (10 * 10 * 1000 * 1000); -- } - ST(0) = make_ret(uuid, ix); - XSRETURN(1); - -@@ -585,14 +556,6 @@ CODE: - MUTEX_UNLOCK(&instances_mutex); - if (count == 0) { - #endif -- mask = umask(_DEFAULT_UMASK); -- if ((fd = fopen(UUID_STATE_NV_STORE, "wb"))) { -- LOCK(fd); -- fwrite(&(self->state), sizeof(uuid_state_t), 1, fd); -- UNLOCK(fd); -- fclose(fd); -- }; -- umask(mask); - PerlMemShared_free(self); - #if DU_THREADSAFE - } - diff --git a/pkgs/by-name/pe/perl/perl-modules/Device-OUI-1.04-hash.patch b/pkgs/by-name/pe/perl/perl-modules/Device-OUI-1.04-hash.patch deleted file mode 100644 index 6133ab6..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/Device-OUI-1.04-hash.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- Device-OUI-1.04/lib/Device/OUI.pm.orig 2009-03-07 02:23:17.000000000 +0000 -+++ Device-OUI-1.04/lib/Device/OUI.pm 2016-08-09 08:19:00.642799675 +0100 -@@ -54,7 +54,7 @@ - for my $x ( keys %hash ) { - if ( not defined $hash{ $x } ) { $hash{ $x } = '' } - } -- return $handle->{ $oui } = join( "\0", %hash ); -+ return $handle->{ $oui } = join( "\0", map {$_,$hash{$_}} sort keys %hash ); - } elsif ( my $x = $handle->{ $oui } ) { - return { split( "\0", $x ) }; - } diff --git a/pkgs/by-name/pe/perl/perl-modules/Exception-Base-remove-smartmatch-when-5.38.0.patch b/pkgs/by-name/pe/perl/perl-modules/Exception-Base-remove-smartmatch-when-5.38.0.patch deleted file mode 100644 index 00fd4b7..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/Exception-Base-remove-smartmatch-when-5.38.0.patch +++ /dev/null @@ -1,20 +0,0 @@ -smartmatch deprecated in perl-5.37.10 - -Patch by @pghmcfc from -https://github.com/dex4er/perl-Exception-Base/issues/5#issuecomment-1637075218 - -diff --git a/t/tlib/Exception/BaseTest.pm b/t/tlib/Exception/BaseTest.pm -index d590d12..e531ed7 100644 ---- a/t/tlib/Exception/BaseTest.pm -+++ b/t/tlib/Exception/BaseTest.pm -@@ -569,8 +569,9 @@ sub test_overload { - $self->assert_matches(qr/String at /, $obj); - - # smart matching for Perl 5.10 -- if ($] >= 5.010) { -+ # Deprecation warning added in 5.37.10 -+ if ($] >= 5.010 && $] < 5.037010) { - no if $] >= 5.018, warnings => 'experimental::smartmatch'; - eval q{ - $self->assert_num_equals(1, 'String' ~~ $obj); - diff --git a/pkgs/by-name/pe/perl/perl-modules/ExtUtils-Constant-fix-indirect-method-call-in-test.patch b/pkgs/by-name/pe/perl/perl-modules/ExtUtils-Constant-fix-indirect-method-call-in-test.patch deleted file mode 100644 index dbca37a..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/ExtUtils-Constant-fix-indirect-method-call-in-test.patch +++ /dev/null @@ -1,31 +0,0 @@ -https://rt.cpan.org/Public/Bug/Display.html?id=132995 - -From 94b5fc74c3d7ed835e83bac40632962af32f5b30 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Dagfinn=20Ilmari=20Manns=C3=A5ker?= -Date: Mon, 13 Jul 2020 22:08:45 +0100 -Subject: [PATCH] Fix indirect method call in ExtUtils::Constant test - -It puts both "use $];" and "bootstrap $package \$VERSION;" in the -generated test module, which is going to break if we ever remove -`indirect` from the current feature bundle. - -Fix by making the method call direct instead. ---- - t/Constant.t | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/t/Constant.t b/t/Constant.t -index d6b45668da..526a32c779 100644 ---- a/t/Constant.t -+++ b/t/Constant.t -@@ -435,7 +435,7 @@ EOT - print FH ");\n"; - # Print the AUTOLOAD subroutine ExtUtils::Constant generated for us - print FH autoload ($package, $]); -- print FH "bootstrap $package \$VERSION;\n1;\n__END__\n"; -+ print FH "$package->bootstrap(\$VERSION);\n1;\n__END__\n"; - close FH or die "close $pm: $!\n"; - - ################ test.pl --- -2.26.2 \ No newline at end of file diff --git a/pkgs/by-name/pe/perl/perl-modules/Google-ProtocolBuffers-multiline-comments.patch b/pkgs/by-name/pe/perl/perl-modules/Google-ProtocolBuffers-multiline-comments.patch deleted file mode 100644 index 6b634d0..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/Google-ProtocolBuffers-multiline-comments.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur Google-ProtocolBuffers-0.08-orig/lib/Google/ProtocolBuffers/Compiler.pm Google-ProtocolBuffers-0.08/lib/Google/ProtocolBuffers/Compiler.pm ---- Google-ProtocolBuffers-0.08-orig/lib/Google/ProtocolBuffers/Compiler.pm 2008-10-23 13:46:01.000000000 -0400 -+++ Google-ProtocolBuffers-0.08/lib/Google/ProtocolBuffers/Compiler.pm 2013-01-16 13:52:09.855063997 -0500 -@@ -16,7 +16,7 @@ - - my $grammar = <<'END_OF_GRAMMAR'; - --proto : -+proto : - ## list of top level declarations. - ## Skip empty declarations and ";". - (message | extend | enum | import | package | option | service | syntax | ";")(s) /\Z/ diff --git a/pkgs/by-name/pe/perl/perl-modules/Gtk2-fix-incompatible-pointer-conversion.patch b/pkgs/by-name/pe/perl/perl-modules/Gtk2-fix-incompatible-pointer-conversion.patch deleted file mode 100644 index 1ac68ee..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/Gtk2-fix-incompatible-pointer-conversion.patch +++ /dev/null @@ -1,86 +0,0 @@ -diff -ur a/gdk.typemap b/gdk.typemap ---- a/gdk.typemap 2017-05-21 15:02:54.000000000 -0400 -+++ b/gdk.typemap 2023-11-03 13:17:43.717890172 -0400 -@@ -23,6 +23,7 @@ - TYPEMAP - - # can be either a pointer or an integer, this handles both cases -+uintptr_t T_UV - GdkNativeWindow T_UV - - # GdkBitmap doesn't get its own type id, but needs to be treated separately. -diff -ur a/xs/GdkDnd.xs b/xs/GdkDnd.xs ---- a/xs/GdkDnd.xs 2017-05-21 15:02:54.000000000 -0400 -+++ b/xs/GdkDnd.xs 2023-11-03 13:23:22.478329089 -0400 -@@ -142,12 +142,12 @@ - void - gdk_drag_get_protocol_for_display (class, display, xid) - GdkDisplay *display -- guint32 xid -+ uintptr_t xid - PREINIT: - GdkDragProtocol protocol; -- guint32 ret; -+ uintptr_t ret; - PPCODE: -- ret = gdk_drag_get_protocol_for_display (display, xid, &protocol); -+ ret = (uintptr_t)gdk_drag_get_protocol_for_display (display, INT2PTR(GdkNativeWindow, xid), &protocol); - XPUSHs (sv_2mortal (newSVuv (ret))); - XPUSHs (sv_2mortal (ret - ? newSVGdkDragProtocol (protocol) -@@ -184,12 +184,12 @@ - =cut - void - gdk_drag_get_protocol (class, xid) -- guint32 xid -+ uintptr_t xid - PREINIT: - GdkDragProtocol protocol; -- guint32 ret; -+ uintptr_t ret; - PPCODE: -- ret = gdk_drag_get_protocol (xid, &protocol); -+ ret = (uintptr_t)gdk_drag_get_protocol (INT2PTR(GdkNativeWindow, xid), &protocol); - XPUSHs (sv_2mortal (newSVuv (ret))); - XPUSHs (sv_2mortal (newSVGdkDragProtocol (protocol))); - -diff -ur a/xs/GdkSelection.xs b/xs/GdkSelection.xs ---- a/xs/GdkSelection.xs 2017-05-21 15:02:54.000000000 -0400 -+++ b/xs/GdkSelection.xs 2023-11-03 13:26:58.976888906 -0400 -@@ -147,7 +147,7 @@ - ## void gdk_selection_send_notify (guint32 requestor, GdkAtom selection, GdkAtom target, GdkAtom property, guint32 time_) - void - gdk_selection_send_notify (class, requestor, selection, target, property, time_) -- guint32 requestor -+ GdkNativeWindow requestor - GdkAtom selection - GdkAtom target - GdkAtom property -@@ -161,7 +161,7 @@ - void - gdk_selection_send_notify_for_display (class, display, requestor, selection, target, property, time_) - GdkDisplay *display -- guint32 requestor -+ GdkNativeWindow requestor - GdkAtom selection - GdkAtom target - GdkAtom property -diff -ur a/xs/GtkWindow.xs b/xs/GtkWindow.xs ---- a/xs/GtkWindow.xs 2017-05-21 15:02:54.000000000 -0400 -+++ b/xs/GtkWindow.xs 2023-11-03 13:32:53.673168678 -0400 -@@ -581,13 +581,13 @@ - void - gtk_window_remove_embedded_xid (window, xid) - GtkWindow * window -- guint xid -+ GdkNativeWindow xid - - ## void gtk_window_add_embedded_xid (GtkWindow *window, guint xid) - void - gtk_window_add_embedded_xid (window, xid) - GtkWindow * window -- guint xid -+ GdkNativeWindow xid - - ##void gtk_window_reshow_with_initial_size (GtkWindow *window) - void diff --git a/pkgs/by-name/pe/perl/perl-modules/Hailo-fix-test-gld.patch b/pkgs/by-name/pe/perl/perl-modules/Hailo-fix-test-gld.patch deleted file mode 100644 index 24e45ac..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/Hailo-fix-test-gld.patch +++ /dev/null @@ -1,28 +0,0 @@ -commit ce474dbca0c95c06a85a3a329fcdbcc97b8ad317 -Author: Stig Palmquist -Date: 2023-11-21 13:27:46 +0100 - - Fix t/shell.t compat with Getopt-Long-Descriptive 0.106 - -diff --git a/t/command/shell.t b/t/command/shell.t -index ebd67d8..a09afd2 100644 ---- a/t/command/shell.t -+++ b/t/command/shell.t -@@ -28,7 +28,7 @@ run_ok( $app, [ '--no-help' ], "Don't help me" ); - cmp_ok($return, '==', 1, 'Exit status is correct'); - like($stderr, qr/^$/s, 'no stderr'); - like($stdout, qr{usage: hailo}, 'Got usage header'); -- like($stdout, qr{progress\s+Display progress}, 'Got --progress'); -+ like($stdout, qr{progress\s*(?:\(or -p\))?\s+Display progress}, 'Got --progress'); - like($stdout, qr{files are assumed to be UTF-8 encoded}, 'Got UTF-8 note'); - unlike($stdout, qr{examples:}, "no examples on normal output"); - } -@@ -75,7 +75,7 @@ run_ok( $app, [ '--no-help' ], "Don't help me" ); - like($stderr, qr/^$/s, 'no stderr'); - like($stdout, qr/Unknown option: blah-blah-blah/, 'Unknown option'); - like($stdout, qr{usage: hailo}, 'Got usage header'); -- like($stdout, qr{progress\s+Display progress}, 'Got --progress'); -+ like($stdout, qr{progress\s*(?:\(or -p\))?\s+Display progress}, 'Got --progress'); - like($stdout, qr{files are assumed to be UTF-8 encoded}, 'Got UTF-8 note'); - unlike($stdout, qr{examples:}, "no examples on error"); - diff --git a/pkgs/by-name/pe/perl/perl-modules/IO-Tty-fix-makefile.patch b/pkgs/by-name/pe/perl/perl-modules/IO-Tty-fix-makefile.patch deleted file mode 100644 index 65c6d23..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/IO-Tty-fix-makefile.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/Makefile.PL b/Makefile.PL -index eaf47e0..32766d7 100644 ---- a/Makefile.PL -+++ b/Makefile.PL -@@ -146,7 +146,7 @@ extern "C" - /* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ - char $f (); --char (*f) (); -+char f; - - #ifdef F77_DUMMY_MAIN - # ifdef __cplusplus diff --git a/pkgs/by-name/pe/perl/perl-modules/ImageExifTool/default.nix b/pkgs/by-name/pe/perl/perl-modules/ImageExifTool/default.nix deleted file mode 100644 index 5ca983f..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/ImageExifTool/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ lib -, stdenv -, buildPerlPackage -, exiftool -, fetchurl -, gitUpdater -, shortenPerlShebang -, testers -}: - -buildPerlPackage rec { - pname = "Image-ExifTool"; - version = "12.82"; - - src = fetchurl { - url = "https://exiftool.org/Image-ExifTool-${version}.tar.gz"; - hash = "sha256-1MfWz0AR+SaM2Ar7gAfLs38OJhOnP4cRekpe1uSjDD4="; - }; - - nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang; - postInstall = lib.optionalString stdenv.isDarwin '' - shortenPerlShebang $out/bin/exiftool - ''; - - passthru = { - tests.version = testers.testVersion { - inherit version; - command = "${lib.getExe exiftool} -ver"; - package = exiftool; - }; - updateScript = gitUpdater { - url = "https://github.com/exiftool/exiftool.git"; - }; - }; - - meta = { - description = "A tool to read, write and edit EXIF meta information"; - longDescription = '' - ExifTool is a platform-independent Perl library plus a command-line - application for reading, writing and editing meta information in a wide - variety of files. ExifTool supports many different metadata formats - including EXIF, GPS, IPTC, XMP, JFIF, GeoTIFF, ICC Profile, Photoshop - IRB, FlashPix, AFCP and ID3, as well as the maker notes of many digital - cameras by Canon, Casio, DJI, FLIR, FujiFilm, GE, GoPro, HP, - JVC/Victor, Kodak, Leaf, Minolta/Konica-Minolta, Motorola, Nikon, - Nintendo, Olympus/Epson, Panasonic/Leica, Pentax/Asahi, Phase One, - Reconyx, Ricoh, Samsung, Sanyo, Sigma/Foveon and Sony. - ''; - homepage = "https://exiftool.org/"; - changelog = "https://exiftool.org/history.html"; - 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 deleted file mode 100644 index 067a08f..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/MNI/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ fetchFromGitHub, buildPerlPackage, lib }: - -buildPerlPackage { - pname = "MNI-Perllib"; - version = "2012-04-13"; - - src = fetchFromGitHub { - 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? - - meta = { - description = "MNI MINC perllib (not used much anymore)"; - homepage = "https://github.com/BIC-MNI/mni-perllib"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - maintainers = with lib.maintainers; [ bcdarwin ]; - }; -} diff --git a/pkgs/by-name/pe/perl/perl-modules/MNI/no-stdin.patch b/pkgs/by-name/pe/perl/perl-modules/MNI/no-stdin.patch deleted file mode 100644 index 1e9e791..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/MNI/no-stdin.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/Makefile.PL b/Makefile.PL -index 9f2039a..12d699c 100644 ---- a/Makefile.PL -+++ b/Makefile.PL -@@ -213,7 +213,7 @@ TEXT - } # &MY::postamble - - --query_subs; -+#query_subs; - - my $f; - WriteMakefile diff --git a/pkgs/by-name/pe/perl/perl-modules/MouseX-Getopt-gld-tests.patch b/pkgs/by-name/pe/perl/perl-modules/MouseX-Getopt-gld-tests.patch deleted file mode 100644 index 6ca6e83..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/MouseX-Getopt-gld-tests.patch +++ /dev/null @@ -1,143 +0,0 @@ -From c1d1eed00099af8d858536b659864b7ccea41974 Mon Sep 17 00:00:00 2001 -From: Paul Howarth -Date: Sat, 13 Mar 2021 17:46:57 +0000 -Subject: [PATCH 1/2] Update for Getopt-Long-Descriptive 0.106 - -GLD is now outputting text with wrapping depending on the terminal -width. This update is enough to get the tests to pass when running -within "expect", which provides a PTY. It's almost certainly not -enough for general use. ---- - t/104_override_usage.t | 8 ++++++++ - t/107_no_auto_help.t | 2 +- - t/109_help_flag.t | 2 +- - t/110_sort_usage_by_attr_order.t | 12 ++++++++++++ - 4 files changed, 22 insertions(+), 2 deletions(-) - -diff --git a/t/104_override_usage.t b/t/104_override_usage.t -index bc45029..6641540 100644 ---- a/t/104_override_usage.t -+++ b/t/104_override_usage.t -@@ -61,9 +61,17 @@ use Test::Exception; - \t--foo INT A foo - } - : -+ $Getopt::Long::Descriptive::VERSION < 0.106 ? - qq{usage: 104_override_usage.t [-?] [long options...] - \t-? --[no-]usage --[no-]help Prints this usage information. - \t--foo INT A foo -+} -+ : -+ qq{usage: 104_override_usage.t [-?] [long options...] -+\t--[no-]help (or -?) Prints -+\t this usage information. -+\t aka --usage -+\t--foo INT A foo - } - - ]; -diff --git a/t/107_no_auto_help.t b/t/107_no_auto_help.t -index 27f87f5..103df43 100644 ---- a/t/107_no_auto_help.t -+++ b/t/107_no_auto_help.t -@@ -60,7 +60,7 @@ END { - warning_like { - throws_ok { Class->new_with_options } - #usage: 107_no_auto_help.t [-?] [long options...] -- qr/^usage: [\d\w]+\Q.t [-?] [long options...]\E.\s+\Q-? --\E(\[no-\])?usage --(\[no-\])?\Qhelp\E\s+\QPrints this usage information.\E.\s+--configfile/ms, -+ qr/^usage: [\d\w]+\Q.t [-?] [long options...]\E.\s+(\Q-? --\E(\[no-\])?usage )?--(\[no-\])?\Qhelp\E(\Q (or -?)\E)?\s+\QPrints this usage information.\E.(\s+\Qaka --usage\E.)?\s+--configfile/ms, - 'usage information looks good'; - } - qr/^Specified configfile \'this_value_unimportant\' does not exist, is empty, or is not readable$/, -diff --git a/t/109_help_flag.t b/t/109_help_flag.t -index 8c658e2..58dbca6 100644 ---- a/t/109_help_flag.t -+++ b/t/109_help_flag.t -@@ -40,7 +40,7 @@ foreach my $args ( ['--help'], ['--usage'], ['--?'], ['-?'] ) - local @ARGV = @$args; - - throws_ok { MyClass->new_with_options() } -- qr/^usage: (?:[\d\w]+)\Q.t [-?] [long options...]\E.^\t\Q-? --\E(\[no-\])?usage --(\[no-\])?help\s+\QPrints this usage information.\E$/ms, -+ qr/^usage: (?:[\d\w]+)\Q.t [-?] [long options...]\E.^\s+(\Q-? --\E(\[no-\])?usage )?--(\[no-\])?help(\Q (or -?)\E)?\s+Prints ?(.\s+)?\Qthis usage information.\E.(\s+\Qaka --usage\E.)?$/ms, - 'Help request detected; usage information properly printed'; - } - -diff --git a/t/110_sort_usage_by_attr_order.t b/t/110_sort_usage_by_attr_order.t -index e7dd177..7ec0c99 100644 ---- a/t/110_sort_usage_by_attr_order.t -+++ b/t/110_sort_usage_by_attr_order.t -@@ -64,6 +64,18 @@ usage: 110_sort_usage_by_attr_order.t [-?] [long options...] - --baz STR Documentation for "baz" - USAGE - } -+if ( $Getopt::Long::Descriptive::VERSION >= 0.106 ) -+{ -+$expected = <<'USAGE'; -+usage: 110_sort_usage_by_attr_order.t [-?] [long options...] -+ --[no-]help (or -?) Prints -+ this usage information. -+ aka --usage -+ --foo STR Documentation for "foo" -+ --bar STR Documentation for "bar" -+ --baz STR Documentation for "baz" -+USAGE -+} - $expected =~ s/^[ ]{4}/\t/xmsg; - is($obj->usage->text, $expected, 'Usage text has nicely sorted options'); - - -From 45ae6aaabc5413e985860fbfcc8da3bdc929a054 Mon Sep 17 00:00:00 2001 -From: Paul Howarth -Date: Mon, 15 Mar 2021 10:43:14 +0000 -Subject: [PATCH 2/2] Update for Getopt-Long-Descriptive 0.107 - -GLD's use of Term::ReadKey has been reverted, so this update should now -work reliably. Use with GLD 0.106 is not supported. ---- - t/104_override_usage.t | 6 +++--- - t/110_sort_usage_by_attr_order.t | 6 +++--- - 2 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/t/104_override_usage.t b/t/104_override_usage.t -index 6641540..f7c6a31 100644 ---- a/t/104_override_usage.t -+++ b/t/104_override_usage.t -@@ -61,15 +61,15 @@ use Test::Exception; - \t--foo INT A foo - } - : -- $Getopt::Long::Descriptive::VERSION < 0.106 ? -+ # Note: Getopt::Long::Descriptive 0.106 not supported -+ $Getopt::Long::Descriptive::VERSION < 0.107 ? - qq{usage: 104_override_usage.t [-?] [long options...] - \t-? --[no-]usage --[no-]help Prints this usage information. - \t--foo INT A foo - } - : - qq{usage: 104_override_usage.t [-?] [long options...] --\t--[no-]help (or -?) Prints --\t this usage information. -+\t--[no-]help (or -?) Prints this usage information. - \t aka --usage - \t--foo INT A foo - } -diff --git a/t/110_sort_usage_by_attr_order.t b/t/110_sort_usage_by_attr_order.t -index 7ec0c99..16cdaa1 100644 ---- a/t/110_sort_usage_by_attr_order.t -+++ b/t/110_sort_usage_by_attr_order.t -@@ -64,12 +64,12 @@ usage: 110_sort_usage_by_attr_order.t [-?] [long options...] - --baz STR Documentation for "baz" - USAGE - } --if ( $Getopt::Long::Descriptive::VERSION >= 0.106 ) -+# Note: Getopt::Long::Descriptive 0.106 not supported -+if ( $Getopt::Long::Descriptive::VERSION >= 0.107 ) - { - $expected = <<'USAGE'; - usage: 110_sort_usage_by_attr_order.t [-?] [long options...] -- --[no-]help (or -?) Prints -- this usage information. -+ --[no-]help (or -?) Prints this usage information. - aka --usage - --foo STR Documentation for "foo" - --bar STR Documentation for "bar" 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 deleted file mode 100644 index 6c3d01a..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/Mozilla-LDAP/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ lib, fetchurl, openldap, buildPerlPackage }: - -buildPerlPackage rec { - pname = "Mozilla-Ldap"; - version = "1.5.3"; - USE_OPENLDAP = 1; - LDAPSDKDIR = openldap.dev; - LDAPSDKLIBDIR = "${openldap.out}/lib"; - src = fetchurl { - url = "https://ftp.mozilla.org/pub/directory/perldap/releases/${version}/src/perl-mozldap-${version}.tar.gz"; - sha256 = "0s0albdw0zvg3w37s7is7gddr4mqwicjxxsy400n1p96l7ipnw4x"; - }; - meta = { - description = "Mozilla's ldap client library"; - homepage = "https://metacpan.org/release/perldap"; - license = with lib.licenses; [ mpl20 lgpl21Plus gpl2Plus ]; - }; -} diff --git a/pkgs/by-name/pe/perl/perl-modules/Paranoid-blessed-path.patch b/pkgs/by-name/pe/perl/perl-modules/Paranoid-blessed-path.patch deleted file mode 100644 index 99bd697..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/Paranoid-blessed-path.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff '--color=auto' -ur Paranoid-2.10/lib/Paranoid.pm Paranoid-2.10-patched/lib/Paranoid.pm ---- Paranoid-2.10/lib/Paranoid.pm 2022-03-08 10:01:04.000000000 +0100 -+++ Paranoid-2.10-patched/lib/Paranoid.pm 2023-10-20 16:57:54.025754755 +0200 -@@ -47,7 +47,7 @@ - %EXPORT_TAGS = ( all => [@EXPORT_OK], ); - - use constant PTRUE_ZERO => '0 but true'; --use constant DEFAULT_PATH => '/bin:/sbin:/usr/bin:/usr/sbin'; -+use constant DEFAULT_PATH => '__BLESSED_PATH__'; - - ##################################################################### - # -diff '--color=auto' -ur Paranoid-2.10/t/01_init_core.t Paranoid-2.10-patched/t/01_init_core.t ---- Paranoid-2.10/t/01_init_core.t 2022-01-24 10:30:20.000000000 +0100 -+++ Paranoid-2.10-patched/t/01_init_core.t 2023-10-20 16:58:16.856288407 +0200 -@@ -35,5 +35,4 @@ - ok( psecureEnv('/bin:/sbin'), 'psecureEnv 1' ); - is( $ENV{PATH}, '/bin:/sbin', 'Validated PATH' ); - ok( psecureEnv(), 'psecureEnv 2' ); --is( $ENV{PATH}, '/bin:/sbin:/usr/bin:/usr/sbin', 'Validated PATH' ); -- -+is( $ENV{PATH}, '__BLESSED_PATH__', 'Validated PATH' ); 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 deleted file mode 100644 index 6a11573..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/Percona-Toolkit/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib, fetchFromGitHub, buildPerlPackage, shortenPerlShebang -, DBDmysql, DBI, IOSocketSSL, TermReadKey -}: - -buildPerlPackage rec { - pname = "Percona-Toolkit"; - version = "3.2.0"; - - src = fetchFromGitHub { - owner = "percona"; - repo = "percona-toolkit"; - rev = "v${version}"; - sha256 = "084ldpskvlfm32lfss5qqzm5y9b8hf029aa4i5pcnzgb53xaxkqx"; - }; - - outputs = [ "out" ]; - - nativeBuildInputs = [ shortenPerlShebang ]; - - buildInputs = [ DBDmysql DBI IOSocketSSL TermReadKey ]; - - postInstall = '' - shortenPerlShebang $(grep -l "/bin/env perl" $out/bin/*) - ''; - - meta = { - description = "Collection of advanced command-line tools to perform a variety of MySQL and system tasks"; - homepage = "https://www.percona.com/software/database-tools/percona-toolkit"; - license = with lib.licenses; [ gpl2Only ]; - maintainers = with lib.maintainers; [ izorkin ]; - }; -} diff --git a/pkgs/by-name/pe/perl/perl-modules/Plack-test-replace-DES-hash-with-bcrypt.patch b/pkgs/by-name/pe/perl/perl-modules/Plack-test-replace-DES-hash-with-bcrypt.patch deleted file mode 100644 index 4f9918a..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/Plack-test-replace-DES-hash-with-bcrypt.patch +++ /dev/null @@ -1,12 +0,0 @@ -Replaces the legacy DES crypt hash used in tests with a stronger -bcrypt function, as crypt() in pkgs.perl no longer supports DES - -# htpasswd -nbB admin s3cr3t - -diff --git a/t/Plack-Middleware/htpasswd b/t/Plack-Middleware/htpasswd -index b597da8..f80461d 100644 ---- a/t/Plack-Middleware/htpasswd -+++ b/t/Plack-Middleware/htpasswd -@@ -1,1 +1,1 @@ --admin:6iSeSVcVHgNQw -+admin:$2y$05$qO4lTUQMcE5mU6KI0t7j9uCjcTkpf6sAp0cv6oZiemD0MI8keeKPa diff --git a/pkgs/by-name/pe/perl/perl-modules/Po4a/default.nix b/pkgs/by-name/pe/perl/perl-modules/Po4a/default.nix deleted file mode 100644 index 3856920..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/Po4a/default.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ 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 { - pname = "po4a"; - version = "0.62"; - src = fetchurl { - url = "https://github.com/mquinson/po4a/releases/download/v${version}/po4a-${version}.tar.gz"; - sha256 = "0eb510a66f59de68cf7a205342036cc9fc08b39334b91f1456421a5f3359e68b"; - }; - patches = [ - (fetchpatch { - # make devdoc output reproducible - # https://github.com/mquinson/po4a/pull/387 - url = "https://github.com/mquinson/po4a/commit/df7433b58f6570558d44b6aac885c2a8f7862e51.patch"; - sha256 = "9MVkYiItR2P3PBCUc4OhEOUHQuLqTWUYtYlZ3L8miC8="; - }) - ]; - - strictDeps = true; - nativeBuildInputs = - # the tests for the tex-format use kpsewhich -- texlive's file finding utility. - # 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''; - 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 ]; - # TODO: TermReadKey was temporarily removed from propagatedBuildInputs to unfreeze the build - buildInputs = [ bash ]; - LC_ALL = "en_US.UTF-8"; - SGML_CATALOG_FILES = "${docbook_xml_dtd_412}/xml/dtd/docbook/catalog.xml"; - preConfigure = '' - touch Makefile.PL - export PERL_MB_OPT="--install_base=$out --prefix=$out" - ''; - buildPhase = "perl Build.PL --install_base=$out --install_path=\"lib=$out/${perl.libPrefix}\"; ./Build build"; - - # Disabling tests on musl - # Void linux package have investigated the failure and tracked it down to differences in gettext behavior. They decided to disable tests. - # https://github.com/void-linux/void-packages/pull/34029#issuecomment-973267880 - # Alpine packagers have not worried about running the tests until now: - # https://git.alpinelinux.org/aports/tree/main/po4a/APKBUILD#n11 - # - # Disabling tests on Darwin until https://github.com/NixOS/nixpkgs/issues/236560 is resolved. - doCheck = (!stdenv.hostPlatform.isMusl) && (!stdenv.hostPlatform.isDarwin); - - checkPhase = '' - export SGML_CATALOG_FILES=${docbook_sgml_dtd_41}/sgml/dtd/docbook-4.1/docbook.cat - ./Build test - ''; - installPhase = '' - ./Build install - for f in $out/bin/*; do - substituteInPlace $f --replace "#! /usr/bin/env perl" "#!${perl}/bin/perl" - done - ''; - meta = { - description = "Tools for helping translation of documentation"; - homepage = "https://po4a.org"; - license = with lib.licenses; [ gpl2Only ]; - }; -} diff --git a/pkgs/by-name/pe/perl/perl-modules/Socket6-sv_undef.patch b/pkgs/by-name/pe/perl/perl-modules/Socket6-sv_undef.patch deleted file mode 100644 index 3ed4b61..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/Socket6-sv_undef.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/Socket6.xs b/Socket6.xs -index 05c791c..058e9d9 100644 ---- a/Socket6.xs -+++ b/Socket6.xs -@@ -105,10 +105,6 @@ const struct in6_addr in6addr_loopback = IN6ADDR_LOOPBACK_INIT; - #define HAVE_INET_PTON 1 - #endif - --#ifndef HAVE_PL_SV_UNDEF --#define PL_sv_undef sv_undef --#endif -- - static int - not_here(char *s) - { --- -2.16.3 - diff --git a/pkgs/by-name/pe/perl/perl-modules/TextBibTeX-use-lib.patch b/pkgs/by-name/pe/perl/perl-modules/TextBibTeX-use-lib.patch deleted file mode 100644 index e5490ad..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/TextBibTeX-use-lib.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/Build.PL -+++ b/Build.PL -@@ -88,7 +88,7 @@ if ( $^O =~ /mswin32/i ) { - } - } - else { -- if ( $Config{archname} =~ /^x86_64|^ppc64|^s390x|^aarch64|^riscv64/ ) { -+ if ( 0 ) { - $libdir =~ s/\bbin\b/lib64/; - if ( !-d $libdir ) { - my $test = $libdir; diff --git a/pkgs/by-name/pe/perl/perl-modules/Tirex/default.nix b/pkgs/by-name/pe/perl/perl-modules/Tirex/default.nix deleted file mode 100644 index 655610e..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/Tirex/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ lib -, buildPerlPackage -, fetchFromGitHub -, fetchpatch -, GD -, IPCShareLite -, JSON -, LWP -, mapnik -, nix-update-script -}: - -buildPerlPackage rec { - pname = "Tirex"; - version = "0.7.1"; - - src = fetchFromGitHub { - owner = "openstreetmap"; - repo = "tirex"; - rev = "refs/tags/v${version}"; - hash = "sha256-p2P19tifA/AvJatTzboyhtt7W1SwKJQzqpU4oDalfhU="; - }; - - patches = [ - # https://github.com/openstreetmap/tirex/pull/54 - (fetchpatch { - url = "https://github.com/openstreetmap/tirex/commit/da0c5db926bc0939c53dd902a969b689ccf9edde.patch"; - hash = "sha256-bnL1ZGy8ZNSZuCRbZn59qRVLg3TL0GjFYnhRKroeVO0="; - }) - ]; - - buildInputs = [ - GD - IPCShareLite - JSON - LWP - mapnik - ] ++ mapnik.buildInputs; - - installPhase = '' - install -m 755 -d $out/usr/libexec - make install DESTDIR=$out INSTALLOPTS="" - mv $out/$out/lib $out/$out/share $out - rmdir $out/$out $out/nix/store $out/nix - ''; - - passthru.updateScript = nix-update-script { }; - - meta = { - description = "Tools for running a map tile server"; - homepage = "https://wiki.openstreetmap.org/wiki/Tirex"; - maintainers = with lib.maintainers; [ jglukasik ]; - license = with lib.licenses; [ gpl2Only ]; - }; -} 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 deleted file mode 100644 index 6ab6233..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/WWW-YoutubeViewer/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ 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; - sha256 = "16p0sa91h0zpqdpqmy348g6b9qj5f6qrbzrljn157vk00cg6mx18"; - }; - - nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang; - propagatedBuildInputs = [ - LWP - LWPProtocolHttps - DataDump - JSON - ]; - postInstall = lib.optionalString stdenv.isDarwin '' - shortenPerlShebang $out/bin/youtube-viewer - ''; - - meta = with lib; { - description = "A lightweight application for searching and streaming videos from YouTube"; - homepage = "https://github.com/trizen/youtube-viewer"; - license = with licenses; [ artistic2 ]; - maintainers = with maintainers; [ woffs ]; - mainProgram = "youtube-viewer"; - }; -} diff --git a/pkgs/by-name/pe/perl/perl-modules/XML-LibXML-clang16.patch b/pkgs/by-name/pe/perl/perl-modules/XML-LibXML-clang16.patch deleted file mode 100644 index 9a19e32..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/XML-LibXML-clang16.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 8751785951fbde48ffa16a476da3e4adb2bbcde5 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 16 Jan 2023 18:50:10 -0800 -Subject: [PATCH] libxml-mm: Fix function prototypes in function pointers - -This is now detected with latest clang16+ - -Fixes -error: incompatible function pointer types passing 'void (void *, void *, xmlChar *)' (aka 'void (void *, void *, unsigned char *)') to parameter of type 'xmlHashScanner' (aka 'void (*)(void *, void *, const unsigned char *)') [-Wincompatible-function-pointer-types] - xmlHashScan(r, PmmRegistryDumpHashScanner, NULL); - -Signed-off-by: Khem Raj ---- - perl-libxml-mm.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/perl-libxml-mm.c b/perl-libxml-mm.c -index a3e78a2..ec2b5ea 100644 ---- a/perl-libxml-mm.c -+++ b/perl-libxml-mm.c -@@ -121,7 +121,7 @@ PmmFreeHashTable(xmlHashTablePtr table) - extern SV* PROXY_NODE_REGISTRY_MUTEX; - - /* Utility method used by PmmDumpRegistry */ --void PmmRegistryDumpHashScanner(void * payload, void * data, xmlChar * name) -+void PmmRegistryDumpHashScanner(void * payload, void * data, const xmlChar * name) - { - LocalProxyNodePtr lp = (LocalProxyNodePtr) payload; - ProxyNodePtr node = (ProxyNodePtr) lp->proxy; -@@ -215,7 +215,7 @@ PmmRegisterProxyNode(ProxyNodePtr proxy) - /* PP: originally this was static inline void, but on AIX the compiler - did not chew it, so I'm removing the inline */ - static void --PmmRegistryHashDeallocator(void *payload, xmlChar *name) -+PmmRegistryHashDeallocator(void *payload, const xmlChar *name) - { - Safefree((LocalProxyNodePtr) payload); - } -@@ -279,7 +279,7 @@ PmmRegistryREFCNT_dec(ProxyNodePtr proxy) - * internal, used by PmmCloneProxyNodes - */ - void * --PmmRegistryHashCopier(void *payload, xmlChar *name) -+PmmRegistryHashCopier(void *payload, const xmlChar *name) - { - ProxyNodePtr proxy = ((LocalProxyNodePtr) payload)->proxy; - LocalProxyNodePtr lp; diff --git a/pkgs/by-name/pe/perl/perl-modules/alien-sdl.patch b/pkgs/by-name/pe/perl/perl-modules/alien-sdl.patch deleted file mode 100644 index b00f7dc..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/alien-sdl.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git a/inc/My/Builder/Unix.pm b/inc/My/Builder/Unix.pm -index 15291d5..5c5ab24 100644 ---- a/inc/My/Builder/Unix.pm -+++ b/inc/My/Builder/Unix.pm -@@ -48,7 +48,7 @@ sub get_additional_libs { - - sub can_build_binaries_from_sources { - my $self = shift; -- return 1; # yes we can -+ return 0; # no we can't - } - - sub build_binaries { -diff --git a/t/004_get_header_version.t b/t/004_get_header_version.t -index d4146ff..27f53ea 100644 ---- a/t/004_get_header_version.t -+++ b/t/004_get_header_version.t -@@ -1,8 +1,11 @@ - # t/004_config.t - --use Test::More tests => 1; -+use Test::More; - use Alien::SDL; - -+Test::More::plan( skip_all => 'NixOS doesn\'t have SDL headers in this location' ); -+ -+ - like( Alien::SDL->get_header_version('SDL_version.h'), qr/([0-9]+\.)*[0-9]+/, "Testing SDL_version.h" ); - #like( Alien::SDL->get_header_version('SDL_net.h'), qr/([0-9]+\.)*[0-9]+/, "Testing SDL_net.h" ); - #like( Alien::SDL->get_header_version('SDL_image.h'), qr/([0-9]+\.)*[0-9]+/, "Testing SDL_image.h" ); diff --git a/pkgs/by-name/pe/perl/perl-modules/boost-geometry-utils-fix-oom.patch b/pkgs/by-name/pe/perl/perl-modules/boost-geometry-utils-fix-oom.patch deleted file mode 100644 index cbcce38..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/boost-geometry-utils-fix-oom.patch +++ /dev/null @@ -1,34 +0,0 @@ -From a46f0e41056b48a56c572fe8884d4b5104a8343e Mon Sep 17 00:00:00 2001 -From: Niko Tyni -Date: Sun, 29 Jun 2014 21:51:15 +0300 -Subject: [PATCH] multi_linestring2perl: only extend the array if needed - -When the size is 0, we end up extending the stack with -a negative value. As of Perl 5.19.4, more precisely - http://perl5.git.perl.org/perl.git/commit/fc16c3924bd6aa054f21ad5445fecf9b7f39dc36 -this ends up allocating memory for 4G-1 elements. - -See Dave Mitchell's comments on perl5-porters: - Message-ID: <20140522115758.GX15438@iabyn.com> - http://marc.info/?l=perl5-porters&m=140075990913228&w=2 ---- - src/mline2av.h | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/mline2av.h b/src/mline2av.h -index e4b3fc2..d7bacee 100644 ---- a/src/mline2av.h -+++ b/src/mline2av.h -@@ -9,7 +9,8 @@ multi_linestring2perl(pTHX_ const multi_linestring& mls) - { - AV* av = newAV(); - const unsigned int size = mls.size(); -- av_extend(av, size-1); -+ if (size > 0) -+ av_extend(av, size-1); - - for (int i = 0; i < size; i++) { - AV* lineav = newAV(); --- -2.0.0 - diff --git a/pkgs/by-name/pe/perl/perl-modules/catalyst-plugin-static-simple-etag.patch b/pkgs/by-name/pe/perl/perl-modules/catalyst-plugin-static-simple-etag.patch deleted file mode 100644 index 06207a8..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/catalyst-plugin-static-simple-etag.patch +++ /dev/null @@ -1,37 +0,0 @@ -Send an ETag header, and honour the If-None-Match request header - -diff -ru -x '*~' Catalyst-Plugin-Static-Simple-0.30-orig/lib/Catalyst/Plugin/Static/Simple.pm Catalyst-Plugin-Static-Simple-0.30/lib/Catalyst/Plugin/Static/Simple.pm ---- Catalyst-Plugin-Static-Simple-0.30-orig/lib/Catalyst/Plugin/Static/Simple.pm 2012-05-04 18:49:30.000000000 +0200 -+++ Catalyst-Plugin-Static-Simple-0.30/lib/Catalyst/Plugin/Static/Simple.pm 2013-02-25 22:57:18.667150181 +0100 -@@ -187,16 +187,27 @@ - my $type = $c->_ext_to_type( $full_path ); - my $stat = stat $full_path; - -- $c->res->headers->content_type( $type ); -- $c->res->headers->content_length( $stat->size ); -- $c->res->headers->last_modified( $stat->mtime ); - # Tell Firefox & friends its OK to cache, even over SSL: -- $c->res->headers->header('Cache-control' => 'public'); -+ #$c->res->headers->header('Cache-control' => 'public'); -+ -+ $c->res->headers->last_modified( $stat->mtime ); - # Optionally, set a fixed expiry time: - if ($config->{expires}) { - $c->res->headers->expires(time() + $config->{expires}); - } - -+ if ($config->{send_etag}) { -+ my $etag = '"' . $stat->mtime . '-' . $stat->ino . '-'. $stat->size . '"'; -+ $c->res->headers->header('ETag' => $etag); -+ if (($c->req->header('If-None-Match') // "") eq $etag) { -+ $c->res->status(304); -+ return 1; -+ } -+ } -+ -+ $c->res->headers->content_type( $type ); -+ $c->res->headers->content_length( $stat->size ); -+ - my $fh = IO::File->new( $full_path, 'r' ); - if ( defined $fh ) { - binmode $fh; diff --git a/pkgs/by-name/pe/perl/perl-modules/crypt-openpgp-remove-impure-keygen-tests.patch b/pkgs/by-name/pe/perl/perl-modules/crypt-openpgp-remove-impure-keygen-tests.patch deleted file mode 100644 index 70dc082..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/crypt-openpgp-remove-impure-keygen-tests.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git a/t/13-keygen.t b/t/13-keygen.t -index f430ffb..2050624 100644 ---- a/t/13-keygen.t -+++ b/t/13-keygen.t -@@ -1,5 +1,5 @@ - use strict; --use Test::More tests => 29; -+use Test::More tests => 25; - - use Crypt::OpenPGP; - use Crypt::OpenPGP::Message; -@@ -26,9 +26,6 @@ for my $type ( qw( RSA DSA ) ) { - isa_ok $pub->key, 'Crypt::OpenPGP::Certificate'; - isa_ok $sec->key, 'Crypt::OpenPGP::Certificate'; - -- is $pub->key->key_id, $sec->key->key_id, -- 'public key_id matches secret key_id'; -- - is $pub->primary_uid, $id, 'primary_uid matches'; - - is $pub->key->key->size, $bits, 'keysize (in bits) matches for pubkey'; -@@ -47,8 +44,6 @@ for my $type ( qw( RSA DSA ) ) { - isa_ok $pieces[1], 'Crypt::OpenPGP::UserID'; - isa_ok $pieces[2], 'Crypt::OpenPGP::Signature'; - -- is $pieces[0]->key_id, $sec->key->key_id, -- 'serialized public key_id matches secret key_id'; - } - - { diff --git a/pkgs/by-name/pe/perl/perl-modules/expression-generator/filtered-requirements.sh b/pkgs/by-name/pe/perl/perl-modules/expression-generator/filtered-requirements.sh deleted file mode 100755 index 2e3509d..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/expression-generator/filtered-requirements.sh +++ /dev/null @@ -1,18 +0,0 @@ -#! /bin/sh - -source lib-cache.sh; - -print_reqs() { - module_name="$1"; - - ./requirements.sh "$1"| while read; do - if let "$(./source-download-link.sh "${REPLY}" | wc -c)" && [ perl != "$REPLY" ]; then - echo "$REPLY"; - fi; - done; -} - -module_name="$1"; -module_basename="${module_name//::/-}"; - -cached_output print_reqs "$module_basename" "$module_name" "pure.deps"; diff --git a/pkgs/by-name/pe/perl/perl-modules/expression-generator/full-requirements.sh b/pkgs/by-name/pe/perl/perl-modules/expression-generator/full-requirements.sh deleted file mode 100755 index 91218f3..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/expression-generator/full-requirements.sh +++ /dev/null @@ -1,21 +0,0 @@ -#! /bin/sh - -source lib-cache.sh; - -print_requirements () { - module_name="$1"; - - ./requirements.sh "$module_name" | while read; do - echo "$REPLY"; - print_reqs_cache "$REPLY"; - done | sort | uniq -}; - -print_reqs_cache () { - module_name="$1"; - module_basename="${module_name//::/-}"; - - cached_output print_requirements "$module_basename" "$module_name" "full.deps"; -}; - -print_reqs_cache "$@"; diff --git a/pkgs/by-name/pe/perl/perl-modules/expression-generator/grab-url.sh b/pkgs/by-name/pe/perl/perl-modules/expression-generator/grab-url.sh deleted file mode 100755 index 8935cad..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/expression-generator/grab-url.sh +++ /dev/null @@ -1,19 +0,0 @@ -#! /bin/sh - -source lib-cache.sh - -get_file() { - url="$1"; - - if [ -n "$url" ]; then - curl "$1"; - else - echo -n; - fi; -} - -url="$1"; -name="$2"; -name=${name:-$(basename "$url")} - -cached_output get_file "${name%%.*}" "$url" "${name#*.}" diff --git a/pkgs/by-name/pe/perl/perl-modules/expression-generator/lib-cache.sh b/pkgs/by-name/pe/perl/perl-modules/expression-generator/lib-cache.sh deleted file mode 100644 index 6509514..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/expression-generator/lib-cache.sh +++ /dev/null @@ -1,18 +0,0 @@ - -# First argument: command to run -# Second argument: cache name -# Third argument: argument to command -# Fourth argument: cache type -cached_output () { - cmd="$1"; - basename="$2"; - arg="$3"; - ext="$4"; - - if ! [ -e "cache-${ext//./-}/${basename}.${ext}" ]; then - mkdir -p "cache-${ext//./-}"; - $cmd $arg > "cache-${ext//./-}/${basename}.${ext}"; - fi; - - cat "cache-${ext//./-}/${basename}.${ext}"; -} diff --git a/pkgs/by-name/pe/perl/perl-modules/expression-generator/make-clean-dir.sh b/pkgs/by-name/pe/perl/perl-modules/expression-generator/make-clean-dir.sh deleted file mode 100755 index 996cb92..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/expression-generator/make-clean-dir.sh +++ /dev/null @@ -1,5 +0,0 @@ -#! /bin/sh - -rm -rf test; -mkdir test; -for i in *.sh; do ln -s ../$i test; done; diff --git a/pkgs/by-name/pe/perl/perl-modules/expression-generator/requirements.sh b/pkgs/by-name/pe/perl/perl-modules/expression-generator/requirements.sh deleted file mode 100755 index 19b24c5..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/expression-generator/requirements.sh +++ /dev/null @@ -1,17 +0,0 @@ -#! /bin/sh - -source lib-cache.sh; - -module_name="$1"; -module_basename="${1//::/-}"; - -print_requirements () { - module_name="$1"; - - ./retrieve-meta-yaml.sh "$module_name" | - sed -re '1,/^requires:/d; /^[a-z]/,$d; s@^\s*@@; s@:\s.*@@'; - ./retrieve-meta-yaml.sh "$module_name" | - sed -re '1,/^build_requires:/d; /^[a-z]/,$d; s@^\s*@@; s@:\s.*@@'; -}; - -cached_output print_requirements "$module_basename" "$module_name" "direct.deps"; diff --git a/pkgs/by-name/pe/perl/perl-modules/expression-generator/retrieve-file-link.sh b/pkgs/by-name/pe/perl/perl-modules/expression-generator/retrieve-file-link.sh deleted file mode 100755 index c8ec5df..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/expression-generator/retrieve-file-link.sh +++ /dev/null @@ -1,14 +0,0 @@ -#! /bin/sh - -module_basename="$1"; -file_name="$2"; - -version_regexp="${module_basename}(-[0-9.a-z]+){0,1}"; -author_regexp="[A-Z0-9]+"; - -./retrieve-modulepage.sh "$module_basename" | - egrep "[<]a href=\"[a-z0-9/]*/(${author_regexp}/){0,1}${version_regexp}/${file_name}" | - sed -re "s@.*href=\"@@; s@\".*@@" | - sed -re 's@^/@http://search.cpan.org/@'; - -echo "$link_line"; diff --git a/pkgs/by-name/pe/perl/perl-modules/expression-generator/retrieve-meta-yaml.sh b/pkgs/by-name/pe/perl/perl-modules/expression-generator/retrieve-meta-yaml.sh deleted file mode 100755 index 3b162eb..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/expression-generator/retrieve-meta-yaml.sh +++ /dev/null @@ -1,16 +0,0 @@ -#! /bin/sh - -source lib-cache.sh; - -print_meta_yaml () { - module_name="$1"; - module_basename="${module_name//::/-}"; - - ./grab-url.sh "$(./retrieve-file-link.sh "$module_basename" "META.yml")" \ - "${module_basename}.meta.yml"; -}; - -module_name="$1"; -module_basename="${module_name//::/-}"; - -cached_output print_meta_yaml "$module_basename" "$module_name" meta.yaml; diff --git a/pkgs/by-name/pe/perl/perl-modules/expression-generator/retrieve-modulepage.sh b/pkgs/by-name/pe/perl/perl-modules/expression-generator/retrieve-modulepage.sh deleted file mode 100755 index 866dfa1..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/expression-generator/retrieve-modulepage.sh +++ /dev/null @@ -1,5 +0,0 @@ -#! /bin/sh - -module_basename="$1"; - -./grab-url.sh "http://search.cpan.org/dist/$module_basename/" "$module_basename".html; diff --git a/pkgs/by-name/pe/perl/perl-modules/expression-generator/source-download-link.sh b/pkgs/by-name/pe/perl/perl-modules/expression-generator/source-download-link.sh deleted file mode 100755 index 779d131..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/expression-generator/source-download-link.sh +++ /dev/null @@ -1,17 +0,0 @@ -#! /bin/sh - -source lib-cache.sh; - -module_name="$1"; -module_basename="${module_name//::/-}"; - -write_link() { - module_basename="$1"; - - ./retrieve-modulepage.sh "$module_basename" | - grep -A 2 "This Release" | - grep href | - sed -re 's/.*href="//; s/".*//; s@^/@http://search.cpan.org/@'; -} - -cached_output write_link "$module_basename" "$module_basename" src.link; diff --git a/pkgs/by-name/pe/perl/perl-modules/expression-generator/usage.txt b/pkgs/by-name/pe/perl/perl-modules/expression-generator/usage.txt deleted file mode 100644 index 1aa0737..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/expression-generator/usage.txt +++ /dev/null @@ -1,10 +0,0 @@ -/path/to/write-nix-expression.sh Group::Module::Submodule - -It will output Nix assignment formatted for placing into -all-packages.nix amongst all the perl packages, like perlAlgorithmDiff. -Actually it will grab distribution unit Group-Module-Submodule via -search.cpan.org, and make some effort to write correct dependencies. -If among requirements there are some that have empty META.yml, or if -any of requirements acannot be installed by just getting distribution -unit whose name can be guessed by replacing :: with -, manual editing -will be needed. diff --git a/pkgs/by-name/pe/perl/perl-modules/expression-generator/write-nix-expression.sh b/pkgs/by-name/pe/perl/perl-modules/expression-generator/write-nix-expression.sh deleted file mode 100755 index 9f5cdb9..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/expression-generator/write-nix-expression.sh +++ /dev/null @@ -1,34 +0,0 @@ -#! /bin/sh - -cd $(dirname $0); - -source lib-cache.sh; - -print_expression () { - module_name="$1"; - module_basename="${module_name//::/-}"; - module_compressedname="perl${module_name//::/}"; - sourcelink="$(./source-download-link.sh "${module_name}")"; - version_name="${sourcelink%.tar.*}"; - version_name="${version_name##*/}"; - dependencies="$(./filtered-requirements.sh "$module_name" | sed -e 's/^/perl/; s/:://g' | xargs)"; - source_hash=$(nix-prefetch-url "$sourcelink" 2>/dev/null); - - cat < /dev/null) - if test "$first" = "#!"; then - echo "patching $fn..." - sed -i "$fn" -e "s|^#\!\(.*\bperl\b.*\)$|#\!\1$perlFlags|" - fi - fi - done - - perl Makefile.PL PREFIX=$out INSTALLDIRS=site $makeMakerFlags PERL=$(type -P perl) FULLPERL=\"$fullperl/bin/perl\" -} - -if test -n "$perlPreHook"; then - eval "$perlPreHook" -fi - -genericBuild - -if test -n "$perlPostHook"; then - eval "$perlPostHook" -fi diff --git a/pkgs/by-name/pe/perl/perl-modules/generic/default.nix b/pkgs/by-name/pe/perl/perl-modules/generic/default.nix deleted file mode 100644 index e7afedf..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/generic/default.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ lib, stdenv, perl, toPerlModule }: - -{ 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 - -, doCheck ? true -, checkTarget ? "test" - -# 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 - -# 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 ? {} - -, ... -}@attrs: - -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; - }; - - package = stdenv.mkDerivation (attrs // { - name = "perl${perl.version}-${attrs.pname}-${attrs.version}"; - - builder = ./builder.sh; - - 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; - - meta = defaultMeta // (attrs.meta or { }); - }); - -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 deleted file mode 100644 index 8d1fce1..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/ham/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ lib -, buildPerlPackage -, fetchFromGitHub -, makeWrapper -, openssh -, GitRepository -, URI -, XMLParser -}: - -buildPerlPackage { - pname = "ham-unstable"; - version = "2023-10-06"; - - src = fetchFromGitHub { - owner = "kernkonzept"; - repo = "ham"; - rev = "90d104ce481ee8f9b770be4b37d97f34eef5f82f"; - hash = "sha256-DeHH7k9K7CmQW6eOyf8TCV/HNYS30oFnI1b8ztBDk/o="; - }; - - outputs = [ "out" ]; - - nativeBuildInputs = [ makeWrapper ]; - propagatedBuildInputs = [ openssh GitRepository URI XMLParser ]; - - preConfigure = '' - patchShebangs . - touch Makefile.PL - rm -f Makefile - ''; - - installPhase = '' - mkdir -p $out/lib $out/bin - cp -r . $out/lib/ham - - makeWrapper $out/lib/ham/ham $out/bin/ham --argv0 ham \ - --prefix PATH : ${openssh}/bin - ''; - - meta = with lib; { - description = "A tool to manage big projects consisting of multiple loosely-coupled git repositories"; - homepage = "https://github.com/kernkonzept/ham"; - license = licenses.bsd2; - maintainers = with maintainers; [ aw ]; - mainProgram = "ham"; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/pe/perl/perl-modules/lwp-protocol-https-cert-file.patch b/pkgs/by-name/pe/perl/perl-modules/lwp-protocol-https-cert-file.patch deleted file mode 100644 index 3b6156d..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/lwp-protocol-https-cert-file.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/lib/LWP/Protocol/https.pm b/lib/LWP/Protocol/https.pm -index 645e828..7098f64 100644 ---- a/lib/LWP/Protocol/https.pm -+++ b/lib/LWP/Protocol/https.pm -@@ -29,6 +29,9 @@ sub _extra_sock_opts - } - } - if ($ssl_opts{SSL_verify_mode}) { -+ if ($ENV{NIX_SSL_CERT_FILE}) { -+ $ssl_opts{SSL_ca_file} //= $ENV{NIX_SSL_CERT_FILE}; -+ } - unless (exists $ssl_opts{SSL_ca_file} || exists $ssl_opts{SSL_ca_path}) { - if ($Net::HTTPS::SSL_SOCKET_CLASS eq 'IO::Socket::SSL' - && defined &IO::Socket::SSL::default_ca diff --git a/pkgs/by-name/pe/perl/perl-modules/maatkit/default.nix b/pkgs/by-name/pe/perl/perl-modules/maatkit/default.nix deleted file mode 100644 index d694508..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/maatkit/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{buildPerlPackage, lib, fetchurl, DBDmysql}: - -buildPerlPackage { - pname = "maatkit"; - version = "7540"; - - src = fetchurl { - url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/maatkit/maatkit-7540.tar.gz"; - sha256 = "1a7rxrddkrsfxb2wj01ha91ld0vapfkqcy8j9p08l76zz2l8p2v1"; - }; - - outputs = [ "out" ]; - - buildInputs = [ DBDmysql ] ; - - preConfigure = '' - find . | while read fn; do - if test -f "$fn"; then - first=$(dd if="$fn" count=2 bs=1 2> /dev/null) - if test "$first" = "#!"; then - sed < "$fn" > "$fn".tmp \ - -e "s|^#\!\(.*[/\ ]perl.*\)$|#\!$perl/bin/perl $perlFlags|" - if test -x "$fn"; then chmod +x "$fn".tmp; fi - mv "$fn".tmp "$fn" - fi - fi - done - '' ; - - meta = with lib; { - description = "Database toolkit"; - longDescription = '' - You can use Maatkit to prove replication is working correctly, fix - corrupted data, automate repetitive tasks, speed up your servers, and - much more. - - In addition to MySQL, there is support for PostgreSQL, Memcached, and a - growing variety of other databases and technologies. - ''; - license = licenses.gpl2Plus; - homepage = "http://www.maatkit.org/"; - }; -} diff --git a/pkgs/by-name/pe/perl/perl-modules/module-pluggable.patch b/pkgs/by-name/pe/perl/perl-modules/module-pluggable.patch deleted file mode 100644 index 51a029c..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/module-pluggable.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -ru Module-Pluggable-4.8/lib/Module/Pluggable/Object.pm Module-Pluggable-4.8-new/lib/Module/Pluggable/Object.pm ---- Module-Pluggable-4.8/lib/Module/Pluggable/Object.pm 2013-05-28 01:30:06.000000000 +0200 -+++ Module-Pluggable-4.8-new/lib/Module/Pluggable/Object.pm 2013-06-02 23:24:52.704125205 +0200 -@@ -180,12 +180,13 @@ - my $sp = catdir($dir, (split /::/, $searchpath)); - - # if it doesn't exist or it's not a dir then skip it -- next unless ( -e $sp && -d _ ); # Use the cached stat the second time -+ next unless ( -d $sp ); - - my @files = $self->find_files($sp); - - # foreach one we've found - foreach my $file (@files) { -+ - # untaint the file; accept .pm only - next unless ($file) = ($file =~ /(.*$file_regex)$/); - # parse the file to get the name -@@ -314,7 +315,7 @@ - (my $path = $File::Find::name) =~ s#^\\./##; - push @files, $path; - } -- }, $search_path ); -+ }, "$search_path/." ); - } - #chdir $cwd; - return @files; diff --git a/pkgs/by-name/pe/perl/perl-modules/net-amazon-mechanicalturk.patch b/pkgs/by-name/pe/perl/perl-modules/net-amazon-mechanicalturk.patch deleted file mode 100644 index dde13b9..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/net-amazon-mechanicalturk.patch +++ /dev/null @@ -1,65 +0,0 @@ -From http://daveviner.blogspot.com/2009/12/amazon-mechanical-turk-perl-library.html -http://www.vinertech.com/patches/net-amazon-mechanicalturk.patch - -diff -rubB Net-Amazon-MechanicalTurk-1.01/lib/Net/Amazon/MechanicalTurk/ModuleUtil.pm Net-Amazon-MechanicalTurk-1.01/lib/Net/Amazon/MechanicalTurk/ModuleUtil.pm ---- Net-Amazon-MechanicalTurk-1.01/lib/Net/Amazon/MechanicalTurk/ModuleUtil.pm 2007-08-13 11:38:53.000000000 -0700 -+++ Net-Amazon-MechanicalTurk-1.01/lib/Net/Amazon/MechanicalTurk/ModuleUtil.pm 2009-12-13 16:37:49.000000000 -0800 -@@ -29,17 +29,21 @@ - } - - sub packageExists { -- my ($class, $package) = @_; -+ my ($class, $package, $moduleFile) = @_; -+ -+ if (defined($moduleFile) && exists($INC{$moduleFile})) { -+ return 1; -+ } - # Symbol table black magic - no strict 'refs'; -- return defined %{*{"${package}::"}}; -+ return scalar(keys(%{*{"${package}::"}})); - } - - sub require { - my ($class, $module) = @_; -- if (!$class->packageExists($module)) { - my $moduleFile = $module . ".pm"; - $moduleFile =~ s/::/\//g; -+ if (!$class->packageExists($module, $moduleFile)) { - require $moduleFile; - } - } -diff -rubB Net-Amazon-MechanicalTurk-1.01/t/73-datagenerator-dbi.t Net-Amazon-MechanicalTurk-1.01/t/73-datagenerator-dbi.t ---- Net-Amazon-MechanicalTurk-1.01/t/73-datagenerator-dbi.t 2007-08-13 11:38:56.000000000 -0700 -+++ Net-Amazon-MechanicalTurk-1.01/t/73-datagenerator-dbi.t 2009-12-13 16:55:30.000000000 -0800 -@@ -8,10 +8,10 @@ - - eval { - require DBI; -- require DBD::SQLite2; -+ require DBD::SQLite; - }; - if ($@) { -- plan skip_all => "SQLite2 not installed."; -+ plan skip_all => "SQLite not installed."; - } - else { - plan tests => 2; -@@ -21,7 +21,7 @@ - #----------------------- - my $dbfile = "t/data/test.db"; - unlink($dbfile) if (-f $dbfile); --my $dbh = DBI->connect("dbi:SQLite2:dbname=${dbfile}","","", { -+my $dbh = DBI->connect("dbi:SQLite:dbname=${dbfile}","","", { - RaiseError => 1, - AutoCommit => 1 - }); -@@ -42,7 +42,7 @@ - foreach my $id (1..30) { - $sth->execute($id, rand(), scalar localtime()); - } -- -+$sth->finish(); - - # Actual test - #---------------------- diff --git a/pkgs/by-name/pe/perl/perl-modules/perl-opengl-gl-extensions.txt b/pkgs/by-name/pe/perl/perl-modules/perl-opengl-gl-extensions.txt deleted file mode 100644 index 42df14c..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/perl-opengl-gl-extensions.txt +++ /dev/null @@ -1,5 +0,0 @@ -GLUT=20801 -VERSION=3.0 Mesa 10.2.6 -VENDOR=Intel Open Source Technology Center -RENDERER=Mesa DRI Intel(R) Ivybridge Mobile -EXTENSIONS=GL_ARB_multisample GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_copy_texture GL_EXT_polygon_offset GL_EXT_subtexture GL_EXT_texture_object GL_EXT_vertex_array GL_EXT_compiled_vertex_array GL_EXT_texture GL_EXT_texture3D GL_IBM_rasterpos_clip GL_ARB_point_parameters GL_EXT_draw_range_elements GL_EXT_packed_pixels GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_separate_specular_color GL_EXT_texture_edge_clamp GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_ARB_framebuffer_sRGB GL_ARB_multitexture GL_EXT_framebuffer_sRGB GL_IBM_multimode_draw_arrays GL_IBM_texture_mirrored_repeat GL_3DFX_texture_compression_FXT1 GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_transpose_matrix GL_EXT_blend_func_separate GL_EXT_fog_coord GL_EXT_multi_draw_arrays GL_EXT_secondary_color GL_EXT_texture_env_add GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod_bias GL_INGR_blend_func_separate GL_NV_blend_square GL_NV_light_max_exponent GL_NV_texgen_reflection GL_NV_texture_env_combine4 GL_S3_s3tc GL_SUN_multi_draw_arrays GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_EXT_framebuffer_object GL_EXT_texture_compression_s3tc GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_MESA_window_pos GL_NV_packed_depth_stencil GL_NV_texture_rectangle GL_ARB_depth_texture GL_ARB_occlusion_query GL_ARB_shadow GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_window_pos GL_ATI_envmap_bumpmap GL_EXT_stencil_two_side GL_EXT_texture_cube_map GL_NV_depth_clamp GL_APPLE_packed_pixels GL_APPLE_vertex_array_object GL_ARB_draw_buffers GL_ARB_fragment_program GL_ARB_fragment_shader GL_ARB_shader_objects GL_ARB_vertex_program GL_ARB_vertex_shader GL_ATI_draw_buffers GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_EXT_shadow_funcs GL_EXT_stencil_wrap GL_MESA_pack_invert GL_NV_primitive_restart GL_ARB_depth_clamp GL_ARB_fragment_program_shadow GL_ARB_half_float_pixel GL_ARB_occlusion_query2 GL_ARB_point_sprite GL_ARB_shading_language_100 GL_ARB_sync GL_ARB_texture_non_power_of_two GL_ARB_vertex_buffer_object GL_ATI_blend_equation_separate GL_EXT_blend_equation_separate GL_OES_read_format GL_ARB_color_buffer_float GL_ARB_pixel_buffer_object GL_ARB_texture_compression_rgtc GL_ARB_texture_float GL_ARB_texture_rectangle GL_EXT_packed_float GL_EXT_pixel_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_rectangle GL_EXT_texture_sRGB GL_EXT_texture_shared_exponent GL_ARB_framebuffer_object GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_packed_depth_stencil GL_APPLE_object_purgeable GL_ARB_vertex_array_object GL_ATI_separate_stencil GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_gpu_program_parameters GL_EXT_texture_array GL_EXT_texture_integer GL_EXT_texture_sRGB_decode GL_EXT_timer_query GL_OES_EGL_image GL_AMD_performance_monitor GL_ARB_copy_buffer GL_ARB_depth_buffer_float GL_ARB_draw_instanced GL_ARB_half_float_vertex GL_ARB_instanced_arrays GL_ARB_map_buffer_range GL_ARB_texture_rg GL_ARB_texture_swizzle GL_ARB_vertex_array_bgra GL_EXT_texture_swizzle GL_EXT_vertex_array_bgra GL_NV_conditional_render GL_AMD_conservative_depth GL_AMD_draw_buffers_blend GL_AMD_seamless_cubemap_per_texture GL_ARB_ES2_compatibility GL_ARB_blend_func_extended GL_ARB_debug_output GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_explicit_attrib_location GL_ARB_fragment_coord_conventions GL_ARB_provoking_vertex GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_shader_texture_lod GL_ARB_texture_cube_map_array GL_ARB_texture_gather GL_ARB_texture_multisample GL_ARB_texture_query_lod GL_ARB_texture_rgb10_a2ui GL_ARB_uniform_buffer_object GL_ARB_vertex_type_2_10_10_10_rev GL_EXT_provoking_vertex GL_EXT_texture_snorm GL_MESA_texture_signed_rgba GL_ARB_get_program_binary GL_ARB_robustness GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ARB_conservative_depth GL_ARB_internalformat_query GL_ARB_map_buffer_alignment GL_ARB_shader_atomic_counters GL_ARB_shading_language_420pack GL_ARB_shading_language_packing GL_ARB_texture_storage GL_ARB_transform_feedback_instanced GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_transform_feedback GL_AMD_shader_trinary_minmax GL_ARB_ES3_compatibility GL_ARB_clear_buffer_object GL_ARB_invalidate_subdata GL_ARB_texture_query_levels GL_ARB_texture_storage_multisample GL_ARB_texture_view GL_ARB_vertex_attrib_binding GL_KHR_debug GL_ARB_buffer_storage GL_ARB_multi_bind GL_ARB_texture_mirror_clamp_to_edge GL_ARB_vertex_type_10f_11f_11f_rev GL_EXT_shader_integer_mix GL_INTEL_performance_query diff --git a/pkgs/by-name/pe/perl/perl-modules/perl-opengl.patch b/pkgs/by-name/pe/perl/perl-modules/perl-opengl.patch deleted file mode 100644 index a44dc4f..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/perl-opengl.patch +++ /dev/null @@ -1,57 +0,0 @@ -diff --git a/Makefile.PL b/Makefile.PL -index 55c485c..8501c02 100644 ---- a/Makefile.PL -+++ b/Makefile.PL -@@ -124,14 +124,7 @@ if ($^O eq 'MSWin32' || $IS_W32API) - # Look for available libs - our @libdirs = qw - { -- -L/usr/lib -- -L/usr/lib/i386-linux-gnu -- -L/usr/X11R6/lib -- -L/opt/X11/lib -- -L/usr/local/lib -- -L/usr/openwin/lib -- -L/opt/csw/lib -- -L/usr/local/freeglut/lib -+ @@libpaths@@ - }; - - our @check_libs = qw -@@ -764,7 +759,6 @@ sub get_extensions - my $exc_file = 'gl_exclude.h'; - unlink($exc_file) if (-e $exc_file); - my $glv_file = 'utils/glversion.txt'; -- unlink($glv_file) if (-e $glv_file); - - # Only run the rest if GLUT is installed - print "Testing GLUT version\n" if ($verbose); -@@ -817,7 +811,7 @@ sub get_extensions - $make_ver = ";make -f Makefile " . (length($lib) ? "GLUT_LIB=$lib " : "") . (length($def) ? "GLUT_DEF=$def " : ""); - print "glversion: '$make_ver'\n" if $verbose>1; - } -- my $exec = 'cd utils'."$make_ver clean".$make_ver; -+ my $exec = 'cd utils'.$make_ver; - print "glversion: $exec\n" if ($verbose); - my $stat = `$exec`; - print "\n$stat\n\n" if ($verbose); -diff --git a/utils/Makefile b/utils/Makefile -index 910dcaf..1b1ac57 100644 ---- a/utils/Makefile -+++ b/utils/Makefile -@@ -21,14 +21,13 @@ EXTRALIBS=-lGLU -lXi -lXmu -lXext -lX11 -lm - all: glversion.txt - - glversion.txt: glversion -- ./glversion > glversion.txt -+ echo "skipping build of glversion.txt" - - glversion: glversion.o - ${LINK} glversion.o ${LDFLAGS} ${EXTRALIBS} -o glversion - chmod u+x glversion - - clean: -- rm -f glversion.txt - rm -f glversion - rm -f glversion.o - diff --git a/pkgs/by-name/pe/perl/perl-modules/sdl-modern-perl.patch b/pkgs/by-name/pe/perl/perl-modules/sdl-modern-perl.patch deleted file mode 100644 index c97eeb0..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/sdl-modern-perl.patch +++ /dev/null @@ -1,64 +0,0 @@ -From d734d03862d7dcc776bd2fa3ba662cdd5879b32e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= -Date: Wed, 12 Jul 2023 17:55:27 +0200 -Subject: [PATCH] Adapt to perl 5.37.1 - -Perl 5.37.1 removed a deprecated sv_nv() macro and SDL fails to build -with Perl 5.38.0: - -lib/SDLx/Controller/Interface.xs:60:26: error: implicit declaration of function 'sv_nv' - 60 | out->dv_x = sv_nv(temp); - | ^~~~~ - -Users are advised to use SvNVx() macro instead. SvNVx() seems to have been -available all the time (it predates a commit from 1993-10-07). - -This patch does that. - -https://github.com/PerlGameDev/SDL/issues/303 ---- - src/SDLx/Controller/Interface.xs | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/src/SDLx/Controller/Interface.xs b/src/SDLx/Controller/Interface.xs -index 3dc202b7..d326c885 100644 ---- a/src/SDLx/Controller/Interface.xs -+++ b/src/SDLx/Controller/Interface.xs -@@ -57,15 +57,15 @@ void evaluate(SDLx_Interface *obj, SDLx_Derivative *out, SDLx_State *initial, fl - - SV *temp; - temp = av_pop(accel); -- out->dv_x = sv_nv(temp); -+ out->dv_x = SvNVx(temp); - SvREFCNT_dec(temp); - - temp = av_pop(accel); -- out->dv_y = sv_nv(temp); -+ out->dv_y = SvNVx(temp); - SvREFCNT_dec(temp); - - temp = av_pop(accel); -- out->dang_v = sv_nv(temp); -+ out->dang_v = SvNVx(temp); - SvREFCNT_dec(temp); - - SvREFCNT_dec((SV *)accel); -@@ -90,15 +90,15 @@ void evaluate_dt(SDLx_Interface *obj, SDLx_Derivative *out, SDLx_State *initial, - - SV *temp; - temp = av_pop(accel); -- out->dv_x = sv_nv(temp); -+ out->dv_x = SvNVx(temp); - SvREFCNT_dec(temp); - - temp = av_pop(accel); -- out->dv_y = sv_nv(temp); -+ out->dv_y = SvNVx(temp); - SvREFCNT_dec(temp); - - temp = av_pop(accel); -- out->dang_v = sv_nv(temp); -+ out->dang_v = SvNVx(temp); - SvREFCNT_dec(temp); - - SvREFCNT_dec((SV *)accel); 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 deleted file mode 100644 index 31b3fad..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/strip-nondeterminism/default.nix +++ /dev/null @@ -1,69 +0,0 @@ -{ lib -, stdenv -, file -, fetchFromGitLab -, buildPerlPackage -, ArchiveZip -, ArchiveCpio -, SubOverride -, shortenPerlShebang -}: - -buildPerlPackage rec { - pname = "strip-nondeterminism"; - version = "1.13.1"; - - outputs = [ "out" "dev" ]; # no "devdoc" - - src = fetchFromGitLab { - owner = "reproducible-builds"; - repo = "strip-nondeterminism"; - domain = "salsa.debian.org"; - rev = version; - sha256 = "czx9UhdgTsQSfDNo1mMOXCM/3/nuNe+cPZeyy2xdnKs="; - }; - - strictDeps = true; - nativeBuildInputs = lib.optionals stdenv.isDarwin [ shortenPerlShebang ]; - buildInputs = [ - ArchiveZip - ArchiveCpio - SubOverride - ]; - - postPatch = '' - substituteInPlace lib/File/StripNondeterminism.pm \ - --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 - ''; - - installCheckPhase = '' - runHook preInstallCheck - ($out/bin/strip-nondeterminism --help 2>&1 | grep -q "verbose") || (echo "'$out/bin/strip-nondeterminism --help' failed" && exit 1) - runHook postInstallCheck - ''; - - # running shortenPerlShebang in postBuild results in non-functioning binary 'exec format error' - doCheck = !stdenv.isDarwin; - doInstallCheck = true; - - meta = with lib; { - description = "A Perl module for stripping bits of non-deterministic information"; - mainProgram = "strip-nondeterminism"; - homepage = "https://reproducible-builds.org/"; - license = licenses.gpl3Only; - maintainers = with maintainers; [ pSub artturin ]; - }; -} diff --git a/pkgs/by-name/pe/perl/perl-modules/tk-configure-implicit-int-fix.patch b/pkgs/by-name/pe/perl/perl-modules/tk-configure-implicit-int-fix.patch deleted file mode 100644 index 215bf86..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/tk-configure-implicit-int-fix.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/JPEG/jpeg/configure 2013-11-15 18:50:03.000000000 -0500 -+++ b/JPEG/jpeg/configure 2023-09-05 23:36:12.675151164 -0400 -@@ -623,7 +623,7 @@ - cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then - ac_cv_prog_cc_works=yes diff --git a/pkgs/by-name/pe/perl/perl-modules/xml-grove-utf8.patch b/pkgs/by-name/pe/perl/perl-modules/xml-grove-utf8.patch deleted file mode 100644 index d0b9130..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/xml-grove-utf8.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- XML-Grove-0.46alpha/t/grove.t 2008-07-22 14:47:27.000000000 +0200 -+++ XML-Grove-0.46alpha/t/grove.t 2008-07-22 14:46:42.000000000 +0200 -@@ -13,6 +13,7 @@ use XML::Parser::PerlSAX; - use XML::Grove::Builder; - use XML::Grove::AsString; - use XML::Grove::AsCanonXML; -+use utf8; - - $loaded = 1; - print "ok 1\n"; diff --git a/pkgs/by-name/pe/perl/perl-modules/xml-parser-0001-HACK-Assumes-Expat-paths-are-good.patch b/pkgs/by-name/pe/perl/perl-modules/xml-parser-0001-HACK-Assumes-Expat-paths-are-good.patch deleted file mode 100644 index add6d9d..0000000 --- a/pkgs/by-name/pe/perl/perl-modules/xml-parser-0001-HACK-Assumes-Expat-paths-are-good.patch +++ /dev/null @@ -1,45 +0,0 @@ -From e996904128653c67b04ddbdb1e10cef158098957 Mon Sep 17 00:00:00 2001 -From: Samuel Dionne-Riel -Date: Fri, 6 Dec 2019 23:00:51 -0500 -Subject: [PATCH] [HACK]: Assumes Expat paths are good. - -The `check_lib` check fails with the cross-compilation build platform's -Perl, since apparently `mktemp` is missing... - -Even then, side-stepping the issue, it seems it is not actually enough -to work, as the compilation fails. ---- - Makefile.PL | 17 +++++++++++------ - 1 file changed, 11 insertions(+), 6 deletions(-) - -diff --git a/Makefile.PL b/Makefile.PL -index 505d1df..fc38b76 100644 ---- a/Makefile.PL -+++ b/Makefile.PL -@@ -29,12 +29,17 @@ foreach (@ARGV) { - @ARGV = @replacement_args; - - unless ( -- check_lib( # fill in what you prompted the user for here -- lib => [qw(expat)], -- header => ['expat.h'], -- incpath => $expat_incpath, -- ( $expat_libpath ? ( libpath => $expat_libpath ) : () ), -- ) -+ #check_lib( # fill in what you prompted the user for here -+ # lib => [qw(expat)], -+ # header => ['expat.h'], -+ # incpath => $expat_incpath, -+ # ( $expat_libpath ? ( libpath => $expat_libpath ) : () ), -+ #) -+ # The check_lib implementation fails horribly with cross-compilation. -+ # We are giving known good paths to expat. -+ # And in all cases, the previous behaviour of not actually failing -+ # seemed to work just fine :/. -+ false - ) { - warn <<'Expat_Not_Installed;'; - --- -2.23.0 - diff --git a/pkgs/by-name/pe/perl/perl-packages.nix b/pkgs/by-name/pe/perl/perl-packages.nix deleted file mode 100644 index abb5bae..0000000 --- a/pkgs/by-name/pe/perl/perl-packages.nix +++ /dev/null @@ -1,29314 +0,0 @@ -/* 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 -# , nixosTests -}: - -self: - -# cpan2nix assumes that perl-packages.nix will be used only with perl 5.30.3 or above -assert lib.versionAtLeast perl.version "5.30.3"; -let - inherit (lib) maintainers teams; - -in -with self; { - - inherit perl; - perlPackages = self // { perlPackages = self.perlPackages // { __attrsFailEvaluation = true; }; }; - - # Check whether a derivation provides a perl module. - hasPerlModule = drv: drv ? perlModule ; - - 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: { - # Use passthru in order to prevent rebuilds when possible. - passthru = (oldAttrs.passthru or {}) // { - perlModule = perl; - requiredPerlModules = requiredPerlModules drv.propagatedBuildInputs; - }; - }); - - 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 ]; - }); - - /* 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" - */ - makePerlPath = lib.makeSearchPathOutput "lib" perl.libPrefix; - - /* 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" - */ - makeFullPerlPath = deps: makePerlPath (lib.misc.closePropagation deps); - - - # ack = buildPerlPackage rec { - # pname = "ack"; - # version = "3.7.0"; - - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PETDANCE/ack-v${version}.tar.gz"; - # hash = "sha256-6nyqFPdX3ggzEO0suimGYd3Mpd7gbsjxgEPqYlp53yA="; - # }; - - # outputs = [ "out" "man" ]; - - # nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang; - # propagatedBuildInputs = [ FileNext ]; - # postInstall = lib.optionalString stdenv.isDarwin '' - # shortenPerlShebang $out/bin/ack - # ''; - - # # tests fails on nixos and hydra because of different purity issues - # doCheck = false; - - # meta = { - # description = "A grep-like tool tailored to working with large trees of source code"; - # homepage = "https://beyondgrep.com"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # ActionCircuitBreaker = buildPerlPackage { - # pname = "Action-CircuitBreaker"; - # version = "0.1"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HANGY/Action-CircuitBreaker-0.1.tar.gz"; - # hash = "sha256-P49dcm+uU3qzNuAKaBmuSoWW5MXyQ+dypTbvLrbmBrE="; - # }; - # buildInputs = [ ActionRetry TryTiny ]; - # propagatedBuildInputs = [ Moo ]; - # meta = { - # description = "Module to try to perform an action, with an option to suspend execution after a number of failures"; - # homepage = "https://github.com/hangy/Action-CircuitBreaker"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ActionRetry = buildPerlPackage { - # pname = "Action-Retry"; - # version = "0.24"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAMS/Action-Retry-0.24.tar.gz"; - # hash = "sha256-o3WXQsW+8tGXWrc9NUmdgRMySRmySTYTAlXP8H0ClPc="; - # }; - # propagatedBuildInputs = [ MathFibonacci ModuleRuntime Moo ]; - # meta = { - # description = "Module to try to perform an action, with various ways of retrying and sleeping between retries"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AlgorithmAnnotate = buildPerlPackage { - # pname = "Algorithm-Annotate"; - # version = "0.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CL/CLKAO/Algorithm-Annotate-0.10.tar.gz"; - # hash = "sha256-ybF2RkOTPrGjNWkGzDctSDqZQWIHox3z5Y7piS2ZIvk="; - # }; - # propagatedBuildInputs = [ AlgorithmDiff ]; - # meta = { - # description = "Represent a series of changes in annotate form"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AlgorithmBackoff = buildPerlPackage { - # pname = "Algorithm-Backoff"; - # version = "0.009"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PERLANCAR/Algorithm-Backoff-0.009.tar.gz"; - # sha256 = "9f0ffcdf1e65a88022d6412f46ad977ede5a7b64be663009d13948fe8c9d180b"; - # }; - # buildInputs = [ TestException TestNumberDelta ]; - # meta = { - # homepage = "https://metacpan.org/release/Algorithm-Backoff"; - # description = "Various backoff strategies for retry"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AlgorithmC3 = buildPerlPackage { - # pname = "Algorithm-C3"; - # version = "0.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HAARG/Algorithm-C3-0.11.tar.gz"; - # hash = "sha256-qvSEZ3Zd7qbkgFS8fUPkbk1Ay82hZVLGKdN74Jgokwk="; - # }; - # meta = { - # description = "A module for merging hierarchies using the C3 algorithm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AlgorithmCheckDigits = buildPerlModule { - # pname = "Algorithm-CheckDigits"; - # version = "1.3.6"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MAMAWE/Algorithm-CheckDigits-v1.3.6.tar.gz"; - # hash = "sha256-DySHqP0fMbGcUbJlCELyJkwed9liSHoTtSG74GbEtLw="; - # }; - # buildInputs = [ ProbePerl ]; - # meta = { - # description = "Perl extension to generate and test check digits"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "checkdigits.pl"; - # }; - # }; - - # AlgorithmDiff = buildPerlPackage { - # pname = "Algorithm-Diff"; - # version = "1.1903"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TY/TYEMQ/Algorithm-Diff-1.1903.tar.gz"; - # hash = "sha256-MOhKxLMdQLZik/exIhMxxaUFYaOdWA2FAE2cH/+ZF1E="; - # }; - # buildInputs = [ pkgs.unzip ]; - # meta = { - # description = "Compute 'intelligent' differences between two files / lists"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AlgorithmLCSS = buildPerlPackage { - # pname = "Algorithm-LCSS"; - # version = "0.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JF/JFREEMAN/Algorithm-LCSS-0.01.tar.gz"; - # hash = "sha256-cXzvzHhCoXGrVXbyLrcuVm7fBhzq+H3Mvn8ggfVgH3g="; - # }; - # propagatedBuildInputs = [ AlgorithmDiff ]; - # meta = { - # description = "Perl extension for getting the Longest Common Sub-Sequence"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # AlgorithmMerge = buildPerlPackage { - # pname = "Algorithm-Merge"; - # version = "0.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JS/JSMITH/Algorithm-Merge-0.08.tar.gz"; - # hash = "sha256-nAaIJYodxLg5iAU7n5qY53KM25tppQCNy9JR0PgIFs8="; - # }; - # propagatedBuildInputs = [ AlgorithmDiff ]; - # meta = { - # description = "Three-way merge and diff"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AlienBaseModuleBuild = buildPerlModule { - # pname = "Alien-Base-ModuleBuild"; - # version = "1.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-Base-ModuleBuild-1.17.tar.gz"; - # hash = "sha256-/nJwrHNa3ehk5GjiHGQqRxuoi6Ja0w2pRXiDITLyufQ="; - # }; - # buildInputs = [ Test2Suite ]; - # propagatedBuildInputs = [ AlienBuild ArchiveExtract CaptureTiny Filechdir PathTiny ShellConfigGenerate ShellGuess SortVersions URI ]; - # meta = { - # description = "A Module::Build subclass for building Alien:: modules and their libraries"; - # homepage = "https://metacpan.org/pod/Alien::Base::ModuleBuild"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AlienBuild = buildPerlPackage { - # pname = "Alien-Build"; - # version = "2.80"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-Build-2.80.tar.gz"; - # hash = "sha256-2e3JNrBnBbtcte5aLqi89hEaPogVkU8XfhXjwP7TAfM="; - # }; - # propagatedBuildInputs = [ CaptureTiny FFICheckLib FileWhich Filechdir PathTiny PkgConfig ]; - # buildInputs = [ DevelHide Test2Suite ]; - # meta = { - # description = "Build external dependencies for use in CPAN"; - # homepage = "https://metacpan.org/pod/Alien::Build"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AlienBuildPluginDownloadGitLab = buildPerlPackage { - # pname = "Alien-Build-Plugin-Download-GitLab"; - # version = "0.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-Build-Plugin-Download-GitLab-0.01.tar.gz"; - # hash = "sha256-wfCJyOoVKniZCdSKg9v88mJvdz2vMEMchiJYKyarqQI="; - # }; - # buildInputs = [ Test2Suite ]; - # propagatedBuildInputs = [ AlienBuild PathTiny URI ]; - # meta = { - # homepage = "https://metacpan.org/pod/Alien::Build::Plugin::Download::GitLab"; - # description = "Alien::Build plugin to download from GitLab"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AlienFFI = buildPerlPackage { - # pname = "Alien-FFI"; - # version = "0.27"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-FFI-0.27.tar.gz"; - # hash = "sha256-Kbsgg/P5gqOfSFIkP09qEZFpZvIObneGTpkmnRHotl4="; - # }; - # patches = [ ./perl-modules/Alien-FFI-dont-download.patch ]; - # nativeBuildInputs = [ pkgs.pkg-config ]; - # buildInputs = [ pkgs.libffi CaptureTiny Test2Suite NetSSLeay MojoDOM58 IOSocketSSL ]; - # propagatedBuildInputs = [ AlienBuild ]; - # meta = { - # homepage = "https://metacpan.org/pod/Alien::FFI"; - # description = "Build and make available libffi"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ tomasajt ]; - # }; - # }; - - # AlienGMP = buildPerlPackage { - # pname = "Alien-GMP"; - # version = "1.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-GMP-1.16.tar.gz"; - # hash = "sha256-CQzUjuU1v2LxeIlWF6hReDrhGqTGAGof1NhKQy8RPaU="; - # }; - # propagatedBuildInputs = [ AlienBuild ]; - # buildInputs = [ pkgs.gmp Alienm4 DevelChecklib IOSocketSSL MojoDOM58 NetSSLeay SortVersions Test2Suite URI ]; - # meta = { - # description = "Alien package for the GNU Multiple Precision library"; - # homepage = "https://metacpan.org/pod/Alien::GMP"; - # license = with lib.licenses; [ lgpl3Plus ]; - # }; - # }; - - # AlienLibGumbo = buildPerlModule { - # pname = "Alien-LibGumbo"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RU/RUZ/Alien-LibGumbo-0.05.tar.gz"; - # hash = "sha256-D76RarEfaA5cKM0ayAA3IyPioOBq/8bIs2J5/GTXZRc="; - # }; - # buildInputs = [ AlienBaseModuleBuild ]; - # propagatedBuildInputs = [ AlienBuild FileShareDir PathClass ]; - # meta = { - # description = "Gumbo parser library"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.AlienLibGumbo.x86_64-darwin - # }; - # }; - - # AlienLibxml2 = buildPerlPackage { - # pname = "Alien-Libxml2"; - # version = "0.19"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-Libxml2-0.19.tar.gz"; - # hash = "sha256-9KZ0CZu9V0fAw7derYQfOyRJNdnvQro1NoAkvWERdMk="; - # }; - # strictDeps = true; - # nativeBuildInputs = [ pkgs.pkg-config ]; - # propagatedBuildInputs = [ AlienBuild ]; - # buildInputs = [ pkgs.libxml2 AlienBuildPluginDownloadGitLab MojoDOM58 SortVersions Test2Suite URI ]; - # meta = { - # description = "Install the C libxml2 library on your system"; - # homepage = "https://metacpan.org/pod/Alien::Libxml2"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # aliased = buildPerlModule { - # pname = "aliased"; - # version = "0.34"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/aliased-0.34.tar.gz"; - # hash = "sha256-w1BSRQfNgn+rhk5dTCzDULG6uqEvqVrsDKAIQ/zH3us="; - # }; - # buildInputs = [ ModuleBuildTiny ]; - # meta = { - # description = "Use shorter versions of class names"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # asa = buildPerlPackage { - # pname = "asa"; - # version = "1.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/asa-1.04.tar.gz"; - # hash = "sha256-5YM7dOczuu4Z0e9eBLEmPBz/nBdGmVrXL8QJGPRAZ14="; - # }; - # meta = { - # description = "Lets your class/object say it works like something else"; - # homepage = "https://github.com/karenetheridge/asa"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AlienSDL = buildPerlModule { - # pname = "Alien-SDL"; - # version = "1.446"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FR/FROGGS/Alien-SDL-1.446.tar.gz"; - # hash = "sha256-yaosncPGPYl3PH1yA/KkbRuSTQxy2fgBrxR6Pci8USo="; - # }; - # patches = [ ./perl-modules/alien-sdl.patch ]; - - # installPhase = "./Build install --prefix $out"; - - # SDL_INST_DIR = lib.getDev pkgs.SDL; - # buildInputs = [ pkgs.SDL ArchiveExtract ArchiveZip TextPatch ]; - # propagatedBuildInputs = [ CaptureTiny FileShareDir FileWhich ]; - - # meta = { - # description = "Get, Build and Use SDL libraries"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AlienTidyp = buildPerlModule { - # pname = "Alien-Tidyp"; - # version = "1.4.7"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KM/KMX/Alien-Tidyp-v1.4.7.tar.gz"; - # hash = "sha256-uWTL2nH79sDqaaTztBUEwUXygWga/hmewrSUQC6/SmU="; - # }; - - # buildInputs = [ ArchiveExtract ]; - # TIDYP_DIR = pkgs.tidyp; - # propagatedBuildInputs = [ FileShareDir ]; - # meta = { - # description = "Building, finding and using tidyp library"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AlienWxWidgets = buildPerlModule { - # pname = "Alien-wxWidgets"; - # version = "0.69"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MD/MDOOTSON/Alien-wxWidgets-0.69.tar.gz"; - # hash = "sha256-UyJOS7vv/0z3tj7ZpiljiTuf/Ull1w2WcQNI+Gdt4kk="; - # }; - # postPatch = '' - # substituteInPlace Build.PL \ - # --replace "gtk+-2.0" "gtk+-3.0" - # ''; - # propagatedBuildInputs = [ pkgs.pkg-config pkgs.gtk3 pkgs.wxGTK32 ModulePluggable ]; - # buildInputs = [ LWPProtocolHttps ]; - # meta = { - # description = "Building, finding and using wxWidgets binaries"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Alienm4 = buildPerlPackage { - # pname = "Alien-m4"; - # version = "0.21"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-m4-0.21.tar.gz"; - # hash = "sha256-qypAXIA5RP0BxR+h6fK+/VhxqwPxdE3sKlZonyFI02E="; - # }; - # propagatedBuildInputs = [ AlienBuild ]; - # buildInputs = [ pkgs.gnum4 Alienpatch IOSocketSSL MojoDOM58 NetSSLeay SortVersions Test2Suite URI ]; - # meta = { - # description = "Find or build GNU m4"; - # homepage = "https://metacpan.org/pod/Alien::m4"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Alienpatch = buildPerlPackage { - # pname = "Alien-patch"; - # version = "0.15"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-patch-0.15.tar.gz"; - # hash = "sha256-/tZyJbLZamZpL30vQ+DTRykhRSnbHWsTsNykYgquANA="; - # }; - # propagatedBuildInputs = [ AlienBuild ]; - # buildInputs = [ IOSocketSSL MojoDOM58 NetSSLeay SortVersions Test2Suite URI ]; - # meta = { - # description = "Find or build patch"; - # homepage = "https://metacpan.org/pod/Alien::patch"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AltCryptRSABigInt = buildPerlPackage { - # pname = "Alt-Crypt-RSA-BigInt"; - # version = "0.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DANAJ/Alt-Crypt-RSA-BigInt-0.06.tar.gz"; - # hash = "sha256-dvQ0yrNpmc3wmBE0W7Oda3y+1+CFsCM4Mox/RuCLOPM="; - # }; - # propagatedBuildInputs = [ ClassLoader ConvertASCIIArmour DataBuffer DigestMD2 MathBigIntGMP MathPrimeUtil SortVersions TieEncryptedHash ]; - # meta = { - # description = "RSA public-key cryptosystem, using Math::BigInt"; - # homepage = "https://github.com/danaj/Alt-Crypt-RSA-BigInt"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # AnyEvent = buildPerlPackage { - # pname = "AnyEvent"; - # version = "7.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/ML/MLEHMANN/AnyEvent-7.17.tar.gz"; - # hash = "sha256-UL7qaJwJj+Sq64OAbEC5/n+UbVdprPmfhJ8JkJGkuYU="; - # }; - # buildInputs = [ CanaryStability ]; - # meta = { - # description = "The DBI of event loop programming"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AnyEventAIO = buildPerlPackage { - # pname ="AnyEvent-AIO"; - # version = "1.1"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/ML/MLEHMANN/AnyEvent-AIO-1.1.tar.gz"; - # hash = "sha256-axBbjGQVYWMfUz7DQj6AZ6PX1YBDv4Xw9eCdcGkFcGs="; - # }; - # propagatedBuildInputs = [ AnyEvent IOAIO ]; - # meta = { - # description = "Truly asynchronous file and directory I/O"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AnyEventBDB = buildPerlPackage rec { - # pname = "AnyEvent-BDB"; - # version = "1.1"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${pname}-${version}.tar.gz"; - # hash = "sha256-k+NgEJQEZGJuXzG5+u3WXhLtjRq/Fs4FL+vyP0la78g="; - # }; - # buildInputs = [ CanaryStability ]; - # propagatedBuildInputs = [ BDB AnyEvent ]; - # meta = { - # description = "Truly asynchronous berkeley db access"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AnyEventCacheDNS = buildPerlModule { - # pname = "AnyEvent-CacheDNS"; - # version = "0.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PO/POTYL/AnyEvent-CacheDNS-0.08.tar.gz"; - # hash = "sha256-QcH68YO2GAa1WInO6hI3dQwfYbnOJzX98z3AVTZxLa4="; - # }; - # propagatedBuildInputs = [ AnyEvent ]; - # doCheck = false; # does an DNS lookup - # meta = { - # description = "Simple DNS resolver with caching"; - # homepage = "https://github.com/potyl/perl-AnyEvent-CacheDNS"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AnyEventFastPing = buildPerlPackage { - # pname = "AnyEvent-FastPing"; - # version = "2.1"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/ML/MLEHMANN/AnyEvent-FastPing-2.1.tar.gz"; - # hash = "sha256-5ZIbj3rTXJg6ACWuAKSPyVyQwX/uw+WFmBhwSwxScCw="; - # }; - # propagatedBuildInputs = [ AnyEvent commonsense ]; - # meta = { - # description = "Quickly ping a large number of hosts"; - # license = with lib.licenses; [ artistic1 gpl2Plus ]; - # mainProgram = "fastping"; - # }; - # }; - - # AnyEventHTTP = buildPerlPackage { - # pname = "AnyEvent-HTTP"; - # version = "2.25"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/ML/MLEHMANN/AnyEvent-HTTP-2.25.tar.gz"; - # hash = "sha256-XPpTQWEkF29vTNMrAOqMp5otXfUSWGg5ic0E/obiUBM="; - # }; - # propagatedBuildInputs = [ AnyEvent commonsense ]; - # meta = { - # description = "Simple but non-blocking HTTP/HTTPS client"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AnyEventI3 = buildPerlPackage { - # pname = "AnyEvent-I3"; - # version = "0.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MS/MSTPLBG/AnyEvent-I3-0.17.tar.gz"; - # hash = "sha256-U4LJhMnxODlfKfDACvgaoMj0t2VYIFXHPt5LE/BKbWM="; - # }; - # propagatedBuildInputs = [ AnyEvent JSONXS ]; - # meta = { - # description = "Communicate with the i3 window manager"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AnyEventIRC = buildPerlPackage rec { - # pname = "AnyEvent-IRC"; - # version = "0.97"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/EL/ELMEX/${pname}-${version}.tar.gz"; - # hash = "sha256-v9fPZFw8jGEUcQVxKGEUR+IPGt8BUWxpYky9i8d/W/A="; - # }; - # propagatedBuildInputs = [ AnyEvent ObjectEvent commonsense ]; - # meta = { - # description = "An event based IRC protocol client API"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AnyEventRabbitMQ = buildPerlPackage { - # pname = "AnyEvent-RabbitMQ"; - # version = "1.22"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DL/DLAMBLEY/AnyEvent-RabbitMQ-1.22.tar.gz"; - # hash = "sha256-mMUqH+cAcQ8+W8VaOLJd5iXpsug0HSeNz54bPz0ZrO4="; - # }; - # buildInputs = [ FileShareDirInstall TestException ]; - # propagatedBuildInputs = [ AnyEvent DevelGlobalDestruction FileShareDir ListMoreUtils NetAMQP Readonly namespaceclean ]; - # meta = { - # description = "An asynchronous and multi channel Perl AMQP client"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AnyMoose = buildPerlPackage { - # pname = "Any-Moose"; - # version = "0.27"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Any-Moose-0.27.tar.gz"; - # hash = "sha256-qKY+N/qALoJYvpmYORbN5FElgdyAYt5Q5z1mr24thTU="; - # }; - # propagatedBuildInputs = [ Moose Mouse ]; - # meta = { - # description = "(DEPRECATED) use Moo instead!"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AnyURIEscape = buildPerlPackage { - # pname = "Any-URI-Escape"; - # version = "0.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PH/PHRED/Any-URI-Escape-0.01.tar.gz"; - # hash = "sha256-44E87J8Qj6XAvmbgjBmGv7pNJCFRsPn07F4MXhcQjEw="; - # }; - # propagatedBuildInputs = [ URI ]; - # meta = { - # description = "Load URI::Escape::XS preferentially over URI::Escape"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # URIEscapeXS = buildPerlPackage { - # pname = "URI-Escape-XS"; - # version = "0.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DANKOGAI/URI-Escape-XS-0.14.tar.gz"; - # hash = "sha256-w5rFDGwrgxrkvwhpLmyl1KP5xX3E1/nEywZj4shsJ1k="; - # }; - # meta = { - # description = "Drop-In replacement for URI::Escape"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ApacheAuthCookie = buildPerlPackage { - # pname = "Apache-AuthCookie"; - # version = "3.31"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MS/MSCHOUT/Apache-AuthCookie-3.31.tar.gz"; - # hash = "sha256-ByhnLrmLzWZSWWenXXxNYXwLTEEWIBOsmkzv5G99/3w="; - # }; - # buildInputs = [ ApacheTest ]; - # propagatedBuildInputs = [ ClassLoad HTTPBody HashMultiValue WWWFormUrlEncoded ]; - - # # Fails because /etc/protocols is not available in sandbox and make - # # getprotobyname('tcp') in ApacheTest fail. - # doCheck = !stdenv.isLinux; - - # meta = { - # description = "Perl Authentication and Authorization via cookies"; - # homepage = "https://github.com/mschout/apache-authcookie"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ApacheDB = buildPerlPackage { - # pname = "Apache-DB"; - # version = "0.18"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LZ/LZE/Apache-DB-0.18.tar.gz"; - # hash = "sha256-ZSf08VmCcL6ge+x4e3G98OwrVyVIvnQ4z3TyuaYAv+0="; - # }; - # meta = { - # description = "Run the interactive Perl debugger under mod_perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ApacheLogFormatCompiler = buildPerlModule { - # pname = "Apache-LogFormat-Compiler"; - # version = "0.36"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Apache-LogFormat-Compiler-0.36.tar.gz"; - # hash = "sha256-lFCVA+506oIBg9BwwRYw7lvA/YwSy3T66VPtYuShrBc="; - # }; - # buildInputs = [ HTTPMessage ModuleBuildTiny TestMockTime TestRequires TryTiny URI ]; - # propagatedBuildInputs = [ POSIXstrftimeCompiler ]; - # # We cannot change the timezone on the fly. - # prePatch = "rm t/04_tz.t"; - # meta = { - # description = "Compile a log format string to perl-code"; - # homepage = "https://github.com/kazeburo/Apache-LogFormat-Compiler"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ApacheSession = buildPerlModule { - # pname = "Apache-Session"; - # version = "1.94"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CH/CHORNY/Apache-Session-1.94.tar.gz"; - # hash = "sha256-/mm3aJmv6QuK5bgt4qqnV1rakIk39EhbgKrvMXVj6Z8="; - # }; - # buildInputs = [ TestDeep TestException ]; - # meta = { - # description = "A persistence framework for session data"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ApacheTest = buildPerlPackage { - # pname = "Apache-Test"; - # version = "1.43"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHAY/Apache-Test-1.43.tar.gz"; - # hash = "sha256-qZmfAqeBpYkhi1ibGHnBHEladFrwlXXly7It/LZWgKw="; - # }; - # doCheck = false; - # meta = { - # description = "Test.pm wrapper with helpers for testing Apache"; - # license = with lib.licenses; [ asl20 ]; - # }; - # }; - - # AppCLI = buildPerlPackage { - # pname = "App-CLI"; - # version = "0.52"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PT/PTC/App-CLI-0.52.tar.gz"; - # hash = "sha256-Ur1D9VWRPML/1kBfmVHSqr1Gr2PXAdm140amMycJ8M4="; - # }; - # propagatedBuildInputs = [ CaptureTiny ClassLoad ]; - # buildInputs = [ TestKwalitee TestPod ]; - # meta = { - # description = "Dispatcher module for command line interface programs"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AppClusterSSH = buildPerlModule { - # pname = "App-ClusterSSH"; - # version = "4.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DU/DUNCS/App-ClusterSSH-4.16.tar.gz"; - # hash = "sha256-G3y4q2BoViRK34vZrE0nUHwuQWh7OvGiJs4dsvP9VXg="; - # }; - # propagatedBuildInputs = [ ExceptionClass Tk X11ProtocolOther XMLSimple ]; - # buildInputs = [ DataDump FileWhich Readonly TestDifferences TestTrap ]; - # preCheck = "rm t/30cluster.t t/15config.t"; # do not run failing tests - # postInstall = '' - # mkdir -p $out/share/bash-completion/completions - # mv $out/bin/clusterssh_bash_completion.dist \ - # $out/share/bash-completion/completions/clusterssh_bash_completion - # substituteInPlace $out/share/bash-completion/completions/clusterssh_bash_completion \ - # --replace '/bin/true' '${pkgs.coreutils}/bin/true' \ - # --replace 'grep' '${pkgs.gnugrep}/bin/grep' \ - # --replace 'sed' '${pkgs.gnused}/bin/sed' - # ''; - # meta = { - # description = "Cluster administration tool"; - # homepage = "https://github.com/duncs/clusterssh/wiki"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "cssh"; - # }; - # }; - - # AppCmd = buildPerlPackage { - # pname = "App-Cmd"; - # version = "0.336"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/App-Cmd-0.336.tar.gz"; - # hash = "sha256-35ZrV9WauxluADBIheW/EXypWBgq4/Tu3xchjqKDjoE="; - # }; - # buildInputs = [ TestFatal ]; - # propagatedBuildInputs = [ CaptureTiny ClassLoad GetoptLongDescriptive IOTieCombine ModulePluggable StringRewritePrefix ]; - # meta = { - # description = "Write command line apps with less suffering"; - # homepage = "https://github.com/rjbs/App-Cmd"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AppConfig = buildPerlPackage { - # pname = "AppConfig"; - # version = "1.71"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/AppConfig-1.71.tar.gz"; - # hash = "sha256-EXcCcCXssJ7mTZ+fJVYVwE214U91NsNEr2MgMuuIew8="; - # }; - # buildInputs = [ TestPod ]; - # meta = { - # description = "A bundle of Perl5 modules for reading configuration files and parsing command line arguments"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AppFatPacker = buildPerlPackage { - # pname = "App-FatPacker"; - # version = "0.010008"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MS/MSTROUT/App-FatPacker-0.010008.tar.gz"; - # hash = "sha256-Ep2zbchFZhpYIoaBDP4tUhbrLOCCutQK4fzc4PRd7M8="; - # }; - # meta = { - # description = "Pack your dependencies onto your script file"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "fatpack"; - # }; - # }; - - # Appcpanminus = buildPerlPackage { - # pname = "App-cpanminus"; - # version = "1.7047"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7047.tar.gz"; - # hash = "sha256-lj5jxuGocl/y9iTpCGOWrhUNtR3QozfDeB0JqZSvBaU="; - # }; - # # Use TLS endpoints for downloads and metadata by default - # preConfigure = '' - # substituteInPlace bin/cpanm \ - # --replace http://www.cpan.org https://www.cpan.org \ - # --replace http://backpan.perl.org https://backpan.perl.org \ - # --replace http://fastapi.metacpan.org https://fastapi.metacpan.org \ - # --replace http://cpanmetadb.plackperl.org https://cpanmetadb.plackperl.org - # ''; - # propagatedBuildInputs = [ IOSocketSSL ]; - # meta = { - # description = "Get, unpack, build and install modules from CPAN"; - # homepage = "https://github.com/miyagawa/cpanminus"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "cpanm"; - # }; - # }; - - # Appcpm = buildPerlModule { - # pname = "App-cpm"; - # version = "0.997014"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SK/SKAJI/App-cpm-0.997014.tar.gz"; - # hash = "sha256-LdTAPFQDnC0CzN0u+VvG/1bPvbdGzQdvywqVR8UEmQg="; - # }; - # buildInputs = [ ModuleBuildTiny ]; - # propagatedBuildInputs = [ CPAN02PackagesSearch CPANCommonIndex CPANDistnameInfo ClassTiny CommandRunner ExtUtilsInstall ExtUtilsInstallPaths FileCopyRecursive Filepushd HTTPTinyish MenloLegacy Modulecpmfile ModuleCPANfile ParsePMFile ParallelPipes locallib ]; - # nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang; - # postInstall = lib.optionalString stdenv.isDarwin '' - # shortenPerlShebang $out/bin/cpm - # ''; - # meta = { - # description = "A fast CPAN module installer"; - # homepage = "https://github.com/skaji/cpm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.zakame ]; - # mainProgram = "cpm"; - # }; - # }; - - # Applify = buildPerlPackage { - # pname = "Applify"; - # version = "0.23"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Applify-0.23.tar.gz"; - # hash = "sha256-fI3Z55e9DsJgDTAOzUnul4EZgxxlay0L3q7OoENIoRI="; - # }; - # meta = { - # description = "Write object oriented scripts with ease"; - # homepage = "https://github.com/jhthorsen/applify"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # AppMusicChordPro = buildPerlPackage { - # pname = "App-Music-ChordPro"; - # version = "6.030"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JV/JV/App-Music-ChordPro-6.030.tar.gz"; - # hash = "sha256-a+5H8U5gmYPkrBUyxxwajPQy9m6sWeDlaeHTfg2cwnc="; - # }; - # buildInputs = [ ObjectPad ]; - # propagatedBuildInputs = [ AppPackager FileLoadLines FileHomeDir IOString ImageInfo PDFAPI2 StringInterpolateNamed TextLayout ] - # ++ lib.optionals (!stdenv.isDarwin) [ Wx ]; - # nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang; - - # # Delete tests that fail when version env var is set, see - # # https://github.com/ChordPro/chordpro/issues/293 - # patchPhase = '' - # rm t/320_subst.t t/321_subst.t t/322_subst.t - # ''; - - # postInstall = lib.optionalString stdenv.isDarwin '' - # shortenPerlShebang $out/bin/chordpro - # rm $out/bin/wxchordpro # Wx not supported on darwin - # ''; - # meta = { - # description = "A lyrics and chords formatting program"; - # homepage = "https://www.chordpro.org"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "chordpro"; - # }; - # }; - - # AppPackager = buildPerlPackage { - # pname = "App-Packager"; - # version = "1.440"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JV/JV/App-Packager-1.440.tar.gz"; - # hash = "sha256-VoFBa+b9eJe+mEg8TqKOsN3gzGWzwg5o1HswRN7PKHo="; - # }; - # meta = { - # description = "Abstraction for Packagers"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Appperlbrew = buildPerlModule { - # pname = "App-perlbrew"; - # version = "0.98"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GU/GUGOD/App-perlbrew-0.98.tar.gz"; - # hash = "sha256-oWD3ESJYjdU12pTbsLgwHkjlONJaRCobE/cZCWKIWTI="; - # }; - # buildInputs = [ pkgs.curl FileWhich IOAll ModuleBuildTiny PathClass TestException TestNoWarnings TestOutput TestSpec TestTempDirTiny ]; - # propagatedBuildInputs = [ CPANPerlReleases CaptureTiny DevelPatchPerl PodParser locallib ]; - - # doCheck = false; - - # meta = { - # description = "Manage perl installations in your $HOME"; - # license = with lib.licenses; [ mit ]; - # mainProgram = "perlbrew"; - # }; - # }; - - # ArchiveAnyLite = buildPerlPackage { - # pname = "Archive-Any-Lite"; - # version = "0.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Archive-Any-Lite-0.11.tar.gz"; - # hash = "sha256-FcGIJTmTpLZuVZnweJsTJvCmbAkr2/rJMTcG1BwoUXA="; - # }; - # propagatedBuildInputs = [ ArchiveZip ]; - # buildInputs = [ ExtUtilsMakeMakerCPANfile TestUseAllModules ]; - # meta = { - # description = "Simple CPAN package extractor"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AppSqitch = buildPerlModule { - # version = "1.4.0"; - # pname = "App-Sqitch"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DW/DWHEELER/App-Sqitch-v1.4.0.tar.gz"; - # hash = "sha256-sNs4cDH3dWJmLgA7xV16EComOAtK1/25qKO61XaeUBw="; - # }; - # buildInputs = [ CaptureTiny TestDeep TestDir TestException TestFile TestFileContents TestMockModule TestMockObject TestNoWarnings TestWarn ]; - # propagatedBuildInputs = [ Clone ConfigGitLike DBI DateTime EncodeLocale HashMerge IOPager IPCRun3 IPCSystemSimple ListMoreUtils PathClass PerlIOutf8_strict PodParser StringFormatter StringShellQuote TemplateTiny Throwable TypeTiny URIdb libintl-perl ]; - # doCheck = false; # Can't find home directory. - # meta = { - # description = "Sensible database change management"; - # homepage = "https://sqitch.org"; - # license = with lib.licenses; [ mit ]; - # mainProgram = "sqitch"; - # }; - # }; - - # AppSt = buildPerlPackage { - # pname = "App-St"; - # version = "1.1.4"; - # src = fetchurl { - # url = "https://github.com/nferraz/st/archive/v1.1.4.tar.gz"; - # hash = "sha256-wCoW9n5MNXaQpUODGYQxSf1wDCIxKPn/6+yrKEnFi7g="; - # }; - # postInstall = - # '' - # ($out/bin/st --help || true) | grep Usage - # ''; - # meta = { - # description = "Simple Statistics"; - # homepage = "https://github.com/nferraz/st"; - # license = with lib.licenses; [ mit ]; - # maintainers = [ maintainers.eelco ]; - # mainProgram = "st"; - # }; - # }; - - # AttributeParamsValidate = buildPerlPackage { - # pname = "Attribute-Params-Validate"; - # version = "1.21"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/Attribute-Params-Validate-1.21.tar.gz"; - # hash = "sha256-WGuTnO/9s3GIt8Rh3RqPnzVpUYTIcDsFw19tUIyAkPU="; - # }; - # buildInputs = [ TestFatal ]; - # propagatedBuildInputs = [ ParamsValidate ]; - # doCheck = false; - # meta = { - # description = "Validate method/function parameters"; - # homepage = "https://metacpan.org/release/Params-Validate"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # ArchiveLibarchive = buildPerlPackage { - # pname = "Archive-Libarchive"; - # version = "0.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/Archive-Libarchive-0.08.tar.gz"; - # hash = "sha256-6ONC1U/T1uXn4xYP4IjBOgpQM8/76JSBodJHHUNyAFk="; - # }; - # patches = [ ./perl-modules/ArchiveLibarchive-set-findlib-path.patch ]; - # postPatch = '' - # substituteInPlace lib/Archive/Libarchive/Lib.pm --replace "@@libarchive@@" "${pkgs.libarchive.lib}/lib" - # ''; - # buildInputs = [ FFIC Filechdir PathTiny SubIdentify TermTable Test2Suite Test2ToolsMemoryCycle TestArchiveLibarchive TestScript ]; - # propagatedBuildInputs = [ FFICStat FFICheckLib FFIPlatypus FFIPlatypusTypeEnum FFIPlatypusTypePtrObject RefUtil ]; - # meta = { - # homepage = "https://metacpan.org/pod/Archive::Libarchive"; - # description = "Modern Perl bindings to libarchive"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ tomasajt ]; - # }; - # }; - - # ArchiveLibarchiveExtract = buildPerlPackage { - # pname = "Archive-Libarchive-Extract"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/Archive-Libarchive-Extract-0.03.tar.gz"; - # hash = "sha256-yXfAR0hnIX6zJvte5pA04e9spBQUkWHjEpAblf0SwIE="; - # }; - # buildInputs = [ Test2Suite TestScript ]; - # propagatedBuildInputs = [ ArchiveLibarchive Filechdir PathTiny RefUtil ]; - # meta = { - # homepage = "https://metacpan.org/pod/Archive::Libarchive::Extract"; - # description = "An archive extracting mechanism (using libarchive)"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ tomasajt ]; - # }; - # }; - - # ArchiveLibarchivePeek = buildPerlPackage { - # pname = "Archive-Libarchive-Peek"; - # version = "0.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/Archive-Libarchive-Peek-0.04.tar.gz"; - # hash = "sha256-DYhJ4xG2RsozWz6gGodTtAIkK5XOgAo7zNXHCC4nJPo="; - # }; - # buildInputs = [ Filechdir Test2Suite TestScript ]; - # propagatedBuildInputs = [ ArchiveLibarchive PathTiny RefUtil ]; - # meta = { - # homepage = "https://metacpan.org/pod/Archive::Libarchive::Peek"; - # description = "Peek into archives without extracting them"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ tomasajt ]; - # }; - # }; - - # ArrayCompare = buildPerlModule { - # pname = "Array-Compare"; - # version = "3.0.8"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAVECROSS/Array-Compare-v3.0.8.tar.gz"; - # hash = "sha256-MEc7XpEBU4QNJDHqlGO55W5SPN56PFBhadaaK5dC2DQ="; - # }; - - # buildInputs = [ TestNoWarnings ]; - # propagatedBuildInputs = [ Moo TypeTiny ]; - # meta = { - # description = "Perl extension for comparing arrays"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ArrayDiff = buildPerlPackage { - # pname = "Array-Diff"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/Array-Diff-0.09.tar.gz"; - # hash = "sha256-gAY5Lphh50FTfCu8kRbI5CuWLy4H6NZBov9qEcZEUHc="; - # }; - # propagatedBuildInputs = [ AlgorithmDiff ClassAccessor ]; - # meta = { - # description = "Find the differences between two arrays"; - # homepage = "https://github.com/neilb/array-diff-perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ArrayFIFO = buildPerlPackage { - # pname = "Array-FIFO"; - # version = "0.13"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DB/DBURKE/Array-FIFO-0.13.tar.gz"; - # hash = "sha256-virrX1qa8alvADNQilacqTrRmtFdx8a5mObXvHQMZvc="; - # }; - # buildInputs = [ TestDeep TestSpec TestTrap ]; - # propagatedBuildInputs = [ Moose namespaceautoclean ]; - # meta = { - # description = "A Simple limitable FIFO array, with sum and average methods"; - # homepage = "https://github.com/dwburke/perl-Array-FIFO"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # ArrayRefElem = buildPerlPackage { - # pname = "Array-RefElem"; - # version = "1.00"; - # src = fetchurl { - # url = "mirror://cpan/authors/id//G/GA/GAAS/Array-RefElem-1.00.tar.gz"; - # hash = "sha256-U7iAo67AQ+TjcM4SaCtHVt5F3XQtq1cpT+IaFUU87+M="; - # }; - # meta = { - # description = "Set up array elements as aliases"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ArrayUtils = buildPerlPackage { - # pname = "ArrayUtils"; - # version = "0.5"; - # src = fetchurl { - # url = "https://cpan.metacpan.org/authors/id/Z/ZM/ZMIJ/Array/Array-Utils-0.5.tar.gz"; - # hash = "sha256-id0bf82bQ3lJKjp3SW45/mzTebdz/QOmsWDdJu3mN3A="; - # }; - # meta = { - # description = "Small utils for array manipulation"; - # homepage = "https://metacpan.org/pod/Array::Utils"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AsyncPing = buildPerlPackage { - # pname = "AsyncPing"; - # version = "2016.1207"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/X/XI/XINFWANG/AsyncPing-2016.1207.tar.gz"; - # hash = "sha256-b76a/sF6d3B2+K2JksjSMAr2WpUDRD0dT/nD+NKZyVo="; - # }; - # meta = { - # description = "Ping a huge number of servers in several seconds"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # AsyncUtil = buildPerlPackage { - # pname = "Async-Util"; - # version = "0.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/W/WH/WHITNEY/Async-Util-0.01.tar.gz"; - # hash = "sha256-jzKxHKvFD2Xjh79W8mWBV6IsNah5Nmbhtfis/hMQkQY="; - # }; - # buildInputs = [ AnyEvent ListMoreUtils ]; - # meta = { - # description = "Utilities for doing common async operations"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ArchiveCpio = buildPerlPackage { - # pname = "Archive-Cpio"; - # version = "0.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PI/PIXEL/Archive-Cpio-0.10.tar.gz"; - # hash = "sha256-JG+zFml2TngzayGRE0Ei4HxE8tgtxPN9VSqyj4ZovtM="; - # }; - # meta = { - # description = "Module for manipulations of cpio archives"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; # See https://rt.cpan.org/Public/Bug/Display.html?id=43597#txn-569710 - # mainProgram = "cpio-filter"; - # }; - # }; - - # ArchiveExtract = buildPerlPackage { - # pname = "Archive-Extract"; - # version = "0.88"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BI/BINGOS/Archive-Extract-0.88.tar.gz"; - # hash = "sha256-z/zxNc0GIih9OwIVT31nFklUSfyu0DlmYhlI4l6l90I="; - # }; - # meta = { - # description = "Generic archive extracting mechanism"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ArchiveTar = buildPerlPackage { - # pname = "Archive-Tar"; - # version = "3.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BI/BINGOS/Archive-Tar-3.02.tar.gz"; - # hash = "sha256-gWM8h/c3hGGD01wPTJ1ALalHqEa0iBswzObZ6+PInRk="; - # }; - # meta = { - # description = "Manipulates TAR archives"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "ptar"; - # }; - # }; - - # ArchiveTarWrapper = buildPerlPackage { - # pname = "Archive-Tar-Wrapper"; - # version = "0.38"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AR/ARFREITAS/Archive-Tar-Wrapper-0.38.tar.gz"; - # hash = "sha256-GfPQ2qi5XP+2jHBDUN0GdKI+HS8U0DKQO36WCe23s3o="; - # }; - # propagatedBuildInputs = [ FileWhich IPCRun LogLog4perl ]; - # meta = { - # description = "API wrapper around the 'tar' utility"; - # license = with lib.licenses; [ gpl3Plus ]; - # }; - # }; - - # ArchiveZip = buildPerlPackage { - # pname = "Archive-Zip"; - # version = "1.68"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PH/PHRED/Archive-Zip-1.68.tar.gz"; - # hash = "sha256-mE4YXXhbr2EpxudfjrREEXRawAv2Ei+xyOgio4YexlA="; - # }; - # buildInputs = [ TestMockModule ]; - # meta = { - # description = "Provide an interface to ZIP archive files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "crc32"; - # }; - # }; - - # AstroFITSHeader = buildPerlModule { - # pname = "Astro-FITS-Header"; - # version = "3.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GS/GSB/Astro-FITS-Header-3.09.tar.gz"; - # hash = "sha256-cq1oveWku+zv8VFtZ3A/4tACFDlwQpo81pplFlLVaYY="; - # }; - # meta = { - # description = "Object-oriented interface to FITS HDUs"; - # homepage = "https://github.com/timj/perl-Astro-FITS-Header"; - # license = with lib.licenses; [ gpl3Plus ]; - # }; - # }; - - # AudioCuefileParser = buildPerlPackage { - # pname = "Audio-Cuefile-Parser"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MATTK/Audio-Cuefile-Parser-0.02.tar.gz"; - # hash = "sha256-ulbQcMhz2WxoatmoH99P6JuETkPrSd/gAL+c70PFtmk="; - # }; - # meta = { - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AudioFLACHeader = buildPerlPackage { - # pname = "Audio-FLAC-Header"; - # version = "2.4"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DANIEL/Audio-FLAC-Header-2.4.tar.gz"; - # hash = "sha256-+6WRHWwi2BUGVlzZoUOOhgVCD/eYbPA9GhLQBqQHBUM="; - # }; - # meta = { - # description = "Interface to FLAC header metadata"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AudioScan = buildPerlPackage { - # pname = "Audio-Scan"; - # version = "1.05"; - # src = fetchurl { - # url = "https://github.com/Logitech/slimserver-vendor/raw/public/8.3/CPAN/Audio-Scan-1.05.tar.gz"; - # hash = "sha256-9YXC8GHPRWKlV8emmTke7RB0HhiCbALmZQqtQFLcBi4="; - # }; - # buildInputs = [ pkgs.zlib TestWarn ]; - # env.NIX_CFLAGS_COMPILE = "-I${pkgs.zlib.dev}/include"; - # NIX_CFLAGS_LINK = "-L${pkgs.zlib.out}/lib -lz"; - # meta = { - # description = "Fast C metadata and tag reader for all common audio file formats, slimserver fork"; - # homepage = "https://github.com/Logitech/slimserver-vendor"; - # license = with lib.licenses; [ gpl2Plus ]; - # }; - # }; - - # AuthenDecHpwd = buildPerlModule { - # pname = "Authen-DecHpwd"; - # version = "2.007"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Authen-DecHpwd-2.007.tar.gz"; - # hash = "sha256-9DqTuwK0H3Mn2S+eljtpUF9nNQpS6PUHlvmK/E+z8Xc="; - # }; - # perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local' - # propagatedBuildInputs = [ DataInteger DigestCRC ScalarString ]; - # meta = { - # description = "DEC VMS password hashing"; - # license = with lib.licenses; [ gpl1Plus ]; - # }; - # }; - - # AuthenHtpasswd = buildPerlPackage { - # pname = "Authen-Htpasswd"; - # version = "0.171"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MS/MSTROUT/Authen-Htpasswd-0.171.tar.gz"; - # hash = "sha256-tfr0fj+UikUoEGzLiMxxBIz+WY5bAmpEQ2i8fjk0gGc="; - # }; - # propagatedBuildInputs = [ ClassAccessor CryptPasswdMD5 DigestSHA1 IOLockedFile ]; - # # Remove test files that fail after DES support was removed from crypt() - # postPatch = '' - # rm t/04core.t t/05edit.t - # ''; - # meta = { - # description = "Interface to read and modify Apache .htpasswd files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AuthenKrb5 = buildPerlModule { - # pname = "Authen-Krb5"; - # version = "1.905"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IO/IOANR/Authen-Krb5-1.905.tar.gz"; - # hash = "sha256-13sAuxUBpW9xGOkarAx+Qi2888QY+c6YuAF3HDqg900="; - # }; - # perlPreHook = "export LD=$CC"; - # propagatedBuildInputs = [ pkgs.libkrb5 ]; - # buildInputs = [ DevelChecklib FileWhich PkgConfig ]; - # meta = { - # description = "XS bindings for Kerberos 5"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AuthenKrb5Admin = buildPerlPackage { - # pname = "Authen-Krb5-Admin"; - # version = "0.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SJ/SJQUINNEY/Authen-Krb5-Admin-0.17.tar.gz"; - # hash = "sha256-XdScrNmD79YajD8aVlcbtzeF6xVZCLXXvsl+7XjfDFQ="; - # }; - # propagatedBuildInputs = [ pkgs.krb5.dev AuthenKrb5 ]; - # # The following ENV variables are required by Makefile.PL to find - # # programs in krb5.dev. It is not enough to just specify the - # # path to krb5-config as this tool returns the prefix of krb5, - # # which implies a working value for KRB5_LIBDIR, but not the others. - # perlPreHook = '' - # export KRB5_CONFTOOL=${pkgs.krb5.dev}/bin/krb5-config - # export KRB5_BINDIR=${pkgs.krb5.dev}/bin - # export KRB5_INCDIR=${pkgs.krb5.dev}/include - # ''; - # # Tests require working Kerberos infrastructure so replace with a - # # simple attempt to exercise the module. - # checkPhase = '' - # perl -I blib/lib -I blib/arch -MAuthen::Krb5::Admin -e 'print "1..1\nok 1\n"' - # ''; - # meta = { - # description = "Perl extension for MIT Kerberos 5 admin interface"; - # license = with lib.licenses; [ bsd3 ]; - # }; - # }; - - # AuthenModAuthPubTkt = buildPerlPackage { - # pname = "Authen-ModAuthPubTkt"; - # version = "0.1.1"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AG/AGORDON/Authen-ModAuthPubTkt-0.1.1.tar.gz"; - # hash = "sha256-eZbhpCxRIWADzPA8S1JQKGtMVWhCV5cYUfXs6RYdx90="; - # }; - # propagatedBuildInputs = [ pkgs.openssl IPCRun3 ]; - # patchPhase = '' - # sed -i 's|my $openssl_bin = "openssl";|my $openssl_bin = "${pkgs.openssl}/bin/openssl";|' lib/Authen/ModAuthPubTkt.pm - # # -dss1 doesn't exist for dgst in openssl 1.1, -sha1 can also handle DSA keys now - # sed -i 's|-dss1|-sha1|' lib/Authen/ModAuthPubTkt.pm - # ''; - # meta = { - # description = "Generate Tickets (Signed HTTP Cookies) for mod_auth_pubtkt protected websites"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "mod_auth_pubtkt.pl"; - # }; - # }; - - # AuthenOATH = buildPerlPackage { - # pname = "Authen-OATH"; - # version = "2.0.1"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/O/OA/OALDERS/Authen-OATH-2.0.1.tar.gz"; - # hash = "sha256-GoE9vcBcP72d0528/YXiz7C6PQ9lLPaybsg6uBRt3Hc="; - # }; - # buildInputs = [ TestNeeds ]; - # propagatedBuildInputs = [ DigestHMAC Moo TypeTiny ]; - # meta = { - # description = "OATH One Time Passwords"; - # homepage = "https://github.com/oalders/authen-oath"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # AuthenPassphrase = buildPerlModule { - # pname = "Authen-Passphrase"; - # version = "0.008"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Authen-Passphrase-0.008.tar.gz"; - # hash = "sha256-VdtFIGF9hZ2IwO5Ull2oFbcibXkrjNyN6/kgc1WeBGM="; - # }; - # propagatedBuildInputs = [ AuthenDecHpwd CryptDES CryptEksblowfish CryptMySQL CryptPasswdMD5 CryptUnixCryptXS DataEntropy DigestMD4 ModuleRuntime ]; - # meta = { - # description = "Hashed passwords/passphrases as objects"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AuthenRadius = buildPerlPackage { - # pname = "Authen-Radius"; - # version = "0.32"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PO/PORTAONE/Authen-Radius-0.32.tar.gz"; - # hash = "sha256-eyCPmDfIOhhCZyVIklNlh+7Qvd5J577euj1ypmUjF0A="; - # }; - # buildInputs = [ TestNoWarnings ]; - # propagatedBuildInputs = [ DataHexDump NetIP ]; - # meta = { - # description = "Provide simple Radius client facilities"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - AuthenSASL = buildPerlPackage { - pname = "Authen-SASL"; - version = "2.1700"; - src = fetchurl { - url = "mirror://cpan/authors/id/E/EH/EHUELS/Authen-SASL-2.1700.tar.gz"; - hash = "sha256-uG1aV2uNOHruJPOfR6VK/RS7ZrCQA9tQZQAfHeA6js4="; - }; - propagatedBuildInputs = [ DigestHMAC ]; - meta = { - description = "SASL Authentication framework"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # AuthenSASLSASLprep = buildPerlModule { - # pname = "Authen-SASL-SASLprep"; - # version = "1.100"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CF/CFAERBER/Authen-SASL-SASLprep-1.100.tar.gz"; - # hash = "sha256-pMzMNLs/U6zwunjJ/GGvjRVtEJ0cEEh7pZiKVQd9H3A="; - # }; - # buildInputs = [ TestNoWarnings ]; - # propagatedBuildInputs = [ UnicodeStringprep ]; - # meta = { - # description = "A Stringprep Profile for User Names and Passwords (RFC 4013)"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # AuthenSCRAM = buildPerlPackage { - # pname = "Authen-SCRAM"; - # version = "0.011"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Authen-SCRAM-0.011.tar.gz"; - # hash = "sha256-RRCMI5pzc9AJQdzw0XGs0D58FqY85vfZVo/wUrF89ag="; - # }; - # buildInputs = [ TestFailWarnings TestFatal ]; - # propagatedBuildInputs = [ AuthenSASLSASLprep CryptURandom Moo PBKDF2Tiny TypeTiny namespaceclean ]; - # meta = { - # description = "Salted Challenge Response Authentication Mechanism (RFC 5802)"; - # homepage = "https://github.com/dagolden/Authen-SCRAM"; - # license = with lib.licenses; [ asl20 ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # AuthenSimple = buildPerlPackage { - # pname = "Authen-Simple"; - # version = "0.5"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CH/CHANSEN/Authen-Simple-0.5.tar.gz"; - # hash = "sha256-As3atH+L8aHL1Mm/jSWPbQURFJnDP4MV5yRIEvcmE6o="; - # }; - # # Our C crypt() doesn't support this weak "crypt" algorithm anymore. - # postPatch = '' - # patch -p1 <<-EOF - # --- a/t/09password.t - # +++ b/t/09password.t - # @@ -10 +10 @@ - # -use Test::More tests => 16; - # +use Test::More tests => 14; - # @@ -14 +13,0 @@ - # - [ 'crypt', 'lk9Mh5KHGjAaM', 'crypt' ], - # @@ -18 +16,0 @@ - # - [ 'crypt', '{CRYPT}lk9Mh5KHGjAaM', '{CRYPT}' ], - # EOF - # ''; - # propagatedBuildInputs = [ ClassAccessor ClassDataInheritable CryptPasswdMD5 ParamsValidate ]; - # meta = { - # description = "Simple Authentication"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # AuthenSimplePasswd = buildPerlModule { - # pname = "Authen-Simple-Passwd"; - # version = "0.6"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CH/CHANSEN/Authen-Simple-Passwd-0.6.tar.gz"; - # hash = "sha256-z1W8NiWe3w/Wr5rSusgbMdxbVqFixmBZDsuWnHwWdLI="; - # }; - # # Our C crypt() doesn't support this weak "crypt" algorithm anymore. - # postPatch = '' - # sed -e 's/tests => 8/tests => 7/' -e "/'crypt'/d" -i t/04basic.t - # ''; - # propagatedBuildInputs = [ AuthenSimple ]; - # meta = { - # description = "Simple Passwd authentication"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # autobox = buildPerlPackage { - # pname = "autobox"; - # version = "3.0.1"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CH/CHOCOLATE/autobox-v3.0.1.tar.gz"; - # hash = "sha256-wwO3/M+qH/TUxCmrPxXlyip3VU74yfw7jGK6hZ6HTJg="; - # }; - # propagatedBuildInputs = [ ScopeGuard ]; - # buildInputs = [ IPCSystemSimple TestFatal ]; - # meta = { - # description = "Call methods on native types"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # Autodia = buildPerlPackage { - # pname = "Autodia"; - # version = "2.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TE/TEEJAY/Autodia-2.14.tar.gz"; - # hash = "sha256-rIElyIq+Odn+Aco6zBOgCinzM2pLt+9gRH5ri4Iv9CI="; - # }; - # propagatedBuildInputs = [ TemplateToolkit XMLSimple ]; - # buildInputs = [ DBI ]; - - # meta = { - # description = "AutoDia, create UML diagrams from source code"; - # longDescription = '' - # AutoDia is a modular application that parses source code, XML or data - # and produces an XML document in Dia format (or images via graphviz - # and vcg). Its goal is to be a UML / DB Schema diagram autocreation - # package. The diagrams its creates are standard UML diagrams showing - # dependencies, superclasses, packages, classes and inheritances, as - # well as the methods, etc of each class. - - # AutoDia supports any language that a Handler has been written for, - # which includes C, C++, Java, Perl, Python, and more. - # ''; - # homepage = "http://www.aarontrevena.co.uk/opensource/autodia/"; - # license = with lib.licenses; [ gpl2Plus ]; - # mainProgram = "autodia.pl"; - # }; - # }; - - # AWSSignature4 = buildPerlModule { - # pname = "AWS-Signature4"; - # version = "1.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LD/LDS/AWS-Signature4-1.02.tar.gz"; - # hash = "sha256-ILvBbLNFT+XozzT+YfGpH+JsPxfkSf9mX8u7kqtEPr0="; - # }; - # propagatedBuildInputs = [ LWP TimeDate URI ]; - # meta = { - # description = "Create a version4 signature for Amazon Web Services"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # autovivification = buildPerlPackage { - # pname = "autovivification"; - # version = "0.18"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/V/VP/VPIT/autovivification-0.18.tar.gz"; - # hash = "sha256-LZmXVoUkKYDQqZBPY5FEwFnW7OFYme/eSst0LTJT8QU="; - # }; - # meta = { - # description = "Lexically disable autovivification"; - # homepage = "https://search.cpan.org/dist/autovivification"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # BarcodeZBar = buildPerlPackage { - # pname = "Barcode-ZBar"; - # version = "0.04pre"; - # # The meta::cpan version of this module has been unmaintained from 2009 - # # This uses an updated version from the ZBar repo that works with the current ZBar library - # src = "${pkgs.zbar.src}/perl"; - # postPatch = '' - # substituteInPlace Makefile.PL --replace "-lzbar" "-L${pkgs.zbar.lib}/lib -lzbar" - # rm t/Processor.t - # ''; - # buildInputs =[ ExtUtilsMakeMaker ]; - # propagatedBuildInputs = [ pkgs.zbar PerlMagick ]; - # perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC"; - # meta = { - # description = "Perl interface to the ZBar Barcode Reader"; - # homepage = "https://metacpan.org/pod/Barcode::ZBar"; - # license = with lib.licenses; [ lgpl21Plus ]; - # }; - # }; - - # BC = buildPerlPackage { - # pname = "B-C"; - # version = "1.57"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RU/RURBAN/B-C-1.57.tar.gz"; - # hash = "sha256-BFKmEdNDrfnZX86ra6a2YXbjrX/MzlKAkiwOQx9RSf8="; - # }; - # propagatedBuildInputs = [ BFlags IPCRun Opcodes ]; - # doCheck = false; /* test fails */ - # meta = { - # description = "Perl compiler"; - # homepage = "https://github.com/rurban/perl-compiler"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "perlcc"; - # }; - # }; - - BCOW = buildPerlPackage { - pname = "B-COW"; - version = "0.007"; - src = fetchurl { - url = "mirror://cpan/authors/id/A/AT/ATOOMIC/B-COW-0.007.tar.gz"; - hash = "sha256-EpDa8ifosJiJoxzxguKRBvHPnxpOm/d1L53pLtEVi0Q="; - }; - meta = { - description = "B::COW additional B helpers to check COW status"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # BFlags = buildPerlPackage { - # pname = "B-Flags"; - # version = "0.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RU/RURBAN/B-Flags-0.17.tar.gz"; - # hash = "sha256-wduX0BMVvtEJtMSJWM0yGVz8nvXTt3B+tHhAwdV8ELI="; - # }; - # meta = { - # description = "Friendlier flags for B"; - # license = with lib.licenses; [ artistic1 gpl1Only ]; - # }; - # }; - - # BeanstalkClient = buildPerlPackage { - # pname = "Beanstalk-Client"; - # version = "1.07"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GB/GBARR/Beanstalk-Client-1.07.tar.gz"; - # hash = "sha256-MYirESfyyrqX32XIT2nbDscMZOXXDylvmiZ0+nnBEsw="; - # }; - # propagatedBuildInputs = [ ClassAccessor YAMLSyck ]; - # meta = { - # description = "Client to communicate with beanstalkd server"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # BerkeleyDB = buildPerlPackage { - # pname = "BerkeleyDB"; - # version = "0.65"; - - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PM/PMQS/BerkeleyDB-0.65.tar.gz"; - # hash = "sha256-QQqonnIylB1JEGyeBI1jN0dVQ+wdIz6nzbcly1uWNQQ="; - # }; - - # preConfigure = '' - # echo "LIB = ${pkgs.db.out}/lib" > config.in - # echo "INCLUDE = ${pkgs.db.dev}/include" >> config.in - # ''; - # meta = { - # description = "Perl extension for Berkeley DB version 2, 3, 4, 5 or 6"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # BDB = buildPerlPackage rec { - # pname = "BDB"; - # version = "1.92"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${pname}-${version}.tar.gz"; - # hash = "sha256-o/LKnSuu/BqqQJCLL5y5KS/aPn15fji7146rudna62s="; - # }; - # env.NIX_CFLAGS_COMPILE = "-I${pkgs.db4.dev}/include"; - # NIX_CFLAGS_LINK = "-L${pkgs.db4.out}/lib -ldb"; - # buildInputs = [ pkgs.db4 ]; - # propagatedBuildInputs = [ commonsense ]; - # meta = { - # description = "Asynchronous Berkeley DB access"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # BHooksEndOfScope = buildPerlPackage { - # pname = "B-Hooks-EndOfScope"; - # version = "0.26"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/B-Hooks-EndOfScope-0.26.tar.gz"; - # hash = "sha256-Od8vjAB6dUZyB1+VuQeXuuvpetptlEsZemNScJyzBnE="; - # }; - # propagatedBuildInputs = [ ModuleImplementation SubExporterProgressive ]; - # meta = { - # description = "Execute code after a scope finished compilation"; - # homepage = "https://github.com/karenetheridge/B-Hooks-EndOfScope"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # BHooksOPAnnotation = buildPerlPackage { - # pname = "B-Hooks-OP-Annotation"; - # version = "0.44"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CH/CHOCOLATE/B-Hooks-OP-Annotation-0.44.tar.gz"; - # hash = "sha256-bib5k2f06pRBac9uBc9NBngyCCQkyo7O/Mt7WmMhexY="; - # }; - # propagatedBuildInputs = [ ExtUtilsDepends ]; - # meta = { - # description = "Annotate and delegate hooked OPs"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # BHooksOPCheck = buildPerlPackage { - # pname = "B-Hooks-OP-Check"; - # version = "0.22"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/B-Hooks-OP-Check-0.22.tar.gz"; - # hash = "sha256-x7XRvvWe+Qh/9n6zFo0mJL6UrlRkRp4lmtEb+4rYzc0="; - # }; - # buildInputs = [ ExtUtilsDepends ]; - # meta = { - # description = "Wrap OP check callbacks"; - # homepage = "https://github.com/karenetheridge/B-Hooks-OP-Check"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # BioExtAlign = callPackage ./perl-modules/Bio-Ext-Align { }; - - # BioDBHTS = buildPerlModule { - # pname = "Bio-DB-HTS"; - # version = "3.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AV/AVULLO/Bio-DB-HTS-3.01.tar.gz"; - # sha256 = "12a6bc1f579513cac8b9167cce4e363655cc8eba26b7d9fe1170dfe95e044f42"; - # }; - - # buildInputs = [ pkgs.htslib pkgs.zlib ]; - - # propagatedBuildInputs = [ BioPerl ]; - # htslibStore = toString pkgs.htslib; - - # postPatch = '' - # # -Wl,-rpath not recognized : replaced by -rpath= - # sed -i 's/Wl,-rpath,/rpath=/' Build.PL - # ''; - - # preBuild = '' - # export HTSLIB_DIR=${pkgs.htslib} - # ''; - - # meta = { - # description = "Perl interface to HTS library for DNA sequencing"; - # license = lib.licenses.asl20; - # }; - # }; - - # BioBigFile = callPackage ./perl-modules/Bio-BigFile { }; - - # BioPerl = buildPerlPackage { - # pname = "BioPerl"; - # version = "1.7.8"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CJ/CJFIELDS/BioPerl-1.7.8.tar.gz"; - # hash = "sha256-xJCjvncV6m5DBe/ZcQ5e2rgtq8Vf14a2UFtVCjDXFzg="; - # }; - # buildInputs = [ ModuleBuild TestMemoryCycle TestWeaken TestDeep TestWarn TestException TestDifferences ]; - # propagatedBuildInputs = [ DataStag Error Graph HTTPMessage IOString IOStringy IPCRun LWP ListMoreUtils SetScalar TestMost TestRequiresInternet URI XMLDOM XMLLibXML XMLSAX XMLSAXBase XMLSAXWriter XMLTwig XMLWriter YAML DBFile libxml_perl ]; - # meta = { - # description = "Perl modules for biology"; - # homepage = "https://metacpan.org/release/BioPerl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # BitVector = buildPerlPackage { - # pname = "Bit-Vector"; - # version = "7.4"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/ST/STBEY/Bit-Vector-7.4.tar.gz"; - # hash = "sha256-PG2qZx/s+8Nfkqk4W1Y9ZfUN/Gvci0gF+e9GwNA1qSY="; - # }; - # propagatedBuildInputs = [ CarpClan ]; - # meta = { - # description = "Efficient bit vector, set of integers and 'big int' math library"; - # license = with lib.licenses; [ artistic1 gpl1Plus lgpl2Only ]; - # }; - # }; - - # BKeywords = buildPerlPackage { - # pname = "B-Keywords"; - # version = "1.26"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RU/RURBAN/B-Keywords-1.26.tar.gz"; - # hash = "sha256-LaoVXS8mf7De3Yf4pMT7VmOHn8EGUXse4lg1Pvh67TQ="; - # }; - # meta = { - # description = "Lists of reserved barewords and symbol names"; - # license = with lib.licenses; [ artistic1 gpl2Only ]; - # }; - # }; - - # boolean = buildPerlPackage { - # pname = "boolean"; - # version = "0.46"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IN/INGY/boolean-0.46.tar.gz"; - # hash = "sha256-lcCICFw+g79oD+bOFtgmTsJjEEkPfRaA5BbqehGPFWo="; - # }; - # meta = { - # description = "Boolean support for Perl"; - # homepage = "https://github.com/ingydotnet/boolean-pm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # BoostGeometryUtils = buildPerlModule { - # pname = "Boost-Geometry-Utils"; - # version = "0.15"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AA/AAR/Boost-Geometry-Utils-0.15.tar.gz"; - # hash = "sha256-AFTdP1c70/b0e3PugdHoRYQvugSq21KICqUnAcaH0co="; - # }; - # patches = [ - # # Fix out of memory error on Perl 5.19.4 and later. - # ./perl-modules/boost-geometry-utils-fix-oom.patch - # ]; - # perlPreHook = "export LD=$CC"; - # buildInputs = [ ExtUtilsCppGuess ExtUtilsTypemapsDefault ExtUtilsXSpp ModuleBuildWithXSpp ]; - # meta = { - # description = "Bindings for the Boost Geometry library"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # BotTraining = buildPerlPackage { - # pname = "Bot-Training"; - # version = "0.07"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AV/AVAR/Bot-Training-0.07.tar.gz"; - # hash = "sha256-7ma7+BTw3D0egGgOBQ+tELHgGP7Xkp9lPtQOCIsqopU="; - # }; - # buildInputs = [ FileSlurp ]; - # propagatedBuildInputs = [ ClassLoad DirSelf FileShareDir ModulePluggable MooseXGetopt namespaceclean ]; - # meta = { - # description = "Plain text training material for bots like Hailo and AI::MegaHAL"; - # homepage = "https://metacpan.org/release/Bot-Training"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "bot-training"; - # }; - # }; - - # BotTrainingMegaHAL = buildPerlPackage { - # pname = "Bot-Training-MegaHAL"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AV/AVAR/Bot-Training-MegaHAL-0.03.tar.gz"; - # hash = "sha256-lWByr/BPIW5cO4GWlltdgNTUdpXXfsqr1W5Z1l8iv2A="; - # }; - # buildInputs = [ FileShareDirInstall ]; - # propagatedBuildInputs = [ BotTraining ]; - # meta = { - # description = "Provide megahal.trn via Bot::Training"; - # homepage = "https://metacpan.org/release/Bot-Training-MegaHAL"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # BotTrainingStarCraft = buildPerlPackage { - # pname = "Bot-Training-StarCraft"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AV/AVAR/Bot-Training-StarCraft-0.03.tar.gz"; - # hash = "sha256-58640Bxi5zLdib/l9Ng+eBwc2RJULRd8Iudht8hhTV4="; - # }; - # buildInputs = [ FileShareDirInstall ]; - # propagatedBuildInputs = [ BotTraining ]; - # meta = { - # description = "Provide starcraft.trn via Bot::Training"; - # homepage = "https://metacpan.org/release/Bot-Training-StarCraft"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # BSDResource = buildPerlPackage { - # pname = "BSD-Resource"; - # version = "1.2911"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JH/JHI/BSD-Resource-1.2911.tar.gz"; - # hash = "sha256-nRz7oGPMGPckJ6IkUfeQiDa3MxrIeF2+B1U8WwQ6DD0="; - # }; - # meta = { - # description = "BSD process resource limit and priority functions"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = teams.deshaw.members; - # }; - # }; - - # BSON = buildPerlPackage { - # pname = "BSON"; - # version = "1.12.2"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MO/MONGODB/BSON-v1.12.2.tar.gz"; - # hash = "sha256-9GEsDDVDEHQbmattJkUSJoIxUMonEJsbORIy1c/dpts="; - # }; - # buildInputs = [ JSONMaybeXS PathTiny TestDeep TestFatal ]; - # propagatedBuildInputs = [ CryptURandom Moo TieIxHash boolean namespaceclean ]; - # meta = { - # description = "BSON serialization and deserialization (EOL)"; - # homepage = "https://github.com/mongodb-labs/mongo-perl-bson"; - # license = with lib.licenses; [ asl20 ]; - # }; - # }; - - # BSONXS = buildPerlPackage { - # pname = "BSON-XS"; - # version = "0.8.4"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MO/MONGODB/BSON-XS-v0.8.4.tar.gz"; - # hash = "sha256-KPfTOP14tvnJpggL6d4/XLI9iIuW6/b8v6zp8pZq6/k="; - # }; - # buildInputs = [ ConfigAutoConf JSONMaybeXS PathTiny TestDeep TestFatal TieIxHash ]; - # propagatedBuildInputs = [ BSON boolean JSONXS JSONPP CpanelJSONXS ]; - # meta = { - # description = "XS implementation of MongoDB's BSON serialization (EOL)"; - # homepage = "https://github.com/mongodb-labs/mongo-perl-bson-xs"; - # license = with lib.licenses; [ asl20 ]; - # platforms = lib.platforms.linux; # configure phase fails with "ld: unknown option: -mmacosx-version-min=10.12" - # }; - # }; - - # BUtils = buildPerlPackage { - # pname = "B-Utils"; - # version = "0.27"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/B-Utils-0.27.tar.gz"; - # hash = "sha256-+X9T9qMFAQmqQU/usYTK0QGBLUF2DpUrXYSZP2aF/+o="; - # }; - # propagatedBuildInputs = [ TaskWeaken ]; - # buildInputs = [ ExtUtilsDepends ]; - # meta = { - # description = "Helper functions for op tree manipulation"; - # homepage = "https://search.cpan.org/dist/B-Utils"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # BusinessHours = buildPerlPackage { - # pname = "Business-Hours"; - # version = "0.13"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BP/BPS/Business-Hours-0.13.tar.gz"; - # hash = "sha256-qAf+P/u4T/pTlnEazOdXZPOknyQjZGc1DHHIp3pcPsI="; - # }; - # propagatedBuildInputs = [ SetIntSpan ]; - # meta = { - # description = "Calculate business hours in a time period"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # BusinessISBN = buildPerlPackage { - # pname = "Business-ISBN"; - # version = "3.008"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BD/BDFOY/Business-ISBN-3.008.tar.gz"; - # hash = "sha256-GcSh1NmaDddpWpAZKxNASg4+7r7fy+l6AgLjayOMDmk="; - # }; - # propagatedBuildInputs = [ BusinessISBNData ]; - # meta = { - # description = "Work with International Standard Book Numbers"; - # homepage = "https://github.com/briandfoy/business-isbn"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # BusinessISBNData = buildPerlPackage { - # pname = "Business-ISBN-Data"; - # version = "20231006.001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BD/BDFOY/Business-ISBN-Data-20231006.001.tar.gz"; - # hash = "sha256-KhazbjIzXOjI337m8ig2LzSuc8T8wSNQCVCiyMd/F0g="; - # }; - # meta = { - # description = "Data pack for Business::ISBN"; - # homepage = "https://github.com/briandfoy/business-isbn-data"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # BusinessISMN = buildPerlPackage { - # pname = "Business-ISMN"; - # version = "1.203"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BD/BDFOY/Business-ISMN-1.203.tar.gz"; - # hash = "sha256-T1Ou2rLmh9Th9yhW6vwiFZOQYhEj2q955FBqiX4pPog="; - # }; - # propagatedBuildInputs = [ TieCycle ]; - # meta = { - # description = "Work with International Standard Music Numbers"; - # homepage = "https://github.com/briandfoy/business-ismn"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # BusinessISSN = buildPerlPackage { - # pname = "Business-ISSN"; - # version = "1.005"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BD/BDFOY/Business-ISSN-1.005.tar.gz"; - # hash = "sha256-OwmwJn8KZmD7krb1DEx3lu9qJjtirTu+qgcYmgx8ObM="; - # }; - # meta = { - # description = "Perl extension for International Standard Serial Numbers"; - # homepage = "https://github.com/briandfoy/business-issn"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # BytesRandomSecure = buildPerlPackage { - # pname = "Bytes-Random-Secure"; - # version = "0.29"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAVIDO/Bytes-Random-Secure-0.29.tar.gz"; - # hash = "sha256-U7vTOeahHvygfGGaYVx8GIpouyvoSaHLfvw91Nmuha4="; - # }; - # propagatedBuildInputs = [ CryptRandomSeed MathRandomISAAC ]; - # meta = { - # description = "Perl extension to generate cryptographically-secure random bytes"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # BytesRandomSecureTiny = buildPerlPackage { - # pname = "Bytes-Random-Secure-Tiny"; - # version = "1.011"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAVIDO/Bytes-Random-Secure-Tiny-1.011.tar.gz"; - # hash = "sha256-A9lntfgoRpCRN9WrmYSsVwrBCkQB4MYC89IgjEZayYI="; - # }; - # meta = { - # description = "A tiny Perl extension to generate cryptographically-secure random bytes"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # CacheCache = buildPerlPackage { - # pname = "Cache-Cache"; - # version = "1.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Cache-Cache-1.08.tar.gz"; - # hash = "sha256-0sf9Xbpd0BC32JI1FokLtsz2tfGIzLafNcsP1sAx0eg="; - # }; - # propagatedBuildInputs = [ DigestSHA1 Error IPCShareLite ]; - # doCheck = false; # randomly fails - # meta = { - # description = "The Cache Interface"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CacheFastMmap = buildPerlPackage { - # pname = "Cache-FastMmap"; - # version = "1.57"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RO/ROBM/Cache-FastMmap-1.57.tar.gz"; - # hash = "sha256-4Es6KNmJ7bj7lur6zcK4f57MuE8EfrLifLJqp9CMx7g="; - # }; - # buildInputs = [ TestDeep ]; - # meta = { - # description = "Uses an mmap'ed file to act as a shared memory interprocess cache"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CacheKyotoTycoon = buildPerlModule { - # pname = "Cache-KyotoTycoon"; - # version = "0.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Cache-KyotoTycoon-0.16.tar.gz"; - # hash = "sha256-zLBII1iUxItpegDleMtFC05evBQYpVSnz6hjJwezlHw="; - # }; - # propagatedBuildInputs = [ Furl URI ]; - # buildInputs = [ FileWhich TestRequires TestSharedFork TestTCP ]; - # meta = { - # description = "KyotoTycoon client library"; - # homepage = "https://github.com/tokuhirom/Cache-KyotoTycoon"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CacheMemcached = buildPerlPackage { - # pname = "Cache-Memcached"; - # version = "1.30"; - # src = fetchurl { - # url = - # "mirror://cpan/authors/id/D/DO/DORMANDO/Cache-Memcached-1.30.tar.gz"; - # hash = "sha256-MbPFHsDqrwMALizI49fVy+YZGc/a2mHACOuYU6ysQqk="; - # }; - # propagatedBuildInputs = [ StringCRC32 ]; - # meta = { - # description = "Client library for memcached (memory cache daemon)"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CacheMemcachedFast = buildPerlPackage { - # pname = "Cache-Memcached-Fast"; - # version = "0.28"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RA/RAZ/Cache-Memcached-Fast-0.28.tar.gz"; - # hash = "sha256-fEJMJTtl/2LPFXe7QYgCGSoYgF6jH6/Ap65YnkRsidI="; - # }; - # buildInputs = [ Test2Suite ]; - # meta = { - # description = "Perl client for memcached, in C language"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CacheMemory = buildPerlModule { - # pname = "Cache"; - # version = "2.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Cache-2.11.tar.gz"; - # hash = "sha256-4dLYlneYEWarxbtuXsxkcfAB8T61bVvpVE2AR9wIpZI="; - # }; - # propagatedBuildInputs = [ DBFile FileNFSLock HeapFibonacci IOString TimeDate ]; - # doCheck = false; # can time out - # meta = { - # description = "Memory based implementation of the Cache interface"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CacheSimpleTimedExpiry = buildPerlPackage { - # pname = "Cache-Simple-TimedExpiry"; - # version = "0.27"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JE/JESSE/Cache-Simple-TimedExpiry-0.27.tar.gz"; - # hash = "sha256-Tni35N0jG1VxpIzQ7htjlT9eNHkMnQIOFZWnx9Crvkk="; - # }; - # meta = { - # description = "A lightweight cache with timed expiration"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Cairo = buildPerlPackage { - # pname = "Cairo"; - # version = "1.109"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/X/XA/XAOC/Cairo-1.109.tar.gz"; - # hash = "sha256-ghlzbkAcIxHaX1FXdd5D/YfmOEtQTaNqGS8rIXZDB38="; - # }; - # buildInputs = [ pkgs.cairo ]; - # propagatedBuildInputs = [ ExtUtilsDepends ExtUtilsPkgConfig ]; - # meta = { - # description = "Perl interface to the cairo 2d vector graphics library"; - # homepage = "https://gtk2-perl.sourceforge.net"; - # license = with lib.licenses; [ lgpl21Only ]; - # }; - # }; - - # CairoGObject = buildPerlPackage { - # pname = "Cairo-GObject"; - # version = "1.005"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/X/XA/XAOC/Cairo-GObject-1.005.tar.gz"; - # hash = "sha256-jYlkRNceHQvKPSTjHl2CvQ2VQqrtkdH7fqs2e85nXFA="; - # }; - # buildInputs = [ pkgs.cairo ]; - # propagatedBuildInputs = [ Cairo Glib ]; - # meta = { - # description = "Integrate Cairo into the Glib type system"; - # homepage = "https://gtk2-perl.sourceforge.net"; - # license = with lib.licenses; [ lgpl21Only ]; - # }; - # }; - - # CallContext = buildPerlPackage { - # pname = "Call-Context"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FE/FELIPE/Call-Context-0.03.tar.gz"; - # hash = "sha256-Dua/RrxydVrbemsI550S4gfeX3gJcHs8NTtYyy8LWiY="; - # }; - # meta = { - # description = "Sanity-check calling context"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # cam_pdf = buildPerlModule { - # pname = "CAM-PDF"; - # version = "1.60"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CD/CDOLAN/CAM-PDF-1.60.tar.gz"; - # hash = "sha256-52r8fzimJJJKd8XJiMNsnjiL+ncW51zTl/744bQuu4k="; - # }; - # propagatedBuildInputs = [ CryptRC4 TextPDF ]; - # meta = { - # description = "PDF manipulation library"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # capitalization = buildPerlPackage { - # pname = "capitalization"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/capitalization-0.03.tar.gz"; - # hash = "sha256-8TUW1XKUH2ihwj8uDkn1vwmyL5B+uSkrcrr/5ie77jw="; - # }; - # propagatedBuildInputs = [ DevelSymdump ]; - # meta = { - # description = "No capitalization on method names"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CanaryStability = buildPerlPackage { - # pname = "Canary-Stability"; - # version = "2013"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Canary-Stability-2013.tar.gz"; - # hash = "sha256-pckcYs+V/Lho9g6rXIMpCPaQUiEBP+orzj/1cEbXtuo="; - # }; - # meta = { - # description = "Canary to check perl compatibility for schmorp's modules"; - # license = with lib.licenses; [ gpl1Plus ]; - # }; - # }; - - # CaptchaReCAPTCHA = buildPerlPackage { - # pname = "Captcha-reCaptcha"; - # version = "0.99"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SU/SUNNYP/Captcha-reCaptcha-0.99.tar.gz"; - # hash = "sha256-uJI1dmARZu3j9/Ly/1X/bjw7znDmnzZaUe076MykQ5I="; - # }; - # propagatedBuildInputs = [ HTMLTiny LWP ]; - # meta = { - # description = "A Perl implementation of the reCAPTCHA API"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - CaptureTiny = buildPerlPackage { - pname = "Capture-Tiny"; - version = "0.48"; - src = fetchurl { - url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Capture-Tiny-0.48.tar.gz"; - hash = "sha256-bCMRPoe605MwjJCiBwE+UF9lknRzZjjYx5usnGfMPhk="; - }; - meta = { - description = "Capture STDOUT and STDERR from Perl, XS or external programs"; - homepage = "https://github.com/dagolden/Capture-Tiny"; - license = with lib.licenses; [ asl20 ]; - }; - }; - - # CarpAlways = buildPerlPackage { - # pname = "Carp-Always"; - # version = "0.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FE/FERREIRA/Carp-Always-0.16.tar.gz"; - # hash = "sha256-mKoRSSFxwBb7CCdYGrH6XtAbHpnGNXSJ3fOoJzFYZvE="; - # }; - # buildInputs = [ TestBase ]; - # meta = { - # description = "Warns and dies noisily with stack backtraces"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CarpAssert = buildPerlPackage { - # pname = "Carp-Assert"; - # version = "0.22"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Y/YV/YVES/Carp-Assert-0.22.tar.gz"; - # hash = "sha256-gH6pfGvtdqwuSWnvun2uSP7+ufKHl/ESZxs6yKSTVfc="; - # }; - # meta = { - # description = "Executable comments"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CarpAssertMore = buildPerlPackage { - # pname = "Carp-Assert-More"; - # version = "2.3.0"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PETDANCE/Carp-Assert-More-2.3.0.tar.gz"; - # hash = "sha256-/2nqCb2maiAPygiK3ZHFww5lcqt7ujF6f58zxRKzzqc="; - # }; - # propagatedBuildInputs = [ CarpAssert ]; - # buildInputs = [ TestException ]; - # meta = { - # description = "Convenience assertions for common situations"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # CarpClan = buildPerlPackage { - # pname = "Carp-Clan"; - # version = "6.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Carp-Clan-6.08.tar.gz"; - # hash = "sha256-x1+S40QizFplqwXRVYQrcBRSQ06a77ZJ1uIonEfvZwg="; - # }; - # meta = { - # description = "Report errors from perspective of caller of a \"clan\" of modules"; - # homepage = "https://github.com/karenetheridge/Carp-Clan"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Carton = buildPerlPackage { - # pname = "Carton"; - # version = "1.0.35"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Carton-v1.0.35.tar.gz"; - # hash = "sha256-nEVYypfNCLaf37UrKMPdwgQ+9S8GJ7kOU9BaQIc0QXU="; - # }; - # propagatedBuildInputs = [ MenloLegacy PathTiny TryTiny ]; - # meta = { - # description = "Perl module dependency manager (aka Bundler for Perl)"; - # homepage = "https://github.com/perl-carton/carton"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "carton"; - # }; - # }; - - # CatalystActionRenderView = buildPerlPackage { - # pname = "Catalyst-Action-RenderView"; - # version = "0.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Action-RenderView-0.16.tar.gz"; - # hash = "sha256-hWUgOVCgV9Q+zWTpWTcV1WXC+9iwLJH0PFOyERrNOUg="; - # }; - # propagatedBuildInputs = [ CatalystRuntime DataVisitor ]; - # buildInputs = [ HTTPRequestAsCGI ]; - # meta = { - # description = "Sensible default end action"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystActionREST = buildPerlPackage { - # pname = "Catalyst-Action-REST"; - # version = "1.21"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JJ/JJNAPIORK/Catalyst-Action-REST-1.21.tar.gz"; - # hash = "sha256-zPgbulIA06CtaQH5I68XOj1EFmGK6gimk4uq/970yyA="; - # }; - # buildInputs = [ TestRequires ]; - # propagatedBuildInputs = [ CatalystRuntime URIFind ]; - # meta = { - # description = "Automated REST Method Dispatching"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystAuthenticationCredentialHTTP = buildPerlModule { - # pname = "Catalyst-Authentication-Credential-HTTP"; - # version = "1.018"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Catalyst-Authentication-Credential-HTTP-1.018.tar.gz"; - # hash = "sha256-b6GBbe5kSw216gzBXF5xHcLO0gg2JavOcJZSHx1lpSk="; - # }; - # buildInputs = [ ModuleBuildTiny TestException TestMockObject TestNeeds ]; - # propagatedBuildInputs = [ CatalystPluginAuthentication ClassAccessor DataUUID StringEscape ]; - # meta = { - # description = "HTTP Basic and Digest authentication for Catalyst"; - # homepage = "https://github.com/perl-catalyst/Catalyst-Authentication-Credential-HTTP"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystAuthenticationStoreHtpasswd = buildPerlModule { - # pname = "Catalyst-Authentication-Store-Htpasswd"; - # version = "1.006"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Catalyst-Authentication-Store-Htpasswd-1.006.tar.gz"; - # hash = "sha256-x/2FYnXo3hjAAWHXNJTsZr0N3QoZ27dMQtVXHJ7ggE8="; - # }; - # buildInputs = [ ModuleBuildTiny TestLongString TestSimple13 TestWWWMechanize TestWWWMechanizeCatalyst ]; - # propagatedBuildInputs = [ AuthenHtpasswd CatalystPluginAuthentication ]; - # patches = [ - # ./perl-modules/CatalystAuthenticationStoreHtpasswd-test-replace-DES-hash-with-bcrypt.patch - # ]; - # meta = { - # description = "Authen::Htpasswd based user storage/authentication"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystAuthenticationStoreDBIxClass = buildPerlPackage { - # pname = "Catalyst-Authentication-Store-DBIx-Class"; - # version = "0.1506"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IL/ILMARI/Catalyst-Authentication-Store-DBIx-Class-0.1506.tar.gz"; - # hash = "sha256-fFefJZUoXmTD3LVUAzSqmgAkQ+HUyMg6tEk7kMxRskQ="; - # }; - # propagatedBuildInputs = [ CatalystModelDBICSchema CatalystPluginAuthentication ]; - # buildInputs = [ TestWarn ]; - # meta = { - # description = "Extensible and flexible object <-> relational mapper"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystAuthenticationStoreLDAP = buildPerlPackage { - # pname = "Catalyst-Authentication-Store-LDAP"; - # version = "1.017"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IL/ILMARI/Catalyst-Authentication-Store-LDAP-1.017.tar.gz"; - # hash = "sha256-keW4vd/XOGYqNh6/6nPYQrO6Me1wne2xqE7DRB3O7sU="; - # }; - # propagatedBuildInputs = [ perlldap CatalystPluginAuthentication ClassAccessor ]; - # buildInputs = [ TestMockObject TestException NetLDAPServerTest ]; - # doCheck = !stdenv.isDarwin; # t/02-realms_api.t and t/50.auth.case.sensitivity.t - # meta = { - # description = "Authenticate Users against LDAP Directories"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystComponentInstancePerContext = buildPerlPackage { - # pname = "Catalyst-Component-InstancePerContext"; - # version = "0.001001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GR/GRODITI/Catalyst-Component-InstancePerContext-0.001001.tar.gz"; - # hash = "sha256-f2P5MOHmE/FZVcnm1zhzZ1xQwKO8KmGgNHMzYe0m0nE="; - # }; - # propagatedBuildInputs = [ CatalystRuntime ]; - # meta = { - # description = "Moose role to create only one instance of component per context"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystControllerHTMLFormFu = buildPerlPackage { - # pname = "Catalyst-Controller-HTML-FormFu"; - # version = "2.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NI/NIGELM/Catalyst-Controller-HTML-FormFu-2.04.tar.gz"; - # hash = "sha256-8T+5s7OwCzXwarwxYURhyNc0b74H+1accejVhuXrXdw="; - # }; - # buildInputs = [ CatalystActionRenderView CatalystPluginSession CatalystPluginSessionStateCookie CatalystPluginSessionStoreFile CatalystViewTT CodeTidyAllPluginPerlAlignMooseAttributes PodCoverageTrustPod PodTidy TemplateToolkit TestCPANMeta TestDifferences TestEOL TestKwalitee TestLongString TestMemoryCycle TestNoTabs TestPAUSEPermissions TestPod TestPodCoverage TestWWWMechanize TestWWWMechanizeCatalyst ]; - # propagatedBuildInputs = [ CatalystComponentInstancePerContext HTMLFormFuMultiForm RegexpAssemble ]; - # doCheck = false; /* fails with 'open3: exec of .. perl .. failed: Argument list too long at .../TAP/Parser/Iterator/Process.pm line 165.' */ - # meta = { - # description = "HTML Form Creation, Rendering and Validation Framework"; - # homepage = "https://github.com/FormFu/HTML-FormFu"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystControllerPOD = buildPerlModule { - # pname = "Catalyst-Controller-POD"; - # version = "1.0.0"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PERLER/Catalyst-Controller-POD-1.0.0.tar.gz"; - # hash = "sha256-7ipLs+14uqFGQzVAjyhDRba6DvZXate/vXtlbHiKOfk="; - # }; - # buildInputs = [ ModuleInstall TestLongString TestWWWMechanize TestWWWMechanizeCatalyst ]; - # propagatedBuildInputs = [ CatalystPluginStaticSimple ClassAccessor FileSlurp JSONXS ListMoreUtils PodPOMViewTOC XMLSimple ]; - # meta = { - # description = "Serves PODs right from your Catalyst application"; - # homepage = "https://search.cpan.org/dist/Catalyst-Controller-POD"; - # license = with lib.licenses; [ bsd3 ]; - # }; - # }; - - # CatalystDevel = buildPerlPackage { - # pname = "Catalyst-Devel"; - # version = "1.42"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Devel-1.42.tar.gz"; - # hash = "sha256-fsbwtsq1uMCX5Hdp/HOk1MAVpYxB/bQPwk3z7nfEir0="; - # }; - # buildInputs = [ FileShareDirInstall TestFatal ]; - # propagatedBuildInputs = [ CatalystActionRenderView CatalystPluginConfigLoader CatalystPluginStaticSimple ConfigGeneral FileChangeNotify FileCopyRecursive ModuleInstall TemplateToolkit ]; - # meta = { - # description = "Catalyst Development Tools"; - # homepage = "http://dev.catalyst.perl.org"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystDispatchTypeRegex = buildPerlModule { - # pname = "Catalyst-DispatchType-Regex"; - # version = "5.90035"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MG/MGRIMES/Catalyst-DispatchType-Regex-5.90035.tar.gz"; - # hash = "sha256-AC3Pnv7HxYiSoYP5CAFTnQzxPsOvzPjTrRkhfCsNWBo="; - # }; - # propagatedBuildInputs = [ CatalystRuntime ]; - # meta = { - # description = "Regex DispatchType"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystManual = buildPerlPackage { - # pname = "Catalyst-Manual"; - # version = "5.9011"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Manual-5.9011.tar.gz"; - # hash = "sha256-s54zllkDwAWD4BgOPdUopUkg9SB83wUmBcoTgoz6wTw="; - # }; - # meta = { - # description = "The Catalyst developer's manual"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystModelDBICSchema = buildPerlPackage { - # pname = "Catalyst-Model-DBIC-Schema"; - # version = "0.66"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Model-DBIC-Schema-0.66.tar.gz"; - # hash = "sha256-GST0wA6PD/HF0a+hbv5PhW8cXnT+VW7Cxfj1v2OtA0g="; - # }; - # buildInputs = [ DBDSQLite TestException TestRequires ]; - # propagatedBuildInputs = [ CatalystComponentInstancePerContext CatalystXComponentTraits DBIxClassSchemaLoader MooseXMarkAsMethods MooseXNonMoose MooseXTypesLoadableClass TieIxHash ]; - # meta = { - # description = "DBIx::Class::Schema Model Class"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystRuntime = buildPerlPackage { - # pname = "Catalyst-Runtime"; - # version = "5.90131"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JJ/JJNAPIORK/Catalyst-Runtime-5.90131.tar.gz"; - # hash = "sha256-nWQe+s8PmTXm7LmPWjtHbJYbH4Gb0vjyOmR9HYZ+GEk="; - # }; - # buildInputs = [ TestFatal TypeTiny ]; - # propagatedBuildInputs = [ CGISimple CGIStruct ClassC3AdoptNEXT DataDump HTTPBody ModulePluggable MooseXEmulateClassAccessorFast MooseXGetopt MooseXMethodAttributes MooseXRoleWithOverloading PathClass PerlIOutf8_strict PlackMiddlewareFixMissingBodyInRedirect PlackMiddlewareMethodOverride PlackMiddlewareRemoveRedundantBody PlackMiddlewareReverseProxy PlackTestExternalServer SafeIsa StringRewritePrefix TaskWeaken TextSimpleTable TreeSimpleVisitorFactory URIws ]; - # meta = { - # description = "The Catalyst Framework Runtime"; - # homepage = "http://dev.catalyst.perl.org"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "catalyst.pl"; - # }; - # }; - - # CatalystPluginAccessLog = buildPerlPackage { - # pname = "Catalyst-Plugin-AccessLog"; - # version = "1.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AR/ARODLAND/Catalyst-Plugin-AccessLog-1.10.tar.gz"; - # hash = "sha256-hz245OcqmU4+F661PSuDfm1SS0uLDzU58mITXIjMISA="; - # }; - # propagatedBuildInputs = [ CatalystRuntime DateTime ]; - # meta = { - # description = "Request logging from within Catalyst"; - # homepage = "https://metacpan.org/release/Catalyst-Plugin-AccessLog"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystPluginAuthentication = buildPerlPackage { - # pname = "Catalyst-Plugin-Authentication"; - # version = "0.10023"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Authentication-0.10023.tar.gz"; - # hash = "sha256-NgOaq9rLB+Zoek16i/rHj+nQ+7BM2o1tlm1sHjJZ0Gw="; - # }; - # buildInputs = [ TestException ]; - # propagatedBuildInputs = [ CatalystPluginSession ]; - # meta = { - # description = "Infrastructure plugin for the Catalyst authentication framework"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystPluginAuthorizationACL = buildPerlPackage { - # pname = "Catalyst-Plugin-Authorization-ACL"; - # version = "0.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RK/RKITOVER/Catalyst-Plugin-Authorization-ACL-0.16.tar.gz"; - # hash = "sha256-KjfmU0gu/SyTuGxqg4lB4FbF+U3YbA8LiT1RkzMSg3w="; - # }; - # propagatedBuildInputs = [ CatalystRuntime ClassThrowable ]; - # buildInputs = [ CatalystPluginAuthentication CatalystPluginAuthorizationRoles CatalystPluginSession CatalystPluginSessionStateCookie TestWWWMechanizeCatalyst ]; - # meta = { - # description = "ACL support for Catalyst applications"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystPluginAuthorizationRoles = buildPerlPackage { - # pname = "Catalyst-Plugin-Authorization-Roles"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Authorization-Roles-0.09.tar.gz"; - # hash = "sha256-7kBE5eKg2UxOxRL61V7gyN4UTh47h4Ugf5YCXPmkA1E="; - # }; - # buildInputs = [ TestException ]; - # propagatedBuildInputs = [ CatalystPluginAuthentication SetObject UNIVERSALisa ]; - # meta = { - # description = "Role based authorization for Catalyst based on Catalyst::Plugin::Authentication"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystPluginCache = buildPerlPackage { - # pname = "Catalyst-Plugin-Cache"; - # version = "0.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Cache-0.12.tar.gz"; - # hash = "sha256-KV/tRJyTJLBleP1GjjOR4E+/ZK0kN2oARAjRvG9UQ+A="; - # }; - # buildInputs = [ ClassAccessor TestDeep TestException ]; - # propagatedBuildInputs = [ CatalystRuntime ]; - # meta = { - # description = "Flexible caching support for Catalyst"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystPluginCacheHTTP = buildPerlPackage { - # pname = "Catalyst-Plugin-Cache-HTTP"; - # version = "0.001000"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GR/GRAF/Catalyst-Plugin-Cache-HTTP-0.001000.tar.gz"; - # hash = "sha256-aq2nDrKfYd90xTj5KaEHD92TIMW278lNJkwzghe8sWw="; - # }; - # buildInputs = [ CatalystRuntime TestLongString TestSimple13 TestWWWMechanize TestWWWMechanizeCatalyst ]; - # propagatedBuildInputs = [ ClassAccessor HTTPMessage MROCompat ]; - # meta = { - # description = "HTTP/1.1 cache validators for Catalyst"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystPluginCaptcha = buildPerlPackage { - # pname = "Catalyst-Plugin-Captcha"; - # version = "0.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DI/DIEGOK/Catalyst-Plugin-Captcha-0.04.tar.gz"; - # hash = "sha256-Sj1ccgBiTT567ULQWnBnSSdGg+t7rSYN6Sx1W/aQnlI="; - # }; - # propagatedBuildInputs = [ CatalystPluginSession GDSecurityImage ]; - # meta = { - # description = "Create and validate Captcha for Catalyst"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystPluginConfigLoader = buildPerlPackage { - # pname = "Catalyst-Plugin-ConfigLoader"; - # version = "0.35"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Plugin-ConfigLoader-0.35.tar.gz"; - # hash = "sha256-nippim8tBG4NxeV1EpKc1CPIB9Sja6Pynp5a3NcaGXE="; - # }; - # propagatedBuildInputs = [ CatalystRuntime ConfigAny DataVisitor ]; - # meta = { - # description = "Load config files of various types"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystPluginFormValidator = buildPerlPackage { - # pname = "Catalyst-Plugin-FormValidator"; - # version = "0.094"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DH/DHOSS/Catalyst-Plugin-FormValidator-0.094.tar.gz"; - # hash = "sha256-WDTxG/XJ9LXTNtZcfOZjm3bOe/56KHXrBI1+ocgs4Fo="; - # }; - # propagatedBuildInputs = [ CatalystRuntime DataFormValidator ]; - # meta = { - # description = "Data::FormValidator"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystPluginFormValidatorSimple = buildPerlPackage { - # pname = "Catalyst-Plugin-FormValidator-Simple"; - # version = "0.15"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DH/DHOSS/Catalyst-Plugin-FormValidator-Simple-0.15.tar.gz"; - # hash = "sha256-SGxqDo9BD9AXJ59IBKueNbpGMh0zoKlyH+Hgijkd56A="; - # }; - # propagatedBuildInputs = [ CatalystPluginFormValidator FormValidatorSimple ]; - # meta = { - # description = "Validation with simple chains of constraints "; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystPluginLogHandler = buildPerlModule { - # pname = "Catalyst-Plugin-Log-Handler"; - # version = "0.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEPE/Catalyst-Plugin-Log-Handler-0.08.tar.gz"; - # hash = "sha256-DbPDpXtO49eJulEpiQ4oWJE/7wDYGFvcnF1/3jHgQ+8="; - # }; - # propagatedBuildInputs = [ ClassAccessor LogHandler MROCompat ]; - # meta = { - # description = "Log messages to several outputs"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystPluginPrometheusTiny = buildPerlPackage { - # pname = "Catalyst-Plugin-PrometheusTiny"; - # version = "0.006"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SY/SYSPETE/Catalyst-Plugin-PrometheusTiny-0.006.tar.gz"; - # hash = "sha256-Kzm5l7q/+rNTquMsol8smbdljlBEew23H7gKFsS2osE="; - # }; - # buildInputs = [ HTTPMessage Plack SubOverride TestDeep ]; - # propagatedBuildInputs = [ CatalystRuntime Moose PrometheusTiny PrometheusTinyShared ]; - # meta = { - # description = "A tiny Prometheus client"; - # homepage = "https://github.com/robn/Prometheus-Tiny"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystPluginSession = buildPerlPackage { - # pname = "Catalyst-Plugin-Session"; - # version = "0.43"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Plugin-Session-0.43.tar.gz"; - # hash = "sha256-Xn180rlbH8IkS8buuPRPg11gPqB/WjkRCIHbYJKLFMQ="; - # }; - # buildInputs = [ TestDeep TestException TestNeeds ]; - # propagatedBuildInputs = [ CatalystRuntime ObjectSignature ]; - # meta = { - # description = "Generic Session plugin - ties together server side storage and client side state required to maintain session data"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystPluginSessionDynamicExpiry = buildPerlPackage { - # pname = "Catalyst-Plugin-Session-DynamicExpiry"; - # version = "0.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Session-DynamicExpiry-0.04.tar.gz"; - # hash = "sha256-dwfFZzTNsVEvcz3EAPrfb0xTyyF7WCB4V4JNrWeAoHk="; - # }; - # propagatedBuildInputs = [ CatalystPluginSession ]; - # meta = { - # description = "Per-session custom expiry times"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystPluginSessionStateCookie = buildPerlPackage { - # pname = "Catalyst-Plugin-Session-State-Cookie"; - # version = "0.18"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Plugin-Session-State-Cookie-0.18.tar.gz"; - # hash = "sha256-6bHHsrlsGU+Hpfd+FElxcHfHD/xnpL/CnwJsnuLge+o="; - # }; - # propagatedBuildInputs = [ CatalystPluginSession ]; - # meta = { - # description = "Maintain session IDs using cookies"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystPluginSessionStoreFastMmap = buildPerlPackage { - # pname = "Catalyst-Plugin-Session-Store-FastMmap"; - # version = "0.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Session-Store-FastMmap-0.16.tar.gz"; - # hash = "sha256-uut/17+QW+dGMciHYP2KKYDO6pVieZM5lYFkPvY3cnQ="; - # }; - # propagatedBuildInputs = [ CacheFastMmap CatalystPluginSession ]; - # meta = { - # description = "FastMmap session storage backend"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystPluginSessionStoreFile = buildPerlPackage { - # pname = "Catalyst-Plugin-Session-Store-File"; - # version = "0.18"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FL/FLORA/Catalyst-Plugin-Session-Store-File-0.18.tar.gz"; - # hash = "sha256-VHOOPOdvi+i2aUcJLSiXPHPXnR7hm12SsFdVL4/wm08="; - # }; - # propagatedBuildInputs = [ CacheCache CatalystPluginSession ClassDataInheritable ]; - # meta = { - # description = "File storage backend for session data"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystPluginSmartURI = buildPerlPackage { - # pname = "Catalyst-Plugin-SmartURI"; - # version = "0.041"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RK/RKITOVER/Catalyst-Plugin-SmartURI-0.041.tar.gz"; - # hash = "sha256-y4ghhphUUSA9kj19+QIKoELajcGUltgj4WU1twUfX1c="; - # }; - # propagatedBuildInputs = [ CatalystRuntime ClassC3Componentised ]; - # buildInputs = [ CatalystActionREST TestWarnings TimeOut URISmartURI ]; - # meta = { - # description = "Configurable URIs for Catalyst"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystPluginStackTrace = buildPerlPackage { - # pname = "Catalyst-Plugin-StackTrace"; - # version = "0.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-StackTrace-0.12.tar.gz"; - # hash = "sha256-Mp2s0LoJ0Qp2CHqxdvldtro9smotD+M+7i9eRs7XU6w="; - # }; - # propagatedBuildInputs = [ CatalystRuntime ]; - # meta = { - # description = "Display a stack trace on the debug screen"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystPluginStaticSimple = buildPerlPackage { - # pname = "Catalyst-Plugin-Static-Simple"; - # version = "0.37"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IL/ILMARI/Catalyst-Plugin-Static-Simple-0.37.tar.gz"; - # hash = "sha256-Wk2Fo1iM1Og/GwAlgUEufXG31X9mBW5dh6Nvk9icnnw="; - # }; - # patches = [ ./perl-modules/catalyst-plugin-static-simple-etag.patch ]; - # propagatedBuildInputs = [ CatalystRuntime MIMETypes MooseXTypes ]; - # meta = { - # description = "Make serving static pages painless"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystPluginStatusMessage = buildPerlPackage { - # pname = "Catalyst-Plugin-StatusMessage"; - # version = "1.002000"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HK/HKCLARK/Catalyst-Plugin-StatusMessage-1.002000.tar.gz"; - # hash = "sha256-ZJyJSrFvn0itqPnMWZp+y7iJGrN2H/b9UQUgxt5AfB8="; - # }; - # propagatedBuildInputs = [ CatalystRuntime strictures ]; - # meta = { - # description = "Handle passing of status (success and error) messages between screens of a web application"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystViewCSV = buildPerlPackage { - # pname = "Catalyst-View-CSV"; - # version = "1.8"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JM/JMREIN/Catalyst-View-CSV-1.8.tar.gz"; - # hash = "sha256-vKcEaDzDXEevuJrDjHFRAu2+gIF57gcz0qDrMRojbN8="; - # }; - # buildInputs = [ CatalystActionRenderView CatalystModelDBICSchema CatalystPluginConfigLoader CatalystXComponentTraits ConfigGeneral DBDSQLite DBIxClass TestException ]; - # propagatedBuildInputs = [ CatalystRuntime TextCSV ]; - # meta = { - # description = "CSV view class"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystViewDownload = buildPerlPackage { - # pname = "Catalyst-View-Download"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GA/GAUDEON/Catalyst-View-Download-0.09.tar.gz"; - # hash = "sha256-es+PXyRex/bzU/SHKdE3sSrxrPos8fvWXHA5HpM3+OE="; - # }; - # buildInputs = [ CatalystRuntime TestLongString TestSimple13 TestWWWMechanize TestWWWMechanizeCatalyst TextCSV XMLSimple ]; - # meta = { - # description = "A view module to help in the convenience of downloading data into many supportable formats"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystViewJSON = buildPerlPackage { - # pname = "Catalyst-View-JSON"; - # version = "0.37"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-View-JSON-0.37.tar.gz"; - # hash = "sha256-xdo/bop3scmYVd431YgCwLGU4pp9hsYO04Mc/dWfnew="; - # }; - # propagatedBuildInputs = [ CatalystRuntime ]; - # meta = { - # description = "JSON (JavaScript Object Notation) encoder/decoder"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystViewTT = buildPerlPackage { - # pname = "Catalyst-View-TT"; - # version = "0.46"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JJ/JJNAPIORK/Catalyst-View-TT-0.46.tar.gz"; - # hash = "sha256-7aRFfbv4GkJBtzWl1GnZcn2KMJHSSvGuPJog8CTeUcw="; - # }; - # propagatedBuildInputs = [ CatalystRuntime ClassAccessor TemplateTimer ]; - # meta = { - # description = "Template View Class"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystXComponentTraits = buildPerlPackage { - # pname = "CatalystX-Component-Traits"; - # version = "0.19"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RK/RKITOVER/CatalystX-Component-Traits-0.19.tar.gz"; - # hash = "sha256-CElE6cnQ37ENSrNFPhwSX97jkSm0bRfAI0w8U1FkBEc="; - # }; - # propagatedBuildInputs = [ CatalystRuntime MooseXTraitsPluggable ]; - # meta = { - # description = "Automatic Trait Loading and Resolution for Catalyst Components"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystXRoleApplicator = buildPerlPackage { - # pname = "CatalystX-RoleApplicator"; - # version = "0.005"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HD/HDP/CatalystX-RoleApplicator-0.005.tar.gz"; - # hash = "sha256-4o5HZ3aJva31VE4cQaKsV1WZNm+EDXO70LA8ZPtVim8="; - # }; - # propagatedBuildInputs = [ CatalystRuntime MooseXRelatedClassRoles ]; - # meta = { - # description = "Apply roles to your Catalyst application-related classes"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystTraitForRequestProxyBase = buildPerlPackage { - # pname = "Catalyst-TraitFor-Request-ProxyBase"; - # version = "0.000005"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-TraitFor-Request-ProxyBase-0.000005.tar.gz"; - # hash = "sha256-p78Pqn4Syl32Jdn1/HEPEb/Ra6U4WDfkjUKz0obJcQo="; - # }; - # buildInputs = [ CatalystRuntime CatalystXRoleApplicator HTTPMessage ]; - # propagatedBuildInputs = [ Moose URI namespaceautoclean ]; - # meta = { - # description = "Replace request base with value passed by HTTP proxy"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CatalystXScriptServerStarman = buildPerlPackage { - # pname = "CatalystX-Script-Server-Starman"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AB/ABRAXXA/CatalystX-Script-Server-Starman-0.03.tar.gz"; - # hash = "sha256-5jpH80y0P3+87GdYyaVCiAGOOIAjZTYYkLKjTfCKWyI="; - # }; - # patches = [ - # # See Nixpkgs issues #16074 and #17624 - # ./perl-modules/CatalystXScriptServerStarman-fork-arg.patch - # ]; - # buildInputs = [ TestWWWMechanizeCatalyst ]; - # propagatedBuildInputs = [ CatalystRuntime MooseXTypes PodParser Starman ]; - # meta = { - # description = "Replace the development server with Starman"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CDB_File = buildPerlPackage { - # pname = "CDB_File"; - # version = "1.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TODDR/CDB_File-1.05.tar.gz"; - # hash = "sha256-hWSEnVY5AV3iNiTlc8riU265CUMrZNkAmKHgtFKp60s="; - # }; - # buildInputs = [ TestFatal TestWarnings ]; - # propagatedBuildInputs = [ BCOW ]; - # meta = { - # description = "Perl extension for access to cdb databases"; - # homepage = "https://github.com/toddr/CDB_File"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Catmandu = buildPerlModule { - # pname = "Catmandu"; - # version = "1.2020"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HO/HOCHSTEN/Catmandu-1.2020.tar.gz"; - # hash = "sha256-1jIbR+NkGvkb7vZjNhWZVk88wzwAc5isa7opuO5A4cU="; - # }; - # propagatedBuildInputs = [ AnyURIEscape AppCmd CGIExpand ConfigOnion CpanelJSONXS DataCompare DataUtil IOHandleUtil LWP ListMoreUtils LogAny MIMETypes ModuleInfo MooXAliases ParserMGC PathIteratorRule PathTiny StringCamelCase TextCSV TextHogan Throwable TryTinyByClass URITemplate UUIDTiny YAMLLibYAML namespaceclean ]; - # buildInputs = [ LogAnyAdapterLog4perl LogLog4perl TestDeep TestException TestLWPUserAgent TestPod ]; - # meta = { - # description = "A data toolkit"; - # homepage = "https://github.com/LibreCat/Catmandu"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "catmandu"; - # }; - # }; - - # CDDB_get = buildPerlPackage { - # pname = "CDDB_get"; - # version = "2.28"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FO/FONKIE/CDDB_get-2.28.tar.gz"; - # hash = "sha256-vcy6H6jkwc8xicXlo1KaZpOmSKpSgrWXU4x6rdzm2ck="; - # }; - # meta = { - # description = "Get the CDDB info for an audio cd"; - # license = with lib.licenses; [ artistic1 ]; - # maintainers = [ maintainers.endgame ]; - # mainProgram = "cddb.pl"; - # }; - # }; - - # CDDBFile = buildPerlPackage { - # pname = "CDDB-File"; - # version = "1.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TM/TMTM/CDDB-File-1.05.tar.gz"; - # hash = "sha256-6+ZCnEFcFOc8bK/g1OLc3o4WnYFScfHhUjwmThrsx8k="; - # }; - # meta = { - # description = "Parse a CDDB/freedb data file"; - # license = with lib.licenses; [ artistic1 ]; - # }; - # }; - - - CGI = buildPerlPackage { - pname = "CGI"; - version = "4.59"; - src = fetchurl { - url = "mirror://cpan/authors/id/L/LE/LEEJO/CGI-4.59.tar.gz"; - hash = "sha256-be5LibiLEOd8lvPAjRm1hq74M7F6Ql1hiq19KMJi+Rw="; - }; - buildInputs = [ TestDeep TestNoWarnings TestWarn ]; - propagatedBuildInputs = [ HTMLParser ]; - meta = { - description = "Handle Common Gateway Interface requests and responses"; - homepage = "https://metacpan.org/module/CGI"; - license = with lib.licenses; [ artistic2 ]; - }; - }; - - # CGICompile = buildPerlModule { - # pname = "CGI-Compile"; - # version = "0.26"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RK/RKITOVER/CGI-Compile-0.26.tar.gz"; - # hash = "sha256-TzhcEMLJd+tgPzjNFT4OA2jfA3H9vSP1qm7nL0/GXcg="; - # }; - # propagatedBuildInputs = [ Filepushd SubName ]; - # buildInputs = [ CGI CaptureTiny ModuleBuildTiny SubIdentify Switch TestNoWarnings TestRequires TryTiny ]; - # meta = { - # description = "Compile .cgi scripts to a code reference like ModPerl::Registry"; - # homepage = "https://github.com/miyagawa/CGI-Compile"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CGICookieXS = buildPerlPackage { - # pname = "CGI-Cookie-XS"; - # version = "0.18"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AG/AGENT/CGI-Cookie-XS-0.18.tar.gz"; - # hash = "sha256-RpnLSr2XIBSvO+ubCmlbQluH2ibLK0vbJgIHCqrdPcY="; - # }; - # meta = { - # description = "HTTP Cookie parser in pure C"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CGIEmulatePSGI = buildPerlPackage { - # pname = "CGI-Emulate-PSGI"; - # version = "0.23"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/CGI-Emulate-PSGI-0.23.tar.gz"; - # hash = "sha256-3VtsNT8I+6EA2uCZBChPf3P4Mo0x9qZ7LBNvrXKNFYs="; - # }; - # buildInputs = [ TestRequires ]; - # propagatedBuildInputs = [ CGI ]; - # meta = { - # description = "PSGI adapter for CGI"; - # homepage = "https://github.com/tokuhirom/p5-cgi-emulate-psgi"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CGIExpand = buildPerlPackage { - # pname = "CGI-Expand"; - # version = "2.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BO/BOWMANBS/CGI-Expand-2.05.tar.gz"; - # hash = "sha256-boLRGOPEwMLa/NpYde3l6N2//+C336pkjkUeA5pFpKk="; - # }; - # buildInputs = [ TestException ]; - # meta = { - # description = "Convert flat hash to nested data using TT2's dot convention"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - CGIFast = buildPerlPackage { - pname = "CGI-Fast"; - version = "2.16"; - src = fetchurl { - url = "mirror://cpan/authors/id/L/LE/LEEJO/CGI-Fast-2.16.tar.gz"; - hash = "sha256-AiPX+RuAA3ud/183NgZAtx9dyNvZiaBZPV0i8/c8s9Q="; - }; - 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 ]; - }; - }; - - # CGIFormBuilder = buildPerlPackage { - # pname = "CGI-FormBuilder"; - # version = "3.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BI/BIGPRESH/CGI-FormBuilder-3.10.tar.gz"; - # hash = "sha256-rsmb4MDwZ6fnJpxTeOWubI1905s2i08SwNhGOxPucZg="; - # }; - - # propagatedBuildInputs = [ CGI ]; - # meta = { - # description = "Easily generate and process stateful forms"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CGIMinimal = buildPerlModule { - # pname = "CGI-Minimal"; - # version = "1.30"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SN/SNOWHARE/CGI-Minimal-1.30.tar.gz"; - # hash = "sha256-uU1QghsCYR2m7lQjGTFFB4xNuygvKxYqSw1YCUmXvEc="; - # }; - # meta = { - # description = "A lightweight CGI form processing package"; - # homepage = "https://github.com/JerilynFranz/perl-CGI-Minimal"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # CGIPSGI = buildPerlPackage { - # pname = "CGI-PSGI"; - # version = "0.15"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/CGI-PSGI-0.15.tar.gz"; - # hash = "sha256-xQ3LEL+EhqmEO67QMq2J2Hn/L0HJkzQt6tYvlHpZjZE="; - # }; - # propagatedBuildInputs = [ CGI ]; - # meta = { - # description = "Adapt CGI.pm to the PSGI protocol"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CGISession = buildPerlModule { - # pname = "CGI-Session"; - # version = "4.48"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MARKSTOS/CGI-Session-4.48.tar.gz"; - # hash = "sha256-RnVkYcJM52ZrgQjduW26thJpnfMBLIDvEQFmGf4VVPc="; - # }; - # propagatedBuildInputs = [ CGI ]; - # meta = { - # description = "Persistent session data in CGI applications"; - # license = with lib.licenses; [ artistic1 ]; - # }; - # }; - - # CGISimple = buildPerlPackage { - # pname = "CGI-Simple"; - # version = "1.280"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MANWAR/CGI-Simple-1.280.tar.gz"; - # hash = "sha256-GOAen/uBTl5O6neshImyBp/oNlGFUPN/bCIT61Wcar8="; - # }; - # buildInputs = [ TestException TestNoWarnings ]; - # meta = { - # description = "A Simple totally OO CGI interface that is CGI.pm compliant"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CGIStruct = buildPerlPackage { - # pname = "CGI-Struct"; - # version = "1.21"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FU/FULLERMD/CGI-Struct-1.21.tar.gz"; - # hash = "sha256-0T2Np/3NbZBgVOR2D8KKcYrskb088GeliSf7fLHAnWw="; - # }; - # buildInputs = [ TestDeep ]; - # meta = { - # description = "Build structures from CGI data"; - # license = with lib.licenses; [ bsd2 ]; - # }; - # }; - - # CHI = buildPerlPackage { - # pname = "CHI"; - # version = "0.61"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AS/ASB/CHI-0.61.tar.gz"; - # hash = "sha256-WDVFyeUxK7QZOrFt6fVf+PS0p97RKM7o3SywIdRni1s="; - # }; - # preConfigure = '' - # # fix error 'Unescaped left brace in regex is illegal here in regex' - # substituteInPlace lib/CHI/t/Driver/Subcache/l1_cache.pm --replace 'qr/CHI stats: {' 'qr/CHI stats: \{' - # ''; - # buildInputs = [ TestClass TestDeep TestException TestWarn TimeDate ]; - # propagatedBuildInputs = [ CarpAssert ClassLoad DataUUID DigestJHash HashMoreUtils JSONMaybeXS ListMoreUtils LogAny Moo MooXTypesMooseLikeNumeric StringRewritePrefix TaskWeaken TimeDuration TimeDurationParse ]; - # meta = { - # description = "Unified cache handling interface"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Chart = buildPerlPackage { - # pname = "Chart"; - # version = "2.403.9"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LI/LICHTKIND/Chart-v2.403.9.tar.gz"; - # hash = "sha256-V8aCi7TIpyFw/rZ9wfFIq/Gcqzgnd54wh3tGEe1n86s="; - # }; - # buildInputs = [ TestWarn ]; - # propagatedBuildInputs = [ GD GraphicsToolkitColor ]; - # meta = { - # description = "A series of charting modules"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ChipcardPCSC = buildPerlPackage { - # pname = "Chipcard-PCSC"; - # version = "1.4.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/W/WH/WHOM/Chipcard-PCSC-v1.4.16.tar.gz"; - # hash = "sha256-O14p1jRDXxQm7Nzfebo1G04mWPNsPCK+N7HTHjbKj6k="; - # }; - # buildInputs = [ pkgs.pcsclite ]; - # nativeBuildInputs = [ pkgs.pkg-config ]; - # env.NIX_CFLAGS_COMPILE = toString ([ - # "-I${pkgs.pcsclite.dev}/include/PCSC" - # ] ++ lib.optionals stdenv.cc.isClang [ - # "-Wno-error=implicit-int" - # "-Wno-error=int-conversion" - # ]); - # postPatch = '' - # substituteInPlace Makefile.PL --replace pkg-config $PKG_CONFIG - # ''; - # NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.pcsclite}/lib -lpcsclite"; - # # tests fail; look unfinished - # doCheck = false; - # meta = { - # description = "Communicate with a smart card using PC/SC"; - # homepage = "https://pcsc-perl.apdu.fr/"; - # license = with lib.licenses; [ gpl2Plus ]; - # maintainers = with maintainers; [ abbradar anthonyroussel ]; - # }; - # }; - - # CiscoIPPhone = buildPerlPackage { - # pname = "Cisco-IPPhone"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MR/MRPALMER/Cisco-IPPhone-0.05.tar.gz"; - # hash = "sha256-sDyiY/j0Gm7FRcU5MhOjFG02vUUzWt6Zr1HdQqtu4W0="; - # }; - # meta = { - # description = "Package for creating Cisco IPPhone XML objects"; - # license = with lib.licenses; [ artistic1 ]; - # }; - # }; - - # CLASS = buildPerlPackage { - # pname = "CLASS"; - # version = "1.1.8"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JD/JDEGUEST/CLASS-v1.1.8.tar.gz"; - # hash = "sha256-IZAaUmXL29iRJ36X/Gs0X3nby/B3RFePX/iGaltddgM="; - # }; - # meta = { - # description = "Alias for __PACKAGE__"; - # homepage = "https://metacpan.org/pod/CLASS"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # ClassAccessor = buildPerlPackage { - # pname = "Class-Accessor"; - # version = "0.51"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KA/KASEI/Class-Accessor-0.51.tar.gz"; - # hash = "sha256-vxKj5d5aLG6KRHs2T09aBQv3RiTFbjFQIq55kv8vQRw="; - # }; - # meta = { - # description = "Automated accessor generation"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassAccessorChained = buildPerlModule { - # pname = "Class-Accessor-Chained"; - # version = "0.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RC/RCLAMP/Class-Accessor-Chained-0.01.tar.gz"; - # hash = "sha256-pb9J04BPg60lobFvMn0U1MvuInATIQSyhwUDHbzMNNI="; - # }; - # propagatedBuildInputs = [ ClassAccessor ]; - # meta = { - # description = "Make chained accessors"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassAccessorGrouped = buildPerlPackage { - # pname = "Class-Accessor-Grouped"; - # version = "0.10014"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HAARG/Class-Accessor-Grouped-0.10014.tar.gz"; - # hash = "sha256-NdWwPvwJ9n86MVXJYkEmw+FiyOPKmP+CbbNYUzpExLs="; - # }; - # buildInputs = [ TestException ]; - # propagatedBuildInputs = [ ModuleRuntime ]; - # meta = { - # description = "Lets you build groups of accessors"; - # homepage = "https://metacpan.org/release/Class-Accessor-Grouped"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassAccessorLite = buildPerlPackage { - # pname = "Class-Accessor-Lite"; - # version = "0.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KA/KAZUHO/Class-Accessor-Lite-0.08.tar.gz"; - # hash = "sha256-dbO47I7+aHZ3tj8KEO75ZuAfYHNcVmVs51y7RMq6M1o="; - # }; - # meta = { - # description = "A minimalistic variant of Class::Accessor"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassAutouse = buildPerlPackage { - # pname = "Class-Autouse"; - # version = "2.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AD/ADAMK/Class-Autouse-2.01.tar.gz"; - # hash = "sha256-wFsyNsBXGdgZwg2w/ettCVR0fkPXpzgpTu1/vPNuzxs="; - # }; - # meta = { - # description = "Run-time load a class the first time you call a method in it"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassBase = buildPerlPackage { - # pname = "Class-Base"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Y/YA/YANICK/Class-Base-0.09.tar.gz"; - # hash = "sha256-4aW93lJQWAJmSpEIpRXJ6OUCy3IppJ3pT0CBsbKu7YQ="; - # }; - # propagatedBuildInputs = [ Clone ]; - # meta = { - # description = "Useful base class for deriving other modules"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassC3 = buildPerlPackage { - # pname = "Class-C3"; - # version = "0.35"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HAARG/Class-C3-0.35.tar.gz"; - # hash = "sha256-hAU88aaPzIwSBWwvEgrfBPf2jjvjT0QI6V0Cb+5n4z4="; - # }; - # propagatedBuildInputs = [ AlgorithmC3 ]; - # meta = { - # description = "A pragma to use the C3 method resolution order algorithm"; - # homepage = "https://metacpan.org/release/Class-C3"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassC3AdoptNEXT = buildPerlModule { - # pname = "Class-C3-Adopt-NEXT"; - # version = "0.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Class-C3-Adopt-NEXT-0.14.tar.gz"; - # hash = "sha256-hWdiJarbduhmamq+LgZZ1A60WBrWOFsXDupOHWvzS/c="; - # }; - # buildInputs = [ ModuleBuildTiny TestException ]; - # propagatedBuildInputs = [ MROCompat ]; - # meta = { - # description = "Make NEXT suck less"; - # homepage = "https://github.com/karenetheridge/Class-C3-Adopt-NEXT"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassC3Componentised = buildPerlPackage { - # pname = "Class-C3-Componentised"; - # version = "1.001002"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HAARG/Class-C3-Componentised-1.001002.tar.gz"; - # hash = "sha256-MFGxRtwe/q6hqaLp5rF3MICZW4mKtYPxVWWNX8gLlpM="; - # }; - # buildInputs = [ TestException ]; - # propagatedBuildInputs = [ ClassC3 ClassInspector MROCompat ]; - # meta = { - # description = "Load mix-ins or components to your C3-based class"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassClassgenclassgen = buildPerlPackage { - # pname = "Class-Classgen-classgen"; - # version = "3.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MS/MSCHLUE/Class-Classgen-classgen-3.03.tar.gz"; - # hash = "sha256-m2XUG5kVOJkugWsyzE+ptKSguz6cEOfuvv+CZY27yPY="; - # }; - # meta = { - # description = "Simplifies creation, manipulation and usage of complex objects."; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "classgen"; - # }; - # }; - - # ClassContainer = buildPerlModule { - # pname = "Class-Container"; - # version = "0.13"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KW/KWILLIAMS/Class-Container-0.13.tar.gz"; - # hash = "sha256-9dSVsd+4JtXAxF0DtNDmtgR8uwbNv2vhX9TckCrutws="; - # }; - # propagatedBuildInputs = [ ParamsValidate ]; - # meta = { - # description = "Glues object frameworks together transparently"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassDataAccessor = buildPerlPackage { - # pname = "Class-Data-Accessor"; - # version = "0.04004"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CL/CLACO/Class-Data-Accessor-0.04004.tar.gz"; - # hash = "sha256-wSLW4t9hNs6b6h5tK3dsueaeAAhezplTAYFMevOo6BQ="; - # }; - # meta = { - # description = "Inheritable, overridable class and instance data accessor creation"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassDataInheritable = buildPerlPackage { - # pname = "Class-Data-Inheritable"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RS/RSHERER/Class-Data-Inheritable-0.09.tar.gz"; - # hash = "sha256-RAiNbpBxLhh7ilsFDKWxxw7+K6oyrhI+m9j1nynwbk0="; - # }; - # meta = { - # description = "Inheritable, overridable class data"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassEHierarchy = buildPerlPackage { - # pname = "Class-EHierarchy"; - # version = "2.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CO/CORLISS/Class-EHierarchy/Class-EHierarchy-2.01.tar.gz"; - # hash = "sha256-Y3q3a+s4MqmwcbmZobFb8F0pffamYsyxqABPKYcwg4I="; - # }; - # meta = { - # description = "Base class for hierarchally ordered objects"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = teams.deshaw.members; - # }; - # }; - - # ClassFactory = buildPerlPackage { - # pname = "Class-Factory"; - # version = "1.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PH/PHRED/Class-Factory-1.06.tar.gz"; - # hash = "sha256-w3otJp65NfNqI+ETSArglG+nwSoSeBOWoSJsjkNfMPU="; - # }; - # meta = { - # description = "Base class for dynamic factory classes"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassFactoryUtil = buildPerlModule { - # pname = "Class-Factory-Util"; - # version = "1.7"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/Class-Factory-Util-1.7.tar.gz"; - # hash = "sha256-bFFrRFtE+HNj+zoUhDHTHp7LXm8h+2SByJskBrZpLiY="; - # }; - # meta = { - # description = "Provide utility methods for factory classes"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassGomor = buildPerlModule { - # pname = "Class-Gomor"; - # version = "1.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GO/GOMOR/Class-Gomor-1.03.tar.gz"; - # hash = "sha256-R9s86pzp/6mL+cdFV/0yz3AHkatTcCDJWKwwtKn/IAs="; - # }; - # meta = { - # description = "Another class and object builder"; - # license = with lib.licenses; [ artistic1 ]; - # }; - # }; - - ClassInspector = buildPerlPackage { - pname = "Class-Inspector"; - version = "1.36"; - src = fetchurl { - url = "mirror://cpan/authors/id/P/PL/PLICEASE/Class-Inspector-1.36.tar.gz"; - hash = "sha256-zCldI6RyaHwkSJ1YIm6tI7n9wliOUi8LXwdHdBcAaU4="; - }; - meta = { - description = "Get information about a class and its structure"; - homepage = "https://metacpan.org/pod/Class::Inspector"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # ClassISA = buildPerlPackage { - # pname = "Class-ISA"; - # version = "0.36"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SM/SMUELLER/Class-ISA-0.36.tar.gz"; - # hash = "sha256-iBbzTpo46EmhDfdWAw3M+f4GGhlsEaw/qv1xE8kpuWQ="; - # }; - # meta = { - # description = "Report the search path for a class's ISA tree"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassIterator = buildPerlPackage { - # pname = "Class-Iterator"; - # version = "0.3"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TE/TEXMEC/Class-Iterator-0.3.tar.gz"; - # hash = "sha256-2xuofKkQfxYf6cHp5+JnwAJt78Jv4+c7ytirj/wY750="; - # }; - # meta = { - # description = "Iterator class"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassLoader = buildPerlPackage { - # pname = "Class-Loader"; - # version = "2.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/V/VI/VIPUL/Class-Loader-2.03.tar.gz"; - # hash = "sha256-T+8gdurWBCNFT/H06ChZqam5lCtfuO7gyYucY8nyuOc="; - # }; - # meta = { - # description = "Load modules and create objects on demand"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassMakeMethods = buildPerlPackage { - # pname = "Class-MakeMethods"; - # version = "1.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/EV/EVO/Class-MakeMethods-1.01.tar.gz"; - # hash = "sha256-rKx0LnnQ7Ip75Nj7gTqF6kTUfRnAFwzdswZEYCtYLGY="; - # }; - # preConfigure = '' - # # fix error 'Unescaped left brace in regex is illegal here in regex' - # substituteInPlace tests/xemulator/class_methodmaker/Test.pm --replace 's/(TEST\s{)/$1/g' 's/(TEST\s\{)/$1/g' - # ''; - # meta = { - # description = "Generate common types of methods"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassMember = buildPerlPackage { - # pname = "Class-Member"; - # version = "1.6"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/O/OP/OPI/Class-Member-1.6.tar.gz"; - # hash = "sha256-p1KK8in6OhIF3NJakd59dKxvp9lSgbmTtV6Lb0+HuZE="; - # }; - # meta = { - # description = "A set of modules to make the module developement easier"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassMethodMaker = buildPerlPackage { - # pname = "Class-MethodMaker"; - # version = "2.24"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SC/SCHWIGON/class-methodmaker/Class-MethodMaker-2.24.tar.gz"; - # hash = "sha256-Xu9YzLJ+vQG83lsUvMVTtTR6Bpnlw+khx3gMNSaJAyg="; - # }; - # # Remove unnecessary, non-autoconf, configure script. - # prePatch = "rm configure"; - # meta = { - # description = "A module for creating generic methods"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - ClassMethodModifiers = buildPerlPackage { - pname = "Class-Method-Modifiers"; - version = "2.15"; - src = fetchurl { - url = "mirror://cpan/authors/id/E/ET/ETHER/Class-Method-Modifiers-2.15.tar.gz"; - hash = "sha256-Zc2Fv+R10GbpGG96jMY2BwmFswsOuxzehoHPBiwuFfw="; - }; - buildInputs = [ TestFatal TestNeeds ]; - meta = { - description = "Provides Moose-like method modifiers"; - homepage = "https://github.com/moose/Class-Method-Modifiers"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # ClassMix = buildPerlModule { - # pname = "Class-Mix"; - # version = "0.006"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Class-Mix-0.006.tar.gz"; - # hash = "sha256-h0f2Q4k5FPjESXnxcW0MHsikE5R5ZVVEeUToYPH/fAs="; - # }; - # propagatedBuildInputs = [ ParamsClassify ]; - # meta = { - # description = "Dynamic class mixing"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassRefresh = buildPerlPackage { - # pname = "Class-Refresh"; - # version = "0.07"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DO/DOY/Class-Refresh-0.07.tar.gz"; - # hash = "sha256-47ADU1XLs1oq7j8iNojVeJRqenxXCs05iyjN2x/UvrM="; - # }; - # buildInputs = [ TestFatal TestRequires ]; - # propagatedBuildInputs = [ ClassLoad ClassUnload DevelOverrideGlobalRequire TryTiny ]; - # meta = { - # homepage = "http://metacpan.org/release/Class-Refresh"; - # description = "Refresh your classes during runtime"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassReturnValue = buildPerlPackage { - # pname = "Class-ReturnValue"; - # version = "0.55"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JE/JESSE/Class-ReturnValue-0.55.tar.gz"; - # hash = "sha256-7Tg2iF149zTM16mFUOxCKmFt98MTEMG3sfZFn1+w5L0="; - # }; - # propagatedBuildInputs = [ DevelStackTrace ]; - # meta = { - # description = "(deprecated) polymorphic return values"; - # homepage = "https://github.com/rjbs/Return-Value"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassSingleton = buildPerlPackage { - # pname = "Class-Singleton"; - # version = "1.6"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHAY/Class-Singleton-1.6.tar.gz"; - # hash = "sha256-J7oT8NlRKSkWa72MnvldkNYw/IDwyaG3RYiRBV6SgqQ="; - # }; - # meta = { - # description = "Implementation of a 'Singleton' class"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassThrowable = buildPerlPackage { - # pname = "Class-Throwable"; - # version = "0.13"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KM/KMX/Class-Throwable-0.13.tar.gz"; - # hash = "sha256-3JoR4Nq1bcIg3qjJT+PEfbXn3Xwe0E3IF4qlu3v7vM4="; - # }; - # meta = { - # description = "A minimal lightweight exception class"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassTiny = buildPerlPackage { - # pname = "Class-Tiny"; - # version = "1.008"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Class-Tiny-1.008.tar.gz"; - # hash = "sha256-7gWKY5Evofy5pySY9WykIaIFbcf59LZ4N0RtZCGBVhU="; - # }; - # meta = { - # description = "Minimalist class construction"; - # homepage = "https://github.com/dagolden/Class-Tiny"; - # license = with lib.licenses; [ asl20 ]; - # }; - # }; - - # ClassLoad = buildPerlPackage { - # pname = "Class-Load"; - # version = "0.25"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Class-Load-0.25.tar.gz"; - # hash = "sha256-Kkj6d5tSl+VhVjgOizJjfGxY3stPSn88c1BSPhEnX48="; - # }; - # buildInputs = [ TestFatal TestNeeds ]; - # propagatedBuildInputs = [ DataOptList PackageStash ]; - # meta = { - # description = "A working (require \"Class::Name\") and more"; - # homepage = "https://github.com/moose/Class-Load"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassLoadXS = buildPerlPackage { - # pname = "Class-Load-XS"; - # version = "0.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Class-Load-XS-0.10.tar.gz"; - # hash = "sha256-W8Is9Tbr/SVkxb2vQvDYpM7j0ZMPyLRLfUpCA4YirdE="; - # }; - # buildInputs = [ TestFatal TestNeeds ]; - # propagatedBuildInputs = [ ClassLoad ]; - # meta = { - # description = "XS implementation of parts of Class::Load"; - # homepage = "https://github.com/moose/Class-Load-XS"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # ClassObservable = buildPerlPackage { - # pname = "Class-Observable"; - # version = "2.004"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/Class-Observable-2.004.tar.gz"; - # hash = "sha256-bfMun+XwCIkfxO+k5PReqhQE0wIgRZyPyKUB8KfPLmk="; - # }; - # propagatedBuildInputs = [ ClassISA ]; - # meta = { - # description = "Allow other classes and objects to respond to events in yours"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassStd = buildPerlModule { - # pname = "Class-Std"; - # version = "0.013"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CH/CHORNY/Class-Std-0.013.tar.gz"; - # hash = "sha256-vNbYL2yK8P4Gn87X3RZaR5WwtukjUcfU5aGrmhT8NcY="; - # }; - # meta = { - # description = "Support for creating standard 'inside-out' classes"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassStdFast = buildPerlModule { - # pname = "Class-Std-Fast"; - # version = "0.0.8"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AC/ACID/Class-Std-Fast-v0.0.8.tar.gz"; - # hash = "sha256-G9Q3Y8ajcxgwl6MOeH9dZxOw2ydRHFLVMyZrWdLPp4A="; - # }; - # propagatedBuildInputs = [ ClassStd ]; - # nativeCheckInputs = [ TestPod TestPodCoverage ]; - # meta = { - # description = "Faster but less secure than Class::Std"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassUnload = buildPerlPackage { - # pname = "Class-Unload"; - # version = "0.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IL/ILMARI/Class-Unload-0.11.tar.gz"; - # hash = "sha256-UuKXR6fk0uGiicDh3oEHY08QyEJs18nTHsrIOD5KCl8="; - # }; - # propagatedBuildInputs = [ ClassInspector ]; - # buildInputs = [ TestRequires ]; - # meta = { - # description = "Unload a class"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassVirtual = buildPerlPackage { - # pname = "Class-Virtual"; - # version = "0.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Class-Virtual-0.08.tar.gz"; - # hash = "sha256-xkmbQtO05cZIil6C+8KGmObJhgFlBy3d+mdJNVqc+7I="; - # }; - # propagatedBuildInputs = [ CarpAssert ClassDataInheritable ClassISA ]; - # meta = { - # description = "Base class for virtual base classes"; - # homepage = "https://metacpan.org/release/Class-Virtual"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClassXSAccessor = buildPerlPackage { - # pname = "Class-XSAccessor"; - # version = "1.19"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SM/SMUELLER/Class-XSAccessor-1.19.tar.gz"; - # hash = "sha256-mcVrOV8SOa8ZkB8v7rEl2ey041Gg2A2qlSkhGkcApvI="; - # }; - # meta = { - # description = "Generate fast XS accessors without runtime compilation"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CLDRNumber = buildPerlModule { - # pname = "CLDR-Number"; - # version = "0.19"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PA/PATCH/CLDR-Number-0.19.tar.gz"; - # hash = "sha256-xnFkiOZf53n/eag/DyA2rZRGPv49DzSca5kRKXW9hfw="; - # }; - # buildInputs = [ SoftwareLicense TestDifferences TestException TestWarn ]; - # propagatedBuildInputs = - # [ ClassMethodModifiers MathRound Moo namespaceclean ]; - # meta = { - # description = "Localized number formatters using the Unicode CLDR"; - # homepage = "https://github.com/patch/cldr-number-pm5"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CLIHelpers = buildPerlPackage { - # pname = "CLI-Helpers"; - # version = "2.0"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BL/BLHOTSKY/CLI-Helpers-2.0.tar.gz"; - # hash = "sha256-yhpPFnTzsfMmjyekfJiAszgmrenxI34sEUXnAqfIePY="; - # }; - # buildInputs = [ PodCoverageTrustPod TestPerlCritic ]; - # propagatedBuildInputs = [ CaptureTiny IOInteractive RefUtil TermReadKey YAML ]; - # meta = { - # description = "Subroutines for making simple command line scripts"; - # homepage = "https://github.com/reyjrar/CLI-Helpers"; - # license = with lib.licenses; [ bsd3 ]; - # }; - # }; - - # Clipboard = buildPerlModule { - # pname = "Clipboard"; - # version = "0.28"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Clipboard-0.28.tar.gz"; - # hash = "sha256-no15AVGUJjNXwloPXQlIAP/0O9v5+GAew7DtXrCWbSY="; - # }; - # propagatedBuildInputs = [ CGI ]; - # # Disable test on darwin because MacPasteboard fails when not logged in interactively. - # # Mac OS error -4960 (coreFoundationUnknownErr): The unknown error at lib/Clipboard/MacPasteboard.pm line 3. - # # Mac-Pasteboard-0.009.readme: 'NOTE that Mac OS X appears to restrict pasteboard access to processes that are logged in interactively. - # # Ssh sessions and cron jobs can not create the requisite pasteboard handles, giving coreFoundationUnknownErr (-4960)' - # doCheck = !stdenv.isDarwin; - # meta = { - # description = "Copy and paste with any OS"; - # homepage = "https://metacpan.org/release/Clipboard"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - - Clone = buildPerlPackage { - pname = "Clone"; - version = "0.46"; - src = fetchurl { - url = "mirror://cpan/authors/id/G/GA/GARU/Clone-0.46.tar.gz"; - hash = "sha256-qt7tXkyL1rvfaMDdAGbLUT4Wq55bQ4LcSgqv1ViQaXs="; - }; - buildInputs = [ BCOW ]; - meta = { - description = "Recursively copy Perl datatypes"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # CloneChoose = buildPerlPackage { - # pname = "Clone-Choose"; - # version = "0.010"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HE/HERMES/Clone-Choose-0.010.tar.gz"; - # hash = "sha256-ViNIH1jO6O25bNICqtDfViLUJ+X3SLJThR39YuUSNjI="; - # }; - # buildInputs = [ Clone ClonePP TestWithoutModule ]; - # meta = { - # description = "Choose appropriate clone utility"; - # homepage = "https://metacpan.org/release/Clone-Choose"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ClonePP = buildPerlPackage { - # pname = "Clone-PP"; - # version = "1.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/Clone-PP-1.08.tar.gz"; - # hash = "sha256-VyAwlKXYV0tqAJUejyOZtmb050+VEdnJ+1tFPV0R9Xg="; - # }; - # meta = { - # description = "Recursively copy Perl datatypes"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CodeTidyAll = buildPerlPackage { - # pname = "Code-TidyAll"; - # version = "0.83"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/Code-TidyAll-0.83.tar.gz"; - # hash = "sha256-FqBS0DprF/xYqEqZb68p5C7O124sQMRyc+uKsxzBXKE="; - # }; - # propagatedBuildInputs = [ CaptureTiny ConfigINI FileWhich Filepushd IPCRun3 IPCSystemSimple ListCompare ListSomeUtils LogAny Moo ScopeGuard SpecioLibraryPathTiny TextDiff TimeDate TimeDurationParse ]; - # buildInputs = [ TestClass TestClassMost TestDeep TestDifferences TestException TestFatal TestMost TestWarn TestWarnings librelative ]; - # meta = { - # description = "Engine for tidyall, your all-in-one code tidier and validator"; - # homepage = "https://metacpan.org/release/Code-TidyAll"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "tidyall"; - # }; - # }; - - # CodeTidyAllPluginPerlAlignMooseAttributes = buildPerlPackage { - # pname = "Code-TidyAll-Plugin-Perl-AlignMooseAttributes"; - # version = "0.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JS/JSWARTZ/Code-TidyAll-Plugin-Perl-AlignMooseAttributes-0.01.tar.gz"; - # hash = "sha256-jR3inlbwczFoXqONGDr87f8hCOccSp2zb0GeUN0sHOU="; - # }; - # propagatedBuildInputs = [ CodeTidyAll TextAligner ]; - # meta = { - # description = "TidyAll plugin to sort and align Moose-style attributes"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ColorLibrary = buildPerlPackage { - # pname = "Color-Library"; - # version = "0.021"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RO/ROKR/Color-Library-0.021.tar.gz"; - # hash = "sha256-WMv34zPTpKQCl6vENBKzIdpEnGgWAg5PpmJasHn8kKU="; - # }; - # buildInputs = [ TestMost TestWarn TestException TestDeep TestDifferences ModulePluggable ]; - # propagatedBuildInputs = [ ClassAccessor ClassDataInheritable ]; - # meta = { - # description = "An easy-to-use and comprehensive named-color library"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CommandRunner = buildPerlModule { - # pname = "Command-Runner"; - # version = "0.200"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SK/SKAJI/Command-Runner-0.200.tar.gz"; - # hash = "sha256-WtJtBhEb/s1TyPW7XeqUvyAl9seOlfbYAS5M+oninyY="; - # }; - # buildInputs = [ ModuleBuildTiny ]; - # propagatedBuildInputs = [ CaptureTiny Filepushd StringShellQuote Win32ShellQuote ]; - # meta = { - # description = "Run external commands and Perl code refs"; - # homepage = "https://github.com/skaji/Command-Runner"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.zakame ]; - # }; - # }; - - # commonsense = buildPerlPackage { - # pname = "common-sense"; - # version = "3.75"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/ML/MLEHMANN/common-sense-3.75.tar.gz"; - # hash = "sha256-qGocTKTzAG10eQZEJaCfpbZonlcmH8uZT+Z9Bhy6Dn4="; - # }; - # meta = { - # description = "Implements some sane defaults for Perl programs"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CompilerLexer = buildPerlModule { - # pname = "Compiler-Lexer"; - # version = "0.23"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GO/GOCCY/Compiler-Lexer-0.23.tar.gz"; - # hash = "sha256-YDHOSv67+k9JKidJSb57gjIxTpECOCjEOOR5gf8Kmds="; - # }; - # nativeBuildInputs = [ pkgs.ld-is-cc-hook ]; - # buildInputs = [ ModuleBuildXSUtil ]; - # meta = { - # homepage = "https://github.com/goccy/p5-Compiler-Lexer"; - # description = "Lexical Analyzer for Perl5"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CompressBzip2 = buildPerlPackage { - # pname = "Compress-Bzip2"; - # version = "2.28"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RU/RURBAN/Compress-Bzip2-2.28.tar.gz"; - # hash = "sha256-hZ+DXD9cmYgQ2LKm+eKC/5nWy2bM+lXK5+Ztr7A1EW4="; - # }; - # meta = { - # description = "Interface to Bzip2 compression library"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CompressLZF = buildPerlPackage rec { - # pname = "Compress-LZF"; - # version = "3.8"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${pname}-${version}.tar.gz"; - # hash = "sha256-XR9d9IzhO03uHMnyeOzb+Bd4d7C5iBWk6zyRw0ZnFvI="; - # }; - # meta = { - # description = "Extremely light-weight Lempel-Ziv-Free compression"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CompressRawBzip2 = buildPerlPackage { - # pname = "Compress-Raw-Bzip2"; - # version = "2.206"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PM/PMQS/Compress-Raw-Bzip2-2.206.tar.gz"; - # hash = "sha256-ISuB2xwK6CLRmShhmmA70QjLXVxHAPxn3HyxaeDMZSU="; - # }; - - # # Don't build a private copy of bzip2. - # BUILD_BZIP2 = false; - # BZIP2_LIB = "${pkgs.bzip2.out}/lib"; - # BZIP2_INCLUDE = "${pkgs.bzip2.dev}/include"; - - # meta = { - # description = "Low-Level Interface to bzip2 compression library"; - # homepage = "https://github.com/pmqs/Compress-Raw-Bzip2"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # CompressRawLzma = buildPerlPackage { - # pname = "Compress-Raw-Lzma"; - # version = "2.206"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PM/PMQS/Compress-Raw-Lzma-2.206.tar.gz"; - # hash = "sha256-4BpwQLhL3GdZLRPuwMeIWQ4faW0dTwfHCXvXKk+IbrQ="; - # }; - # preConfigure = '' - # cat > config.in < config.in < config.in < $out/${perl.libPrefix}/cross_perl/${perl.version}/DBI.pm < $out/${perl.libPrefix}/cross_perl/${perl.version}/DBI/DBD.pm < \$(BASEEXT).xsi - - # # --- - # '; - # } - # 1; - # EOF - # ''; - # meta = { - # description = "Database independent interface for Perl"; - # homepage = "https://dbi.perl.org"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DBICxTestDatabase = buildPerlPackage { - # pname = "DBICx-TestDatabase"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JR/JROCKWAY/DBICx-TestDatabase-0.05.tar.gz"; - # hash = "sha256-jjvCUwsBIWGIw6plrNvS9ZxOYx864IXfxDmr2J+PCs8="; - # }; - # buildInputs = [ DBIxClass TestSimple13 ]; - # propagatedBuildInputs = [ DBDSQLite SQLTranslator ]; - # meta = { - # description = "Create a temporary database from a DBIx::Class::Schema"; - # homepage = "https://metacpan.org/pod/DBICx::TestDatabase"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # DBIxClass = buildPerlPackage { - # pname = "DBIx-Class"; - # version = "0.082843"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/DBIx-Class-0.082843.tar.gz"; - # hash = "sha256-NB4Lbssp2MSRdKbAnXxtvzhym6QBXuf9cDYKT/7h8lE="; - # }; - # buildInputs = [ DBDSQLite TestDeep TestException TestWarn ]; - # propagatedBuildInputs = [ ClassAccessorGrouped ClassC3Componentised ConfigAny ContextPreserve DBI DataDumperConcise DataPage DevelGlobalDestruction ModuleFind PathClass SQLAbstractClassic ScopeGuard SubName namespaceclean ]; - # meta = { - # description = "Extensible and flexible object <-> relational mapper"; - # homepage = "https://metacpan.org/pod/DBIx::Class"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "dbicadmin"; - # }; - # }; - - # DBIxClassCandy = buildPerlPackage { - # pname = "DBIx-Class-Candy"; - # version = "0.005003"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FR/FREW/DBIx-Class-Candy-0.005003.tar.gz"; - # hash = "sha256-uKIpp7FfVZCV1FYc+CIEYBKFQbp/w1Re01hpkj1GVlw="; - # }; - # buildInputs = [ TestDeep TestFatal ]; - # propagatedBuildInputs = [ DBIxClass LinguaENInflect SubExporter ]; - # meta = { - # description = "Sugar for your favorite ORM, DBIx::Class"; - # homepage = "https://github.com/frioux/DBIx-Class-Candy"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DBIxClassCursorCached = buildPerlPackage { - # pname = "DBIx-Class-Cursor-Cached"; - # version = "1.001004"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AR/ARCANEZ/DBIx-Class-Cursor-Cached-1.001004.tar.gz"; - # hash = "sha256-NwhSMqEjClqodUOZ+1mw+PzV9Zeh4uNIxSJ0YaGSYiU="; - # }; - # buildInputs = [ CacheCache DBDSQLite ]; - # propagatedBuildInputs = [ CarpClan DBIxClass ]; - # meta = { - # description = "Cursor class with built-in caching support"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DBIxClassDynamicDefault = buildPerlPackage { - # pname = "DBIx-Class-DynamicDefault"; - # version = "0.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MS/MSTROUT/DBIx-Class-DynamicDefault-0.04.tar.gz"; - # hash = "sha256-Io9RqyJGQlhLTcY9tt4mZ8W/riqJSpN2shChBIBqWvs="; - # }; - # buildInputs = [ DBICxTestDatabase ]; - # propagatedBuildInputs = [ DBIxClass ]; - # meta = { - # description = "Automatically set and update fields"; - # homepage = "https://metacpan.org/pod/DBIx::Class::DynamicDefault"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # DBIxClassHTMLWidget = buildPerlPackage { - # pname = "DBIx-Class-HTMLWidget"; - # version = "0.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AN/ANDREMAR/DBIx-Class-HTMLWidget-0.16.tar.gz"; - # hash = "sha256-QUJ1YyFu31qTllCQrg4chaldN6gdcg8CwTYM+n208Bc="; - # }; - # propagatedBuildInputs = [ DBIxClass HTMLWidget ]; - # meta = { - # description = "Like FromForm but with DBIx::Class and HTML::Widget"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DBIxClassHelpers = buildPerlPackage { - # pname = "DBIx-Class-Helpers"; - # version = "2.036000"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FR/FREW/DBIx-Class-Helpers-2.036000.tar.gz"; - # hash = "sha256-t7i0iRqYPANO8LRfQRJASgpAVQxOIX2ut6IsoWhh79s="; - # }; - # buildInputs = [ DBDSQLite DateTimeFormatSQLite TestDeep TestFatal TestRoo aliased ]; - # propagatedBuildInputs = [ CarpClan DBIxClassCandy DBIxIntrospector SafeIsa TextBrew ]; - # meta = { - # description = "Simplify the common case stuff for DBIx::Class"; - # homepage = "https://github.com/frioux/DBIx-Class-Helpers"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DBIxClassInflateColumnSerializer = buildPerlPackage { - # pname = "DBIx-Class-InflateColumn-Serializer"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MR/MRUIZ/DBIx-Class-InflateColumn-Serializer-0.09.tar.gz"; - # hash = "sha256-YmK0hx22psRaDL583o8biQsiwpGt1OzEDKruq1o6b1A="; - # }; - # buildInputs = [ DBDSQLite TestException ]; - # propagatedBuildInputs = [ DBIxClass JSONMaybeXS YAML ]; - # meta = { - # description = "Inflators to serialize data structures for DBIx::Class"; - # homepage = "https://metacpan.org/release/DBIx-Class-InflateColumn-Serializer"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # DBIxClassIntrospectableM2M = buildPerlPackage { - # pname = "DBIx-Class-IntrospectableM2M"; - # version = "0.001002"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IL/ILMARI/DBIx-Class-IntrospectableM2M-0.001002.tar.gz"; - # hash = "sha256-xrqvtCQWk/2zSynr2QaZOt02S/Mar6RGLz4GIgTMh/A="; - # }; - # propagatedBuildInputs = [ DBIxClass ]; - # meta = { - # description = "Introspect many-to-many relationships"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DBIxClassSchemaLoader = buildPerlPackage { - # pname = "DBIx-Class-Schema-Loader"; - # version = "0.07051"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/V/VE/VEESH/DBIx-Class-Schema-Loader-0.07051.tar.gz"; - # hash = "sha256-GgieUISlJ2j0J0vCGB3LrhTcxXnk2YD89WnGeBsGCSw="; - # }; - # buildInputs = [ DBDSQLite TestDeep TestDifferences TestException TestWarn ]; - # propagatedBuildInputs = [ CarpClan ClassUnload DBIxClass DataDump StringCamelCase StringToIdentifierEN curry ]; - # meta = { - # description = "Create a DBIx::Class::Schema based on a database"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "dbicdump"; - # }; - # }; - - # DBIxConnector = buildPerlPackage { - # pname = "DBIx-Connector"; - # version = "0.59"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/DBIx-Connector-0.59.tar.gz"; - # hash = "sha256-eCmU8T9JVVhAU4SU+EBrC/JVj1M8zahsjSuV4jAQh/Q="; - # }; - # buildInputs = [ TestMockModule ]; - # propagatedBuildInputs = [ DBI ]; - # meta = { - # description = "Fast, safe DBI connection and transaction management"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DBIxDBSchema = buildPerlPackage { - # pname = "DBIx-DBSchema"; - # version = "0.47"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IV/IVAN/DBIx-DBSchema-0.47.tar.gz"; - # hash = "sha256-7u4hDcFKjWPrAawtZsZ6HcJ5+Sib6WphckyJUXkcUhI="; - # }; - # propagatedBuildInputs = [ DBI ]; - # meta = { - # description = "Database-independent schema objects"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DBIxSearchBuilder = buildPerlPackage { - # pname = "DBIx-SearchBuilder"; - # version = "1.77"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BP/BPS/DBIx-SearchBuilder-1.77.tar.gz"; - # hash = "sha256-O/il1cjF/cYK0vY/Y/c90fZJP/TYJYcoOj4iM36P4HA="; - # }; - # buildInputs = [ DBDSQLite ]; - # propagatedBuildInputs = [ CacheSimpleTimedExpiry ClassAccessor ClassReturnValue Clone DBIxDBSchema Want capitalization ]; - # meta = { - # description = "Encapsulate SQL queries and rows in simple perl objects"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DBIxSimple = buildPerlPackage { - # pname = "DBIx-Simple"; - # version = "1.37"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JU/JUERD/DBIx-Simple-1.37.tar.gz"; - # hash = "sha256-RtMRqizgiQdAHFYRllhCbbsETFpA3nPZp7eb9QOQyuM="; - # }; - # propagatedBuildInputs = [ DBI ]; - # meta = { - # description = "Very complete easy-to-use OO interface to DBI"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DBMDeep = buildPerlPackage { - # pname = "DBM-Deep"; - # version = "2.0017"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DC/DCANTRELL/DBM-Deep-2.0017.tar.gz"; - # hash = "sha256-1yNFIFdVO72UXWMhXr/gqnepLsbg+jOw2spXrhuKTSQ="; - # }; - # buildInputs = [ TestDeep TestException TestPod TestPodCoverage TestWarn ]; - # meta = { - # description = "A pure perl multi-level hash/array DBM that supports transactions"; - # homepage = "https://github.com/robkinyon/dbm-deep"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DataBinary = buildPerlPackage { - # pname = "Data-Binary"; - # version = "0.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SN/SNKWATT/Data-Binary-0.01.tar.gz"; - # hash = "sha256-SCGi3hCscQj03LKEpxuHaYGwyx6mxe1q+xd78ufLjXM="; - # }; - # meta = { - # description = "Simple detection of binary versus text in strings"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # DataBuffer = buildPerlPackage { - # pname = "Data-Buffer"; - # version = "0.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BT/BTROTT/Data-Buffer-0.04.tar.gz"; - # hash = "sha256-Kz0Jt7zzifwRYgeyg77iUONI1EycY0YL7mfvq03SG7Q="; - # }; - # meta = { - # description = "Read/write buffer class"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # DBIxIntrospector = buildPerlPackage { - # pname = "DBIx-Introspector"; - # version = "0.001005"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FR/FREW/DBIx-Introspector-0.001005.tar.gz"; - # hash = "sha256-lqlNLMaQwfqP00ET47CEvypGmjI6l4AoWu+S3cOB5jo="; - # }; - - # propagatedBuildInputs = [ DBI Moo ]; - # buildInputs = [ DBDSQLite TestFatal TestRoo ]; - # meta = { - # description = "Detect what database you are connected to"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DevelCamelcadedb = buildPerlPackage { - # pname = "Devel-Camelcadedb"; - # version = "2023.1"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HU/HURRICUP/Devel-Camelcadedb-v2023.1.tar.gz"; - # hash = "sha256-z/jSTllF45RN6/ITmVprFVuR5YE0aRVrE9Ws819qXZ8="; - # }; - # propagatedBuildInputs = [ HashStoredIterator JSONXS PadWalker ]; - # perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC"; - # meta = { - # description = "Perl side of the Perl debugger for IntelliJ IDEA and other JetBrains IDEs"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - DevelCycle = buildPerlPackage { - pname = "Devel-Cycle"; - version = "1.12"; - src = fetchurl { - url = "mirror://cpan/authors/id/L/LD/LDS/Devel-Cycle-1.12.tar.gz"; - hash = "sha256-/TNlxNiYsrK927eKRtUHoYzKhJCikBmVR9q38ec5C8I="; - }; - meta = { - description = "Find memory cycles in objects"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # DevelDeclare = buildPerlPackage { - # pname = "Devel-Declare"; - # version = "0.006022"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Devel-Declare-0.006022.tar.gz"; - # hash = "sha256-cvKco1ZGpZO+mDEf/dtyAzrh6KnYJUxiqiSL1iYOWW4="; - # }; - # buildInputs = [ ExtUtilsDepends TestRequires ]; - # propagatedBuildInputs = [ BHooksEndOfScope BHooksOPCheck SubName ]; - # meta = { - # description = "(DEPRECATED) Adding keywords to perl, in perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DevelFindPerl = buildPerlPackage { - # pname = "Devel-FindPerl"; - # version = "0.016"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LE/LEONT/Devel-FindPerl-0.016.tar.gz"; - # hash = "sha256-Q6K/L3h6PxuIEXkGMWKyqj58sET25eduxkZq6QqGETg="; - # }; - # meta = { - # description = "Find the path to your perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DevelGlobalDestruction = buildPerlPackage { - # pname = "Devel-GlobalDestruction"; - # version = "0.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HAARG/Devel-GlobalDestruction-0.14.tar.gz"; - # hash = "sha256-NLil8pmRMRRo/mkTytq6df1dKws+47tB/ltT76uRVKs="; - # }; - # propagatedBuildInputs = [ SubExporterProgressive ]; - # meta = { - # description = "Provides function returning the equivalent of \${^GLOBAL_PHASE} eq 'DESTRUCT' for older perls"; - # homepage = "https://metacpan.org/release/Devel-GlobalDestruction"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DevelGlobalPhase = buildPerlPackage { - # pname = "Devel-GlobalPhase"; - # version = "0.003003"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HAARG/Devel-GlobalPhase-0.003003.tar.gz"; - # hash = "sha256-jaMCL3ynHf2/SqYGmJRNcgCsMUn0c32KnJG/Q4f/MvU="; - # }; - # meta = { - # description = "Detect perl's global phase on older perls"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DevelHide = buildPerlPackage { - # pname = "Devel-Hide"; - # version = "0.0015"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Devel-Hide-0.0015.tar.gz"; - # hash = "sha256-/I2+t/fXWnjtSWseDgXPyZxorKs6LpLP8VXKXw+l31g="; - # }; - # meta = { - # description = "Forces the unavailability of specified Perl modules (for testing)"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DevelNYTProf = buildPerlPackage { - # pname = "Devel-NYTProf"; - # version = "6.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JK/JKEENAN/Devel-NYTProf-6.12.tar.gz"; - # hash = "sha256-qDtZheTalr24X1McFqtvPUkHGnM80JSqMPqF+2pLAsQ="; - # }; - # propagatedBuildInputs = [ FileWhich JSONMaybeXS ]; - # buildInputs = [ CaptureTiny TestDifferences ]; - # nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang; - # postInstall = lib.optionalString stdenv.isDarwin '' - # shortenPerlShebang $out/bin/* - # ''; - # meta = { - # description = "Powerful fast feature-rich Perl source code profiler"; - # homepage = "https://code.google.com/p/perl-devel-nytprof"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DevelOverloadInfo = buildPerlPackage { - # pname = "Devel-OverloadInfo"; - # version = "0.007"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IL/ILMARI/Devel-OverloadInfo-0.007.tar.gz"; - # hash = "sha256-IaGEFjuQ+R8G/8f13guWg1ZUaum0AKnXXFc8lYwkYiI="; - # }; - # propagatedBuildInputs = [ MROCompat PackageStash SubIdentify ]; - # buildInputs = [ TestFatal ]; - # meta = { - # description = "Introspect overloaded operators"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DevelOverrideGlobalRequire = buildPerlPackage { - # pname = "Devel-OverrideGlobalRequire"; - # version = "0.001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Devel-OverrideGlobalRequire-0.001.tar.gz"; - # hash = "sha256-B5GJLeOuKSr0qU44LyHbHuiCEIdQMYUebqgsNBB4Xvk="; - # }; - # meta = { - # homepage = "https://metacpan.org/release/Devel-OverrideGlobalRequire"; - # description = "Override CORE::GLOBAL::require safely"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DevelPartialDump = buildPerlPackage { - # pname = "Devel-PartialDump"; - # version = "0.20"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Devel-PartialDump-0.20.tar.gz"; - # hash = "sha256-rvD/PqWalpGWfCiFEY/2ZxVghJVwicQ4j0nbZG/T2Qc="; - # }; - # propagatedBuildInputs = [ ClassTiny SubExporter namespaceclean ]; - # buildInputs = [ TestSimple13 TestWarnings ]; - # meta = { - # description = "Partial dumping of data structures, optimized for argument printing"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DevelStackTrace = buildPerlPackage { - # pname = "Devel-StackTrace"; - # version = "2.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/Devel-StackTrace-2.04.tar.gz"; - # hash = "sha256-zTwD7VR9PULGH6WBTJgpYTk5LnlxwJLgmkMfLJ9daFU="; - # }; - # meta = { - # description = "An object representing a stack trace"; - # homepage = "https://metacpan.org/release/Devel-StackTrace"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # DevelSize = buildPerlPackage { - # pname = "Devel-Size"; - # version = "0.83"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NW/NWCLARK/Devel-Size-0.83.tar.gz"; - # hash = "sha256-dXpn4KpZrhA+pcoJLL7MAlZE69wyZzFoj/q2+II+9LM="; - # }; - # meta = { - # description = "Perl extension for finding the memory usage of Perl variables"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DevelStackTraceAsHTML = buildPerlPackage { - # pname = "Devel-StackTrace-AsHTML"; - # version = "0.15"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Devel-StackTrace-AsHTML-0.15.tar.gz"; - # hash = "sha256-YoPb4hl+LyAAnMS0SZl3Qhac3ZUb/ETLxuYsKpYtMUc="; - # }; - # propagatedBuildInputs = [ DevelStackTrace ]; - # meta = { - # description = "Displays stack trace in HTML"; - # homepage = "https://github.com/miyagawa/Devel-StackTrace-AsHTML"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DevelSymdump = buildPerlPackage { - # pname = "Devel-Symdump"; - # version = "2.18"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AN/ANDK/Devel-Symdump-2.18.tar.gz"; - # hash = "sha256-gm+BoQf1WSolFnZu1DvrR+EMyD7cnqSAkLAqNgQHdsA="; - # }; - # meta = { - # description = "Dump symbol names or the symbol table"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DigestCRC = buildPerlPackage { - # pname = "Digest-CRC"; - # version = "0.24"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/O/OL/OLIMAUL/Digest-CRC-0.24.tar.gz"; - # hash = "sha256-ugIqBbGtvsc3EsRvIz2Eif4Tobn8QKH8zu2bUvkN78E="; - # }; - # meta = { - # description = "Module that calculates CRC sums of all sorts"; - # license = with lib.licenses; [ publicDomain ]; - # }; - # }; - - DigestHMAC = buildPerlPackage { - pname = "Digest-HMAC"; - version = "1.04"; - src = fetchurl { - url = "mirror://cpan/authors/id/A/AR/ARODLAND/Digest-HMAC-1.04.tar.gz"; - hash = "sha256-1ryBVqonXETXlLfBj0TNrEpYFAJFyVnmsZssODiwjtQ="; - }; - meta = { - description = "Keyed-Hashing for Message Authentication"; - homepage = "https://metacpan.org/release/Digest-HMAC"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # DigestJHash = buildPerlPackage { - # pname = "Digest-JHash"; - # version = "0.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Digest-JHash-0.10.tar.gz"; - # hash = "sha256-x0bPCoYaAECQJjzVTXco0MdZWgz5DLv9hAmzlu47AGM="; - # }; - # meta = { - # description = "Perl extension for 32 bit Jenkins Hashing Algorithm"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # DigestMD2 = buildPerlPackage { - # pname = "Digest-MD2"; - # version = "2.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GA/GAAS/Digest-MD2-2.04.tar.gz"; - # hash = "sha256-0Kq/SDTCCsQRvqQnxKMItZpfyqMnZ571KUwdaKtx7tM="; - # }; - # meta = { - # description = "Perl interface to the MD2 Algorithm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # DigestMD4 = buildPerlPackage { - # pname = "Digest-MD4"; - # version = "1.9"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIKEM/DigestMD4/Digest-MD4-1.9.tar.gz"; - # hash = "sha256-ZlEQu6MkcPOY8xHNZGL9iXXXyDZ1/2dLwvbHtysMqqY="; - # }; - # meta = { - # description = "Perl interface to the MD4 Algorithm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DigestMD5File = buildPerlPackage { - # pname = "Digest-MD5-File"; - # version = "0.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DM/DMUEY/Digest-MD5-File-0.08.tar.gz"; - # hash = "sha256-rbQ6VOMmJ7T35XyWQObrBtC7edjqVM0L157TVoj7Ehg="; - # }; - # propagatedBuildInputs = [ LWP ]; - # meta = { - # description = "Perl extension for getting MD5 sums for files and urls"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DigestPerlMD5 = buildPerlPackage { - # pname = "Digest-Perl-MD5"; - # version = "1.9"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DE/DELTA/Digest-Perl-MD5-1.9.tar.gz"; - # hash = "sha256-cQDLoXEPRfsOkH2LGnvYyu81xkrNMdfyJa/1r/7s2bE="; - # }; - # meta = { - # description = "Perl Implementation of Rivest's MD5 algorithm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DigestSHA1 = buildPerlPackage { - # pname = "Digest-SHA1"; - # version = "2.13"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GA/GAAS/Digest-SHA1-2.13.tar.gz"; - # hash = "sha256-aMHawhh0IfDrer9xRSoG8ZAYG4/Eso7e31uQKW+5Q8w="; - # }; - # meta = { - # description = "Perl interface to the SHA-1 algorithm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DigestSHA3 = buildPerlPackage { - # pname = "Digest-SHA3"; - # version = "1.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MS/MSHELOR/Digest-SHA3-1.05.tar.gz"; - # hash = "sha256-rfG5B5sreBdV5XBId6FDCl8SmX6oIgX9KWbJzEZahSI="; - # }; - # meta = { - # description = "Perl extension for SHA-3"; - # homepage = "https://metacpan.org/release/Digest-SHA3"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # mainProgram = "sha3sum"; - # }; - # }; - - # DigestSRI = buildPerlPackage { - # pname = "Digest-SRI"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HAUKEX/Digest-SRI-0.02.tar.gz"; - # hash = "sha256-VITN/m68OYwkZfeBx3w++1OKOULNSyDWiBjG//kHT8c="; - # }; - # meta = { - # description = "Calculate and verify Subresource Integrity hashes (SRI)"; - # homepage = "https://github.com/haukex/Digest-SRI"; - # license = with lib.licenses; [ gpl3Plus ]; - # }; - # }; - - # DirManifest = buildPerlModule { - # pname = "Dir-Manifest"; - # version = "0.6.1"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Dir-Manifest-0.6.1.tar.gz"; - # hash = "sha256-hP9yJoc9XoZW7Hc0TAg4wVOp8BW0a2Dh/oeYuykn5QU="; - # }; - # propagatedBuildInputs = [ Moo PathTiny ]; - # meta = { - # description = "Treat a directory and a manifest file as a hash/dictionary of keys to texts or blobs"; - # homepage = "https://metacpan.org/release/Dir-Manifest"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # DirSelf = buildPerlPackage { - # pname = "Dir-Self"; - # version = "0.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MAUKE/Dir-Self-0.11.tar.gz"; - # hash = "sha256-4lGlGrx9m6PnCPc8KqII4J1HoMUo1iVHEPp4zI1ohbU="; - # }; - # meta = { - # description = "A __DIR__ constant for the directory your source file is in"; - # homepage = "https://github.com/mauke/Dir-Self"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DispatchClass = buildPerlPackage { - # pname = "Dispatch-Class"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MAUKE/Dispatch-Class-0.02.tar.gz"; - # hash = "sha256-1020Oxr56L1G/8Fb/k3x5dgQxCzoWC6TdRDcKiyhZYI="; - # }; - # propagatedBuildInputs = [ ExporterTiny ]; - # meta = { - # description = "Dispatch on the type (class) of an argument"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DistCheckConflicts = buildPerlPackage { - # pname = "Dist-CheckConflicts"; - # version = "0.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DO/DOY/Dist-CheckConflicts-0.11.tar.gz"; - # hash = "sha256-6oRLlobJTWZtnURDIddkSQss3i+YXEFltMLHdmXK7cQ="; - # }; - # buildInputs = [ TestFatal ]; - # propagatedBuildInputs = [ ModuleRuntime ]; - # meta = { - # description = "Declare version conflicts for your dist"; - # homepage = "https://metacpan.org/release/Dist-CheckConflicts"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DistZilla = buildPerlPackage { - # pname = "Dist-Zilla"; - # version = "6.030"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Dist-Zilla-6.030.tar.gz"; - # hash = "sha256-xAa75oCelO23DKlDJMMBQz1sij375wsC3xLh3/LzsTA="; - # }; - # buildInputs = [ CPANMetaCheck TestDeep TestFailWarnings TestFatal TestFileShareDir ]; - # propagatedBuildInputs = [ AppCmd CPANUploader ConfigMVPReaderINI DateTime FileCopyRecursive FileFindRule FileShareDirInstall Filepushd LogDispatchouli MooseXLazyRequire MooseXSetOnce MooseXTypesPerl PathTiny PerlPrereqScanner SoftwareLicense TermEncoding TermUI YAMLTiny ]; - # nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang; - # postInstall = lib.optionalString stdenv.isDarwin '' - # shortenPerlShebang $out/bin/dzil - # ''; - # doCheck = false; - # meta = { - # description = "Distribution builder; installer not included!"; - # homepage = "https://dzil.org"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "dzil"; - # }; - # }; - - # DistZillaPluginBundleTestingMania = buildPerlModule { - # pname = "Dist-Zilla-PluginBundle-TestingMania"; - # version = "0.25"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DO/DOHERTY/Dist-Zilla-PluginBundle-TestingMania-0.25.tar.gz"; - # hash = "sha256-XguywA8UD9ZNy9EvpdPJ4kS5NWgor0ZRmLYjBGnUWRw="; - # }; - # buildInputs = [ MooseAutobox TestCPANMeta TestPerlCritic TestVersion ]; - # propagatedBuildInputs = [ DistZillaPluginMojibakeTests DistZillaPluginTestCPANChanges DistZillaPluginTestCPANMetaJSON DistZillaPluginTestCompile DistZillaPluginTestDistManifest DistZillaPluginTestEOL DistZillaPluginTestKwalitee DistZillaPluginTestMinimumVersion DistZillaPluginTestNoTabs DistZillaPluginTestPerlCritic DistZillaPluginTestPodLinkCheck DistZillaPluginTestPortability DistZillaPluginTestSynopsis DistZillaPluginTestUnusedVars DistZillaPluginTestVersion PodCoverageTrustPod ]; - # doCheck = false; /* fails with 'open3: exec of .. perl .. failed: Argument list too long at .../TAP/Parser/Iterator/Process.pm line 165.' */ - # meta = { - # description = "Test your dist with every testing plugin conceivable"; - # homepage = "https://metacpan.org/release/Dist-Zilla-PluginBundle-TestingMania"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DistZillaPluginCheckChangeLog = buildPerlPackage { - # pname = "Dist-Zilla-Plugin-CheckChangeLog"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FA/FAYLAND/Dist-Zilla-Plugin-CheckChangeLog-0.05.tar.gz"; - # hash = "sha256-sLNNbXC1bxlE0DxfDcO49vJEdMgW0HtlehFsaSwuBSo="; - # }; - # propagatedBuildInputs = [ DistZilla ]; - # buildInputs = [ PathClass PodCoverage PodCoverageTrustPod PodMarkdown TestDeep TestException TestPod TestPodCoverage ]; - # meta = { - # description = "Dist::Zilla with Changes check"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DistZillaPluginMojibakeTests = buildPerlPackage { - # pname = "Dist-Zilla-Plugin-MojibakeTests"; - # version = "0.8"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SY/SYP/Dist-Zilla-Plugin-MojibakeTests-0.8.tar.gz"; - # hash = "sha256-8f/1R+okqPekg0Bqcu1sQFjXRtna6WNyVQLdugJas4A="; - # }; - # propagatedBuildInputs = [ DistZilla ]; - # buildInputs = [ TestMojibake ]; - # meta = { - # description = "Author tests for source encoding"; - # homepage = "https://github.com/creaktive/Dist-Zilla-Plugin-MojibakeTests"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DistZillaPluginPodWeaver = buildPerlPackage { - # pname = "Dist-Zilla-Plugin-PodWeaver"; - # version = "4.010"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Dist-Zilla-Plugin-PodWeaver-4.010.tar.gz"; - # hash = "sha256-Zm1S1UXUjSpn8VN63HTPOMdkofmVHQtiNiP2IGDLYj4="; - # }; - # propagatedBuildInputs = [ DistZilla PodElementalPerlMunger PodWeaver ]; - # meta = { - # description = "Weave your Pod together from configuration and Dist::Zilla"; - # homepage = "https://github.com/rjbs/Dist-Zilla-Plugin-PodWeaver"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DistZillaPluginReadmeAnyFromPod = buildPerlPackage { - # pname = "Dist-Zilla-Plugin-ReadmeAnyFromPod"; - # version = "0.163250"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RT/RTHOMPSON/Dist-Zilla-Plugin-ReadmeAnyFromPod-0.163250.tar.gz"; - # hash = "sha256-1E8nmZIveLKnlh7YkSPhG913q/6FuiBA2CuArXLtE7w="; - # }; - # buildInputs = [ TestDeep TestDifferences TestException TestFatal TestMost TestRequires TestSharedFork TestWarn ]; - # propagatedBuildInputs = [ DistZillaRoleFileWatcher MooseXHasSugar PodMarkdownGithub ]; - # meta = { - # description = "Automatically convert POD to a README in any format for Dist::Zilla"; - # homepage = "https://github.com/DarwinAwardWinner/Dist-Zilla-Plugin-ReadmeAnyFromPod"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DistZillaPluginReadmeMarkdownFromPod = buildPerlPackage { - # pname = "Dist-Zilla-Plugin-ReadmeMarkdownFromPod"; - # version = "0.141140"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RT/RTHOMPSON/Dist-Zilla-Plugin-ReadmeMarkdownFromPod-0.141140.tar.gz"; - # hash = "sha256-nKrXs2bqWRGa1zzdmdzdU/h3pRW9AWT8KLM5wBc5qAE="; - # }; - # buildInputs = [ TestDeep TestDifferences TestException TestMost TestWarn ]; - # propagatedBuildInputs = [ DistZillaPluginReadmeAnyFromPod ]; - # meta = { - # description = "Automatically convert POD to a README.mkdn for Dist::Zilla"; - # homepage = "https://github.com/DarwinAwardWinner/Dist-Zilla-Plugin-ReadmeMarkdownFromPod"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DistZillaPluginTestCPANChanges = buildPerlPackage { - # pname = "Dist-Zilla-Plugin-Test-CPAN-Changes"; - # version = "0.012"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DO/DOHERTY/Dist-Zilla-Plugin-Test-CPAN-Changes-0.012.tar.gz"; - # hash = "sha256-IVs6XDxYyLqw6icTBEG72uxzfuzADwZwk39gi9v2SAY="; - # }; - # buildInputs = [ CPANChanges TestDeep ]; - # propagatedBuildInputs = [ DistZilla ]; - # meta = { - # description = "Release tests for your changelog"; - # homepage = "https://metacpan.org/release/Dist-Zilla-Plugin-Test-CPAN-Changes"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DistZillaPluginTestCPANMetaJSON = buildPerlModule { - # pname = "Dist-Zilla-Plugin-Test-CPAN-Meta-JSON"; - # version = "0.004"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DO/DOHERTY/Dist-Zilla-Plugin-Test-CPAN-Meta-JSON-0.004.tar.gz"; - # hash = "sha256-Clc+HVZAN05u5NVtT7lKPGfU511Ss93q5wz6ZFDhryI="; - # }; - # buildInputs = [ MooseAutobox TestCPANMetaJSON TestDeep ]; - # propagatedBuildInputs = [ DistZilla ]; - # meta = { - # description = "Validate your CPAN META.json files"; - # homepage = "https://p3rl.org/Dist::Zilla::Plugin::Test::CPAN::Meta::JSON"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # DistZillaPluginTestCompile = buildPerlModule { - # pname = "Dist-Zilla-Plugin-Test-Compile"; - # version = "2.058"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-Compile-2.058.tar.gz"; - # hash = "sha256-0M+T5SXxAuyg9/OWcSTS5Z0KIS9zjOVMHd2R3aJo2Io="; - # }; - # buildInputs = [ CPANMetaCheck ModuleBuildTiny TestDeep TestMinimumVersion TestWarnings ]; - # propagatedBuildInputs = [ DistZilla ]; - # meta = { - # description = "Assert that your Perl files compile OK"; - # homepage = "https://github.com/karenetheridge/Dist-Zilla-Plugin-Test-Compile"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DistZillaPluginTestDistManifest = buildPerlModule { - # pname = "Dist-Zilla-Plugin-Test-DistManifest"; - # version = "2.000006"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-DistManifest-2.000006.tar.gz"; - # hash = "sha256-Wj2kW/yYzjhf7X3BZTp4kGEfC57xVsABOueFdPiWYH0="; - # }; - # buildInputs = [ ModuleBuildTiny TestDeep TestDistManifest TestOutput ]; - # propagatedBuildInputs = [ DistZilla ]; - # meta = { - # description = "Author test that validates a package MANIFEST"; - # homepage = "https://github.com/jawnsy/Test-DistManifest"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DistZillaPluginTestEOL = buildPerlModule { - # pname = "Dist-Zilla-Plugin-Test-EOL"; - # version = "0.19"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-EOL-0.19.tar.gz"; - # hash = "sha256-orlZx6AszDLt1D7lhgmHVhPv1Ty8u9YDmeF/FUZ6Qzg="; - # }; - # buildInputs = [ ModuleBuildTiny TestDeep TestEOL TestWarnings ]; - # propagatedBuildInputs = [ DistZilla ]; - # meta = { - # description = "Check the correct line endings in your project"; - # homepage = "https://github.com/karenetheridge/Test-EOL"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DistZillaPluginTestKwalitee = buildPerlModule { - # pname = "Dist-Zilla-Plugin-Test-Kwalitee"; - # version = "2.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-Kwalitee-2.12.tar.gz"; - # hash = "sha256-vdvPzHXo6y0tnIYRVS8AzcGwUfDwB5hiO4aS/1Awry8="; - # }; - # buildInputs = [ ModuleBuildTiny TestDeep TestFatal TestKwalitee ]; - # propagatedBuildInputs = [ DistZilla ]; - # meta = { - # description = "Test the Kwalitee of a distribution before you release it"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DistZillaPluginTestMinimumVersion = buildPerlModule { - # pname = "Dist-Zilla-Plugin-Test-MinimumVersion"; - # version = "2.000010"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-MinimumVersion-2.000010.tar.gz"; - # hash = "sha256-uLcfS2S2ifS2R6OofWqqrkWmiJLTXja6qXb2BXNjcPs="; - # }; - # buildInputs = [ ModuleBuildTiny TestDeep TestMinimumVersion TestOutput ]; - # propagatedBuildInputs = [ DistZilla ]; - # meta = { - # description = "Release tests for minimum required versions"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DistZillaPluginTestNoTabs = buildPerlModule { - # pname = "Dist-Zilla-Plugin-Test-NoTabs"; - # version = "0.15"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-NoTabs-0.15.tar.gz"; - # hash = "sha256-G2EMQpFpKbtwFDw2t55XF1JbDp3njj1GCal4ZCtk0KQ="; - # }; - # propagatedBuildInputs = [ DistZilla ]; - # buildInputs = [ ModuleBuildTiny TestDeep TestNoTabs TestRequires ]; - # meta = { - # description = "Check the presence of tabs in your project"; - # homepage = "https://github.com/karenetheridge/Dist-Zilla-Plugin-Test-NoTabs"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DistZillaPluginTestPerlCritic = buildPerlModule { - # pname = "Dist-Zilla-Plugin-Test-Perl-Critic"; - # version = "3.001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-Perl-Critic-3.001.tar.gz"; - # hash = "sha256-klC1nV3Brkxok7p4O9PwUTGxT/npGvtFVTFPVSaKOCU="; - # }; - # buildInputs = [ ModuleBuildTiny TestDeep TestPerlCritic ]; - # propagatedBuildInputs = [ DistZilla ]; - # meta = { - # description = "Tests to check your code against best practices"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DistZillaPluginTestPodLinkCheck = buildPerlPackage { - # pname = "Dist-Zilla-Plugin-Test-Pod-LinkCheck"; - # version = "1.004"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RW/RWSTAUNER/Dist-Zilla-Plugin-Test-Pod-LinkCheck-1.004.tar.gz"; - # hash = "sha256-Ml0jbaCUA4jSqobsXBMmUWtK1Fre+Oek+Du5HV7hVJA="; - # }; - # # buildInputs = [ TestPodLinkCheck ]; - # propagatedBuildInputs = [ DistZilla ]; - # buildInputs = [ TestPodLinkCheck ]; - # meta = { - # description = "Add release tests for POD links"; - # homepage = "https://github.com/rwstauner/Dist-Zilla-Plugin-Test-Pod-LinkCheck"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DistZillaPluginTestPortability = buildPerlModule { - # pname = "Dist-Zilla-Plugin-Test-Portability"; - # version = "2.001001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-Portability-2.001001.tar.gz"; - # hash = "sha256-07kxVx4VoidI6BJwmq/aclEKdMAA/AaiyrWHVYEACyA="; - # }; - # buildInputs = [ ModuleBuildTiny TestDeep TestPortabilityFiles TestWarnings ]; - # propagatedBuildInputs = [ DistZilla ]; - # meta = { - # description = "Author tests for portability"; - # homepage = "https://github.com/karenetheridge/Dist-Zilla-Plugin-Test-Portability"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DistZillaPluginTestSynopsis = buildPerlPackage { - # pname = "Dist-Zilla-Plugin-Test-Synopsis"; - # version = "2.000007"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DO/DOHERTY/Dist-Zilla-Plugin-Test-Synopsis-2.000007.tar.gz"; - # hash = "sha256-59XiUwzYpbtarfPhZpplOqqW4yyte9a5yrprQlzqtWM="; - # }; - # buildInputs = [ TestDeep TestOutput TestSynopsis ]; - # propagatedBuildInputs = [ DistZilla ]; - # meta = { - # description = "Release tests for synopses"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DistZillaPluginTestUnusedVars = buildPerlModule { - # pname = "Dist-Zilla-Plugin-Test-UnusedVars"; - # version = "2.001001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-UnusedVars-2.001001.tar.gz"; - # hash = "sha256-df7W0NzCv0B/8nrJ4W7yFTRnFEuYbPovmPhpuqWNdkc="; - # }; - # buildInputs = [ ModuleBuildTiny TestDeep TestOutput TestVars ]; - # propagatedBuildInputs = [ DistZilla ]; - # meta = { - # description = "Release tests for unused variables"; - # homepage = "https://metacpan.org/release/Dist-Zilla-Plugin-Test-UnusedVars"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # DistZillaPluginTestVersion = buildPerlPackage { - # pname = "Dist-Zilla-Plugin-Test-Version"; - # version = "1.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/Dist-Zilla-Plugin-Test-Version-1.09.tar.gz"; - # hash = "sha256-ckBQhzG8G/bfrXcB7GVFChjvkkWlIasm69ass5qevhc="; - # }; - # buildInputs = [ Filechdir TestDeep TestEOL TestNoTabs TestScript TestVersion ]; - # propagatedBuildInputs = [ DistZilla ]; - # meta = { - # description = "Release Test::Version tests"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # DistZillaRoleFileWatcher = buildPerlModule { - # pname = "Dist-Zilla-Role-FileWatcher"; - # version = "0.006"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Role-FileWatcher-0.006.tar.gz"; - # hash = "sha256-/jpEuVhtrxJ3/Lu69yFrAs4j77vWlPDfEbf3U0S+TpY="; - # }; - # propagatedBuildInputs = [ DistZilla SafeIsa ]; - # buildInputs = [ ModuleBuildTiny TestDeep TestFatal ]; - # meta = { - # description = "Receive notification when something changes a file's contents"; - # homepage = "https://github.com/karenetheridge/Dist-Zilla-Role-FileWatcher"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Dotenv = buildPerlPackage { - # pname = "Dotenv"; - # version = "0.002"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BO/BOOK/Dotenv-0.002.tar.gz"; - # hash = "sha256-BMenzEURYX16cMTKQQ0QcH3EliSM2tICQK4kIiMhJFQ="; - # }; - # buildInputs = [ TestCPANMeta TestPod TestPodCoverage ]; - # propagatedBuildInputs = [ PathTiny ]; - # meta = { - # description = "Support for dotenv in Perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Dumbbench = buildPerlPackage { - # pname = "Dumbbench"; - # version = "0.503"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BD/BDFOY/Dumbbench-0.503.tar.gz"; - # hash = "sha256-0BYBmoGDE+cERk8oDPZB72Dodx0HeRtZuZ4XoeyAH6k="; - # }; - # propagatedBuildInputs = [ CaptureTiny ClassXSAccessor DevelCheckOS NumberWithError StatisticsCaseResampling ]; - # meta = { - # description = "More reliable benchmarking with the least amount of thinking"; - # homepage = "https://github.com/briandfoy/dumbbench"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "dumbbench"; - # }; - # }; - - # EmailAbstract = buildPerlPackage { - # pname = "Email-Abstract"; - # version = "3.010"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Abstract-3.010.tar.gz"; - # hash = "sha256-jBL2i1l0yvyZ10lCq+/IWXGTA1qv0nYxKOaqr8pLftY="; - # }; - # propagatedBuildInputs = [ EmailSimple MROCompat ModulePluggable ]; - # meta = { - # description = "Unified interface to mail representations"; - # homepage = "https://github.com/rjbs/Email-Abstract"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # EmailAddress = buildPerlPackage { - # pname = "Email-Address"; - # version = "1.913"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Address-1.913.tar.gz"; - # hash = "sha256-avtUH232tTXM92QtNhrhjXqVo/k6zhvFNz9kwkEMpa8="; - # }; - # meta = { - # description = "RFC 2822 Address Parsing and Creation"; - # homepage = "https://github.com/rjbs/Email-Address"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # EmailAddressList = buildPerlPackage { - # pname = "Email-Address-List"; - # version = "0.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BP/BPS/Email-Address-List-0.06.tar.gz"; - # hash = "sha256-MFuUx3gBHO5w2fIVFNkumF+p3Mu4TGR5jwwfCyTrhw4="; - # }; - # buildInputs = [ JSON ]; - # propagatedBuildInputs = [ EmailAddress ]; - # meta = { - # description = "RFC close address list parsing"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # EmailAddressXS = buildPerlPackage { - # pname = "Email-Address-XS"; - # version = "1.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PA/PALI/Email-Address-XS-1.05.tar.gz"; - # hash = "sha256-FRC38Q1nIBA3zVDSLJ1rJu7KVe3tpM20a7yiflmk6hY="; - # }; - # meta = { - # description = "Parse and format RFC 5322 email addresses and groups"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # EmailDateFormat = buildPerlPackage { - # pname = "Email-Date-Format"; - # version = "1.008"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Date-Format-1.008.tar.gz"; - # hash = "sha256-Qyt8g/+IdJrxKAA/UlfFc67BpGNBjbkO0ihDy7wli08="; - # }; - # meta = { - # description = "Produce RFC 2822 date strings"; - # homepage = "https://github.com/rjbs/Email-Date-Format"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # EmailReply = buildPerlPackage { - # pname = "Email-Reply"; - # version = "1.204"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Reply-1.204.tar.gz"; - # hash = "sha256-uk/YCsUBfW0TLgNYx4aw7NHHrcvu5cGfs9opZHkaVvA="; - # }; - # propagatedBuildInputs = [ EmailAbstract EmailAddress EmailMIME ]; - # meta = { - # description = "Reply to an email message"; - # homepage = "https://github.com/Perl-Email-Project/Email-Reply"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # EmailMessageID = buildPerlPackage { - # pname = "Email-MessageID"; - # version = "1.408"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MessageID-1.408.tar.gz"; - # hash = "sha256-Hz1bT/Cxx7OemsfDGPs3rc0LrJVWA2VGSU0U8G3FZDw="; - # }; - # meta = { - # description = "Generate world unique message-ids"; - # homepage = "https://github.com/rjbs/Email-MessageID"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # EmailMIME = buildPerlPackage { - # pname = "Email-MIME"; - # version = "1.953"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-1.953.tar.gz"; - # hash = "sha256-mPsGeFBpmiJLq8NI8c7+MNdExg2okC56XOnYt+c99zU="; - # }; - # propagatedBuildInputs = [ EmailAddressXS EmailMIMEContentType EmailMIMEEncodings EmailMessageID EmailSimple MIMETypes ModuleRuntime ]; - # meta = { - # description = "Easy MIME message handling"; - # homepage = "https://github.com/rjbs/Email-MIME"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # EmailMIMEAttachmentStripper = buildPerlPackage { - # pname = "Email-MIME-Attachment-Stripper"; - # version = "1.317"; - # buildInputs = [ CaptureTiny ]; - # propagatedBuildInputs = [ EmailAbstract EmailMIME ]; - - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-Attachment-Stripper-1.317.tar.gz"; - # hash = "sha256-3LmLCdw+j3V+w4gqQjRUgQi7LRLjz635WibO84Gp54k="; - # }; - # meta = { - # description = "Strip the attachments from an email"; - # homepage = "https://github.com/rjbs/Email-MIME-Attachment-Stripper"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # EmailMIMEContentType = buildPerlPackage { - # pname = "Email-MIME-ContentType"; - # version = "1.028"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-ContentType-1.028.tar.gz"; - # hash = "sha256-55UCRkM/ftbD5P1N8iJ+DyNBE3w8qxmJAY/DcPWBRcQ="; - # }; - # propagatedBuildInputs = [ TextUnidecode ]; - # meta = { - # description = "Parse and build a MIME Content-Type or Content-Disposition Header"; - # homepage = "https://github.com/rjbs/Email-MIME-ContentType"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # EmailMIMEEncodings = buildPerlPackage { - # pname = "Email-MIME-Encodings"; - # version = "1.317"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-Encodings-1.317.tar.gz"; - # hash = "sha256-SppBZxqdFQTE2iQb5BmpUD+jSGJiUm7bgeyp4uvqC68="; - # }; - # buildInputs = [ CaptureTiny ]; - # meta = { - # description = "A unified interface to MIME encoding and decoding"; - # homepage = "https://github.com/rjbs/Email-MIME-Encodings"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # EmailSend = buildPerlPackage { - # pname = "Email-Send"; - # version = "2.201"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Send-2.201.tar.gz"; - # hash = "sha256-S77JM1WNfMm4FSutht0xPeJ3ohqJtOqD2E5hWH6V28Y="; - # }; - # propagatedBuildInputs = [ EmailAbstract EmailAddress ReturnValue ]; - # buildInputs = [ MIMETools MailTools ]; - # meta = { - # description = "Simply Sending Email"; - # homepage = "https://github.com/rjbs/Email-Send"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # EmailOutlookMessage = buildPerlModule { - # pname = "Email-Outlook-Message"; - # version = "0.921"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MV/MVZ/Email-Outlook-Message-0.921.tar.gz"; - # hash = "sha256-+0q+6hTNpRweYLwhHPlSG7uq50uEEYym1Y8KciNoA4g="; - # }; - # propagatedBuildInputs = [ EmailMIME EmailSender IOAll IOString OLEStorage_Lite ]; - # preCheck = "rm t/internals.t t/plain_jpeg_attached.t"; # these tests expect EmailMIME version 1.946 and fail with 1.949 (the output difference in benign) - # meta = { - # homepage = "https://www.matijs.net/software/msgconv/"; - # description = "A .MSG to mbox converter"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ peterhoeg ]; - # mainProgram = "msgconvert"; - # }; - # }; - - # EmailSender = buildPerlPackage { - # pname = "Email-Sender"; - # version = "2.600"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Sender-2.600.tar.gz"; - # hash = "sha256-7MZ10DDXnZpPsGRWfqiFxmsXw4Yjea0w+CBaKBzY7ik="; - # }; - # buildInputs = [ CaptureTiny ]; - # propagatedBuildInputs = [ EmailAbstract EmailAddressXS EmailSimple ModuleRuntime Moo MooXTypesMooseLike SubExporter Throwable TryTiny ]; - # nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang; - # postPatch = '' - # patchShebangs --build util - # ''; - # preCheck = lib.optionalString stdenv.isDarwin '' - # shortenPerlShebang util/sendmail - # ''; - # meta = { - # description = "A library for sending email"; - # homepage = "https://github.com/rjbs/Email-Sender"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # EmailSimple = buildPerlPackage { - # pname = "Email-Simple"; - # version = "2.218"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Simple-2.218.tar.gz"; - # hash = "sha256-Lc4daP3pnVPbnKQ+IRtpsWm6Lvrs+HpVyzOpM2BHyW0="; - # }; - # propagatedBuildInputs = [ EmailDateFormat ]; - # meta = { - # description = "Simple parsing of RFC2822 message format and headers"; - # homepage = "https://github.com/rjbs/Email-Simple"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # EmailStuffer = buildPerlPackage { - # pname = "Email-Stuffer"; - # version = "0.020"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Stuffer-0.020.tar.gz"; - # hash = "sha256-Ch77fy3t05BSsSb3GMotO1hFpBI6OTkv2d+gx25gV8c="; - # }; - # buildInputs = [ Moo TestFatal ]; - # propagatedBuildInputs = [ EmailMIME EmailSender ModuleRuntime ParamsUtil ]; - # meta = { - # description = "A more casual approach to creating and sending Email:: emails"; - # homepage = "https://github.com/rjbs/Email-Stuffer"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ sgo ]; - # }; - # }; - - # EmailValid = buildPerlPackage { - # pname = "Email-Valid"; - # version = "1.203"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Valid-1.203.tar.gz"; - # hash = "sha256-ICG/ux4sJ55evYRoDllvlzRNQphQsjIme3b0kDdSK5M="; - # }; - # propagatedBuildInputs = [ IOCaptureOutput MailTools NetDNS NetDomainTLD ]; - # doCheck = false; - # meta = { - # description = "Check validity of Internet email addresses"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # EmailValidLoose = buildPerlPackage { - # pname = "Email-Valid-Loose"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Email-Valid-Loose-0.05.tar.gz"; - # hash = "sha256-5xjnbt3uJAJRyZnhOcjL5vLMgBktpa+HXL0S+oq5Olk="; - # }; - # propagatedBuildInputs = [ EmailValid ]; - # meta = { - # description = "Email::Valid which allows dot before at mark"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Encode = buildPerlPackage { - # pname = "Encode"; - # version = "3.19"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DANKOGAI/Encode-3.19.tar.gz"; - # hash = "sha256-kWP4SO72nk1MyIODl/CGH9nqft4AERfb2WlPjZUFLvU="; - # }; - # meta = { - # description = "Character encodings in Perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "piconv"; - # }; - # }; - - # EncodeBase32GMP = buildPerlPackage { - # pname = "Encode-Base32-GMP"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JW/JWANG/Encode-Base32-GMP-0.02.tar.gz"; - # hash = "sha256-RUIG+n2C5V4DJ0aYcyNBtgcVDwDo4q7FjzUyagMIMtw="; - # }; - # buildInputs = [ TestBase ]; - # propagatedBuildInputs = [ MathGMPz ]; - # meta = { - # description = "High speed Base32 encoding using GMP with BigInt and MD5 support"; - # homepage = "https://metacpan.org/release/Encode-Base32-GMP"; - # license = with lib.licenses; [ mit ]; - # maintainers = with maintainers; [ sgo ]; - # }; - # }; - - # EncodeDetect = buildPerlModule { - # pname = "Encode-Detect"; - # version = "1.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JG/JGMYERS/Encode-Detect-1.01.tar.gz"; - # hash = "sha256-g02JOqfbbOPxWK+9DkMtbtFaJ24JQNsKdL4T/ZxLu/E="; - # }; - # nativeBuildInputs = [ pkgs.ld-is-cc-hook ]; - # meta = { - # description = "An Encode::Encoding subclass that detects the encoding of data"; - # license = with lib.licenses; [ mpl11 gpl2Plus lgpl2Plus ]; # taken from fedora - # }; - # }; - - - # EncodeEUCJPASCII = buildPerlPackage { - # pname = "Encode-EUCJPASCII"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEZUMI/Encode-EUCJPASCII-0.03.tar.gz"; - # hash = "sha256-+ZjTTVX9nILPkQeGoESNHt+mC/aOLCMGckymfGKd6GE="; - # }; - # outputs = [ "out" ]; - # meta = { - # description = "EucJP-ascii - An eucJP-open mapping"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # EncodeHanExtra = buildPerlPackage { - # pname = "Encode-HanExtra"; - # version = "0.23"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AU/AUDREYT/Encode-HanExtra-0.23.tar.gz"; - # hash = "sha256-H9SwbK2nCFgAOvFT+UyGOzuV8uPQO6GNBFGoHVHbRDo="; - # }; - # meta = { - # description = "Extra sets of Chinese encodings"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # EncodeIMAPUTF7 = buildPerlPackage { - # pname = "Encode-IMAPUTF7"; - # version = "1.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PM/PMAKHOLM/Encode-IMAPUTF7-1.05.tar.gz"; - # hash = "sha256-RwMF3cN0g8/o08FtE3cKKAEfYAv1V6y4w+B3OZl8N+E="; - # }; - # nativeCheckInputs = [ TestNoWarnings ]; - # meta = { - # description = "IMAP modified UTF-7 encoding"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # EncodeJIS2K = buildPerlPackage { - # pname = "Encode-JIS2K"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DANKOGAI/Encode-JIS2K-0.03.tar.gz"; - # hash = "sha256-HshNcts53rTa1vypWs/MIQM/RaJNNHwg+aGmlolsNcw="; - # }; - # outputs = [ "out" ]; - # meta = { - # description = "JIS X 0212 (aka JIS 2000) Encodings"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - EncodeLocale = buildPerlPackage { - pname = "Encode-Locale"; - version = "1.05"; - src = fetchurl { - 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; - meta = { - description = "Determine the locale encoding"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # EncodeNewlines = buildPerlPackage { - # pname = "Encode-Newlines"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/Encode-Newlines-0.05.tar.gz"; - # hash = "sha256-NLMfysjI/cghubNDSoLXEzIT73TM/yVf4UioavloN74="; - # }; - # meta = { - # description = "Normalize line ending sequences"; - # homepage = "https://github.com/neilb/Encode-Newlines"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # EncodePunycode = buildPerlPackage { - # pname = "Encode-Punycode"; - # version = "1.002"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CF/CFAERBER/Encode-Punycode-1.002.tar.gz"; - # hash = "sha256-yjrO7NuAtdRaoQ4c3o/sTpC0+MkYnHUE3YZY8HH3cZQ="; - # }; - # buildInputs = [ TestNoWarnings ]; - # propagatedBuildInputs = [ NetIDNEncode ]; - # meta = { - # description = "Encode plugin for Punycode (RFC 3492)"; - # homepage = "https://search.cpan.org/dist/Encode-Punycode"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # enum = buildPerlPackage { - # pname = "enum"; - # version = "1.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/enum-1.12.tar.gz"; - # hash = "sha256-aaeokc04iO2LAsXpmh9In5KmLsNRwLx4lP1719FEfqk="; - # }; - # meta = { - # description = "C style enumerated types and bitmask flags in Perl"; - # homepage = "https://github.com/neilb/enum"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Env = buildPerlPackage { - # pname = "Env"; - # version = "1.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FL/FLORA/Env-1.04.tar.gz"; - # hash = "sha256-2Uo9QS3yRq/cMaIZnL2K6RUWej9GhPe3AUzhIAJR67A="; - # }; - # meta = { - # description = "Perl module that imports environment variables as scalars or arrays"; - # homepage = "https://search.cpan.org/dist/Env"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # EnvPath = buildPerlPackage { - # pname = "Env-Path"; - # version = "0.19"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DS/DSB/Env-Path-0.19.tar.gz"; - # hash = "sha256-JEvwk3mIMqfYQdnuW0sOa0iZlu72NUHlBQkao0qQFeI="; - # }; - # meta = { - # description = "Advanced operations on path variables"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "envpath"; - # }; - # }; - - # EnvSanctify = buildPerlPackage { - # pname = "Env-Sanctify"; - # version = "1.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BI/BINGOS/Env-Sanctify-1.12.tar.gz"; - # hash = "sha256-IOO1ZhwmVHSmnyiZR46ye5RkklWGu2tvtmYSnlgoMl8="; - # }; - # meta = { - # description = "Lexically scoped sanctification of %ENV"; - # homepage = "https://github.com/bingos/env-sanctify"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ENVUtil = buildPerlPackage { - # pname = "ENV-Util"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GA/GARU/ENV-Util-0.03.tar.gz"; - # hash = "sha256-B1574ehSxD6wiGYvr978FS9O9WyEPB4F2QDaGQb3P60="; - # }; - # meta = { - # description = "Parse prefixed environment variables and dotnev (.env) files into Perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Error = buildPerlModule { - # pname = "Error"; - # version = "0.17029"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Error-0.17029.tar.gz"; - # hash = "sha256-GiP3kTAyrtbUtoMhNzo4mcpmWQ9HJzkaCR7BnJW/etw="; - # }; - # meta = { - # description = "Error/exception handling in an OO-ish way"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # EV = buildPerlPackage { - # pname = "EV"; - # version = "4.34"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/ML/MLEHMANN/EV-4.34.tar.gz"; - # hash = "sha256-EhFoPc57Z3H0q3EMwVNxK913umFXoTKU0LtzSR/QZWA="; - # }; - # buildInputs = [ CanaryStability ]; - # propagatedBuildInputs = [ commonsense ]; - # meta = { - # description = "Perl interface to libev, a high performance full-featured event loop"; - # license = with lib.licenses; [ gpl1Plus ]; - # }; - # }; - - # EvalClosure = buildPerlPackage { - # pname = "Eval-Closure"; - # version = "0.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DO/DOY/Eval-Closure-0.14.tar.gz"; - # hash = "sha256-6glE8vXsmNiVvvbVA+bko3b+pjg6a8ZMdnDUb/IhjK0="; - # }; - # buildInputs = [ TestFatal TestRequires ]; - # meta = { - # description = "Safely and cleanly create closures via string eval"; - # homepage = "https://metacpan.org/release/Eval-Closure"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # EvalSafe = buildPerlPackage rec { - # pname = "Eval-Safe"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MATHIAS/Eval-Safe/Eval-Safe-${version}.tar.gz"; - # hash = "sha256-VaUsIz4troYRP58Zs09hftz8hBb5vs5nEme9GBGxIRE="; - # }; - # outputs = [ "out" ]; - # meta = with lib; { - # description = "Simplified safe evaluation of Perl code"; - # homepage = "https://github.com/mkende/perl-eval-safe"; - # license = licenses.mit; - # maintainers = with maintainers; [ figsoda ]; - # }; - # }; - - # ExcelWriterXLSX = buildPerlPackage { - # pname = "Excel-Writer-XLSX"; - # version = "1.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JM/JMCNAMARA/Excel-Writer-XLSX-1.11.tar.gz"; - # hash = "sha256-yzMA0jEZxpiGTvC3PBmnLLpxi/wG7QBzWaUxP5YcwqA="; - # }; - # propagatedBuildInputs = [ ArchiveZip ]; - # meta = { - # description = "Create a new file in the Excel 2007+ XLSX format"; - # homepage = "https://jmcnamara.github.com/excel-writer-xlsx"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "extract_vba"; - # }; - # }; - - # ExceptionBase = buildPerlModule { - # pname = "Exception-Base"; - # version = "0.2501"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DE/DEXTER/Exception-Base-0.2501.tar.gz"; - # hash = "sha256-VyPdePSsC00mKgXqRq9mPqANgJay6cCkNRXCEHYOHnU="; - # }; - # buildInputs = [ TestUnitLite ]; - # patches = [ - # ./perl-modules/Exception-Base-remove-smartmatch-when-5.38.0.patch - # ]; - # meta = { - # description = "Lightweight exceptions"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ExceptionClass = buildPerlPackage { - # pname = "Exception-Class"; - # version = "1.45"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/Exception-Class-1.45.tar.gz"; - # hash = "sha256-VIKnfvAnyh+fOeH0jFWDVulUk2/I+73ubIEcUScBskk="; - # }; - # propagatedBuildInputs = [ ClassDataInheritable DevelStackTrace ]; - # meta = { - # description = "An Exception Object Class"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ExceptionDied = buildPerlModule { - # pname = "Exception-Died"; - # version = "0.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DE/DEXTER/Exception-Died-0.06.tar.gz"; - # hash = "sha256-NcRAvCr9TVfiQaDbG05o2dUpXfLbjXidObX0UQWXirU="; - # }; - # buildInputs = [ TestAssert TestUnitLite ]; - # propagatedBuildInputs = [ ExceptionBase constantboolean ]; - # meta = { - # description = "Convert simple die into real exception object"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ExceptionWarning = buildPerlModule { - # pname = "Exception-Warning"; - # version = "0.0401"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DE/DEXTER/Exception-Warning-0.0401.tar.gz"; - # hash = "sha256-ezacps61se3ytdX4cOl0x8k+kwNnw5o5AL/2CZce06g="; - # }; - # buildInputs = [ TestAssert TestUnitLite ]; - # propagatedBuildInputs = [ ExceptionBase ]; - # meta = { - # description = "Convert simple warn into real exception object"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ExporterDeclare = buildPerlModule { - # pname = "Exporter-Declare"; - # version = "0.114"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/EX/EXODIST/Exporter-Declare-0.114.tar.gz"; - # hash = "sha256-S9cNbKdvb2un5MYY1KyTuFk6WPEjPMvhixD18gTx1OQ="; - # }; - # buildInputs = [ FennecLite TestException ]; - # propagatedBuildInputs = [ MetaBuilder aliased ]; - # meta = { - # description = "Exporting done right"; - # homepage = "http://open-exodus.net/projects/Exporter-Declare"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ExporterLite = buildPerlPackage { - # pname = "Exporter-Lite"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/Exporter-Lite-0.09.tar.gz"; - # hash = "sha256-edixT9UBOSLGPoUPFb9RBZ8lAkBFNetmkO8jYSwqGY0="; - # }; - # meta = { - # description = "Lightweight exporting of functions and variables"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - ExporterTiny = buildPerlPackage { - pname = "Exporter-Tiny"; - version = "1.006002"; - src = fetchurl { - url = "mirror://cpan/authors/id/T/TO/TOBYINK/Exporter-Tiny-1.006002.tar.gz"; - hash = "sha256-byleLL/7HbwVvbna3DQWccHgzSvfLTErF1Jic8MiY40="; - }; - 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 ]; - }; - }; - - # Expect = buildPerlPackage { - # pname = "Expect"; - # version = "1.35"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JA/JACOBY/Expect-1.35.tar.gz"; - # hash = "sha256-CdknYUId7NSVhTEDN5FlqZ779FLHIPMCd2As8jZ5/QY="; - # }; - # propagatedBuildInputs = [ IOTty ]; - # meta = { - # description = "Automate interactions with command line programs that expose a text terminal interface"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ExpectSimple = buildPerlPackage { - # pname = "Expect-Simple"; - # version = "0.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DJ/DJERIUS/Expect-Simple-0.04.tar.gz"; - # hash = "sha256-r4O5IYXmQmlZE/8Tjv6Bl1LoCFd1mZber8qrJwCtXbU="; - # }; - # propagatedBuildInputs = [ Expect ]; - # meta = { - # description = "Wrapper around the Expect module"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ExtUtilsCChecker = buildPerlModule { - # pname = "ExtUtils-CChecker"; - # version = "0.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/ExtUtils-CChecker-0.11.tar.gz"; - # hash = "sha256-EXc2Z343/GEfW3Y3TX+VLhlw64Dh9q1RUNUW565TG/U="; - # }; - # buildInputs = [ TestFatal ]; - # meta = { - # description = "Configure-time utilities for using C headers,"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - ExtUtilsConfig = buildPerlPackage { - pname = "ExtUtils-Config"; - version = "0.008"; - src = fetchurl { - url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Config-0.008.tar.gz"; - hash = "sha256-rlEE9jRlDc6KebftE/tZ1no5whOmd2z9qj7nSeYvGow="; - }; - meta = { - description = "A wrapper for perl's configuration"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # ExtUtilsConstant = buildPerlPackage { - # pname = "ExtUtils-Constant"; - # version = "0.25"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NW/NWCLARK/ExtUtils-Constant-0.25.tar.gz"; - # hash = "sha256-aTPQ6WO2IoHvdWEGjmrsrIxKwrR2srugmrC5D7rJ11c="; - # }; - # patches = [ - # ./perl-modules/ExtUtils-Constant-fix-indirect-method-call-in-test.patch - # ]; - # meta = { - # description = "Generate XS code to import C header constants"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ExtUtilsCppGuess = buildPerlPackage { - # pname = "ExtUtils-CppGuess"; - # version = "0.26"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETJ/ExtUtils-CppGuess-0.26.tar.gz"; - # hash = "sha256-yLNiuGAXKkB2rO4AQ49SuGRk8sUAcCz891J4Ef+aaD4="; - # }; - # doCheck = !stdenv.isDarwin; - # nativeBuildInputs = [ pkgs.ld-is-cc-hook ]; - # propagatedBuildInputs = [ CaptureTiny ]; - # buildInputs = [ ModuleBuild ]; - # meta = { - # description = "Guess C++ compiler and flags"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ExtUtilsDepends = buildPerlPackage { - # pname = "ExtUtils-Depends"; - # version = "0.8001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/X/XA/XAOC/ExtUtils-Depends-0.8001.tar.gz"; - # hash = "sha256-ZzxDh+eJbBohYJnB+7P6qndj1/X5WhpWpgoqKQbBMcU="; - # }; - # meta = { - # description = "Easily build XS extensions that depend on XS extensions"; - # license = with lib.licenses; [ artistic1 gpl1Plus artistic1 gpl1Plus ]; - # }; - # }; - - # ExtUtilsF77 = buildPerlPackage { - # pname = "ExtUtils-F77"; - # version = "1.26"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETJ/ExtUtils-F77-1.26.tar.gz"; - # hash = "sha256-q90dPuxMpPyuXxUrQLyqhi48gG4H5KqRI3V/aqSLndY="; - # }; - # buildInputs = [ pkgs.gfortran ]; - # propagatedBuildInputs = [ FileWhich ]; - # meta = { - # description = "A simple interface to F77 libs"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - ExtUtilsHelpers = buildPerlPackage { - pname = "ExtUtils-Helpers"; - version = "0.026"; - src = fetchurl { - url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Helpers-0.026.tar.gz"; - hash = "sha256-3pAbZ5CkVXz07JCBSeA1eDsSW/EV65ZA/rG8HCTDNBY="; - }; - meta = { - description = "Various portability utilities for module builders"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # ExtUtilsInstall = buildPerlPackage { - # pname = "ExtUtils-Install"; - # version = "2.22"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BI/BINGOS/ExtUtils-Install-2.22.tar.gz"; - # hash = "sha256-M3Jbr77Tgp1hPkxlHC4a0SBnDH0qxc8F+DdX/Jddb/I="; - # }; - # meta = { - # description = "Install files from here to there"; - # homepage = "https://metacpan.org/release/ExtUtils-Install"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - ExtUtilsInstallPaths = buildPerlPackage { - pname = "ExtUtils-InstallPaths"; - version = "0.012"; - src = fetchurl { - url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-InstallPaths-0.012.tar.gz"; - hash = "sha256-hHNeMDe6sf3/o8JQhWetQSp4XJFZnbPBJZOlCh3UNO0="; - }; - propagatedBuildInputs = [ ExtUtilsConfig ]; - meta = { - description = "Build.PL install path logic made easy"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # ExtUtilsLibBuilder = buildPerlModule { - # pname = "ExtUtils-LibBuilder"; - # version = "0.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AM/AMBS/ExtUtils-LibBuilder-0.08.tar.gz"; - # hash = "sha256-xRFx4G3lMDnwvKHZemRx7DeUH/Weij0csXDr3SVztdI="; - # }; - # perlPreHook = "export LD=$CC"; - # meta = { - # description = "A tool to build C libraries"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ExtUtilsMakeMaker = buildPerlPackage { - # pname = "ExtUtils-MakeMaker"; - # version = "7.70"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BI/BINGOS/ExtUtils-MakeMaker-7.70.tar.gz"; - # hash = "sha256-8Qi9RkINLwDSQoJfhlsPaIUQhJJJJPkiYdaExJ4+enQ="; - # }; - # meta = { - # description = "Create a module Makefile"; - # homepage = "https://metacpan.org/release/ExtUtils-MakeMaker"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "instmodsh"; - # }; - # }; - - # ExtUtilsMakeMakerCPANfile = buildPerlPackage { - # pname = "ExtUtils-MakeMaker-CPANfile"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/ExtUtils-MakeMaker-CPANfile-0.09.tar.gz"; - # hash = "sha256-LAd2B9SwoQhWkHTf926BaGWQYq2jpq94swzKDUD44nU="; - # }; - # propagatedBuildInputs = [ ModuleCPANfile ]; - # meta = { - # description = "Cpanfile support for EUMM"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ExtUtilsPkgConfig = buildPerlPackage { - # pname = "ExtUtils-PkgConfig"; - # version = "1.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/X/XA/XAOC/ExtUtils-PkgConfig-1.16.tar.gz"; - # hash = "sha256-u+rO2ZXX2NEM/FGjpaZtpBzrK8BP7cq1DhDmMA6AHG4="; - # }; - # nativeBuildInputs = [ buildPackages.pkg-config ]; - # propagatedBuildInputs = [ pkgs.pkg-config ]; - # postPatch = '' - # # no pkg-config binary when cross-compiling so the check fails - # substituteInPlace Makefile.PL \ - # --replace "pkg-config" "$PKG_CONFIG" - # ''; - # doCheck = false; # expects test_glib-2.0.pc in PKG_CONFIG_PATH - # meta = { - # description = "Simplistic interface to pkg-config"; - # license = with lib.licenses; [ lgpl21Plus ]; - # }; - # }; - - # # From CPAN[1]: - # # This module exists merely as a compatibility wrapper around - # # ExtUtils::Typemaps. In a nutshell, ExtUtils::Typemap was renamed to - # # ExtUtils::Typemaps because the Typemap directory in lib/ could collide with - # # the typemap file on case-insensitive file systems. - # # - # # The ExtUtils::Typemaps module is part of the ExtUtils::ParseXS distribution - # # and ships with the standard library of perl starting with perl version - # # 5.16. - # # - # # [1] https://metacpan.org/pod/release/SMUELLER/ExtUtils-Typemap-1.00/lib/ExtUtils/Typemap.pm: - # ExtUtilsTypemap = buildPerlPackage { - # pname = "ExtUtils-Typemap"; - # version = "1.00"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SM/SMUELLER/ExtUtils-Typemap-1.00.tar.gz"; - # hash = "sha256-sbAVdy27BouToPb/oC9dlIIjZeYBisXtK8U8pmkHH8c="; - # }; - # meta = { - # description = "Read/Write/Modify Perl/XS typemap files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ExtUtilsTypemapsDefault = buildPerlModule { - # pname = "ExtUtils-Typemaps-Default"; - # version = "1.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SM/SMUELLER/ExtUtils-Typemaps-Default-1.05.tar.gz"; - # hash = "sha256-Pfr1g36/3AB4lb/KhMPC521Ymn0zZADo37MkPYGCFd4="; - # }; - # meta = { - # description = "A set of useful typemaps"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ExtUtilsXSBuilder = buildPerlPackage { - # pname = "ExtUtils-XSBuilder"; - # version = "0.28"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GR/GRICHTER/ExtUtils-XSBuilder-0.28.tar.gz"; - # hash = "sha256-jM7ThuPVRMXsLes67QVbcuvPwuqabIB9qHxCRScv6Ao="; - # }; - # propagatedBuildInputs = [ ParseRecDescent TieIxHash ]; - # meta = { - # description = "Automatic Perl XS glue code generation"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ExtUtilsXSpp = buildPerlModule { - # pname = "ExtUtils-XSpp"; - # version = "0.18"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SM/SMUELLER/ExtUtils-XSpp-0.18.tar.gz"; - # hash = "sha256-kXatZGcp470nz3q/EUvt00JL/xumEYXPx9VPOpIjqP8="; - # }; - # buildInputs = [ TestBase TestDifferences ]; - # meta = { - # description = "XS for C++"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "xspp"; - # }; - # }; - - # FatalException = buildPerlModule { - # pname = "Fatal-Exception"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DE/DEXTER/Fatal-Exception-0.05.tar.gz"; - # hash = "sha256-KAldIT+zKknJwjKmhEg375Rdua1unmHkULTfTQjj7k8="; - # }; - # buildInputs = [ ExceptionWarning TestAssert TestUnitLite ]; - # propagatedBuildInputs = [ ExceptionDied ]; - # meta = { - # description = "Thrown when core function has a fatal error"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - FCGI = buildPerlPackage { - pname = "FCGI"; - version = "0.82"; - src = fetchurl { - url = "mirror://cpan/authors/id/E/ET/ETHER/FCGI-0.82.tar.gz"; - hash = "sha256-TH1g4m2iwH8Fik40UCHpJQUnOzPJVCIVl34IRhHwns8="; - }; - buildInputs = [ FCGIClient ]; - postPatch = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' - sed -i '/use IO::File/d' Makefile.PL - ''; - meta = { - description = "Fast CGI module"; - license = with lib.licenses; [ oml ]; - }; - }; - - FCGIClient = buildPerlModule { - pname = "FCGI-Client"; - version = "0.09"; - src = fetchurl { - url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/FCGI-Client-0.09.tar.gz"; - hash = "sha256-1TfLCc5aqz9Eemu0QV5GzAbv4BYRzVYom1WCvbRiIeg="; - }; - 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 ]; - }; - }; - - FCGIProcManager = buildPerlPackage { - pname = "FCGI-ProcManager"; - version = "0.28"; - src = fetchurl { - url = "mirror://cpan/authors/id/A/AR/ARODLAND/FCGI-ProcManager-0.28.tar.gz"; - hash = "sha256-4clYwEJCehdeBR4ACPICXo7IBhPTx3UFl7+OUpsEQg4="; - }; - meta = { - description = "A perl-based FastCGI process manager"; - license = with lib.licenses; [ gpl2Plus ]; - }; - }; - - # FFIC = buildPerlPackage { - # pname = "FFI-C"; - # version = "0.15"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-C-0.15.tar.gz"; - # hash = "sha256-63BgfmZzvMsY3yf0zuRZ+23EGODak+aSzcNVX+QNL04="; - # }; - # buildInputs = [ CaptureTiny PathTiny Test2Suite ]; - # propagatedBuildInputs = [ ClassInspector FFIPlatypus FFIPlatypusTypeEnum RefUtil SubIdentify SubInstall ]; - # meta = { - # homepage = "https://metacpan.org/pod/FFI::C"; - # description = "C data types for FFI"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ tomasajt ]; - # }; - # }; - - # FFICheckLib = buildPerlPackage { - # pname = "FFI-CheckLib"; - # version = "0.31"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-CheckLib-0.31.tar.gz"; - # hash = "sha256-BNiF/Dd9RIluXqHE7DEPl5uwTy8YZYp+ek1Qn36Au4A="; - # }; - # buildInputs = [ Test2Suite ]; - # propagatedBuildInputs = [ FileWhich ]; - # meta = { - # description = "Check that a library is available for FFI"; - # homepage = "https://metacpan.org/pod/FFI::CheckLib"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FeatureCompatTry = buildPerlModule { - # pname = "Feature-Compat-Try"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/Feature-Compat-Try-0.05.tar.gz"; - # hash = "sha256-WaHHFzysMNsTHF8T+jhA9xhYju+bV5NS/+FWtVBxbXw="; - # }; - # buildInputs = [ Test2Suite ]; - # propagatedBuildInputs = [ SyntaxKeywordTry ]; - # meta = { - # description = "Make C syntax available"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FFICStat = buildPerlPackage { - # pname = "FFI-C-Stat"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-C-Stat-0.03.tar.gz"; - # hash = "sha256-YOjveCyLs0cFXJ49ov1BTzX2EP5P77eNBzncyiQoQx4="; - # }; - # buildInputs = [ Filechdir PathTiny Test2Suite TestScript ]; - # propagatedBuildInputs = [ FFIPlatypus RefUtil ]; - # meta = { - # homepage = "https://metacpan.org/pod/FFI::C::Stat"; - # description = "Object-oriented FFI interface to native stat and lstat"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ tomasajt ]; - # }; - # }; - - # FFIPlatypus = buildPerlPackage { - # pname = "FFI-Platypus"; - # version = "2.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-Platypus-2.08.tar.gz"; - # hash = "sha256-EbOrEU7ZY1YxzYWzjSKXhuFEv5Sjr5rAnD17s0M2uSQ="; - # }; - # buildInputs = [ AlienFFI Test2Suite ]; - # propagatedBuildInputs = [ CaptureTiny FFICheckLib ]; - # meta = { - # homepage = "https://pl.atypus.org"; - # description = "Write Perl bindings to non-Perl libraries with FFI. No XS required"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ tomasajt ]; - # }; - # }; - - # FFIPlatypusTypePtrObject = buildPerlPackage { - # pname = "FFI-Platypus-Type-PtrObject"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-Platypus-Type-PtrObject-0.03.tar.gz"; - # hash = "sha256-4elJB++QtANgqabAPSlaEwR9T2ybVqyvHfK1TRcwf3Q="; - # }; - # buildInputs = [ Test2Suite Test2ToolsFFI ]; - # propagatedBuildInputs = [ FFIPlatypus RefUtil ]; - # meta = { - # homepage = "https://metacpan.org/pod/FFI::Platypus::Type::PtrObject"; - # description = "Platypus custom type for an object wrapped around an opaque pointer"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ tomasajt ]; - # }; - # }; - - # FFIPlatypusTypeEnum = buildPerlPackage { - # pname = "FFI-Platypus-Type-Enum"; - # version = "0.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-Platypus-Type-Enum-0.06.tar.gz"; - # hash = "sha256-yVSmBPfWkpYk+pQT2NDh2DtL2XfQVifKznPtU6lcd98="; - # }; - # buildInputs = [ FFIPlatypus Test2Suite ]; - # propagatedBuildInputs = [ RefUtil ]; - # meta = { - # homepage = "https://metacpan.org/pod/FFI::Platypus::Type::Enum"; - # description = "Custom platypus type for dealing with C enumerated types"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ tomasajt ]; - # }; - # }; - - # FennecLite = buildPerlModule { - # pname = "Fennec-Lite"; - # version = "0.004"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/EX/EXODIST/Fennec-Lite-0.004.tar.gz"; - # hash = "sha256-3OKOOTJ2LC/5KqUtkEBcBuiY6By3sWTMrolmrnfx3Ks="; - # }; - # meta = { - # description = "Minimalist Fennec, the commonly used bits"; - # homepage = "http://open-exodus.net/projects/Fennec-Lite"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileChangeNotify = buildPerlPackage { - # pname = "File-ChangeNotify"; - # version = "0.31"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/File-ChangeNotify-0.31.tar.gz"; - # hash = "sha256-GSvbHOdiZsamlKjpYtA5463uuCm2rB4j9QV/K1Bjkr0="; - # }; - # buildInputs = [ Test2Suite TestRequires TestWithoutModule ]; - # propagatedBuildInputs = [ ModulePluggable Moo TypeTiny namespaceautoclean ]; - # meta = { - # description = "Watch for changes to files, cross-platform style"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # Filechdir = buildPerlPackage { - # pname = "File-chdir"; - # version = "0.1011"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/File-chdir-0.1011.tar.gz"; - # hash = "sha256-Mev5Et9I1daB3vdLmIDXix86ykNRoO0f41cLjgOvbHk="; - # }; - # meta = { - # description = "A more sensible way to change directories"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileBaseDir = buildPerlPackage { - # version = "0.09"; - # pname = "File-BaseDir"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-BaseDir-0.09.tar.gz"; - # hash = "sha256-bab3KBVirI8R7xo69q7bUcQRgrYPHxIs7QB579kpZ9k="; - # }; - # propagatedBuildInputs = [ IPCSystemSimple ]; - # nativeCheckInputs = [ FileWhich ]; - # meta = { - # description = "Use the Freedesktop.org base directory specification"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileBOM = buildPerlModule { - # pname = "File-BOM"; - # version = "0.18"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MATTLAW/File-BOM-0.18.tar.gz"; - # hash = "sha256-KO3EP8sRjhG8RYya6InVbTiMHZvCmZewCx3/2Fc4I6M="; - # }; - # buildInputs = [ TestException ]; - # propagatedBuildInputs = [ Readonly ]; - # meta = { - # description = "Utilities for handling Byte Order Marks"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileCheckTree = buildPerlPackage { - # pname = "File-CheckTree"; - # version = "4.42"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/File-CheckTree-4.42.tar.gz"; - # hash = "sha256-ZvtBf4/4peW36iVgYVbnDiBIYcWfqMODGSW03T8VX4o="; - # }; - # meta = { - # description = "Run many filetest checks on a tree"; - # homepage = "https://search.cpan.org/dist/File-CheckTree"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Filechmod = buildPerlPackage { - # pname = "File-chmod"; - # version = "0.42"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/X/XE/XENO/File-chmod-0.42.tar.gz"; - # hash = "sha256-bK+v/2i8hCFRaLVe3g0ZHctX+aMgG1HWHtsoWKJAd5U="; - # }; - # meta = { - # description = "Implements symbolic and ls chmod modes"; - # homepage = "https://metacpan.org/dist/File-chmod"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FilechmodRecursive = buildPerlPackage { - # pname = "File-chmod-Recursive"; - # version = "1.0.3"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MITHUN/File-chmod-Recursive-v1.0.3.tar.gz"; - # hash = "sha256-k0jKXFuI3q3MSDuTme98Lg/CUE+QWNtl88PFPEETmqc="; - # }; - # propagatedBuildInputs = [ Filechmod ]; - # meta = { - # description = "Run chmod recursively against directories"; - # homepage = "https://github.com/mithun/perl-file-chmod-recursive"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileCopyRecursive = buildPerlPackage { - # pname = "File-Copy-Recursive"; - # version = "0.45"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DM/DMUEY/File-Copy-Recursive-0.45.tar.gz"; - # hash = "sha256-05cc94qDReOAQrIIu3s5y2lQgDhq9in0oE/9ZUnfEVc="; - # }; - # buildInputs = [ PathTiny TestDeep TestFatal TestFile TestWarnings ]; - # meta = { - # description = "Perl extension for recursively copying files and directories"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileCopyRecursiveReduced = buildPerlPackage { - # pname = "File-Copy-Recursive-Reduced"; - # version = "0.007"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JK/JKEENAN/File-Copy-Recursive-Reduced-0.007.tar.gz"; - # hash = "sha256-07WFIuaYA6kUN+KcCZ63Bug3Px7vBRik3DZp3T383Cc="; - # }; - # buildInputs = [ CaptureTiny PathTiny ]; - # meta = { - # description = "Recursive copying of files and directories within Perl 5 toolchain"; - # homepage = "http://thenceforward.net/perl/modules/File-Copy-Recursive-Reduced"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileCountLines = buildPerlPackage { - # pname = "File-CountLines"; - # version = "0.0.3"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MO/MORITZ/File-CountLines-v0.0.3.tar.gz"; - # hash = "sha256-z9l8znyWE+TladR4dKK1cE8b6eztLwc5yHByVpQ4KmI="; - # }; - # meta = { - # description = "Efficiently count the number of line breaks in a file"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileDesktopEntry = buildPerlPackage { - # version = "0.22"; - # pname = "File-DesktopEntry"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MICHIELB/File-DesktopEntry-0.22.tar.gz"; - # hash = "sha256-FpwB49ri9il2e+wanxzb1uxtcT0VAeCyeG5N0SNWNbg="; - # }; - # propagatedBuildInputs = [ FileBaseDir URI ]; - # meta = { - # description = "Object to handle .desktop files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileDirList = buildPerlPackage { - # version = "0.05"; - # pname = "File-DirList"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TP/TPABA/File-DirList/File-DirList-0.05.tar.gz"; - # sha256 = "sha256-mTt9dmLlV5hEih7azLmr0oHSvSO+fquZ9Wm44pYtO8M="; - # }; - # preCheck = '' - # export HOME="$TMPDIR" - # ''; - # meta = { - # description = "Provide a sorted list of directory content"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileFindIterator = buildPerlPackage { - # pname = "File-Find-Iterator"; - # version = "0.4"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TE/TEXMEC/File-Find-Iterator-0.4.tar.gz"; - # hash = "sha256-orh6uXVqLlu2dK29OZN2Y+0gwoxxa/WhCVo8pE1Uqyw="; - # }; - # propagatedBuildInputs = [ ClassIterator ]; - # meta = { - # description = "Iterator interface for search files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileFindObject = buildPerlModule { - # pname = "File-Find-Object"; - # version = "0.3.8"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/File-Find-Object-0.3.8.tar.gz"; - # hash = "sha256-TlJRRt6GTt+8kJsIRGKe7O0AY7YdQYuXLu8D+ES7NRQ="; - # }; - # buildInputs = [ FileTreeCreate TestFile ]; - # propagatedBuildInputs = [ ClassXSAccessor ]; - # meta = { - # description = "An object oriented File::Find replacement"; - # homepage = "https://metacpan.org/release/File-Find-Object"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # FileFindObjectRule = buildPerlModule { - # pname = "File-Find-Object-Rule"; - # version = "0.0313"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/File-Find-Object-Rule-0.0313.tar.gz"; - # hash = "sha256-gZQPKZ1khySPvzDY8ft99sajSz35RApWIbE1yONPz/I="; - # }; - # buildInputs = [ FileTreeCreate ]; - # propagatedBuildInputs = [ ClassXSAccessor FileFindObject NumberCompare TextGlob ]; - # # restore t/sample-data which is corrupted by patching shebangs - # preCheck = '' - # tar xf $src */t/sample-data --strip-components=1 - # ''; - # meta = { - # description = "Alternative interface to File::Find::Object"; - # homepage = "https://www.shlomifish.org/open-source/projects/File-Find-Object"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "findorule"; - # }; - # }; - - # FileFindRule = buildPerlPackage { - # pname = "File-Find-Rule"; - # version = "0.34"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RC/RCLAMP/File-Find-Rule-0.34.tar.gz"; - # hash = "sha256-fm8WzDPrHyn/Jb7lHVE/S4qElHu/oY7bLTzECi1kyv4="; - # }; - # propagatedBuildInputs = [ NumberCompare TextGlob ]; - # meta = { - # description = "File::Find::Rule is a friendlier interface to File::Find"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "findrule"; - # }; - # }; - - # FileFindRulePerl = buildPerlPackage { - # pname = "File-Find-Rule-Perl"; - # version = "1.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/File-Find-Rule-Perl-1.16.tar.gz"; - # hash = "sha256-rhiGBQ2cohIjwHPihwq9yA3DDj9VKJoRw32jggqDIf8="; - # }; - # propagatedBuildInputs = [ FileFindRule ParamsUtil ]; - # meta = { - # description = "Common rules for searching for Perl things"; - # homepage = "https://github.com/karenetheridge/File-Find-Rule-Perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileFinder = buildPerlPackage { - # pname = "File-Finder"; - # version = "0.53"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/ME/MERLYN/File-Finder-0.53.tar.gz"; - # hash = "sha256-LsvBmsZ6nmNchyqAeo0+qv9bq8BU8VoZHUfN/F8XanQ="; - # }; - # propagatedBuildInputs = [ TextGlob ]; - # meta = { - # description = "Nice wrapper for File::Find ala find(1)"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileFnMatch = buildPerlPackage { - # pname = "File-FnMatch"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MJ/MJP/File-FnMatch-0.02.tar.gz"; - # hash = "sha256-liRUuOhr6osTK/ivNXV9DGqPXVmQFb1qXWjLeuep6RY="; - # }; - # meta = { - # description = "Simple filename and pathname matching"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = teams.deshaw.members; - # }; - # }; - - # FileFcntlLock = buildPerlPackage { - # pname = "File-FcntlLock"; - # version = "0.22"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JT/JTT/File-FcntlLock-0.22.tar.gz"; - # hash = "sha256-mpq7Lv/5Orc3QaEo0/cA5SUnNUbBXQTnxRxwSrCdvN8="; - # }; - # meta = { - # description = "File locking with fcntl(2)"; - # license = with lib.licenses; [ artistic1 ]; - # maintainers = with maintainers; [ das_j ]; - # }; - # }; - - # FileGrep = buildPerlPackage { - # pname = "File-Grep"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MN/MNEYLON/File-Grep-0.02.tar.gz"; - # hash = "sha256-Ri4VJ062J4UhQH6jAtnupyUs1EyrI4KHH33oM9X4VjI="; - # }; - # meta = { - # description = "Find matches to a pattern in a series of files and related functions"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = teams.deshaw.members; - # }; - # }; - - # FileHandleUnget = buildPerlPackage { - # pname = "FileHandle-Unget"; - # version = "0.1634"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DC/DCOPPIT/FileHandle-Unget-0.1634.tar.gz"; - # hash = "sha256-OA80rTzl6exmHUxGi7M5IjHBYjF9QXLfN4FGtCqrF4U="; - # }; - # buildInputs = [ FileSlurper TestCompile UNIVERSALrequire URI ]; - # meta = { - # description = "FileHandle which supports multi-byte unget"; - # homepage = "https://github.com/coppit/filehandle-unget"; - # license = with lib.licenses; [ gpl2Only ]; - # maintainers = with maintainers; [ romildo ]; - # }; - # }; - - # FileHomeDir = buildPerlPackage { - # pname = "File-HomeDir"; - # version = "1.006"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RE/REHSACK/File-HomeDir-1.006.tar.gz"; - # hash = "sha256-WTc3xi3w9tq11BIuC0R2QXlFu2Jiwz7twAlmXvFUiFI="; - # }; - # propagatedBuildInputs = [ FileWhich ]; - # preCheck = "export HOME=$TMPDIR"; - # doCheck = !stdenv.isDarwin; - # meta = { - # description = "Find your home and other directories on any platform"; - # homepage = "https://metacpan.org/release/File-HomeDir"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileKeePass = buildPerlPackage { - # pname = "File-KeePass"; - # version = "2.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RH/RHANDOM/File-KeePass-2.03.tar.gz"; - # hash = "sha256-wwxogCelL/T1jNadbY7zVHKnzxBtTOlOtzp5a6fH/6c="; - # }; - # propagatedBuildInputs = [ CryptRijndael ]; - # meta = { - # description = "Interface to KeePass V1 and V2 database files"; - # license = with lib.licenses; [ gpl2Only gpl3Only ]; - # }; - # }; - - # Filelchown = buildPerlModule { - # pname = "File-lchown"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/File-lchown-0.02.tar.gz"; - # hash = "sha256-oC+/KFQGqKTZOZKE8DLy1VxWl1FUwuFnS9EJg3uAluw="; - # }; - # buildInputs = [ ExtUtilsCChecker ]; - # perlPreHook = lib.optionalString (stdenv.isi686 || stdenv.isDarwin) "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local' - # meta = { - # description = "Modify attributes of symlinks without dereferencing them"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileLibMagic = buildPerlPackage { - # pname = "File-LibMagic"; - # version = "1.23"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/File-LibMagic-1.23.tar.gz"; - # hash = "sha256-Uuax3Hyy2HpM30OboUXguejPKMwmpIo8+Zd8g0Y5Z+4="; - # }; - # buildInputs = [ pkgs.file ConfigAutoConf TestFatal ]; - # makeMakerFlags = [ "--lib=${pkgs.file}/lib" ]; - # preCheck = '' - # substituteInPlace t/oo-api.t \ - # --replace "/usr/share/file/magic.mgc" "${pkgs.file}/share/misc/magic.mgc" - # ''; - # meta = { - # description = "Determine MIME types of data or files using libmagic"; - # homepage = "https://metacpan.org/release/File::LibMagic"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.FileLibMagic.x86_64-darwin - # }; - # }; - - FileListing = buildPerlPackage { - pname = "File-Listing"; - version = "6.16"; - src = fetchurl { - url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-Listing-6.16.tar.gz"; - hash = "sha256-GJs6E/wKG6QSudnsWQHp5eREzHRrnwFW1DmTcNM2VcY="; - }; - propagatedBuildInputs = [ HTTPDate ]; - meta = { - description = "Parse directory listing"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # FileLoadLines = buildPerlPackage { - # pname = "File-LoadLines"; - # version = "1.021"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JV/JV/File-LoadLines-1.021.tar.gz"; - # hash = "sha256-mOQS98aSYRNPNLh4W926sxVrj0UlU9u1tWytaDuG//A="; - # }; - # buildInputs = [ TestException ]; - # meta = { - # description = "Load lines from file"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileMimeInfo = buildPerlPackage { - # pname = "File-MimeInfo"; - # version = "0.33"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MICHIELB/File-MimeInfo-0.33.tar.gz"; - # hash = "sha256-9r6ms4kGITJeycJ5KvruiOlIoK4dEIcvpyxxELPhscQ="; - # }; - # doCheck = false; # Failed test 'desktop file is the right one' - # buildInputs = [ FileBaseDir FileDesktopEntry EncodeLocale ]; - # meta = { - # description = "Determine file type from the file name"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileMMagic = buildPerlPackage { - # pname = "File-MMagic"; - # version = "1.30"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KN/KNOK/File-MMagic-1.30.tar.gz"; - # hash = "sha256-zwwbHrKXBcAtl8KRNkgAnAvkLOk+wks2xpa/LU9evX4="; - # }; - # meta = { - # description = "Guess file type from contents"; - # license = with lib.licenses; [ asl20 ]; - # }; - # }; - - # FileMap = buildPerlModule { - # pname = "File-Map"; - # version = "0.71"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LE/LEONT/File-Map-0.71.tar.gz"; - # hash = "sha256-yOJpM4BOhw1KupJiO3iGrIs8dgyY+/zTvcSyMFxGR1k="; - # }; - # perlPreHook = "export LD=$CC"; - # propagatedBuildInputs = [ PerlIOLayers SubExporterProgressive ]; - # buildInputs = [ TestFatal TestWarnings ]; - # meta = { - # description = "Memory mapping made simple and safe"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileModified = buildPerlPackage { - # pname = "File-Modified"; - # version = "0.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/File-Modified-0.10.tar.gz"; - # hash = "sha256-a1CxqrbsaZigF/ZAPCc1s7weHPRhh70TTX623z/EUUQ="; - # }; - # meta = { - # description = "Checks intelligently if files have changed"; - # homepage = "https://github.com/neilbowers/File-Modified"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileNext = buildPerlPackage { - # pname = "File-Next"; - # version = "1.18"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PETDANCE/File-Next-1.18.tar.gz"; - # hash = "sha256-+QDLOVBetuFoqcpRoQtz8bveGRS5I6CezXLZwC5uwu8="; - # }; - # meta = { - # description = "File-finding iterator"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # FileNFSLock = buildPerlPackage { - # pname = "File-NFSLock"; - # version = "1.29"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BB/BBB/File-NFSLock-1.29.tar.gz"; - # hash = "sha256-YdQVmbSBFk7fm4vsq77y0j9iKpcn9sGDZekrV4LU+jc="; - # }; - # meta = { - # description = "Perl module to do NFS (or not) locking"; - # license = with lib.licenses; [ artistic1 gpl1Only ]; - # }; - # }; - - # FilePath = buildPerlPackage { - # pname = "File-Path"; - # version = "2.18"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JK/JKEENAN/File-Path-2.18.tar.gz"; - # hash = "sha256-mA8KF+2zU99G6c17NX+fWSnN4PgMRf16Bs9+DovWrd0="; - # }; - # meta = { - # description = "Create or remove directory trees"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FilePid = buildPerlPackage { - # pname = "File-Pid"; - # version = "1.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CW/CWEST/File-Pid-1.01.tar.gz"; - # hash = "sha256-uv7uj9yW6wYwagxYu9tyCbbeRfhQ51/caxbbV24F5CI="; - # }; - # patches = [(fetchpatch { - # name = "missing-pidfile.patch"; - # url = "https://sources.debian.org/data/main/libf/libfile-pid-perl/1.01-2/debian/patches/missing-pidfile.patch"; - # hash = "sha256-VBsIYyCnjcZLYQ2Uq2MKPK3kF2wiMKvnq0m727DoavM="; - # })]; - # propagatedBuildInputs = [ ClassAccessor ]; - # meta = { - # description = "Pid File Manipulation"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = teams.deshaw.members; - # }; - # }; - - # Filepushd = buildPerlPackage { - # pname = "File-pushd"; - # version = "1.016"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/File-pushd-1.016.tar.gz"; - # hash = "sha256-1zp/CUQpg7CYJg3z33qDKl9mB3OjE8onP6i1ZmX5fNw="; - # }; - # meta = { - # description = "Change directory temporarily for a limited scope"; - # homepage = "https://github.com/dagolden/File-pushd"; - # license = with lib.licenses; [ asl20 ]; - # }; - # }; - - # FileReadBackwards = buildPerlPackage { - # pname = "File-ReadBackwards"; - # version = "1.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-ReadBackwards-1.06.tar.gz"; - # hash = "sha256-MrKgVJOJqviIde8D1+u//y1ZeeyoW3yBL2tLsQ0QL2I="; - # }; - # meta = { - # description = "Read a file backwards by lines"; - # homepage = "https://metacpan.org/pod/File::ReadBackwards"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileRemove = buildPerlModule { - # pname = "File-Remove"; - # version = "1.61"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/File-Remove-1.61.tar.gz"; - # hash = "sha256-/YV/WFkI/FA0YbnkizyFlOZTV2a8FL6xfJC6WNXcSXU="; - # }; - # meta = { - # description = "Remove files and directories"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileShare = buildPerlPackage { - # pname = "File-Share"; - # version = "0.27"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IN/INGY/File-Share-0.27.tar.gz"; - # hash = "sha256-1uj0tV69OOC7ReRDkuP6J9wf3harxdH/U+FX4ZpXVb4="; - # }; - # propagatedBuildInputs = [ FileShareDir Readonly ]; - # meta = { - # description = "Extend File::ShareDir to Local Libraries"; - # homepage = "https://github.com/ingydotnet/file-share-pm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - FileShareDir = buildPerlPackage { - pname = "File-ShareDir"; - version = "1.118"; - src = fetchurl { - url = "mirror://cpan/authors/id/R/RE/REHSACK/File-ShareDir-1.118.tar.gz"; - hash = "sha256-O7KiC6Nd+VjcCk8jBvwF2QPYuMTePIvu/OF3OdKByVg="; - }; - propagatedBuildInputs = [ ClassInspector ]; - buildInputs = [ FileShareDirInstall ]; - meta = { - description = "Locate per-dist and per-module shared files"; - homepage = "https://metacpan.org/release/File-ShareDir"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # FileShareDirDist = buildPerlPackage { - # pname = "File-ShareDir-Dist"; - # version = "0.07"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-ShareDir-Dist-0.07.tar.gz"; - # hash = "sha256-jX/l0O4iNR9B75Wtwi29VsMf+iqbLBmEMA6S/36f6G0="; - # }; - # meta = { - # homepage = "https://metacpan.org/pod/File::ShareDir::Dist"; - # description = "Locate per-dist shared files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ tomasajt ]; - # }; - # }; - - FileShareDirInstall = buildPerlPackage { - pname = "File-ShareDir-Install"; - version = "0.14"; - src = fetchurl { - url = "mirror://cpan/authors/id/E/ET/ETHER/File-ShareDir-Install-0.14.tar.gz"; - hash = "sha256-j5UzsZjy1KmlKIy8fSJPdnmtBaeoVzdFWZeJQovFrqA="; - }; - meta = { - description = "Install shared files"; - homepage = "https://github.com/Perl-Toolchain-Gang/File-ShareDir-Install"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # FilesysDf = buildPerlPackage { - # pname = "Filesys-Df"; - # version = "0.92"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IG/IGUTHRIE/Filesys-Df-0.92.tar.gz"; - # hash = "sha256-/onLtCfg4F8c2Xwt1tOGasayG8eoVzTt4Vm9w1R5VSo="; - # }; - # meta = { - # description = "Perl extension for filesystem disk space information."; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FilesysNotifySimple = buildPerlPackage { - # pname = "Filesys-Notify-Simple"; - # version = "0.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Filesys-Notify-Simple-0.14.tar.gz"; - # hash = "sha256-H9pxLUul4YaBWe019vjvv66dQ11jdvVgbVM7ywgFVaQ="; - # }; - # buildInputs = [ TestSharedFork ]; - # meta = { - # description = "Simple and dumb file system watcher"; - # homepage = "https://github.com/miyagawa/Filesys-Notify-Simple"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FilesysDiskUsage = buildPerlPackage { - # pname = "Filesys-DiskUsage"; - # version = "0.13"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MANWAR/Filesys-DiskUsage-0.13.tar.gz"; - # hash = "sha256-/T5SxvYkEnGigTSNHUPEQVTC9hoyVD20aqnhVpLRtxM="; - # }; - # buildInputs = [ TestWarn ]; - # meta = { - # description = "Estimate file space usage (similar to `du`)"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "fdu"; - # }; - # }; - - # FileSlurp = buildPerlPackage { - # pname = "File-Slurp"; - # version = "9999.32"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CA/CAPOEIRAB/File-Slurp-9999.32.tar.gz"; - # hash = "sha256-TDwhmSqdQr46ed10o8g9J9OAVyadZVCaL1VeoPsrxbA="; - # }; - # meta = { - # description = "Simple and Efficient Reading/Writing/Modifying of Complete Files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileSlurper = buildPerlPackage { - # pname = "File-Slurper"; - # version = "0.014"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LE/LEONT/File-Slurper-0.014.tar.gz"; - # hash = "sha256-1aNkhzOYiMPNdY5kgWDuHXDrQVPKy6/1eEbbzvs0Sww="; - # }; - # buildInputs = [ TestWarnings ]; - # meta = { - # description = "A simple, sane and efficient module to slurp a file"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileSlurpTiny = buildPerlPackage { - # pname = "File-Slurp-Tiny"; - # version = "0.004"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LE/LEONT/File-Slurp-Tiny-0.004.tar.gz"; - # hash = "sha256-RSmVvuq/DpI+Zf3GJ6cl27EsnhDADYAYwW0QumJ1fx4="; - # }; - # meta = { - # description = "A simple, sane and efficient file slurper [DISCOURAGED]"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileTail = buildPerlPackage { - # pname = "File-Tail"; - # version = "1.3"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MG/MGRABNAR/File-Tail-1.3.tar.gz"; - # hash = "sha256-JtCfgYNuQ+rkACjVKD/lYg/m/mJ4vz6462AMSOw0r8c="; - # }; - # meta = { - # description = "Perl extension for reading from continously updated files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = teams.deshaw.members; - # }; - # }; - - # FileTouch = buildPerlPackage { - # pname = "File-Touch"; - # version = "0.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/File-Touch-0.12.tar.gz"; - # hash = "sha256-KgTcQk30jpjFRVbGBFyrAmpJ43N6qUohz0l3YbDy5Zw="; - # }; - # meta = { - # description = "Update file access and modification times, optionally creating files if needed"; - # homepage = "https://github.com/neilb/File-Touch"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = teams.deshaw.members; - # }; - # }; - - # FileTreeCreate = buildPerlModule { - # pname = "File-TreeCreate"; - # version = "0.0.1"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/File-TreeCreate-0.0.1.tar.gz"; - # hash = "sha256-V2hvEIQ76Br/rRha5BMXkLoMSvNtIQTW+2kSZSgFUmc="; - # }; - # meta = { - # homepage = "http://metacpan.org/release/File-TreeCreate"; - # description = "Recursively create a directory tree"; - # license = lib.licenses.mit; - # }; - # }; - - # FileType = buildPerlModule { - # pname = "File-Type"; - # version = "0.22"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PM/PMISON/File-Type-0.22.tar.gz"; - # hash = "sha256-01zZX+9X/U39iDH2LDTilNfEuGH8kJ4Ct2Bxc51S00E="; - # }; - # meta = { - # description = "Uses magic numbers (typically at the start of a file) to determine the MIME type of that file"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileUtil = buildPerlModule { - # pname = "File-Util"; - # version = "4.201720"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TOMMY/File-Util-4.201720.tar.gz"; - # hash = "sha256-1EkQIYUNXFy9cCx+R0SFgHmEHS+pPxwtCd3Jp4Y2CN8="; - # }; - # buildInputs = [ TestNoWarnings ]; - # meta = { - # description = "Easy, versatile, portable file handling"; - # homepage = "https://github.com/tommybutler/file-util/wiki"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileUtilTempdir = buildPerlPackage { - # pname = "File-Util-Tempdir"; - # version = "0.034"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PERLANCAR/File-Util-Tempdir-0.034.tar.gz"; - # hash = "sha256-0R3izl5vrT8GFLymR0ykScNa7TUSXVsyJ+ZpvBdv3Bw="; - # }; - # buildInputs = [ Perlosnames TestException ]; - # meta = { - # description = "Cross-platform way to get system-wide & user private temporary directory"; - # homepage = "https://metacpan.org/release/File-Util-Tempdir"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # FileWhich = buildPerlPackage { - # pname = "File-Which"; - # version = "1.27"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-Which-1.27.tar.gz"; - # hash = "sha256-MgHxpg4/FkhAguYEXIloQiYfw0Xen7LmIP0qLHrzqTo="; - # }; - # meta = { - # description = "Perl implementation of the which utility as an API"; - # homepage = "https://metacpan.org/pod/File::Which"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FileZglob = buildPerlPackage { - # pname = "File-Zglob"; - # version = "0.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/File-Zglob-0.11.tar.gz"; - # hash = "sha256-HLHt3iCsCU7wA3lLr+8sdiQWnPhALHNn2bdGD2wOZps="; - # }; - # meta = { - # description = "Extended globs"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Filter = buildPerlPackage { - # pname = "Filter"; - # version = "1.64"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RU/RURBAN/Filter-1.64.tar.gz"; - # hash = "sha256-E+f7fh0yZZjjZgEDzxl0vun2kKxbQ7M58sAi8rX87yw="; - # }; - # meta = { - # description = "Source Filters"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FinanceQuote = buildPerlPackage rec { - # pname = "Finance-Quote"; - # version = "1.61"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BP/BPSCHUCK/Finance-Quote-${version}.tar.gz"; - # hash = "sha256-Qw7p3yLcqjLrYwpNf7V6KFQvn+UHsmawo39nVLTzWgg="; - # }; - # buildInputs = [ DateManip DateRange DateSimple DateTime DateTimeFormatISO8601 StringUtil TestKwalitee TestPerlCritic TestPod TestPodCoverage ]; - # propagatedBuildInputs = [ DateManip DateTimeFormatStrptime Encode HTMLTableExtract HTMLTokeParserSimple HTMLTree HTMLTreeBuilderXPath HTTPCookies HTTPCookieJar JSON IOCompress IOString LWPProtocolHttps Readonly StringUtil SpreadsheetXLSX TextTemplate TryTiny WebScraper XMLLibXML libwwwperl ]; - # meta = { - # homepage = "https://finance-quote.sourceforge.net/"; - # changelog = "https://github.com/finance-quote/finance-quote/releases/tag/v${version}"; - # description = "Get stock and mutual fund quotes from various exchanges"; - # license = with lib.licenses; [ gpl2Plus ]; - # maintainers = with lib.maintainers; [ nevivurn ]; - # }; - # }; - - # FindLib = buildPerlPackage { - # pname = "Find-Lib"; - # version = "1.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Y/YA/YANNK/Find-Lib-1.04.tar.gz"; - # hash = "sha256-HXOSHjBh4bBG/kJo4tBf/VpMV2Jmbi5HI/g6rMFG6FE="; - # }; - # meta = { - # description = "Helper to smartly find libs to use in the filesystem tree"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FontAFM = buildPerlPackage { - # pname = "Font-AFM"; - # version = "1.20"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GA/GAAS/Font-AFM-1.20.tar.gz"; - # hash = "sha256-MmcRZtoyWWoPa6rNDBIzglpgrK8lgF15yBo/GNYIi8E="; - # }; - # meta = { - # description = "Interface to Adobe Font Metrics files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FontTTF = buildPerlPackage { - # pname = "Font-TTF"; - # version = "1.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BH/BHALLISSY/Font-TTF-1.06.tar.gz"; - # hash = "sha256-S2l9REJZdZ6gLSxELJv/5f/hTJIUCEoB90NpOpRMwpM="; - # }; - # buildInputs = [ IOString ]; - # meta = { - # description = "TTF font support for Perl"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # ForksSuper = buildPerlPackage { - # pname = "Forks-Super"; - # version = "0.97"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MO/MOB/Forks-Super-0.97.tar.gz"; - # hash = "sha256-M9tDV+Es1vQPKlijq5b+tP/9JedC29SL75B9skLQKk4="; - # }; - # doCheck = false; - # propagatedBuildInputs = [ URI ]; - # meta = { - # description = "Extensions and convenience methods to manage background processes"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FormValidatorSimple = buildPerlPackage { - # pname = "FormValidator-Simple"; - # version = "0.29"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LY/LYOKATO/FormValidator-Simple-0.29.tar.gz"; - # hash = "sha256-/Dpj3FS5YtdFhgcBdq2vW+hp8JtWG7MPX9Mu9TF5JmY="; - # }; - # propagatedBuildInputs = [ ClassAccessor ClassDataAccessor DateCalc DateTimeFormatStrptime EmailValidLoose ListMoreUtils TieIxHash UNIVERSALrequire YAML ]; - # buildInputs = [ CGI ]; - # meta = { - # description = "Validation with simple chains of constraints"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FreezeThaw = buildPerlPackage { - # pname = "FreezeThaw"; - # version = "0.5001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IL/ILYAZ/modules/FreezeThaw-0.5001.tar.gz"; - # hash = "sha256-PF4IMpEG+c7jq0RLgTMcWTX4MIShUdiFBeekZdpUD0E="; - # }; - # doCheck = false; - # meta = { - # description = "Converting Perl structures to strings and back"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FunctionParameters = buildPerlPackage { - # pname = "Function-Parameters"; - # version = "2.002004"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MAUKE/Function-Parameters-2.002004.tar.gz"; - # hash = "sha256-KKvqWODAnOMnmaCMvXr3DaHimXd8KZEZQpygaacYg+g="; - # }; - # buildInputs = [ DirSelf TestFatal ]; - # meta = { - # description = "Define functions and methods with parameter lists (\"subroutine signatures\")"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Furl = buildPerlModule { - # pname = "Furl"; - # version = "3.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SY/SYOHEX/Furl-3.14.tar.gz"; - # hash = "sha256-Nd29iIDXHxniAkM+F2H9EXc4XmML9QaFvEi2t6y4V7k="; - # }; - # propagatedBuildInputs = [ ClassAccessorLite HTTPParserXS MozillaCA ]; - # buildInputs = [ HTTPCookieJar HTTPProxy ModuleBuildTiny Plack Starlet TestFakeHTTPD TestRequires TestSharedFork TestTCP TestValgrind URI ]; - # meta = { - # description = "Lightning-fast URL fetcher"; - # homepage = "https://github.com/tokuhirom/Furl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Future = buildPerlModule { - # pname = "Future"; - # version = "0.50"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-0.50.tar.gz"; - # hash = "sha256-wDXj2eaaOvFEszrINN7p5lrTYPKlHbnxWNw0Ls3dX0Q="; - # }; - # buildInputs = [ Test2Suite ]; - # meta = { - # description = "Represent an operation awaiting completion"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # FutureAsyncAwait = buildPerlModule { - # pname = "Future-AsyncAwait"; - # version = "0.66"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-AsyncAwait-0.66.tar.gz"; - # hash = "sha256-xqD03kYr8yS1usoXddGZ7DJGo1jBPbm2Ssv82+bl7CE="; - # }; - # buildInputs = [ Test2Suite ]; - # propagatedBuildInputs = [ Future XSParseKeyword XSParseSublike ]; - # perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC"; - # meta = { - # description = "Deferred subroutine syntax for futures"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.zakame ]; - # }; - # }; - - # FutureIO = buildPerlModule { - # pname = "Future-IO"; - # version = "0.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-IO-0.14.tar.gz"; - # hash = "sha256-a1j++vwwlMJwHwp7mMsUCwmItRaKfV3069Hu6OhyBgo="; - # }; - # buildInputs = [ TestFutureIOImpl ]; - # propagatedBuildInputs = [ Future StructDumb ]; - # preCheck = "rm t/06connect.t"; # this test fails in sandbox - # meta = { - # description = "Future-returning IO methods"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.zakame ]; - # }; - # }; - - # FutureQueue = buildPerlModule { - # pname = "Future-Queue"; - # version = "0.51"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-Queue-0.51.tar.gz"; - # hash = "sha256-HVAcOpot3/x8YPlvpmlp1AyykuCSBM9t7NHCuLUAPNY="; - # }; - # buildInputs = [ Test2Suite ]; - # propagatedBuildInputs = [ Future ]; - # meta = { - # description = "A FIFO queue of values that uses Ls"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # GamesSolitaireVerify = buildPerlModule { - # pname = "Games-Solitaire-Verify"; - # version = "0.2403"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Games-Solitaire-Verify-0.2403.tar.gz"; - # hash = "sha256-5atHXIK6HLCIrSj0I8pRTUaUTWrjw+tV6WNunn8dyJM="; - # }; - # buildInputs = [ DirManifest TestDifferences ]; - # propagatedBuildInputs = [ ClassXSAccessor ExceptionClass PathTiny ]; - # meta = { - # description = "Verify solutions for solitaire games"; - # homepage = "https://metacpan.org/release/Games-Solitaire-Verify"; - # license = with lib.licenses; [ mit ]; - # mainProgram = "verify-solitaire-solution"; - # }; - # }; - - # GD = buildPerlPackage { - # pname = "GD"; - # version = "2.78"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RU/RURBAN/GD-2.78.tar.gz"; - # hash = "sha256-aDEFS/VCS09cI9NifT0UhEgPb5wsZmMiIpFfKFG+buQ="; - # }; - - # buildInputs = [ pkgs.gd pkgs.libjpeg pkgs.zlib pkgs.freetype pkgs.libpng pkgs.fontconfig pkgs.xorg.libXpm ExtUtilsPkgConfig TestFork TestNoWarnings ]; - - # # otherwise "cc1: error: -Wformat-security ignored without -Wformat [-Werror=format-security]" - # hardeningDisable = [ "format" ]; - - # makeMakerFlags = [ "--lib_png_path=${pkgs.libpng.out}" "--lib_jpeg_path=${pkgs.libjpeg.out}" "--lib_zlib_path=${pkgs.zlib.out}" "--lib_ft_path=${pkgs.freetype.out}" "--lib_fontconfig_path=${pkgs.fontconfig.lib}" "--lib_xpm_path=${pkgs.xorg.libXpm.out}" ]; - - # meta = { - # description = "Perl interface to the gd2 graphics library"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "bdf2gdfont.pl"; - # }; - # }; - - # GDGraph = buildPerlPackage { - # pname = "GDGraph"; - # version = "1.56"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BP/BPS/GDGraph-1.56.tar.gz"; - # hash = "sha256-b0nMTlkBVIDbnJtrGK/YxQvjCIZoe2lBFRPQbziXERM="; - # }; - # propagatedBuildInputs = [ GDText ]; - # buildInputs = [ CaptureTiny TestException ]; - # meta = { - # description = "Graph Plotting Module for Perl 5"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # GDSecurityImage = buildPerlPackage { - # pname = "GD-SecurityImage"; - # version = "1.75"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BU/BURAK/GD-SecurityImage-1.75.tar.gz"; - # hash = "sha256-Pd4k2ay6lRzd5bVp0eQsrZRs/bUSgORGnzNv1f4MjqY="; - # }; - # propagatedBuildInputs = [ GD ]; - # meta = { - # description = "Security image (captcha) generator"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # GDText = buildPerlPackage { - # pname = "GDTextUtil"; - # version = "0.86"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MV/MVERB/GDTextUtil-0.86.tar.gz"; - # hash = "sha256-iG7L+Fz+lPQTXuVonEhHqa54PsuZ5nWeEsc08t1hFrw="; - # }; - # propagatedBuildInputs = [ GD ]; - # meta = { - # description = "Text utilities for use with GD"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # GeoIP = buildPerlPackage { - # pname = "Geo-IP"; - # version = "1.51"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MAXMIND/Geo-IP-1.51.tar.gz"; - # hash = "sha256-FjAgMV1cVEGDaseeCKd7Qo8nf9CQvqT6gNpwd7JDaro="; - # }; - # makeMakerFlags = [ "LIBS=-L${pkgs.geoip}/lib" "INC=-I${pkgs.geoip}/include" ]; - # doCheck = false; # seems to access the network - # meta = { - # description = "Look up location and network information by IP Address"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # GeoIP2 = buildPerlPackage { - # pname = "GeoIP2"; - # version = "2.006002"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MAXMIND/GeoIP2-2.006002.tar.gz"; - # hash = "sha256-CQVCqO7pvTwS5ZxLZWJMidAf/ZQgTx8Hah20CybAmDQ="; - # }; - # propagatedBuildInputs = [ JSONMaybeXS LWPProtocolHttps MaxMindDBReader ParamsValidate Throwable ]; - # buildInputs = [ PathClass TestFatal TestNumberDelta ]; - # meta = { - # description = "Perl API for MaxMind's GeoIP2 web services and databases"; - # homepage = "https://metacpan.org/release/GeoIP2"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "web-service-request"; - # }; - # }; - - # GetoptArgvFile = buildPerlPackage { - # pname = "Getopt-ArgvFile"; - # version = "1.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JS/JSTENZEL/Getopt-ArgvFile-1.11.tar.gz"; - # hash = "sha256-NwmqUTzm/XHRpVoC400vCQAX1TUKm9RHAFZTybCDWyI="; - # }; - # meta = { - # description = "Interpolates script options from files into @ARGV or another array"; - # license = with lib.licenses; [ artistic1 ]; - # maintainers = [ maintainers.pSub ]; - # }; - # }; - - # GetoptLong = buildPerlPackage { - # pname = "Getopt-Long"; - # version = "2.54"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JV/JV/Getopt-Long-2.54.tar.gz"; - # hash = "sha256-WEujyZuy1rNBN1IS+bh0YT9wbPsBzuIbiiZ2qYq5hf4="; - # }; - # meta = { - # description = "Extended processing of command line options"; - # license = with lib.licenses; [ artistic1 gpl2Plus ]; - # }; - # }; - - # GetoptLongDescriptive = buildPerlPackage { - # pname = "Getopt-Long-Descriptive"; - # version = "0.111"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Getopt-Long-Descriptive-0.111.tar.gz"; - # hash = "sha256-m40V/K8Y/ddAJGtDjw5+uRS4McUdnXCMCZ7Kd2YiB20="; - # }; - # buildInputs = [ CPANMetaCheck TestFatal TestWarnings ]; - # propagatedBuildInputs = [ ParamsValidate SubExporter ]; - # meta = { - # description = "Getopt::Long, but simpler and more powerful"; - # homepage = "https://github.com/rjbs/Getopt-Long-Descriptive"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # GetoptTabular = buildPerlPackage { - # pname = "Getopt-Tabular"; - # version = "0.3"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GW/GWARD/Getopt-Tabular-0.3.tar.gz"; - # hash = "sha256-m98GdjO1kTEngg9OgDXtxT0INy+qzla6a/oAyWiiU3c="; - # }; - # meta = { - # description = "Table-driven argument parsing for Perl 5"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Git = buildPerlPackage { - # pname = "Git"; - # version = "0.42"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MS/MSOUTH/Git-0.42.tar.gz"; - # hash = "sha256-lGmp85jzor8rBQBWbuQdP/b65GBBKhNxhXZ6HMR4Om0="; - # }; - # propagatedBuildInputs = [ Error ]; - # meta = { - # description = "This is the Git.pm, plus the other files in the perl/Git directory, from github's git/git"; - # license = with lib.licenses; [ gpl2Plus ]; - # maintainers = teams.deshaw.members; - # }; - # }; - - # GitAutofixup = buildPerlPackage { - # pname = "App-Git-Autofixup"; - # version = "0.004001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TORBIAK/App-Git-Autofixup-0.004001.tar.gz"; - # hash = "sha256-WroBPI3hOZD1iRoOKjnJcHTQcnvjZTIMLGrxnTbF3aw="; - # }; - # nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang; - # postInstall = lib.optionalString stdenv.isDarwin '' - # shortenPerlShebang $out/bin/git-autofixup - # ''; - # meta = { - # description = "Create fixup commits for topic branches"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = [ maintainers.DamienCassou ]; - # mainProgram = "git-autofixup"; - # }; - # }; - - # GitPurePerl = buildPerlPackage { - # pname = "Git-PurePerl"; - # version = "0.53"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BR/BROQ/Git-PurePerl-0.53.tar.gz"; - # hash = "sha256-mHx0NmzEw37ghAUPmF+iVDWcicElB/W4v8ZgfeU41ag="; - # }; - # buildInputs = [ Testutf8 ]; - # propagatedBuildInputs = [ ArchiveExtract ConfigGitLike DataStreamBulk DateTime FileFindRule IODigest MooseXStrictConstructor MooseXTypesPathClass ]; - # doCheck = false; - # meta = { - # description = "A Pure Perl interface to Git repositories"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # GitRepository = buildPerlPackage { - # pname = "Git-Repository"; - # version = "1.325"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BO/BOOK/Git-Repository-1.325.tar.gz"; - # hash = "sha256-mypPoZT0oOtFI1XQyAhyfl6cFsFFrH0kw+qW0Kvv7UM="; - # }; - # buildInputs = [ TestRequiresGit ]; - # propagatedBuildInputs = [ GitVersionCompare SystemCommand namespaceclean ]; - # meta = { - # description = "Perl interface to Git repositories"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # GitVersionCompare = buildPerlPackage { - # pname = "Git-Version-Compare"; - # version = "1.005"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BO/BOOK/Git-Version-Compare-1.005.tar.gz"; - # hash = "sha256-NX/e2eVflesvUWoY9dwbRyCp3u+eLA52vNX+SuubPLs="; - # }; - # buildInputs = [ TestNoWarnings ]; - # meta = { - # description = "Functions to compare Git versions"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Glib = buildPerlPackage { - # pname = "Glib"; - # version = "1.3294"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/X/XA/XAOC/Glib-1.3294.tar.gz"; - # hash = "sha256-1xX1qGvMGHB13oXnrlvAewcU1u3BlqktpDmG76ROXLs="; - # }; - # buildInputs = [ pkgs.glib ]; - # propagatedBuildInputs = [ ExtUtilsDepends ExtUtilsPkgConfig ]; - # meta = { - # description = "Perl wrappers for the GLib utility and Object libraries"; - # homepage = "https://gtk2-perl.sourceforge.net"; - # license = with lib.licenses; [ lgpl21Only ]; - # }; - # }; - - # GlibObjectIntrospection = buildPerlPackage { - # pname = "Glib-Object-Introspection"; - # version = "0.051"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/X/XA/XAOC/Glib-Object-Introspection-0.051.tar.gz"; - # hash = "sha256-ZWlhHcyArBSCx8IiZLGujJw1HUmDUR65psX0ehAVAIk="; - # }; - # nativeCheckInputs = [ pkgs.cairo CairoGObject ]; - # propagatedBuildInputs = [ pkgs.gobject-introspection Glib ]; - # preCheck = '' - # # Our gobject-introspection patches make the shared library paths absolute - # # in the GIR files. When running tests, the library is not yet installed, - # # though, so we need to replace the absolute path with a local one during build. - # # We are using a symlink that we will delete after the execution of the tests. - # mkdir -p $out/lib - # ln -s $PWD/build/*.so $out/lib/ - # ''; - # postCheck = '' - # rm -r $out/lib - # ''; - # doCheck = !stdenv.isDarwin; - # meta = { - # description = "Dynamically create Perl language bindings"; - # homepage = "https://gtk2-perl.sourceforge.net"; - # license = with lib.licenses; [ lgpl21Only ]; - # }; - # }; - - # Gnome2 = buildPerlPackage { - # pname = "Gnome2"; - # version = "1.048"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/X/XA/XAOC/Gnome2-1.048.tar.gz"; - # hash = "sha256-ZPzDgnFKvY1XaSrDdjKMOiDGy8i81zKwB9FMv5ooLd0="; - # }; - # buildInputs = [ ExtUtilsDepends ExtUtilsPkgConfig Glib Gnome2Canvas Gnome2VFS Gtk2 ]; - # propagatedBuildInputs = [ pkgs.gnome2.libgnomeui ]; - # meta = { - # description = "(DEPRECATED) Perl interface to the 2.x series of the GNOME libraries"; - # homepage = "https://gtk2-perl.sourceforge.net"; - # license = with lib.licenses; [ lgpl21Plus ]; - # broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Gnome2Canvas.x86_64-darwin - # }; - # }; - - # Gnome2Canvas = buildPerlPackage { - # pname = "Gnome2-Canvas"; - # version = "1.006"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/X/XA/XAOC/Gnome2-Canvas-1.006.tar.gz"; - # hash = "sha256-aQZnxziSHeLWUWtOtjlVOlceSoMQ2AMfFYZYU23lq0I="; - # }; - # buildInputs = [ pkgs.gnome2.libgnomecanvas ]; - # propagatedBuildInputs = [ Gtk2 ]; - # doCheck = !stdenv.isDarwin; - # meta = { - # description = "(DEPRECATED) A structured graphics canvas"; - # license = with lib.licenses; [ lgpl2Plus ]; - # }; - # }; - - # Gnome2VFS = buildPerlPackage { - # pname = "Gnome2-VFS"; - # version = "1.084"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/X/XA/XAOC/Gnome2-VFS-1.084.tar.gz"; - # hash = "sha256-PI2Mlca2XCN9ueiJx57bK7gIvzfAhKvfu9mFn+93h8w="; - # }; - # propagatedBuildInputs = [ pkgs.gnome2.gnome_vfs Glib ]; - # meta = { - # description = "(DEPRECATED) Perl interface to the 2.x series of the GNOME VFS"; - # license = with lib.licenses; [ lgpl21Plus ]; - # }; - # }; - - # Gnome2Wnck = buildPerlPackage { - # pname = "Gnome2-Wnck"; - # version = "0.18"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/X/XA/XAOC/Gnome2-Wnck-0.18.tar.gz"; - # hash = "sha256-RL7OyLLX9B8ngKc7CSJp/bec1JJluuDI/zkQN8RWSjU="; - # }; - # buildInputs = [ pkgs.libwnck2 pkgs.glib pkgs.gtk2 ]; - # propagatedBuildInputs = [ Gtk2 ]; - # meta = { - # description = "(DEPRECATED) Perl interface to the Window Navigator"; - # license = with lib.licenses; [ lgpl21Plus ]; - # }; - # }; - - # GnuPG = buildPerlPackage { - # pname = "GnuPG"; - # version = "0.19"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Y/YA/YANICK/GnuPG-0.19.tar.gz"; - # hash = "sha256-r1Py0/Yyl+BGZ26uFKdilq/dKRDglyO2sRNwhiK3mJs="; - # }; - # buildInputs = [ pkgs.gnupg1orig ]; - # doCheck = false; - # meta = { - # description = "Perl interface to the GNU Privacy Guard"; - # license = with lib.licenses; [ gpl2Plus ]; - # mainProgram = "gpgmailtunl"; - # }; - # }; - - # GnuPGInterface = buildPerlPackage { - # pname = "GnuPG-Interface"; - # version = "1.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BP/BPS/GnuPG-Interface-1.03.tar.gz"; - # hash = "sha256-WvVmMPD6wpDXJCGD9kSaoOAoKfRhHcYrxunps4CPGHo="; - # }; - # buildInputs = [ pkgs.which pkgs.gnupg1compat ]; - # propagatedBuildInputs = [ MooXHandlesVia MooXlate ]; - # doCheck = false; - # meta = { - # description = "Supply object methods for interacting with GnuPG"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # GoferTransporthttp = buildPerlPackage { - # pname = "GoferTransport-http"; - # version = "1.017"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TI/TIMB/GoferTransport-http-1.017.tar.gz"; - # hash = "sha256-9z7/4+p6+hkHzol3yHOHq7DUQE+FpySuJjeymnMVSps="; - # }; - # propagatedBuildInputs = [ DBI LWP mod_perl2 ]; - # doCheck = false; # no make target 'test' - # meta = { - # description = "HTTP transport for DBI stateless proxy driver DBD::Gofer"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # GooCanvas = buildPerlPackage { - # pname = "Goo-Canvas"; - # version = "0.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Y/YE/YEWENBIN/Goo-Canvas-0.06.tar.gz"; - # hash = "sha256-DFiMUH7tXmLRLtHMHkkcb/Oh9ZxPs9Q14UIUs3qzklE="; - # }; - # propagatedBuildInputs = [ pkgs.goocanvas pkgs.gtk2 Gtk2 ]; - # meta = { - # description = "Perl interface to the GooCanvas"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # GooCanvas2 = buildPerlPackage { - # pname = "GooCanvas2"; - # version = "0.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PERLMAX/GooCanvas2-0.06.tar.gz"; - # hash = "sha256-4kyHhz4ZBj3U1eLHCcqs+MCuiIEEQ5W7hl3CtP3WO1A="; - # }; - # buildInputs = [ pkgs.gtk3 ]; - # propagatedBuildInputs = [ pkgs.goocanvas2 Gtk3 ]; - # meta = { - # description = "Perl binding for GooCanvas2 widget using Glib::Object::Introspection"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # GooCanvas2CairoTypes = buildPerlPackage rec { - # pname = "GooCanvas2-CairoTypes"; - # version = "0.001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AS/ASOKOLOV/GooCanvas2-CairoTypes-${version}.tar.gz"; - # hash = "sha256-uoBnNuvMnePYFBp2Omgr3quxy4cCveKZrf1XSs6HUFI="; - # }; - # propagatedBuildInputs = [ pkgs.goocanvas2 Gtk3 ]; - # meta = { - # description = "Bridge between GooCanvas2 and Cairo types"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # GoogleProtocolBuffers = buildPerlPackage { - # pname = "Google-ProtocolBuffers"; - # version = "0.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SA/SAXJAZMAN/protobuf/Google-ProtocolBuffers-0.12.tar.gz"; - # hash = "sha256-s4RJxguaJxLd5IFIXMerA7KgrBw/1ICzhT5BEawpTXE="; - # }; - # propagatedBuildInputs = [ ClassAccessor ParseRecDescent ]; - # patches = - # [ ./perl-modules/Google-ProtocolBuffers-multiline-comments.patch ]; - # meta = { - # description = "Simple interface to Google Protocol Buffers"; - # homepage = "https://github.com/csirtgadgets/google-protocolbuffers-perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "protoc-perl"; - # }; - # }; - - # gotofile = buildPerlPackage { - # pname = "goto-file"; - # version = "0.005"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/EX/EXODIST/goto-file-0.005.tar.gz"; - # hash = "sha256-xs3V7kps3L2/MU2SpPmYXbzfnkJYBIyudhJcBSqjH3c="; - # }; - # buildInputs = [ Test2Suite ]; - # meta = { - # description = "Stop parsing the current file and move on to a different one"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Graph = buildPerlPackage { - # pname = "Graph"; - # version = "0.9727"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETJ/Graph-0.9727.tar.gz"; - # hash = "sha256-OSqJFtyVExq+jJE9/Kx2mEhL9IZrQq9fcEPABi50Iik="; - # }; - # propagatedBuildInputs = [ HeapFibonacci SetObject ]; - # meta = { - # description = "GRaph data structures and algorithms"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # GraphicsColor = buildPerlPackage { - # pname = "Graphics-Color"; - # version = "0.31"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GP/GPHAT/Graphics-Color-0.31.tar.gz"; - # hash = "sha256-+qj+1bLYDlFgr5duXbIkLAs1VVQs4QQldf9raUWHoz0="; - # }; - # buildInputs = [ TestNumberDelta ModulePluggable ]; - # propagatedBuildInputs = [ ColorLibrary Moose MooseXAliases MooseXClone MooseXStorage MooseXTypes ]; - # meta = { - # description = "Device and library agnostic color spaces"; - # homepage = "https://github.com/gphat/graphics-color"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # GraphicsTIFF = buildPerlPackage { - # pname = "Graphics-TIFF"; - # version = "20"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RA/RATCLIFFE/Graphics-TIFF-20.tar.gz"; - # hash = "sha256-PlXMIJRl4GQBmiFaUvBf9RBAKX0CA5P+n7PeJ60CDjU="; - # }; - # buildInputs = [ pkgs.libtiff ExtUtilsDepends ExtUtilsPkgConfig ]; - # propagatedBuildInputs = [ Readonly ]; - # nativeCheckInputs = [ TestRequires TestDeep pkgs.hexdump ]; - # meta = { - # description = "Perl extension for the libtiff library"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # GraphicsToolkitColor = buildPerlPackage { - # pname = "Graphics-Toolkit-Color"; - # version = "1.71"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LI/LICHTKIND/Graphics-Toolkit-Color-1.71.tar.gz"; - # hash = "sha256-NOiLb2hY9H2ZYQHxWC8esA23+G4Snl8dYb9/m922LvI="; - # }; - # buildInputs = [ TestWarn ]; - # meta = { - # description = "Color palette constructor"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # GraphViz = buildPerlPackage { - # pname = "GraphViz"; - # version = "2.26"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETJ/GraphViz-2.26.tar.gz"; - # hash = "sha256-ml0lILMmK/MEdSct12SkRfjn+TG++Ivg49O/9EXacyg="; - # }; - - # # XXX: It'd be nicer it `GraphViz.pm' could record the path to graphviz. - # buildInputs = [ pkgs.graphviz TestPod ]; - # propagatedBuildInputs = [ FileWhich IPCRun ParseRecDescent XMLTwig XMLXPath ]; - - # meta = { - # description = "Perl interface to the GraphViz graphing tool"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # GraphViz2 = buildPerlPackage { - # pname = "GraphViz2"; - # version = "2.67"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETJ/GraphViz2-2.67.tar.gz"; - # hash = "sha256-h8hcbt/86k+W5rSAD2+VEq6rGeuNOzSDAachMxvLhYA="; - # }; - - # # XXX: It'd be nicer if `GraphViz.pm' could record the path to graphviz. - # buildInputs = [ pkgs.graphviz TestPod Moo IPCRun3 TypeTiny TestSnapshot Graph ]; - # propagatedBuildInputs = [ FileWhich IPCRun ParseRecDescent XMLTwig XMLXPath DataSectionSimple ]; - - # # needed for fontconfig tests - # HOME = "/build"; - # FONTCONFIG_PATH = "${lib.getOutput "out" pkgs.fontconfig}/etc/fonts"; - - # meta = { - # description = "Perl interface to the GraphViz graphing tool"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # grepmail = buildPerlPackage { - # pname = "grepmail"; - # version = "5.3111"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DC/DCOPPIT/grepmail-5.3111.tar.gz"; - # hash = "sha256-0JhOP3ob4XrgFFdfcMFngVGlvMliIYXcWgUstjJxp2E="; - # }; - # buildInputs = [ FileHomeDir FileSlurper TestCompile UNIVERSALrequire URI ]; - # propagatedBuildInputs = [ MailMboxMessageParser TimeDate ]; - # outputs = [ "out" ]; - # meta = { - # description = "Search mailboxes for mail matching a regular expression"; - # homepage = "https://github.com/coppit/grepmail"; - # license = with lib.licenses; [ gpl2Only ]; - # maintainers = with maintainers; [ romildo ]; - # }; - # }; - - # GrowlGNTP = buildPerlModule { - # pname = "Growl-GNTP"; - # version = "0.21"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MATTN/Growl-GNTP-0.21.tar.gz"; - # hash = "sha256-KHl/jkJ0BnIFhMr9EOeAp47CtWnFVaGHQ9dFU9X1CD8="; - # }; - # buildInputs = [ ModuleBuildTiny ]; - # propagatedBuildInputs = [ CryptCBC DataUUID ]; - # meta = { - # description = "Perl implementation of GNTP Protocol (Client Part)"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # GSSAPI = buildPerlPackage { - # pname = "GSSAPI"; - # version = "0.28"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AG/AGROLMS/GSSAPI-0.28.tar.gz"; - # hash = "sha256-fY8se2F2L7TsctLsKBKQ8vh/nH0pgnPaRSVDKmXncNY="; - # }; - # propagatedBuildInputs = [ pkgs.krb5.dev ]; - # makeMakerFlags = [ "--gssapiimpl" "${pkgs.krb5.dev}" ]; - # meta = { - # description = "Perl extension providing access to the GSSAPIv2 library"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = teams.deshaw.members; - # }; - # }; - - # Gtk2 = buildPerlPackage { - # pname = "Gtk2"; - # version = "1.24993"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk2-1.24993.tar.gz"; - # hash = "sha256-ScRDdDsu7+EadoACck9/akxI78lP8806VZ+357aTyWc="; - # }; - # patches = [ - # # Fix incompatible function pointer conversion (assigning `GdkNativeWindow` to `guint32`). - # ./perl-modules/Gtk2-fix-incompatible-pointer-conversion.patch - # ]; - # buildInputs = [ pkgs.gtk2 ]; - # # https://rt.cpan.org/Public/Bug/Display.html?id=130742 - # # doCheck = !stdenv.isDarwin; - # doCheck = false; - # propagatedBuildInputs = [ Pango ]; - # meta = { - # description = "Perl interface to the 2.x series of the Gimp Toolkit library"; - # homepage = "https://gtk2-perl.sourceforge.net"; - # license = with lib.licenses; [ lgpl21Plus ]; - # }; - # }; - - # Gtk2TrayIcon = buildPerlPackage { - # pname = "Gtk2-TrayIcon"; - # version = "0.07"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk2-TrayIcon-0.07.tar.gz"; - # hash = "sha256-OfwrmabmE9qeqXfYy1MD+l4H5poVJIk03hIXqXuWRVQ="; - # }; - # propagatedBuildInputs = [ pkgs.gtk2 Gtk2 ]; - # meta = { - # description = "(DEPRECATED) Perl interface to the EggTrayIcon library"; - # license = with lib.licenses; [ gpl2Plus ]; - # broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Gtk2TrayIcon.x86_64-darwin - # }; - # }; - - # Gtk2AppIndicator = buildPerlPackage { - # pname = "Gtk2-AppIndicator"; - # version = "0.15"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/O/OE/OESTERHOL/Gtk2-AppIndicator-0.15.tar.gz"; - # hash = "sha256-olywceIU+4m0RQqkYFAx6uibeWHhSbDW6PSRwZwUqQo="; - # }; - # propagatedBuildInputs = [ pkgs.libappindicator-gtk2 pkgs.libdbusmenu-gtk2 pkgs.gtk2 pkgs.pkg-config Gtk2 ]; - # # Tests fail due to no display: - # # Gtk-WARNING **: cannot open display: at /nix/store/HASH-perl-Gtk2-1.2498/lib/perl5/site_perl/5.22.2/x86_64-linux-thread-multi/Gtk2.pm line 126. - # doCheck = false; - # meta = { - # description = "Perl extension for libappindicator"; - # license = with lib.licenses; [ artistic1 ]; - # }; - # }; - - # Gtk2ImageView = buildPerlPackage { - # pname = "Gtk2-ImageView"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RA/RATCLIFFE/Gtk2-ImageView-0.05.tar.gz"; - # hash = "sha256-CHGGw2k6zxlkUc9ZzIt/XPmnsFq+INMty8uggilT+4A="; - # }; - # buildInputs = [ pkgs.gtkimageview pkgs.gtk2 ]; - # propagatedBuildInputs = [ Gtk2 ]; - # # Tests fail due to no display server: - # # Gtk-WARNING **: cannot open display: at /nix/store/HASH-perl-Gtk2-1.2498/lib/perl5/site_perl/5.22.2/x86_64-linux-thread-multi/Gtk2.pm line 126. - # # t/animview.t ........... - # doCheck = false; - # meta = { - # description = "Perl bindings for the GtkImageView widget"; - # license = with lib.licenses; [ lgpl3Plus ]; - # }; - # }; - - # Gtk2Unique = buildPerlPackage { - # pname = "Gtk2-Unique"; - # version = "0.07"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk2-Unique-0.07.tar.gz"; - # hash = "sha256-nOX2ikFgC8z31u/eMMBwqxFOk57XqKx8O3rZE5mJGGc="; - # }; - # propagatedBuildInputs = [ pkgs.libunique pkgs.gtk2 Gtk2 ]; - # meta = { - # description = "(DEPRECATED) Use single instance applications"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Gtk2Unique.x86_64-darwin - # }; - # }; - - # Gtk3 = buildPerlPackage rec { - # pname = "Gtk3"; - # version = "0.038"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk3-${version}.tar.gz"; - # hash = "sha256-cNxL8qp0mBx54V/SmNmY4FqS66SBHxrVyfH03jdzesw="; - # }; - # propagatedBuildInputs = [ pkgs.gtk3 CairoGObject GlibObjectIntrospection ]; - # preCheck = lib.optionalString stdenv.isDarwin '' - # # Currently failing on macOS - # rm t/overrides.t - # rm t/signals.t - # rm t/zz-GdkEvent.t - # rm t/zz-GtkContainer.t - # rm t/zz-GtkDialog.t - # ''; - # meta = { - # description = "Perl interface to the 3.x series of the gtk+ toolkit"; - # license = with lib.licenses; [ lgpl21Plus ]; - # }; - # }; - - # Gtk3ImageView = buildPerlPackage rec { - # pname = "Gtk3-ImageView"; - # version = "10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AS/ASOKOLOV/Gtk3-ImageView-${version}.tar.gz"; - # hash = "sha256-vHfnBgaeZPK7hBgZcP1KjepG+IvsDE3XwrH9U4xoN+Y="; - # }; - # buildInputs = [ pkgs.gtk3 ]; - # propagatedBuildInputs = [ Readonly Gtk3 ]; - # nativeCheckInputs = [ TestDifferences TestDeep ImageMagick TryTiny TestMockObject CarpAlways pkgs.librsvg ]; - # checkPhase = '' - # ${pkgs.xvfb-run}/bin/xvfb-run -s '-screen 0 800x600x24' \ - # make test - # ''; - # meta = { - # description = "Image viewer widget for Gtk3"; - # homepage = "https://github.com/carygravel/gtk3-imageview"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Gtk3SimpleList = buildPerlPackage { - # pname = "Gtk3-SimpleList"; - # version = "0.21"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TV/TVIGNAUD/Gtk3-SimpleList-0.21.tar.gz"; - # hash = "sha256-HURlEAvzvAR0opRppAb9AzVituNzYYgSEAA3KrKtqIQ="; - # }; - # propagatedBuildInputs = [ Gtk3 ]; - # meta = { - # description = "A simple interface to Gtk3's complex MVC list widget"; - # homepage = "https://github.com/soig/Gtk3-SimpleList"; - # license = with lib.licenses; [ lgpl21Plus ]; - # }; - # }; - - # Guard = buildPerlPackage { - # pname = "Guard"; - # version = "1.023"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Guard-1.023.tar.gz"; - # hash = "sha256-NMTd+R/JPRCQ2G2hTfcG0XWxYQxnNywB4SzpVV1N0dw="; - # }; - # meta = { - # description = "Safe cleanup blocks"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HamAPRSFAP = buildPerlPackage { - # pname = "Ham-APRS-FAP"; - # version = "1.21"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HE/HESSU/Ham-APRS-FAP-1.21.tar.gz"; - # hash = "sha256-4BtFXUb0RxDbzyG2+oQ/CTWM5g7uHEFBvHTgogTToCA="; - # }; - # propagatedBuildInputs = [ DateCalc ]; - # meta = { - # description = "Finnish APRS Parser (Fabulous APRS Parser)"; - # maintainers = [ ]; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Hailo = buildPerlPackage { - # pname = "Hailo"; - # version = "0.75"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AV/AVAR/Hailo-0.75.tar.gz"; - # hash = "sha256-u6mcsM+j7oYy3YmQbG5voF/muzZ/IoLoiQnO/Y+RdMI="; - # }; - # buildInputs = [ BotTrainingMegaHAL BotTrainingStarCraft DataSection FileSlurp PodSection TestException TestExpect TestOutput TestScript TestScriptRun ]; - # propagatedBuildInputs = [ ClassLoad DBDSQLite DataDump DirSelf FileCountLines GetoptLongDescriptive IOInteractive IPCSystemSimple ListMoreUtils Moose MooseXGetopt MooseXStrictConstructor MooseXTypes RegexpCommon TermSk namespaceclean ]; - # nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang; - # patches = [ - # ./perl-modules/Hailo-fix-test-gld.patch - # ]; - # postPatch = '' - # patchShebangs bin - # ''; - # postInstall = lib.optionalString stdenv.isDarwin '' - # shortenPerlShebang $out/bin/hailo - # ''; - # meta = { - # description = "A pluggable Markov engine analogous to MegaHAL"; - # homepage = "https://hailo.org"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "hailo"; - # }; - # }; - - # HashDiff = buildPerlPackage { - # pname = "Hash-Diff"; - # version = "0.010"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BO/BOLAV/Hash-Diff-0.010.tar.gz"; - # hash = "sha256-vJpKo47JjwqYKJ41q/mhfC8qMjmiIJoymADglwqi4MU="; - # }; - # propagatedBuildInputs = [ HashMerge ]; - # buildInputs = [ TestSimple13 ]; - - # meta = { - # description = "Return difference between two hashes as a hash"; - # homepage = "https://github.com/bolav/hash-diff"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ham = callPackage ./perl-modules/ham { }; - - # HashFlatten = buildPerlPackage { - # pname = "Hash-Flatten"; - # version = "1.19"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BB/BBC/Hash-Flatten-1.19.tar.gz"; - # hash = "sha256-cMbEnYtsRgdGQXpQmO3SoP0x/YuGxUv4SS6FPB9OS5g="; - # }; - # buildInputs = [ TestAssertions ]; - # propagatedBuildInputs = [ LogTrace ]; - # meta = { - # description = "Flatten/unflatten complex data hashes"; - # license = with lib.licenses; [ gpl2Only ]; - # }; - # }; - - # HashMerge = buildPerlPackage { - # pname = "Hash-Merge"; - # version = "0.302"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HE/HERMES/Hash-Merge-0.302.tar.gz"; - # hash = "sha256-rgUi92U5YIth3eFGcOeWd+DzkQNoMvcKIfMa3eJThkQ="; - # }; - # propagatedBuildInputs = [ CloneChoose ]; - # buildInputs = [ Clone ClonePP ]; - # meta = { - # description = "Merges arbitrarily deep hashes into a single hash"; - # homepage = "https://metacpan.org/release/Hash-Merge"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HashMergeSimple = buildPerlPackage { - # pname = "Hash-Merge-Simple"; - # version = "0.051"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RO/ROKR/Hash-Merge-Simple-0.051.tar.gz"; - # hash = "sha256-HFYyeHPS8E1XInd/BEhj2WiRBGaZd0DVWnVAccYoe3M="; - # }; - # buildInputs = [ TestDeep TestDifferences TestException TestMost TestWarn ]; - # propagatedBuildInputs = [ Clone ]; - # meta = { - # description = "Recursively merge two or more hashes, simply"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HashMoreUtils = buildPerlPackage { - # pname = "Hash-MoreUtils"; - # version = "0.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RE/REHSACK/Hash-MoreUtils-0.06.tar.gz"; - # hash = "sha256-25qPuGfVB1PDgIiaXlQHVlG14IybO3IctyIMCINUfeg="; - # }; - # meta = { - # description = "Provide the stuff missing in Hash::Util"; - # homepage = "https://metacpan.org/release/Hash-MoreUtils"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HashMultiValue = buildPerlPackage { - # pname = "Hash-MultiValue"; - # version = "0.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/Hash-MultiValue-0.16.tar.gz"; - # hash = "sha256-Zhgd96po4nhvr2iVyIsYuVyACo5Ob7TAf9F2QQo8c/Q="; - # }; - # meta = { - # description = "Store multiple values per key"; - # homepage = "https://github.com/miyagawa/Hash-MultiValue"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HashOrdered = buildPerlPackage { - # pname = "Hash-Ordered"; - # version = "0.014"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Hash-Ordered-0.014.tar.gz"; - # hash = "sha256-jcNs15FVrjerij3l/ZEg/7qaMeQJJYwoUp7FJRxZdHs="; - # }; - # buildInputs = [ TestDeep TestFailWarnings TestFatal ]; - # meta = { - # homepage = "https://github.com/dagolden/Hash-Ordered"; - # description = "A fast, pure-Perl ordered hash class"; - # license = lib.licenses.asl20; - # }; - # }; - - # HashSafeKeys = buildPerlPackage { - # pname = "Hash-SafeKeys"; - # version = "0.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MO/MOB/Hash-SafeKeys-0.04.tar.gz"; - # hash = "sha256-pSStO/naZ3wfi+bhWXG3ZXVAj3RJI9onZHro8dPDfMw="; - # }; - # meta = { - # description = "Get hash contents without resetting each iterator"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HashSharedMem = buildPerlModule { - # pname = "Hash-SharedMem"; - # version = "0.005"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Hash-SharedMem-0.005.tar.gz"; - # hash = "sha256-Mkd2gIYC973EStqpN4lTZUVAKakm+mEfMhyb9rlAu14="; - # }; - # env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isAarch64 "-mno-outline-atomics"; - # buildInputs = [ ScalarString ]; - # meta = { - # description = "Efficient shared mutable hash"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.HashSharedMem.x86_64-darwin - # }; - # }; - - # HashStoredIterator = buildPerlModule { - # pname = "Hash-StoredIterator"; - # version = "0.008"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Hash-StoredIterator-0.008.tar.gz"; - # hash = "sha256-ucvE3NgjPo0dfxSB3beaSl+dtxgMs+8CtLy+4F5l6gw="; - # }; - # buildInputs = [ Test2Suite ]; - # perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC"; - # meta = { - # description = "Functions for accessing a hashes internal iterator"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HashUtilFieldHashCompat = buildPerlPackage { - # pname = "Hash-Util-FieldHash-Compat"; - # version = "0.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Hash-Util-FieldHash-Compat-0.11.tar.gz"; - # hash = "sha256-ZC5Gp1tTe6EUILMPiwNAPJCgahVFjNgAnzOf6eXzdBs="; - # }; - # meta = { - # description = "Use Hash::Util::FieldHash or ties, depending on availability"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HeapFibonacci = buildPerlPackage { - # pname = "Heap"; - # version = "0.80"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JM/JMM/Heap-0.80.tar.gz"; - # hash = "sha256-zNop88kxdq0P3/9N1vXkrJCzcMuksCg4a3NDv2QTm94="; - # }; - # meta = { - # description = "Perl extensions for keeping data partially sorted"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HookLexWrap = buildPerlPackage { - # pname = "Hook-LexWrap"; - # version = "0.26"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Hook-LexWrap-0.26.tar.gz"; - # hash = "sha256-tgvcX5j5T5KUsGre+CsdmW2hktXxg/n0NLYQ/RE37C0="; - # }; - # buildInputs = [ pkgs.unzip ]; - # meta = { - # description = "Lexically scoped subroutine wrappers"; - # homepage = "https://github.com/karenetheridge/Hook-LexWrap"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTMLClean = buildPerlPackage { - # pname = "HTML-Clean"; - # version = "1.4"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AZ/AZJADFTRE/HTML-Clean-1.4.tar.gz"; - # hash = "sha256-pn1KvadR/DxrSjUYU3eoi8pbZRxgszN5gEtOkKF4hwY="; - # }; - # meta = { - # description = "Cleans up HTML code for web browsers, not humans"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "htmlclean"; - # }; - # }; - - # HTMLElementExtended = buildPerlPackage { - # pname = "HTML-Element-Extended"; - # version = "1.18"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MS/MSISK/HTML-Element-Extended-1.18.tar.gz"; - # hash = "sha256-8+8a8Qjyf+8V6+xmR58lHOCKpJvQCwRiycgMhrS2sys="; - # }; - # propagatedBuildInputs = [ HTMLTree ]; - # meta = { - # description = "Perl extension for HTML::Element(3)"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTMLEscape = buildPerlModule { - # pname = "HTML-Escape"; - # version = "1.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/HTML-Escape-1.11.tar.gz"; - # hash = "sha256-Wl7viWUA0epsJKkIXs++mkOr7mjPxmwD+InSostoml0="; - # }; - # buildInputs = [ ModuleBuildPluggablePPPort TestRequires ]; - # perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local' - # meta = { - # description = "Extremely fast HTML escaping"; - # homepage = "https://github.com/tokuhirom/HTML-Escape"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.HTMLEscape.x86_64-darwin - # }; - # }; - - # HTMLFromANSI = buildPerlPackage { - # pname = "HTML-FromANSI"; - # version = "2.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NU/NUFFIN/HTML-FromANSI-2.03.tar.gz"; - # hash = "sha256-IXdjRe1wGywEx7CTgK+UP5mEzH+ZYkCHrqRdtfwJw1k="; - # }; - # propagatedBuildInputs = [ HTMLParser TermVT102Boundless ]; - # meta = { - # description = "Mark up ANSI sequences as HTML"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "ansi2html"; - # }; - # }; - - # HTMLForm = buildPerlPackage { - # pname = "HTML-Form"; - # version = "6.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SI/SIMBABQUE/HTML-Form-6.11.tar.gz"; - # hash = "sha256-Q7+qcIc5NIfS1RJhoap/b4Gpex2P73pI/PbvMrFtZFQ="; - # }; - # buildInputs = [ TestWarnings ]; - # propagatedBuildInputs = [ HTMLParser URI ]; - # meta = { - # description = "Class that represents an HTML form element"; - # homepage = "https://github.com/libwww-perl/HTML-Form"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTMLFormatter = buildPerlPackage { - # pname = "HTML-Formatter"; - # version = "2.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NI/NIGELM/HTML-Formatter-2.16.tar.gz"; - # hash = "sha256-ywoN2Kpei6nKIUzkUb9N8zqgnBPpB+jTCC3a/rMBUcw="; - # }; - # buildInputs = [ FileSlurper TestWarnings ]; - # propagatedBuildInputs = [ FontAFM HTMLTree ]; - # meta = { - # description = "Base class for HTML formatters"; - # homepage = "https://metacpan.org/release/HTML-Formatter"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTMLFormatExternal = buildPerlPackage { - # pname = "HTML-FormatExternal"; - # version = "26"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KR/KRYDE/HTML-FormatExternal-26.tar.gz"; - # hash = "sha256-PFnyM9CxBoaoWu0MmUARzsaGJtoBKN6pC1xP3BdGz8M="; - # }; - # propagatedBuildInputs = [ IPCRun URI constant-defer ]; - # meta = { - # description = "HTML to text formatting using external programs"; - # homepage = "https://user42.tuxfamily.org/html-formatexternal/index.html"; - # license = with lib.licenses; [ gpl3Plus ]; - # }; - # }; - - # HTMLFormatTextWithLinks = buildPerlModule { - # pname = "HTML-FormatText-WithLinks"; - # version = "0.15"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/ST/STRUAN/HTML-FormatText-WithLinks-0.15.tar.gz"; - # hash = "sha256-f8wat561j7l9Q+W90U4heRolCiBJmJGMYtahcRMYM7E="; - # }; - # propagatedBuildInputs = [ HTMLFormatter ]; - # meta = { - # description = "HTML to text conversion with links as footnotes"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTMLFormatTextWithLinksAndTables = buildPerlPackage { - # pname = "HTML-FormatText-WithLinks-AndTables"; - # version = "0.07"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DALEEVANS/HTML-FormatText-WithLinks-AndTables-0.07.tar.gz"; - # hash = "sha256-gJ7i8RcFcGszxUMStce+5nSDjyvqrtr4y5RecCquObY="; - # }; - # propagatedBuildInputs = [ HTMLFormatTextWithLinks ]; - # meta = { - # description = "Converts HTML to Text with tables intact"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTMLFormFu = buildPerlPackage { - # pname = "HTML-FormFu"; - # version = "2.07"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CF/CFRANKS/HTML-FormFu-2.07.tar.gz"; - # hash = "sha256-Ty8Bf3qHVPu26RIGyI7RPHVqFOO+oXgYjDuXdGNm6zI="; - # }; - # buildInputs = [ CGI FileShareDirInstall RegexpAssemble TestException TestMemoryCycle TestRequiresInternet ]; - # propagatedBuildInputs = [ ConfigAny DataVisitor DateTimeFormatBuilder DateTimeFormatNatural EmailValid HTMLScrubber HTMLTokeParserSimple HashFlatten JSONMaybeXS MooseXAliases MooseXAttributeChained NumberFormat PathClass Readonly RegexpCommon TaskWeaken YAMLLibYAML ]; - # meta = { - # description = "HTML Form Creation, Rendering and Validation Framework"; - # homepage = "https://github.com/FormFu/HTML-FormFu"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTMLFormFuMultiForm = buildPerlPackage { - # pname = "HTML-FormFu-MultiForm"; - # version = "1.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NI/NIGELM/HTML-FormFu-MultiForm-1.03.tar.gz"; - # hash = "sha256-NvAM12u4luTaCd0rsOXYkGZ/cMePVCUa9NJYyCFJFZ8="; - # }; - # propagatedBuildInputs = [ CryptCBC CryptDES HTMLFormFu ]; - # meta = { - # description = "Handle multi-page/stage forms with FormFu"; - # homepage = "https://github.com/FormFu/HTML-FormFu-MultiForm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTMLFormHandler = buildPerlPackage { - # pname = "HTML-FormHandler"; - # version = "0.40068"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GS/GSHANK/HTML-FormHandler-0.40068.tar.gz"; - # hash = "sha256-63t43aMSV1LMi8wDltOXf70o2jPS1ExQQq1tNdbN6Cc="; - # }; - # # a single test is failing on perl 5.20 - # doCheck = false; - # buildInputs = [ FileShareDirInstall PadWalker TestDifferences TestException TestMemoryCycle TestWarn ]; - # propagatedBuildInputs = [ CryptBlowfish CryptCBC DataClone DateTimeFormatStrptime EmailValid HTMLTree JSONMaybeXS MooseXGetopt MooseXTypesCommon MooseXTypesLoadableClass aliased ]; - # meta = { - # description = "HTML forms using Moose"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTMLGumbo = buildPerlModule { - # pname = "HTML-Gumbo"; - # version = "0.18"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RU/RUZ/HTML-Gumbo-0.18.tar.gz"; - # hash = "sha256-v1C2HCRlbMP8lYYC2AqcfQFyR6842Nv6Dp3sW3VCXV8="; - # }; - # propagatedBuildInputs = [ AlienLibGumbo ]; - # meta = { - # description = "HTML5 parser based on gumbo C library"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTMLMason = buildPerlPackage { - # pname = "HTML-Mason"; - # version = "1.60"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/HTML-Mason-1.60.tar.gz"; - # hash = "sha256-qgu9WmtjxiyJVfjFXsCF43DXktZSZrbDtcXweIu8d+Y="; - # }; - # buildInputs = [ TestDeep ]; - # propagatedBuildInputs = [ CGI CacheCache ClassContainer ExceptionClass LogAny ]; - # meta = { - # description = "High-performance, dynamic web site authoring system"; - # homepage = "https://metacpan.org/release/HTML-Mason"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTMLMasonPSGIHandler = buildPerlPackage { - # pname = "HTML-Mason-PSGIHandler"; - # version = "0.53"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RU/RUZ/HTML-Mason-PSGIHandler-0.53.tar.gz"; - # hash = "sha256-6v18dlXfqCYd80RrkxooPTAwaHe4OsRnHEnP906n8As="; - # }; - # buildInputs = [ Plack ]; - # propagatedBuildInputs = [ CGIPSGI HTMLMason ]; - # meta = { - # description = "PSGI handler for HTML::Mason"; - # homepage = "https://search.cpan.org/dist/HTML-Mason-PSGIHandler"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - HTMLParser = buildPerlPackage { - pname = "HTML-Parser"; - version = "3.81"; - src = fetchurl { - 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 ]; - meta = { - description = "HTML parser class"; - homepage = "https://github.com/libwww-perl/HTML-Parser"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - HTMLTagCloud = buildPerlModule { - pname = "HTML-TagCloud"; - version = "0.38"; - src = fetchurl { - url = "mirror://cpan/authors/id/R/RO/ROBERTSD/HTML-TagCloud-0.38.tar.gz"; - hash = "sha256-SYCZRy3vhmtEi/YvQYLfrfWUcuE/JMuGZKZxynm2cBU="; - }; - meta = { - description = "Generate An HTML Tag Cloud"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # HTMLQuoted = buildPerlPackage { - # pname = "HTML-Quoted"; - # version = "0.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TS/TSIBLEY/HTML-Quoted-0.04.tar.gz"; - # hash = "sha256-i0HzE/3BgS8C9vbDfVjyEshP3PeCf3/UsDCQfzncZQw="; - # }; - # propagatedBuildInputs = [ HTMLParser ]; - # meta = { - # description = "Extract structure of quoted HTML mail message"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTMLRewriteAttributes = buildPerlPackage { - # pname = "HTML-RewriteAttributes"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TS/TSIBLEY/HTML-RewriteAttributes-0.05.tar.gz"; - # hash = "sha256-GAjsfN9A0nCFdf5hVaiPEDsX/sd5c6WDHC8kwlDnpYw="; - # }; - # propagatedBuildInputs = [ HTMLParser ]; - # meta = { - # description = "Concise attribute rewriting"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTMLSelectorXPath = buildPerlPackage { - # pname = "HTML-Selector-XPath"; - # version = "0.28"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CO/CORION/HTML-Selector-XPath-0.28.tar.gz"; - # hash = "sha256-QycX8D7Szz1kETDP09ShU/Ca1PhW2gB4E3kv4LLljQ8="; - # }; - # buildInputs = [ TestBase ]; - # meta = { - # description = "CSS Selector to XPath compiler"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTMLScrubber = buildPerlPackage { - # pname = "HTML-Scrubber"; - # version = "0.19"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NI/NIGELM/HTML-Scrubber-0.19.tar.gz"; - # hash = "sha256-rihVePhWX5FUxj5CNHBLV7aDX3ei+C/+ckiZ1FMmK7E="; - # }; - # propagatedBuildInputs = [ HTMLParser ]; - # buildInputs = [ TestDifferences TestMemoryCycle ]; - # meta = { - # description = "Perl extension for scrubbing/sanitizing HTML"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTMLStripScripts = buildPerlPackage { - # pname = "HTML-StripScripts"; - # version = "1.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DRTECH/HTML-StripScripts-1.06.tar.gz"; - # hash = "sha256-Iiv7fsH9+kZeMto9xKvtLtxzZLvhno48UTx9WFsBCa0="; - # }; - # meta = { - # description = "Strip scripting constructs out of HTML"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTMLStripScriptsParser = buildPerlPackage { - # pname = "HTML-StripScripts-Parser"; - # version = "1.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DRTECH/HTML-StripScripts-Parser-1.03.tar.gz"; - # hash = "sha256-R4waTkbrd/p7zpa6KIFo8LmMJ/JQ4A3GMSNlCBrtNAc="; - # }; - # propagatedBuildInputs = [ HTMLParser HTMLStripScripts ]; - # meta = { - # description = "XSS filter using HTML::Parser"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTMLTableExtract = buildPerlPackage { - # pname = "HTML-TableExtract"; - # version = "2.15"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MS/MSISK/HTML-TableExtract-2.15.tar.gz"; - # hash = "sha256-hsWcnVjaPKF02l5i9aD7AvTaArGx4B355dFLtl5MPs8="; - # }; - # preCheck = '' - # # https://rt.cpan.org/Public/Bug/Display.html?id=121920 - # rm t/30_tree.t - # ''; - # propagatedBuildInputs = [ HTMLElementExtended ]; - # meta = { - # description = "Perl module for extracting the content contained in tables within an HTML document, either as text or encoded element trees"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - HTMLTagset = buildPerlPackage { - pname = "HTML-Tagset"; - version = "3.20"; - src = fetchurl { - url = "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tagset-3.20.tar.gz"; - hash = "sha256-rbF9rJ42zQEfUkOIHJc5QX/RAvznYPjeTpvkxxMRCOI="; - }; - meta = { - description = "Data tables useful in parsing HTML"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # HTMLTemplate = buildPerlPackage { - # pname = "HTML-Template"; - # version = "2.97"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SA/SAMTREGAR/HTML-Template-2.97.tar.gz"; - # hash = "sha256-ZUevYfOqhXk/hhYZCTjWd9eZX7O3IMFiWAQLyTXiEp8="; - # }; - # propagatedBuildInputs = [ CGI ]; - # buildInputs = [ TestPod ]; - # meta = { - # description = "Perl module to use HTML-like templating language"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTMLTidy = buildPerlPackage { - # pname = "HTML-Tidy"; - # version = "1.60"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tidy-1.60.tar.gz"; - # hash = "sha256-vPv2XWh/jmcs9gyYIbzWXV6McqeCcrZ7sKwcaZoT18c="; - # }; - - # patchPhase = '' - # sed -i "s#/usr/include/tidyp#${pkgs.tidyp}/include/tidyp#" Makefile.PL - # sed -i "s#/usr/lib#${pkgs.tidyp}/lib#" Makefile.PL - # ''; - # buildInputs = [ TestException ]; - # meta = { - # description = "(X)HTML validation in a Perl object"; - # homepage = "https://github.com/petdance/html-tidy"; - # license = with lib.licenses; [ artistic2 ]; - # mainProgram = "webtidy"; - # }; - # }; - - # HTMLTiny = buildPerlPackage { - # pname = "HTML-Tiny"; - # version = "1.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/HTML-Tiny-1.08.tar.gz"; - # hash = "sha256-DwHfDJ/ICz2dooi6q/jApTdHRE964euWAOevxKPc/rU="; - # }; - # meta = { - # description = "Lightweight, dependency free HTML/XML generation"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTMLTokeParserSimple = buildPerlModule { - # pname = "HTML-TokeParser-Simple"; - # version = "3.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/O/OV/OVID/HTML-TokeParser-Simple-3.16.tar.gz"; - # hash = "sha256-7RETXGg55uDq+WlS5qw1Oi8i67QKchZZZx5dLcwOSp0="; - # }; - # propagatedBuildInputs = [ HTMLParser SubOverride ]; - # meta = { - # description = "Easy to use HTML::TokeParser interface"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTMLTree = buildPerlModule { - # pname = "HTML-Tree"; - # version = "5.07"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KE/KENTNL/HTML-Tree-5.07.tar.gz"; - # hash = "sha256-8DdNuEcxwgS4bB1bkJdf7w0wqGvZ3vkZND5VTjGp278="; - # }; - # buildInputs = [ TestFatal ]; - # propagatedBuildInputs = [ HTMLParser ]; - # meta = { - # description = "Work with HTML in a DOM-like tree structure"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "htmltree"; - # }; - # }; - - # HTMLTreeBuilderXPath = buildPerlPackage { - # pname = "HTML-TreeBuilder-XPath"; - # version = "0.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIROD/HTML-TreeBuilder-XPath-0.14.tar.gz"; - # hash = "sha256-Jeu9skRKClma5eekV9deCe/N8yZqXFcAsUA8y3SIpPM="; - # }; - # propagatedBuildInputs = [ HTMLTree XMLXPathEngine ]; - # meta = { - # description = "Add XPath support to HTML::TreeBuilder"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTMLWidget = buildPerlPackage { - # pname = "HTML-Widget"; - # version = "1.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CF/CFRANKS/HTML-Widget-1.11.tar.gz"; - # hash = "sha256-vkLfQFWSXOalob818eB60SvEP2VJ91JJAuozMFoOggs="; - # }; - # doCheck = false; - # propagatedBuildInputs = [ ClassAccessorChained ClassDataAccessor DateCalc EmailValid HTMLScrubber HTMLTree ModulePluggableFast ]; - # buildInputs = [ TestNoWarnings ]; - # meta = { - # description = "HTML Widget And Validation Framework"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTTPAcceptLanguage = buildPerlModule { - # pname = "HTTP-AcceptLanguage"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Y/YA/YAPPO/HTTP-AcceptLanguage-0.02.tar.gz"; - # hash = "sha256-LmBfVk7J66tlVI/17sk/nF3qvv7XBzpyneCuKE5OQq8="; - # }; - # buildInputs = [ ModuleBuildTiny ]; - # meta = { - # description = "Accept-Language header parser and find available language"; - # homepage = "https://github.com/yappo/p5-HTTP-AcceptLanguage"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTTPBody = buildPerlPackage { - # pname = "HTTP-Body"; - # version = "1.23"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GE/GETTY/HTTP-Body-1.23.tar.gz"; - # hash = "sha256-7OmB9BYWNaL7piFdAlcZXlOMTyNDhFMFAd/bahvY1jY="; - # }; - # buildInputs = [ TestDeep ]; - # propagatedBuildInputs = [ HTTPMessage ]; - # meta = { - # description = "HTTP Body Parser"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - HTTPCookieJar = buildPerlPackage { - pname = "HTTP-CookieJar"; - version = "0.014"; - src = fetchurl { - url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/HTTP-CookieJar-0.014.tar.gz"; - hash = "sha256-cJTqXJH1NtJjuF6Dq06alj4RxECM4I7K5VP6nAzEfnM="; - }; - propagatedBuildInputs = [ HTTPDate ]; - buildInputs = [ TestDeep TestRequires URI ]; - # Broken on Hydra since 2021-06-17: https://hydra.nixos.org/build/146507373 - doCheck = false; - meta = { - description = "A minimalist HTTP user agent cookie jar"; - homepage = "https://github.com/dagolden/HTTP-CookieJar"; - license = with lib.licenses; [ asl20 ]; - }; - }; - - HTTPCookies = buildPerlPackage { - pname = "HTTP-Cookies"; - version = "6.10"; - src = fetchurl { - url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Cookies-6.10.tar.gz"; - hash = "sha256-4282Yzxc5rXkuHb/z3R4fMXv4HNt1/SHvdc8FPC9cAc="; - }; - propagatedBuildInputs = [ HTTPMessage ]; - meta = { - description = "HTTP cookie jars"; - homepage = "https://github.com/libwww-perl/HTTP-Cookies"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - HTTPDaemon = buildPerlPackage { - pname = "HTTP-Daemon"; - version = "6.16"; - src = fetchurl { - url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Daemon-6.16.tar.gz"; - hash = "sha256-s40JJyXm+k4MTcKkfhVwcEkbr6Db4Wx4o1joBqp+Fz0="; - }; - 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 ]; - }; - }; - - HTTPDate = buildPerlPackage { - pname = "HTTP-Date"; - version = "6.06"; - src = fetchurl { - url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Date-6.06.tar.gz"; - hash = "sha256-e2hRkcasw+dz0fwCyV7h+frpT3d4MXX154wYHMktK1I="; - }; - propagatedBuildInputs = [ TimeDate ]; - meta = { - description = "Date conversion routines"; - homepage = "https://github.com/libwww-perl/HTTP-Date"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # HTTPEntityParser = buildPerlModule { - # pname = "HTTP-Entity-Parser"; - # version = "0.25"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KA/KAZEBURO/HTTP-Entity-Parser-0.25.tar.gz"; - # hash = "sha256-OozQ2Muj0XzYwE7oLXNB36okfb3ZSknrlLU/aeSD7Do="; - # }; - # propagatedBuildInputs = [ HTTPMultiPartParser HashMultiValue JSONMaybeXS StreamBuffered WWWFormUrlEncoded ]; - # buildInputs = [ HTTPMessage ModuleBuildTiny ]; - # meta = { - # description = "PSGI compliant HTTP Entity Parser"; - # homepage = "https://github.com/kazeburo/HTTP-Entity-Parser"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTTPDAV = buildPerlPackage { - # pname = "HTTP-DAV"; - # version = "0.49"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CO/COSIMO/HTTP-DAV-0.49.tar.gz"; - # hash = "sha256-MzOd+ewQbeN9hgnP0NPAg8z7sGwWxlG1s4UaVtF6lXw="; - # }; - # propagatedBuildInputs = [ XMLDOM ]; - # meta = { - # description = "WebDAV client library"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "dave"; - # }; - # }; - - # HTTPHeadersActionPack = buildPerlPackage { - # pname = "HTTP-Headers-ActionPack"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/HTTP-Headers-ActionPack-0.09.tar.gz"; - # hash = "sha256-x4ERq4V+SMaYJJA9S2zoKT/v/GtdZw21UKdn+FOsx9o="; - # }; - # buildInputs = [ TestFatal TestWarnings ]; - # propagatedBuildInputs = [ HTTPDate HTTPMessage ModuleRuntime SubExporter URI ]; - # meta = { - # description = "HTTP Action, Adventure and Excitement"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTTPHeaderParserXS = buildPerlPackage { - # pname = "HTTP-HeaderParser-XS"; - # version = "0.20"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MARKSMITH/HTTP-HeaderParser-XS-0.20.tar.gz"; - # hash = "sha256-qeAP/7PYmRoUqq/dxh1tFoxP8U4xSuPbstTaMAjXRu8="; - # }; - # meta = { - # description = "An XS extension for processing HTTP headers"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # broken = - # stdenv.isi686 # loadable library and perl binaries are mismatched (got handshake key 0x7d40080, needed 0x7dc0080) - # || stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.HTTPHeaderParserXS.x86_64-darwin - # }; - # }; - - # HTTPHeadersFast = buildPerlModule { - # pname = "HTTP-Headers-Fast"; - # version = "0.22"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/HTTP-Headers-Fast-0.22.tar.gz"; - # hash = "sha256-zEMdtoSW3YhNtLwMC3ESwfSk8dxoxPWjyqdXoedIG0g="; - # }; - # buildInputs = [ ModuleBuildTiny TestRequires ]; - # propagatedBuildInputs = [ HTTPDate ]; - # meta = { - # description = "Faster implementation of HTTP::Headers"; - # homepage = "https://github.com/tokuhirom/HTTP-Headers-Fast"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTTPLite = buildPerlPackage { - # pname = "HTTP-Lite"; - # version = "2.44"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/HTTP-Lite-2.44.tar.gz"; - # hash = "sha256-OOQ9eRHPwU46OPA4K2zHptVZMH0jsQnOc6x9JKmz53w="; - # }; - # buildInputs = [ CGI ]; - # meta = { - # description = "Lightweight HTTP implementation"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - HTTPMessage = buildPerlPackage { - pname = "HTTP-Message"; - version = "6.45"; - src = fetchurl { - 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 ]; - meta = { - description = "HTTP style message (base class)"; - homepage = "https://github.com/libwww-perl/HTTP-Message"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # HTTPMultiPartParser = buildPerlPackage { - # pname = "HTTP-MultiPartParser"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CH/CHANSEN/HTTP-MultiPartParser-0.02.tar.gz"; - # hash = "sha256-Xt3aFZ9U0W+GjgMkQKwrAk5VqsSJMYcbYmJ/GhbQCxI="; - # }; - # buildInputs = [ TestDeep ]; - # meta = { - # description = "HTTP MultiPart Parser"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - HTTPNegotiate = buildPerlPackage { - pname = "HTTP-Negotiate"; - version = "6.01"; - src = fetchurl { - url = "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Negotiate-6.01.tar.gz"; - hash = "sha256-HHKcHqYxAOh4QFzafWb5rf0+1PHWysrKDukVLfco4BY="; - }; - propagatedBuildInputs = [ HTTPMessage ]; - meta = { - description = "Choose a variant to serve"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # HTTPParserXS = buildPerlPackage { - # pname = "HTTP-Parser-XS"; - # version = "0.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KA/KAZUHO/HTTP-Parser-XS-0.17.tar.gz"; - # hash = "sha256-eU5oM+MmsQ0kNp+c2/wWZxBe9lkej0HlYaPUGnAnqAk="; - # }; - # meta = { - # description = "A fast, primitive HTTP request parser"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTTPProxy = buildPerlPackage { - # pname = "HTTP-Proxy"; - # version = "0.304"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BO/BOOK/HTTP-Proxy-0.304.tar.gz"; - # hash = "sha256-sFKQU07HNiXCGgVl/DUXCJDasWOEPZUzHCksI/UExp0="; - # }; - # propagatedBuildInputs = [ LWP ]; - # # tests fail because they require network access - # doCheck = false; - # meta = { - # description = "A pure Perl HTTP proxy"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTTPRequestAsCGI = buildPerlPackage { - # pname = "HTTP-Request-AsCGI"; - # version = "1.2"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FL/FLORA/HTTP-Request-AsCGI-1.2.tar.gz"; - # hash = "sha256-lFv7B8bRr1J3P7eEW6YuOnQRGzXL0tXkPvgxnlWsvOo="; - # }; - # propagatedBuildInputs = [ ClassAccessor HTTPMessage ]; - # meta = { - # description = "Set up a CGI environment from an HTTP::Request"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTTPResponseEncoding = buildPerlPackage { - # pname = "HTTP-Response-Encoding"; - # version = "0.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DANKOGAI/HTTP-Response-Encoding-0.06.tar.gz"; - # hash = "sha256-EBZ7jiOKaCAEqw16zL6dduri21evB8WuLfqAgHSkqKo="; - # }; - # propagatedBuildInputs = [ HTTPMessage ]; - # buildInputs = [ LWP ]; - # meta = { - # description = "Adds encoding() to HTTP::Response"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTTPServerSimple = buildPerlPackage { - # pname = "HTTP-Server-Simple"; - # version = "0.52"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BP/BPS/HTTP-Server-Simple-0.52.tar.gz"; - # hash = "sha256-2JOfpPEr1rjAQ1N/0L+WsFWsNoa5zdn6dz3KauZ5y0w="; - # }; - # doCheck = false; - # propagatedBuildInputs = [ CGI ]; - # meta = { - # description = "Lightweight HTTP server"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTTPServerSimpleAuthen = buildPerlPackage { - # pname = "HTTP-Server-Simple-Authen"; - # version = "0.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Server-Simple-Authen-0.04.tar.gz"; - # hash = "sha256-Ld3Iq53ImGmAFR5LqDamu/CR9Fzxlb4XaOvbSpk+1Zs="; - # }; - # propagatedBuildInputs = [ AuthenSimple HTTPServerSimple ]; - # meta = { - # description = "Authentication plugin for HTTP::Server::Simple"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTTPServerSimpleMason = buildPerlPackage { - # pname = "HTTP-Server-Simple-Mason"; - # version = "0.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JE/JESSE/HTTP-Server-Simple-Mason-0.14.tar.gz"; - # hash = "sha256-t6Sdjm5Vv/Cx8CeNlRaFRmsUMkO2+eWeBx9UcsoqAlo="; - # }; - # propagatedBuildInputs = [ HTMLMason HTTPServerSimple HookLexWrap ]; - # meta = { - # description = "A simple mason server"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTTPServerSimplePSGI = buildPerlPackage { - # pname = "HTTP-Server-Simple-PSGI"; - # version = "0.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Server-Simple-PSGI-0.16.tar.gz"; - # hash = "sha256-X3zLhFMEO5cnhJKnVzKBFuEeA1LyhUooqcY05ukTHbo="; - # }; - # propagatedBuildInputs = [ HTTPServerSimple ]; - # meta = { - # description = "Perl Web Server Gateway Interface Specification"; - # homepage = "https://github.com/miyagawa/HTTP-Server-Simple-PSGI"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # HTTPTinyCache = buildPerlPackage { - # pname = "HTTP-Tiny-Cache"; - # version = "0.002"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PERLANCAR/HTTP-Tiny-Cache-0.002.tar.gz"; - # hash = "sha256-c323zxncN4By2Rysdnh/sorNg8DRB85OTrS708kRhiE="; - # }; - # propagatedBuildInputs = [ FileUtilTempdir Logger ]; - # meta = { - # description = "Cache HTTP::Tiny responses"; - # homepage = "https://metacpan.org/release/HTTP-Tiny-Cache"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # HTTPTinyish = buildPerlPackage { - # pname = "HTTP-Tinyish"; - # version = "0.18"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Tinyish-0.18.tar.gz"; - # hash = "sha256-gDgLjTPGv6lrsBBPpqQcJ9zE6cg6SN8frTkJf1/c/eU="; - # }; - # propagatedBuildInputs = [ FileWhich IPCRun3 ]; - # meta = { - # description = "HTTP::Tiny compatible HTTP client wrappers"; - # homepage = "https://github.com/miyagawa/HTTP-Tinyish"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # iCalParser = buildPerlPackage { - # pname = "iCal-Parser"; - # version = "1.21"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RI/RIXED/iCal-Parser-1.21.tar.gz"; - # hash = "sha256-DXk5pkSo5nAX7HI509lgTzmGu5pP+Avmj+cpnr/SJww="; - # }; - # propagatedBuildInputs = [ DateTimeFormatICal FreezeThaw IOString TextvFileasData ]; - # meta = { - # description = "Parse iCalendar files into a data structure"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ImagePNGLibpng = buildPerlPackage { - # pname = "Image-PNG-Libpng"; - # version = "0.57"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BK/BKB/Image-PNG-Libpng-0.56.tar.gz"; - # hash = "sha256-+vu/6/9CP3u4XvJ6MEH7YpG1AzbHpYIiSlysQzHDx9k="; - # }; - # buildInputs = [ pkgs.libpng ]; - # meta = { - # description = "Perl interface to libpng"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "pnginspect"; - # broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.ImagePNGLibpng.x86_64-darwin - # }; - # }; - - # Imager = buildPerlPackage { - # pname = "Imager"; - # version = "1.019"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TONYC/Imager-1.019.tar.gz"; - # hash = "sha256-dNRNcBwfFPxLmE+toelVcmtQTC2LBtJl56hh+llDy0g="; - # }; - # buildInputs = [ pkgs.freetype pkgs.fontconfig pkgs.libjpeg pkgs.libpng ]; - # makeMakerFlags = [ "--incpath ${pkgs.libjpeg.dev}/include" "--libpath ${pkgs.libjpeg.out}/lib" "--incpath" "${pkgs.libpng.dev}/include" "--libpath" "${pkgs.libpng.out}/lib" ]; - # meta = { - # description = "Perl extension for Generating 24 bit Images"; - # homepage = "http://imager.perl.org"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ImagerQRCode = buildPerlPackage { - # pname = "Imager-QRCode"; - # version = "0.035"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KU/KURIHARA/Imager-QRCode-0.035.tar.gz"; - # hash = "sha256-KoSN66Kes5QsRHCaaFPjGKyrDEaMv+27m6rlR2ADJRM="; - # }; - # propagatedBuildInputs = [ Imager ]; - # meta = { - # description = "Generate QR Code with Imager using libqrencode"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ sgo ]; - # }; - # }; - - # ImageInfo = buildPerlPackage { - # pname = "Image-Info"; - # version = "1.44"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SR/SREZIC/Image-Info-1.44.tar.gz"; - # hash = "sha256-y3/GXdHv/gHrR8HHmlLdFlT0KOOpfbHvI7EmzgFjbw0="; - # }; - # propagatedBuildInputs = [ IOStringy ]; - # meta = { - # description = "Extract meta information from image files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ImageSane = buildPerlPackage { - # pname = "Image-Sane"; - # version = "5"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RA/RATCLIFFE/Image-Sane-5.tar.gz"; - # hash = "sha256-Ipqg6fBJ76dg88L25h2dU5r0PY92S1Cm4DBktHKaNf8="; - # }; - # buildInputs = [ pkgs.sane-backends ExtUtilsDepends ExtUtilsPkgConfig TestRequires TryTiny ]; - # propagatedBuildInputs = [ ExceptionClass Readonly ]; - # meta = { - # description = "Perl extension for the SANE (Scanner Access Now Easy) Project"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ImageScale = buildPerlPackage { - # pname = "Image-Scale"; - # version = "0.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AG/AGRUNDMA/Image-Scale-0.14.tar.gz"; - # hash = "sha256-8JxfBmO4dzg2WsKBnhhrkJq+ue2F2DvBXudocslHzfg="; - # }; - # buildInputs = [ pkgs.libpng pkgs.libjpeg TestNoWarnings ]; - # propagatedBuildInputs = [ pkgs.zlib ]; - # makeMakerFlags = [ "--with-jpeg-includes=${pkgs.libjpeg.dev}/include" "--with-jpeg-libs=${pkgs.libjpeg.out}/lib" "--with-png-includes=${pkgs.libpng.dev}/include" "--with-png-libs=${pkgs.libpng.out}/lib" ]; - # meta = { - # description = "Fast, high-quality fixed-point image resizing"; - # license = with lib.licenses; [ gpl2Plus ]; - # }; - # }; - - # ImageSize = buildPerlPackage { - # pname = "Image-Size"; - # version = "3.300"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJRAY/Image-Size-3.300.tar.gz"; - # hash = "sha256-U8mx+GUxzeBg7mNwnR/ac8q8DPLVgdKbIrAUeBufAms="; - # }; - # buildInputs = [ ModuleBuild ]; - # meta = { - # description = "A library to extract height/width from images"; - # homepage = "https://search.cpan.org/dist/Image-Size"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "imgsize"; - # }; - # }; - - # ImageOCRTesseract = buildPerlPackage { - # pname = "Image-OCR-Tesseract"; - # version = "1.26"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LE/LEOCHARRE/Image-OCR-Tesseract-1.26.tar.gz"; - # hash = "sha256-mNkEJmpwYvCcm0b3fE6UUp4f6ZM54/g/2h+SAT8AfOo="; - # }; - # nativeBuildInputs = [ pkgs.which pkgs.makeWrapper pkgs.tesseract pkgs.imagemagick ]; - # propagatedBuildInputs = [ FileFindRule FileWhich LEOCHARRECLI StringShellQuote ]; - # postPatch = '' - # substituteInPlace lib/Image/OCR/Tesseract.pm \ - # --replace "which('tesseract')" "\"${pkgs.tesseract}/bin/tesseract\"" \ - # --replace "which('convert')" "\"${pkgs.imagemagick}/bin/convert"\" - # ''; - # postInstall = '' - # wrapProgram $out/bin/ocr --prefix PATH : ${lib.makeBinPath [ pkgs.tesseract pkgs.imagemagick ]} - # ''; - # meta = { - # description = "Read an image with tesseract ocr and get output"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "ocr"; - # }; - # }; - - # IMAPClient = buildPerlPackage { - # pname = "IMAP-Client"; - # version = "0.13"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CO/CONTEB/IMAP-Client-0.13.tar.gz"; - # hash = "sha256-inovpVt1qFPEgBQXeDk62sKUts0gfN9UFA9nwS8kypU="; - # }; - # doCheck = false; # nondeterministic - # meta = { - # description = "Advanced manipulation of IMAP services w/ referral support"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Importer = buildPerlPackage { - # pname = "Importer"; - # version = "0.026"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/EX/EXODIST/Importer-0.026.tar.gz"; - # hash = "sha256-4I+oThPLmYt6iX/I7Jw0WfzBcWr/Jcw0Pjbvh1iRsO8="; - # }; - # meta = { - # description = "Alternative but compatible interface to modules that export symbols"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ImportInto = buildPerlPackage { - # pname = "Import-Into"; - # version = "1.002005"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HAARG/Import-Into-1.002005.tar.gz"; - # hash = "sha256-vZ53o/tmK0C0OxjTKAzTUu35+tjZQoPlGBgcwc6fBWc="; - # }; - # propagatedBuildInputs = [ ModuleRuntime ]; - # meta = { - # description = "Import packages into other packages"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IO = buildPerlPackage { - # pname = "IO"; - # version = "1.51"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TODDR/IO-1.51.tar.gz"; - # hash = "sha256-VJPqVZmHKM0rfsuCNMWPtdXfJwmNDwet3KIkRNdhbOA="; - # }; - # doCheck = false; - # meta = { - # description = "Perl core IO modules"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IOAIO = buildPerlPackage { - # pname = "IO-AIO"; - # version = "4.73"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/ML/MLEHMANN/IO-AIO-4.73.tar.gz"; - # hash = "sha256-mltHx4Ak+rdmPR5a90ob6rRQ19Y7poV+MbP9gobkrFo="; - # }; - # buildInputs = [ CanaryStability ]; - # propagatedBuildInputs = [ commonsense ]; - # nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang; - # postInstall = lib.optionalString stdenv.isDarwin '' - # shortenPerlShebang $out/bin/treescan - # ''; - # meta = { - # description = "Asynchronous/Advanced Input/Output"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "treescan"; - # }; - # }; - - # IOAll = buildPerlPackage { - # pname = "IO-All"; - # version = "0.87"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FR/FREW/IO-All-0.87.tar.gz"; - # hash = "sha256-VOIdJQwCKRJ+MLd6NGHhAHeFTsJE8m+2cPG0Re1MTVs="; - # }; - # meta = { - # description = "IO::All of it to Graham and Damian!"; - # homepage = "https://github.com/ingydotnet/io-all-pm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IOAsync = buildPerlModule { - # pname = "IO-Async"; - # version = "0.802"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/IO-Async-0.802.tar.gz"; - # hash = "sha256-5YJzFXd2fEfqxDXvKQRmPUp1Cw5oAqSmGJo38Mswhzg"; - # }; - # preCheck = "rm t/50resolver.t"; # this test fails with "Temporary failure in name resolution" in sandbox - # propagatedBuildInputs = [ Future StructDumb ]; - # buildInputs = [ TestFatal TestFutureIOImpl TestIdentity TestMetricsAny TestRefcount ]; - # meta = { - # description = "Asynchronous event-driven programming"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IOAsyncSSL = buildPerlModule { - # pname = "IO-Async-SSL"; - # version = "0.25"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/IO-Async-SSL-0.25.tar.gz"; - # hash = "sha256-Te9IXbHv9OE5tLWRIgLA/WHDrtLOw1vVq4v3u9g/WnU="; - # }; - # buildInputs = [ TestIdentity ]; - # propagatedBuildInputs = [ Future IOAsync IOSocketSSL ]; - # meta = { - # description = "Use SSL/TLS with IO::Async"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.zakame ]; - # }; - # }; - - # IOCapture = buildPerlPackage { - # pname = "IO-Capture"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RE/REYNOLDS/IO-Capture-0.05.tar.gz"; - # hash = "sha256-wsFaJUynT7jFfSXXtsvK/3ejtPtWlUI/H4C7Qjq//qk="; - # }; - # meta = { - # description = "Abstract Base Class to build modules to capture output"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IOCaptureOutput = buildPerlPackage { - # pname = "IO-CaptureOutput"; - # version = "1.1105"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/IO-CaptureOutput-1.1105.tar.gz"; - # hash = "sha256-rpkAn8oSc4APFp7LgvTtHMbHZ5XxVr7lwAkwBdVy9Ic="; - # }; - # meta = { - # description = "(DEPRECATED) capture STDOUT and STDERR from Perl code, subprocesses or XS"; - # homepage = "https://github.com/dagolden/IO-CaptureOutput"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IOCompress = buildPerlPackage { - # pname = "IO-Compress"; - # version = "2.206"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PM/PMQS/IO-Compress-2.206.tar.gz"; - # hash = "sha256-fTBiuaSU91fo0GFPIg2D8icxu9oa6198/w5yqD9DPTU="; - # }; - # propagatedBuildInputs = [ CompressRawBzip2 CompressRawZlib ]; - # # Same as CompressRawZlib - # doCheck = false && !stdenv.isDarwin; - # meta = { - # description = "IO Interface to compressed data files/buffers"; - # homepage = "https://github.com/pmqs/IO-Compress"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "streamzip"; - # }; - # }; - - # IODigest = buildPerlPackage { - # pname = "IO-Digest"; - # version = "0.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CL/CLKAO/IO-Digest-0.11.tar.gz"; - # hash = "sha256-j/z4Wn9iE+XpQUCtzCsXntAkmOrchDCUV+kE3sk/f5I="; - # }; - # propagatedBuildInputs = [ PerlIOviadynamic ]; - # meta = { - # description = "Calculate digests while reading or writing"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - IOHTML = buildPerlPackage { - pname = "IO-HTML"; - version = "1.004"; - src = fetchurl { - url = "mirror://cpan/authors/id/C/CJ/CJM/IO-HTML-1.004.tar.gz"; - hash = "sha256-yHst9ZRju/LDlZZ3PftcA73g9+EFGvM5+WP1jBy9i/U="; - }; - meta = { - description = "Open an HTML file with automatic charset detection"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # IOHandleUtil = buildPerlModule { - # pname = "IO-Handle-Util"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/IO-Handle-Util-0.02.tar.gz"; - # hash = "sha256-jblmqRPaxORkIwcCqiIr84r+ISGT5ja8DzzGUbrezO4="; - # }; - # propagatedBuildInputs = [ IOString SubExporter asa ]; - # buildInputs = [ ModuleBuildTiny TestSimple13 ]; - # meta = { - # description = "Functions for working with IO::Handle like objects"; - # homepage = "https://github.com/karenetheridge/IO-Handle-Util"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IOInterface = buildPerlModule { - # pname = "IO-Interface"; - # version = "1.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LD/LDS/IO-Interface-1.09.tar.gz"; - # hash = "sha256-5j6BxS6x4OYOwtmD9VUtJJPhFxeZJclnV/I8S9n6cTo="; - # }; - # meta = { - # description = "Access and modify network interface card configuration"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IOInteractive = buildPerlPackage { - # pname = "IO-Interactive"; - # version = "1.025"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BD/BDFOY/IO-Interactive-1.025.tar.gz"; - # hash = "sha256-yh7G+6t6AnXdLpz2e3yw4ARYY/MVMyEMfcVEYxtqqqc="; - # }; - # meta = { - # description = "Utilities for interactive I/O"; - # homepage = "https://github.com/briandfoy/io-interactive"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # IOInteractiveTiny = buildPerlPackage { - # pname = "IO-Interactive-Tiny"; - # version = "0.2"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DM/DMUEY/IO-Interactive-Tiny-0.2.tar.gz"; - # hash = "sha256-RcBpZQXH5DR4RfXNJRK3sbx4+85MvtK1gAgoP8lepfk="; - # }; - # meta = { - # description = "Is_interactive() without large deps"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # IOLockedFile = buildPerlPackage { - # pname = "IO-LockedFile"; - # version = "0.23"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RA/RANI/IO-LockedFile-0.23.tar.gz"; - # hash = "sha256-sdt+amvxvh4GFabstc6+eLAOKHsSfVhW0/FrNd1H+LU="; - # }; - # meta = { - # description = "Supply object methods for locking files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IOMultiplex = buildPerlPackage { - # pname = "IO-Multiplex"; - # version = "1.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BB/BBB/IO-Multiplex-1.16.tar.gz"; - # hash = "sha256-dNIsRLWtLnGQ4nhuihfXS79M74m00RV7ozWYtaJyDa0="; - # }; - # meta = { - # description = "Supply object methods for locking files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IOPager = buildPerlPackage { - # version = "2.10"; - # pname = "IO-Pager"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JP/JPIERCE/IO-Pager-2.10.tgz"; - # hash = "sha256-vLTYwtKAyANLglkcwLnrZ6AE+QzpqgWXn8YHEwessZU="; - # }; - # propagatedBuildInputs = [ pkgs.more FileWhich TermReadKey ]; # `more` used in tests - # meta = { - # description = "Select a pager (possibly perl-based) & pipe it text if a TTY"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "tp"; - # }; - # }; - - # IOPty = buildPerlModule { - # pname = "IO-Pty"; - # version = "1.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TODDR/IO-Tty-1.16.tar.gz"; - # hash = "sha256-jxoJwHBzitxpXfkD8uf3QwjdjZkbkUwLw5Cg5gISlN0="; - # }; - # buildPhase = "make"; - # checkPhase = "make test"; - # installPhase = "make install"; - # meta = { - # homepage = "https://github.com/toddr/IO-Tty"; - # description = "Pseudo TTY object class"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IOPrompt = buildPerlModule { - # pname = "IO-Prompt"; - # version = "0.997004"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DC/DCONWAY/IO-Prompt-0.997004.tar.gz"; - # hash = "sha256-8XuzBe5qyLWyA+bYJuuUDE8/bW9L/nGcOzoiX0b1hhU="; - # }; - # propagatedBuildInputs = [ TermReadKey Want ]; - # doCheck = false; # needs access to /dev/tty - # meta = { - # description = "Interactively prompt for user input"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IOSessionData = buildPerlPackage { - # pname = "IO-SessionData"; - # version = "1.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PH/PHRED/IO-SessionData-1.03.tar.gz"; - # hash = "sha256-ZKRxKj7bs/0QIw2ylsKcjGbwZq37wMPfakglj+85Ld0="; - # }; - # outputs = [ "out" "dev" ]; # no "devdoc" - # meta = { - # description = "Supporting module for SOAP::Lite"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IOSocketINET6 = buildPerlModule { - # pname = "IO-Socket-INET6"; - # version = "2.73"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/IO-Socket-INET6-2.73.tar.gz"; - # hash = "sha256-ttp0aFMlPVtKxDGRtPaaRxlZXuE6fKZ2qAVM825tFrs="; - # }; - # propagatedBuildInputs = [ Socket6 ]; - # doCheck = false; - # meta = { - # description = "[DEPRECATED] Object interface for AF_INET/AF_INET6 domain sockets"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - IOSocketSSL = buildPerlPackage { - pname = "IO-Socket-SSL"; - version = "2.083"; - src = fetchurl { - url = "mirror://cpan/authors/id/S/SU/SULLR/IO-Socket-SSL-2.083.tar.gz"; - hash = "sha256-kE7yh2VECpfYqaDfWX+MPX88sKBT0bCCwQvtA7yAIGk="; - }; - propagatedBuildInputs = [ MozillaCA NetSSLeay ]; - # Fix path to default certificate store. - postPatch = '' - substituteInPlace lib/IO/Socket/SSL.pm \ - --replace "\$openssldir/cert.pem" "/etc/ssl/certs/ca-certificates.crt" - ''; - doCheck = false; # tries to connect to facebook.com etc. - 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 ]; - }; - }; - - # IOSocketTimeout = buildPerlModule { - # pname = "IO-Socket-Timeout"; - # version = "0.32"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAMS/IO-Socket-Timeout-0.32.tar.gz"; - # hash = "sha256-7fkV1sxmvuQ1A6ptwrNzNm846v9wFYIYPa0Qy4rfKXI="; - # }; - # buildInputs = [ ModuleBuildTiny TestSharedFork TestTCP ]; - # propagatedBuildInputs = [ PerlIOviaTimeout ]; - # meta = { - # description = "IO::Socket with read/write timeout"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IOString = buildPerlPackage { - # pname = "IO-String"; - # version = "1.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GA/GAAS/IO-String-1.08.tar.gz"; - # hash = "sha256-Kj9K2EQtkHB4DljvQ3ItGdHuIagDv3yCBod6EEgt5aA="; - # }; - # meta = { - # description = "Emulate file interface for in-core strings"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IOStringy = buildPerlPackage { - # pname = "IO-Stringy"; - # version = "2.113"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CA/CAPOEIRAB/IO-Stringy-2.113.tar.gz"; - # hash = "sha256-USIPyvn2amObadJR17B1e/QgL0+d69Rb3TQaaspi/k4="; - # }; - # meta = { - # description = "I/O on in-core objects like strings and arrays"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IOStty = buildPerlModule { - # pname = "IO-Stty"; - # version = "0.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TODDR/IO-Stty-0.04.tar.gz"; - # hash = "sha256-XJUJ8ahpPYKH+gE97wv4eqZM2ScThGHvjetVUDxmUcI="; - # }; - # buildPhase = "make"; - # checkPhase = "make test"; - # installPhase = "make install"; - # meta = { - # description = "Change and print terminal line settings"; - # homepage = "https://wiki.github.com/toddr/IO-Stty"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IOTee = buildPerlPackage { - # pname = "IO-Tee"; - # version = "0.66"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/IO-Tee-0.66.tar.gz"; - # hash = "sha256-LZznIGUW+cMIY6NnqhwrmzVwLjabCrqhX5n7LMCFUuA="; - # }; - # meta = { - # description = "Multiplex output to multiple output handles"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IOTieCombine = buildPerlPackage { - # pname = "IO-TieCombine"; - # version = "1.005"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/IO-TieCombine-1.005.tar.gz"; - # hash = "sha256-QC1NuDALPScWMvSZXgreMp2JKAp+R/K634s4r25Vaa8="; - # }; - # meta = { - # description = "Produce tied (and other) separate but combined variables"; - # homepage = "https://github.com/rjbs/IO-TieCombine"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IOTty = buildPerlPackage { - # pname = "IO-Tty"; - # version = "1.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TODDR/IO-Tty-1.17.tar.gz"; - # hash = "sha256-pfGoMCC8W13WwbVw9Ix1RuCo9/rBCgaHQLA5Ja2eFOg="; - # }; - # patches = [ ./perl-modules/IO-Tty-fix-makefile.patch ]; - # doCheck = !stdenv.isDarwin; # openpty fails in the sandbox - # meta = { - # description = "Low-level allocate a pseudo-Tty, import constants"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IPCConcurrencyLimit = buildPerlPackage { - # pname = "IPC-ConcurrencyLimit"; - # version = "0.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MATTK/IPC-ConcurrencyLimit-0.17.tar.gz"; - # hash = "sha256-Lk11vlLpD8YFg31ajp+yacCofdPTYfMBLA/5Sl+9z+8="; - # }; - # buildInputs = [ ExtUtilsMakeMaker ]; - # propagatedBuildInputs = [ FilePath IO ]; - # meta = { - # description = "Lock-based limits on cooperative multi-processing"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IPCountry = buildPerlPackage { - # pname = "IP-Country"; - # version = "2.28"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NW/NWETTERS/IP-Country-2.28.tar.gz"; - # hash = "sha256-iNuDOlqyLtBstT1vIFcl47U3GyVFlgU3OIhekfoQX3U="; - # }; - # propagatedBuildInputs = [ GeographyCountries ]; - # meta = { - # description = "Fast lookup of country codes from IP addresses"; - # license = with lib.licenses; [ mit ]; - # mainProgram = "ip2cc"; - # }; - # }; - - # GeographyCountries = buildPerlPackage { - # pname = "Geography-Countries"; - # version = "2009041301"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AB/ABIGAIL/Geography-Countries-2009041301.tar.gz"; - # hash = "sha256-SMQuQOgoG6fJgXQ6hUxI5t7y1R6wkl6myW4lx0SX8g8="; - # }; - # meta = { - # description = "2-letter, 3-letter, and numerical codes for countries"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - - # IPCRun = buildPerlPackage { - # pname = "IPC-Run"; - # version = "20231003.0"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TODDR/IPC-Run-20231003.0.tar.gz"; - # hash = "sha256-6yW731kT0pF5fvG/6ZjxUTC0VdPtAqrN5oVvCyXk/lc="; - # }; - # doCheck = false; /* attempts a network connection to localhost */ - # propagatedBuildInputs = [ IOTty ]; - # buildInputs = [ Readonly ]; - # meta = { - # description = "System() and background procs w/ piping, redirs, ptys (Unix, Win32)"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IPCRun3 = buildPerlPackage { - # pname = "IPC-Run3"; - # version = "0.048"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/IPC-Run3-0.048.tar.gz"; - # hash = "sha256-PYHDzBtc/2nMqTYeLG443wNSJRrntB4v8/68hQ5GNWU="; - # }; - # meta = { - # description = "Run a subprocess with input/output redirection"; - # license = with lib.licenses; [ artistic1 gpl1Plus bsd3 ]; - # }; - # }; - - # IPCShareLite = buildPerlPackage { - # pname = "IPC-ShareLite"; - # version = "0.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AN/ANDYA/IPC-ShareLite-0.17.tar.gz"; - # hash = "sha256-FNQGuR2pbWUh0NGoLSKjBidHZSJrhrClbn/93Plq578="; - # }; - # meta = { - # description = "Lightweight interface to shared memory"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IPCSystemSimple = buildPerlPackage { - # pname = "IPC-System-Simple"; - # version = "1.30"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JK/JKEENAN/IPC-System-Simple-1.30.tar.gz"; - # hash = "sha256-Iub1IitQXuUTBY/co1q3oeq4BTm5jlykqSOnCorpup4="; - # }; - # meta = { - # description = "Run commands simply, with detailed diagnostics"; - # homepage = "http://thenceforward.net/perl/modules/IPC-System-Simple"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IPCSysV = buildPerlPackage { - # pname = "IPC-SysV"; - # version = "2.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MH/MHX/IPC-SysV-2.09.tar.gz"; - # hash = "sha256-GJdUHHTVSP0QB+tsB/NBnTx1ddgFamK1ulJwohZtLb0="; - # }; - # meta = { - # description = "System V IPC constants and system calls"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IRCUtils = buildPerlPackage { - # pname = "IRC-Utils"; - # version = "0.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HI/HINRIK/IRC-Utils-0.12.tar.gz"; - # hash = "sha256-x9YxHrbHnpg4M8nmtOjUJtB6mHTSD0vGQbMTuZybyKA="; - # }; - # meta = { - # description = "Common utilities for IRC-related tasks"; - # homepage = "https://metacpan.org/release/IRC-Utils"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ sgo ]; - # }; - # }; - - # ImageExifTool = callPackage ./perl-modules/ImageExifTool { }; - - # Inline = buildPerlPackage { - # pname = "Inline"; - # version = "0.86"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IN/INGY/Inline-0.86.tar.gz"; - # hash = "sha256-UQp94tARsNuAsIdOjA9zkAEJkQAK4TXP90dN8ebVHjo="; - # }; - # buildInputs = [ TestWarn ]; - # meta = { - # description = "Write Perl Subroutines in Other Programming Languages"; - # longDescription = '' - # The Inline module allows you to put source code from other - # programming languages directly "inline" in a Perl script or - # module. The code is automatically compiled as needed, and then loaded - # for immediate access from Perl. - # ''; - # homepage = "https://github.com/ingydotnet/inline-pm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # InlineC = buildPerlPackage { - # pname = "Inline-C"; - # version = "0.82"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETJ/Inline-C-0.82.tar.gz"; - # hash = "sha256-EPvPHhWNHI134d2TTjeRZbEmpFwTZFrQvp3AfRUd0Mw="; - # }; - # buildInputs = [ FileCopyRecursive TestWarn YAMLLibYAML ]; - # propagatedBuildInputs = [ Inline ParseRecDescent Pegex ]; - # postPatch = '' - # # this test will fail with chroot builds - # rm -f t/08taint.t - # rm -f t/28autowrap.t - # ''; - # meta = { - # description = "C Language Support for Inline"; - # homepage = "https://github.com/ingydotnet/inline-c-pm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # InlineJava = buildPerlPackage { - # pname = "Inline-Java"; - # version = "0.67"; - - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETJ/Inline-Java-0.67.tar.gz"; - # hash = "sha256-9YVLMcvOFjwz4mJN0jFODA2X4JRDcbcYjlkBuj9vpMk="; - # }; - - # buildInputs = [ FileWhich ]; - # propagatedBuildInputs = [ Inline ]; - - # # TODO: upgrade https://github.com/NixOS/nixpkgs/pull/89731 - # makeMakerFlags = [ "J2SDK=${pkgs.jdk8}" ]; - - # # FIXME: Apparently tests want to access the network. - # doCheck = false; - - # meta = { - # description = "Write Perl classes in Java"; - # longDescription = '' - # The Inline::Java module allows you to put Java source code directly - # "inline" in a Perl script or module. A Java compiler is launched and - # the Java code is compiled. Then Perl asks the Java classes what - # public methods have been defined. These classes and methods are - # available to the Perl program as if they had been written in Perl. - # ''; - # license = with lib.licenses; [ artistic2 ]; - # broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.InlineJava.x86_64-darwin - # }; - # }; - - # IPCSignal = buildPerlPackage { - # pname = "IPC-Signal"; - # version = "1.00"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RO/ROSCH/IPC-Signal-1.00.tar.gz"; - # hash = "sha256-fCH5yMLQwPDw9G533nw9h53VYmaN3wUlh1w4zvIHb9A="; - # }; - # meta = { - # description = "Utility functions dealing with signals"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # JavaScriptMinifierXS = buildPerlPackage { - # pname = "JavaScript-Minifier-XS"; - # version = "0.15"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GT/GTERMARS/JavaScript-Minifier-XS-0.15.tar.gz"; - # hash = "sha256-XZsDT1jwtv9bZGR708WpzgWypw7e4zn7wxc67nR8wFA="; - # }; - # buildInputs = [ TestDiagINC ]; - # perlPreHook = lib.optionalString (stdenv.isi686 || stdenv.isDarwin) "export LD=$CC"; - # meta = { - # description = "XS based JavaScript minifier"; - # homepage = "https://metacpan.org/release/JavaScript-Minifier-XS"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # JavaScriptValueEscape = buildPerlModule { - # pname = "JavaScript-Value-Escape"; - # version = "0.07"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KA/KAZEBURO/JavaScript-Value-Escape-0.07.tar.gz"; - # hash = "sha256-msvaNwjt4R9r6uXxEvGIw6kCOk0myOzYmqgru2kxo9w="; - # }; - # meta = { - # description = "Avoid XSS with JavaScript value interpolation"; - # homepage = "https://github.com/kazeburo/JavaScript-Value-Escape"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # JSON = buildPerlPackage { - # pname = "JSON"; - # version = "4.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/JSON-4.10.tar.gz"; - # hash = "sha256-34tRQ9mn3pnEe1XxoXC9H2n3EZNcGGptwKtW3QV1jjU="; - # }; - # # Do not abort cross-compilation on failure to load native JSON module into host perl - # preConfigure = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' - # substituteInPlace Makefile.PL --replace "exit 0;" "" - # ''; - # buildInputs = [ TestPod ]; - # meta = { - # description = "JSON (JavaScript Object Notation) encoder/decoder"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # JSONAny = buildPerlPackage { - # pname = "JSON-Any"; - # version = "1.40"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/JSON-Any-1.40.tar.gz"; - # hash = "sha256-CDJWJVpICU/ZrBI54P6ooQojg6nNHvSxxyZO3htEAKs="; - # }; - # buildInputs = [ TestFatal TestNeeds TestWarnings TestWithoutModule ]; - # meta = { - # description = "(DEPRECATED) Wrapper Class for the various JSON classes"; - # homepage = "https://github.com/karenetheridge/JSON-Any"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # JSONCreate = buildPerlPackage { - # pname = "JSON-Create"; - # version = "0.35"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BK/BKB/JSON-Create-0.35.tar.gz"; - # hash = "sha256-X67+DYM7gTJWiGUwjzI5082qG4oezJtWJNzx774QaD4="; - # }; - # propagatedBuildInputs = [ JSONParse UnicodeUTF8 ]; - # meta = { - # description = "Create JSON"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # JSONMaybeXS = buildPerlPackage { - # pname = "JSON-MaybeXS"; - # version = "1.004005"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/JSON-MaybeXS-1.004005.tar.gz"; - # hash = "sha256-9ba8GfV55mtymfh0i4rD4XGTbcTn/LcqiiV6m9SCozE="; - # }; - # buildInputs = [ TestNeeds ]; - # meta = { - # description = "Use Cpanel::JSON::XS with a fallback to JSON::XS and JSON::PP"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # JSONPP = buildPerlPackage { - # pname = "JSON-PP"; - # version = "4.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/JSON-PP-4.16.tar.gz"; - # hash = "sha256-i8LxYrr8QmRcSJkFrXJUDw08KEs2DJYpkJUYPDDMl4k="; - # }; - # meta = { - # description = "JSON::XS compatible pure-Perl module"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "json_pp"; - # }; - # }; - - # JSONPPCompat5006 = buildPerlPackage { - # pname = "JSON-PP-Compat5006"; - # version = "1.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MAKAMAKA/JSON-PP-Compat5006-1.09.tar.gz"; - # hash = "sha256-GXAw31JjX5u+Ja8QdC7qW9dJcUcxGMETEfyry2LjcWo="; - # }; - # meta = { - # description = "Helper module in using JSON::PP in Perl 5.6"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # JSONParse = buildPerlPackage { - # pname = "JSON-Parse"; - # version = "0.62"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BK/BKB/JSON-Parse-0.62.tar.gz"; - # hash = "sha256-YnMYD5OSSXQB3dbYIHBvWqhsG+iIkd1qq02Qa1z/Ztk="; - # }; - # meta = { - # description = "Parse JSON"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "validjson"; - # }; - # }; - - # JSONValidator = buildPerlPackage { - # pname = "JSON-Validator"; - # version = "5.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/JSON-Validator-5.14.tar.gz"; - # hash = "sha256-YISl1AdeQhqTj/su6XuFBPqjXoZtD3tbWBETr17ijhs="; - # }; - # buildInputs = [ TestDeep ]; - # propagatedBuildInputs = [ Mojolicious YAMLLibYAML ]; - # meta = { - # description = "Validate data against a JSON schema"; - # homepage = "https://github.com/mojolicious/json-validator"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # JSONWebToken = buildPerlModule { - # pname = "JSON-WebToken"; - # version = "0.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/X/XA/XAICRON/JSON-WebToken-0.10.tar.gz"; - # hash = "sha256-d8GCqYUo8XFNgq/FSNWztNyT5nBpEou5uUE/JM8HJIs="; - # }; - # buildInputs = [ TestMockGuard TestRequires ]; - # propagatedBuildInputs = [ JSON ModuleRuntime ]; - # meta = { - # description = "JSON Web Token (JWT) implementation"; - # homepage = "https://github.com/xaicron/p5-JSON-WebToken"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # JSONXS = buildPerlPackage { - # pname = "JSON-XS"; - # version = "4.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/ML/MLEHMANN/JSON-XS-4.03.tar.gz"; - # hash = "sha256-UVU29F8voafojIgkUzdY0BIdJnq5y0U6G1iHyKVrkGg="; - # }; - # propagatedBuildInputs = [ TypesSerialiser ]; - # buildInputs = [ CanaryStability ]; - # meta = { - # description = "JSON serialising/deserialising, done correctly and fast"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "json_xs"; - # }; - # }; - - # JSONXSVersionOneAndTwo = buildPerlPackage { - # pname = "JSON-XS-VersionOneAndTwo"; - # version = "0.31"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LB/LBROCARD/JSON-XS-VersionOneAndTwo-0.31.tar.gz"; - # hash = "sha256-5gksTZYfrnd6z3/pn7PNbltxD+yFdlprkEF0gOTJSjQ="; - # }; - # propagatedBuildInputs = [ JSONXS ]; - # meta = { - # description = "Support versions 1 and 2 of JSON::XS"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Later = buildPerlPackage { - # version = "0.21"; - # pname = "Object-Realize-Later"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MARKOV/Object-Realize-Later-0.21.tar.gz"; - # hash = "sha256-j3uWQMyONOqSvPbAEEmgPBReDrRuViJ14o3d06jW2Nk="; - # }; - # meta = { - # description = "Delayed creation of objects"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LatexIndent = buildPerlPackage rec { - # pname = "latexindent.pl"; - # version = "3.21"; - - # src = fetchFromGitHub { - # owner = "cmhughes"; - # repo = pname; - # rev = "V${version}"; - # hash = "sha256-STXHOzsshyN7rc2VtJxxt6La4UPGpRYlMO8TX1Jd7pM="; - # }; - - # outputs = [ "out" ]; - - # propagatedBuildInputs = [ FileHomeDir YAMLTiny ]; - - # preBuild = '' - # patchShebangs ./latexindent.pl - # ''; - - # meta = { - # description = "Perl script to add indentation to LaTeX files"; - # homepage = "https://github.com/cmhughes/latexindent.pl"; - # license = lib.licenses.gpl3Plus; - # }; - # }; - - # LaTeXML = buildPerlPackage rec { - # pname = "LaTeXML"; - # version = "0.8.8"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BR/BRMILLER/${pname}-${version}.tar.gz"; - # hash = "sha256-fSu+LOJSuvhro/OIzQ3sOqSDj0nWErnsfMT/iBBbrcw="; - # }; - # outputs = [ "out" "tex" ]; - # propagatedBuildInputs = [ ArchiveZip DBFile FileWhich IOString ImageMagick ImageSize JSONXS LWP ParseRecDescent PodParser TextUnidecode XMLLibXSLT ]; - # nativeBuildInputs = [ pkgs.makeWrapper ] ++ lib.optional stdenv.isDarwin shortenPerlShebang; - # makeMakerFlags = [ "TEXMF=\${tex}" "NOMKTEXLSR" ]; - # # shebangs need to be patched before executables are copied to $out - # preBuild = '' - # patchShebangs bin/ - # '' + lib.optionalString stdenv.isDarwin '' - # for file in bin/*; do - # shortenPerlShebang "$file" - # done - # ''; - # postInstall = '' - # for file in latexmlc latexmlmath latexmlpost ; do - # # add runtime dependencies that cause silent failures when missing - # wrapProgram $out/bin/$file --prefix PATH : ${lib.makeBinPath [ pkgs.ghostscript pkgs.potrace ]} - # done - # ''; - # passthru = { - # tlType = "run"; - # pkgs = [ LaTeXML.tex ]; - # }; - # meta = { - # description = "Transforms TeX and LaTeX into XML/HTML/MathML"; - # homepage = "https://dlmf.nist.gov/LaTeXML/"; - # license = with lib.licenses; [ publicDomain ]; - # maintainers = with maintainers; [ xworld21 ]; - # mainProgram = "latexmlc"; - # }; - # }; - - # LEOCHARRECLI = buildPerlPackage { - # pname = "LEOCHARRE-CLI"; - # version = "1.19"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LE/LEOCHARRE/LEOCHARRE-CLI-1.19.tar.gz"; - # hash = "sha256-N4NfEe41MmJBtNMDaK4bwZWlBBSzZi2z4TuGW9Uvzek="; - # }; - # propagatedBuildInputs = [ FileWhich Filechmod LEOCHARREDebug Linuxusermod YAML ]; - # meta = { - # description = "Useful subs for coding cli scripts"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LEOCHARREDebug = buildPerlPackage { - # pname = "LEOCHARRE-Debug"; - # version = "1.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LE/LEOCHARRE/LEOCHARRE-Debug-1.03.tar.gz"; - # hash = "sha256-wWZao6vUV8yGJLjEGMb4vfWPs6aG+O7VFc9+k1FN8ZI="; - # }; - # meta = { - # description = "Debug sub"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LexicalSealRequireHints = buildPerlModule { - # pname = "Lexical-SealRequireHints"; - # version = "0.012"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Lexical-SealRequireHints-0.012.tar.gz"; - # hash = "sha256-wyvcOOBvjWyQdlu74xaMNYJH2n2uhbgLqEotoXY3V90="; - # }; - # meta = { - # description = "Prevent leakage of lexical hints"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # libapreq2 = buildPerlPackage rec { - # pname = "libapreq2"; - # version = "2.17"; - # src = fetchurl { - # url = "mirror://apache/httpd/libapreq/${pname}-${version}.tar.gz"; - # hash = "sha256-BGSH8ITBL6HIIq/8X33lbv7ZtIkFpCbmMaa5ScEU2Gw="; - # }; - # outputs = [ "out" ]; - # buildInputs = [ pkgs.apacheHttpd pkgs.apr pkgs.aprutil ApacheTest ExtUtilsXSBuilder ]; - # propagatedBuildInputs = [ (pkgs.apacheHttpdPackages.mod_perl.override { inherit perl; }) ]; - # makeMakerFlags = [ - # "--with-apache2-src=${pkgs.apacheHttpd.dev}" - # "--with-apache2-apxs=${pkgs.apacheHttpd.dev}/bin/apxs" - # "--with-apache2-httpd=${pkgs.apacheHttpd.out}/bin/httpd" - # "--with-apr-config=${pkgs.apr.dev}/bin/apr-1-config" - # "--with-apu-config=${pkgs.aprutil.dev}/bin/apu-1-config" - # ]; - # preConfigure = '' - # # override broken prereq check - # substituteInPlace configure --replace "prereq_check=\"\$PERL \$PERL_OPTS build/version_check.pl\"" "prereq_check=\"echo\"" - # ''; - # preBuild = '' - # substituteInPlace apreq2-config --replace "dirname" "${pkgs.coreutils}/bin/dirname" - # ''; - # installPhase = '' - # mkdir $out - - # # install the library - # make install DESTDIR=$out - # cp -r $out/${pkgs.apacheHttpd.dev}/. $out/. - # cp -r $out/$out/. $out/. - - # # install the perl module - # pushd glue/perl - # perl Makefile.PL - # make install DESTDIR=$out - # cp -r $out/${perl}/lib/perl5 $out/lib/ - # popd - - # # install the apache module - # # https://computergod.typepad.com/home/2007/06/webgui_and_suse.html - # # NOTE: if using the apache module you must use "apreq" as the module name, not "apreq2" - # # services.httpd.extraModules = [ { name = "apreq"; path = "''${pkgs.perlPackages.libapreq2}/modules/mod_apreq2.so"; } ]; - # pushd module - # make install DESTDIR=$out - # cp -r $out/${pkgs.apacheHttpd.out}/modules $out/ - # popd - - # rm -r $out/nix - # ''; - # doCheck = false; # test would need to start apache httpd - # meta = { - # description = "Wrapper for libapreq2's module/handle API"; - # license = with lib.licenses; [ asl20 ]; - # }; - # }; - - # libintl-perl = buildPerlPackage { - # pname = "libintl-perl"; - # version = "1.33"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GU/GUIDO/libintl-perl-1.33.tar.gz"; - # hash = "sha256-USbtqczQ7rENuC3e9jy8r329dx54zA+xEMw7WmuGeec="; - # }; - # meta = { - # description = "Portable l10n and i10n functions"; - # license = with lib.licenses; [ gpl3Only ]; - # }; - # }; - - libnet = buildPerlPackage { - pname = "libnet"; - version = "3.15"; - src = fetchurl { - url = "mirror://cpan/authors/id/S/SH/SHAY/libnet-3.15.tar.gz"; - hash = "sha256-px9NtYDhp2fWk2+qW6848fpheCQ0LaB4tWEoPob49KI="; - }; - meta = { - description = "Collection of network protocol modules"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # librelative = buildPerlPackage { - # pname = "lib-relative"; - # version = "1.002"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DB/DBOOK/lib-relative-1.002.tar.gz"; - # hash = "sha256-5EcCFRZ8QGkXYD54vk2TESz2kTzTQq64ALQS4BHIp4s="; - # }; - # meta = { - # description = "Add paths relative to the current file to @INC"; - # homepage = "https://github.com/Grinnz/lib-relative"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # libwwwperl = buildPerlPackage { - # pname = "libwww-perl"; - # version = "6.72"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/O/OA/OALDERS/libwww-perl-6.72.tar.gz"; - # hash = "sha256-6bg1T9XiC+IHr+I93VhPzVm/gpmNwHfez2hLodrloF0="; - # }; - # buildInputs = [ HTTPDaemon TestFatal TestNeeds TestRequiresInternet ]; - # propagatedBuildInputs = [ EncodeLocale FileListing HTMLParser HTTPCookieJar HTTPCookies HTTPDate HTTPMessage HTTPNegotiate LWPMediaTypes NetHTTP TryTiny URI WWWRobotRules ]; - # meta = { - # homepage = "https://github.com/libwww-perl/libwww-perl"; - # description = "The World-Wide Web library for Perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # libxml_perl = buildPerlPackage { - # pname = "libxml-perl"; - # version = "0.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KM/KMACLEOD/libxml-perl-0.08.tar.gz"; - # hash = "sha256-RXEFm3tdSLfOUrATieldeYv1zyAgUjwVP/J7SYFTycs="; - # }; - # propagatedBuildInputs = [ XMLParser ]; - # meta = { - # description = "Collection of Perl modules for working with XML"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LinguaENFindNumber = buildPerlPackage { - # pname = "Lingua-EN-FindNumber"; - # version = "1.32"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-EN-FindNumber-1.32.tar.gz"; - # hash = "sha256-HRdtHIY/uYRL0Z0sKk5ooO1z2hWPckqJQFuQ236NvQQ="; - # }; - # propagatedBuildInputs = [ LinguaENWords2Nums ]; - # meta = { - # description = "Locate (written) numbers in English text "; - # homepage = "https://github.com/neilb/Lingua-EN-FindNumber"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LinguaENInflect = buildPerlPackage { - # pname = "Lingua-EN-Inflect"; - # version = "1.905"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DC/DCONWAY/Lingua-EN-Inflect-1.905.tar.gz"; - # hash = "sha256-BcKew0guVyMTpg2iGBsLMMXbfPAfiudhatZ+G2YmMpY="; - # }; - # meta = { - # description = "Convert singular to plural. Select 'a' or 'an'"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LinguaENInflectNumber = buildPerlPackage { - # pname = "Lingua-EN-Inflect-Number"; - # version = "1.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-EN-Inflect-Number-1.12.tar.gz"; - # hash = "sha256-Zvszg4USdG9cWX6AJk/qZmQ/fyZXDsL5IFthNa1nrL8="; - # }; - # propagatedBuildInputs = [ LinguaENInflect ]; - # meta = { - # description = "Force number of words to singular or plural"; - # homepage = "https://github.com/neilbowers/Lingua-EN-Inflect-Number"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LinguaENInflectPhrase = buildPerlPackage { - # pname = "Lingua-EN-Inflect-Phrase"; - # version = "0.20"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RK/RKITOVER/Lingua-EN-Inflect-Phrase-0.20.tar.gz"; - # hash = "sha256-VQWJEamfF1XePrRJqZ/765LYjAH/XcYFEaJGeQUN3qg="; - # }; - # buildInputs = [ TestNoWarnings ]; - # propagatedBuildInputs = [ LinguaENInflectNumber LinguaENNumberIsOrdinal LinguaENTagger ]; - # meta = { - # description = "Inflect short English Phrases"; - # homepage = "https://metacpan.org/release/Lingua-EN-Inflect-Phrase"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LinguaENNumberIsOrdinal = buildPerlPackage { - # pname = "Lingua-EN-Number-IsOrdinal"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RK/RKITOVER/Lingua-EN-Number-IsOrdinal-0.05.tar.gz"; - # hash = "sha256-KNVpVADA9OK9IJeTy3T22iuSVzVqrLKUfGA0JeCWGNY="; - # }; - # buildInputs = [ TestFatal TryTiny ]; - # propagatedBuildInputs = [ LinguaENFindNumber ]; - # meta = { - # description = "Detect if English number is ordinal or cardinal"; - # homepage = "https://metacpan.org/release/Lingua-EN-Number-IsOrdinal"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LinguaENTagger = buildPerlPackage { - # pname = "Lingua-EN-Tagger"; - # version = "0.31"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AC/ACOBURN/Lingua-EN-Tagger-0.31.tar.gz"; - # hash = "sha256-lJ6Mh+SAj3uglrl5Ig/wgbvgO21XiQ0u7NS4Ouhy6ZM="; - # }; - # propagatedBuildInputs = [ HTMLParser LinguaStem MemoizeExpireLRU ]; - # meta = { - # description = "Part-of-speech tagger for English natural language processing"; - # license = with lib.licenses; [ gpl3Only ]; - # }; - # }; - - # LinguaENWords2Nums = buildPerlPackage { - # pname = "Lingua-EN-Words2Nums"; - # version = "0.18"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JO/JOEY/Lingua-EN-Words2Nums-0.18.tar.gz"; - # hash = "sha256-aGVWeXzSpOqgZvGbvwOrJcBieCksnq0vGH39kDHqHYU="; - # }; - # meta = { - # description = "Convert English text to numbers"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LinguaPTStemmer = buildPerlPackage { - # pname = "Lingua-PT-Stemmer"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-PT-Stemmer-0.02.tar.gz"; - # hash = "sha256-WW3wH4q3n//9RQ6Ug2pUQ3HYpMk6FffojqLxt5xGhJ0="; - # }; - # meta = { - # description = "Portuguese language stemming"; - # homepage = "https://github.com/neilb/Lingua-PT-Stemmer"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LinguaStem = buildPerlModule { - # pname = "Lingua-Stem"; - # version = "2.31"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SN/SNOWHARE/Lingua-Stem-2.31.tar.gz"; - # hash = "sha256-qhqZMrZCflmCU+YajM0NBMxVn66dWNh3TCAncItjAmQ="; - # }; - # doCheck = false; - # propagatedBuildInputs = [ LinguaPTStemmer LinguaStemFr LinguaStemIt LinguaStemRu LinguaStemSnowballDa SnowballNorwegian SnowballSwedish TextGerman ]; - # meta = { - # description = "Stemming of words"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LinguaStemFr = buildPerlPackage { - # pname = "Lingua-Stem-Fr"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SD/SDP/Lingua-Stem-Fr-0.02.tar.gz"; - # hash = "sha256-nU9ks6iJihhTQyGFJtWsaKSh+ObEQY1rqV1i9fnV2W8="; - # }; - # meta = { - # description = "Perl French Stemming"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LinguaStemIt = buildPerlPackage { - # pname = "Lingua-Stem-It"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AC/ACALPINI/Lingua-Stem-It-0.02.tar.gz"; - # hash = "sha256-OOZz+3T+ARWILlrbJnTesIH6tyHXKO4qgRQWPVDIB4g="; - # }; - # meta = { - # description = "Porter's stemming algorithm for Italian"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LinguaStemRu = buildPerlPackage { - # pname = "Lingua-Stem-Ru"; - # version = "0.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-Stem-Ru-0.04.tar.gz"; - # hash = "sha256-EnDOt0dk/blYNwqAiDSvl26H9pqFRw+LxGJYeX6rUig="; - # }; - # meta = { - # description = "Porter's stemming algorithm for Russian (KOI8-R only)"; - # homepage = "https://github.com/neilb/Lingua-Stem-Ru"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LinguaStemSnowballDa = buildPerlPackage { - # pname = "Lingua-Stem-Snowball-Da"; - # version = "1.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CI/CINE/Lingua-Stem-Snowball-Da-1.01.tar.gz"; - # hash = "sha256-Ljm+TuAVx+xHwrBnhYAYp0BuONUSHWVcikaHSt+poFY="; - # }; - # meta = { - # description = "Porters stemming algorithm for Denmark"; - # license = with lib.licenses; [ gpl2Only ]; - # }; - # }; - - # LinguaTranslit = buildPerlPackage { - # pname = "Lingua-Translit"; - # version = "0.29"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AL/ALINKE/Lingua-Translit-0.29.tar.gz"; - # hash = "sha256-GtL6vAB52tcIt9nVVDfJ67GS5hC/lgryWUWFi5JZd1I="; - # }; - # doCheck = false; - # meta = { - # description = "Transliterates text between writing systems"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "translit"; - # }; - # }; - - # LinkEmbedder = buildPerlPackage { - # pname = "LinkEmbedder"; - # version = "1.20"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/LinkEmbedder-1.20.tar.gz"; - # hash = "sha256-sd6LTiXHIplEOeesA0vorjeiCUijG/SF8iu0hvzI3KU="; - # }; - # buildInputs = [ TestDeep ]; - # propagatedBuildInputs = [ Mojolicious ]; - # meta = { - # description = "Embed / expand oEmbed resources and other URL / links"; - # homepage = "https://github.com/jhthorsen/linkembedder"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = with maintainers; [ sgo ]; - # }; - # }; - - # LinuxACL = buildPerlPackage { - # pname = "Linux-ACL"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NA/NAZAROV/Linux-ACL-0.05.tar.gz"; - # hash = "sha256-MSlAwfYPR8T8k/oKnSpiZCX6qDcEDIwvGtWO4J9i83E="; - # }; - # buildInputs = [ pkgs.acl ]; - # NIX_CFLAGS_LINK = "-L${pkgs.acl.out}/lib -lacl"; - # meta = { - # description = "Perl extension for reading and setting Access Control Lists for files by libacl linux library"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = teams.deshaw.members; - # }; - # }; - - # LinuxDesktopFiles = buildPerlModule { - # pname = "Linux-DesktopFiles"; - # version = "0.25"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TR/TRIZEN/Linux-DesktopFiles-0.25.tar.gz"; - # hash = "sha256-YDd6dPupD6RlIA7hx0MNvd5p1FTYX57hAcA5gDoH5fU="; - # }; - # meta = { - # description = "Fast parsing of the Linux desktop files"; - # homepage = "https://github.com/trizen/Linux-DesktopFiles"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # LinuxDistribution = buildPerlModule { - # pname = "Linux-Distribution"; - # version = "0.23"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CH/CHORNY/Linux-Distribution-0.23.tar.gz"; - # hash = "sha256-YD4n2mB7PocqZp16ZtdZgvCWkVPqstSyDDQTR7Tr2l8="; - # }; - # # The tests fail if the distro it's built on isn't in the supported list. - # # This includes NixOS. - # doCheck = false; - # meta = { - # description = "Perl extension to detect on which Linux distribution we are running"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # platforms = lib.platforms.linux; - # }; - # }; - - # LinuxFD = buildPerlModule { - # pname = "Linux-FD"; - # version = "0.014"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LE/LEONT/Linux-FD-0.014.tar.gz"; - # hash = "sha256-eDHcJkxG2bh/dkNhdNdmFBRSQ2Mwg+CQqrTZo1LwQ60="; - # }; - # buildInputs = [ TestException ]; - # propagatedBuildInputs = [ SubExporter ]; - # perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local' - # meta = { - # description = "Linux specific special filehandles"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # platforms = lib.platforms.linux; - # }; - # }; - - # LinuxInotify2 = buildPerlPackage { - # pname = "Linux-Inotify2"; - # version = "2.3"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Linux-Inotify2-2.3.tar.gz"; - # hash = "sha256-y5kVD5/6UdvDvl7pjY6RyYzf6uIuuI5xjyzzZ78nDRc="; - # }; - # propagatedBuildInputs = [ commonsense ]; - - # meta = { - # description = "Scalable directory/file change notification for Perl on Linux"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # platforms = lib.platforms.linux; - # }; - # }; - - # Linuxusermod = buildPerlPackage { - # pname = "Linux-usermod"; - # version = "0.69"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/V/VI/VIDUL/Linux-usermod-0.69.tar.gz"; - # hash = "sha256-l8oYajxBa/ae1i2gRvGmDYjYm45u0lAIsvlueH3unWA="; - # }; - # meta = { - # description = "This module adds, removes and modify user and group accounts according to the passwd and shadow files syntax"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # platforms = lib.platforms.linux; - # }; - # }; - - # ListAllUtils = buildPerlPackage { - # pname = "List-AllUtils"; - # version = "0.19"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/List-AllUtils-0.19.tar.gz"; - # hash = "sha256-MKgUarIad4e4xW1YKc+afysVJ207P8oHM2rDjTAC/7w="; - # }; - # propagatedBuildInputs = [ ListSomeUtils ListUtilsBy ]; - # meta = { - # description = "Combines List::Util, List::SomeUtils and List::UtilsBy in one bite-sized package"; - # homepage = "https://metacpan.org/release/List-AllUtils"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # ListBinarySearch = buildPerlPackage { - # pname = "List-BinarySearch"; - # version = "0.25"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAVIDO/List-BinarySearch-0.25.tar.gz"; - # hash = "sha256-yBEwcb1gQANe6KsBzxtyqRBXQZLx0XkQKud1qXPy6Co="; - # }; - # meta = { - # description = "Binary Search within a sorted array"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ListCompare = buildPerlPackage { - # pname = "List-Compare"; - # version = "0.55"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JK/JKEENAN/List-Compare-0.55.tar.gz"; - # hash = "sha256-zHGUeYNledUrArwyjtgKmPZ53wQ6mbVxCrLBkWaeuDc="; - # }; - # buildInputs = [ CaptureTiny ]; - # meta = { - # description = "Compare elements of two or more lists"; - # homepage = "http://thenceforward.net/perl/modules/List-Compare"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ListMoreUtils = buildPerlPackage { - # pname = "List-MoreUtils"; - # version = "0.430"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RE/REHSACK/List-MoreUtils-0.430.tar.gz"; - # hash = "sha256-Y7H3hCzULZtTjR404DMN5f8VWeTCc3NCUGQYJ29kZSc="; - # }; - # propagatedBuildInputs = [ ExporterTiny ListMoreUtilsXS ]; - # buildInputs = [ TestLeakTrace ]; - # meta = { - # description = "Provide the stuff missing in List::Util"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ListMoreUtilsXS = buildPerlPackage { - # pname = "List-MoreUtils-XS"; - # version = "0.430"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RE/REHSACK/List-MoreUtils-XS-0.430.tar.gz"; - # hash = "sha256-6M5G1XwXnuzYdYKT6UAP8wCq8g/v4KnRW5/iMCucskI="; - # }; - # preConfigure = '' - # export LD=$CC - # ''; - # meta = { - # description = "Provide the stuff missing in List::Util in XS"; - # homepage = "https://metacpan.org/release/List-MoreUtils-XS"; - # license = with lib.licenses; [ asl20 ]; - # }; - # }; - - # ListSomeUtils = buildPerlPackage { - # pname = "List-SomeUtils"; - # version = "0.59"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/List-SomeUtils-0.59.tar.gz"; - # hash = "sha256-+rMDcuTGe/WkYGLaONHQyHVief6tqGbrQ5+ilXGi3Hs="; - # }; - # buildInputs = [ TestLeakTrace ]; - # propagatedBuildInputs = [ ModuleImplementation ]; - # meta = { - # description = "Provide the stuff missing in List::Util"; - # homepage = "https://metacpan.org/release/List-SomeUtils"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ListUtilsBy = buildPerlModule { - # pname = "List-UtilsBy"; - # version = "0.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/List-UtilsBy-0.12.tar.gz"; - # hash = "sha256-//EoH9Rp/pgrGlgES+z9lw8xO/86JuHHsrP0wKXtceA="; - # }; - # meta = { - # description = "Higher-order list utility functions"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LocaleCodes = buildPerlPackage { - # pname = "Locale-Codes"; - # version = "3.76"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SB/SBECK/Locale-Codes-3.76.tar.gz"; - # hash = "sha256-Qo00GFUJ7fbaYoYoAJcohrsCwySTRU/L4Y+Zmk9DXzk="; - # }; - # buildInputs = [ TestInter ]; - # meta = { - # description = "A distribution of modules to handle locale codes"; - # homepage = "https://github.com/SBECK-github/Locale-Codes"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - LocaleGettext = buildPerlPackage { - pname = "gettext"; - version = "1.07"; - strictDeps = true; - buildInputs = [ pkgs.gettext ]; - src = fetchurl { - url = "mirror://cpan/authors/id/P/PV/PVANDRY/gettext-1.07.tar.gz"; - hash = "sha256-kJ1HlUaX58BCGPlykVt4e9EkTXXjvQFiC8Fn1bvEnBU="; - }; - LANG="C"; - meta = { - description = "Perl extension for emulating gettext-related API"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # LocaleMaketextLexiconGetcontext = buildPerlPackage { - # pname = "Locale-Maketext-Lexicon-Getcontext"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SA/SAPER/Locale-Maketext-Lexicon-Getcontext-0.05.tar.gz"; - # hash = "sha256-dcsz35RypZYt5UCC9CxqdrJg/EBboQylMkb7H4LAkgg="; - # }; - # propagatedBuildInputs = [ LocaleMaketextLexicon ]; - # meta = { - # description = "PO file parser for Maketext"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # LocaleMOFile = buildPerlPackage { - # pname = "Locale-MO-File"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-MO-File-0.09.tar.gz"; - # hash = "sha256-lwNtw/Cds3BSrp2aUUSH6IS1bZDHbKEtbKtAXSNWSj8="; - # }; - # propagatedBuildInputs = [ ConstFast MooXStrictConstructor MooXTypesMooseLike ParamsValidate namespaceautoclean ]; - # buildInputs = [ TestDifferences TestException TestHexDifferences TestNoWarnings ]; - # meta = { - # description = "Write or read gettext MO files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LocaleMaketextFuzzy = buildPerlPackage { - # pname = "Locale-Maketext-Fuzzy"; - # version = "0.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AU/AUDREYT/Locale-Maketext-Fuzzy-0.11.tar.gz"; - # hash = "sha256-N4UXHOt4zHZxMZo6bYztmxkOCX382bKp68gEzRooL5Y="; - # }; - # meta = { - # description = "Maketext from already interpolated strings"; - # license = with lib.licenses; [ cc0 ]; - # }; - # }; - - # LocaleMaketextLexicon = buildPerlPackage { - # pname = "Locale-Maketext-Lexicon"; - # version = "1.00"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DRTECH/Locale-Maketext-Lexicon-1.00.tar.gz"; - # hash = "sha256-tz9rBKWNPw446/IRWkwVMvGk7vb6xcaipEnk4Uwd3Hw="; - # }; - # meta = { - # description = "Use other catalog formats in Maketext"; - # homepage = "https://search.cpan.org/dist/Locale-Maketext-Lexicon"; - # license = with lib.licenses; [ mit ]; - # mainProgram = "xgettext.pl"; - # }; - # }; - - # LocaleMsgfmt = buildPerlPackage { - # pname = "Locale-Msgfmt"; - # version = "0.15"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AZ/AZAWAWI/Locale-Msgfmt-0.15.tar.gz"; - # hash = "sha256-wydoMcvuz1i+AggbzBgL00jao12iGnc3t7A4pZ9kOrQ="; - # }; - # meta = { - # description = "Compile .po files to .mo files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LocalePO = buildPerlPackage { - # pname = "Locale-PO"; - # version = "0.27"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CO/COSIMO/Locale-PO-0.27.tar.gz"; - # hash = "sha256-PJlKS2Pm5Og2xveak/UZIcq3fJDJdT/g+LVCkiDVFrk="; - # }; - # propagatedBuildInputs = [ FileSlurp ]; - # meta = { - # description = "Perl module for manipulating .po entries from GNU gettext"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LocaleTextDomainOO = buildPerlPackage { - # pname = "Locale-TextDomain-OO"; - # version = "1.036"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-TextDomain-OO-1.036.tar.gz"; - # hash = "sha256-tReD4aiWICE+oqg+RbrsOqhunL4en6W590+HSbBUDjg="; - # }; - # propagatedBuildInputs = [ ClassLoad Clone JSON LocaleMOFile LocalePO LocaleTextDomainOOUtil LocaleUtilsPlaceholderBabelFish LocaleUtilsPlaceholderMaketext LocaleUtilsPlaceholderNamed MooXSingleton PathTiny TieSub ]; - # buildInputs = [ TestDifferences TestException TestNoWarnings ]; - # meta = { - # description = "Locale::TextDomain::OO - Perl OO Interface to Uniforum Message Translation"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LocaleTextDomainOOUtil = buildPerlPackage { - # pname = "Locale-TextDomain-OO-Util"; - # version = "4.002"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-TextDomain-OO-Util-4.002.tar.gz"; - # hash = "sha256-PF+gf2Xtd8Ap4g0kahBAQRSPGptH4332PzflHQK9RqA="; - # }; - # propagatedBuildInputs = [ namespaceautoclean ]; - # buildInputs = [ TestDifferences TestException TestNoWarnings ]; - # meta = { - # description = "Locale::TextDomain::OO::Util - Lexicon utils"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LocaleUtilsPlaceholderBabelFish = buildPerlPackage { - # pname = "Locale-Utils-PlaceholderBabelFish"; - # version = "0.006"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-Utils-PlaceholderBabelFish-0.006.tar.gz"; - # hash = "sha256-LhwAU5ljqeyr0se5te+QpWBna7A0giUXYin8jqS0pMw="; - # }; - # propagatedBuildInputs = [ HTMLParser MooXStrictConstructor MooXTypesMooseLike namespaceautoclean ]; - # buildInputs = [ TestDifferences TestException TestNoWarnings ]; - # meta = { - # description = "Locale::Utils::PlaceholderBabelFish - Utils to expand BabelFish palaceholders"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LocaleUtilsPlaceholderMaketext = buildPerlPackage { - # pname = "Locale-Utils-PlaceholderMaketext"; - # version = "1.005"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-Utils-PlaceholderMaketext-1.005.tar.gz"; - # hash = "sha256-UChgS9jzPY0yymkp+9DagP9L30KN6ARfs/Bbp9FdNOs="; - # }; - # propagatedBuildInputs = [ MooXStrictConstructor MooXTypesMooseLike namespaceautoclean ]; - # buildInputs = [ TestDifferences TestException TestNoWarnings ]; - # meta = { - # description = "Locale::Utils::PlaceholderMaketext - Utils to expand maketext placeholders"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LocaleUtilsPlaceholderNamed = buildPerlPackage { - # pname = "Locale-Utils-PlaceholderNamed"; - # version = "1.004"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-Utils-PlaceholderNamed-1.004.tar.gz"; - # hash = "sha256-b9eOojm1w1m6lCJ1N2b2OO5PkM0hdRpZs4YVXipFpr0="; - # }; - # propagatedBuildInputs = [ MooXStrictConstructor MooXTypesMooseLike namespaceautoclean ]; - # buildInputs = [ TestDifferences TestException TestNoWarnings ]; - # meta = { - # description = "Locale::Utils::PlaceholderNamed - Utils to expand named placeholders"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # locallib = buildPerlPackage { - # pname = "local-lib"; - # version = "2.000029"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HAARG/local-lib-2.000029.tar.gz"; - # hash = "sha256-jfh6EMFMjpCcW0fFcB5LgYfVGeUlHofIBwmwK7M+/dc="; - # }; - # propagatedBuildInputs = [ ModuleBuild ]; - # meta = { - # description = "Create and use a local lib/ for perl modules with PERL5LIB"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LockFileSimple = buildPerlPackage { - # pname = "LockFile-Simple"; - # version = "0.208"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SC/SCHWIGON/lockfile-simple/LockFile-Simple-0.208.tar.gz"; - # hash = "sha256-Rcd4lrKloKRfYgKm+BP0N/+LKD+EocYNDE83MIAq86I="; - # }; - # meta = { - # description = "Simple file locking scheme"; - # license = with lib.licenses; [ artistic1 gpl2Plus ]; - # }; - # }; - - # LogAny = buildPerlPackage { - # pname = "Log-Any"; - # version = "1.717"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PR/PREACTION/Log-Any-1.717.tar.gz"; - # hash = "sha256-VmSdoPOQAjDJ49KSUssKdIBvst3r0igFrNc2iVmmW8o="; - # }; - # # Syslog test fails. - # preCheck = "rm t/syslog.t"; - # meta = { - # description = "Bringing loggers and listeners together"; - # homepage = "https://github.com/preaction/Log-Any"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LogAnyAdapterLog4perl = buildPerlPackage { - # pname = "Log-Any-Adapter-Log4perl"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PR/PREACTION/Log-Any-Adapter-Log4perl-0.09.tar.gz"; - # hash = "sha256-EZfT5BIhS+IIgAz3v1BXsf6hVCRTmip5J8/kb3FuwaU="; - # }; - # propagatedBuildInputs = [ LogAny LogLog4perl ]; - # meta = { - # description = "Log::Any adapter for Log::Log4perl"; - # homepage = "https://github.com/preaction/Log-Any-Adapter-Log4perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LogAnyAdapterTAP = buildPerlPackage { - # pname = "Log-Any-Adapter-TAP"; - # version = "0.003003"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NERDVANA/Log-Any-Adapter-TAP-0.003003.tar.gz"; - # hash = "sha256-Ex8GibK0KxsxRJcUxu2o+BHdlqfIZ0jx4DsjnP0BIcA="; - # }; - # propagatedBuildInputs = [ LogAny TryTiny ]; - # meta = { - # description = "Logger suitable for use with TAP test files"; - # homepage = "https://github.com/silverdirk/perl-Log-Any-Adapter-TAP"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LogContextual = buildPerlPackage { - # pname = "Log-Contextual"; - # version = "0.008001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FR/FREW/Log-Contextual-0.008001.tar.gz"; - # hash = "sha256-uTy8+7h5bVHINuOwAkPNpWMICMFSwU7uXyDKCclFGZM="; - # }; - # buildInputs = [ TestFatal ]; - # propagatedBuildInputs = [ DataDumperConcise ExporterDeclare Moo ]; - # meta = { - # description = "Simple logging interface with a contextual log"; - # homepage = "https://github.com/frioux/Log-Contextual"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LogDispatch = buildPerlPackage { - # pname = "Log-Dispatch"; - # version = "2.71"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/Log-Dispatch-2.71.tar.gz"; - # hash = "sha256-nWDZZIw1zidUcx603rfwWAns4b1jO3TXR5Wu2exzJXA="; - # }; - # propagatedBuildInputs = [ DevelGlobalDestruction ParamsValidationCompiler Specio namespaceautoclean ]; - # buildInputs = [ IPCRun3 TestFatal TestNeeds ]; - # meta = { - # description = "Dispatches messages to one or more outputs"; - # homepage = "https://metacpan.org/release/Log-Dispatch"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # LogDispatchFileRotate = buildPerlPackage { - # pname = "Log-Dispatch-FileRotate"; - # version = "1.38"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MS/MSCHOUT/Log-Dispatch-FileRotate-1.38.tar.gz"; - # hash = "sha256-tV1s7ePwoGQmSI+/pVT0VhMgsBTBAjiTztKVCOW85Ow="; - # }; - # propagatedBuildInputs = [ DateManip LogDispatch ]; - # buildInputs = [ PathTiny TestWarn ]; - # meta = { - # description = "Log to Files that Archive/Rotate Themselves"; - # homepage = "https://github.com/mschout/perl-log-dispatch-filerotate"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LogfileRotate = buildPerlPackage { - # pname = "Logfile-Rotate"; - # version = "1.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PA/PAULG/Logfile-Rotate-1.04.tar.gz"; - # hash = "sha256-gQ+LfM2GV9Ox71PNR1glR4Rc67WCArBVObNAhjjK2j4="; - # }; - # meta = { - # description = "Perl module to rotate logfiles"; - # homepage = "https://metacpan.org/dist/Logfile-Rotate"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ tomasajt ]; - # }; - # }; - - # Logger = buildPerlPackage { - # pname = "Log-ger"; - # version = "0.040"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PERLANCAR/Log-ger-0.040.tar.gz"; - # hash = "sha256-6JEdM4ePoWmeQ+jQpU7V1WEEA4Z/9cM5+TQQPRfsZLA="; - # }; - # meta = { - # description = "A lightweight, flexible logging framework"; - # homepage = "https://metacpan.org/release/Log-ger"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # LogHandler = buildPerlModule { - # pname = "Log-Handler"; - # version = "0.90"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BL/BLOONIX/Log-Handler-0.90.tar.gz"; - # hash = "sha256-OlyA5xKEVHcPg6yrjL0+cOXsPVmmHcMnkqF48LMb900="; - # }; - # propagatedBuildInputs = [ ParamsValidate ]; - # meta = { - # description = "Log messages to several outputs"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LogMessage = buildPerlPackage { - # pname = "Log-Message"; - # version = "0.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BI/BINGOS/Log-Message-0.08.tar.gz"; - # hash = "sha256-vWl91iqvJtEY6fCggTQp3rHFRORQFVmHm2H8vf6Z/kY="; - # }; - # meta = { - # description = "Powerful and flexible message logging mechanism"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LogMessageSimple = buildPerlPackage { - # pname = "Log-Message-Simple"; - # version = "0.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BI/BINGOS/Log-Message-Simple-0.10.tar.gz"; - # hash = "sha256-qhLRpMCsJguU1Ej6Af66JCqKhctsv9xmQy47W0aK3ZY="; - # }; - # propagatedBuildInputs = [ LogMessage ]; - # meta = { - # description = "Simplified interface to Log::Message"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LogTrace = buildPerlPackage { - # pname = "Log-Trace"; - # version = "1.070"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BB/BBC/Log-Trace-1.070.tar.gz"; - # hash = "sha256-nsuCWO8wwvJN7/SRckDQ/nMkLaWyGSQC95gVsJLtNuM="; - # }; - # meta = { - # description = "Provides a unified approach to tracing"; - # license = with lib.licenses; [ gpl1Only ]; - # }; - # }; - - # MCE = buildPerlPackage { - # pname = "MCE"; - # version = "1.889"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MARIOROY/MCE-1.889.tar.gz"; - # hash = "sha256-22FT5HTQRvwlMFC/U8VAAthM1Mp30hwrnfVv7rgJu+0="; - # }; - # meta = { - # description = "Many-Core Engine for Perl providing parallel processing capabilities"; - # homepage = "https://github.com/marioroy/mce-perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LogLog4perl = buildPerlPackage { - # pname = "Log-Log4perl"; - # version = "1.57"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETJ/Log-Log4perl-1.57.tar.gz"; - # hash = "sha256-D4/Ldjio89tMeX35T9vFYBN0kULy+Uy8lbQ8n8oJahM="; - # }; - # meta = { - # description = "Log4j implementation for Perl"; - # homepage = "https://mschilli.github.io/log4perl/"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "l4p-tmpl"; - # }; - # }; - - # LogDispatchArray = buildPerlPackage { - # pname = "Log-Dispatch-Array"; - # version = "1.005"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Log-Dispatch-Array-1.005.tar.gz"; - # hash = "sha256-MRZAt6ln+N18m7QaInBzVlY21w30/MHUT+2KgiOzR8o="; - # }; - # buildInputs = [ TestDeep ]; - # propagatedBuildInputs = [ LogDispatch ]; - # meta = { - # description = "Log events to an array (reference)"; - # homepage = "https://github.com/rjbs/Log-Dispatch-Array"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LogDispatchouli = buildPerlPackage { - # pname = "Log-Dispatchouli"; - # version = "3.007"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Log-Dispatchouli-3.007.tar.gz"; - # hash = "sha256-mIEYlllSukmo+nkaZTaIDIkBf0651ywXRe1n0VwNJyw="; - # }; - # buildInputs = [ TestDeep TestFatal ]; - # propagatedBuildInputs = [ LogDispatchArray StringFlogger SubExporterGlobExporter ]; - # meta = { - # description = "A simple wrapper around Log::Dispatch"; - # homepage = "https://github.com/rjbs/Log-Dispatchouli"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LogJournald = buildPerlModule { - # pname = "Log-Journald"; - # version = "0.30"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LK/LKUNDRAK/Log-Journald-0.30.tar.gz"; - # hash = "sha256-VZks+aHh+4M/QoMAUlv6fPftRrg+xBT4KgkXibN9CKM="; - # }; - # nativeBuildInputs = [ pkgs.pkg-config ]; - # buildInputs = [ pkgs.systemd ]; - # postPatch = '' - # substituteInPlace Build.PL \ - # --replace "libsystemd-journal" "libsystemd" - # ''; - # meta = { - # description = "Send messages to a systemd journal"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LogLogLite = buildPerlPackage { - # pname = "Log-LogLite"; - # version = "0.82"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RA/RANI/Log-LogLite-0.82.tar.gz"; - # hash = "sha256-BQn7i8VDrJZ1pI6xplpjUoYIxsP99ioZ4XBzUA5RGms="; - # }; - # propagatedBuildInputs = [ IOLockedFile ]; - # meta = { - # description = "Helps us create simple logs for our application"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LongJump = buildPerlPackage { - # pname = "Long-Jump"; - # version = "0.000001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/EX/EXODIST/Long-Jump-0.000001.tar.gz"; - # hash = "sha256-1dZFbYaZK1Wdj2b8kJYPkZKSzTgDwTQD+qxXV2LHevQ="; - # }; - # buildInputs = [ Test2Suite ]; - # meta = { - # description = "Mechanism for returning to a specific point from a deeply nested stack"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - LWP = buildPerlPackage { - pname = "libwww-perl"; - version = "6.72"; - src = fetchurl { - 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 ]; - preCheck = '' - export NO_NETWORK_TESTING=1 - ''; - # support cross-compilation by avoiding using `has_module` which does not work in miniperl (it requires B native module) - postPatch = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' - substituteInPlace Makefile.PL --replace 'if has_module' 'if 0; #' - ''; - doCheck = !stdenv.isDarwin; - nativeCheckInputs = [ HTTPDaemon TestFatal TestNeeds TestRequiresInternet ]; - meta = { - description = "The World-Wide Web library for Perl"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # LWPAuthenOAuth = buildPerlPackage { - # pname = "LWP-Authen-OAuth"; - # version = "1.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TI/TIMBRODY/LWP-Authen-OAuth-1.02.tar.gz"; - # hash = "sha256-544L196AAs+0dgBzJY1VXvVbLCfAepSz2KIWahf9lrw="; - # }; - # propagatedBuildInputs = [ LWP ]; - # meta = { - # description = "Generate signed OAuth requests"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - LWPMediaTypes = buildPerlPackage { - pname = "LWP-MediaTypes"; - version = "6.04"; - src = fetchurl { - url = "mirror://cpan/authors/id/O/OA/OALDERS/LWP-MediaTypes-6.04.tar.gz"; - hash = "sha256-jxvKEtqxahwqfAOknF5YzOQab+yVGfCq37qNrZl5Gdk="; - }; - buildInputs = [ TestFatal ]; - 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 ]; - }; - }; - - # LWPProtocolConnect = buildPerlPackage { - # pname = "LWP-Protocol-connect"; - # version = "6.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BE/BENNING/LWP-Protocol-connect-6.09.tar.gz"; - # hash = "sha256-nyUjlHdeI6pCwxdmEeWTBjirUo1RkBELRzGqWwvzWhU="; - # }; - # buildInputs = [ TestException ]; - # propagatedBuildInputs = [ LWPProtocolHttps ]; - # meta = { - # description = "Provides HTTP/CONNECT proxy support for LWP::UserAgent"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LWPProtocolHttps = buildPerlPackage { - # pname = "LWP-Protocol-https"; - # version = "6.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/O/OA/OALDERS/LWP-Protocol-https-6.11.tar.gz"; - # hash = "sha256-ATLdvwNmFWXKhQUPKlCU+5Jjy7w8yxpNnEGsm7CDuRc="; - # }; - # patches = [ ./perl-modules/lwp-protocol-https-cert-file.patch ]; - # propagatedBuildInputs = [ IOSocketSSL LWP ]; - # preCheck = '' - # export NO_NETWORK_TESTING=1 - # ''; - # buildInputs = [ TestRequiresInternet TestNeeds ]; - # meta = { - # description = "Provide https support for LWP::UserAgent"; - # homepage = "https://github.com/libwww-perl/LWP-Protocol-https"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LWPProtocolhttp10 = buildPerlPackage { - # pname = "LWP-Protocol-http10"; - # version = "6.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GA/GAAS/LWP-Protocol-http10-6.03.tar.gz"; - # hash = "sha256-8/+pEfnVkYHxcXkQ6iZiCQXCmLdNww99TlE57jAguNM="; - # }; - # propagatedBuildInputs = [ LWP ]; - # meta = { - # description = "Legacy HTTP/1.0 support for LWP"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LWPUserAgentCached = buildPerlPackage { - # pname = "LWP-UserAgent-Cached"; - # version = "0.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/O/OL/OLEG/LWP-UserAgent-Cached-0.08.tar.gz"; - # hash = "sha256-Pc5atMeAQWVs54Vk92Az5b0ew4b1TS57MHQK5I7nh8M="; - # }; - # propagatedBuildInputs = [ LWP ]; - # meta = { - # description = "LWP::UserAgent with simple caching mechanism"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LWPUserAgentDNSHosts = buildPerlModule { - # pname = "LWP-UserAgent-DNS-Hosts"; - # version = "0.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MASAKI/LWP-UserAgent-DNS-Hosts-0.14.tar.gz"; - # hash = "sha256-mWl5RD8Ib/yLNmvbukSGWR2T+SF7wgSz5dZrlHIghx8="; - # }; - # propagatedBuildInputs = [ LWP ScopeGuard ]; - # buildInputs = [ ModuleBuildTiny TestFakeHTTPD TestSharedFork TestTCP TestUseAllModules ]; - # meta = { - # description = "Override LWP HTTP/HTTPS request's host like /etc/hosts"; - # homepage = "https://github.com/masaki/p5-LWP-UserAgent-DNS-Hosts"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LWPUserAgentDetermined = buildPerlPackage { - # pname = "LWP-UserAgent-Determined"; - # version = "1.07"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AL/ALEXMV/LWP-UserAgent-Determined-1.07.tar.gz"; - # hash = "sha256-BtjVDozTaSoRy0+0Si+E5UdqmPDi5qSg386fZ+Vd21M="; - # }; - # propagatedBuildInputs = [ LWP ]; - # meta = { - # description = "A virtual browser that retries errors"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LWPUserAgentMockable = buildPerlModule { - # pname = "LWP-UserAgent-Mockable"; - # version = "1.18"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MJ/MJEMMESON/LWP-UserAgent-Mockable-1.18.tar.gz"; - # hash = "sha256-JYZPUOOlIZ+J00oYQlmFSUWussXtSBjzbw8wIShUQyQ="; - # }; - # propagatedBuildInputs = [ HookLexWrap LWP SafeIsa ]; - # # Tests require network connectivity - # # https://rt.cpan.org/Public/Bug/Display.html?id=63966 is the bug upstream, - # # which doesn't look like it will get fixed anytime soon. - # doCheck = false; - # buildInputs = [ ModuleBuildTiny TestRequiresInternet ]; - # meta = { - # description = "Permits recording, and later playing back of LWP requests"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # LWPxParanoidAgent = buildPerlPackage { - # pname = "LWPx-ParanoidAgent"; - # version = "1.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SA/SAXJAZMAN/lwp/LWPx-ParanoidAgent-1.12.tar.gz"; - # hash = "sha256-zAQa7bdOGDzfkcvryhx71tdk/e5o+9yE8r4IveTg0D0="; - # }; - # doCheck = false; # 3 tests fail, probably because they try to connect to the network - # propagatedBuildInputs = [ LWP NetDNS ]; - # meta = { - # description = "Subclass of LWP::UserAgent that protects you from harm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # maatkit = callPackage ./perl-modules/maatkit { }; - - # MacPasteboard = buildPerlPackage { - # pname = "Mac-Pasteboard"; - # version = "0.103"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/W/WY/WYANT/Mac-Pasteboard-0.103.tar.gz"; - # hash = "sha256-L16N0tsNZEVVhITKbULYOcWpfuiqGyUOaU1n1bf2Y0w="; - # }; - # buildInputs = [ pkgs.darwin.apple_sdk.frameworks.ApplicationServices ]; - # meta = { - # description = "Manipulate Mac OS X pasteboards"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # platforms = lib.platforms.darwin; - # mainProgram = "pbtool"; - # }; - # }; - - # MacPropertyList = buildPerlPackage { - # pname = "Mac-PropertyList"; - # version = "1.504"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BD/BDFOY/Mac-PropertyList-1.504.tar.gz"; - # hash = "sha256-aIl96Yw2j76c22iF1H3qADxG7Ho3MmNSPvZkVwc7eq4="; - # }; - # propagatedBuildInputs = [ XMLEntities ]; - # meta = { - # description = "Work with Mac plists at a low level"; - # homepage = "https://github.com/briandfoy/mac-propertylist"; - # license = lib.licenses.artistic2; - # }; - # }; - - # MacSysProfile = buildPerlPackage { - # pname = "Mac-SysProfile"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DM/DMUEY/Mac-SysProfile-0.05.tar.gz"; - # hash = "sha256-QDOXa3dbOcwqaTtyoC1l71p7oDveTU2w3/RuEmx9n2w="; - # }; - # propagatedBuildInputs = [ MacPropertyList ]; - # meta = { - # description = "Perl extension for OS X system_profiler"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # platforms = lib.platforms.darwin; - # }; - # }; - - # MailAuthenticationResults = buildPerlPackage { - # pname = "Mail-AuthenticationResults"; - # version = "2.20230112"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-AuthenticationResults-2.20230112.tar.gz"; - # hash = "sha256-wtFEyuAiX4vJ0PX60cPxOdJ89TT85+rHB2T79m/SI0E="; - # }; - # buildInputs = [ TestException ]; - # propagatedBuildInputs = [ Clone JSON ]; - # meta = { - # description = "Object Oriented Authentication-Results Headers"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MailDMARC = buildPerlPackage { - # pname = "Mail-DMARC"; - # version = "1.20230215"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-DMARC-1.20230215.tar.gz"; - # hash = "sha256-V9z1R1nLkkSOVukUE0D2E0QnTFjZ3WWqkKqczw5+uQM="; - # }; - # buildInputs = [ ExtUtilsMakeMaker FileShareDirInstall ]; - # doCheck = false; # uses actual DNS at runtime - # checkInputs = [ XMLSAX XMLValidatorSchema TestException TestFileShareDir TestMore TestOutput ]; - # propagatedBuildInputs = [ - # ConfigTiny DBDSQLite DBIxSimple EmailMIME EmailSender Encode FileShareDir GetoptLong - # IOCompress IO IOSocketSSL NetDNS NetIDNEncode NetIP NetSSLeay RegexpCommon Socket6 - # SysSyslog URI XMLLibXML - # ]; - # meta = { - # description = "Perl implementation of DMARC"; - # homepage = "https://github.com/msimerson/mail-dmarc"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MailMaildir = buildPerlPackage { - # version = "1.0.0"; - # pname = "Mail-Maildir"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Z/ZE/ZEROALTI/Mail-Maildir-100/Mail-Maildir-1.0.0.tar.bz2"; - # hash = "sha256-RF6s2ixmN5ApbXGbypzHKYVUX6GgkBRhdnFgo6/DM88="; - # }; - # meta = { - # description = "Handle Maildir folders"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MailBox = buildPerlPackage { - # version = "3.010"; - # pname = "Mail-Box"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MARKOV/Mail-Box-3.010.tar.gz"; - # hash = "sha256-rhlPolDFRcm5FT4/tRA8qyn3nPKs1On9dc7FMiAalWQ="; - # }; - - # doCheck = false; - - # propagatedBuildInputs = [ DevelGlobalDestruction FileRemove Later MailTransport ]; - # meta = { - # description = "Manage a mailbox, a folder with messages"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MailMboxMessageParser = buildPerlPackage { - # pname = "Mail-Mbox-MessageParser"; - # version = "1.5111"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DC/DCOPPIT/Mail-Mbox-MessageParser-1.5111.tar.gz"; - # hash = "sha256-VyPAqpzBC6ue0eO/2dXJX3FZ5xwaR1QU6xrx3uOkYjc="; - # }; - # buildInputs = [ FileSlurper TestCompile TestPod TestPodCoverage TextDiff UNIVERSALrequire URI ]; - # propagatedBuildInputs = [ FileHandleUnget ]; - # meta = { - # description = "A fast and simple mbox folder reader"; - # homepage = "https://github.com/coppit/mail-mbox-messageparser"; - # license = with lib.licenses; [ gpl2Only ]; - # maintainers = with maintainers; [ romildo ]; - # }; - # }; - - # MailMessage = buildPerlPackage { - # pname = "Mail-Message"; - # version = "3.013"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MARKOV/Mail-Message-3.013.tar.gz"; - # hash = "sha256-yK1YiNsBWkUOti7Cqj6mbcLdwRtwpdtsjKGn+fgg6B8="; - # }; - # propagatedBuildInputs = [ IOStringy MIMETypes MailTools URI UserIdentity ]; - # meta = { - # description = "Processing MIME messages"; - # homepage = "http://perl.overmeer.net/CPAN"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MailDKIM = buildPerlPackage { - # pname = "Mail-DKIM"; - # version = "1.20230911"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-DKIM-1.20230911.tar.gz"; - # hash = "sha256-kecxcoK3JM+9LJtuZjDvFDKISLb8UgPv1w3sL7hyaMo="; - # }; - # propagatedBuildInputs = [ CryptOpenSSLRSA MailAuthenticationResults MailTools NetDNS ]; - # doCheck = false; # tries to access the domain name system - # buildInputs = [ NetDNSResolverMock TestRequiresInternet YAMLLibYAML ]; - # meta = { - # description = "Signs/verifies Internet mail with DKIM/DomainKey signatures"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MailIMAPClient = buildPerlPackage { - # pname = "Mail-IMAPClient"; - # version = "3.43"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLOBBES/Mail-IMAPClient-3.43.tar.gz"; - # hash = "sha256-CTyX+sFbR6j+TSk27y3zd6v3fMirdAktISi7lF0ftG8="; - # }; - # propagatedBuildInputs = [ ParseRecDescent ]; - # meta = { - # description = "An IMAP Client API"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MailPOP3Client = buildPerlPackage { - # pname = "Mail-POP3Client"; - # version = "2.21"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SD/SDOWD/Mail-POP3Client-2.21.tar.gz"; - # hash = "sha256-sW7yFJtuNXOHPx5ZDk1RNmxZlLi1MV3xaSXRe4niSQE="; - # }; - # meta = { - # description = "Perl 5 module to talk to a POP3 (RFC1939) server"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MailRFC822Address = buildPerlPackage { - # pname = "Mail-RFC822-Address"; - # version = "0.3"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PD/PDWARREN/Mail-RFC822-Address-0.3.tar.gz"; - # hash = "sha256-NR70EE7LZ17K5pAIJD+ugkPRp+U8aB7rdZ57eBaEyKc="; - # }; - # meta = { - # description = "Perl extension for validating email addresses according to RFC822"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # MailSender = buildPerlPackage { - # pname = "Mail-Sender"; - # version = "0.903"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CA/CAPOEIRAB/Mail-Sender-0.903.tar.gz"; - # hash = "sha256-RBPrSfUgqDGBUYEcywWo1UKXOq2iCqUDrTL5/8mKOb8="; - # }; - # meta = { - # description = "(DEPRECATED) module for sending mails with attachments through an SMTP server"; - # homepage = "https://github.com/Perl-Email-Project/Mail-Sender"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MailSendmail = buildPerlPackage { - # pname = "Mail-Sendmail"; - # version = "0.80"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/Mail-Sendmail-0.80.tar.gz"; - # hash = "sha256-W4qYy1zDnYBEGjiqsBCIXd+A5vzY5uAxQ5LLI+fCaOQ="; - # }; - # # The test suite simply loads the module and attempts to send an email to - # # the module's author, the latter of which is a) more of an integration - # # test, b) impossible to verify, and c) won't work from a sandbox. Replace - # # it in its entirety with the following simple smoke test. - # checkPhase = '' - # perl -I blib/lib -MMail::Sendmail -e 'print "1..1\nok 1\n"' - # ''; - # meta = { - # description = "Simple platform independent mailer"; - # homepage = "https://github.com/neilb/Mail-Sendmail"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = teams.deshaw.members; - # }; - # }; - - # MailSPF = buildPerlPackage { - # pname = "Mail-SPF"; - # version = "2.9.0"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JM/JMEHNLE/mail-spf/Mail-SPF-v2.9.0.tar.gz"; - # hash = "sha256-YctZFfHHrMepMf/Bv8EpG9+sVV4qRusjkbmV6p7LYWI="; - # }; - # # remove this patch patches = [ ./perl-modules/Mail-SPF.patch ]; - - # buildInputs = [ ModuleBuild NetDNSResolverProgrammable ]; - # propagatedBuildInputs = [ Error NetAddrIP NetDNS URI ]; - - # buildPhase = "perl Build.PL --install_base=$out --install_path=\"sbin=$out/bin\" --install_path=\"lib=$out/${perl.libPrefix}\"; ./Build build "; - - # doCheck = false; # The main test performs network access - # meta = { - # description = "An object-oriented implementation of Sender Policy Framework"; - # license = with lib.licenses; [ bsd3 ]; - # mainProgram = "spfquery"; - # }; - # }; - - - # MailTools = buildPerlPackage { - # pname = "MailTools"; - # version = "2.21"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MARKOV/MailTools-2.21.tar.gz"; - # hash = "sha256-Stm9aCa28DonJzMkZrG30piQyNmaMrSzsKjZJu4aRMs="; - # }; - # propagatedBuildInputs = [ TimeDate ]; - # meta = { - # description = "Various ancient e-mail related modules"; - # homepage = "http://perl.overmeer.net/CPAN"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MailTransport = buildPerlPackage { - # pname = "Mail-Transport"; - # version = "3.005"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MARKOV/Mail-Transport-3.005.tar.gz"; - # hash = "sha256-0Ny5P3BcEoXYCONN59htvijR7WaqKn3oMPZlH8NRlqM="; - # }; - # propagatedBuildInputs = [ MailMessage ]; - # meta = { - # description = "Email message exchange"; - # homepage = "http://perl.overmeer.net/CPAN"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MathBase85 = buildPerlPackage { - # pname = "Math-Base85"; - # version = "0.5"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PT/PTC/Math-Base85-0.5.tar.gz"; - # hash = "sha256-CwX3+2UKh5ezktjqkPLnK/uNCFBcmi4LlV39RacqNOU="; - # }; - # meta = { - # description = "Perl extension for base 85 numbers, as referenced by RFC 1924"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MathBaseConvert = buildPerlPackage { - # pname = "Math-Base-Convert"; - # version = "0.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIKER/Math-Base-Convert-0.11.tar.gz"; - # hash = "sha256-jAlxNV8kyTt553rVSkVwCQoaWY/Lm4b1wX66QvOLQOA="; - # }; - # meta = { - # description = "Very fast base to base conversion"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MathLibm = buildPerlPackage { - # pname = "Math-Libm"; - # version = "1.00"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DS/DSLEWART/Math-Libm-1.00.tar.gz"; - # hash = "sha256-v9MJ8oOsjLm/AK+MfDoQvyWr/WQoYcICLvr/CkpSwnY="; - # }; - # meta = { - # description = "Perl extension for the C math library, libm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MathCalcParser = buildPerlPackage { - # pname = "Math-Calc-Parser"; - # version = "1.005"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DB/DBOOK/Math-Calc-Parser-1.005.tar.gz"; - # hash = "sha256-r8PrSWqzo6MBs0N68H4ZfrdDwGCQ8BAdrPggMC8rf3U="; - # }; - # buildInputs = [ TestNeeds ]; - # meta = { - # description = "Parse and evaluate mathematical expressions"; - # homepage = "https://github.com/Grinnz/Math-Calc-Parser"; - # broken = true; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = with maintainers; [ sgo ]; - # }; - # }; - - # MathCalcUnits = buildPerlPackage { - # pname = "Math-Calc-Units"; - # version = "1.07"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SF/SFINK/Math-Calc-Units-1.07.tar.gz"; - # hash = "sha256-YePP2ye7O+4nvrlxJN2TB2DhA57cHreBbC9WJ3Zfj48="; - # }; - # meta = { - # description = "Human-readable unit-aware calculator"; - # license = with lib.licenses; [ artistic1 gpl2Only ]; - # mainProgram = "ucalc"; - # }; - # }; - - # MathBigInt = buildPerlPackage { - # pname = "Math-BigInt"; - # version = "1.999842"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PJ/PJACKLAM/Math-BigInt-1.999842.tar.gz"; - # hash = "sha256-VGAcUMaZPn7hPYw6wzRs8VpNgGMUnNu+husB5WEORnU="; - # }; - # meta = { - # description = "Arbitrary size integer/float math package"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MathBigIntGMP = buildPerlPackage { - # pname = "Math-BigInt-GMP"; - # version = "1.6013"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PJ/PJACKLAM/Math-BigInt-GMP-1.6013.tar.gz"; - # hash = "sha256-yxqS4CJn1AUV+OA6TiEvZv0wfJdMu9MT4j3jL98Q9rU="; - # }; - # buildInputs = [ pkgs.gmp ]; - # doCheck = false; - # env.NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include"; - # NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp"; - # propagatedBuildInputs = [ MathBigInt ]; - # meta = { - # description = "Backend library for Math::BigInt etc. based on GMP"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MathBigIntLite = buildPerlPackage { - # pname = "Math-BigInt-Lite"; - # version = "0.29"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PJ/PJACKLAM/Math-BigInt-Lite-0.29.tar.gz"; - # hash = "sha256-R4YN/KYxl4txxKqZkaGynk7LrzYbW7nrOVl1t//Nd/U="; - # }; - # propagatedBuildInputs = [ MathBigInt ]; - # meta = { - # description = "What Math::BigInts are before they become big"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MathClipper = buildPerlModule { - # pname = "Math-Clipper"; - # version = "1.29"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHELDRAKE/Math-Clipper-1.29.tar.gz"; - # hash = "sha256-UyfE8TOGbenXmzGGV/Zp7LSZhgVQs5aGmNRyiHr4dZM="; - # }; - # nativeBuildInputs = [ pkgs.ld-is-cc-hook ]; - # buildInputs = [ ExtUtilsCppGuess ExtUtilsTypemapsDefault ExtUtilsXSpp ModuleBuildWithXSpp TestDeep ]; - # meta = { - # description = "Polygon clipping in 2D"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MathConvexHullMonotoneChain = buildPerlPackage { - # pname = "Math-ConvexHull-MonotoneChain"; - # version = "0.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SM/SMUELLER/Math-ConvexHull-MonotoneChain-0.01.tar.gz"; - # hash = "sha256-KIvEWQgmMkVUj5FIKrEkiGjdne5Ef5yibK15YT47lPU="; - # }; - # meta = { - # description = "Andrew's monotone chain algorithm for finding a convex hull in 2D"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MathFibonacci = buildPerlPackage { - # pname = "Math-Fibonacci"; - # version = "1.5"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/V/VI/VIPUL/Math-Fibonacci-1.5.tar.gz"; - # hash = "sha256-cKgobpRVjfmdyS9S2D4eIKe494UrzDod59njOCYLmbo="; - # }; - # meta = { - # description = "This module provides a few functions related to Fibonacci numbers"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # MathGMP = buildPerlPackage { - # pname = "Math-GMP"; - # version = "2.25"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Math-GMP-2.25.tar.gz"; - # hash = "sha256-OCtx5Udi9jnppCqbBpNBUZh7pX0Ru3DTXjvsiNUEUM4="; - # }; - # buildInputs = [ pkgs.gmp AlienGMP ]; - # env.NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include"; - # NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp"; - # meta = { - # description = "High speed arbitrary size integer math"; - # license = with lib.licenses; [ lgpl21Plus ]; - # }; - # }; - - # MathGMPz = buildPerlPackage { - # pname = "Math-GMPz"; - # version = "0.59"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SI/SISYPHUS/Math-GMPz-0.59.tar.gz"; - # hash = "sha256-mmrN45G0Ff5f7HwUyCTVUf/j+W81rycYRWuJ3jpkEaQ="; - # }; - # buildInputs = [ TestWarn pkgs.gmp ]; - # NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp"; - # meta = { - # description = "Perl interface to the GMP integer functions"; - # homepage = "https://github.com/sisyphus/math-gmpz"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ sgo ]; - # }; - # }; - - # MathGeometryVoronoi = buildPerlPackage { - # pname = "Math-Geometry-Voronoi"; - # version = "1.3"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SA/SAMTREGAR/Math-Geometry-Voronoi-1.3.tar.gz"; - # hash = "sha256-cgdeTpiDzuUURrqVESZMjDKgFagPSlZIo/azgsU0QCw="; - # }; - # propagatedBuildInputs = [ ClassAccessor ParamsValidate ]; - # meta = { - # description = "Compute Voronoi diagrams from sets of points"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MathInt128 = buildPerlPackage { - # pname = "Math-Int128"; - # version = "0.22"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SA/SALVA/Math-Int128-0.22.tar.gz"; - # hash = "sha256-pjDKQBdThmlV8Rc4SKtbSsStXKatkIfxHN+R3ehRGbw="; - # }; - # propagatedBuildInputs = [ MathInt64 ]; - # meta = { - # description = "Manipulate 128 bits integers in Perl"; - # homepage = "https://metacpan.org/release/Math-Int128"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # broken = stdenv.is32bit; # compiler doesn't support a 128-bit integer type - # }; - # }; - - # MathInt64 = buildPerlPackage { - # pname = "Math-Int64"; - # version = "0.54"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SA/SALVA/Math-Int64-0.54.tar.gz"; - # hash = "sha256-3PxR5phDfqa5zv4CdiFcVs22p/hePiSitrQYnxlg01E="; - # }; - # meta = { - # description = "Manipulate 64 bits integers in Perl"; - # homepage = "https://metacpan.org/release/Math-Int64"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MathPari = buildPerlPackage rec { - # pname = "Math-Pari"; - # version = "2.030523"; - # nativeBuildInputs = [ pkgs.unzip ]; - # pariversion = "2.1.7"; - # pari_tgz = fetchurl { - # url = "https://pari.math.u-bordeaux.fr/pub/pari/OLD/2.1/pari-${pariversion}.tgz"; - # hash = "sha256-kULyza8wg8iWLxpcK7Dp/okV99lJDAMxKsI2HH6hVfo="; - # }; - # # Workaround build failure on -fno-common toolchains: - # # ld: libPARI/libPARI.a(compat.o):(.bss+0x8): multiple definition of - # # `overflow'; Pari.o:(.bss+0x80): first defined here - # env.NIX_CFLAGS_COMPILE = "-fcommon"; - # preConfigure = "cp ${pari_tgz} pari-${pariversion}.tgz"; - # makeMakerFlags = [ "pari_tgz=pari-${pariversion}.tgz" ]; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IL/ILYAZ/modules/Math-Pari-2.030518.zip"; - # hash = "sha256-3DiVWpaQvmuvqN4lJiEjd8Psn+jaXsAiY6nK+UtYu5E="; - # }; - # meta = { - # description = "Perl interface to PARI"; - # license = with lib.licenses; [ artistic1 gpl1Plus gpl2Only ]; - # }; - # }; - - # MathPlanePath = buildPerlPackage { - # pname = "Math-PlanePath"; - # version = "129"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KR/KRYDE/Math-PlanePath-129.tar.gz"; - # hash = "sha256-jaFdDk1Qd7bF0gN2WyiFv3KOUJ4y3pJkYFwIYhN+OX4="; - # }; - # propagatedBuildInputs = [ MathLibm constant-defer ]; - # buildInputs = [ DataFloat MathBigIntLite NumberFraction ]; - # meta = { - # description = "Points on a path through the 2-D plane"; - # license = with lib.licenses; [ gpl3Plus ]; - # }; - # }; - - # MathPrimeUtil = buildPerlPackage { - # pname = "Math-Prime-Util"; - # version = "0.73"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DANAJ/Math-Prime-Util-0.73.tar.gz"; - # hash = "sha256-Svpt2M25dJm9TsppJYYYEsKdn1oPGsJ62dLZybVgKJQ="; - # }; - # propagatedBuildInputs = [ MathPrimeUtilGMP ]; - # buildInputs = [ TestWarn ]; - # meta = { - # description = "Utilities related to prime numbers, including fast sieves and factoring"; - # homepage = "https://github.com/danaj/Math-Prime-Util"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # MathPrimeUtilGMP = buildPerlPackage { - # pname = "Math-Prime-Util-GMP"; - # version = "0.52"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DANAJ/Math-Prime-Util-GMP-0.52.tar.gz"; - # hash = "sha256-JpfH/Vx+Nf3sf1DtVqZ76Aei8iZXWJ5jfa01knRAA74="; - # }; - # buildInputs = [ pkgs.gmp ]; - # env.NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include"; - # NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp"; - # meta = { - # description = "Utilities related to prime numbers, using GMP"; - # homepage = "https://github.com/danaj/Math-Prime-Util-GMP"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # MathProvablePrime = buildPerlPackage { - # pname = "Math-ProvablePrime"; - # version = "0.51"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FE/FELIPE/Math-ProvablePrime-0.51.tar.gz"; - # hash = "sha256-D7YWRJ+weorR6KgJxwghthjlPcD/3ayWVnYY3jPEbBE="; - # }; - # buildInputs = [ FileWhich TestClass TestDeep TestException TestFailWarnings ]; - # propagatedBuildInputs = [ BytesRandomSecureTiny ]; - # meta = { - # description = "Generate a provable prime number, in pure Perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # MathRandom = buildPerlPackage { - # pname = "Math-Random"; - # version = "0.72"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GR/GROMMEL/Math-Random-0.72.tar.gz"; - # hash = "sha256-vgUiMogR2W3lBdnrrD0JY1kCb6jVw497uZmnjsW8JUw="; - # }; - # meta = { - # description = "Random Number Generators"; - # license = with lib.licenses; [ artistic1 gpl1Plus publicDomain ]; - # }; - # }; - - # MathRandomISAAC = buildPerlPackage { - # pname = "Math-Random-ISAAC"; - # version = "1.004"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JA/JAWNSY/Math-Random-ISAAC-1.004.tar.gz"; - # hash = "sha256-J3PwL78gfpdF52oDffCL9ajMmH7SPFcEDOf3sVYfK3w="; - # }; - # buildInputs = [ TestNoWarnings ]; - # meta = { - # description = "Perl interface to the ISAAC PRNG algorithm"; - # homepage = "https://search.cpan.org/dist/Math-Random-ISAAC"; - # license = with lib.licenses; [ publicDomain mit artistic2 gpl1Plus ]; - # }; - # }; - - # MathRandomMTAuto = buildPerlPackage { - # pname = "Math-Random-MT-Auto"; - # version = "6.23"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JD/JDHEDDEN/Math-Random-MT-Auto-6.23.tar.gz"; - # hash = "sha256-WLy1rTFilk/1oMTS3LqgICwshdnEcElvO3qZh1d3YxM="; - # }; - # propagatedBuildInputs = [ ObjectInsideOut ]; - # meta = { - # description = "Auto-seeded Mersenne Twister PRNGs"; - # license = with lib.licenses; [ bsd3 ]; - # }; - # }; - - # MathRandomSecure = buildPerlPackage { - # pname = "Math-Random-Secure"; - # version = "0.080001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FR/FREW/Math-Random-Secure-0.080001.tar.gz"; - # hash = "sha256-v6Sk6BfspyIGfB/z2hKrWrgNbFfapeXnq5NQyixx6zU="; - # }; - # buildInputs = [ ListMoreUtils TestSharedFork TestWarn ]; - # propagatedBuildInputs = [ CryptRandomSource MathRandomISAAC ]; - # meta = { - # description = "Cryptographically-secure, cross-platform replacement for rand()"; - # homepage = "https://github.com/frioux/Math-Random-Secure"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # MathRound = buildPerlPackage { - # pname = "Math-Round"; - # version = "0.07"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GR/GROMMEL/Math-Round-0.07.tar.gz"; - # hash = "sha256-c6cymoblSlwppEA4LlgDCVtY8zEp5hod8Ak7SCTekyc="; - # }; - # meta = { - # description = "Perl extension for rounding numbers"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MathVecStat = buildPerlPackage { - # pname = "Math-VecStat"; - # version = "0.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AS/ASPINELLI/Math-VecStat-0.08.tar.gz"; - # hash = "sha256-QJqODksQJcjoD2KPZal3iqd6soUWFAbKSmwJexNlbQ0="; - # }; - # meta = { - # description = "Some basic numeric stats on vectors"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MaxMindDBCommon = buildPerlPackage { - # pname = "MaxMind-DB-Common"; - # version = "0.040001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MAXMIND/MaxMind-DB-Common-0.040001.tar.gz"; - # hash = "sha256-a8bfS9NjANB6pKX4GYrmaUyn4xPAOBCciNvDqZeyG9c="; - # }; - # propagatedBuildInputs = [ DataDumperConcise DateTime ListAllUtils MooXStrictConstructor ]; - # meta = { - # description = "Code shared by the MaxMind DB reader and writer modules"; - # homepage = "https://metacpan.org/release/MaxMind-DB-Common"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # MaxMindDBReader = buildPerlPackage { - # pname = "MaxMind-DB-Reader"; - # version = "1.000014"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MAXMIND/MaxMind-DB-Reader-1.000014.tar.gz"; - # hash = "sha256-OCAHj5yWf5qIch6kDKBeSZnBxTAb68HRGQYPntXOOak="; - # }; - # propagatedBuildInputs = [ DataIEEE754 DataPrinter DataValidateIP MaxMindDBCommon ]; - # buildInputs = [ PathClass TestBits TestFatal TestNumberDelta TestRequires ]; - # meta = { - # description = "Read MaxMind DB files and look up IP addresses"; - # homepage = "https://metacpan.org/release/MaxMind-DB-Reader"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # MaxMindDBReaderXS = buildPerlModule { - # pname = "MaxMind-DB-Reader-XS"; - # version = "1.000009"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MAXMIND/MaxMind-DB-Reader-XS-1.000009.tar.gz"; - # hash = "sha256-qm+4f+0Z1UnymxNd55l+6SsSJ9Ymyw6JBgCpHK3DBTo="; - # }; - # propagatedBuildInputs = [ pkgs.libmaxminddb MathInt128 MaxMindDBReader ]; - # buildInputs = [ NetWorks PathClass TestFatal TestNumberDelta TestRequires ]; - # meta = { - # description = "Fast XS implementation of MaxMind DB reader"; - # homepage = "https://metacpan.org/release/MaxMind-DB-Reader-XS"; - # license = with lib.licenses; [ artistic2 ]; - # broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.MaxMindDBReaderXS.x86_64-darwin - # }; - # }; - - # MaxMindDBWriter = buildPerlModule { - # pname = "MaxMind-DB-Writer"; - # version = "0.300003"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MAXMIND/MaxMind-DB-Writer-0.300003.tar.gz"; - # hash = "sha256-ulP1upZfekd/ZxZNl7R1oMESCIcv7fI4mIVQ2SvN6z4="; - # }; - # propagatedBuildInputs = [ DigestSHA1 MaxMindDBReader MooseXParamsValidate MooseXStrictConstructor NetWorks SerealDecoder SerealEncoder ]; - # buildInputs = [ DevelRefcount JSON TestBits TestDeep TestFatal TestHexDifferences TestRequires TestWarnings ]; - # hardeningDisable = [ "format" ]; - # meta = { - # description = "Create MaxMind DB database files"; - # homepage = "https://metacpan.org/release/MaxMind-DB-Writer"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.MaxMindDBWriter.x86_64-darwin - # }; - # }; - - # Memoize = buildPerlPackage { - # pname = "Memoize"; - # version = "1.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/Memoize-1.16.tar.gz"; - # hash = "sha256-CRlSvPSS7O41ueW41ykgxYAjRB15IIwduHg3xcV4B74="; - # }; - # meta = { - # description = "Make functions faster by trading space for time"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MemoizeExpireLRU = buildPerlPackage { - # pname = "Memoize-ExpireLRU"; - # version = "0.56"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/Memoize-ExpireLRU-0.56.tar.gz"; - # hash = "sha256-7oNjAcu6uaJLBfxlft+pS3/YV42YNuVmoZHQpbAc1/Y="; - # }; - # meta = { - # description = "Expiry plug-in for Memoize that adds LRU cache expiration"; - # homepage = "https://github.com/neilb/Memoize-ExpireLRU"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Menlo = buildPerlPackage { - # pname = "Menlo"; - # version = "1.9019"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Menlo-1.9019.tar.gz"; - # hash = "sha256-O1c/aOezo2qHyGC+JYWZMw+sJItRiFTftWV6xIPcpWU="; - # }; - # propagatedBuildInputs = [ CPANCommonIndex CPANMetaCheck CaptureTiny ExtUtilsHelpers ExtUtilsInstallPaths Filepushd HTTPTinyish ModuleCPANfile ParsePMFile StringShellQuote Win32ShellQuote locallib ]; - # meta = { - # description = "A CPAN client"; - # homepage = "https://github.com/miyagawa/cpanminus"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MenloLegacy = buildPerlPackage { - # pname = "Menlo-Legacy"; - # version = "1.9022"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Menlo-Legacy-1.9022.tar.gz"; - # hash = "sha256-pqysP+4xioBLQ53lSsvHwn8LRM/a2FUbvJzUWYarwgE="; - # }; - # propagatedBuildInputs = [ Menlo ]; - # meta = { - # description = "Legacy internal and client support for Menlo"; - # homepage = "https://github.com/miyagawa/cpanminus"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MetaBuilder = buildPerlModule { - # pname = "Meta-Builder"; - # version = "0.004"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/EX/EXODIST/Meta-Builder-0.004.tar.gz"; - # hash = "sha256-rLSZqnIG652yHrhTV6dFIb/jva5KZBbVCnx1uTnPVv4="; - # }; - # buildInputs = [ FennecLite TestException ]; - # meta = { - # description = "Tools for creating Meta objects to track custom metrics"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MetaCPANClient = buildPerlPackage { - # pname = "MetaCPAN-Client"; - # version = "2.030000"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MICKEY/MetaCPAN-Client-2.030000.tar.gz"; - # hash = "sha256-2bdlxSN3VPFyYmljgqc4XZCy0BmGl5gXhisWZLBt068="; - # }; - - # # Most tests are online, so we only include offline tests - # postPatch = '' - # substituteInPlace Makefile.PL \ - # --replace '"t/*.t t/api/*.t"' \ - # '"t/00-report-prereqs.t t/api/_get.t t/api/_get_or_search.t t/api/_search.t t/entity.t t/request.t t/resultset.t"' - # ''; - - # buildInputs = [ LWPProtocolHttps TestFatal TestNeeds ]; - # propagatedBuildInputs = [ IOSocketSSL JSONMaybeXS Moo RefUtil SafeIsa TypeTiny URI ]; - # meta = { - # description = "A comprehensive, DWIM-featured client to the MetaCPAN API"; - # homepage = "https://github.com/metacpan/metacpan-client"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ sgo ]; - # }; - # }; - - # MethodSignaturesSimple = buildPerlPackage { - # pname = "Method-Signatures-Simple"; - # version = "1.07"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RH/RHESA/Method-Signatures-Simple-1.07.tar.gz"; - # hash = "sha256-yM19Rxl3zIh2BEGSq9mKga/d/yomu5oQu+NY76Nx2tw="; - # }; - # propagatedBuildInputs = [ DevelDeclare ]; - # meta = { - # description = "Basic method declarations with signatures, without source filters"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MetricsAny = buildPerlModule { - # pname = "Metrics-Any"; - # version = "0.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/Metrics-Any-0.10.tar.gz"; - # hash = "sha256-qQ6t+civJKUWu5obZwYfZBhT+QuP7p/8JNK7lyDouZs="; - # }; - # buildInputs = [ Test2Suite ]; - # meta = { - # description = "Abstract collection of monitoring metrics"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # # TODO: use CPAN version - # MHonArc = buildPerlPackage { - # pname = "MHonArc"; - # version = "2.6.24"; - - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LD/LDIDRY/MHonArc-2.6.24.tar.gz"; - # hash = "sha256-RX3HN07lnLdaBynlHO8vLFK0gYD3Odj9lW6hmIKBXzM="; - # }; - - # outputs = [ "out" "dev" ]; # no "devdoc" - - # installTargets = [ "install" ]; - - # meta = { - # homepage = "https://www.mhonarc.org/"; - # description = "A mail-to-HTML converter"; - # mainProgram = "mhonarc"; - # license = with lib.licenses; [ gpl2Only ]; - # }; - # }; - - # MIMECharset = buildPerlPackage { - # pname = "MIME-Charset"; - # version = "1.013.1"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEZUMI/MIME-Charset-1.013.1.tar.gz"; - # hash = "sha256-G7em4MDSUfI9bmC/hMmt78W3TuxYR1v+5NORB+YIcPA="; - # }; - # meta = { - # description = "Charset Information for MIME"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # mimeConstruct = buildPerlPackage { - # pname = "mime-construct"; - # version = "1.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RO/ROSCH/mime-construct-1.11.tar.gz"; - # hash = "sha256-TNe7YbUdQRktFJjBBRqmpMzXWusJtx0uxwanCEpKkwM="; - # }; - # outputs = [ "out" ]; - # buildInputs = [ ProcWaitStat ]; - # meta = { - # description = "Construct and optionally mail MIME messages"; - # license = with lib.licenses; [ gpl2Plus ]; - # }; - # }; - - # MIMEEncWords = buildPerlPackage { - # pname = "MIME-EncWords"; - # version = "1.014.3"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEZUMI/MIME-EncWords-1.014.3.tar.gz"; - # hash = "sha256-6a+1SGEdTn5sULfwa70rG7KAjjeoEN7vtTfGevVIUjg="; - # }; - # propagatedBuildInputs = [ MIMECharset ]; - # meta = { - # description = "Deal with RFC 2047 encoded words (improved)"; - # homepage = "https://metacpan.org/pod/MIME::EncWords"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # MIMELite = buildPerlPackage { - # pname = "MIME-Lite"; - # version = "3.033"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/MIME-Lite-3.033.tar.gz"; - # hash = "sha256-eKJ58dLiQlUcNH75ehP8Z1dmYCy4TCqAxWlAD082i6s="; - # }; - # propagatedBuildInputs = [ EmailDateFormat ]; - # meta = { - # description = "Low-calorie MIME generator (DEPRECATED)"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MIMELiteHTML = buildPerlPackage { - # pname = "MIME-Lite-HTML"; - # version = "1.24"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AL/ALIAN/MIME-Lite-HTML-1.24.tar.gz"; - # hash = "sha256-22A8y/ZlO80oz6gk1y5RHq0Bn8ivufGFTshy2y082No="; - # }; - # doCheck = false; - # propagatedBuildInputs = [ LWP MIMELite ]; - # meta = { - # description = "Provide routine to transform a HTML page in a MIME-Lite mail"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MIMETools = buildPerlPackage { - # pname = "MIME-tools"; - # version = "5.509"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DS/DSKOLL/MIME-tools-5.509.tar.gz"; - # hash = "sha256-ZFefDJI9gdmiGUWG5Hw0dVGeJkbktcECqJIHWfrPaXM="; - # }; - # propagatedBuildInputs = [ MailTools ]; - # buildInputs = [ TestDeep ]; - # meta = { - # description = "Tools to manipulate MIME messages"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MIMETypes = buildPerlPackage { - # pname = "MIME-Types"; - # version = "2.24"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MARKOV/MIME-Types-2.24.tar.gz"; - # hash = "sha256-Yp42HyKyIL5QwtpzVOI8BFF1dwmgPCWiLzFg7blMtl8="; - # }; - # meta = { - # description = "Definition of MIME types"; - # homepage = "http://perl.overmeer.net/CPAN"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Minion = buildPerlPackage { - # pname = "Minion"; - # version = "10.25"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SR/SRI/Minion-10.25.tar.gz"; - # hash = "sha256-C+CoN1N2iJ2gRgRpY4TAz5iyYh0mUNnrAwf25LlAra0="; - # }; - # propagatedBuildInputs = [ Mojolicious YAMLLibYAML ]; - # meta = { - # description = "A high performance job queue for Perl"; - # homepage = "https://github.com/mojolicious/minion"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # MinionBackendRedis = buildPerlModule { - # pname = "Minion-Backend-Redis"; - # version = "0.003"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DF/DFUG/Minion-Backend-Redis-0.003.tar.gz"; - # hash = "sha256-zXZRIQbfHKmQF75fObSmXgSCawzZQxe3GsAWGzXzI6A="; - # }; - # buildInputs = [ ModuleBuildTiny ]; - # propagatedBuildInputs = [ Minion MojoRedis Mojolicious SortVersions ]; - # meta = { - # homepage = "https://github.com/Difegue/Minion-Backend-Redis"; - # description = "Redis backend for Minion job queue"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = with maintainers; [ tomasajt ]; - # }; - # }; - - # MinionBackendSQLite = buildPerlModule { - # pname = "Minion-Backend-SQLite"; - # version = "5.0.7"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DB/DBOOK/Minion-Backend-SQLite-v5.0.7.tar.gz"; - # hash = "sha256-zd49IrGv+n32seErKlLp88G2gci1k6G+TeO+aOTaXHI="; - # }; - # buildInputs = [ ModuleBuildTiny ]; - # propagatedBuildInputs = [ Minion MojoSQLite ]; - # meta = { - # description = "SQLite backend for Minion job queue"; - # homepage = "https://github.com/Grinnz/Minion-Backend-SQLite"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # MinionBackendmysql = buildPerlPackage { - # pname = "Minion-Backend-mysql"; - # version = "1.003"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PR/PREACTION/Minion-Backend-mysql-1.003.tar.gz"; - # hash = "sha256-aaJcJAyw5NTvTxqjKgTt+Nolt+jTqCDP1kVhWZ7aRUI="; - # }; - # buildInputs = [ Testmysqld ]; - # propagatedBuildInputs = [ Minion Mojomysql ]; - # meta = { - # description = "MySQL backend for the Minion job queue"; - # homepage = "https://github.com/preaction/Minion-Backend-mysql"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # MixinLinewise = buildPerlPackage { - # pname = "Mixin-Linewise"; - # version = "0.111"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Mixin-Linewise-0.111.tar.gz"; - # hash = "sha256-0o6IUWzptSlcMWMdzM3A/I8qt9ilzIdrsbIBMQh7Ads="; - # }; - # propagatedBuildInputs = [ PerlIOutf8_strict SubExporter ]; - # meta = { - # description = "Write your linewise code for handles; this does the rest"; - # homepage = "https://github.com/rjbs/Mixin-Linewise"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MLDBM = buildPerlModule { - # pname = "MLDBM"; - # version = "2.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CH/CHORNY/MLDBM-2.05.tar.gz"; - # hash = "sha256-WGiA7QwggBq79nNHR+E+AgPt7+zm68TyDdtQWfAqF6I="; - # }; - # meta = { - # description = "Store multi-level Perl hash structure in single level tied hash"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MNI-Perllib = callPackage ./perl-modules/MNI {}; - - # Mo = buildPerlPackage { - # pname = "Mo"; - # version = "0.40"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TI/TINITA/Mo-0.40.tar.gz"; - # hash = "sha256-kdJBUjkfjCeX7jUDkTja6m3j7gO98+G4ck+lx1VAzrk="; - # }; - # meta = { - # description = "Micro Objects. Mo is less"; - # homepage = "https://github.com/ingydotnet/mo-pm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "mo-inline"; - # }; - # }; - - # MockConfig = buildPerlPackage { - # pname = "Mock-Config"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RU/RURBAN/Mock-Config-0.03.tar.gz"; - # hash = "sha256-pbg0V1fKTyuTNfW+FOk+u7UChlIzp1W/U7xxVt7sABs="; - # }; - # meta = { - # description = "Temporarily set Config or XSConfig values"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ModernPerl = buildPerlPackage { - # pname = "Modern-Perl"; - # version = "1.20230106"; - - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CH/CHROMATIC/Modern-Perl-1.20230106.tar.gz"; - # hash = "sha256-BFncq4DOgrY0Yf2B7pTgbpplFdmPP7wxmDjdHmAoUfc="; - # }; - # meta = { - # description = "Enable all of the features of Modern Perl with one import"; - # homepage = "https://github.com/chromatic/Modern-Perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Modulecpmfile = buildPerlModule { - # pname = "Module-cpmfile"; - # version = "0.006"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SK/SKAJI/Module-cpmfile-0.006.tar.gz"; - # hash = "sha256-G8l24pN3JIlsn26unl3KmB4n+YQwuS3icO41FP0ArA8="; - # }; - # buildInputs = [ ModuleBuildTiny ModuleCPANfile Test2Suite ]; - # propagatedBuildInputs = [ YAMLPP ]; - # meta = { - # description = "Parse cpmfile"; - # homepage = "https://github.com/skaji/cpmfile"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.zakame ]; - # }; - # }; - - ModuleBuild = buildPerlPackage { - pname = "Module-Build"; - version = "0.4234"; - src = fetchurl { - url = "mirror://cpan/authors/id/L/LE/LEONT/Module-Build-0.4234.tar.gz"; - hash = "sha256-Zq6sYSdBi+XkcerTdEZIx2a9AUgoJcW2ZlJnXyvIao8="; - }; - postConfigure = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' - # for unknown reason, the first run of Build fails - ./Build || true - ''; - postPatch = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' - # remove version check since miniperl uses a stub of File::Temp, which do not provide a version: - # https://github.com/arsv/perl-cross/blob/master/cnf/stub/File/Temp.pm - sed -i '/File::Temp/d' \ - Build.PL - - # fix discover perl function, it can not handle a wrapped perl - sed -i "s,\$self->_discover_perl_interpreter,'$(type -p perl)',g" \ - lib/Module/Build/Base.pm - ''; - meta = { - description = "Build and install Perl modules"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - mainProgram = "config_data"; - }; - }; - - # ModuleBuildDeprecated = buildPerlModule { - # pname = "Module-Build-Deprecated"; - # version = "0.4210"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LE/LEONT/Module-Build-Deprecated-0.4210.tar.gz"; - # hash = "sha256-vgiTE/wjjuIYNHOsqMhrVfs89EeXMSy+m4ktY2JiFwM="; - # }; - # doCheck = false; - # meta = { - # description = "A collection of modules removed from Module-Build"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ModuleBuildPluggable = buildPerlModule { - # pname = "Module-Build-Pluggable"; - # version = "0.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Module-Build-Pluggable-0.10.tar.gz"; - # hash = "sha256-5bsqyxF3ksmEYogSrLD+w3bLlwyu6O3ldTXgTXYrDkA="; - # }; - # propagatedBuildInputs = [ ClassAccessorLite ClassMethodModifiers DataOptList ]; - # buildInputs = [ TestSharedFork ]; - # meta = { - # description = "Module::Build meets plugins"; - # homepage = "https://github.com/tokuhirom/Module-Build-Pluggable"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ModuleBuildPluggableCPANfile = buildPerlModule { - # pname = "Module-Build-Pluggable-CPANfile"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Module-Build-Pluggable-CPANfile-0.05.tar.gz"; - # hash = "sha256-SuxsuiQMtueAFkBrajqHVjTMKuwI/8XxVy2hzcQOHnw="; - # }; - # buildInputs = [ CaptureTiny TestRequires TestSharedFork ]; - # propagatedBuildInputs = [ ModuleBuildPluggable ModuleCPANfile ]; - # meta = { - # description = "Include cpanfile"; - # homepage = "https://github.com/kazeburo/Module-Build-Pluggable-CPANfile"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ModuleBuildPluggablePPPort = buildPerlModule { - # pname = "Module-Build-Pluggable-PPPort"; - # version = "0.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Module-Build-Pluggable-PPPort-0.04.tar.gz"; - # hash = "sha256-RAhLo9iBXzQ705FYWsXYM5pIB85cDdhMmNuPMQtkwOo="; - # }; - # buildInputs = [ TestRequires TestSharedFork ]; - # propagatedBuildInputs = [ ModuleBuildPluggable ]; - # meta = { - # description = "Generate ppport.h"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - ModuleBuildTiny = buildPerlModule { - pname = "Module-Build-Tiny"; - version = "0.047"; - src = fetchurl { - url = "mirror://cpan/authors/id/L/LE/LEONT/Module-Build-Tiny-0.047.tar.gz"; - hash = "sha256-cSYOlCG5PDPdGz59DPFfdZwMp8dT+oQCeew75w+PjJ0="; - }; - buildInputs = [ FileShareDir ]; - propagatedBuildInputs = [ ExtUtilsHelpers ExtUtilsInstallPaths ]; - meta = { - description = "A tiny replacement for Module::Build"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # ModuleBuildWithXSpp = buildPerlModule { - # pname = "Module-Build-WithXSpp"; - # version = "0.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SM/SMUELLER/Module-Build-WithXSpp-0.14.tar.gz"; - # hash = "sha256-U7PIyP29UPw9rT0Z2iDxtkFO9wZluTEXEMgClp50aTQ="; - # }; - # propagatedBuildInputs = [ ExtUtilsCppGuess ExtUtilsXSpp ]; - # meta = { - # description = "XS++ enhanced flavour of Module::Build"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ModuleBuildXSUtil = buildPerlModule { - # pname = "Module-Build-XSUtil"; - # version = "0.19"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HI/HIDEAKIO/Module-Build-XSUtil-0.19.tar.gz"; - # hash = "sha256-kGOzw0bt60IoB//kn/sjA4xPkA1Kd7hFzktT2XvylAA="; - # }; - # buildInputs = [ CaptureTiny CwdGuard FileCopyRecursiveReduced ]; - # propagatedBuildInputs = [ DevelCheckCompiler ]; - # perlPreHook = "export LD=$CC"; - # meta = { - # description = "A Module::Build class for building XS modules"; - # homepage = "https://github.com/hideo55/Module-Build-XSUtil"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ModuleCompile = buildPerlPackage { - # pname = "Module-Compile"; - # version = "0.38"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IN/INGY/Module-Compile-0.38.tar.gz"; - # hash = "sha256-gJDPu2ESNDfu/sPjvthgBdH3xaUp+2/aLr68ZWS5qhA="; - # }; - # propagatedBuildInputs = [ CaptureTiny DigestSHA1 ]; - # meta = { - # description = "Perl Module Compilation"; - # homepage = "https://github.com/ingydotnet/module-compile-pm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ModuleCPANTSAnalyse = buildPerlPackage { - # pname = "Module-CPANTS-Analyse"; - # version = "1.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Module-CPANTS-Analyse-1.02.tar.gz"; - # hash = "sha256-nhFzm5zQi6LXWllzfx+yl/RYA/KJBjxcdZv8eP1Rbns="; - # }; - # propagatedBuildInputs = [ ArchiveAnyLite ArrayDiff ClassAccessor DataBinary FileFindObject ModuleFind ParseDistname PerlPrereqScannerNotQuiteLite SoftwareLicense ]; - # buildInputs = [ ExtUtilsMakeMakerCPANfile TestFailWarnings ]; - # meta = { - # description = "Generate Kwalitee ratings for a distribution"; - # homepage = "https://cpants.cpanauthors.org"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ModuleCPANfile = buildPerlPackage { - # pname = "Module-CPANfile"; - # version = "1.1004"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Module-CPANfile-1.1004.tar.gz"; - # hash = "sha256-iO++LppkLc6qGGQw/t/PmZqvDgb2zO0opxS45WtRSSE="; - # }; - # buildInputs = [ Filepushd ]; - # meta = { - # description = "Parse cpanfile"; - # homepage = "https://github.com/miyagawa/cpanfile"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ModuleExtractUse = buildPerlModule { - # pname = "Module-ExtractUse"; - # version = "0.345"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DO/DOMM/Module-ExtractUse-0.345.tar.gz"; - # hash = "sha256-juJOh0KrnaeSKL4Yfdoxm01fUKkaHs+H1JQhO1uzDdE="; - # }; - # propagatedBuildInputs = [ ParseRecDescent PodStrip ]; - # buildInputs = [ TestDeep TestNoWarnings ]; - # meta = { - # description = "Find out what modules are used"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ModuleExtractVERSION = buildPerlPackage { - # pname = "Module-Extract-VERSION"; - # version = "1.116"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BD/BDFOY/Module-Extract-VERSION-1.116.tar.gz"; - # hash = "sha256-QZA6BoUXgoU0X12oVdkluUVO5xCpeV48TDJ7ri9Vdpg="; - # }; - # meta = { - # homepage = "https://github.com/briandfoy/module-extract-version"; - # description = "Extract a module version safely"; - # license = lib.licenses.artistic2; - # }; - # }; - - # ModuleFind = buildPerlPackage { - # pname = "Module-Find"; - # version = "0.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CR/CRENZ/Module-Find-0.16.tar.gz"; - # hash = "sha256-S8qqN2kVAUco1PUzqYxbWdZlBRzTzbr8lg5aZv0TEJI="; - # }; - # meta = { - # description = "Find and use installed modules in a (sub)category"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ModuleImplementation = buildPerlPackage { - # pname = "Module-Implementation"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/Module-Implementation-0.09.tar.gz"; - # hash = "sha256-wV8aEvDCEwye//PC4a/liHsIzNAzvRMhhtHn1Qh/1m0="; - # }; - # buildInputs = [ TestFatal TestRequires ]; - # propagatedBuildInputs = [ ModuleRuntime TryTiny ]; - # meta = { - # description = "Loads one of several alternate underlying implementations for a module"; - # homepage = "https://metacpan.org/release/Module-Implementation"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # ModuleInfo = buildPerlPackage { - # pname = "Module-Info"; - # version = "0.37"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/Module-Info-0.37.tar.gz"; - # hash = "sha256-jqgCUpeQsZwfNzoeR9g4FmT5xMH3ao2LvG221zEcJEg="; - # }; - # buildInputs = [ TestPod TestPodCoverage ]; - # propagatedBuildInputs = [ BUtils ]; - # meta = { - # description = "Information about Perl modules"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "module_info"; - # }; - # }; - - # ModuleInstall = buildPerlPackage { - # pname = "Module-Install"; - # version = "1.21"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Module-Install-1.21.tar.gz"; - # hash = "sha256-+/kQB/MFZfOSDhBgVf0NQoeYHV59rYs1MjzktzPxWns="; - # }; - # propagatedBuildInputs = [ FileRemove ModuleBuild ModuleScanDeps YAMLTiny ]; - # meta = { - # description = "Standalone, extensible Perl module installer"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ModuleInstallAuthorRequires = buildPerlPackage { - # pname = "Module-Install-AuthorRequires"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FL/FLORA/Module-Install-AuthorRequires-0.02.tar.gz"; - # hash = "sha256-zGMhU310XSqDqChvhe8zRnRZOcw7NBAgRb7IVg6PTOw="; - # }; - # propagatedBuildInputs = [ ModuleInstall ]; - # meta = { - # description = "Declare author-only dependencies"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ModuleInstallAuthorTests = buildPerlPackage { - # pname = "Module-Install-AuthorTests"; - # version = "0.002"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Module-Install-AuthorTests-0.002.tar.gz"; - # hash = "sha256-QCVyLeY1ft9TwoUBsA59qSzS+fxhG6B1N2Gg4d/zLYg="; - # }; - # propagatedBuildInputs = [ ModuleInstall ]; - # meta = { - # description = "Designate tests only run by module authors"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ModuleInstallGithubMeta = buildPerlPackage { - # pname = "Module-Install-GithubMeta"; - # version = "0.30"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BI/BINGOS/Module-Install-GithubMeta-0.30.tar.gz"; - # hash = "sha256-Lq1EyXPHSNctnxmeQcRNwYAf6a4GsPrcWUR2k6PJgoE="; - # }; - # buildInputs = [ CaptureTiny ]; - # propagatedBuildInputs = [ ModuleInstall ]; - # meta = { - # description = "A Module::Install extension to include GitHub meta information in META.yml"; - # homepage = "https://github.com/bingos/module-install-githubmeta"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # ModuleInstallReadmeFromPod = buildPerlPackage { - # pname = "Module-Install-ReadmeFromPod"; - # version = "0.30"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BI/BINGOS/Module-Install-ReadmeFromPod-0.30.tar.gz"; - # hash = "sha256-efbfVTZhn6/72mlr3SXMrRfEab8y5RzT5hM2bUlAAWk="; - # }; - # buildInputs = [ TestInDistDir ]; - # propagatedBuildInputs = [ CaptureTiny IOAll ModuleInstall PodMarkdown ]; - # meta = { - # description = "A Module::Install extension to automatically convert POD to a README"; - # homepage = "https://github.com/bingos/module-install-readmefrompod"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # ModuleInstallReadmeMarkdownFromPod = buildPerlPackage { - # pname = "Module-Install-ReadmeMarkdownFromPod"; - # version = "0.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MATTN/Module-Install-ReadmeMarkdownFromPod-0.04.tar.gz"; - # hash = "sha256-MAsuJE+DuaVKlfhATBzTrwY1tPrpdMplOQ7kKOxmhZE="; - # }; - # buildInputs = [ URI ]; - # propagatedBuildInputs = [ ModuleInstall PodMarkdown ]; - # meta = { - # description = "Create README.mkdn from POD"; - # homepage = "https://search.cpan.org/dist/Module-Install-ReadmeMarkdownFromPod"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # ModuleInstallRepository = buildPerlPackage { - # pname = "Module-Install-Repository"; - # version = "0.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Module-Install-Repository-0.06.tar.gz"; - # hash = "sha256-AOJZDQkznMzL2qMo0SrY7HfoMaOMmtZjcF5Z7LsYcis="; - # }; - # buildInputs = [ PathClass ]; - # meta = { - # description = "Automatically sets repository URL from svn/svk/Git checkout"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # ModuleInstallXSUtil = buildPerlPackage { - # pname = "Module-Install-XSUtil"; - # version = "0.45"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GF/GFUJI/Module-Install-XSUtil-0.45.tar.gz"; - # hash = "sha256-/nHlMyC+4TGXdJoLF2CaomP3H/RuXiwTDpR0Lqar31Y="; - # }; - # buildInputs = [ BHooksOPAnnotation ]; - # propagatedBuildInputs = [ ModuleInstall ]; - # meta = { - # description = "Utility functions for XS modules"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ModuleManifest = buildPerlPackage { - # pname = "Module-Manifest"; - # version = "1.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Module-Manifest-1.09.tar.gz"; - # hash = "sha256-o5X4D/FeoOZv1sRThEtnh+1Kh1o82N+ffikoAlC9U5s="; - # }; - # buildInputs = [ TestException TestWarn ]; - # propagatedBuildInputs = [ ParamsUtil ]; - # meta = { - # description = "Parse and examine a Perl distribution MANIFEST file"; - # homepage = "https://github.com/karenetheridge/Module-Manifest"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ModulePath = buildPerlPackage { - # pname = "Module-Path"; - # version = "0.19"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/Module-Path-0.19.tar.gz"; - # hash = "sha256-szF5zk3XPfzefUaAiAS5/7sR2wJF/kVafQAXR1Yv6so="; - # }; - # buildInputs = [ DevelFindPerl ]; - # meta = { - # description = "Get the full path to a locally installed module"; - # homepage = "https://github.com/neilbowers/Module-Path"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "mpath"; - # }; - # }; - - # ModulePluggable = buildPerlPackage { - # pname = "Module-Pluggable"; - # version = "5.2"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SI/SIMONW/Module-Pluggable-5.2.tar.gz"; - # hash = "sha256-s/KtReT9ELP7kNkS142LeVqylUgNtW3GToa5+nXFpt8="; - # }; - # patches = [ - # # !!! merge this patch into Perl itself (which contains Module::Pluggable as well) - # ./perl-modules/module-pluggable.patch - # ]; - # buildInputs = [ AppFatPacker ]; - # meta = { - # description = "Automatically give your module the ability to have plugins"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ModulePluggableFast = buildPerlPackage { - # pname = "Module-Pluggable-Fast"; - # version = "0.19"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Module-Pluggable-Fast-0.19.tar.gz"; - # hash = "sha256-CMhXcFjxmTLKG2Zre5EmoYtVajmwi+b7ObBqRTkqB18="; - # }; - # propagatedBuildInputs = [ UNIVERSALrequire ]; - # meta = { - # description = "Fast plugins with instantiation"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ModuleRefresh = buildPerlPackage { - # pname = "Module-Refresh"; - # version = "0.18"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BP/BPS/Module-Refresh-0.18.tar.gz"; - # hash = "sha256-4JTaqQmv32SJqeKzJzP2haLBy1zIh2BhB1SGEJsN71k="; - # }; - # buildInputs = [ PathClass ]; - # meta = { - # description = "Refresh %INC files when updated on disk"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - ModuleRuntime = buildPerlModule { - pname = "Module-Runtime"; - version = "0.016"; - src = fetchurl { - url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Module-Runtime-0.016.tar.gz"; - hash = "sha256-aDAuxkaDNUfUEL4o4JZ223UAb0qlihHzvbRP/pnw8CQ="; - }; - meta = { - description = "Runtime module handling"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # ModuleRuntimeConflicts = buildPerlPackage { - # pname = "Module-Runtime-Conflicts"; - # version = "0.003"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Module-Runtime-Conflicts-0.003.tar.gz"; - # hash = "sha256-cHzcdQOMcP6Rd5uIisBQ8ShWXTlnupZoDhscfMlzOHU="; - # }; - # propagatedBuildInputs = [ DistCheckConflicts ]; - # meta = { - # description = "Provide information on conflicts for Module::Runtime"; - # homepage = "https://github.com/karenetheridge/Module-Runtime-Conflicts"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ModuleScanDeps = buildPerlPackage { - # pname = "Module-ScanDeps"; - # version = "1.34"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RS/RSCHUPP/Module-ScanDeps-1.34.tar.gz"; - # hash = "sha256-ysUw5c/EE+BneXx9I3xsXNMpFcPZ+u5dlANcjzqFUOs="; - # }; - # buildInputs = [ TestRequires IPCRun3 ]; - # propagatedBuildInputs = [ TextParsewords ]; - # meta = { - # description = "Recursively scan Perl code for dependencies"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "scandeps.pl"; - # }; - # }; - - # ModuleSignature = buildPerlPackage { - # pname = "Module-Signature"; - # version = "0.87"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AU/AUDREYT/Module-Signature-0.87.tar.gz"; - # hash = "sha256-IU6AVcUP7DcalXQ1IP4mlAAE52FpBjsrROyQoNRdaYI="; - # }; - # buildInputs = [ IPCRun ]; - # meta = { - # description = "Module signature file manipulation"; - # license = with lib.licenses; [ cc0 ]; - # mainProgram = "cpansign"; - # }; - # }; - - # ModuleUtil = buildPerlModule { - # pname = "Module-Util"; - # version = "1.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MATTLAW/Module-Util-1.09.tar.gz"; - # hash = "sha256-bPvLakUGREbsiqDuGn3dxCC1RGkwM0QYeu+E0sfz4sY="; - # }; - # meta = { - # description = "Module name tools and transformations"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "pm_which"; - # }; - # }; - - # ModuleVersions = buildPerlPackage { - # pname = "Module-Versions"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TH/THW/Module-Versions-0.02.zip"; - # hash = "sha256-DTimWxenrFGI1zh8/+f6oSY4Rw3JNxYevz2kh7fR+Dw="; - # }; - # buildInputs = [ pkgs.unzip ]; - # meta = { - # description = "Handle versions of loaded modules with flexible result interface"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ModuleVersionsReport = buildPerlPackage { - # pname = "Module-Versions-Report"; - # version = "1.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JE/JESSE/Module-Versions-Report-1.06.tar.gz"; - # hash = "sha256-oyYdDYSxdnjYxP1V6w+JL1FE2BylPqmjjXXRoArZeWo="; - # }; - # meta = { - # description = "Report versions of all modules in memory"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MojoDOM58 = buildPerlPackage { - # pname = "Mojo-DOM58"; - # version = "3.001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DB/DBOOK/Mojo-DOM58-3.001.tar.gz"; - # hash = "sha256-GLJtVB5TFEFa3d8xQ2nZQMi6BrESNMpQb9vmzyJPV5Y="; - # }; - # meta = { - # description = "Minimalistic HTML/XML DOM parser with CSS selectors"; - # homepage = "https://github.com/Grinnz/Mojo-DOM58"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # mod_perl2 = buildPerlPackage { - # pname = "mod_perl"; - # version = "2.0.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHAY/mod_perl-2.0.12.tar.gz"; - # hash = "sha256-9bghtZsP3JZw5G7Q/PMtiRHyUSYYmotowWUvkiHu4mk="; - # }; - - # makeMakerFlags = [ "MP_AP_DESTDIR=$out" ]; - # buildInputs = [ pkgs.apacheHttpd ]; - # doCheck = false; # would try to start Apache HTTP server - # passthru.tests = nixosTests.mod_perl; - # meta = { - # description = "Embed a Perl interpreter in the Apache/2.x HTTP server"; - # license = with lib.licenses; [ asl20 ]; - # mainProgram = "mp2bug"; - # }; - # }; - - # Mojolicious = buildPerlPackage { - # pname = "Mojolicious"; - # version = "9.36"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-9.36.tar.gz"; - # hash = "sha256-UX7Pb9hqC3xhadVRAiOL+YUWGNt2L7ANTPDZTGJSAV8="; - # }; - # meta = { - # description = "Real-time web framework"; - # homepage = "https://mojolicious.org"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = with maintainers; [ marcusramberg sgo thoughtpolice ]; - # mainProgram = "mojo"; - # }; - # }; - - # MojoliciousPluginAssetPack = buildPerlPackage { - # pname = "Mojolicious-Plugin-AssetPack"; - # version = "2.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-Plugin-AssetPack-2.14.tar.gz"; - # hash = "sha256-jwWMyIw1mb6/ZjeK7GS91uvNkMljGL3m1ov6551j6qM="; - # }; - # propagatedBuildInputs = [ FileWhich IPCRun3 Mojolicious ]; - # meta = { - # description = "Compress and convert css, less, sass, javascript and coffeescript files"; - # homepage = "https://github.com/jhthorsen/mojolicious-plugin-assetpack"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = with maintainers; [ sgo ]; - # }; - # }; - - # MojoliciousPluginGravatar = buildPerlPackage { - # pname = "Mojolicious-Plugin-Gravatar"; - # version = "0.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KO/KOORCHIK/Mojolicious-Plugin-Gravatar-0.04.tar.gz"; - # hash = "sha256-pJ+XDGxw+ZMLMEp1IWPLlfHZmHEvecsTZAgy5Le2dd0="; - # }; - # propagatedBuildInputs = [ Mojolicious ]; - # meta = { - # description = "Globally Recognized Avatars for Mojolicious"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ sgo ]; - # }; - # }; - - # MojoliciousPluginI18N = buildPerlModule { - # pname = "Mojolicious-Plugin-I18N"; - # version = "1.6"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHARIFULN/Mojolicious-Plugin-I18N-1.6.tar.gz"; - # hash = "sha256-Mvte+AN9lUt+zr71wbKyS0IKvYKXAjEvStQnlPUrUU0="; - # }; - # propagatedBuildInputs = [ Mojolicious ]; - # meta = { - # homepage = "https://github.com/sharifulin/Mojolicious-Plugin-I18N"; - # description = "Internationalization Plugin for Mojolicious"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MojoliciousPluginMail = buildPerlModule { - # pname = "Mojolicious-Plugin-Mail"; - # version = "1.5"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHARIFULN/Mojolicious-Plugin-Mail-1.5.tar.gz"; - # hash = "sha256-VvDTQevDp6zzkZ9a3UPpghbqEoWqDYfn+wDAK7Dv8UY="; - # }; - # propagatedBuildInputs = [ MIMEEncWords MIMELite Mojolicious ]; - # meta = { - # description = "Mojolicious Plugin for send mail"; - # homepage = "https://github.com/sharifulin/Mojolicious-Plugin-Mail"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # MojoliciousPluginOpenAPI = buildPerlPackage { - # pname = "Mojolicious-Plugin-OpenAPI"; - # version = "5.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-OpenAPI-5.09.tar.gz"; - # hash = "sha256-BIJdfOIe20G80Ujrz6Gu+Ek258QOhKOdvyeGcdSaMQY="; - # }; - # propagatedBuildInputs = [ JSONValidator Mojolicious ]; - # meta = { - # description = "OpenAPI / Swagger plugin for Mojolicious"; - # homepage = "https://github.com/jhthorsen/mojolicious-plugin-openapi"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # MojoliciousPluginRenderFile = buildPerlPackage { - # pname = "Mojolicious-Plugin-RenderFile"; - # version = "0.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KO/KOORCHIK/Mojolicious-Plugin-RenderFile-0.12.tar.gz"; - # hash = "sha256-AT5CoswGvHBBuxPJ3ziK8kAQ5peTqN8PCrHSQKphFz8="; - # }; - # propagatedBuildInputs = [ Mojolicious ]; - # meta = { - # description = "\"render_file\" helper for Mojolicious"; - # homepage = "https://github.com/koorchik/Mojolicious-Plugin-RenderFile"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ tomasajt ]; - # }; - # }; - - # MojoliciousPluginStatus = buildPerlPackage { - # pname = "Mojolicious-Plugin-Status"; - # version = "1.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-Plugin-Status-1.17.tar.gz"; - # hash = "sha256-TCsfr+PhkSYby0TiDo75rz+YjR25akrgsG7tQSArh7Q="; - # }; - # propagatedBuildInputs = [ BSDResource CpanelJSONXS FileMap Mojolicious Sereal ]; - # meta = { - # description = "Mojolicious server status"; - # homepage = "https://mojolicious.org"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = [ maintainers.thoughtpolice ]; - # }; - # }; - - # MojoliciousPluginSyslog = buildPerlPackage { - # pname = "Mojolicious-Plugin-Syslog"; - # version = "0.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-Syslog-0.06.tar.gz"; - # hash = "sha256-IuxL9TYwDseyAYuoV3C9g2ZFDBAwVDZ9srFp9Mh3QRM="; - # }; - # propagatedBuildInputs = [ Mojolicious ]; - # meta = { - # description = "A plugin for enabling a Mojolicious app to log to syslog"; - # homepage = "https://github.com/jhthorsen/mojolicious-plugin-syslog"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # MojoliciousPluginTemplateToolkit = buildPerlModule { - # pname = "Mojolicious-Plugin-TemplateToolkit"; - # version = "0.006"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DB/DBOOK/Mojolicious-Plugin-TemplateToolkit-0.006.tar.gz"; - # hash = "sha256-dBoFAmtTArtrKc+I3KICC3rv0iNHgWELpZNaqPCXNKY="; - # }; - # buildInputs = [ ModuleBuildTiny ]; - # propagatedBuildInputs = [ ClassMethodModifiers Mojolicious TemplateToolkit ]; - # meta = { - # homepage = "https://github.com/Grinnz/Mojolicious-Plugin-TemplateToolkit"; - # description = "Template Toolkit renderer plugin for Mojolicious"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = with maintainers; [ tomasajt ]; - # }; - # }; - - # MojoliciousPluginTextExceptions = buildPerlPackage { - # pname = "Mojolicious-Plugin-TextExceptions"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Mojolicious-Plugin-TextExceptions-0.02.tar.gz"; - # hash = "sha256-Oht0BcV4TO5mHP8bARpzlRBN1IS7kbnnWT+ralOb+HQ="; - # }; - # propagatedBuildInputs = [ Mojolicious ]; - # meta = { - # description = "Render exceptions as text in command line user agents"; - # homepage = "https://github.com/marcusramberg/mojolicious-plugin-textexceptions"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # MojoliciousPluginWebpack = buildPerlPackage { - # pname = "Mojolicious-Plugin-Webpack"; - # version = "1.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-Webpack-1.02.tar.gz"; - # hash = "sha256-REzqioOZquelrWt8iQ/yFgk8WM6uaxyKBl77cBC3zn0="; - # }; - # propagatedBuildInputs = [ Mojolicious Filechdir ]; - # meta = { - # description = "Mojolicious <3 Webpack"; - # homepage = "https://github.com/jhthorsen/mojolicious-plugin-webpack"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # MojoRedis = buildPerlPackage { - # pname = "Mojo-Redis"; - # version = "3.29"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojo-Redis-3.29.tar.gz"; - # hash = "sha256-oDMZpF0uYTpsfS1ZrAD9SwtHiGVi5ish3pG0r4llgII="; - # }; - # propagatedBuildInputs = [ Mojolicious ProtocolRedisFaster ]; - # meta = { - # description = "Redis driver based on Mojo::IOLoop"; - # homepage = "https://github.com/jhthorsen/mojo-redis"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # MojoSAML = buildPerlModule { - # pname = "Mojo-SAML"; - # version = "0.07"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JB/JBERGER/Mojo-SAML-0.07.tar.gz"; - # hash = "sha256-csJMrNtvHXp14uqgBDfHFKv1eafSENSqTT8g8e/0cQ0="; - # }; - # buildInputs = [ ModuleBuildTiny ]; - # propagatedBuildInputs = [ CryptOpenSSLRSA CryptOpenSSLX509 DataGUID Mojolicious XMLCanonicalizeXML ]; - # meta = { - # description = "A SAML2 toolkit using the Mojo toolkit"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # MojoSQLite = buildPerlModule { - # pname = "Mojo-SQLite"; - # version = "3.009"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DB/DBOOK/Mojo-SQLite-3.009.tar.gz"; - # hash = "sha256-Vzmprz/A/BYrOAMt9hCgcANSY7++C+wWrsUvDd3Xtkc="; - # }; - # buildInputs = [ ModuleBuildTiny ]; - # propagatedBuildInputs = [ DBDSQLite Mojolicious SQLAbstractPg URIdb URI ]; - # meta = { - # description = "A tiny Mojolicious wrapper for SQLite"; - # homepage = "https://github.com/Grinnz/Mojo-SQLite"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # Mojomysql = buildPerlPackage { - # pname = "Mojo-mysql"; - # version = "1.26"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojo-mysql-1.26.tar.gz"; - # hash = "sha256-H9LjBlr4Je9N2x2W9g9MVc9NCCD77L0wrHGdTeJx5rw="; - # }; - # propagatedBuildInputs = [ DBDmysql Mojolicious SQLAbstract ]; - # buildInputs = [ TestDeep ]; - # meta = { - # description = "Mojolicious and Async MySQL/MariaDB"; - # homepage = "https://github.com/jhthorsen/mojo-mysql"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # MojoIOLoopDelay = buildPerlModule { - # pname = "Mojo-IOLoop-Delay"; - # version = "8.76"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JB/JBERGER/Mojo-IOLoop-Delay-8.76.tar.gz"; - # hash = "sha256-jsvAYUg3IdkgRZQya+zpXM2/vbbRihc8gt1xgXLQqe0="; - # }; - # buildInputs = [ ModuleBuildTiny ]; - # propagatedBuildInputs = [ Mojolicious ]; - # meta = { - # description = "(DISCOURAGED) Promises/A+ and flow-control helpers"; - # homepage = "https://github.com/jberger/Mojo-IOLoop-Delay"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = [ maintainers.zakame ]; - # }; - # }; - - # MojoIOLoopForkCall = buildPerlModule { - # pname = "Mojo-IOLoop-ForkCall"; - # version = "0.21"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JB/JBERGER/Mojo-IOLoop-ForkCall-0.21.tar.gz"; - # hash = "sha256-8dpdh4RxvdhvAcQjhQgAgE9ttCtUU8IW8Jslt5RYS3g="; - # }; - # propagatedBuildInputs = [ IOPipely Mojolicious MojoIOLoopDelay ]; - # preBuild = '' - # # This module needs the deprecated Mojo::IOLoop::Delay - # substituteInPlace lib/Mojo/IOLoop/ForkCall.pm \ - # --replace "use Mojo::IOLoop;" "use Mojo::IOLoop; use Mojo::IOLoop::Delay;" - # ''; - # meta = { - # description = "(DEPRECATED) run blocking functions asynchronously by forking"; - # homepage = "https://github.com/jberger/Mojo-IOLoop-ForkCall"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.zakame ]; - # }; - # }; - - # MojoJWT = buildPerlModule { - # pname = "Mojo-JWT"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JB/JBERGER/Mojo-JWT-0.09.tar.gz"; - # hash = "sha256-wE4DmD4MbyvORdCOoucph5yWee+mNLDmjLa4t7SoWIY="; - # }; - # buildInputs = [ ModuleBuildTiny ]; - # propagatedBuildInputs = [ Mojolicious ]; - # meta = { - # description = "JSON Web Token the Mojo way"; - # homepage = "https://github.com/jberger/Mojo-JWT"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # MojoPg = buildPerlPackage { - # pname = "Mojo-Pg"; - # version = "4.27"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SR/SRI/Mojo-Pg-4.27.tar.gz"; - # hash = "sha256-oyLI3wDj5WVf300LernXmSiTIOKfZP6ZrHrxJEhO+dg="; - # }; - # propagatedBuildInputs = [ DBDPg Mojolicious SQLAbstractPg ]; - # buildInputs = [ TestDeep ]; - # meta = { - # description = "Mojolicious ♥ PostgreSQL"; - # homepage = "https://mojolicious.org"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # MojoUserAgentCached = buildPerlPackage { - # pname = "Mojo-UserAgent-Cached"; - # version = "1.25"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NI/NICOMEN/Mojo-UserAgent-Cached-1.25.tar.gz"; - # hash = "sha256-lZmikTjq/ZKPWF7jDvFm0j/x3FKkBn50hyxR4W3shko="; - # }; - # buildInputs = [ ModuleInstall ]; - # propagatedBuildInputs = [ AlgorithmLCSS CHI DataSerializer DevelStackTrace Mojolicious Readonly StringTruncate ]; - # doCheck = !stdenv.isDarwin; - # meta = { - # description = "Caching, Non-blocking I/O HTTP, Local file and WebSocket user agent"; - # homepage = "https://github.com/nicomen/mojo-useragent-cached"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # MongoDB = buildPerlPackage { - # pname = "MongoDB"; - # version = "2.2.2"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MO/MONGODB/MongoDB-v2.2.2.tar.gz"; - # hash = "sha256-IBk1+S2slPOcNd5zZh6LJSQ55JbyKGV9uF/5MlfDJo8="; - # }; - # buildInputs = [ JSONMaybeXS PathTiny TestDeep TestFatal TimeMoment ]; - # propagatedBuildInputs = [ AuthenSASLSASLprep AuthenSCRAM BSON IOSocketSSL NetSSLeay ClassXSAccessor BSONXS TypeTinyXS MozillaCA Moo NetDNS SafeIsa SubQuote TieIxHash TypeTiny UUIDURandom boolean namespaceclean ]; - # meta = { - # description = "Official MongoDB Driver for Perl (EOL)"; - # homepage = "https://github.com/mongodb-labs/mongo-perl-driver"; - # license = with lib.licenses; [ asl20 ]; - # }; - # }; - - # MonitoringPlugin = buildPerlPackage { - # pname = "Monitoring-Plugin"; - # version = "0.40"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NI/NIERLEIN/Monitoring-Plugin-0.40.tar.gz"; - # hash = "sha256-+LprfifSuwpPmjKVWiRC1OQo0cSLgMixIUL/YRvnI28="; - # }; - # propagatedBuildInputs = [ ClassAccessor ConfigTiny MathCalcUnits ParamsValidate ]; - # meta = { - # description = '' - # A family of perl modules to streamline writing Naemon, - # Nagios, Icinga or Shinken (and compatible) plugins - # ''; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # IOPipely = buildPerlPackage { - # pname = "IO-Pipely"; - # version = "0.006"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RC/RCAPUTO/IO-Pipely-0.006.tar.gz"; - # hash = "sha256-Dj/NhBoyfvtUn6AbIIPcNpXnLqDGMwPlbtUWG/gQQTs="; - # }; - # meta = { - # description = "Portably create pipe() or pipe-like handles, one way or another"; - # homepage = "https://search.cpan.org/dist/IO-Pipely"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - Moo = buildPerlPackage { - pname = "Moo"; - version = "2.005005"; - src = fetchurl { - url = "mirror://cpan/authors/id/H/HA/HAARG/Moo-2.005005.tar.gz"; - hash = "sha256-+1opUmSfrtBzc/Igt4AEqcaro4dzkTN0DBdw6bH0sQg="; - }; - buildInputs = [ TestFatal ]; - propagatedBuildInputs = [ ClassMethodModifiers ModuleRuntime RoleTiny SubQuote ]; - meta = { - description = "Minimalist Object Orientation (with Moose compatibility)"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # Moose = buildPerlPackage { - # pname = "Moose"; - # version = "2.2206"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Moose-2.2206.tar.gz"; - # hash = "sha256-Z5csTivDn72jhRgXevDme7vrVIVi5OxLdZoaelg+UFs="; - # }; - # buildInputs = [ DistCheckConflicts CPANMetaCheck TestCleanNamespaces TestFatal TestNeeds TestRequires ]; - # propagatedBuildInputs = [ ClassLoadXS DataOptList DevelGlobalDestruction DevelOverloadInfo DevelStackTrace EvalClosure MROCompat ModuleRuntimeConflicts PackageDeprecationManager PackageStashXS ParamsUtil SubExporter TryTiny ]; - # preConfigure = '' - # export LD=$CC - # ''; - # meta = { - # description = "A postmodern object system for Perl 5"; - # homepage = "http://moose.perl.org"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.eelco ]; - # mainProgram = "moose-outdated"; - # }; - # }; - - # MooXHandlesVia = buildPerlPackage { - # pname = "MooX-HandlesVia"; - # version = "0.001009"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TOBYINK/MooX-HandlesVia-0.001009.tar.gz"; - # hash = "sha256-cWNT44iU7Lfo5MF7yVSD219ZACsDVBtUpywn8qjzbBI="; - # }; - # buildInputs = [ MooXTypesMooseLike TestException TestFatal ]; - # propagatedBuildInputs = [ DataPerl Moo ]; - # meta = { - # description = "NativeTrait-like behavior for Moo"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooXLocalePassthrough = buildPerlPackage { - # pname = "MooX-Locale-Passthrough"; - # version = "0.001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Locale-Passthrough-0.001.tar.gz"; - # hash = "sha256-egWCflKrWh3eLqXHEpJ7HljI0lFmTZZmJ6353TDsBRI="; - # }; - # propagatedBuildInputs = [ Moo ]; - # meta = { - # description = "Provide API used in translator modules without translating"; - # homepage = "https://metacpan.org/release/MooX-Locale-Passthrough"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooXLocaleTextDomainOO = buildPerlPackage { - # pname = "MooX-Locale-TextDomain-OO"; - # version = "0.001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Locale-TextDomain-OO-0.001.tar.gz"; - # hash = "sha256-W45Sz/3YSpXTaMoQuUNUG5lqk+DQY5b0/hkzVojkFz0="; - # }; - # propagatedBuildInputs = [ LocaleTextDomainOO MooXLocalePassthrough ]; - # meta = { - # description = "Provide API used in translator modules without translating"; - # homepage = "https://metacpan.org/release/MooX-Locale-TextDomain-OO"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooXOptions = buildPerlPackage { - # pname = "MooX-Options"; - # version = "4.103"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Options-4.103.tar.gz"; - # hash = "sha256-TfnVdPjybbAivwbBvaRwgolFEJjC4VYzNd840jsHMm0="; - # }; - # propagatedBuildInputs = [ GetoptLongDescriptive MROCompat MooXLocalePassthrough PathClass UnicodeLineBreak strictures ]; - # buildInputs = [ Mo MooXCmd MooXLocaleTextDomainOO Moose TestTrap ]; - # preCheck = "rm t/16-namespace_clean.t"; # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=942275 - # meta = { - # description = "Explicit Options eXtension for Object Class"; - # homepage = "https://metacpan.org/celogeek/MooX-Options"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooXSingleton = buildPerlModule { - # pname = "MooX-Singleton"; - # version = "1.20"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AJ/AJGB/MooX-Singleton-1.20.tar.gz"; - # hash = "sha256-99dib//emPhewSwe4msB8Tmk3d0vRT6lbDQd8ZTjIQ4="; - # }; - # propagatedBuildInputs = [ RoleTiny ]; - # buildInputs = [ Moo ]; - # meta = { - # description = "Turn your Moo class into singleton"; - # homepage = "https://search.cpan.org/dist/MooX-Singleton"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooXStrictConstructor = buildPerlPackage { - # pname = "MooX-StrictConstructor"; - # version = "0.011"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HARTZELL/MooX-StrictConstructor-0.011.tar.gz"; - # hash = "sha256-2jgvgi/8TiKgOqQZpCVydJmdNtiaThI27PT892vGU+I="; - # }; - # propagatedBuildInputs = [ Moo strictures ]; - # buildInputs = [ TestFatal ]; - # meta = { - # description = "Make your Moo-based object constructors blow up on unknown attributes"; - # homepage = "https://metacpan.org/release/MooX-StrictConstructor"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooXTypesMooseLike = buildPerlPackage { - # pname = "MooX-Types-MooseLike"; - # version = "0.29"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MATEU/MooX-Types-MooseLike-0.29.tar.gz"; - # hash = "sha256-HTeAqpvqQwr75lqox25xjxBFzniKrdpBFvWdO3p60rQ="; - # }; - # propagatedBuildInputs = [ ModuleRuntime ]; - # buildInputs = [ Moo TestFatal ]; - # meta = { - # description = "Some Moosish types and a type builder"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooXTypesMooseLikeNumeric = buildPerlPackage { - # pname = "MooX-Types-MooseLike-Numeric"; - # version = "1.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MATEU/MooX-Types-MooseLike-Numeric-1.03.tar.gz"; - # hash = "sha256-Fq3rYXuWPQEBeZIsLk6HYt93x1Iy4XMgtFmGjElwxEs="; - # }; - # buildInputs = [ Moo TestFatal ]; - # propagatedBuildInputs = [ MooXTypesMooseLike ]; - # meta = { - # description = "Moo types for numbers"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooXTypeTiny = buildPerlPackage { - # pname = "MooX-TypeTiny"; - # version = "0.002003"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HAARG/MooX-TypeTiny-0.002003.tar.gz"; - # hash = "sha256-2B4m/2+NsQJh8Ah/ltxUNn3LSanz3o1TI4+DTs4ZYks="; - # }; - # buildInputs = [ TestFatal ]; - # propagatedBuildInputs = [ Moo TypeTiny ]; - # meta = { - # description = "Tiny, yet Moo(se)-compatible type constraint"; - # homepage = "https://typetiny.toby.ink"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseAutobox = buildPerlModule { - # pname = "Moose-Autobox"; - # version = "0.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Moose-Autobox-0.16.tar.gz"; - # hash = "sha256-kkAdpM9ITrcYjsGWtoGG76eCoQK0UeoVbNi4dy5ocFU="; - # }; - # buildInputs = [ ModuleBuildTiny TestException ]; - # propagatedBuildInputs = [ ListMoreUtils Moose SyntaxKeywordJunction autobox namespaceautoclean ]; - # meta = { - # description = "Autoboxed wrappers for Native Perl datatypes"; - # homepage = "https://github.com/moose/Moose-Autobox"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXABC = buildPerlPackage { - # pname = "MooseX-ABC"; - # version = "0.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DO/DOY/MooseX-ABC-0.06.tar.gz"; - # hash = "sha256-Tr7suUbkVSssRyH1u/I+9huTJlELVzlr9ZkLEW8Dfuo="; - # }; - # buildInputs = [ TestFatal ]; - # propagatedBuildInputs = [ Moose ]; - # meta = { - # description = "Abstract base classes for Moose"; - # homepage = "https://metacpan.org/release/MooseX-ABC"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXAliases = buildPerlPackage { - # pname = "MooseX-Aliases"; - # version = "0.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DO/DOY/MooseX-Aliases-0.11.tar.gz"; - # hash = "sha256-xIUPlyQmw0R6ru2Ny0Az6ERgylFwWtPqeLY6+Rn+B0g="; - # }; - # buildInputs = [ TestFatal ]; - # propagatedBuildInputs = [ Moose ]; - # meta = { - # description = "Easy aliasing of methods and attributes in Moose"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXAppCmd = buildPerlModule { - # pname = "MooseX-App-Cmd"; - # version = "0.34"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-App-Cmd-0.34.tar.gz"; - # hash = "sha256-9eLy7xKcOI8qPjb1PeWYBErxtyLofXEFKdBcwl0jesI="; - # }; - # buildInputs = [ ModuleBuildTiny MooseXConfigFromFile TestOutput YAML ]; - # propagatedBuildInputs = [ AppCmd MooseXGetopt MooseXNonMoose ]; - # meta = { - # description = "Mashes up MooseX::Getopt and App::Cmd"; - # homepage = "https://github.com/moose/MooseX-App-Cmd"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXStorageFormatJSONpm = buildPerlPackage { - # pname = "MooseX-Storage-Format-JSONpm"; - # version = "0.093094"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/MooseX-Storage-Format-JSONpm-0.093094.tar.gz"; - # hash = "sha256-9sgItyC99HI4VaZ4sblQLHSSABXFq8YL2uasYNFGxYQ="; - # }; - # buildInputs = [ Moose TestDeepJSON TestWithoutModule DigestHMAC MooseXTypes ]; - # propagatedBuildInputs = [ JSON MooseXRoleParameterized MooseXStorage namespaceautoclean ]; - # meta = { - # description = "A format role for MooseX::Storage using JSON.pm"; - # homepage = "https://github.com/rjbs/MooseX-Storage-Format-JSONpm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooX = buildPerlPackage { - # pname = "MooX"; - # version = "0.101"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GE/GETTY/MooX-0.101.tar.gz"; - # hash = "sha256-L/kaZW54quCspCKTgp16flrLm/IrBAFjWyq2yHDeMtU="; - # }; - # propagatedBuildInputs = [ DataOptList ImportInto Moo ]; - # meta = { - # description = "Using Moo and MooX:: packages the most lazy way"; - # homepage = "https://github.com/Getty/p5-moox"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooXAliases = buildPerlPackage { - # pname = "MooX-Aliases"; - # version = "0.001006"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HAARG/MooX-Aliases-0.001006.tar.gz"; - # hash = "sha256-AWAxJ4ysYSY9AZUt/lv7XztGtLhCsv/6nyybiKrGOGc="; - # }; - # propagatedBuildInputs = [ Moo strictures ]; - # buildInputs = [ TestFatal ]; - # meta = { - # description = "Easy aliasing of methods and attributes in Moo"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooXCmd = buildPerlPackage { - # pname = "MooX-Cmd"; - # version = "0.017"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Cmd-0.017.tar.gz"; - # hash = "sha256-lD/yjaqAiXMnx8X+xacQDPqsktrw+fl8OOOnfQCucPU="; - # }; - # propagatedBuildInputs = [ ListMoreUtils ModulePluggable Moo PackageStash ParamsUtil RegexpCommon ]; - # buildInputs = [ CaptureTiny ]; - # meta = { - # description = "Giving an easy Moo style way to make command organized CLI apps"; - # homepage = "https://metacpan.org/release/MooX-Cmd"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooXlate = buildPerlPackage { - # pname = "MooX-late"; - # version = "0.100"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TOBYINK/MooX-late-0.100.tar.gz"; - # hash = "sha256-KuWx49pavA5ABieOy8+o+nwiTqVSmmpoisuyKcCeal8="; - # }; - # buildInputs = [ TestFatal TestRequires ]; - # propagatedBuildInputs = [ Moo SubHandlesVia ]; - # meta = { - # description = "Easily translate Moose code to Moo"; - # homepage = "https://metacpan.org/release/MooX-late"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MouseXSimpleConfig = buildPerlPackage { - # pname = "MouseX-SimpleConfig"; - # version = "0.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MJ/MJGARDNER/MouseX-SimpleConfig-0.11.tar.gz"; - # hash = "sha256-JX84QJHTPTQDc6YVOUcDnGmNxEnR75iTNWRPw9LaAGk="; - # }; - # propagatedBuildInputs = [ ConfigAny MouseXConfigFromFile ]; - # meta = { - # description = "A Mouse role for setting attributes from a simple configfile"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestArchiveLibarchive = buildPerlPackage { - # pname = "Test-Archive-Libarchive"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test-Archive-Libarchive-0.02.tar.gz"; - # hash = "sha256-KxkYZx4F2i2dIiwQx9kXWFpiQYb+r7j4SQhZnDRwJ1E="; - # }; - # propagatedBuildInputs = [ RefUtil Test2Suite ]; - # meta = { - # homepage = "https://metacpan.org/pod/Test::Archive::Libarchive"; - # description = "Testing tools for Archive::Libarchive"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ tomasajt ]; - # }; - # }; - - # TestPostgreSQL = buildPerlModule { - # pname = "Test-PostgreSQL"; - # version = "1.29"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TJ/TJC/Test-PostgreSQL-1.29.tar.gz"; - # hash = "sha256-GKz35YnKTMqc3kdgm1NsnYI8hWLRqlIQwWjl6xuOT54="; - # }; - # buildInputs = [ ModuleBuildTiny TestSharedFork pkgs.postgresql ]; - # propagatedBuildInputs = [ DBDPg DBI FileWhich FunctionParameters Moo TieHashMethod TryTiny TypeTiny ]; - - # makeMakerFlags = [ "POSTGRES_HOME=${pkgs.postgresql}" ]; - - # meta = { - # description = "PostgreSQL runner for tests"; - # homepage = "https://github.com/TJC/Test-postgresql"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # TestUseAllModules = buildPerlPackage { - # pname = "Test-UseAllModules"; - # version = "0.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Test-UseAllModules-0.17.tar.gz"; - # hash = "sha256-px8v6LlquL/Cdgqh0xNeoEmlsg3LEFRXt2mhGVx6JQk="; - # }; - # meta = { - # description = "Do use_ok() for all the MANIFESTed modules"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestValgrind = buildPerlPackage { - # pname = "Test-Valgrind"; - # version = "1.19"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/V/VP/VPIT/Test-Valgrind-1.19.tar.gz"; - # hash = "sha256-GDinoV/ueo8Gnk5rRhxeFpBYthW437Q3hLPV2hpggRs="; - # }; - # propagatedBuildInputs = [ EnvSanctify FileHomeDir PerlDestructLevel XMLTwig ]; - # meta = { - # description = "Generate suppressions, analyse and test any command with valgrind"; - # homepage = "https://search.cpan.org/dist/Test-Valgrind"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MouseXTypesPathClass = buildPerlPackage { - # pname = "MouseX-Types-Path-Class"; - # version = "0.07"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MASAKI/MouseX-Types-Path-Class-0.07.tar.gz"; - # hash = "sha256-Io1LTz8O2VRyeGkdC3xf5T2Qh0pp33CaSXA8avh8Cd4="; - # }; - # buildInputs = [ TestUseAllModules ]; - # propagatedBuildInputs = [ MouseXTypes PathClass ]; - # meta = { - # description = "Cross-platform path specification manipulation"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MouseXTypes = buildPerlPackage { - # pname = "MouseX-Types"; - # version = "0.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GF/GFUJI/MouseX-Types-0.06.tar.gz"; - # hash = "sha256-dyiEQf2t0Vvu7JoIE+zorsFULx2M6q7BR1Wz8xb7z4s="; - # }; - # buildInputs = [ TestException ]; - # propagatedBuildInputs = [ AnyMoose ]; - # meta = { - # description = "Organize your Mouse types in libraries"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MouseXConfigFromFile = buildPerlPackage { - # pname = "MouseX-ConfigFromFile"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MASAKI/MouseX-ConfigFromFile-0.05.tar.gz"; - # hash = "sha256-khsxyxP8H5gqYC+OI4Fbet0joiQlfkN5Dih1BM6HlTQ="; - # }; - # buildInputs = [ TestUseAllModules ]; - # propagatedBuildInputs = [ MouseXTypesPathClass ]; - # meta = { - # description = "An abstract Mouse role for setting attributes from a configfile"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MouseXGetopt = buildPerlModule { - # pname = "MouseX-Getopt"; - # version = "0.38"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GF/GFUJI/MouseX-Getopt-0.38.tar.gz"; - # hash = "sha256-3j6o70Ut2VAeqMTtqHRLciRgJgKwRpJgft19YrefA48="; - # }; - # patches = [ - # ./perl-modules/MouseX-Getopt-gld-tests.patch - # ]; - # buildInputs = [ ModuleBuildTiny MouseXConfigFromFile MouseXSimpleConfig TestException TestWarn ]; - # propagatedBuildInputs = [ GetoptLongDescriptive Mouse ]; - # meta = { - # description = "A Mouse role for processing command line options"; - # homepage = "https://github.com/gfx/mousex-getopt"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXAttributeChained = buildPerlModule { - # pname = "MooseX-Attribute-Chained"; - # version = "1.0.3"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TOMHUKINS/MooseX-Attribute-Chained-1.0.3.tar.gz"; - # hash = "sha256-5+OKp8O3i1c06dQ892gy/OAHZ+alPV3Xmhci2GdtXk4="; - # }; - # propagatedBuildInputs = [ Moose ]; - # meta = { - # description = "Attribute that returns the instance to allow for chaining"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXAttributeHelpers = buildPerlModule { - # pname = "MooseX-AttributeHelpers"; - # version = "0.25"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-AttributeHelpers-0.25.tar.gz"; - # hash = "sha256-sMgZ7IOZmyWLJI+CBZ+ll1oM7jZUI6u+4O+spUAcXsY="; - # }; - # buildInputs = [ ModuleBuildTiny TestException ]; - # propagatedBuildInputs = [ Moose ]; - # meta = { - # description = "(DEPRECATED) Extend your attribute interfaces"; - # homepage = "https://github.com/moose/MooseX-AttributeHelpers"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXClone = buildPerlModule { - # pname = "MooseX-Clone"; - # version = "0.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Clone-0.06.tar.gz"; - # hash = "sha256-y9eCXbnnSwU/UkVEoBTwZv3OKQMW67Vo+HZ5GBs5jac="; - # }; - # propagatedBuildInputs = [ DataVisitor HashUtilFieldHashCompat namespaceautoclean ]; - # buildInputs = [ ModuleBuildTiny ]; - # meta = { - # description = "Fine-grained cloning support for Moose objects"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXConfigFromFile = buildPerlModule { - # pname = "MooseX-ConfigFromFile"; - # version = "0.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-ConfigFromFile-0.14.tar.gz"; - # hash = "sha256-mtNDzZ+G1xS+m1S5xopEPYrMZQG2rWsV6coBMLLpbwg="; - # }; - # buildInputs = [ ModuleBuildTiny TestDeep TestFatal TestRequires TestWithoutModule ]; - # propagatedBuildInputs = [ MooseXTypesPathTiny ]; - # meta = { - # description = "An abstract Moose role for setting attributes from a configfile"; - # homepage = "https://github.com/moose/MooseX-ConfigFromFile"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXDaemonize = buildPerlModule { - # pname = "MooseX-Daemonize"; - # version = "0.22"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Daemonize-0.22.tar.gz"; - # hash = "sha256-in+5mdypuAKoUTahAUGy0zeKPs3gUnwd9z1V7bKOWbM="; - # }; - # buildInputs = [ DevelCheckOS ModuleBuildTiny TestFatal ]; - # propagatedBuildInputs = [ MooseXGetopt MooseXTypesPathClass ]; - # meta = { - # description = "Role for daemonizing your Moose based application"; - # homepage = "https://github.com/moose/MooseX-Daemonize"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXEmulateClassAccessorFast = buildPerlPackage { - # pname = "MooseX-Emulate-Class-Accessor-Fast"; - # version = "0.009032"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HAARG/MooseX-Emulate-Class-Accessor-Fast-0.009032.tar.gz"; - # hash = "sha256-gu637x8NJUGK5AbqJpErJBQo1LKrlRDV6d6z9ywYeZQ="; - # }; - # buildInputs = [ TestException ]; - # propagatedBuildInputs = [ Moose namespaceclean ]; - # meta = { - # description = "Emulate Class::Accessor::Fast behavior using Moose attributes"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXGetopt = buildPerlModule { - # pname = "MooseX-Getopt"; - # version = "0.75"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Getopt-0.75.tar.gz"; - # hash = "sha256-Y/O+W7K8OB6eSLW5XAMw8hcYtmVuj/sZyZ0u4KwU68g="; - # }; - # buildInputs = [ ModuleBuildTiny MooseXStrictConstructor PathTiny TestDeep TestFatal TestNeeds TestTrap TestWarnings ]; - # propagatedBuildInputs = [ GetoptLongDescriptive MooseXRoleParameterized ]; - # meta = { - # description = "A Moose role for processing command line options"; - # homepage = "https://github.com/moose/MooseX-Getopt"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXHasOptions = buildPerlPackage { - # pname = "MooseX-Has-Options"; - # version = "0.003"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PS/PSHANGOV/MooseX-Has-Options-0.003.tar.gz"; - # hash = "sha256-B8Ic+O1QCycgIP+NoZ8ZRyi7QU4AEqLwzFTvLvYiKmg="; - # }; - # buildInputs = [ Moose TestDeep TestDifferences TestException TestMost TestWarn namespaceautoclean ]; - # propagatedBuildInputs = [ ClassLoad ListMoreUtils StringRewritePrefix ]; - # meta = { - # description = "Succinct options for Moose"; - # homepage = "https://github.com/pshangov/moosex-has-options"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXHasSugar = buildPerlPackage { - # pname = "MooseX-Has-Sugar"; - # version = "1.000006"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KE/KENTNL/MooseX-Has-Sugar-1.000006.tar.gz"; - # hash = "sha256-7+7T3bOo6hj0FtSF88KwQnFF0mfmM2jGUdSI6qjCjQk="; - # }; - # buildInputs = [ TestFatal namespaceclean ]; - # propagatedBuildInputs = [ SubExporterProgressive ]; - # meta = { - # description = "Sugar Syntax for moose 'has' fields"; - # homepage = "https://github.com/kentnl/MooseX-Has-Sugar"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXLazyRequire = buildPerlModule { - # pname = "MooseX-LazyRequire"; - # version = "0.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-LazyRequire-0.11.tar.gz"; - # hash = "sha256-72IMHgGdr5zz8jqUPSWpTJHpOrMSvNY74ul0DsC5Qog="; - # }; - # buildInputs = [ ModuleBuildTiny TestFatal ]; - # propagatedBuildInputs = [ Moose aliased namespaceautoclean ]; - # meta = { - # description = "Required attributes which fail only when trying to use them"; - # homepage = "https://github.com/moose/MooseX-LazyRequire"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXMarkAsMethods = buildPerlPackage { - # pname = "MooseX-MarkAsMethods"; - # version = "0.15"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RS/RSRCHBOY/MooseX-MarkAsMethods-0.15.tar.gz"; - # hash = "sha256-yezBM3bQ/326SBl3M3wz6nTl0makKLavMVUqKRnvfvg="; - # }; - # propagatedBuildInputs = [ Moose namespaceautoclean ]; - # meta = { - # description = "Mark overload code symbols as methods"; - # homepage = "https://metacpan.org/release/MooseX-MarkAsMethods"; - # license = with lib.licenses; [ lgpl21Only ]; - # }; - # }; - - # MooseXMethodAttributes = buildPerlPackage { - # pname = "MooseX-MethodAttributes"; - # version = "0.32"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-MethodAttributes-0.32.tar.gz"; - # hash = "sha256-yzOIZXS30t05xCwNzccHrNsK7H273pohwEImYDaMGXs="; - # }; - # buildInputs = [ MooseXRoleParameterized TestFatal TestNeeds ]; - # propagatedBuildInputs = [ Moose namespaceautoclean ]; - # meta = { - # description = "Code attribute introspection"; - # homepage = "https://github.com/moose/MooseX-MethodAttributes"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXNonMoose = buildPerlPackage { - # pname = "MooseX-NonMoose"; - # version = "0.26"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DO/DOY/MooseX-NonMoose-0.26.tar.gz"; - # hash = "sha256-y75S7PFgOCMfvX8sxrzhZqNWnIyzlq6A7EUXwuCNqn0="; - # }; - # buildInputs = [ TestFatal ]; - # propagatedBuildInputs = [ ListMoreUtils Moose ]; - # meta = { - # description = "Easy subclassing of non-Moose classes"; - # homepage = "https://metacpan.org/release/MooseX-NonMoose"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXOneArgNew = buildPerlPackage { - # pname = "MooseX-OneArgNew"; - # version = "0.007"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/MooseX-OneArgNew-0.007.tar.gz"; - # hash = "sha256-hCgkNfEWnPCddRP6k4fiCReRY1zzWgeLUAuCmu6gYTg="; - # }; - # propagatedBuildInputs = [ MooseXRoleParameterized ]; - # meta = { - # description = "Teach ->new to accept single, non-hashref arguments"; - # homepage = "https://github.com/rjbs/MooseX-OneArgNew"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXRelatedClassRoles = buildPerlPackage { - # pname = "MooseX-RelatedClassRoles"; - # version = "0.004"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HD/HDP/MooseX-RelatedClassRoles-0.004.tar.gz"; - # hash = "sha256-MNt6I33SYCIhb/+5cLmFKFNHEws2kjxxGqCVaty0fp8="; - # }; - # propagatedBuildInputs = [ MooseXRoleParameterized ]; - # meta = { description = "Apply roles to a class related to yours"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXParamsValidate = buildPerlPackage { - # pname = "MooseX-Params-Validate"; - # version = "0.21"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/MooseX-Params-Validate-0.21.tar.gz"; - # hash = "sha256-iClURqupmcu4+ZjX+5onAdZhc5SlHW1yTHdObZ/xOdk="; - # }; - # buildInputs = [ TestFatal ]; - # propagatedBuildInputs = [ DevelCaller Moose ParamsValidate ]; - # meta = { - # description = "An extension of Params::Validate using Moose's types"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXRoleParameterized = buildPerlModule { - # pname = "MooseX-Role-Parameterized"; - # version = "1.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Role-Parameterized-1.11.tar.gz"; - # hash = "sha256-HP52bF1/Dsq1f3M9zKQwoqKs1rmVdXFBuUCt42kr7J4="; - # }; - # buildInputs = [ CPANMetaCheck ModuleBuildTiny TestFatal TestNeeds ]; - # propagatedBuildInputs = [ Moose namespaceautoclean ]; - # meta = { - # description = "Moose roles with composition parameters"; - # homepage = "https://github.com/moose/MooseX-Role-Parameterized"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXRoleWithOverloading = buildPerlPackage { - # pname = "MooseX-Role-WithOverloading"; - # version = "0.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Role-WithOverloading-0.17.tar.gz"; - # hash = "sha256-krCV1z8SIPnC7S06qlugcutaot4gm3xFXaWocBuYaGU="; - # }; - # propagatedBuildInputs = [ Moose aliased namespaceautoclean ]; - # meta = { - # description = "(DEPRECATED) Roles which support overloading"; - # homepage = "https://github.com/moose/MooseX-Role-WithOverloading"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXRunnable = buildPerlModule { - # pname = "MooseX-Runnable"; - # version = "0.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Runnable-0.10.tar.gz"; - # hash = "sha256-QNj9G1UkrpZZZaHxRNegoMhQWUxSRAKyMZsk1cSvEZk="; - # }; - # buildInputs = [ ModuleBuildTiny TestFatal TestSimple13 TestTableDriven ]; - # propagatedBuildInputs = [ ListSomeUtils MooseXTypesPathTiny ]; - # meta = { - # description = "Tag a class as a runnable application"; - # homepage = "https://github.com/moose/MooseX-Runnable"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "mx-run"; - # }; - # }; - - # MooseXSemiAffordanceAccessor = buildPerlPackage { - # pname = "MooseX-SemiAffordanceAccessor"; - # version = "0.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/MooseX-SemiAffordanceAccessor-0.10.tar.gz"; - # hash = "sha256-pbhXdrzd7RaAJ6H/ZktBxfZYhnIc3VQ+OvnVN1misdU="; - # }; - # propagatedBuildInputs = [ Moose ]; - # meta = { - # description = "Name your accessors foo() and set_foo()"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # MooseXSetOnce = buildPerlPackage { - # pname = "MooseX-SetOnce"; - # version = "0.200002"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/MooseX-SetOnce-0.200002.tar.gz"; - # hash = "sha256-y+0Gt/zTU/DZm/gKh8HAtYEWBpcjGzrZpgjaIxuitlk="; - # }; - # buildInputs = [ TestFatal ]; - # propagatedBuildInputs = [ Moose ]; - # meta = { - # description = "Write-once, read-many attributes for Moose"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXSingleton = buildPerlModule { - # pname = "MooseX-Singleton"; - # version = "0.30"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Singleton-0.30.tar.gz"; - # hash = "sha256-ZYSy8xsdPrbdfiMShzjnP2wBWxUhOLCoFX09DVnQZUE="; - # }; - # buildInputs = [ ModuleBuildTiny TestFatal TestRequires TestWarnings ]; - # propagatedBuildInputs = [ Moose ]; - # meta = { - # description = "Turn your Moose class into a singleton"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXStorage = buildPerlPackage { - # pname = "MooseX-Storage"; - # version = "0.53"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Storage-0.53.tar.gz"; - # hash = "sha256-hwS/5QX2azQPYuhcn/MZwZ6WcLJtSwEskfThA7HarOA="; - # }; - # buildInputs = [ TestDeep TestDeepType TestFatal TestNeeds TestDeepJSON TestWithoutModule DigestHMAC MooseXTypes ]; - # propagatedBuildInputs = [ ModuleRuntime Moose MooseXRoleParameterized PodCoverage StringRewritePrefix namespaceautoclean IOStringy JSON JSONXS JSONMaybeXS CpanelJSONXS YAML YAMLOld YAMLTiny YAMLLibYAML YAMLSyck ]; - # meta = { - # description = "A serialization framework for Moose classes"; - # homepage = "https://github.com/moose/MooseX-Storage"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXStrictConstructor = buildPerlPackage { - # pname = "MooseX-StrictConstructor"; - # version = "0.21"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/MooseX-StrictConstructor-0.21.tar.gz"; - # hash = "sha256-xypa6Vg3Bszexx1AHcswVAE6dTa3UN8UNmE9hY6ikg0="; - # }; - # buildInputs = [ Moo TestFatal TestNeeds ]; - # propagatedBuildInputs = [ Moose namespaceautoclean ]; - # meta = { - # description = "Make your object constructors blow up on unknown attributes"; - # homepage = "https://metacpan.org/release/MooseX-StrictConstructor"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # MooseXTraits = buildPerlModule { - # pname = "MooseX-Traits"; - # version = "0.13"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Traits-0.13.tar.gz"; - # hash = "sha256-dK/gxPr047l8V/KJQ3yqYL7Mo0zVgh9IndTMnaT74po="; - # }; - # buildInputs = [ ModuleBuildTiny MooseXRoleParameterized TestFatal TestRequires TestSimple13 ]; - # propagatedBuildInputs = [ Moose namespaceautoclean ]; - # meta = { - # description = "Automatically apply roles at object creation time"; - # homepage = "https://github.com/moose/MooseX-Traits"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXTraitsPluggable = buildPerlPackage { - # pname = "MooseX-Traits-Pluggable"; - # version = "0.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RK/RKITOVER/MooseX-Traits-Pluggable-0.12.tar.gz"; - # hash = "sha256-q5a3lQ7L8puDb9/uu+Cqwiylc+cYO+fLfW0S3yKrWMo="; - # }; - # buildInputs = [ TestException ]; - # propagatedBuildInputs = [ ListMoreUtils Moose namespaceautoclean ]; - # meta = { - # description = "Trait loading and resolution for Moose"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXTypes = buildPerlModule { - # pname = "MooseX-Types"; - # version = "0.50"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-0.50.tar.gz"; - # hash = "sha256-nNh7NJLL8L6dLfkxeyrfn8MGY3cOaZBmVL6j9BsXywg="; - # }; - # buildInputs = [ ModuleBuildTiny TestFatal TestRequires ]; - # propagatedBuildInputs = [ CarpClan Moose SubExporterForMethods namespaceautoclean ]; - # meta = { - # description = "Organise your Moose types in libraries"; - # homepage = "https://github.com/moose/MooseX-Types"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXTypesCommon = buildPerlModule { - # pname = "MooseX-Types-Common"; - # version = "0.001014"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-Common-0.001014.tar.gz"; - # hash = "sha256-75Nxi20vJA1QtcOssadLTCoZGGllFHAAGoK+HzXQ7w8="; - # }; - # buildInputs = [ ModuleBuildTiny TestDeep TestWarnings ]; - # propagatedBuildInputs = [ MooseXTypes ]; - # meta = { - # description = "A library of commonly used type constraints"; - # homepage = "https://github.com/moose/MooseX-Types-Common"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXTypesDateTime = buildPerlModule { - # pname = "MooseX-Types-DateTime"; - # version = "0.13"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-DateTime-0.13.tar.gz"; - # hash = "sha256-uJ+iZjb2oX6qOGi0UUNARytou9whYaHXmiKhv1sdOcY="; - # }; - # buildInputs = [ ModuleBuildTiny TestFatal TestSimple13 ]; - # propagatedBuildInputs = [ DateTime MooseXTypes ]; - # meta = { - # description = "DateTime related constraints and coercions for Moose"; - # homepage = "https://github.com/moose/MooseX-Types-DateTime"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXTypesDateTimeMoreCoercions = buildPerlModule { - # pname = "MooseX-Types-DateTime-MoreCoercions"; - # version = "0.15"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-DateTime-MoreCoercions-0.15.tar.gz"; - # hash = "sha256-Ibs6WXcZiI7bbOqhMkGNXPkuy5KlDM43uUJZpV4ON5Y="; - # }; - # buildInputs = [ ModuleBuildTiny TestFatal TestSimple13 ]; - # propagatedBuildInputs = [ DateTimeXEasy MooseXTypesDateTime TimeDurationParse ]; - # meta = { - # description = "Extensions to MooseX::Types::DateTime"; - # homepage = "https://github.com/moose/MooseX-Types-DateTime-MoreCoercions"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXTypesLoadableClass = buildPerlModule { - # pname = "MooseX-Types-LoadableClass"; - # version = "0.015"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-LoadableClass-0.015.tar.gz"; - # hash = "sha256-4DfTd4JT3PkpRkNXFbraDmRJwKKAj6P/MqllBk1aO/Q="; - # }; - # buildInputs = [ ModuleBuildTiny TestFatal ]; - # propagatedBuildInputs = [ MooseXTypes ]; - # meta = { - # description = "ClassName type constraint with coercion to load the class"; - # homepage = "https://github.com/moose/MooseX-Types-LoadableClass"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXTypesPathClass = buildPerlModule { - # pname = "MooseX-Types-Path-Class"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-Path-Class-0.09.tar.gz"; - # hash = "sha256-54S6tTaYrpWnCahmMwYUX/7FVmjfbPMWFTM1I/vn734="; - # }; - # propagatedBuildInputs = [ MooseXTypes PathClass ]; - # buildInputs = [ ModuleBuildTiny TestNeeds ]; - # meta = { - # description = "A Path::Class type library for Moose"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXTypesPathTiny = buildPerlModule { - # pname = "MooseX-Types-Path-Tiny"; - # version = "0.012"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-Path-Tiny-0.012.tar.gz"; - # hash = "sha256-Ge7eAt1lTnD3PjTNevAGN2UXO8rv7v8b2+ITGOz9kVg="; - # }; - # buildInputs = [ Filepushd ModuleBuildTiny TestFatal ]; - # propagatedBuildInputs = [ MooseXGetopt MooseXTypesStringlike PathTiny ]; - # meta = { - # description = "Path::Tiny types and coercions for Moose"; - # homepage = "https://github.com/karenetheridge/moosex-types-path-tiny"; - # license = with lib.licenses; [ asl20 ]; - # }; - # }; - - # MooseXTypesPerl = buildPerlPackage { - # pname = "MooseX-Types-Perl"; - # version = "0.101344"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/MooseX-Types-Perl-0.101344.tar.gz"; - # hash = "sha256-h2RDVPdPplI1yyv8pEJ3kwp+q+UazF+B+2MVMKg1XiQ="; - # }; - # propagatedBuildInputs = [ MooseXTypes ]; - # meta = { - # description = "Moose types that check against Perl syntax"; - # homepage = "https://github.com/rjbs/MooseX-Types-Perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXTypesStringlike = buildPerlPackage { - # pname = "MooseX-Types-Stringlike"; - # version = "0.003"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/MooseX-Types-Stringlike-0.003.tar.gz"; - # hash = "sha256-LuNJ7FxSmm80f0L/ZA5HskVWS5PMowXfY8eCH1tVzxk="; - # }; - # propagatedBuildInputs = [ MooseXTypes ]; - # meta = { - # description = "Moose type constraints for strings or string-like objects"; - # homepage = "https://github.com/dagolden/MooseX-Types-Stringlike"; - # license = with lib.licenses; [ asl20 ]; - # }; - # }; - - # MooseXTypesStructured = buildPerlModule { - # pname = "MooseX-Types-Structured"; - # version = "0.36"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-Structured-0.36.tar.gz"; - # hash = "sha256-Q822UvljhyPjV3yw+LVGhiAkTJY252WYEeW0qAFgPVc="; - # }; - # buildInputs = [ DateTime ModuleBuildTiny MooseXTypesDateTime TestFatal TestNeeds ]; - # propagatedBuildInputs = [ DevelPartialDump MooseXTypes ]; - # meta = { - # description = "Structured Type Constraints for Moose"; - # homepage = "https://github.com/moose/MooseX-Types-Structured"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MooseXTypesURI = buildPerlModule { - # pname = "MooseX-Types-URI"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-URI-0.09.tar.gz"; - # hash = "sha256-Jxd1Ta25EIbhHSH+oGy6qaEuYBtB0VRDFQ7dfZUI7+g="; - # }; - # buildInputs = [ ModuleBuildTiny TestNeeds TestWithoutModule ]; - # propagatedBuildInputs = [ MooseXTypes URI URIFromHash namespaceautoclean ]; - # meta = { - # description = "URI related types and coercions for Moose"; - # homepage = "https://github.com/moose/MooseX-Types-URI"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MP3CutGapless = buildPerlPackage { - # pname = "MP3-Cut-Gapless"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AG/AGRUNDMA/MP3-Cut-Gapless-0.03.tar.gz"; - # hash = "sha256-PoS3OdHx4902FvhR3GV14WXTKEZ/AySGB5UOWVH+pPM="; - # }; - # propagatedBuildInputs = [ AudioCuefileParser ]; - # meta = { - # description = "Split an MP3 file without gaps (based on pcutmp3)"; - # license = with lib.licenses; [ artistic1 ]; - # }; - # }; - - # MP3Info = buildPerlPackage { - # pname = "MP3-Info"; - # version = "1.26"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JM/JMERELO/MP3-Info-1.26.tar.gz"; - # hash = "sha256-V2I0BzJCHyUCp3DWoSblhPLNljNR0rwle9J4w5vOi+c="; - # }; - # meta = { - # description = "Manipulate / fetch info from MP3 audio files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MP3Tag = buildPerlPackage { - # pname = "MP3-Tag"; - # version = "1.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IL/ILYAZ/modules/MP3-Tag-1.16.zip"; - # hash = "sha256-UDhQk6owAFa8Jiu2pACpbiGVl3wcXh6/FaXgdak3e4Y="; - # }; - # buildInputs = [ pkgs.unzip ]; - - # postPatch = '' - # substituteInPlace Makefile.PL --replace "'PL_FILES'" "#'PL_FILES'" - # ''; - # postFixup = '' - # perl data_pod.PL PERL5LIB:$PERL5LIB - # ''; - # outputs = [ "out" ]; - # meta = { - # description = "Module for reading tags of MP3 audio files"; - # license = with lib.licenses; [ artistic1 ]; - # }; - # }; - - # MockMonkeyPatch = buildPerlModule { - # pname = "Mock-MonkeyPatch"; - # version = "1.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JB/JBERGER/Mock-MonkeyPatch-1.02.tar.gz"; - # hash = "sha256-xbaUTKVP6DVXN2cwYO1OnvhyNyZXfXluHK5eVr8bAYE="; - # }; - # buildInputs = [ ModuleBuildTiny ]; - # meta = { - # description = "Monkey patching with test mocking in mind"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Mouse = buildPerlModule { - # pname = "Mouse"; - # version = "2.5.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SK/SKAJI/Mouse-v2.5.10.tar.gz"; - # hash = "sha256-zo3COUYVOkZ/8JdlFn7iWQ9cUCEg9IotlEFzPzmqMu4="; - # }; - # buildInputs = [ ModuleBuildXSUtil TestException TestFatal TestLeakTrace TestOutput TestRequires TryTiny ]; - # perlPreHook = "export LD=$CC"; - # env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isi686 "-fno-stack-protector"; - # hardeningDisable = lib.optional stdenv.isi686 "stackprotector"; - # meta = { - # description = "Moose minus the antlers"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MouseXNativeTraits = buildPerlPackage { - # pname = "MouseX-NativeTraits"; - # version = "1.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GF/GFUJI/MouseX-NativeTraits-1.09.tar.gz"; - # hash = "sha256-+KW/WihwLfsTyAk75cQcq5xfwcXSR6uR4i591ydky14="; - # }; - # buildInputs = [ AnyMoose TestFatal ]; - # propagatedBuildInputs = [ Mouse ]; - # meta = { - # description = "Extend your attribute interfaces for Mouse"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - MozillaCA = buildPerlPackage { - pname = "Mozilla-CA"; - version = "20230821"; - src = fetchurl { - url = "mirror://cpan/authors/id/L/LW/LWP/Mozilla-CA-20230821.tar.gz"; - hash = "sha256-MuHQBFKZAEBFucTRbC2q5FOiFiCIc97qJED3EmCnzaE="; - }; - - postPatch = '' - ln -s --force ${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt lib/Mozilla/CA/cacert.pem - ''; - - meta = { - description = "Mozilla's CA cert bundle in PEM format"; - homepage = "https://github.com/gisle/mozilla-ca"; - license = with lib.licenses; [ mpl20 ]; - }; - }; - - MozillaLdap = callPackage ./perl-modules/Mozilla-LDAP { }; - - MROCompat = buildPerlPackage { - pname = "MRO-Compat"; - version = "0.15"; - src = fetchurl { - url = "mirror://cpan/authors/id/H/HA/HAARG/MRO-Compat-0.15.tar.gz"; - hash = "sha256-DUU1+I5Dur2Eq2BIZiFfxNBDmL1Nt7IYUtSjGxwV72E="; - }; - meta = { - description = "Mro::* interface compatibility for Perls < 5.9.5"; - homepage = "https://metacpan.org/release/MRO-Compat"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # MsgPackRaw = buildPerlPackage rec { - # pname = "MsgPack-Raw"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JA/JACQUESG/MsgPack-Raw-${version}.tar.gz"; - # hash = "sha256-hVnitkzZjZmrxmbt8qTIckyVNGEmFq8R9OsLvQ1CLaw="; - # }; - # checkInputs = [ TestPod TestPodCoverage ]; - # meta = with lib; { - # description = "Perl bindings to the msgpack C library"; - # homepage = "https://github.com/jacquesg/p5-MsgPack-Raw"; - # license = with licenses; [ gpl1Plus /* or */ artistic1 ]; - # maintainers = with maintainers; [ figsoda ]; - # }; - # }; - - # MusicBrainzDiscID = buildPerlPackage { - # pname = "MusicBrainz-DiscID"; - # version = "0.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NJ/NJH/MusicBrainz-DiscID-0.06.tar.gz"; - # hash = "sha256-ugtu0JiX/1Y7pZhy7pNxW+83FXUVsZt8bW8obmVI7Ks="; - # }; - # # Makefile.PL in this package uses which to find pkg-config -- make it use envvar instead - # postPatch = '' - # substituteInPlace Makefile.PL \ - # --replace-fail '`which pkg-config`' "'$PKG_CONFIG'" - # ''; - # doCheck = false; # The main test performs network access - # nativeBuildInputs = [ pkgs.pkg-config ]; - # propagatedBuildInputs = [ pkgs.libdiscid ]; - # meta = { - # description = "- Perl interface for the MusicBrainz libdiscid library"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # MusicBrainz = buildPerlModule { - # pname = "WebService-MusicBrainz"; - # version = "1.0.6"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BF/BFAIST/WebService-MusicBrainz-1.0.6.tar.gz"; - # hash = "sha256-XpH1ZZZ3w5CJv28lO0Eoe7zTVh9qJaB5Zc6DsmKIUuE="; - # }; - # propagatedBuildInputs = [ Mojolicious ]; - # doCheck = false; # Test performs network access. - # meta = { - # description = "API to search the musicbrainz.org database"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MustacheSimple = buildPerlPackage { - # pname = "Mustache-Simple"; - # version = "1.3.6"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CM/CMS/Mustache-Simple-v1.3.6.tar.gz"; - # hash = "sha256-UdtdUf9LJaZw2L+r45ArbUVDTs94spvB//Ga9uc4MAM="; - # }; - # propagatedBuildInputs = [ YAMLLibYAML ]; - # meta = { - # description = "A simple Mustache Renderer"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # MySQLDiff = buildPerlPackage { - # pname = "MySQL-Diff"; - # version = "0.60"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ES/ESTRABD/MySQL-Diff-0.60.tar.gz"; - # hash = "sha256-XXCApL1XFP+e9Taqd0p62zxvDnYCFcpsOdijVFNE+VY="; - # }; - # propagatedBuildInputs = [ pkgs.mariadb.client FileSlurp StringShellQuote ]; - # meta = { - # description = "Generates a database upgrade instruction set"; - # homepage = "https://github.com/estrabd/mysqldiff"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # mainProgram = "mysqldiff"; - # }; - # }; - - # namespaceautoclean = buildPerlPackage { - # pname = "namespace-autoclean"; - # version = "0.29"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/namespace-autoclean-0.29.tar.gz"; - # hash = "sha256-RevY5kpUqG+I2OAa5VISlnyKqP7VfoFAhd73YIrGWAQ="; - # }; - # buildInputs = [ TestNeeds ]; - # propagatedBuildInputs = [ SubIdentify namespaceclean ]; - # meta = { - # description = "Keep imports out of your namespace"; - # homepage = "https://github.com/moose/namespace-autoclean"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # namespaceclean = buildPerlPackage { - # pname = "namespace-clean"; - # version = "0.27"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/namespace-clean-0.27.tar.gz"; - # hash = "sha256-ihCoPD4YPcePnnt6pNCbR8EftOfTozuaEpEv0i4xr50="; - # }; - # propagatedBuildInputs = [ BHooksEndOfScope PackageStash ]; - # meta = { - # description = "Keep imports and functions out of your namespace"; - # homepage = "https://search.cpan.org/dist/namespace-clean"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NeovimExt = buildPerlPackage rec { - # pname = "Neovim-Ext"; - # version = "0.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JA/JACQUESG/Neovim-Ext-${version}.tar.gz"; - # hash = "sha256-bSzrMGLJZzfbpVbLIEYxMPxABocbJbfE9mzTgZ1FBLg="; - # }; - # propagatedBuildInputs = [ - # ClassAccessor - # EvalSafe - # IOAsync - # MsgPackRaw - # ]; - # checkInputs = [ - # ArchiveZip - # FileSlurper - # FileWhich - # ProcBackground - # TestPod - # TestPodCoverage - # ]; - # # TODO: fix tests - # doCheck = false; - # meta = with lib; { - # description = "Perl bindings for Neovim"; - # homepage = "https://github.com/jacquesg/p5-Neovim-Ext"; - # license = with licenses; [ gpl1Plus /* or */ artistic1 ]; - # maintainers = with maintainers; [ figsoda ]; - # }; - # }; - - # NetDNSNative = buildPerlPackage { - # pname = "Net-DNS-Native"; - # version = "0.22"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/O/OL/OLEG/Net-DNS-Native-0.22.tar.gz"; - # hash = "sha256-EI2d7bq5/69qDQFSVSbeGJSITpUL/YM3F+XNOJBcMNU="; - # }; - # meta = { - # description = "Non-blocking system DNS resolver"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ tomasajt ]; - # }; - # }; - - # NetIdent = buildPerlPackage { - # pname = "Net-Ident"; - # version = "1.25"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TODDR/Net-Ident-1.25.tar.gz"; - # hash = "sha256-LlvViwHCpm6ASaL42ck+G19tzlPg7jpIHOam9BHyyPg="; - # }; - # meta = { - # description = "Lookup the username on the remote end of a TCP/IP connection"; - # homepage = "https://github.com/toddr/Net-Ident"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # NetINET6Glue = buildPerlPackage { - # pname = "Net-INET6Glue"; - # version = "0.604"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SU/SULLR/Net-INET6Glue-0.604.tar.gz"; - # hash = "sha256-kMNjmPlQFBTMzaiynyOn908vK09VLhLevxYhjHNbuxc="; - # }; - # meta = { - # description = "Make common modules IPv6 ready by hotpatching"; - # homepage = "https://github.com/noxxi/p5-net-inet6glue"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetAddrIP = buildPerlPackage { - # pname = "NetAddr-IP"; - # version = "4.079"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIKER/NetAddr-IP-4.079.tar.gz"; - # hash = "sha256-7FqC37cCi80ouz1Wn5XYfdQWbMGYZ/IYTtOln21soOc="; - # }; - # meta = { - # description = "Manages IPv4 and IPv6 addresses and subnets"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetAmazonAWSSign = buildPerlPackage { - # pname = "Net-Amazon-AWSSign"; - # version = "0.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NA/NATON/Net-Amazon-AWSSign-0.12.tar.gz"; - # hash = "sha256-HQQMazseorVlkFefnBjgUAtsaiF7WdiDHw2WBMqX7T4="; - # }; - # propagatedBuildInputs = [ URI ]; - # meta = { - # description = "Perl extension to create signatures for AWS requests"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetAmazonEC2 = buildPerlPackage { - # pname = "Net-Amazon-EC2"; - # version = "0.36"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MALLEN/Net-Amazon-EC2-0.36.tar.gz"; - # hash = "sha256-Tig2kufwZsJBjtrpIz47YkAPk1X01SH5lRXlL3t9cvE="; - # }; - # propagatedBuildInputs = [ LWPProtocolHttps Moose ParamsValidate XMLSimple ]; - # buildInputs = [ TestException ]; - # meta = { - # description = "Perl interface to the Amazon Elastic Compute Cloud (EC2) environment"; - # homepage = "https://metacpan.org/dist/Net-Amazon-EC2"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetAmazonMechanicalTurk = buildPerlModule { - # pname = "Net-Amazon-MechanicalTurk"; - # version = "1.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MT/MTURK/Net-Amazon-MechanicalTurk-1.02.tar.gz"; - # hash = "sha256-jQlewUjglLJ/TMzHnhyvnDHzzA5t2CzoqORCyNx7D44="; - # }; - # patches = - # [ ./perl-modules/net-amazon-mechanicalturk.patch ]; - # propagatedBuildInputs = [ DigestHMAC LWPProtocolHttps XMLParser ]; - # doCheck = false; /* wants network */ - # meta = { - # description = "Amazon Mechanical Turk SDK for Perl"; - # license = with lib.licenses; [ asl20 ]; - # }; - # }; - - # NetAmazonS3 = buildPerlPackage { - # pname = "Net-Amazon-S3"; - # version = "0.991"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BA/BARNEY/Net-Amazon-S3-0.991.tar.gz"; - # hash = "sha256-+3r4umSUjRo/MdgJ13EFImiA8GmYrH8Rn4JITmijI9M="; - # }; - # buildInputs = [ TestDeep TestException TestLWPUserAgent TestMockTime TestWarnings ]; - # propagatedBuildInputs = [ DataStreamBulk DateTimeFormatHTTP DigestHMAC DigestMD5File FileFindRule LWPUserAgentDetermined MIMETypes MooseXRoleParameterized MooseXStrictConstructor MooseXTypesDateTimeMoreCoercions RefUtil RegexpCommon SafeIsa SubOverride TermEncoding TermProgressBarSimple XMLLibXML ]; - # meta = { - # description = "Use the Amazon S3 - Simple Storage Service"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "s3cl"; - # }; - # }; - - # NetAmazonS3Policy = buildPerlModule { - # pname = "Net-Amazon-S3-Policy"; - # version = "0.1.6"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PO/POLETTIX/Net-Amazon-S3-Policy-0.1.6.tar.gz"; - # hash = "sha256-0rFukwhnSHQ0tHdHhooAP0scyECy15WfiPw2vQ2G2RQ="; - # }; - # propagatedBuildInputs = [ JSON ]; - # meta = { - # description = "Manage Amazon S3 policies for HTTP POST forms"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetAsyncHTTP = buildPerlModule { - # pname = "Net-Async-HTTP"; - # version = "0.49"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Async-HTTP-0.49.tar.gz"; - # hash = "sha256-OSBtBpSV0bhq7jeqitPJM0025ZzObPec04asDPN5jNs="; - # }; - # buildInputs = [ HTTPCookies Test2Suite TestMetricsAny ]; - # propagatedBuildInputs = [ Future HTTPMessage IOAsync MetricsAny StructDumb URI ]; - # preCheck = lib.optionalString stdenv.isDarwin '' - # # network tests fail on Darwin/sandbox, so disable these - # rm -f t/20local-connect.t t/22local-connect-pipeline.t t/23local-connect-redir.t - # rm -f t/90rt75615.t t/90rt75616.t t/90rt93232.t - # ''; - # meta = { - # description = "Use HTTP with IO::Async"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.zakame ]; - # }; - # }; - - # NetAsyncHTTPServer = buildPerlModule { - # pname = "Net-Async-HTTP-Server"; - # version = "0.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Async-HTTP-Server-0.14.tar.gz"; - # hash = "sha256-6nG3kcEtD6X3JubMA/Zuo20bRhNxj2xb84EzvRinsrY="; - # }; - # buildInputs = [ Test2Suite TestMetricsAny TestRefcount ]; - # propagatedBuildInputs = [ HTTPMessage IOAsync MetricsAny ]; - # meta = { - # description = "Serve HTTP with IO::Async"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.anoa ]; - # }; - # }; - - # NetAsyncPing = buildPerlPackage { - # pname = "Net-Async-Ping"; - # version = "0.004001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AB/ABRAXXA/Net-Async-Ping-0.004001.tar.gz"; - # hash = "sha256-kFfoUHYMcT2rB6DBycj4isEfbnTop0gcEObyc12K6Vs="; - # }; - # propagatedBuildInputs = [ IOAsync Moo NetFrameLayerIPv6 namespaceclean ]; - # buildInputs = [ TestFatal ]; - # preCheck = "rm t/icmp_ps.t t/icmpv6_ps.t"; # ping socket tests fail - # meta = { - # description = "Asyncronously check remote host for reachability"; - # homepage = "https://github.com/frioux/Net-Async-Ping"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetAsyncWebSocket = buildPerlModule { - # pname = "Net-Async-WebSocket"; - # version = "0.13"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Async-WebSocket-0.13.tar.gz"; - # hash = "sha256-DayDQtPHii/syr1GZxRd1a3U+4zRjRVtKXoead/hFgA="; - # }; - # propagatedBuildInputs = [ IOAsync ProtocolWebSocket URI ]; - # preCheck = lib.optionalString stdenv.isDarwin '' - # # network tests fail on Darwin/sandbox, so disable these - # rm -f t/02server.t t/03cross.t - # ''; - # meta = { - # description = "Use WebSockets with IO::Async"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.zakame ]; - # }; - # }; - - # NetAMQP = buildPerlModule { - # pname = "Net-AMQP"; - # version = "0.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CH/CHIPS/Net-AMQP-0.06.tar.gz"; - # hash = "sha256-Cyun3izX3dX+ECouKueuuiHqqxB4vzv9PFpyKTclY4A="; - # }; - # doCheck = false; # failures on 32bit - # buildInputs = [ TestDeep ]; - # propagatedBuildInputs = [ ClassAccessor ClassDataInheritable XMLLibXML ]; - # meta = { - # description = "Advanced Message Queue Protocol (de)serialization and representation"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetCIDR = buildPerlPackage { - # pname = "Net-CIDR"; - # version = "0.21"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MR/MRSAM/Net-CIDR-0.21.tar.gz"; - # hash = "sha256-MPMDwHNZSNozNw3sx+h8+mi8QwqkS4HRj42CO20av78="; - # }; - # meta = { - # description = "Manipulate IPv4/IPv6 netblocks in CIDR notation"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.bjornfor ]; - # }; - # }; - - # NetCIDRLite = buildPerlPackage { - # pname = "Net-CIDR-Lite"; - # version = "0.22"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/ST/STIGTSP/Net-CIDR-Lite-0.22.tar.gz"; - # hash = "sha256-QxfYyzQaYXueCIjaQ8Cc3//8sMnt97jJko10KlY7hRc="; - # }; - # meta = { - # description = "Perl extension for merging IPv4 or IPv6 CIDR addresses"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # NetCoverArtArchive = buildPerlPackage { - # pname = "Net-CoverArtArchive"; - # version = "1.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CY/CYCLES/Net-CoverArtArchive-1.02.tar.gz"; - # hash = "sha256-VyXiCCZDVq1rP6++uXVqz8Kny5WDiMpcCHqsJzNF3dE="; - # }; - # buildInputs = [ FileFindRule ]; - # propagatedBuildInputs = [ JSONAny LWP Moose namespaceautoclean ]; - # meta = { - # description = "Query the coverartarchive.org"; - # homepage = "https://github.com/metabrainz/CoverArtArchive"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetCUPS = buildPerlPackage { - # pname = "Net-CUPS"; - # version = "0.64"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NI/NINE/Net-CUPS-0.64.tar.gz"; - # hash = "sha256-17x3/w9iv4dMhDxZDrEqgLvUR0mi+3Tb7URcNdDoWoU="; - # }; - # buildInputs = [ pkgs.cups pkgs.cups-filters ]; - # NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.cups}/lib -lcups"; - # meta = { - # description = "Common Unix Printing System Interface"; - # homepage = "https://github.com/niner/perl-Net-CUPS"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetDBus = buildPerlPackage { - # pname = "Net-DBus"; - # version = "1.2.0"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DANBERR/Net-DBus-1.2.0.tar.gz"; - # hash = "sha256-56GsnvShI1s/29WIj4bDRxgjBkZ715q8mwdWpktEHLw="; - # }; - # nativeBuildInputs = [ buildPackages.pkg-config ]; - # buildInputs = [ pkgs.dbus TestPod TestPodCoverage ]; - # propagatedBuildInputs = [ XMLTwig ]; - - # # https://gitlab.com/berrange/perl-net-dbus/-/merge_requests/19 - # patches = fetchpatch { - # url = "https://gitlab.com/berrange/perl-net-dbus/-/commit/6bac8f188fb06e5e5edd27aee672d66b7c28caa4.patch"; - # hash = "sha256-68kyUxM3E7w99rM2AZWZQMpGcaQxfSWaBs3DnmwnzqY="; - # }; - - # postPatch = '' - # substituteInPlace Makefile.PL --replace pkg-config $PKG_CONFIG - # ''; - - # meta = { - # description = "Extension for the DBus bindings"; - # homepage = "https://www.freedesktop.org/wiki/Software/dbus"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetDNS = buildPerlPackage { - # pname = "Net-DNS"; - # version = "1.44"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-1.44.tar.gz"; - # hash = "sha256-E9ftxLjOoBMhR/qsNXH2s8cdHQz9hExTDFoET0o+wx4="; - # }; - # propagatedBuildInputs = [ DigestHMAC ]; - # makeMakerFlags = [ "--noonline-tests" ]; - # meta = { - # description = "Perl Interface to the Domain Name System"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # NetDNSResolverMock = buildPerlPackage { - # pname = "Net-DNS-Resolver-Mock"; - # version = "1.20230216"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Net-DNS-Resolver-Mock-1.20230216.tar.gz"; - # hash = "sha256-7UkwV3/Rop1kNbWHVTPTso9cElijWDP+bKLLaiaFpJs="; - # }; - # propagatedBuildInputs = [ NetDNS ]; - # buildInputs = [ TestException ]; - # meta = { - # description = "Mock a DNS Resolver object for testing"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetDomainTLD = buildPerlPackage { - # pname = "Net-Domain-TLD"; - # version = "1.75"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AL/ALEXP/Net-Domain-TLD-1.75.tar.gz"; - # hash = "sha256-TDf4ERhNaKxBedSMEOoxki3V/KLBv/zc2VxaKjtAAu4="; - # }; - # meta = { - # description = "Work with TLD names"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetFastCGI = buildPerlPackage { - # pname = "Net-FastCGI"; - # version = "0.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CH/CHANSEN/Net-FastCGI-0.14.tar.gz"; - # hash = "sha256-EZOQCk/V6eupzNBuE4+RCSG3Ugf/i1JLZDqIyD61WWo="; - # }; - # buildInputs = [ TestException TestHexString ]; - # meta = { - # description = "FastCGI Toolkit"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetFrame = buildPerlModule { - # pname = "Net-Frame"; - # version = "1.21"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GO/GOMOR/Net-Frame-1.21.tar.gz"; - # hash = "sha256-vLNXootjnwyvfWLTPS5g/wv8z4lNAHzmAfY1UTiD1zk="; - # }; - # propagatedBuildInputs = [ BitVector ClassGomor NetIPv6Addr ]; - # preCheck = "rm t/13-gethostsubs.t"; # it performs DNS queries - # meta = { - # description = "The base framework for frame crafting"; - # license = with lib.licenses; [ artistic1 ]; - # }; - # }; - - # NetFrameLayerIPv6 = buildPerlModule { - # pname = "Net-Frame-Layer-IPv6"; - # version = "1.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GO/GOMOR/Net-Frame-Layer-IPv6-1.08.tar.gz"; - # hash = "sha256-ui2FK+jzf1iE4wfagriqPNeU4YoVyAdSGsLKKtE599c="; - # }; - # propagatedBuildInputs = [ NetFrame ]; - # meta = { - # description = "Internet Protocol v6 layer object"; - # license = with lib.licenses; [ artistic1 ]; - # }; - # }; - - # NetFreeDB = buildPerlPackage { - # pname = "Net-FreeDB"; - # version = "0.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DS/DSHULTZ/Net-FreeDB-0.10.tar.gz"; - # hash = "sha256-90PhIjjrFslIBK+0sxCwJUj3C8rxeRZOrlZ/i0mIroU="; - # }; - # buildInputs = [ TestDeep TestDifferences TestException TestMost TestWarn ]; - # propagatedBuildInputs = [ CDDBFile Moo ]; - # meta = { - # description = "OOP Interface to FreeDB Server(s)"; - # license = with lib.licenses; [ artistic1 ]; - # broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.NetFreeDB.x86_64-darwin - # }; - # }; - - NetHTTP = buildPerlPackage { - pname = "Net-HTTP"; - version = "6.23"; - src = fetchurl { - url = "mirror://cpan/authors/id/O/OA/OALDERS/Net-HTTP-6.23.tar.gz"; - hash = "sha256-DWXAndbIWJsq4RGBdNPBphcDtuz8FKNEKox0r2XgyU4="; - }; - propagatedBuildInputs = [ URI ]; - __darwinAllowLocalNetworking = true; - 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 ]; - }; - }; - - # NetHTTPSNB = buildPerlPackage { - # pname = "Net-HTTPS-NB"; - # version = "0.15"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/O/OL/OLEG/Net-HTTPS-NB-0.15.tar.gz"; - # hash = "sha256-amnPT6Vfuju70iYu4UKC7YMQc22PWslNGmxZfNEnjE8="; - # }; - # propagatedBuildInputs = [ IOSocketSSL NetHTTP ]; - # meta = { - # description = "Non-blocking HTTPS client"; - # homepage = "https://github.com/olegwtf/p5-Net-HTTPS-NB"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetIDNEncode = buildPerlModule { - # pname = "Net-IDN-Encode"; - # version = "2.500"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CF/CFAERBER/Net-IDN-Encode-2.500.tar.gz"; - # hash = "sha256-VUU2M+P/JM4yWzS8LIFXuYWZYqMatc8ov3zMHJs6Pqo="; - # }; - # buildInputs = [ TestNoWarnings ]; - # perlPreHook = "export LD=$CC"; - # meta = { - # description = "Internationalizing Domain Names in Applications (UTS #46)"; - # homepage = "https://metacpan.org/release/Net-IDN-Encode"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetIMAPClient = buildPerlPackage { - # pname = "Net-IMAP-Client"; - # version = "0.9507"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GA/GANGLION/Net-IMAP-Client-0.9507.tar.gz"; - # hash = "sha256-QE5vW7xQjPFnxAUqXhRwXv7sb7eTvPm1xCniX0cYNUk="; - # }; - # propagatedBuildInputs = [ IOSocketSSL ListMoreUtils ]; - # meta = { - # description = "Not so simple IMAP client library"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetIP = buildPerlPackage { - # pname = "Net-IP"; - # version = "1.26"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MANU/Net-IP-1.26.tar.gz"; - # hash = "sha256-BA8W8wZmR9dhtySjtwdU0oy9Hm/l6gHGPtHNhXEX1jk="; - # }; - # meta = { - # description = "Perl extension for manipulating IPv4/IPv6 addresses"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetIPLite = buildPerlPackage { - # pname = "Net-IP-Lite"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AL/ALEXKOM/Net-IP-Lite-0.03.tar.gz"; - # hash = "sha256-yZFubPqlO+J1N5zksqVQrhdt36tQ2tQ7Q+1D6CZ4Aqk="; - # }; - # buildInputs = [ TestException ]; - # meta = { - # description = "Perl extension for manipulating IPv4/IPv6 addresses"; - # homepage = "https://metacpan.org/pod/Net::IP::Lite"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # NetIPv4Addr = buildPerlPackage { - # pname = "Net-IPv4Addr"; - # version = "0.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FR/FRAJULAC/Net-IPv4Addr-0.10.tar.gz"; - # hash = "sha256-OEXeTzCxfIQrGSys6Iedu2IU3paSz6cPCq8JgUIqY/4="; - # }; - # meta = { - # description = "Perl extension for manipulating IPv4 addresses"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "ipv4calc"; - # }; - # }; - - # NetIPv6Addr = buildPerlPackage { - # pname = "Net-IPv6Addr"; - # version = "1.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BK/BKB/Net-IPv6Addr-1.02.tar.gz"; - # hash = "sha256-sjQBwSJv7o3+Yn9a4OkMVaxUcBDso5gRDcFjH0HJ7H0="; - # }; - # propagatedBuildInputs = [ MathBase85 NetIPv4Addr ]; - # meta = { - # description = "Check and manipulate IPv6 addresses"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetIPXS = buildPerlPackage { - # pname = "Net-IP-XS"; - # version = "0.22"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TOMHRR/Net-IP-XS-0.22.tar.gz"; - # hash = "sha256-JZe0aDizgur3S6XJnD9gpqC1poHsNqFBchJL9E9LGSA="; - # }; - # propagatedBuildInputs = [ IOCapture TieSimple ]; - # meta = { - # homepage = "https://github.com/tomhrr/p5-Net-IP-XS"; - # description = "IPv4/IPv6 address library"; - # license = with lib.licenses; [ gpl2Plus ]; - # }; - # }; - - # NetLDAPServer = buildPerlPackage { - # pname = "Net-LDAP-Server"; - # version = "0.43"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AA/AAR/Net-LDAP-Server-0.43.tar.gz"; - # hash = "sha256-3WxMtNMLwyEUsHh/qioeK0/t0bkcLvN5Zey6ETMbsGI="; - # }; - # propagatedBuildInputs = [ perlldap ConvertASN1 ]; - # meta = { - # description = "LDAP server side protocol handling"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetLDAPSID = buildPerlPackage { - # pname = "Net-LDAP-SID"; - # version = "0.001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KA/KARMAN/Net-LDAP-SID-0.001.tar.gz"; - # hash = "sha256-qMLNQGeQl/w7hCV24bU+w1/UNIGoalA4PutOJOu81tY="; - # }; - # meta = { - # description = "Active Directory Security Identifier manipulation"; - # homepage = "https://github.com/karpet/net-ldap-sid"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetLDAPServerTest = buildPerlPackage { - # pname = "Net-LDAP-Server-Test"; - # version = "0.22"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KA/KARMAN/Net-LDAP-Server-Test-0.22.tar.gz"; - # hash = "sha256-sSBxe18fb2sTsxQ3/dIY7g/GnrASGN4U2SL5Kc+NLY4="; - # }; - # propagatedBuildInputs = [ perlldap NetLDAPServer DataDump NetLDAPSID ]; - # meta = { - # description = "Test Net::LDAP code"; - # homepage = "https://github.com/karpet/net-ldap-server-test"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetLibIDN2 = buildPerlModule { - # pname = "Net-LibIDN2"; - # version = "1.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TH/THOR/Net-LibIDN2-1.02.tar.gz"; - # hash = "sha256-0fMK/GrPplQbAMCafkx059jkuknjJ3wLvEGuNcE5DQc="; - # }; - # propagatedBuildInputs = [ pkgs.libidn2 ]; - # meta = { - # description = "Perl bindings for GNU Libidn2"; - # homepage = "https://github.com/gnuthor/Net--LibIDN2"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetNetmask = buildPerlPackage { - # pname = "Net-Netmask"; - # version = "2.0002"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JM/JMASLAK/Net-Netmask-2.0002.tar.gz"; - # hash = "sha256-JKmy58a8wTAteXROukwCG/PeR/FJqvrM2U+bBC/dv5Q="; - # }; - # buildInputs = [ Test2Suite TestUseAllModules ]; - # meta = { - # description = "Understand and manipulate IP netmasks"; - # homepage = "https://search.cpan.org/~jmaslak/Net-Netmask"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetMPD = buildPerlModule { - # pname = "Net-MPD"; - # version = "0.07"; - # buildInputs = [ ModuleBuildTiny ]; - # src = fetchurl { - # url = "https://cpan.metacpan.org/authors/id/A/AB/ABERNDT/Net-MPD-0.07.tar.gz"; - # hash = "sha256-M4L7nG9cJd4mKPVhRCn6igB5FSFnjELaBoyZ57KU6VM="; - # }; - # meta = { - # description = "Communicate with an MPD server"; - # homepage = "https://metacpan.org/pod/Net::MPD"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # NetMQTTSimple = buildPerlPackage { - # pname = "Net-MQTT-Simple"; - # version = "1.28"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JU/JUERD/Net-MQTT-Simple-1.28.tar.gz"; - # hash = "sha256-Sp6hB+a8IuJrUzZ4oKPMbEI7N4TsP8ROjjM5t8Vr7gM="; - # }; - # meta = { - # description = "Minimal MQTT version 3 interface"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetNVD = buildPerlPackage { - # pname = "Net-NVD"; - # version = "0.0.3"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GA/GARU/Net-NVD-0.0.3.tar.gz"; - # hash = "sha256-uKZXEg+UsO7R2OvbA4i8M2DSj6Xw+CNrnNjNrovv5Bg="; - # }; - # propagatedBuildInputs = [ IOSocketSSL JSON ]; - # meta = { - # description = "Query CVE data from NIST's NVD (National Vulnerability Database)"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetOAuth = buildPerlModule { - # pname = "Net-OAuth"; - # version = "0.28"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KG/KGRENNAN/Net-OAuth-0.28.tar.gz"; - # hash = "sha256-e/wxnaCsV44Ali81o1DPUREKOjEwFtH9wwciAooikEw="; - # }; - # buildInputs = [ TestWarn ]; - # propagatedBuildInputs = [ ClassAccessor ClassDataInheritable DigestHMAC DigestSHA1 LWP ]; - # meta = { - # description = "An implementation of the OAuth protocol"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetPatricia = buildPerlPackage { - # pname = "Net-Patricia"; - # version = "1.22"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GR/GRUBER/Net-Patricia-1.22.tar.gz"; - # hash = "sha256-cINakm4cWo0DJMcv/+6C7rfsbBQd7gT9RGggtk9xxVI="; - # }; - # propagatedBuildInputs = [ NetCIDRLite Socket6 ]; - # meta = { - # description = "Patricia Trie perl module for fast IP address lookups"; - # license = with lib.licenses; [ gpl2Plus ]; - # }; - # }; - - # NetPing = buildPerlPackage { - # pname = "Net-Ping"; - # version = "2.75"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RU/RURBAN/Net-Ping-2.75.tar.gz"; - # hash = "sha256-tH3zz9lpLM0Aca05/nRxjrwy9ZcBVWpgT9FaCfCeDXQ="; - # }; - # meta = { - # description = "Check a remote host for reachability"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetDNSResolverProgrammable = buildPerlPackage { - # pname = "Net-DNS-Resolver-Programmable"; - # version = "0.009"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BI/BIGPRESH/Net-DNS-Resolver-Programmable-0.009.tar.gz"; - # hash = "sha256-gICiq3dmKVhZEa8Reb23xNwr6/1LXv13sR0drGJFS/g="; - # }; - # propagatedBuildInputs = [ NetDNS ]; - # meta = { - # description = "Programmable DNS resolver class for offline emulation of DNS"; - # homepage = "https://github.com/bigpresh/Net-DNS-Resolver-Programmable"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetPrometheus = buildPerlModule { - # pname = "Net-Prometheus"; - # version = "0.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Prometheus-0.12.tar.gz"; - # hash = "sha256-rs73NJygSW/yNahKkQ+KBDZtB/WqQfrieixKxbip6SM="; - # }; - # propagatedBuildInputs = [ RefUtil StructDumb URI ]; - # buildInputs = [ HTTPMessage TestFatal ]; - # meta = { - # description = "Export monitoring metrics for prometheus"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetSCP = buildPerlPackage { - # pname = "Net-SCP"; - # version = "0.08.reprise"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IV/IVAN/Net-SCP-0.08.reprise.tar.gz"; - # hash = "sha256-iKmy32nnaeWFWkCLGfYZFbguj+Bwq1z01SXdO4u+McE="; - # }; - # propagatedBuildInputs = [ pkgs.openssl ]; - # patchPhase = '' - # sed -i 's|$scp = "scp";|$scp = "${pkgs.openssh}/bin/scp";|' SCP.pm - # ''; - # buildInputs = [ NetSSH StringShellQuote ]; - # meta = { - # description = "Simple wrappers around ssh and scp commands"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetServer = buildPerlPackage { - # pname = "Net-Server"; - # version = "2.014"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RH/RHANDOM/Net-Server-2.014.tar.gz"; - # hash = "sha256-NAa5ylpmKgB17tR/t43hMWtgHJT2Kg7jSlVE25uqNyA="; - # }; - # doCheck = false; # seems to hang waiting for connections - # meta = { - # description = "Extensible Perl internet server"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "net-server"; - # }; - # }; - - # NetSFTPForeign = buildPerlPackage { - # pname = "Net-SFTP-Foreign"; - # version = "1.93"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SA/SALVA/Net-SFTP-Foreign-1.93.tar.gz"; - # hash = "sha256-bH1kJQh2hz2kNIAOUGCovvekZFHYH4F+N+Q8/aUaD3o="; - # }; - # propagatedBuildInputs = [ pkgs.openssl ]; - # patchPhase = '' - # sed -i "s|$ssh_cmd = 'ssh'|$ssh_cmd = '${pkgs.openssh}/bin/ssh'|" lib/Net/SFTP/Foreign/Backend/Unix.pm - # ''; - # meta = { - # description = "Secure File Transfer Protocol client"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetServerCoro = buildPerlPackage { - # pname = "Net-Server-Coro"; - # version = "1.3"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AL/ALEXMV/Net-Server-Coro-1.3.tar.gz"; - # hash = "sha256-HhpwKw3TkMPmKfip6EzKY7eU0eInlX9Cm2dgEHV3+4Y="; - # }; - # propagatedBuildInputs = [ Coro NetServer ]; - # meta = { - # description = "A co-operative multithreaded server using Coro"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # NetServerSSPrefork = buildPerlPackage { - # pname = "Net-Server-SS-PreFork"; - # version = "0.06pre"; - # src = fetchFromGitHub { - # owner = "kazuho"; - # repo = "p5-Net-Server-SS-PreFork"; - # rev = "5fccc0c270e25c65ef634304630af74b48807d21"; - # hash = "sha256-pveVyFdEe/TQCEI83RrQTWr7aoYrgOGaNqc1wJeiAnw="; - # }; - # nativeCheckInputs = [ HTTPMessage LWP TestSharedFork HTTPServerSimple TestTCP TestUNIXSock ]; - # buildInputs = [ ModuleInstall ]; - # propagatedBuildInputs = [ NetServer ServerStarter ]; - # meta = { - # description = "A hot-deployable variant of Net::Server::PreFork"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - NetSMTPSSL = buildPerlPackage { - pname = "Net-SMTP-SSL"; - version = "1.04"; - src = fetchurl { - url = "mirror://cpan/authors/id/R/RJ/RJBS/Net-SMTP-SSL-1.04.tar.gz"; - hash = "sha256-eynEWt0Z09UIS3Ufe6iajkBHmkRs4hz9nMdB5VgzKgA="; - }; - propagatedBuildInputs = [ IOSocketSSL ]; - meta = { - description = "SSL support for Net::SMTP"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # NetSMTPTLS = buildPerlPackage { - # pname = "Net-SMTP-TLS"; - # version = "0.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AW/AWESTHOLM/Net-SMTP-TLS-0.12.tar.gz"; - # hash = "sha256-7+dyZnrDdwK5a221KXzIJ0J6Ozo4GbekMVsIudRE5KU="; - # }; - # propagatedBuildInputs = [ DigestHMAC IOSocketSSL ]; - # meta = { - # description = "An SMTP client supporting TLS and AUTH"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetSMTPTLSButMaintained = buildPerlPackage { - # pname = "Net-SMTP-TLS-ButMaintained"; - # version = "0.24"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FA/FAYLAND/Net-SMTP-TLS-ButMaintained-0.24.tar.gz"; - # hash = "sha256-a5XAj3FXnYUcAYP1AqcAyGof7O9XDjzugybF5M5mJW4="; - # }; - # propagatedBuildInputs = [ DigestHMAC IOSocketSSL ]; - # meta = { - # description = "An SMTP client supporting TLS and AUTH (DEPRECATED, use Net::SMTPS instead)"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetSNMP = buildPerlModule { - # pname = "Net-SNMP"; - # version = "6.0.1"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DT/DTOWN/Net-SNMP-v6.0.1.tar.gz"; - # hash = "sha256-FMN7wcuz883H1sE+DyeoWfFM3P1epUoEZ6iLwlmwt0E="; - # }; - # doCheck = false; # The test suite fails, see https://rt.cpan.org/Public/Bug/Display.html?id=85799 - # meta = { - # description = "Object oriented interface to SNMP"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "snmpkey"; - # }; - # }; - - # NetSNPP = buildPerlPackage { - # pname = "Net-SNPP"; - # version = "1.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TOBEYA/Net-SNPP-1.17.tar.gz"; - # hash = "sha256-BrhR1kWWYl6GY1n7AX3Q0Ilz4OvFDDI/Sh1Q7N2GjnY="; - # }; - - # doCheck = false; - # meta = { - # description = "Simple Network Pager Protocol Client"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetSSH = buildPerlPackage { - # pname = "Net-SSH"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IV/IVAN/Net-SSH-0.09.tar.gz"; - # hash = "sha256-fHHHw8vpUyNN/iW8wa1+2w4fWgV4YB9VI7xgcCYqOBc="; - # }; - # propagatedBuildInputs = [ pkgs.openssl ]; - # patchPhase = '' - # sed -i 's|$ssh = "ssh";|$ssh = "${pkgs.openssh}/bin/ssh";|' SSH.pm - # ''; - # meta = { - # description = "Simple wrappers around ssh commands"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetSSHPerl = buildPerlPackage { - # pname = "Net-SSH-Perl"; - # version = "2.142"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BD/BDFOY/Net-SSH-Perl-2.142.tar.gz"; - # hash = "sha256-UAHbPllS/BjYXDF5Uhr2kT0VQ+tP30/ZfcYDpHSMLJY="; - # }; - # propagatedBuildInputs = [ CryptCurve25519 CryptIDEA CryptX FileHomeDir MathGMP StringCRC32 ]; - # preCheck = "export HOME=$TMPDIR"; - # meta = { - # description = "Perl client interface to SSH"; - # homepage = "https://search.cpan.org/dist/Net-SSH-Perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - NetSSLeay = buildPerlPackage { - pname = "Net-SSLeay"; - version = "1.92"; - src = fetchurl { - url = "mirror://cpan/authors/id/C/CH/CHRISN/Net-SSLeay-1.92.tar.gz"; - hash = "sha256-R8LyswDy5xYtcdaZ9jPdajWwYloAy9qMUKwBFEqTlqk="; - }; - buildInputs = [ pkgs.openssl pkgs.zlib ]; - doCheck = false; # Test performs network access. - preConfigure = '' - mkdir openssl - ln -s ${lib.getLib pkgs.openssl}/lib openssl - ln -s ${pkgs.openssl.bin}/bin openssl - ln -s ${pkgs.openssl.dev}/include openssl - export OPENSSL_PREFIX=$(realpath openssl) - ''; - meta = { - description = "Perl bindings for OpenSSL and LibreSSL"; - license = with lib.licenses; [ artistic2 ]; - }; - }; - - # NetStatsd = buildPerlPackage { - # pname = "Net-Statsd"; - # version = "0.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CO/COSIMO/Net-Statsd-0.12.tar.gz"; - # hash = "sha256-Y+RTYD2hZbxtHEygtV7aPSIE8EDFkwSkd4LFqniGVlw="; - # }; - # meta = { - # description = "Perl client for Etsy's statsd daemon"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "benchmark.pl"; - # }; - # }; - - # NetTelnet = buildPerlPackage { - # pname = "Net-Telnet"; - # version = "3.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JR/JROGERS/Net-Telnet-3.05.tar.gz"; - # hash = "sha256-Z39ouizSqCT64yP6guGDv349A8PEmckdkjvWKDeWp0M="; - # }; - # meta = { - # description = "Interact with TELNET port or other TCP ports"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetTwitterLite = buildPerlModule { - # pname = "Net-Twitter-Lite"; - # version = "0.12008"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MM/MMIMS/Net-Twitter-Lite-0.12008.tar.gz"; - # hash = "sha256-suq+Hyo/LGTezWDye8O0buZSVgsCTExWgRVhbI1KRo4="; - # }; - # buildInputs = [ ModuleBuildTiny TestFatal ]; - # propagatedBuildInputs = [ JSON LWPProtocolHttps ]; - # doCheck = false; - # meta = { - # description = "A perl API library for the Twitter API"; - # homepage = "https://github.com/semifor/net-twitter-lite"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetWhoisIP = buildPerlPackage { - # pname = "Net-Whois-IP"; - # version = "1.19"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BS/BSCHMITZ/Net-Whois-IP-1.19.tar.gz"; - # hash = "sha256-8JvfoPHSZltTSCa186hmI0mTDu0pmO/k2Nv5iBMUciI="; - # }; - # doCheck = false; - - # # https://rt.cpan.org/Public/Bug/Display.html?id=99377 - # postPatch = '' - # substituteInPlace IP.pm --replace " AutoLoader" "" - # ''; - # buildInputs = [ RegexpIPv6 ]; - # meta = { - # description = "Perl extension for looking up the whois information for ip addresses"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetWorks = buildPerlPackage { - # pname = "Net-Works"; - # version = "0.22"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MAXMIND/Net-Works-0.22.tar.gz"; - # hash = "sha256-CsmyPfvKGE4ocpskU5S8ZpOq22/EUcqplbS3GewO6f8="; - # }; - # propagatedBuildInputs = [ ListAllUtils MathInt128 Moo namespaceautoclean ]; - # buildInputs = [ TestFatal ]; - # meta = { - # description = "Sane APIs for IP addresses and networks"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NumberBytesHuman = buildPerlPackage { - # pname = "Number-Bytes-Human"; - # version = "0.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FE/FERREIRA/Number-Bytes-Human-0.11.tar.gz"; - # hash = "sha256-X8ecSbC0DfeAR5xDaWOBND4ratH+UoWfYLxltm6+byw="; - # }; - # meta = { - # description = "Convert byte count to human readable format"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NumberCompare = buildPerlPackage { - # pname = "Number-Compare"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RC/RCLAMP/Number-Compare-0.03.tar.gz"; - # hash = "sha256-gyk3N+gDtDESgwRD+1II7FIIoubqUS7VTvjk3SuICCc="; - # }; - # meta = { - # description = "Numeric comparisons"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NumberFormat = buildPerlPackage { - # pname = "Number-Format"; - # version = "1.76"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Number-Format-1.76.tar.gz"; - # hash = "sha256-DgBg6zY2NaiFcGxqJvX8qv6udZ97Ksrkndpw4ZXdRNY="; - # }; - # meta = { - # description = "Perl extension for formatting numbers"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NumberFraction = buildPerlModule { - # pname = "Number-Fraction"; - # version = "3.0.4"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAVECROSS/Number-Fraction-v3.0.4.tar.gz"; - # hash = "sha256-xkGcird4/XKbENfmp487ewf8CJV8H3nlZm3Ny01iwIU="; - # }; - # propagatedBuildInputs = [ Moo MooXTypesMooseLike ]; - # meta = { - # description = "Perl extension to model fractions"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NumberMisc = buildPerlModule { - # pname = "Number-Misc"; - # version = "1.2"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIKO/Number-Misc-1.2.tar.gz"; - # hash = "sha256-d7m2jGAKBpzxb02BJuyzIVHmvNNLDtsXt4re5onckdg="; - # }; - # meta = { - # description = "Number::Misc - handy utilities for numbers"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NumberPhone = buildPerlPackage { - # pname = "Number-Phone"; - # version = "4.0000"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Number-Phone-4.0000.tar.gz"; - # hash = "sha256-H0mX/oMJSrDNgUDwvn/cHz+JGQKareajOYH4fLBIZjQ="; - # }; - # buildInputs = [ DevelHide FileShareDirInstall ParallelForkManager TestDifferences TestWarnings ]; - # propagatedBuildInputs = [ DataDumperConcise DataCompactReadonly DevelCheckOS DevelDeprecationsEnvironmental FileFindRule FileShareDir ]; - # preCheck = '' - # # Remove slow memory hungry tests - # rm t/fork.t - # rm t/uk_slurp.t - # ''; - # meta = { - # description = "Large suite of perl modules for parsing and dealing with phone numbers"; - # homepage = "https://github.com/DrHyde/perl-modules-Number-Phone"; - # license = with lib.licenses; [ artistic1 gpl2Only asl20 ]; - # }; - # }; - - # NumberWithError = buildPerlPackage { - # pname = "Number-WithError"; - # version = "1.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SM/SMUELLER/Number-WithError-1.01.tar.gz"; - # hash = "sha256-3/agcn54ROpng3vfrdVSuG9rIW0Y7o7kaEKyLM7w9VQ="; - # }; - # propagatedBuildInputs = [ ParamsUtil prefork ]; - # buildInputs = [ TestLectroTest ]; - # meta = { - # description = "Numbers with error propagation and scientific rounding"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NTLM = buildPerlPackage { - # pname = "NTLM"; - # version = "1.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NB/NBEBOUT/NTLM-1.09.tar.gz"; - # hash = "sha256-yCPjDNp2vBVjblhDAslg4rXu75UXwkSPdFRJiJMVH4U="; - # }; - # propagatedBuildInputs = [ DigestHMAC ]; - # meta = { - # description = "An NTLM authentication module"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.pSub ]; - # }; - # }; - - # ObjectAccessor = buildPerlPackage { - # pname = "Object-Accessor"; - # version = "0.48"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BI/BINGOS/Object-Accessor-0.48.tar.gz"; - # hash = "sha256-dsuCSie2tOVgQJ/Pb9Wzv7vTi3Lx89N+0LVL2cC66t4="; - # }; - # meta = { - # description = "Per object accessors"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ObjectEvent = buildPerlPackage rec { - # pname = "Object-Event"; - # version = "1.23"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/EL/ELMEX/${pname}-${version}.tar.gz"; - # hash = "sha256-q2u4BQj0/dry1RsgyodqqwOFgqhrUijmQ1QRNIr1PII="; - # }; - # propagatedBuildInputs = [ AnyEvent commonsense ]; - # meta = { - # description = "A class that provides an event callback interface"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ObjectInsideOut = buildPerlModule { - # pname = "Object-InsideOut"; - # version = "4.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JD/JDHEDDEN/Object-InsideOut-4.05.tar.gz"; - # hash = "sha256-nf1sooInJDR+DrZ1nQBwlCWBRwOtXGa9tiFFeYaLysQ="; - # }; - # propagatedBuildInputs = [ ExceptionClass ]; - # meta = { - # description = "Comprehensive inside-out object support module"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ObjectPad = buildPerlModule { - # pname = "Object-Pad"; - # version = "0.804"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/Object-Pad-0.804.tar.gz"; - # hash = "sha256-z4jSquGKKHHX1/MPi6bU7lv5U+IP3KileME8dB0W0a0="; - # }; - # buildInputs = [ Test2Suite TestFatal TestRefcount ]; - # perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC"; - # propagatedBuildInputs = [ XSParseKeyword XSParseSublike ]; - # meta = { - # description = "A simple syntax for lexical field-based objects"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.zakame ]; - # }; - # }; - - # ObjectSignature = buildPerlPackage { - # pname = "Object-Signature"; - # version = "1.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Object-Signature-1.08.tar.gz"; - # hash = "sha256-hCFTyU2pPiucs7VN7lcrUGS79JmjanPDiiN5mgIDaYo="; - # }; - # meta = { - # description = "Generate cryptographic signatures for objects"; - # homepage = "https://github.com/karenetheridge/Object-Signature"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # OggVorbisHeaderPurePerl = buildPerlPackage { - # pname = "Ogg-Vorbis-Header-PurePerl"; - # version = "1.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAVECROSS/Ogg-Vorbis-Header-PurePerl-1.05.tar.gz"; - # hash = "sha256-Uh04CPQtcSKmsGwzpurm18OZR6q1fEyMyvzE9gP9pT4="; - # }; - - # # The testing mechanism is erorrneous upstream. See http://matrix.cpantesters.org/?dist=Ogg-Vorbis-Header-PurePerl+1.0 - # doCheck = false; - # meta = { - # description = "Access Ogg Vorbis info and comment fields"; - # license = with lib.licenses; [ artistic1 ]; - # }; - # }; - - # OLEStorage_Lite = buildPerlPackage { - # pname = "OLE-Storage_Lite"; - # version = "0.22"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JM/JMCNAMARA/OLE-Storage_Lite-0.22.tar.gz"; - # hash = "sha256-0FZtbCnTl+pzY3ncUVw2hJ9rlxB89wC6glBQXJhM+WU="; - # }; - # meta = { - # description = "Read and write OLE storage files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Opcodes = buildPerlPackage { - # pname = "Opcodes"; - # version = "0.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RU/RURBAN/Opcodes-0.14.tar.gz"; - # hash = "sha256-f3NlRH5NHFuHtDCRRI8EiOZ8nwNrJsAipUCc1z00OJM="; - # }; - # meta = { - # description = "More Opcodes information from opnames.h and opcode.h"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # OpenAPIClient = buildPerlPackage { - # pname = "OpenAPI-Client"; - # version = "1.07"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/OpenAPI-Client-1.07.tar.gz"; - # hash = "sha256-Ue1kHSg7j0u7wG0BwVZzm9K5qItO+Et7hPlQ+g7hTbM="; - # }; - # propagatedBuildInputs = [ MojoliciousPluginOpenAPI ]; - # meta = { - # description = "A client for talking to an Open API powered server"; - # homepage = "https://github.com/jhthorsen/openapi-client"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # OpenGL = buildPerlPackage rec { - # pname = "OpenGL"; - # version = "0.70"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CH/CHM/OpenGL-0.70.tar.gz"; - # hash = "sha256-sg4q9EBLSQGrNbumrV46iqYL/3JBPJkojwEBjEz4dOA="; - # }; - - # # FIXME: try with libGL + libGLU instead of libGLU libGL - # buildInputs = [ pkgs.libGLU pkgs.libGL pkgs.libGLU pkgs.freeglut pkgs.xorg.libX11 pkgs.xorg.libXi pkgs.xorg.libXmu pkgs.xorg.libXext pkgs.xdummy ]; - - # patches = [ ./perl-modules/perl-opengl.patch ]; - - # configurePhase = '' - # substituteInPlace Makefile.PL \ - # --replace "@@libpaths@@" '${lib.concatStringsSep "\n" (map (f: "-L${f}/lib") buildInputs)}' - - # cp -v ${./perl-modules/perl-opengl-gl-extensions.txt} utils/glversion.txt - - # perl Makefile.PL PREFIX=$out INSTALLDIRS=site $makeMakerFlags - # ''; - - # doCheck = false; - # meta = { - # description = "Perl OpenGL bindings"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; # taken from EPEL - # }; - # }; - - # OpenOfficeOODoc = buildPerlPackage { - # pname = "OpenOffice-OODoc"; - # version = "2.125"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JM/JMGDOC/OpenOffice-OODoc-2.125.tar.gz"; - # hash = "sha256-wRRIlwaTxCqLnpPaSMrJE1Fs4zqdRKZGhAD3rYeR2rY="; - # }; - # propagatedBuildInputs = [ ArchiveZip XMLTwig ]; - # meta = { - # description = "The Perl Open OpenDocument Connector"; - # license = with lib.licenses; [ lgpl21Only ]; - # maintainers = [ maintainers.wentasah ]; - # }; - # }; - - # NetOpenIDCommon = buildPerlPackage { - # pname = "Net-OpenID-Common"; - # version = "1.20"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/W/WR/WROG/Net-OpenID-Common-1.20.tar.gz"; - # hash = "sha256-q06X10pHcQ4NtKwMgi9/32Iq+GpgpSunIlWoicKdq8k="; - # }; - # propagatedBuildInputs = [ CryptDHGMP XMLSimple ]; - # meta = { - # description = "Libraries shared between Net::OpenID::Consumer and Net::OpenID::Server"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetOpenIDConsumer = buildPerlPackage { - # pname = "Net-OpenID-Consumer"; - # version = "1.18"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/W/WR/WROG/Net-OpenID-Consumer-1.18.tar.gz"; - # hash = "sha256-Dhw4b+fBhDBx3Zlr3KymEJEGZK5LXRJ8lf6u/Zk2Tzg="; - # }; - # propagatedBuildInputs = [ JSON NetOpenIDCommon ]; - # buildInputs = [ CGI ]; - # meta = { - # description = "Library for consumers of OpenID identities"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetOpenSSH = buildPerlPackage { - # pname = "Net-OpenSSH"; - # version = "0.84"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SA/SALVA/Net-OpenSSH-0.84.tar.gz"; - # hash = "sha256-h4DmLwGxzw20PJy3BclP9JSbAyIzvkvpH8kavHkVOfg="; - # }; - # meta = { - # description = "Perl SSH client package implemented on top of OpenSSH"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # NetZooKeeper = buildPerlPackage { - # pname = "Net-ZooKeeper"; - # version = "0.42pre"; - # src = fetchFromGitHub { - # owner = "mark-5"; - # repo = "p5-net-zookeeper"; - # rev = "66e1a360aff9c39af728c36092b540a4b6045f70"; - # hash = "sha256-NyY97EWtqWFtKJnwX2HDkKcyviKq57yRtWC7lzajiHY="; - # }; - # buildInputs = [ pkgs.zookeeper_mt ]; - # # fix "error: format not a string literal and no format arguments [-Werror=format-security]" - # hardeningDisable = [ "format" ]; - # # Make the async API accessible - # env.NIX_CFLAGS_COMPILE = "-DTHREADED"; - # NIX_CFLAGS_LINK = "-L${pkgs.zookeeper_mt.out}/lib -lzookeeper_mt"; - # # Most tests are skipped as no server is available in the sandbox. - # # `t/35_log.t` seems to suffer from a race condition; remove it. See - # # https://github.com/NixOS/nixpkgs/pull/104889#issuecomment-737144513 - # preCheck = '' - # rm t/35_log.t - # '' + lib.optionalString stdenv.isDarwin '' - # rm t/30_connect.t - # rm t/45_class.t - # ''; - # meta = { - # description = "Perl extension for Apache ZooKeeper"; - # homepage = "https://github.com/mark-5/p5-net-zookeeper"; - # license = with lib.licenses; [ asl20 ]; - # maintainers = teams.deshaw.members ++ [ maintainers.ztzg ]; - # }; - # }; - - # PackageConstants = buildPerlPackage { - # pname = "Package-Constants"; - # version = "0.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BI/BINGOS/Package-Constants-0.06.tar.gz"; - # hash = "sha256-C1i+eHBszE5L2butQXZ0cEJ/17LPrXSUid4QH4W8XfU="; - # }; - # meta = { - # description = "List constants defined in a package"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PackageDeprecationManager = buildPerlPackage { - # pname = "Package-DeprecationManager"; - # version = "0.18"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/Package-DeprecationManager-0.18.tar.gz"; - # hash = "sha256-to0/DO1Vt2Ff3btgKbifkqNP4N2Mb9a87/wVfVaDT+g="; - # }; - # buildInputs = [ TestFatal TestWarnings ]; - # propagatedBuildInputs = [ PackageStash ParamsUtil SubInstall SubName ]; - # meta = { - # description = "Manage deprecation warnings for your distribution"; - # homepage = "https://metacpan.org/release/Package-DeprecationManager"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # PatchReader = buildPerlPackage { - # pname = "PatchReader"; - # version = "0.9.6"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TM/TMANNERM/PatchReader-0.9.6.tar.gz"; - # hash = "sha256-uN43RgNHu1R03AGRbMsx3S/gzZIkLEoy1zDo6wh8Mjw="; - # }; - # meta = { - # description = "Utilities to read and manipulate patches and CVS"; - # license = with lib.licenses; [ artistic1 ]; - # }; - # }; - - # PackageStash = buildPerlPackage { - # pname = "Package-Stash"; - # version = "0.40"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Package-Stash-0.40.tar.gz"; - # hash = "sha256-WpcixtnLKe4TPl97CKU2J2KgtWM/9RcGQqWwaG6V4GY="; - # }; - # buildInputs = [ CPANMetaCheck TestFatal TestNeeds TestRequires ]; - # propagatedBuildInputs = [ DistCheckConflicts ModuleImplementation ]; - # meta = { - # description = "Routines for manipulating stashes"; - # homepage = "https://github.com/moose/Package-Stash"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "package-stash-conflicts"; - # }; - # }; - - # PackageStashXS = buildPerlPackage { - # pname = "Package-Stash-XS"; - # version = "0.30"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Package-Stash-XS-0.30.tar.gz"; - # hash = "sha256-JrrWXBlZxXN5s+E53HdvvsX3ApBmF+8nzcKT3fEjkjE="; - # }; - # buildInputs = [ TestFatal TestNeeds ]; - # meta = { - # description = "Faster and more correct implementation of the Package::Stash API"; - # homepage = "https://github.com/moose/Package-Stash-XS"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Pango = buildPerlPackage { - # pname = "Pango"; - # version = "1.227"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/X/XA/XAOC/Pango-1.227.tar.gz"; - # hash = "sha256-NLCkIt8/7NdZdYcEhVJFfUiudkxDu+/SqdYs62yLrHE="; - # }; - # buildInputs = [ pkgs.pango ]; - # propagatedBuildInputs = [ Cairo Glib ]; - # meta = { - # description = "Layout and render international text"; - # homepage = "https://gtk2-perl.sourceforge.net"; - # license = with lib.licenses; [ lgpl21Plus ]; - # }; - # }; - - # ParallelForkManager = buildPerlPackage { - # pname = "Parallel-ForkManager"; - # version = "2.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Y/YA/YANICK/Parallel-ForkManager-2.02.tar.gz"; - # hash = "sha256-wbKXCou2ZsPefKrEqPTbzAQ6uBm7wzdpLse/J62uRAQ="; - # }; - # buildInputs = [ TestWarn ]; - # propagatedBuildInputs = [ Moo ]; - # meta = { - # description = "A simple parallel processing fork manager"; - # homepage = "https://github.com/dluxhu/perl-parallel-forkmanager"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ParallelLoops = buildPerlPackage { - # pname = "Parallel-Loops"; - # version = "0.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PM/PMORCH/Parallel-Loops-0.12.tar.gz"; - # hash = "sha256-tmyP4v1RmHPIp7atHRoE3yAmkSJZteKKQeUdnJsVQVA="; - # }; - # propagatedBuildInputs = [ ParallelForkManager ]; - # meta = { - # description = "Execute loops using parallel forked subprocesses"; - # homepage = "https://github.com/pmorch/perl-Parallel-Loops"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ tomasajt ]; - # }; - # }; - - # ParallelPipes = buildPerlModule { - # pname = "Parallel-Pipes"; - # version = "0.200"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SK/SKAJI/Parallel-Pipes-0.200.tar.gz"; - # hash = "sha256-iLmFDqzJ1hjz6RpRyqOGxKZOgswYc1AzUkTjSbgREQY="; - # }; - # buildInputs = [ ModuleBuildTiny ]; - # meta = { - # description = "Parallel processing using pipe(2) for communication and synchronization"; - # homepage = "https://github.com/skaji/Parallel-Pipes"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.zakame ]; - # }; - # }; - - # ParallelPrefork = buildPerlPackage { - # pname = "Parallel-Prefork"; - # version = "0.18"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KA/KAZUHO/Parallel-Prefork-0.18.tar.gz"; - # hash = "sha256-8cH0jxrhR6WLyI+csvVw1rsV6kwNWJq9TDCE3clhWW4="; - # }; - # buildInputs = [ TestRequires TestSharedFork ]; - # propagatedBuildInputs = [ ClassAccessorLite ListMoreUtils ProcWait3 ScopeGuard SignalMask ]; - # meta = { - # description = "A simple prefork server framework"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ParamsClassify = buildPerlModule { - # pname = "Params-Classify"; - # version = "0.015"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Params-Classify-0.015.tar.gz"; - # hash = "sha256-OY7BXNiZ/Ni+89ueoXSL9jHxX2wyviA+R1tn31EKWRQ="; - # }; - # perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local' - # meta = { - # description = "Argument type classification"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ParamsUtil = buildPerlPackage { - # pname = "Params-Util"; - # version = "1.102"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RE/REHSACK/Params-Util-1.102.tar.gz"; - # hash = "sha256-SZuxtILbJP2id6UVJVlq0JLCvVHdUI+o/sLp+EkJdAI="; - # }; - # meta = { - # description = "Simple, compact and correct param-checking functions"; - # homepage = "https://metacpan.org/release/Params-Util"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ParamsValidate = buildPerlModule { - # pname = "Params-Validate"; - # version = "1.31"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/Params-Validate-1.31.tar.gz"; - # hash = "sha256-G/JRjvLEhp+RWQ4hn1RcjvEu1TzzE+DrVwSt9/Gylh4="; - # }; - # buildInputs = [ TestFatal TestRequires ]; - # propagatedBuildInputs = [ ModuleImplementation ]; - # perlPreHook = "export LD=$CC"; - # meta = { - # description = "Validate method/function parameters"; - # homepage = "https://metacpan.org/release/Params-Validate"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # ParamsValidationCompiler = buildPerlPackage { - # pname = "Params-ValidationCompiler"; - # version = "0.31"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/Params-ValidationCompiler-0.31.tar.gz"; - # hash = "sha256-e2SXFz8batsp9dUdjPnsNtLxIZQStLJBDp13qQHoSm0="; - # }; - # propagatedBuildInputs = [ EvalClosure ExceptionClass ]; - # buildInputs = [ Specio Test2PluginNoWarnings Test2Suite TestWithoutModule ]; - # meta = { - # description = "Build an optimized subroutine parameter validator once, use it forever"; - # homepage = "https://metacpan.org/release/Params-ValidationCompiler"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # Paranoid = buildPerlPackage { - # pname = "Paranoid"; - # version = "2.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CO/CORLISS/Paranoid/Paranoid-2.10.tar.gz"; - # hash = "sha256-vvS25l1cmk72C8qjF0hvOg0jm/2rRQqnEgLCl5i4dSk="; - # }; - # patches = [ ./perl-modules/Paranoid-blessed-path.patch ]; - # preConfigure = '' - # # Capture the path used when compiling this module as the "blessed" - # # system path, analogous to the module's own use of '/bin:/sbin'. - # sed -i "s#__BLESSED_PATH__#${pkgs.coreutils}/bin#" lib/Paranoid.pm t/01_init_core.t - # ''; - # meta = { - # description = "General function library for safer, more secure programming"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = teams.deshaw.members; - # }; - # }; - - # PARDist = buildPerlPackage { - # pname = "PAR-Dist"; - # version = "0.52"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RS/RSCHUPP/PAR-Dist-0.52.tar.gz"; - # hash = "sha256-y+ljAJ6nnSRUqF/heU9CW33cHoa3F0nIhNsp1gHqj4g="; - # }; - # meta = { - # description = "Create and manipulate PAR distributions"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PAUSEPermissions = buildPerlPackage { - # pname = "PAUSE-Permissions"; - # version = "0.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/PAUSE-Permissions-0.17.tar.gz"; - # hash = "sha256-ek6SDeODL5CfJV1aMj942M0hXGCMlJbNbJVwEsi0MQg="; - # }; - # propagatedBuildInputs = [ FileHomeDir HTTPDate MooXOptions TimeDurationParse ]; - # buildInputs = [ PathTiny ]; - # meta = { - # description = "Interface to PAUSE's module permissions file (06perms.txt)"; - # homepage = "https://github.com/neilb/PAUSE-Permissions"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "pause-permissions"; - # }; - # }; - - # Parent = buildPerlPackage { - # pname = "parent"; - # version = "0.241"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CO/CORION/parent-0.241.tar.gz"; - # hash = "sha256-sQs5YKs5l9q3Vx/+l1ukYtl50IZFB0Ch4Is5WedRKP4="; - # }; - # meta = { - # description = "Establish an ISA relationship with base classes at compile time"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ParseWin32Registry = buildPerlPackage { - # pname = "ParseWin32Registry"; - # version = "1.1"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JM/JMACFARLA/Parse-Win32Registry-1.1.tar.gz"; - # hash = "sha256-wWOyAr5q17WPSEZJT/crjJqXloPKmU5DgOmsZWTcBbo="; - # }; - # meta = with lib; { - # description = "Module for parsing Windows Registry files"; - # license = with licenses; [ artistic1 gpl1Only ]; - # }; - # }; - - # ParseEDID = buildPerlPackage { - # pname = "Parse-Edid"; - # version = "1.0.7"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GR/GROUSSE/Parse-EDID-1.0.7.tar.gz"; - # hash = "sha256-GtwPEFoyGYoqK02lsOD5hfBe/tmc42YZCnkOFl1nW/E="; - # }; - # buildInputs = [ TestWarn ]; - # meta = { - # description = "Extended display identification data (EDID) parser"; - # license = lib.licenses.gpl3Plus; - # }; - # }; - - # ParseDebControl = buildPerlPackage { - # pname = "Parse-DebControl"; - # version = "2.005"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JA/JAYBONCI/Parse-DebControl-2.005.tar.gz"; - # hash = "sha256-tkvOH/IS1+PvnUNo57YnSc8ndR+oNgzfU+lpEjNGpyk="; - # }; - # propagatedBuildInputs = [ IOStringy LWP ]; - # meta = { - # description = "Easy OO parsing of debian control-like files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ParseDistname = buildPerlPackage { - # pname = "Parse-Distname"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Parse-Distname-0.05.tar.gz"; - # hash = "sha256-pfqTvsLat22IPaEtTzRLc7+L6wzEtmwkN28+Dzh67wc="; - # }; - # buildInputs = [ ExtUtilsMakeMakerCPANfile TestDifferences TestUseAllModules ]; - # meta = { - # description = "Parse a distribution name"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ParseIRC = buildPerlPackage { - # pname = "Parse-IRC"; - # version = "1.22"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BI/BINGOS/Parse-IRC-1.22.tar.gz"; - # hash = "sha256-RXsJiX8304pwVPlWMkc2VCf+JBAWIu1MfwVHI6RbWNU="; - # }; - # meta = { - # description = "A parser for the IRC protocol"; - # homepage = "https://github.com/bingos/parse-irc"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ sgo ]; - # }; - # }; - - # ParseLocalDistribution = buildPerlPackage { - # pname = "Parse-LocalDistribution"; - # version = "0.19"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Parse-LocalDistribution-0.19.tar.gz"; - # hash = "sha256-awvDLE6NnoHz8qzB0qdMKi+IepHBUisxzkyNSaQV6Z4="; - # }; - # propagatedBuildInputs = [ ParsePMFile ]; - # buildInputs = [ ExtUtilsMakeMakerCPANfile TestUseAllModules ]; - # meta = { - # description = "Parses local .pm files as PAUSE does"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ParsePlainConfig = buildPerlPackage { - # pname = "Parse-PlainConfig"; - # version = "3.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CO/CORLISS/Parse-PlainConfig/Parse-PlainConfig-3.06.tar.gz"; - # hash = "sha256-8ffT5OWawrbPbJjaDKpBxdTl2GVcIQdRSBlplS/+G4c="; - # }; - # propagatedBuildInputs = [ ClassEHierarchy Paranoid ]; - # meta = { - # description = "Parser/Generator of human-readable conf files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = teams.deshaw.members; - # }; - # }; - - # ParsePMFile = buildPerlPackage { - # pname = "Parse-PMFile"; - # version = "0.44"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Parse-PMFile-0.44.tar.gz"; - # hash = "sha256-4I8PVkVbOsEtzNjHEWUGErfTzRUPim+K5rQ7LaR9+ZQ="; - # }; - # buildInputs = [ ExtUtilsMakeMakerCPANfile ]; - # meta = { - # description = "Parses .pm file as PAUSE does"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ParseRecDescent = buildPerlModule { - # pname = "Parse-RecDescent"; - # version = "1.967015"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JT/JTBRAUN/Parse-RecDescent-1.967015.tar.gz"; - # hash = "sha256-GUMzaky1TxeIpzPwgnwMVdtDENXq4V5UJjnJ3YVlbjc="; - # }; - # meta = { - # description = "Generate Recursive-Descent Parsers"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ParseSyslog = buildPerlPackage { - # pname = "Parse-Syslog"; - # version = "1.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DS/DSCHWEI/Parse-Syslog-1.10.tar.gz"; - # hash = "sha256-ZZohRUQe822YNd7K+D2jCPzQP0kTjLPZCSjov8nxOdk="; - # }; - # meta = { - # description = "Parse Unix syslog files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ParserMGC = buildPerlModule { - # pname = "Parser-MGC"; - # version = "0.21"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/Parser-MGC-0.21.tar.gz"; - # hash = "sha256-DmGIpydqn5B1fGIEc98W08mGGRO6viWvIJz0RhWgKk8="; - # }; - # buildInputs = [ TestFatal ]; - # propagatedBuildInputs = [ FeatureCompatTry ]; - # meta = { - # description = "Build simple recursive-descent parsers"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ParseYapp = buildPerlPackage { - # pname = "Parse-Yapp"; - # version = "1.21"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/W/WB/WBRASWELL/Parse-Yapp-1.21.tar.gz"; - # hash = "sha256-OBDpmDCPui4PTyYEMDUDKwJ85RzlyKUqi440DKZfE+U="; - # }; - # meta = { - # description = "Perl extension for generating and using LALR parsers"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "yapp"; - # }; - # }; - - # PathClass = buildPerlModule { - # pname = "Path-Class"; - # version = "0.37"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KW/KWILLIAMS/Path-Class-0.37.tar.gz"; - # hash = "sha256-ZUeBlIYCOG8ssuRHOnOfF9xpU9kqq8JJikyiVhvCSM4="; - # }; - # meta = { - # description = "Cross-platform path specification manipulation"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PathDispatcher = buildPerlPackage { - # pname = "Path-Dispatcher"; - # version = "1.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Path-Dispatcher-1.08.tar.gz"; - # hash = "sha256-ean2HCdAi0/R7SNNrCRpdN3q+n/mNaGP5B7HeDEwrio="; - # }; - # buildInputs = [ ModuleBuildTiny TestFatal ]; - # propagatedBuildInputs = [ Moo MooXTypeTiny TryTiny TypeTiny ]; - # meta = { - # description = "Flexible and extensible dispatch"; - # homepage = "https://github.com/karenetheridge/Path-Dispatcher"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PathIteratorRule = buildPerlPackage { - # pname = "Path-Iterator-Rule"; - # version = "1.015"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Path-Iterator-Rule-1.015.tar.gz"; - # hash = "sha256-87Bixo4Hx29o3lvDOHfP6eB4tjUaYboWUOM+CfUeyyk="; - # }; - # propagatedBuildInputs = [ NumberCompare TextGlob TryTiny ]; - # buildInputs = [ Filepushd PathTiny TestDeep TestFilename ]; - # meta = { - # description = "Iterative, recursive file finder"; - # homepage = "https://github.com/dagolden/Path-Iterator-Rule"; - # license = with lib.licenses; [ asl20 ]; - # }; - # }; - - # PathTiny = buildPerlPackage { - # pname = "Path-Tiny"; - # version = "0.144"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Path-Tiny-0.144.tar.gz"; - # hash = "sha256-9uoJTs6EXJUqAsJ4kzJXk1TejUEKcH+bcEW9JBIGSH0="; - # }; - # preConfigure = - # '' - # substituteInPlace lib/Path/Tiny.pm --replace 'use File::Spec 3.40' \ - # 'use File::Spec 3.39' - # ''; - # # This appears to be currently failing tests, though I don't know why. - # # -- ocharles - # doCheck = false; - # meta = { - # description = "File path utility"; - # homepage = "https://github.com/dagolden/Path-Tiny"; - # license = with lib.licenses; [ asl20 ]; - # }; - # }; - - # PathTools = buildPerlPackage { - # pname = "PathTools"; - # version = "3.75"; - # preConfigure = '' - # substituteInPlace Cwd.pm --replace '/usr/bin/pwd' '${pkgs.coreutils}/bin/pwd' - # ''; - # src = fetchurl { - # url = "mirror://cpan/authors/id/X/XS/XSAWYERX/PathTools-3.75.tar.gz"; - # hash = "sha256-pVhQOqax+McnwAczOQgad4iGBqpwGtoa1i3Z2MP5RaI="; - # }; - # # cwd() and fastgetcwd() does not work with taint due to PATH in nixpkgs - # preCheck = "rm t/taint.t"; - # meta = { - # description = "Get pathname of current working directory"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PBKDF2Tiny = buildPerlPackage { - # pname = "PBKDF2-Tiny"; - # version = "0.005"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/PBKDF2-Tiny-0.005.tar.gz"; - # hash = "sha256-tOIdxZswJl6qpBtwUIfsA0R9nGVaFKxA/0bk3inqv44="; - # }; - # meta = { - # description = "Minimalist PBKDF2 (RFC 2898) with HMAC-SHA1 or HMAC-SHA2"; - # homepage = "https://github.com/dagolden/PBKDF2-Tiny"; - # license = with lib.licenses; [ asl20 ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # PDFAPI2 = buildPerlPackage { - # pname = "PDF-API2"; - # version = "2.045"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SS/SSIMMS/PDF-API2-2.045.tar.gz"; - # hash = "sha256-tr204NDNZSYQP91YwXHgVgw2uEO3/jyk3cm7HkyDJAY="; - # }; - # buildInputs = [ TestException TestMemoryCycle ]; - # propagatedBuildInputs = [ FontTTF ]; - # meta = { - # description = "Create, modify, and examine PDF files"; - # license = with lib.licenses; [ lgpl21Plus ]; - # }; - # }; - - # PDFBuilder = buildPerlPackage { - # pname = "PDF-Builder"; - # version = "3.025"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PM/PMPERRY/PDF-Builder-3.025.tar.gz"; - # hash = "sha256-qb6076DsKXWpFFzvBSEYsgmPRtnBUQ3WV4agPQ2j49U="; - # }; - # nativeCheckInputs = [ TestException TestMemoryCycle ]; - # propagatedBuildInputs = [ FontTTF ]; - # meta = { - # description = "Facilitates the creation and modification of PDF files"; - # homepage = "https://metacpan.org/pod/PDF::Builder"; - # license = with lib.licenses; [ lgpl21Plus ]; - # }; - # }; - - # PDL = buildPerlPackage { - # pname = "PDL"; - # version = "2.025"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETJ/PDL-2.025.tar.gz"; - # hash = "sha256-G1oWfq0ndy2V2tJ/jrfQlRnSkVbu1TxvwUQVGUtaitY="; - # }; - # patchPhase = '' - # substituteInPlace perldl.conf \ - # --replace 'POSIX_THREADS_LIBS => undef' 'POSIX_THREADS_LIBS => "-L${pkgs.glibc.dev}/lib"' \ - # --replace 'POSIX_THREADS_INC => undef' 'POSIX_THREADS_INC => "-I${pkgs.glibc.dev}/include"' \ - # --replace 'WITH_MINUIT => undef' 'WITH_MINUIT => 0' \ - # --replace 'WITH_SLATEC => undef' 'WITH_SLATEC => 0' \ - # --replace 'WITH_HDF => undef' 'WITH_HDF => 0' \ - # --replace 'WITH_GD => undef' 'WITH_GD => 0' \ - # --replace 'WITH_PROJ => undef' 'WITH_PROJ => 0' - # ''; - - # nativeBuildInputs = with pkgs; [ autoPatchelfHook libGL.dev glibc.dev mesa_glu.dev ]; - - # buildInputs = [ DevelChecklib TestDeep TestException TestWarn ] ++ - # (with pkgs; [ gsl freeglut xorg.libXmu xorg.libXi ]); - - # propagatedBuildInputs = [ - # AstroFITSHeader - # ConvertUU - # ExtUtilsF77 - # FileMap - # Inline - # InlineC - # ListMoreUtils - # ModuleCompile - # OpenGL - # PodParser - # TermReadKey - # ]; - - # meta = { - # description = "Perl Data Language"; - # homepage = "https://pdl.perl.org"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "pdl2"; - # platforms = lib.platforms.linux; - # }; - # }; - - # Pegex = buildPerlPackage { - # pname = "Pegex"; - # version = "0.75"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IN/INGY/Pegex-0.75.tar.gz"; - # hash = "sha256-TcjTNd6AslJHzbP5RvDRDZugs8NLDtfQAxb9Bo/QXtw="; - # }; - # buildInputs = [ TestPod TieIxHash ]; - # propagatedBuildInputs = [ FileShareDirInstall XXX ]; - # meta = { - # description = "Acmeist PEG Parser Framework"; - # homepage = "https://github.com/ingydotnet/pegex-pm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PerconaToolkit = callPackage ./perl-modules/Percona-Toolkit { }; - - # Perl5lib = buildPerlPackage { - # pname = "perl5lib"; - # version = "1.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NO/NOBULL/perl5lib-1.02.tar.gz"; - # hash = "sha256-JLlpJYQBU8REJBOYs2/Il24IX9sNh5yRc0cJz5F+zqw="; - # }; - # meta = { - # description = "Honour PERL5LIB even in taint mode"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Perlosnames = buildPerlPackage { - # pname = "Perl-osnames"; - # version = "0.122"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PERLANCAR/Perl-osnames-0.122.tar.gz"; - # hash = "sha256-cHWTnXR+N1F40ANI0AxS/52yzrsYuudHPcsJ34JRGKA="; - # }; - # meta = { - # description = "List possible $^O ($OSNAME) values, with description"; - # homepage = "https://metacpan.org/release/Perl-osnames"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PerlCritic = buildPerlModule { - # pname = "Perl-Critic"; - # version = "1.150"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PETDANCE/Perl-Critic-1.150.tar.gz"; - # hash = "sha256-5c2V3j5DvOcHdRdidLqkBfMm/IdA3wBUu4FpdcyNNJs="; - # }; - # buildInputs = [ TestDeep ]; - # nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang; - # propagatedBuildInputs = [ BKeywords ConfigTiny ExceptionClass FileWhich ListSomeUtils ModulePluggable PPI PPIxQuoteLike PPIxRegexp PPIxUtilities PPIxUtils PerlTidy PodSpell Readonly StringFormat ]; - # postInstall = lib.optionalString stdenv.isDarwin '' - # shortenPerlShebang $out/bin/perlcritic - # ''; - # meta = { - # description = "Critique Perl source code for best-practices"; - # homepage = "http://perlcritic.com"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "perlcritic"; - # }; - # }; - - # PerlCriticCommunity = buildPerlModule { - # pname = "Perl-Critic-Community"; - # version = "1.0.3"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DB/DBOOK/Perl-Critic-Community-v1.0.3.tar.gz"; - # hash = "sha256-Ed3bt5F5/mIp8zPKOS+U/firXNmJzJfZk1IaidXEetU="; - # }; - # buildInputs = [ ModuleBuildTiny ]; - # propagatedBuildInputs = [ PPI PathTiny PerlCritic PerlCriticPolicyVariablesProhibitLoopOnHash PerlCriticPulp ]; - # meta = { - # description = "Community-inspired Perl::Critic policies"; - # homepage = "https://github.com/Grinnz/Perl-Critic-Community"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # PerlCriticMoose = buildPerlPackage rec { - # pname = "Perl-Critic-Moose"; - # version = "1.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/Perl-Critic-Moose-${version}.tar.gz"; - # hash = "sha256-UuuOIsQmQ/F/4peiFxQBfv254phsJOMzfgMPNlD5IgE="; - # }; - # propagatedBuildInputs = [ PerlCritic Readonly namespaceautoclean ]; - # meta = { - # description = "Policies for Perl::Critic concerned with using Moose"; - # homepage = "https://metacpan.org/release/Perl-Critic-Moose"; - # license = with lib.licenses; [ artistic1 ]; - # }; - # }; - - # PerlCriticPolicyVariablesProhibitLoopOnHash = buildPerlPackage { - # pname = "Perl-Critic-Policy-Variables-ProhibitLoopOnHash"; - # version = "0.008"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/X/XS/XSAWYERX/Perl-Critic-Policy-Variables-ProhibitLoopOnHash-0.008.tar.gz"; - # hash = "sha256-EvXwvpbqG9x4KAWFd70cXGPKI8F/rJw3CUUrPf9bhOA="; - # }; - # propagatedBuildInputs = [ PerlCritic ]; - # meta = { - # description = "Don't write loops on hashes, only on keys and values of hashes"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PerlCriticPulp = buildPerlPackage { - # pname = "Perl-Critic-Pulp"; - # version = "99"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KR/KRYDE/Perl-Critic-Pulp-99.tar.gz"; - # hash = "sha256-uP2oQvy+100hAlfAooS23HsdBVSkej3l2X59VC4j5/4="; - # }; - # propagatedBuildInputs = [ IOString ListMoreUtils PPI PerlCritic PodMinimumVersion ]; - # meta = { - # description = "Some add-on policies for Perl::Critic"; - # homepage = "https://user42.tuxfamily.org/perl-critic-pulp/index.html"; - # license = with lib.licenses; [ gpl3Plus ]; - # }; - # }; - - # PerlDestructLevel = buildPerlPackage { - # pname = "Perl-Destruct-Level"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RG/RGARCIA/Perl-Destruct-Level-0.02.tar.gz"; - # hash = "sha256-QLSsCykrYM47h956o5vC+yWhnRDlyfaYZpYchLP20Ts="; - # }; - # meta = { - # description = "Allow to change perl's destruction level"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PerlIOLayers = buildPerlModule { - # pname = "PerlIO-Layers"; - # version = "0.012"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LE/LEONT/PerlIO-Layers-0.012.tar.gz"; - # hash = "sha256-VC2lQvo2uz/de4d24jDTzMAqpnRM6bd7Tu9MyufASt8="; - # }; - # perlPreHook = "export LD=$CC"; - # meta = { - # description = "Querying your filehandle's capabilities"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PerlIOeol = buildPerlPackage { - # pname = "PerlIO-eol"; - # version = "0.19"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/PerlIO-eol-0.19.tar.gz"; - # hash = "sha256-/3O+xgRP2EepbEGZZPNw5Qn9Nv1XH3o7fDUXX1iviFk="; - # }; - # meta = { - # description = "PerlIO layer for normalizing line endings"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PerlIOgzip = buildPerlPackage { - # pname = "PerlIO-gzip"; - # version = "0.20"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NW/NWCLARK/PerlIO-gzip-0.20.tar.gz"; - # hash = "sha256-SEhnmj8gHj87DF9vlSbmAq9Skj/6RxoqNlfbeGvTvcU="; - # }; - # buildInputs = [ pkgs.zlib ]; - # NIX_CFLAGS_LINK = "-L${pkgs.zlib.out}/lib -lz"; - # meta = { - # description = "Perl extension to provide a PerlIO layer to gzip/gunzip"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PerlIOutf8_strict = buildPerlPackage { - # pname = "PerlIO-utf8_strict"; - # version = "0.010"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LE/LEONT/PerlIO-utf8_strict-0.010.tar.gz"; - # hash = "sha256-vNKEi3LfKQtemE+uixpsqW9tByADzyIjiajJ6OHFcM0="; - # }; - # buildInputs = [ TestException ]; - # meta = { - # description = "Fast and correct UTF-8 IO"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PerlIOviadynamic = buildPerlPackage { - # pname = "PerlIO-via-dynamic"; - # version = "0.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AL/ALEXMV/PerlIO-via-dynamic-0.14.tar.gz"; - # hash = "sha256-is169NivIdKLnBWuE3/nbNBk2tfSbrqKMLl+vG4fa0k="; - # }; - # meta = { - # description = "Dynamic PerlIO layers"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PerlIOviasymlink = buildPerlPackage { - # pname = "PerlIO-via-symlink"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CL/CLKAO/PerlIO-via-symlink-0.05.tar.gz"; - # hash = "sha256-QQfUw0pqNilFNEjCVpXZL4JSKv9k4ptxa1alr1hrLVI="; - # }; - - # buildInputs = [ ModuleInstall ]; - - # postPatch = '' - # # remove outdated inc::Module::Install included with module - # # causes build failure for perl5.18+ - # rm -r inc - # ''; - # meta = { - # description = "PerlIO layers for create symlinks"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PerlIOviaTimeout = buildPerlModule { - # pname = "PerlIO-via-Timeout"; - # version = "0.32"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAMS/PerlIO-via-Timeout-0.32.tar.gz"; - # hash = "sha256-knj572aIUNkT2Y+kwNfn1mfP81AzkfSk6uc6JG8ueRY="; - # }; - # buildInputs = [ ModuleBuildTiny TestSharedFork TestTCP ]; - # meta = { - # description = "A PerlIO layer that adds read & write timeout to a handle"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PerlLanguageServer = buildPerlPackage { - # pname = "Perl-LanguageServer"; - # version = "2.6.1"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GR/GRICHTER/Perl-LanguageServer-2.6.1.tar.gz"; - # hash = "sha256-IDM0uwsEXMeHAu9DA0CdCB87aN3XRoNEdGOIJ8NMsZg="; - # }; - # propagatedBuildInputs = [ AnyEvent AnyEventAIO ClassRefresh CompilerLexer Coro DataDump HashSafeKeys IOAIO JSON Moose PadWalker ]; - # meta = { - # description = "Language Server and Debug Protocol Adapter for Perl"; - # license = lib.licenses.artistic2; - # }; - # }; - - # perlldap = buildPerlPackage { - # pname = "perl-ldap"; - # version = "0.68"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MARSCHAP/perl-ldap-0.68.tar.gz"; - # hash = "sha256-4vOJ/j56nkthSIaSkZrXI7mPO0ebUoj2ENqownmVs1E="; - # }; - # # ldapi socket location should match the one compiled into the openldap package - # postPatch = '' - # for f in lib/Net/LDAPI.pm lib/Net/LDAP/Util.pm lib/Net/LDAP.pod lib/Net/LDAP.pm; do - # sed -i 's:/var/run/ldapi:/run/openldap/ldapi:g' "$f" - # done - # ''; - # buildInputs = [ TextSoundex ]; - # propagatedBuildInputs = [ ConvertASN1 ]; - # meta = { - # description = "LDAP client library"; - # homepage = "https://ldap.perl.org"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = teams.deshaw.members; - # }; - # }; - - # PerlMagick = ImageMagick; # added 2021-08-02 - # ImageMagick = buildPerlPackage rec { - # pname = "Image-Magick"; - # version = "7.1.1-20"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JC/JCRISTY/Image-Magick-${version}.tar.gz"; - # hash = "sha256-oMAwXQBxuV2FgPHBhUi+toNFPVnRLNjZqdP2q+ki6jg="; - # }; - # buildInputs = [ pkgs.imagemagick ]; - # preConfigure = - # '' - # sed -i -e 's|my \$INC_magick = .*|my $INC_magick = "-I${pkgs.imagemagick.dev}/include/ImageMagick";|' Makefile.PL - # ''; - # meta = { - # description = "Objected-oriented Perl interface to ImageMagick. Use it to read, manipulate, or write an image or image sequence from within a Perl script"; - # license = with lib.licenses; [ imagemagick ]; - # }; - # }; - - # PerlTidy = buildPerlPackage { - # pname = "Perl-Tidy"; - # version = "20230912"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHANCOCK/Perl-Tidy-20230912.tar.gz"; - # hash = "sha256-DFeIjyBvmHd34WZA5yV0qgp3eEZxn44+0EE8NTJfVUA="; - # }; - # meta = { - # description = "Indent and reformat perl scripts"; - # license = with lib.licenses; [ gpl2Plus ]; - # mainProgram = "perltidy"; - # }; - # }; - - # PHPSerialization = buildPerlPackage { - # pname = "PHP-Serialization"; - # version = "0.34"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BO/BOBTFISH/PHP-Serialization-0.34.tar.gz"; - # hash = "sha256-uRLUJumuulSRpeUC58XAOcXapXVCism9yCr/857G8Ho="; - # }; - # meta = { - # description = "Simple flexible means of converting the output of PHP's serialize() into the equivalent Perl memory structure, and vice versa"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PkgConfig = buildPerlPackage rec { - # pname = "PkgConfig"; - # version = "0.25026"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/PkgConfig-0.25026.tar.gz"; - # hash = "sha256-Tbpe08LWpoG5XF6/FLammVzmmRrkcZutfxqvOOmHwqA="; - # }; - # # support cross-compilation by simplifying the way we get version during build - # postPatch = '' - # substituteInPlace Makefile.PL --replace \ - # 'do { require "./lib/PkgConfig.pm"; $PkgConfig::VERSION; }' \ - # '"${version}"' - # ''; - # meta = { - # description = "Pure-Perl Core-Only replacement for pkg-config"; - # homepage = "https://metacpan.org/pod/PkgConfig"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = teams.deshaw.members; - # mainProgram = "ppkg-config"; - # }; - # }; - - # Plack = buildPerlPackage { - # pname = "Plack"; - # version = "1.0050"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-1.0050.tar.gz"; - # hash = "sha256-0mUa3oLrv/er4KOhifyTLa3Ed5GGzolGjlbQGJ6qbtQ="; - # }; - # buildInputs = [ AuthenSimplePasswd CGIEmulatePSGI FileShareDirInstall HTTPRequestAsCGI HTTPServerSimplePSGI IOHandleUtil LWP LWPProtocolhttp10 LogDispatchArray MIMETypes TestMockTimeHiRes TestRequires TestSharedFork TestTCP ]; - # propagatedBuildInputs = [ ApacheLogFormatCompiler CookieBaker DevelStackTraceAsHTML FileShareDir FilesysNotifySimple HTTPEntityParser HTTPHeadersFast HTTPMessage TryTiny ]; - # patches = [ - # ./perl-modules/Plack-test-replace-DES-hash-with-bcrypt.patch - # ]; - # meta = { - # description = "Perl Superglue for Web frameworks and Web Servers (PSGI toolkit)"; - # homepage = "https://github.com/plack/Plack"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "plackup"; - # }; - # }; - - # PlackAppProxy = buildPerlPackage { - # pname = "Plack-App-Proxy"; - # version = "0.29"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LE/LEEDO/Plack-App-Proxy-0.29.tar.gz"; - # hash = "sha256-BKqanbVKmpAn/nBLyjU/jl6fAr5AhytB0jX86c3ypg8="; - # }; - # propagatedBuildInputs = [ AnyEventHTTP LWP Plack ]; - # buildInputs = [ TestRequires TestSharedFork TestTCP ]; - # meta = { - # description = "Proxy requests"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PlackMiddlewareAuthDigest = buildPerlModule { - # pname = "Plack-Middleware-Auth-Digest"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Auth-Digest-0.05.tar.gz"; - # hash = "sha256-mr0/kpQ2zV7N+28/DX/foRuUB6OMfWAAYWpQ7eYQFes="; - # }; - # propagatedBuildInputs = [ DigestHMAC Plack ]; - # buildInputs = [ LWP ModuleBuildTiny TestSharedFork TestTCP ]; - # meta = { - # description = "Digest authentication"; - # homepage = "https://github.com/miyagawa/Plack-Middleware-Auth-Digest"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PlackMiddlewareConsoleLogger = buildPerlModule { - # pname = "Plack-Middleware-ConsoleLogger"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-ConsoleLogger-0.05.tar.gz"; - # hash = "sha256-VWc6ylBN4sw0AWpF8yyPft2k7k0oArctZ4TSxBuH+9k="; - # }; - # propagatedBuildInputs = [ JavaScriptValueEscape Plack ]; - # buildInputs = [ ModuleBuildTiny TestRequires ]; - # meta = { - # description = "Write logs to Firebug or Webkit Inspector"; - # homepage = "https://github.com/miyagawa/Plack-Middleware-ConsoleLogger"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PlackMiddlewareDebug = buildPerlModule { - # pname = "Plack-Middleware-Debug"; - # version = "0.18"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Debug-0.18.tar.gz"; - # hash = "sha256-GS73nlIckMbv9vQUmtLkv8kR0sld94k1hV6Q1lnprJo="; - # }; - # buildInputs = [ ModuleBuildTiny TestRequires ]; - # propagatedBuildInputs = [ ClassMethodModifiers DataDump DataDumperConcise Plack TextMicroTemplate ]; - # meta = { - # description = "Display information about the current request/response"; - # homepage = "https://github.com/miyagawa/Plack-Middleware-Debug"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PlackMiddlewareDeflater = buildPerlPackage { - # pname = "Plack-Middleware-Deflater"; - # version = "0.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Plack-Middleware-Deflater-0.12.tar.gz"; - # hash = "sha256-KNqV59pMi1WRrEVFCckhds0IQpYM4HT94w+aEHXcwnU="; - # }; - # propagatedBuildInputs = [ Plack ]; - # buildInputs = [ TestRequires TestSharedFork TestTCP ]; - # meta = { - # description = "Compress response body with Gzip or Deflate"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PlackMiddlewareFixMissingBodyInRedirect = buildPerlPackage { - # pname = "Plack-Middleware-FixMissingBodyInRedirect"; - # version = "0.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SW/SWEETKID/Plack-Middleware-FixMissingBodyInRedirect-0.12.tar.gz"; - # hash = "sha256-bCLQafWlesIG1GWbKLiGm7knBkC7lV793UUdzFjNs5E="; - # }; - # propagatedBuildInputs = [ HTMLParser Plack ]; - # meta = { - # description = "Plack::Middleware which sets body for redirect response, if it's not already set"; - # homepage = "https://github.com/Sweet-kid/Plack-Middleware-FixMissingBodyInRedirect"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PlackMiddlewareHeader = buildPerlPackage { - # pname = "Plack-Middleware-Header"; - # version = "0.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CH/CHIBA/Plack-Middleware-Header-0.04.tar.gz"; - # hash = "sha256-Xra5/3Ly09VpUOI+K8AnFQqcXnVg1zo0GhZeGu3qXV4="; - # }; - # propagatedBuildInputs = [ Plack ]; - # meta = { - # description = "Modify HTTP response headers"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PlackMiddlewareMethodOverride = buildPerlPackage { - # pname = "Plack-Middleware-MethodOverride"; - # version = "0.20"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-MethodOverride-0.20.tar.gz"; - # hash = "sha256-2/taLvtIv+sByzrh4cZ34VXce/4hDH5/IhuuPLaqtfE="; - # }; - # propagatedBuildInputs = [ Plack ]; - # meta = { - # description = "Override REST methods to Plack apps via POST"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PlackMiddlewareRemoveRedundantBody = buildPerlPackage { - # pname = "Plack-Middleware-RemoveRedundantBody"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SW/SWEETKID/Plack-Middleware-RemoveRedundantBody-0.09.tar.gz"; - # hash = "sha256-gNRfk9a3KQsL2LPO3YSjf8UBRWzD3sAux6rYHAAYCH4="; - # }; - # propagatedBuildInputs = [ Plack ]; - # meta = { - # description = "Plack::Middleware which removes body for HTTP response if it's not required"; - # homepage = "https://github.com/upasana-me/Plack-Middleware-RemoveRedundantBody"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PlackMiddlewareReverseProxy = buildPerlPackage { - # pname = "Plack-Middleware-ReverseProxy"; - # version = "0.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-ReverseProxy-0.16.tar.gz"; - # hash = "sha256-h0kx030HZnug0PN5A7lFEQcfQZH+tz+kV2XaK4wVoSg="; - # }; - # propagatedBuildInputs = [ Plack ]; - # meta = { - # description = "Supports app to run as a reverse proxy backend"; - # homepage = "https://github.com/lopnor/Plack-Middleware-ReverseProxy"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PlackMiddlewareSession = buildPerlModule { - # pname = "Plack-Middleware-Session"; - # version = "0.33"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Session-0.33.tar.gz"; - # hash = "sha256-T/miydGK2ASbRd/ze5vdQSIeLC8eFrr7gb/tyIxRpO4="; - # }; - # propagatedBuildInputs = [ DigestHMAC Plack ]; - # buildInputs = [ HTTPCookies LWP ModuleBuildTiny TestFatal TestRequires TestSharedFork TestTCP ]; - # meta = { - # description = "Middleware for session management"; - # homepage = "https://github.com/plack/Plack-Middleware-Session"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PlackTestExternalServer = buildPerlPackage { - # pname = "Plack-Test-ExternalServer"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Plack-Test-ExternalServer-0.02.tar.gz"; - # hash = "sha256-W69cV/4MBkEt7snFq+eVKrigT4xHtLvY6emYImiQPtA="; - # }; - # buildInputs = [ Plack TestSharedFork TestTCP ]; - # propagatedBuildInputs = [ LWP ]; - # meta = { - # description = "Run HTTP tests on external live servers"; - # homepage = "https://github.com/perl-catalyst/Plack-Test-ExternalServer"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PLS = buildPerlPackage { - # pname = "PLS"; - # version = "0.905"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MR/MREISNER/PLS-0.905.tar.gz"; - # hash = "sha256-RVW1J5nBZBXDy/5eMB6gLKDrvDQhTH/lLx19ykUwLik="; - # }; - # propagatedBuildInputs = [ Future FutureQueue IOAsync PPI PPR PathTiny PerlCritic PerlTidy PodMarkdown URI ]; - # nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang; - # postInstall = lib.optionalString stdenv.isDarwin '' - # shortenPerlShebang $out/bin/pls - # ''; - # meta = { - # description = "Perl Language Server"; - # homepage = "https://github.com/FractalBoy/perl-language-server"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.artturin ]; - # mainProgram = "pls"; - # }; - # }; - - # Po4a = callPackage ./perl-modules/Po4a { }; - - # PodMinimumVersion = buildPerlPackage { - # pname = "Pod-MinimumVersion"; - # version = "50"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KR/KRYDE/Pod-MinimumVersion-50.tar.gz"; - # hash = "sha256-C9KBLZqsvZm7cfoQOkuxKelVwTi6dZhzQgfcn7Z7Wm8="; - # }; - # propagatedBuildInputs = [ IOString PodParser ]; - # meta = { - # description = "Determine minimum Perl version of POD directives"; - # homepage = "https://user42.tuxfamily.org/pod-minimumversion/index.html"; - # license = with lib.licenses; [ gpl3Plus ]; - # mainProgram = "pod-minimumversion"; - # }; - # }; - - # POE = buildPerlPackage { - # pname = "POE"; - # version = "1.370"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BI/BINGOS/POE-1.370.tar.gz"; - # hash = "sha256-V94rY1sV+joxqeVd1REiFJ5UFOEVjugiNQYmNO4YppM="; - # }; - # # N.B. removing TestPodLinkCheck from buildInputs because tests requiring - # # this module don't disable themselves when "run_network_tests" is - # # not present (see below). - # propagatedBuildInputs = [ pkgs.cacert IOPipely IOTty POETestLoops ]; - # preCheck = '' - # set -x - - # : Makefile.PL touches the following file as a "marker" to indicate - # : it should perform tests which use the network. Delete this file - # : for sandbox builds. - # rm -f run_network_tests - - # : Certs are required if not running in a sandbox. - # export SSL_CERT_FILE=${pkgs.cacert.out}/etc/ssl/certs/ca-bundle.crt - - # : The following flag enables extra tests not normally performed. - # export RELEASE_TESTING=1 - - # set +x - # ''; - # meta = { - # description = "Portable, event-loop agnostic eventy networking and multitasking"; - # homepage = "http://poe.perl.org"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = teams.deshaw.members; - # }; - # }; - - # POETestLoops = buildPerlPackage { - # pname = "POE-Test-Loops"; - # version = "1.360"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RC/RCAPUTO/POE-Test-Loops-1.360.tar.gz"; - # hash = "sha256-vtDJb+kcmP035utZqASqrJzEqekoRQt21L9VJ6nmpHs="; - # }; - # meta = { - # description = "Reusable tests for POE::Loop authors"; - # homepage = "https://search.cpan.org/dist/POE-Test-Loops"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = teams.deshaw.members; - # mainProgram = "poe-gen-tests"; - # }; - # }; - - # PPI = buildPerlPackage { - # pname = "PPI"; - # version = "1.277"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MITHALDU/PPI-1.277.tar.gz"; - # hash = "sha256-h8efg7aHbiBgUZZdUBnSUHxVH4GahnUAgOx+xDsuCvg="; - # }; - # buildInputs = [ ClassInspector TestDeep TestNoWarnings TestObject TestSubCalls ]; - # propagatedBuildInputs = [ Clone IOString ParamsUtil TaskWeaken ]; - - # # Remove test that fails due to unexpected shebang after - # # patchShebang. - # preCheck = "rm t/03_document.t"; - - # meta = { - # description = "Parse, Analyze and Manipulate Perl (without perl)"; - # homepage = "https://github.com/Perl-Critic/PPI"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PPIxQuoteLike = buildPerlModule { - # pname = "PPIx-QuoteLike"; - # version = "0.023"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/W/WY/WYANT/PPIx-QuoteLike-0.023.tar.gz"; - # hash = "sha256-NXajFJ0sU+B+lze3iSvlz7hKSZpu8d8JC3E7BUQjTSE="; - # }; - # propagatedBuildInputs = [ PPI Readonly ]; - # meta = { - # description = "Parse Perl string literals and string-literal-like things"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PPIxRegexp = buildPerlModule { - # pname = "PPIx-Regexp"; - # version = "0.088"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/W/WY/WYANT/PPIx-Regexp-0.088.tar.gz"; - # hash = "sha256-iFQz+bEC+tT9NrIccyC7A2A2ERyvmYExv0FvfNXul2Q="; - # }; - # propagatedBuildInputs = [ PPI ]; - # meta = { - # description = "Parse regular expressions"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PPIxUtilities = buildPerlModule { - # pname = "PPIx-Utilities"; - # version = "1.001000"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/EL/ELLIOTJS/PPIx-Utilities-1.001000.tar.gz"; - # hash = "sha256-A6SDOG/WosgI8Jd41E2wawLDFA+yS6S/EvhR9G07y5s="; - # }; - # buildInputs = [ TestDeep ]; - # propagatedBuildInputs = [ ExceptionClass PPI Readonly ]; - # meta = { - # description = "Extensions to PPI|PPI"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PPIxUtils = buildPerlPackage { - # pname = "PPIx-Utils"; - # version = "0.003"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DB/DBOOK/PPIx-Utils-0.003.tar.gz"; - # hash = "sha256-KpvM/I6tA74BtnJI/o4VJSIED3mChvpO9EMrfy79uhE="; - # }; - # propagatedBuildInputs = [ BKeywords PPI ]; - # meta = { - # homepage = "https://github.com/Grinnz/PPIx-Utils"; - # description = "Utility functions for PPI"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PPR = buildPerlPackage { - # pname = "PPR"; - # version = "0.001008"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DC/DCONWAY/PPR-0.001008.tar.gz"; - # hash = "sha256-EQ5xwF8uLJDrAfCgaU5VqdvpHIV+SBJeF0LRflzbHkk="; - # }; - # meta = { - # description = "Pattern-based Perl Recognizer"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = [ maintainers.artturin ]; - # }; - # }; - - # ProcBackground = buildPerlPackage { - # pname = "Proc-Background"; - # version = "1.32"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NERDVANA/Proc-Background-1.32.tar.gz"; - # hash = "sha256-Wxp4DduSnKQnJeuQtRgyFCX/d4tKE3+G+sldn7nNKWc="; - # }; - # meta = { - # description = "Run asynchronous child processes under Unix or Windows"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "timed-process"; - # }; - # }; - - # ProcProcessTable = buildPerlPackage { - # pname = "Proc-ProcessTable"; - # version = "0.636"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JW/JWB/Proc-ProcessTable-0.636.tar.gz"; - # hash = "sha256-lEIk/7APwe81BpYzdwoK/ahiO1x1MtHkq0ip3zlIkP0="; - # }; - # meta = { - # description = "Perl extension to access the unix process table"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # ProcDaemon = buildPerlPackage { - # pname = "Proc-Daemon"; - # version = "0.23"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AK/AKREAL/Proc-Daemon-0.23.tar.gz"; - # hash = "sha256-NMC4W3lItDHLq8l87lgINeUVzPQ7rb2DOesQlHQIm2k="; - # }; - # buildInputs = [ ProcProcessTable ]; - # meta = { - # description = "Run Perl program(s) as a daemon process"; - # homepage = "https://github.com/akreal/Proc-Daemon"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ProcPIDFile = buildPerlPackage { - # pname = "Proc-PID-File"; - # version = "1.29"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DM/DMITRI/Proc-PID-File-1.29.tar.gz"; - # hash = "sha256-O87aSd8YLT2BaLcMKlGyBW8v1FlQptBCipmS/TVc1KQ="; - # }; - # meta = { - # description = "Manage process id files"; - # homepage = "https://github.com/dtikhonov/Proc-PID-File"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ProcFind = buildPerlPackage { - # pname = "Proc-Find"; - # version = "0.051"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PERLANCAR/Proc-Find-0.051.tar.gz"; - # hash = "sha256-ZNOQceyU17ZqfKtalQJG8P/wE7WiAKY9EXZDKYfloTU="; - # }; - # propagatedBuildInputs = [ ProcProcessTable ]; - # meta = { - # description = "Find processes by name, PID, or some other attributes"; - # homepage = "https://metacpan.org/release/Proc-Find"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ProcSafeExec = buildPerlPackage { - # pname = "Proc-SafeExec"; - # version = "1.5"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BI/BILBO/Proc-SafeExec-1.5.tar.gz"; - # hash = "sha256-G00JCLysVj00p+W+YcXaPu6Y5KbH+mjCZwzFhEtaLXg="; - # }; - # meta = { - # description = "Convenient utility for executing external commands in various ways"; - # license = with lib.licenses; [ gpl1Only bsd2 ]; - # }; - # }; - - # ProcSimple = buildPerlPackage { - # pname = "Proc-Simple"; - # version = "1.32"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MS/MSCHILLI/Proc-Simple-1.32.tar.gz"; - # hash = "sha256-TI8KkksZrXihPac/4PswbTKnudEKMyxSMIf8g6IJqMQ="; - # }; - # meta = { - # description = "Launch and control background processes"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ProcWait3 = buildPerlPackage { - # pname = "Proc-Wait3"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CT/CTILMES/Proc-Wait3-0.05.tar.gz"; - # hash = "sha256-GpB/XbaTPcKTm7/v/hnurn7TnvG5eivJtyPy8l+ByvM="; - # }; - # meta = { - # description = "Perl extension for wait3 system call"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ProcWaitStat = buildPerlPackage { - # pname = "Proc-WaitStat"; - # version = "1.00"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RO/ROSCH/Proc-WaitStat-1.00.tar.gz"; - # hash = "sha256-0HVj9eeHkJ0W5zkCQeh39Jq3ObHenQ4uoaQb0L9EdLw="; - # }; - # propagatedBuildInputs = [ IPCSignal ]; - # meta = { - # description = "Interpret and act on wait() status values"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PrometheusTiny = buildPerlPackage { - # pname = "Prometheus-Tiny"; - # version = "0.011"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RO/ROBN/Prometheus-Tiny-0.011.tar.gz"; - # hash = "sha256-jbFIDzyJ64bUFM9fR/7tjfMRKzjEY8uPZbTAZOILHhM="; - # }; - # buildInputs = [ HTTPMessage Plack TestException TestWarn ]; - # meta = { - # description = "A tiny Prometheus client"; - # homepage = "https://github.com/robn/Prometheus-Tiny"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PrometheusTinyShared = buildPerlPackage { - # pname = "Prometheus-Tiny-Shared"; - # version = "0.027"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RO/ROBN/Prometheus-Tiny-Shared-0.027.tar.gz"; - # hash = "sha256-egULqhjKfA0gsoih1L0nJ3E6lFg/Qmskn5XcjUDty9E="; - # }; - # buildInputs = [ DataRandom HTTPMessage Plack TestDifferences TestException TestWarn ]; - # propagatedBuildInputs = [ HashSharedMem JSONXS PrometheusTiny ]; - # meta = { - # description = "A tiny Prometheus client with a shared database behind it"; - # homepage = "https://github.com/robn/Prometheus-Tiny-Shared"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ProtocolRedis = buildPerlPackage { - # pname = "Protocol-Redis"; - # version = "1.0011"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/U/UN/UNDEF/Protocol-Redis-1.0011.tar.gz"; - # hash = "sha256-fOtr2ABnyQRGXU/R8XFXJDiMm9w3xsLAA6IM5Wm39Og="; - # }; - # meta = { - # description = "Redis protocol parser/encoder with asynchronous capabilities"; - # homepage = "https://github.com/und3f/protocol-redis"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # ProtocolRedisFaster = buildPerlPackage { - # pname = "Protocol-Redis-Faster"; - # version = "0.003"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DB/DBOOK/Protocol-Redis-Faster-0.003.tar.gz"; - # hash = "sha256-a5r7PelOwczX20+eai6rolSld5AwHBe8sTuz7f4YULc="; - # }; - # propagatedBuildInputs = [ ProtocolRedis ]; - # meta = { - # description = "Optimized pure-perl Redis protocol parser/encoder"; - # homepage = "https://github.com/Grinnz/Protocol-Redis-Faster"; - # license = with lib.licenses; [ artistic2 ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # ProtocolWebSocket = buildPerlModule { - # pname = "Protocol-WebSocket"; - # version = "0.26"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/V/VT/VTI/Protocol-WebSocket-0.26.tar.gz"; - # hash = "sha256-WDfQNxGnoyVPCv7LfkCeiwk3YGDDiluClejumvdXVSI="; - # }; - # buildInputs = [ ModuleBuildTiny ]; - # meta = { - # description = "WebSocket protocol"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ProtocolHTTP2 = buildPerlModule { - # pname = "Protocol-HTTP2"; - # version = "1.10"; - - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CR/CRUX/Protocol-HTTP2-1.10.tar.gz"; - # hash = "sha256-wmoAWPtK+ul+S/DbxkGJ9nEURRXERH89y1l+zQOWpko="; - # }; - # buildInputs = [ AnyEvent ModuleBuildTiny NetSSLeay TestLeakTrace TestSharedFork TestTCP ]; - # meta = { - # description = "HTTP/2 protocol implementation (RFC 7540)"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PSGI = buildPerlPackage { - # pname = "PSGI"; - # version = "1.102"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/PSGI-1.102.tar.gz"; - # hash = "sha256-pWxEZ0CRfahpJcKfxmM7nfg5shz5j2onCGWY7ZDuH0c="; - # }; - # meta = { - # description = "Perl Web Server Gateway Interface Specification"; - # license = with lib.licenses; [ cc-by-sa-25 ]; - # }; - # }; - - PadWalker = buildPerlPackage { - pname = "PadWalker"; - version = "2.5"; - src = fetchurl { - url = "mirror://cpan/authors/id/R/RO/ROBIN/PadWalker-2.5.tar.gz"; - hash = "sha256-B7Jqu4QRRq8yByqNaMuQF2/7F2/ZJo5vL30Qb4F6DNA="; - }; - meta = { - description = "Play with other peoples' lexical variables"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # Perl6Junction = buildPerlPackage { - # pname = "Perl6-Junction"; - # version = "1.60000"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CF/CFRANKS/Perl6-Junction-1.60000.tar.gz"; - # hash = "sha256-0CN16FGX6PkbTLLTM0rpqJ9gAi949c1gdtzU7G+ycWQ="; - # }; - # meta = { - # description = "Perl6 style Junction operators in Perl5"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PerlMinimumVersion = buildPerlPackage { - # pname = "Perl-MinimumVersion"; - # version = "1.40"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DB/DBOOK/Perl-MinimumVersion-1.40.tar.gz"; - # hash = "sha256-dYmleMtg1wykdVw5WzWStECgzWobB05OzqyTsDGhvpA="; - # }; - # buildInputs = [ TestScript ]; - # propagatedBuildInputs = [ FileFindRulePerl PerlCritic ]; - # meta = { - # description = "Find a minimum required version of perl for Perl code"; - # homepage = "https://github.com/neilbowers/Perl-MinimumVersion"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "perlver"; - # }; - # }; - - # PerlPrereqScanner = buildPerlPackage { - # pname = "Perl-PrereqScanner"; - # version = "1.100"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Perl-PrereqScanner-1.100.tar.gz"; - # hash = "sha256-ARgdOKLnr/g40mISJWPFBja6SzZS7l0dT471uj9bGGs="; - # }; - # buildInputs = [ TryTiny ]; - # propagatedBuildInputs = [ GetoptLongDescriptive ModulePath Moo ParamsUtil PPI StringRewritePrefix TypeTiny namespaceautoclean ]; - # meta = { - # description = "A tool to scan your Perl code for its prerequisites"; - # homepage = "https://github.com/rjbs/Perl-PrereqScanner"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "scan-perl-prereqs"; - # }; - # }; - - # PerlPrereqScannerNotQuiteLite = buildPerlPackage { - # pname = "Perl-PrereqScanner-NotQuiteLite"; - # version = "0.9917"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Perl-PrereqScanner-NotQuiteLite-0.9917.tar.gz"; - # hash = "sha256-O6fuF9lfDJqNkqLkwYVLZKcH0cAihGIm3Q36Qvfeud0="; - # }; - # propagatedBuildInputs = [ DataDump ModuleCPANfile ModuleFind RegexpTrie URIcpan ]; - # buildInputs = [ ExtUtilsMakeMakerCPANfile ParseDistname TestFailWarnings TestUseAllModules ]; - # meta = { - # description = "A tool to scan your Perl code for its prerequisites"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "scan-perl-prereqs-nqlite"; - # }; - # }; - - # PerlVersion = buildPerlPackage { - # pname = "Perl-Version"; - # version = "1.013"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BD/BDFOY/Perl-Version-1.013.tar.gz"; - # hash = "sha256-GIdBTRyGidhkyEARQQHgQ+mdfdW5zKaTaaYOgh460Pc="; - # }; - # propagatedBuildInputs = [ FileSlurpTiny ]; - # meta = { - # description = "Parse and manipulate Perl version strings"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "perl-reversion"; - # }; - # }; - - # PodAbstract = buildPerlPackage { - # pname = "Pod-Abstract"; - # version = "0.20"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BL/BLILBURNE/Pod-Abstract-0.20.tar.gz"; - # hash = "sha256-lW73u4hMVUVuL7bn8in5qH3VCmHXAFAMc4248ronf4c="; - # }; - # propagatedBuildInputs = [ IOString TaskWeaken PodParser ]; - # meta = { - # description = "An abstract, tree-based interface to perl POD documents"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "paf"; - # }; - # }; - - # PodChecker = buildPerlPackage { - # pname = "Pod-Checker"; - # version = "1.75"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MAREKR/Pod-Checker-1.75.tar.gz"; - # hash = "sha256-82O1dOxmCvbtvT5dTJ/8UVodRsvxx8ytmkbO0oh5wiE="; - # }; - # meta = { - # description = "Verifies POD documentation contents for compliance with the POD format specifications"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "podchecker"; - # }; - # }; - - # PodCoverage = buildPerlPackage { - # pname = "Pod-Coverage"; - # version = "0.23"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RC/RCLAMP/Pod-Coverage-0.23.tar.gz"; - # hash = "sha256-MLegsMlC9Ep1UsDTTpsfLgugtnlVxh47FYnsNpB0sQc="; - # }; - # propagatedBuildInputs = [ DevelSymdump PodParser ]; - # meta = { - # description = "Checks if the documentation of a module is comprehensive"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "pod_cover"; - # }; - # }; - - # PodCoverageTrustPod = buildPerlPackage { - # pname = "Pod-Coverage-TrustPod"; - # version = "0.100006"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Coverage-TrustPod-0.100006.tar.gz"; - # hash = "sha256-NYrcJQTwOetpCYqpm93mrp3JNTZKjhRPZAXoKTs6fKM="; - # }; - # propagatedBuildInputs = [ PodCoverage PodEventual ]; - # meta = { - # description = "Allow a module's pod to contain Pod::Coverage hints"; - # homepage = "https://github.com/rjbs/Pod-Coverage-TrustPod"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PodElemental = buildPerlPackage { - # pname = "Pod-Elemental"; - # version = "0.103006"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Elemental-0.103006.tar.gz"; - # hash = "sha256-dQw6edjhgkdYpu99LdB33N3KUDVCuMNOzNWsu3edxCM="; - # }; - # buildInputs = [ TestDeep TestDifferences ]; - # propagatedBuildInputs = [ MooseXTypes PodEventual StringRewritePrefix StringTruncate ]; - # meta = { - # description = "Work with nestable Pod elements"; - # homepage = "https://github.com/rjbs/Pod-Elemental"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PodElementalPerlMunger = buildPerlPackage { - # pname = "Pod-Elemental-PerlMunger"; - # version = "0.200007"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Elemental-PerlMunger-0.200007.tar.gz"; - # hash = "sha256-UYleTEGgeere+fJPXcSOMkWlwG40BO15yF+lzv63lak="; - # }; - # buildInputs = [ TestDifferences ]; - # propagatedBuildInputs = [ PPI PodElemental ]; - # meta = { - # description = "A thing that takes a string of Perl and rewrites its documentation"; - # homepage = "https://github.com/rjbs/Pod-Elemental-PerlMunger"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PodEventual = buildPerlPackage { - # pname = "Pod-Eventual"; - # version = "0.094003"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Eventual-0.094003.tar.gz"; - # hash = "sha256-fwYMw00RZWzgadsGHj1g7cDKvI+JpKLcfqrpXayFbS0="; - # }; - # propagatedBuildInputs = [ MixinLinewise ]; - # buildInputs = [ TestDeep ]; - # meta = { - # description = "Read a POD document as a series of trivial events"; - # homepage = "https://github.com/rjbs/Pod-Eventual"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PodParser = buildPerlPackage { - # pname = "Pod-Parser"; - # version = "1.66"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MAREKR/Pod-Parser-1.66.tar.gz"; - # hash = "sha256-IpKKe//mG0UsBbu7j1IW1LnPn+KoSbd2wlUA0k0g33w="; - # }; - # meta = { - # description = "Modules for parsing/translating POD format documents"; - # license = with lib.licenses; [ artistic1 ]; - # mainProgram = "podselect"; - # }; - # }; - - # PodPOM = buildPerlPackage { - # pname = "Pod-POM"; - # version = "2.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/Pod-POM-2.01.tar.gz"; - # hash = "sha256-G1D7qbvd4+rRkr7roOrd0MYU46+xdD+m//gF9XxW9/Q="; - # }; - # buildInputs = [ FileSlurper TestDifferences TextDiff ]; - # meta = { - # description = "POD Object Model"; - # homepage = "https://github.com/neilb/Pod-POM"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "pom2"; - # }; - # }; - - # PodPOMViewTOC = buildPerlPackage { - # pname = "Pod-POM-View-TOC"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PERLER/Pod-POM-View-TOC-0.02.tar.gz"; - # hash = "sha256-zLQicsdQM3nLETE5RiDuUCdtcoRODoDrSwB6nVj4diM="; - # }; - # propagatedBuildInputs = [ PodPOM ]; - # meta = { - # description = "Generate the TOC of a POD with Pod::POM"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PodSection = buildPerlModule { - # pname = "Pod-Section"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KT/KTAT/Pod-Section-0.02.tar.gz"; - # hash = "sha256-ydHXUpLzIYgRhOxWmDwW9Aj9LTEtWnIPj7DSyvpykjg="; - # }; - # propagatedBuildInputs = [ PodAbstract ]; - # meta = { - # description = "Select specified section from Module's POD"; - # homepage = "https://github.com/ktat/Pod-Section"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "podsection"; - # }; - # }; - - # PodLaTeX = buildPerlModule { - # pname = "Pod-LaTeX"; - # version = "0.61"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TJ/TJENNESS/Pod-LaTeX-0.61.tar.gz"; - # hash = "sha256-FahA6hyKds08hl+78v7DOwNhXA2qUPnIAMVODPBlnUY="; - # }; - # propagatedBuildInputs = [ PodParser ]; - # meta = { - # description = "Convert Pod data to formatted Latex"; - # homepage = "https://github.com/timj/perl-Pod-LaTeX/tree/master"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "pod2latex"; - # }; - # }; - - # podlators = buildPerlPackage { - # pname = "podlators"; - # version = "5.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RR/RRA/podlators-5.01.tar.gz"; - # hash = "sha256-zP0d+fGkfwlbzm1xj61a9A94ziSR8scjlibhW3AgvHE="; - # }; - # preCheck = '' - # # remove failing spdx check - # rm t/docs/spdx-license.t - # ''; - # meta = { - # description = "Convert POD data to various other formats"; - # homepage = "https://www.eyrie.org/~eagle/software/podlators"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # podlinkcheck = buildPerlPackage { - # pname = "podlinkcheck"; - # version = "15"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KR/KRYDE/podlinkcheck-15.tar.gz"; - # hash = "sha256-Tjvr7Bv4Lb+FCpSuJqJTZEz1gG7EGvx05D4XEKNzIds="; - # }; - # propagatedBuildInputs = [ FileFindIterator FileHomeDir IPCRun PodParser constant-defer libintl-perl ]; - # meta = { - # description = "Check POD L<> link references"; - # homepage = "https://user42.tuxfamily.org/podlinkcheck/index.html"; - # license = with lib.licenses; [ gpl3Plus ]; - # }; - # }; - - # prefork = buildPerlPackage { - # pname = "prefork"; - # version = "1.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/prefork-1.05.tar.gz"; - # hash = "sha256-bYe836Y7KM78+ocIA6UZtlkOPqGcMA+YzssOGQuxkwU="; - # }; - # meta = { - # description = "Optimized module loading for forking or non-forking processes"; - # homepage = "https://github.com/karenetheridge/prefork"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PodPerldoc = buildPerlPackage { - # pname = "Pod-Perldoc"; - # version = "3.28"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MALLEN/Pod-Perldoc-3.28.tar.gz"; - # hash = "sha256-zEHmBbjhPECo7mUE/0Y0e1un+9kiA7O7BVQiBRvvxk0="; - # }; - # meta = { - # description = "Look up Perl documentation in Pod format"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "perldoc"; - # }; - # }; - - # PodPlainer = buildPerlPackage { - # pname = "Pod-Plainer"; - # version = "1.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RM/RMBARKER/Pod-Plainer-1.04.tar.gz"; - # hash = "sha256-G7+/fR1IceWoO6shN+ItCJB4IGgVGQ6x1cEmCjSZRW8="; - # }; - # propagatedBuildInputs = [ PodParser ]; - # meta = { - # description = "Perl extension for converting Pod to old-style Pod"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PodMarkdown = buildPerlPackage { - # pname = "Pod-Markdown"; - # version = "3.300"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RW/RWSTAUNER/Pod-Markdown-3.300.tar.gz"; - # hash = "sha256-7HnpkIo2BXScT+tQVHY+toEt0ztUzoWlEzmqfPmZG3k="; - # }; - # buildInputs = [ TestDifferences ]; - # propagatedBuildInputs = [ URI ]; - # meta = { - # description = "Convert POD to Markdown"; - # homepage = "https://github.com/rwstauner/Pod-Markdown"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "pod2markdown"; - # }; - # }; - - # PodMarkdownGithub = buildPerlPackage { - # pname = "Pod-Markdown-Github"; - # version = "0.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MINIMAL/Pod-Markdown-Github-0.04.tar.gz"; - # hash = "sha256-s34vAJxMzkkk+yPuQxRuUGcilxvqa87S2sFdCAo7xhM="; - # }; - # propagatedBuildInputs = [ PodMarkdown ]; - # buildInputs = [ TestDifferences ]; - # meta = { - # description = "Convert POD to Github's specific markdown"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "pod2github"; - # }; - # }; - - # PodSimple = buildPerlPackage { - # pname = "Pod-Simple"; - # version = "3.45"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KH/KHW/Pod-Simple-3.45.tar.gz"; - # hash = "sha256-hIO7lc0+QwfWbe8JKjd5+EOvdySCv9wCTj4A0MTbDPo="; - # }; - # meta = { - # description = "Framework for parsing Pod"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PodSpell = buildPerlPackage { - # pname = "Pod-Spell"; - # version = "1.26"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HAARG/Pod-Spell-1.26.tar.gz"; - # hash = "sha256-LwW/yc+wS5b8v6LIVE0eaukIWW02lsRuDiZVa3UK+78="; - # }; - # propagatedBuildInputs = [ ClassTiny FileShareDir LinguaENInflect PathTiny PodParser ]; - # buildInputs = [ FileShareDirInstall TestDeep ]; - # meta = { - # description = "A formatter for spellchecking Pod"; - # homepage = "https://github.com/perl-pod/Pod-Spell"; - # license = with lib.licenses; [ artistic2 ]; - # mainProgram = "podspell"; - # }; - # }; - - # PodStrip = buildPerlModule { - # pname = "Pod-Strip"; - # version = "1.100"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DO/DOMM/Pod-Strip-1.100.tar.gz"; - # hash = "sha256-Z1BqZh+pyuzv57pPQvC8FbCm8JZ8eWB3QPbLaXSu1M0="; - # }; - # meta = { - # description = "Remove POD from Perl code"; - # homepage = "https://github.com/domm/Pod-Strip"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PodTidy = buildPerlModule { - # pname = "Pod-Tidy"; - # version = "0.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JH/JHOBLITT/Pod-Tidy-0.10.tar.gz"; - # hash = "sha256-iG7hQ+p81Tm0O+16KHmJ0Wc211y/ofheLMzq+eiVnb0="; - # }; - # propagatedBuildInputs = [ EncodeNewlines IOString PodWrap TextGlob ]; - # buildInputs = [ TestCmd ]; - # meta = { - # description = "A reformatting Pod Processor"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "podtidy"; - # }; - # }; - - # PodWeaver = buildPerlPackage { - # pname = "Pod-Weaver"; - # version = "4.019"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Weaver-4.019.tar.gz"; - # hash = "sha256-aUatHwTq+aoR8kzFRJTh1Xli9Y4FkS82S3T5WT595/c="; - # }; - # buildInputs = [ PPI SoftwareLicense TestDifferences ]; - # propagatedBuildInputs = [ ConfigMVPReaderINI DateTime ListMoreUtils LogDispatchouli PodElemental ]; - # meta = { - # description = "Weave together a Pod document from an outline"; - # homepage = "https://github.com/rjbs/Pod-Weaver"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # PodWrap = buildPerlModule { - # pname = "Pod-Wrap"; - # version = "0.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NU/NUFFIN/Pod-Wrap-0.01.tar.gz"; - # hash = "sha256-UMrL4v/7tccNG6XpQn1cit7mGENuxz+W7QU5Iy4si2M="; - # }; - # propagatedBuildInputs = [ PodParser ]; - # meta = { - # description = "Wrap pod paragraphs, leaving verbatim text and code alone"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "podwrap"; - # }; - # }; - - # ProbePerl = buildPerlPackage { - # pname = "Probe-Perl"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KW/KWILLIAMS/Probe-Perl-0.03.tar.gz"; - # hash = "sha256-2eTSHi53Y4VZBF+gkEaxtv/2xAO5SZKdshPjCr6KPDE="; - # }; - # meta = { - # description = "Information about the currently running perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # POSIXAtFork = buildPerlPackage { - # pname = "POSIX-AtFork"; - # version = "0.04"; - # src = fetchurl { - # url = "mirror://cpan/authors//id/N/NI/NIKOLAS/POSIX-AtFork-0.04.tar.gz"; - # hash = "sha256-wuIpOobUhxRLyPe6COfEt2sRsOTf3EGAmEXTDvoH5g4="; - # }; - # buildInputs = [ TestSharedFork ]; - # meta = { - # description = "Hook registrations at fork(2)"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # POSIXstrftimeCompiler = buildPerlModule { - # pname = "POSIX-strftime-Compiler"; - # version = "0.44"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KA/KAZEBURO/POSIX-strftime-Compiler-0.44.tar.gz"; - # hash = "sha256-39PJc5jc/lHII2uF49woA1Znt2Ux96oKZTXzqlQFs1o="; - # }; - # # We cannot change timezones on the fly. - # prePatch = "rm t/04_tzset.t"; - # buildInputs = [ ModuleBuildTiny ]; - # meta = { - # description = "GNU C library compatible strftime for loggers and servers"; - # homepage = "https://github.com/kazeburo/POSIX-strftime-Compiler"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # broken = stdenv.hostPlatform.isMusl; # Broken for Musl at 2023-01-14, reports: - # # Nixpkgs: https://github.com/NixOS/nixpkgs/issues/210749 - # # Upstream: https://github.com/kazeburo/POSIX-strftime-Compiler/issues/8 - # }; - # }; - - # Apprainbarf = buildPerlModule { - # pname = "App-rainbarf"; - # version = "1.4"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SY/SYP/App-rainbarf-1.4.tar.gz"; - # hash = "sha256-TxOa01+q8t4GI9wLsd2J+lpDHlSL/sh97hlM8OJcyX0="; - # }; - # nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang; - # postInstall = lib.optionalString stdenv.isDarwin '' - # shortenPerlShebang $out/bin/rainbarf - # ''; - # meta = { - # description = "CPU/RAM/battery stats chart bar for tmux (and GNU screen)"; - # homepage = "https://github.com/creaktive/rainbarf"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "rainbarf"; - # }; - # }; - - # Razor2ClientAgent = buildPerlPackage { - # pname = "Razor2-Client-Agent"; - # version = "2.86"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TODDR/Razor2-Client-Agent-2.86.tar.gz"; - # hash = "sha256-XgYuAuu2XiS3COfu+lMAxD1vZXvyDQj+xMqKCjuUhF8="; - # }; - # propagatedBuildInputs = [ DigestSHA1 URI ]; - # meta = { - # description = "Collaborative, content-based spam filtering network agent"; - # homepage = "https://razor.sourceforge.net/"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - - # Readonly = buildPerlModule { - # pname = "Readonly"; - # version = "2.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SA/SANKO/Readonly-2.05.tar.gz"; - # hash = "sha256-SyNUJJGvAQ1EpcfIYSRHOKzHSrq65riDjTVN+xlGK14="; - # }; - # buildInputs = [ ModuleBuildTiny ]; - # meta = { - # description = "Facility for creating read-only scalars, arrays, hashes"; - # homepage = "https://github.com/sanko/readonly"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # ReadonlyX = buildPerlModule { - # pname = "ReadonlyX"; - # version = "1.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SA/SANKO/ReadonlyX-1.04.tar.gz"; - # hash = "sha256-gbuX26k6xrXMvOBKQsNZDrBFV9dQGHc+4Y1aMPz0gYg="; - # }; - # buildInputs = [ ModuleBuildTiny TestFatal ]; - # meta = { - # description = "Faster facility for creating read-only scalars, arrays, hashes"; - # homepage = "https://github.com/sanko/readonly"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # ReadonlyXS = buildPerlPackage { - # pname = "Readonly-XS"; - # version = "1.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RO/ROODE/Readonly-XS-1.05.tar.gz"; - # hash = "sha256-iuXE6FKZ5ci93RsZby7qOPAHCeDcDLYEVNyRFK4//w0="; - # }; - # propagatedBuildInputs = [ Readonly ]; - # meta = { - # description = "Companion module for Readonly.pm, to speed up read-only scalar variables"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Redis = buildPerlModule { - # pname = "Redis"; - # version = "2.000"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAMS/Redis-2.000.tar.gz"; - # hash = "sha256-FMuJl5chJhW06T+Rbcva+0jQHF6qsgOP5ssXm/lcb+s="; - # }; - # buildInputs = [ IOString ModuleBuildTiny TestDeep TestFatal TestSharedFork TestTCP ]; - # propagatedBuildInputs = [ IOSocketTimeout TryTiny ]; - # meta = { - # description = "Perl binding for Redis database"; - # homepage = "https://github.com/PerlRedis/perl-redis"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # RefUtil = buildPerlPackage { - # pname = "Ref-Util"; - # version = "0.204"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AR/ARC/Ref-Util-0.204.tar.gz"; - # hash = "sha256-QV+nPbrPRPPV15wUiIzJlFYnIKtGjm9x+RzR92nxBeE="; - # }; - # meta = { - # description = "Utility functions for checking references"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # RegexpAssemble = buildPerlPackage { - # pname = "Regexp-Assemble"; - # version = "0.38"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Regexp-Assemble-0.38.tgz"; - # hash = "sha256-oGvn+a4bc8m/1bZmKxQcDXBGnpwZu0QTpu5W+Cra5EI="; - # }; - # meta = { - # description = "Assemble multiple Regular Expressions into a single RE"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # RegexpCommon = buildPerlPackage { - # pname = "Regexp-Common"; - # version = "2017060201"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AB/ABIGAIL/Regexp-Common-2017060201.tar.gz"; - # hash = "sha256-7geFOu4G8xDgQLa/GgGZoY2BiW0yGbmzXJYw0OtpCJs="; - # }; - # meta = { - # description = "Provide commonly requested regular expressions"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # RegexpCommonnetCIDR = buildPerlPackage { - # pname = "Regexp-Common-net-CIDR"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BP/BPS/Regexp-Common-net-CIDR-0.03.tar.gz"; - # hash = "sha256-OWBqV6qyDU9EaDAPLsP6KrVX/MnLeIDsfG4H2AFi2jM="; - # }; - # propagatedBuildInputs = [ RegexpCommon ]; - # meta = { - # description = "Provide patterns for CIDR blocks"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # RegexpCommontime = buildPerlPackage { - # pname = "Regexp-Common-time"; - # version = "0.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MANWAR/Regexp-Common-time-0.16.tar.gz"; - # hash = "sha256-HIEHpQq1XHK/ePsRbJGIxM3xYsGGwVhsH5qu5V/xSso="; - # }; - # propagatedBuildInputs = [ RegexpCommon ]; - # meta = { - # description = "Date and time regexps"; - # homepage = "https://github.com/manwar/Regexp-Common-time"; - # license = with lib.licenses; [ artistic2 mit bsd3 ]; - # maintainers = [ maintainers.artturin ]; - # }; - # }; - - # RegexpGrammars = buildPerlModule { - # pname = "Regexp-Grammars"; - # version = "1.058"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DC/DCONWAY/Regexp-Grammars-1.058.tar.gz"; - # hash = "sha256-6ojVjiUWdPrjm0n007U0LqzLj8tVhWzTBKoaX/PUHJI="; - # }; - # meta = { - # description = "Add grammatical parsing features to Perl 5.10 regexes"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # RegexpIPv6 = buildPerlPackage { - # pname = "Regexp-IPv6"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SA/SALVA/Regexp-IPv6-0.03.tar.gz"; - # hash = "sha256-1ULRfXXOk2Md6LohVtoOC1inVcQJzUoNJ6OHOiZxLOI="; - # }; - # meta = { - # description = "Regular expression for IPv6 addresses"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # RegexpParser = buildPerlPackage { - # pname = "Regexp-Parser"; - # version = "0.23"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TODDR/Regexp-Parser-0.23.tar.gz"; - # hash = "sha256-9znauN8rBqrlxI+ZcSUbc3BEZKMtB9jQJfPA+GlUTok="; - # }; - # meta = { - # description = "Base class for parsing regexes"; - # homepage = "https://wiki.github.com/toddr/Regexp-Parser"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # RegexpTrie = buildPerlPackage { - # pname = "Regexp-Trie"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DANKOGAI/Regexp-Trie-0.02.tar.gz"; - # hash = "sha256-+yv5TtjbwfSpXZ/I9xDLZ7P3lsbvycS7TCz6Prqhxfo="; - # }; - # meta = { - # description = "Builds trie-ized regexp"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # RESTClient = buildPerlPackage { - # pname = "REST-Client"; - # version = "281"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AK/AKHUETTEL/REST-Client-281.tar.gz"; - # hash = "sha256-+hDSGgA35oJgHv5mc4p1j/dSEJSqASKek8iIpnmyyPY="; - # }; - # propagatedBuildInputs = [ LWPProtocolHttps ]; - # meta = { - # description = "A simple client for interacting with RESTful http/https resources"; - # homepage = "https://github.com/milescrawford/cpan-rest-client"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # RESTUtils = buildPerlModule { - # pname = "REST-Utils"; - # version = "0.6"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JA/JALDHAR/REST-Utils-0.6.tar.gz"; - # hash = "sha256-1OlK3YetMf71h8RxFceIx88+EiyS85YyWuLmEsZwuf0="; - # }; - # buildInputs = [ TestLongString TestWWWMechanize TestWWWMechanizeCGI ]; - # meta = { - # description = "Utility functions for REST applications"; - # homepage = "https://jaldhar.github.com/REST-Utils"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # RpcXML = buildPerlPackage { - # pname = "RPC-XML"; - # version = "0.82"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJRAY/RPC-XML-0.82.tar.gz"; - # hash = "sha256-UnnrDRNsUz/4l/aTTDqtbyBQS5l/smBuUsXbvZJ1jnM="; - # }; - # propagatedBuildInputs = [ XMLParser ]; - # doCheck = false; - # meta = { - # description = "Data, client and server classes for XML-RPC"; - # homepage = "https://github.com/rjray/rpc-xml"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "make_method"; - # }; - # }; - - # ReturnValue = buildPerlPackage { - # pname = "Return-Value"; - # version = "1.666005"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Return-Value-1.666005.tar.gz"; - # hash = "sha256-jiJgqWUx6TaGIAuciFDr4AXYjONp/2vHD/GnQFt1UKw="; - # }; - # meta = { - # description = "Create context-sensitive return values"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # RoleBasic = buildPerlModule { - # pname = "Role-Basic"; - # version = "0.13"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/O/OV/OVID/Role-Basic-0.13.tar.gz"; - # hash = "sha256-OKCVnvnxk/925ywyWp6SEbxIaGib0OKwBXePU/i282o="; - # }; - # meta = { - # description = "Just roles. Nothing else"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # RoleHasMessage = buildPerlPackage { - # pname = "Role-HasMessage"; - # version = "0.007"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Role-HasMessage-0.007.tar.gz"; - # hash = "sha256-XiZ6TXYgs2hIEgTIjqIES4sqWP+LBVd/JxeydUwEFM4="; - # }; - # propagatedBuildInputs = [ MooseXRoleParameterized StringErrf ]; - # meta = { - # description = "A thing with a message method"; - # homepage = "https://github.com/rjbs/Role-HasMessage"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # RoleHooks = buildPerlPackage { - # pname = "Role-Hooks"; - # version = "0.008"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TOBYINK/Role-Hooks-0.008.tar.gz"; - # hash = "sha256-KNZuoKjcMGt22oP/CHlJPYCPcxhbz5xO03LzlG+1Q+w="; - # }; - # buildInputs = [ TestRequires ]; - # propagatedBuildInputs = [ ClassMethodModifiers ]; - # meta = { - # homepage = "https://metacpan.org/release/Role-Hooks"; - # description = "Role callbacks"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # RoleIdentifiable = buildPerlPackage { - # pname = "Role-Identifiable"; - # version = "0.009"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Role-Identifiable-0.009.tar.gz"; - # hash = "sha256-WnNen3F3+euuBH63uuKbfsKewCCuN2N66lNQ0wwIe3Y="; - # }; - # propagatedBuildInputs = [ Moose ]; - # meta = { - # description = "A thing you can identify somehow"; - # homepage = "https://github.com/rjbs/Role-Identifiable"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - RoleTiny = buildPerlPackage { - pname = "Role-Tiny"; - version = "2.002004"; - src = fetchurl { - url = "mirror://cpan/authors/id/H/HA/HAARG/Role-Tiny-2.002004.tar.gz"; - hash = "sha256-173unhOKT4OqUtCpgWJWRL2of/FmQt+oRdy0TZokK0U="; - }; - meta = { - description = "Roles: a nouvelle cuisine portion size slice of Moose"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # RPCEPCService = buildPerlModule { - # pname = "RPC-EPC-Service"; - # version = "0.0.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KI/KIWANAMI/RPC-EPC-Service-v0.0.11.tar.gz"; - # hash = "sha256-l19BNDZSWPtH+pIZGQU1E625EB8r1CD87+NF8gkSi+M="; - # }; - # propagatedBuildInputs = [ AnyEvent DataSExpression ]; - # meta = { - # description = "An Asynchronous Remote Procedure Stack"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # RPM2 = buildPerlModule { - # pname = "RPM2"; - # version = "1.4"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LK/LKUNDRAK/RPM2-1.4.tar.gz"; - # hash = "sha256-XstCqmkyTm9AiKv64HMTkG5aq/L0bxIE8/HeWRVbtjY="; - # }; - # nativeBuildInputs = [ pkgs.pkg-config ]; - # buildInputs = [ pkgs.rpm ]; - # doCheck = false; # Tries to open /var/lib/rpm - # meta = { - # description = "Perl bindings for the RPM Package Manager API"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # platforms = lib.platforms.linux; - # }; - # }; - - # RSSParserLite = buildPerlPackage { - # pname = "RSS-Parser-Lite"; - # version = "0.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TF/TFPBL/RSS-Parser-Lite-0.12.tar.gz"; - # hash = "sha256-idw0vKixqp/uC8QK7d5eLBYCL8eYssOryH3gczG5lbk="; - # }; - # propagatedBuildInputs = [ locallib ]; - # doCheck = false; /* creates files in HOME */ - # meta = { - # description = "A simple pure perl RSS parser"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # RTClientREST = buildPerlModule { - # pname = "RT-Client-REST"; - # version = "0.72"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DJ/DJZORT/RT-Client-REST-0.72.tar.gz"; - # hash = "sha256-KPIBWKD3sfNLdM423lvdVimeuUAUBHLISXyVNYIm/bM="; - # }; - # buildInputs = [ CGI HTTPServerSimple TestException ]; - # propagatedBuildInputs = [ DateTimeFormatDateParse Error LWP ParamsValidate ]; - # meta = { - # description = "Client for RT using REST API"; - # homepage = "https://github.com/RT-Client-REST/RT-Client-REST"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SafeIsa = buildPerlPackage { - # pname = "Safe-Isa"; - # version = "1.000010"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Safe-Isa-1.000010.tar.gz"; - # hash = "sha256-h/QUiqD/HV5lJyMyLqt9r6OAHJZ9b5GskUejxGe4pmo="; - # }; - # meta = { - # description = "Call isa, can, does and DOES safely on things that may not be objects"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ScalarListUtils = buildPerlPackage { - # pname = "Scalar-List-Utils"; - # version = "1.63"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/Scalar-List-Utils-1.63.tar.gz"; - # hash = "sha256-yvvfIS9oJ9yaDdO1e27lDoYFhtcZgiijMmLVXFWesqk="; - # }; - # meta = { - # description = "Common Scalar and List utility subroutines"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ScalarString = buildPerlModule { - # pname = "Scalar-String"; - # version = "0.003"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Scalar-String-0.003.tar.gz"; - # hash = "sha256-9UoXybeHE7AsxDrfrfYLSUZ+djTTExfouenpfCbWi1I="; - # }; - # meta = { - # description = "String aspects of scalars"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ScalarType = buildPerlPackage { - # pname = "Scalar-Type"; - # version = "0.3.2"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Scalar-Type-0.3.2.tar.gz"; - # hash = "sha256-WQyv6gz1RZmSoEiFYsDb1vnfdYtfAH8OQ6uhMLRe7oY="; - # }; - # propagatedBuildInputs = [ CaptureTiny TestException ]; - # meta = { - # description = "Figure out what type a scalar is"; - # license = with lib.licenses; [ artistic1 gpl2Only ]; - # }; - # }; - - # SCGI = buildPerlModule { - # pname = "SCGI"; - # version = "0.6"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/V/VI/VIPERCODE/SCGI-0.6.tar.gz"; - # hash = "sha256-WLeMWvTuReQ38Hro87DZRckf0sAlFW7pFtgRWA+R2aQ="; - # }; - # preConfigure = "export HOME=$(mktemp -d)"; - # meta = { - # description = "This module is for implementing an SCGI interface for an application server"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ScopeGuard = buildPerlPackage { - # pname = "Scope-Guard"; - # version = "0.21"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CH/CHOCOLATE/Scope-Guard-0.21.tar.gz"; - # hash = "sha256-jJsb6lxWRI4sP63GXQW+nkaQo4I6gPOdLxD92Pd30ng="; - # }; - # meta = { - # description = "Lexically-scoped resource management"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ScopeUpper = buildPerlPackage { - # pname = "Scope-Upper"; - # version = "0.34"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/V/VP/VPIT/Scope-Upper-0.34.tar.gz"; - # hash = "sha256-WB2LxRDevQxFal/HlSy3E4rmZ78486d+ltdz3DGWpB4="; - # }; - # meta = { - # description = "Act on upper scopes"; - # homepage = "https://search.cpan.org/dist/Scope-Upper"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SDL = buildPerlModule { - # pname = "SDL"; - # version = "2.548"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FR/FROGGS/SDL-2.548.tar.gz"; - # hash = "sha256-JSoZK/qcIHCkiDcH0TnDpF2cRRjM1moeaZtbeVm9T7U="; - # }; - # patches = [ - # # https://github.com/PerlGameDev/SDL/pull/304 - # ./perl-modules/sdl-modern-perl.patch - # ]; - # perlPreHook = "export LD=$CC"; - # preCheck = "rm t/core_audiospec.t"; - # buildInputs = [ pkgs.SDL pkgs.SDL_gfx pkgs.SDL_mixer pkgs.SDL_image pkgs.SDL_ttf pkgs.SDL_Pango pkgs.SDL_net AlienSDL CaptureTiny TestDeep TestDifferences TestException TestMost TestWarn ]; - # propagatedBuildInputs = [ FileShareDir TieSimple ]; - # meta = { - # description = "SDL bindings to Perl"; - # license = with lib.licenses; [ lgpl21Plus ]; - # }; - # }; - - # SearchXapian = buildPerlPackage { - # pname = "Search-Xapian"; - # version = "1.2.25.5"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/O/OL/OLLY/Search-Xapian-1.2.25.5.tar.gz"; - # hash = "sha256-IE+9xxLWcR/6tmjB9M/AB7Y5qftkrX4ZyyD8EKkQuos="; - # }; - # buildInputs = [ pkgs.xapian DevelLeak ]; - # meta = { - # description = "Perl XS frontend to the Xapian C++ search library"; - # homepage = "https://xapian.org"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SerealDecoder = buildPerlPackage { - # pname = "Sereal-Decoder"; - # version = "5.004"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-Decoder-5.004.tar.gz"; - # hash = "sha256-aO8DFNh9Gm5guw9m/PQ+ssrN6xdUQy9eJeeE450+Z4Q="; - # }; - # buildInputs = [ TestDeep TestDifferences TestLongString TestWarn ]; - # preBuild = "ls"; - # meta = { - # description = "Fast, compact, powerful binary deserialization"; - # homepage = "https://github.com/Sereal/Sereal"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.thoughtpolice ]; - # }; - # }; - - # SerealEncoder = buildPerlPackage { - # pname = "Sereal-Encoder"; - # version = "5.004"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-Encoder-5.004.tar.gz"; - # hash = "sha256-XlqGzNMtrjTtgJMuy+XGjil1K13g6bCnk6t+sspVyxs="; - # }; - # buildInputs = [ SerealDecoder TestDeep TestDifferences TestLongString TestWarn ]; - # meta = { - # description = "Fast, compact, powerful binary serialization"; - # homepage = "https://github.com/Sereal/Sereal"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.thoughtpolice ]; - # }; - # }; - - # Sereal = buildPerlPackage { - # pname = "Sereal"; - # version = "5.004"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-5.004.tar.gz"; - # hash = "sha256-nCW7euS9c20ksa0dk9dzlbDGXKh0HiZr/Ay+VCJh128="; - # }; - # buildInputs = [ TestDeep TestLongString TestWarn ]; - # propagatedBuildInputs = [ SerealDecoder SerealEncoder ]; - # meta = { - # description = "Fast, compact, powerful binary (de-)serialization"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.thoughtpolice ]; - # }; - # }; - - # DeviceSerialPort = buildPerlPackage { - # pname = "Device-SerialPort"; - # version = "1.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CO/COOK/Device-SerialPort-1.04.tar.gz"; - # hash = "sha256-05JWfLObTqYGwOCsr9jtcjIDEbmVM27OX878+bFQ6dc="; - # }; - # meta = { - # description = "Linux/POSIX emulation of Win32::SerialPort functions."; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "modemtest"; - # }; - # }; - - # ServerStarter = buildPerlModule { - # pname = "Server-Starter"; - # version = "0.35"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KA/KAZUHO/Server-Starter-0.35.tar.gz"; - # hash = "sha256-Z23A1s/0ZIU4Myxjwy+4itCe2GghPqnmLj8Z+tQbnEA="; - # }; - # buildInputs = [ TestRequires TestSharedFork TestTCP ]; - # doCheck = false; # Tests are slow and unstable - # meta = { - # description = "A superdaemon for hot-deploying server programs"; - # homepage = "https://github.com/kazuho/p5-Server-Starter"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "start_server"; - # }; - # }; - - # SessionToken = buildPerlPackage { - # pname = "Session-Token"; - # version = "1.503"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FR/FRACTAL/Session-Token-1.503.tar.gz"; - # hash = "sha256-MsPflu9FXHGHA2Os2VDdxPvISMWU9LxVshtEz5efeaE="; - # }; - # patches = [ - # # Add final null-byte to tokens. https://github.com/hoytech/Session-Token/pull/3 - # (fetchpatch { - # url = "https://github.com/hoytech/Session-Token/commit/cd64e7b69986054bb715755290811308159b7959.patch"; - # hash = "sha256-nMQmdvVQW8cQYO0+bLJcdVfSOLVIsongk+71fQ7fQdU="; - # }) - # ]; - # meta = { - # description = "Secure, efficient, simple random session token generation"; - # homepage = "https://github.com/hoytech/Session-Token"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # SetInfinite = buildPerlPackage { - # pname = "Set-Infinite"; - # version = "0.65"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FG/FGLOCK/Set-Infinite-0.65.tar.gz"; - # hash = "sha256-B7yIBzRJLeQLSjqLWjMXYvZOabRikCn9mp01eyW4fh8="; - # }; - # meta = { - # description = "Infinite Sets math"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SetIntSpan = buildPerlPackage { - # pname = "Set-IntSpan"; - # version = "1.19"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SW/SWMCD/Set-IntSpan-1.19.tar.gz"; - # hash = "sha256-EbdUmxPsXYfMaV3Ux3fNApg91f6YZgEod/tTD0iz39A="; - # }; - - # meta = { - # description = "Manages sets of integers, newsrc style"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SetObject = buildPerlPackage { - # pname = "Set-Object"; - # version = "1.42"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RU/RURBAN/Set-Object-1.42.tar.gz"; - # hash = "sha256-0YxaiiM+q70CBs89pbAPzdezf+vxKpPcw9HAJub97EU="; - # }; - # meta = { - # description = "Unordered collections (sets) of Perl Objects"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # SetScalar = buildPerlPackage { - # pname = "Set-Scalar"; - # version = "1.29"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAVIDO/Set-Scalar-1.29.tar.gz"; - # hash = "sha256-o9wVJvPd5y08ZOoAAHuGzmCM3Nk1Z89ubkLcEP3EUR0="; - # }; - # meta = { - # description = "Basic set operations"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SmartComments = buildPerlPackage { - # pname = "Smart-Comments"; - # version = "1.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/Smart-Comments-1.06.tar.gz"; - # hash = "sha256-3PijEhNKfGuCkmoBFdk7aSRypmLSjNw6m98omEranuM="; - # }; - # meta = { - # description = "Comments that do more than just sit there"; - # homepage = "https://github.com/neilb/Smart-Comments"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # SGMLSpm = buildPerlModule { - # pname = "SGMLSpm"; - # version = "1.1"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RA/RAAB/SGMLSpm-1.1.tar.gz"; - # hash = "sha256-VQySRSkcjfIkL36I95IaD2NsfuySxkRBjn2Jz+pwsr0="; - # }; - # meta = { - # description = "Library for parsing the output from SGMLS and NSGMLS parsers"; - # license = with lib.licenses; [ gpl2Plus ]; - # mainProgram = "sgmlspl.pl"; - # }; - # }; - - # SignalMask = buildPerlPackage { - # pname = "Signal-Mask"; - # version = "0.008"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LE/LEONT/Signal-Mask-0.008.tar.gz"; - # hash = "sha256-BD2ZW2sknZ68BMRn2zG7fdwuVfqgjohb2wULHyM2tz8="; - # }; - # propagatedBuildInputs = [ IPCSignal ]; - # meta = { - # description = "Signal masks made easy"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SnowballNorwegian = buildPerlModule { - # pname = "Snowball-Norwegian"; - # version = "1.2"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AS/ASKSH/Snowball-Norwegian-1.2.tar.gz"; - # hash = "sha256-Hc+NfyazdSCgENzVGXAU4KWDhe5muDtP3gfqtQrZ5Rg="; - # }; - # meta = { - # description = "Porters stemming algorithm for norwegian"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "stemmer-no.pl"; - # }; - # }; - - # SnowballSwedish = buildPerlModule { - # pname = "Snowball-Swedish"; - # version = "1.2"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AS/ASKSH/Snowball-Swedish-1.2.tar.gz"; - # hash = "sha256-76qSNVhZj06IjZelEtYPvMRIHB+cXn3tUnWWKUVg/Ck="; - # }; - # meta = { - # description = "Porters stemming algorithm for swedish"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "stemmer-se.pl"; - # }; - # }; - - # SOAPLite = buildPerlPackage { - # pname = "SOAP-Lite"; - # version = "1.27"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PH/PHRED/SOAP-Lite-1.27.tar.gz"; - # hash = "sha256-41kQa6saRaFgRKTC+ASfrQNOXe0VF5kLybX42G3d0wE="; - # }; - # propagatedBuildInputs = [ ClassInspector IOSessionData LWPProtocolHttps TaskWeaken XMLParser ]; - # buildInputs = [ TestWarn XMLParserLite ]; - # nativeCheckInputs = [ HTTPDaemon ]; - # meta = { - # description = "Perl's Web Services Toolkit"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Socket6 = buildPerlPackage { - # pname = "Socket6"; - # version = "0.29"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/U/UM/UMEMOTO/Socket6-0.29.tar.gz"; - # hash = "sha256-RokV+joE3PZXT8lX7/SVkV4kVpQ0lwyR7o5OFFn8kRQ="; - # }; - # setOutputFlags = false; - # buildInputs = [ pkgs.which ]; - # patches = [ ./perl-modules/Socket6-sv_undef.patch ]; - # meta = { - # description = "IPv6 related part of the C socket.h defines and structure manipulators"; - # license = with lib.licenses; [ bsd3 ]; - # }; - # }; - - # SoftwareLicense = buildPerlPackage { - # pname = "Software-License"; - # version = "0.104004"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LE/LEONT/Software-License-0.104004.tar.gz"; - # hash = "sha256-of2iTsh3UhmAlzgPuTAMFLV0gmJwzFgNr3UONYX8Jww="; - # }; - # buildInputs = [ TryTiny ]; - # propagatedBuildInputs = [ DataSection TextTemplate ]; - # meta = { - # description = "Packages that provide templated software licenses"; - # homepage = "https://github.com/Perl-Toolchain-Gang/Software-License"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SoftwareLicenseCCpack = buildPerlPackage { - # pname = "Software-License-CCpack"; - # version = "1.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BB/BBYRD/Software-License-CCpack-1.11.tar.gz"; - # hash = "sha256-WU9carwhbJXNRYd8Qd7FbSvDDh0DFq04VbCiqo5dU7E="; - # }; - # propagatedBuildInputs = [ SoftwareLicense ]; - # buildInputs = [ TestCheckDeps ]; - # meta = { - # description = "Software::License pack for Creative Commons' licenses"; - # homepage = "https://github.com/SineSwiper/Software-License-CCpack"; - # license = with lib.licenses; [ lgpl3Plus ]; - # }; - # }; - - # SortKey = buildPerlPackage { - # pname = "Sort-Key"; - # version = "1.33"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SA/SALVA/Sort-Key-1.33.tar.gz"; - # hash = "sha256-7WpMz6sJTJzRZPVkAk6YvSHZT0MSzKxNYkbSKzQIGs8="; - # }; - # meta = { - # description = "The fastest way to sort anything in Perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SortVersions = buildPerlPackage { - # pname = "Sort-Versions"; - # version = "1.62"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/Sort-Versions-1.62.tar.gz"; - # hash = "sha256-v18zB0BuviWBI38CWYLoyE9vZiXdd05FfAP4mU79Lqo="; - # }; - # meta = { - # description = "A perl 5 module for sorting of revision-like numbers"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Specio = buildPerlPackage { - # pname = "Specio"; - # version = "0.48"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/Specio-0.48.tar.gz"; - # hash = "sha256-DIV5NYDxJ07wgXMHkTHRAfd7IqzOp6+oJVIC8IEWgrI="; - # }; - # propagatedBuildInputs = [ DevelStackTrace EvalClosure MROCompat ModuleRuntime RoleTiny SubQuote TryTiny ]; - # buildInputs = [ TestFatal TestNeeds ]; - # meta = { - # description = "Type constraints and coercions for Perl"; - # homepage = "https://metacpan.org/release/Specio"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # SpecioLibraryPathTiny = buildPerlPackage { - # pname = "Specio-Library-Path-Tiny"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/Specio-Library-Path-Tiny-0.05.tar.gz"; - # hash = "sha256-YN8Lubza6yxmoHi/bfmVTqT5Qz1stoCImULlQsfCelE="; - # }; - # propagatedBuildInputs = [ PathTiny Specio ]; - # buildInputs = [ Filepushd TestFatal ]; - # meta = { - # description = "Path::Tiny types and coercions for Specio"; - # homepage = "https://metacpan.org/release/Specio-Library-Path-Tiny"; - # license = with lib.licenses; [ asl20 ]; - # }; - # }; - - # Spiffy = buildPerlPackage { - # pname = "Spiffy"; - # version = "0.46"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IN/INGY/Spiffy-0.46.tar.gz"; - # hash = "sha256-j1hiCoQgJVxJtsQ8X/WAK9JeTwkkDFHlvysCKDPUHaM="; - # }; - # meta = { - # description = "Spiffy Perl Interface Framework For You"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SpreadsheetCSV = buildPerlPackage { - # pname = "Spreadsheet-CSV"; - # version = "0.20"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DD/DDICK/Spreadsheet-CSV-0.20.tar.gz"; - # hash = "sha256-BwuyUqj+i5OKHOT8kFJfgz1OYZttRnOwrgojQI1RSrY="; - # }; - # nativeBuildInputs = [ CGI ]; - # propagatedBuildInputs = [ ArchiveZip SpreadsheetParseExcel TextCSV_XS XMLParser ]; - # meta = { - # description = "Drop-in replacement for Text::CSV_XS with spreadsheet support"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SpreadsheetParseExcel = buildPerlPackage { - # pname = "Spreadsheet-ParseExcel"; - # version = "0.66"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JM/JMCNAMARA/Spreadsheet-ParseExcel-0.66.tar.gz"; - # hash = "sha256-v9dqz7qYhgHcBRvac7S7JfaDmgBt2WC2p0AcJJJF9ls="; - # }; - # propagatedBuildInputs = [ CryptRC4 DigestPerlMD5 IOStringy OLEStorage_Lite ]; - # meta = { - # description = "Read information from an Excel file"; - # homepage = "https://github.com/runrig/spreadsheet-parseexcel"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SpreadsheetWriteExcel = buildPerlPackage { - # pname = "Spreadsheet-WriteExcel"; - # version = "2.40"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JM/JMCNAMARA/Spreadsheet-WriteExcel-2.40.tar.gz"; - # hash = "sha256-41aq1oZs8TVzEmjuDpeaGXRDwVoEh46c8+gNAirWwH4="; - # }; - # propagatedBuildInputs = [ OLEStorage_Lite ParseRecDescent ]; - # meta = { - # description = "Write to a cross platform Excel binary file"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "chartex"; - # }; - # }; - - # SpreadsheetXLSX = buildPerlPackage { - # pname = "Spreadsheet-XLSX"; - # version = "0.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AS/ASB/Spreadsheet-XLSX-0.17.tar.gz"; - # hash = "sha256-M7d4knz/FjCQZbdOuMRpawNxZg0szf5FvkYFCSrO6XY="; - # }; - # buildInputs = [ TestNoWarnings TestWarnings ]; - # propagatedBuildInputs = [ ArchiveZip SpreadsheetParseExcel ]; - # meta = { - # homepage = "https://github.com/asb-capfan/Spreadsheet-XLSX"; - # description = "Perl extension for reading MS Excel 2007 files;"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SQLAbstract = buildPerlPackage { - # pname = "SQL-Abstract"; - # version = "2.000001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MS/MSTROUT/SQL-Abstract-2.000001.tar.gz"; - # hash = "sha256-NaZCZiw0lCDUS+bg732HZep0PrEq0UOZqjojK7lObpo="; - # }; - # buildInputs = [ DataDumperConcise TestDeep TestException TestWarn ]; - # propagatedBuildInputs = [ HashMerge MROCompat Moo ]; - # meta = { - # description = "Generate SQL from Perl data structures"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SQLAbstractClassic = buildPerlPackage { - # pname = "SQL-Abstract-Classic"; - # version = "1.91"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/SQL-Abstract-Classic-1.91.tar.gz"; - # hash = "sha256-Tj0d/QlbISMmhYa7BrhpKepXE4jU6UGszL3NoeEI7yg="; - # }; - # buildInputs = [ TestDeep TestException TestWarn ]; - # propagatedBuildInputs = [ SQLAbstract ]; - # meta = { - # description = "Generate SQL from Perl data structures"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SQLAbstractLimit = buildPerlPackage { - # pname = "SQL-Abstract-Limit"; - # version = "0.143"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AS/ASB/SQL-Abstract-Limit-0.143.tar.gz"; - # hash = "sha256-0Yr9eIk72DC6JGXArmozQlRgFZADhk3tO1rc9RGJyuk="; - # }; - # propagatedBuildInputs = [ DBI SQLAbstract ]; - # buildInputs = [ TestDeep TestException ]; - # meta = { - # description = "Portable LIMIT emulation"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SQLAbstractPg = buildPerlPackage { - # pname = "SQL-Abstract-Pg"; - # version = "1.0"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SR/SRI/SQL-Abstract-Pg-1.0.tar.gz"; - # hash = "sha256-Pic2DfN7jYjzxS2smwNJP5vT7v9sjYj5sIbScRVT9Uc="; - # }; - # buildInputs = [ TestDeep ]; - # propagatedBuildInputs = [ SQLAbstract ]; - # meta = { - # description = "PostgreSQL features for SQL::Abstract"; - # homepage = "https://mojolicious.org"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # SQLSplitStatement = buildPerlPackage { - # pname = "SQL-SplitStatement"; - # version = "1.00023"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/V/VE/VEESH/SQL-SplitStatement-1.00023.tar.gz"; - # hash = "sha256-GnSEIM0q00HCUk7xGFt273Fylp8XqeS6tvQ3bw3p814="; - # }; - # buildInputs = [ TestDifferences TestException ]; - # propagatedBuildInputs = [ ClassAccessor ListMoreUtils RegexpCommon ]; - # meta = { - # description = "Split any SQL code into atomic statements"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "sql-split"; - # }; - # }; - - # SQLStatement = buildPerlPackage { - # pname = "SQL-Statement"; - # version = "1.414"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RE/REHSACK/SQL-Statement-1.414.tar.gz"; - # hash = "sha256-3ei9z6ahNu7doGUZug8++uwIXDnbDfnEctwOxs14Gkk="; - # }; - # buildInputs = [ MathBaseConvert TestDeep TextSoundex ]; - # propagatedBuildInputs = [ Clone ModuleRuntime ParamsUtil ]; - # meta = { - # description = "SQL parsing and processing engine"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SQLTokenizer = buildPerlPackage { - # pname = "SQL-Tokenizer"; - # version = "0.24"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IZ/IZUT/SQL-Tokenizer-0.24.tar.gz"; - # hash = "sha256-+qhpvEJlc2QVNqCfU1AuVA1ePjrWp6oaxiXT9pdrQuE="; - # }; - # meta = { - # description = "A simple SQL tokenizer"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SQLTranslator = buildPerlPackage { - # pname = "SQL-Translator"; - # version = "1.63"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/V/VE/VEESH/SQL-Translator-1.63.tar.gz"; - # hash = "sha256-WIWwTJNJi+MqGX3JcjlHUdXeYJNBiTqWZW3oikJgMTM="; - # }; - # buildInputs = [ FileShareDirInstall JSONMaybeXS TestDifferences TestException XMLWriter YAML ]; - # propagatedBuildInputs = [ CarpClan DBI FileShareDir Moo PackageVariant ParseRecDescent TryTiny GraphViz GD ]; - - # postPatch = '' - # patchShebangs script - # ''; - - # nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang; - # postInstall = lib.optionalString stdenv.isDarwin '' - # for file in $out/bin/*; do - # shortenPerlShebang $file - # done - # ''; - - # meta = { - # description = "SQL DDL transformations and more"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "sqlt"; - # }; - # }; - - # PackageVariant = buildPerlPackage { - # pname = "Package-Variant"; - # version = "1.003002"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MS/MSTROUT/Package-Variant-1.003002.tar.gz"; - # hash = "sha256-su2EnS9M3WZGdRLao/FDJm1t+BDF+ukXWyUsV7wVNtw="; - # }; - # buildInputs = [ TestFatal ]; - # propagatedBuildInputs = [ ImportInto strictures ]; - # meta = { - # description = "Parameterizable packages"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SortNaturally = buildPerlPackage { - # pname = "Sort-Naturally"; - # version = "1.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BI/BINGOS/Sort-Naturally-1.03.tar.gz"; - # hash = "sha256-6qscXIdXWngmCJMEqx+P+n8Y5s2LOTdiPpmOhl7B50Y="; - # }; - # meta = { - # description = "Sort lexically, but sort numeral parts numerically"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Starlet = buildPerlPackage { - # pname = "Starlet"; - # version = "0.31"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KA/KAZUHO/Starlet-0.31.tar.gz"; - # hash = "sha256-uWA7jmKIDLRYL2p5Oer+xl5u/T2QDyx900Ll9MaNYtg="; - # }; - # buildInputs = [ LWP TestSharedFork TestTCP ]; - # propagatedBuildInputs = [ ParallelPrefork Plack ServerStarter ]; - # doCheck = !stdenv.isDarwin; - # meta = { - # description = "A simple, high-performance PSGI/Plack HTTP server"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Starman = buildPerlModule { - # pname = "Starman"; - # version = "0.4017"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Starman-0.4017.tar.gz"; - # hash = "sha256-b/q5FfMj9gCJ4+v4Urm5cH1pFyZt+K/XNw+sBL/f7k4="; - # }; - # buildInputs = [ LWP ModuleBuildTiny TestRequires TestTCP ]; - # nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang; - # propagatedBuildInputs = [ DataDump HTTPParserXS NetServer Plack NetServerSSPrefork IOSocketINET6 ]; - # postInstall = lib.optionalString stdenv.isDarwin '' - # shortenPerlShebang $out/bin/starman - # ''; - - # doCheck = false; # binds to various TCP ports - # meta = { - # description = "High-performance preforking PSGI/Plack web server"; - # homepage = "https://github.com/miyagawa/Starman"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "starman"; - # }; - # }; - - # StatisticsBasic = buildPerlPackage { - # pname = "Statistics-Basic"; - # version = "1.6611"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JE/JETTERO/Statistics-Basic-1.6611.tar.gz"; - # hash = "sha256-aFXOVhX9Phr0z8RRqb9E/ymjFAtOcTADTx8K8lEalPs="; - # }; - # propagatedBuildInputs = [ NumberFormat ]; - # meta = { - # description = "A collection of very basic statistics modules"; - # license = with lib.licenses; [ lgpl2Only ]; - # }; - # }; - - # StatisticsCaseResampling = buildPerlPackage { - # pname = "Statistics-CaseResampling"; - # version = "0.15"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SM/SMUELLER/Statistics-CaseResampling-0.15.tar.gz"; - # hash = "sha256-hRxDvW8Q0yKJUipQxqIJw7JGz9PrVmdz5oYe2gSkkIc="; - # }; - # meta = { - # description = "Efficient resampling and calculation of medians with confidence intervals"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # StatisticsChiSquare = buildPerlPackage { - # pname = "Statistics-ChiSquare"; - # version = "1.0000"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Statistics-ChiSquare-1.0000.tar.gz"; - # hash = "sha256-JVpaODNtBI3bkHciJpHgAJhOkHquCaTqaVqc/Umh3dA="; - # }; - # meta = { - # description = "Implements the Chi Squared test, using pre-computed tables"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # StatisticsDescriptive = buildPerlModule { - # pname = "Statistics-Descriptive"; - # version = "3.0801"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Statistics-Descriptive-3.0801.tar.gz"; - # hash = "sha256-BHtwpj/cqpFhaOD/LVjhVeDrvGjtTMvXOnIT3KMCj2U="; - # }; - # propagatedBuildInputs = [ ListMoreUtils ]; - # meta = { - # description = "Module of basic descriptive statistical functions"; - # homepage = "https://metacpan.org/release/Statistics-Descriptive"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # StatisticsDistributions = buildPerlPackage { - # pname = "Statistics-Distributions"; - # version = "1.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIKEK/Statistics-Distributions-1.02.tar.gz"; - # hash = "sha256-+Z85ar+EyjeqLOoxrUXXOq7kh1LJmRNsS5E4lCjXM8g="; - # }; - # meta = { - # description = "Perl module for calculating critical values and upper probabilities of common statistical distributions"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # StatisticsTTest = buildPerlPackage { - # pname = "Statistics-TTest"; - # version = "1.1.0"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Y/YU/YUNFANG/Statistics-TTest-1.1.0.tar.gz"; - # hash = "sha256-stlZ0ljHKEebfYYu4BRuWtjuqYm+JWN8vFdlUv9zcWY="; - # }; - # propagatedBuildInputs = [ StatisticsDescriptive StatisticsDistributions ]; - # meta = { - # description = "Perl module to perform T-test on 2 independent samples Statistics::TTest::Sufficient - Perl module to perfrom T-Test on 2 indepdent samples using sufficient statistics"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # StreamBuffered = buildPerlPackage { - # pname = "Stream-Buffered"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DO/DOY/Stream-Buffered-0.03.tar.gz"; - # hash = "sha256-my1DkLXeawz0VY5K0EMXpzxeE90ZrykUnE5Hw3+yQjs="; - # }; - # meta = { - # description = "Temporary buffer to save bytes"; - # homepage = "https://github.com/plack/Stream-Buffered"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # strictures = buildPerlPackage { - # pname = "strictures"; - # version = "2.000006"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HAARG/strictures-2.000006.tar.gz"; - # hash = "sha256-CdV5dKbRsjgMgChw/tRxEI9RFw2oFFjidRhZ8nFPjVc="; - # }; - # meta = { - # description = "Turn on strict and make most warnings fatal"; - # homepage = "http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/strictures.git"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # StringApprox = buildPerlPackage { - # pname = "String-Approx"; - # version = "3.28"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JH/JHI/String-Approx-3.28.tar.gz"; - # hash = "sha256-QyAedi2GmcsKwsB2SlRUvcIwbAdxAU1sj7qCFIBjE0I="; - # }; - # meta = { - # description = "Perl extension for approximate matching (fuzzy matching)"; - # license = with lib.licenses; [ artistic2 gpl2Only ]; - # }; - # }; - - # StringBinaryInterpolation = buildPerlPackage { - # pname = "String-Binary-Interpolation"; - # version = "1.0.0"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DC/DCANTRELL/String-Binary-Interpolation-1.0.0.tar.gz"; - # hash = "sha256-2lXYmCTBrdniqpWP8OpILyaCLkJI7TOo1rT7vXdYivE="; - # }; - # meta = { - # description = "Make it easier to interpolate binary bytes into a string"; - # license = with lib.licenses; [ artistic2 gpl2Only ]; - # }; - # }; - - # StringCamelCase = buildPerlPackage { - # pname = "String-CamelCase"; - # version = "0.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HI/HIO/String-CamelCase-0.04.tar.gz"; - # hash = "sha256-icPevO7Orodk9F10Aj+Pvu4tiDma9nVB29qgsr8nEak="; - # }; - # meta = { - # description = "Camelcase, de-camelcase"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # StringCompareConstantTime = buildPerlPackage { - # pname = "String-Compare-ConstantTime"; - # version = "0.321"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FR/FRACTAL/String-Compare-ConstantTime-0.321.tar.gz"; - # hash = "sha256-Cya6KxIdgARCXUSF0dRvWQAcg3Y6omYk3/YiDXc11/c="; - # }; - # meta = { - # description = "Timing side-channel protected string compare"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # StringCRC32 = buildPerlPackage { - # pname = "String-CRC32"; - # version = "2.100"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LE/LEEJO/String-CRC32-2.100.tar.gz"; - # hash = "sha256-lwYJOy0Gi2cV01tMWPUVWON5YAgyAhKfuwClfhmnRxM="; - # }; - # meta = { - # description = "Perl interface for cyclic redundancy check generation"; - # license = with lib.licenses; [ publicDomain ]; - # }; - # }; - - # StringDiff = buildPerlModule { - # pname = "String-Diff"; - # version = "0.07"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Y/YA/YAPPO/String-Diff-0.07.tar.gz"; - # hash = "sha256-chW2fLwyJuLQ4Ys47FjJO+C/YJAnhpi++VU0iCbNCvM="; - # }; - # patches = [ - # (fetchpatch { - # url = "https://salsa.debian.org/perl-team/modules/packages/libstring-diff-perl/-/raw/d8120a93f73f4d4aa40d10819b2f0a312608ca9b/debian/patches/0001-Fix-the-test-suite-for-YAML-1.21-compatibility.patch"; - # hash = "sha256-RcYsn0jVa9sSF8iYPuaFTWx00LrF3m7hH9e6fC7j72U="; - # }) - # ]; - # buildInputs = [ TestBase ModuleBuildTiny ModuleInstallGithubMeta ModuleInstallRepository ModuleInstallReadmeFromPod ModuleInstallReadmeMarkdownFromPod YAML ]; - # propagatedBuildInputs = [ AlgorithmDiff ]; - # meta = { - # description = "Simple diff to String"; - # homepage = "https://github.com/yappo/p5-String-Diff"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # StringErrf = buildPerlPackage { - # pname = "String-Errf"; - # version = "0.009"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/String-Errf-0.009.tar.gz"; - # hash = "sha256-4f7b+bT9ZLZOqBA43bdqTGzYX12xW8IfEGVqKYNJ3B8="; - # }; - # buildInputs = [ JSONMaybeXS TimeDate ]; - # propagatedBuildInputs = [ StringFormatter ]; - # meta = { - # description = "A simple sprintf-like dialect"; - # homepage = "https://github.com/rjbs/String-Errf"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # StringEscape = buildPerlPackage { - # pname = "String-Escape"; - # version = "2010.002"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/EV/EVO/String-Escape-2010.002.tar.gz"; - # hash = "sha256-/WRfizNiJNIKha5/saOEV26sMp963DkjwyQego47moo="; - # }; - # meta = { - # description = "Backslash escapes, quoted phrase, word elision, etc"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # StringFlogger = buildPerlPackage { - # pname = "String-Flogger"; - # version = "1.101246"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/String-Flogger-1.101246.tar.gz"; - # hash = "sha256-FfhJHgeBi7PPqfa9Oqv2QwuptOMJ8YEUNYvj2Bv/Og8="; - # }; - # propagatedBuildInputs = [ JSONMaybeXS SubExporter ]; - # meta = { - # description = "String munging for loggers"; - # homepage = "https://github.com/rjbs/String-Flogger"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # StringFormat = buildPerlPackage { - # pname = "String-Format"; - # version = "1.18"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SR/SREZIC/String-Format-1.18.tar.gz"; - # hash = "sha256-nkF6j42epiO+6i0TpHwNWmlvyGAsBQm4Js1F+Xt253g="; - # }; - # meta = { - # description = "sprintf-like string formatting capabilities with arbitrary format definitions"; - # license = with lib.licenses; [ gpl2Only ]; - # }; - # }; - - # StringFormatter = buildPerlPackage { - # pname = "String-Formatter"; - # version = "1.235"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/String-Formatter-1.235.tar.gz"; - # hash = "sha256-CCNqkTuRHOZSzwhZjnwH0t8/Np/Ee/QBpIWlBKFmB4M="; - # }; - # propagatedBuildInputs = [ SubExporter ]; - # meta = { - # description = "Build sprintf-like functions of your own"; - # license = with lib.licenses; [ gpl2Only ]; - # }; - # }; - - # StringInterpolate = buildPerlPackage { - # pname = "String-Interpolate"; - # version = "0.33"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/String-Interpolate-0.33.tar.gz"; - # hash = "sha256-qH7Qk4kH0xr32qltc6BjL1xko40d4N6HxLRCWDEpxBM="; - # }; - # meta = { - # # https://metacpan.org/pod/String::Interpolate - # description = "String::Interpolate - Wrapper for builtin the Perl interpolation engine."; - # license = with lib.licenses; [ gpl1Plus ]; - # }; - # propagatedBuildInputs = [ PadWalker SafeHole ]; - # }; - - # StringInterpolateNamed = buildPerlPackage { - # pname = "String-Interpolate-Named"; - # version = "1.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JV/JV/String-Interpolate-Named-1.03.tar.gz"; - # hash = "sha256-on13VgcnX2jtkqQT85SsAJLn3hzZPWJHnUf7pwF6Jtw="; - # }; - # meta = { - # description = "Interpolated named arguments in string"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # StringMkPasswd = buildPerlPackage { - # pname = "String-MkPasswd"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CG/CGRAU/String-MkPasswd-0.05.tar.gz"; - # hash = "sha256-UxD4NGAEVHUHFma1Qj2y8KqC1mhcgC7Hq+bCxBBjm5Y="; - # }; - # meta = { - # description = "Random password generator"; - # homepage = "https://github.com/sirhc/string-mkpasswd"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "mkpasswd.pl"; - # }; - # }; - - # StringRandom = buildPerlModule { - # pname = "String-Random"; - # version = "0.32"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/String-Random-0.32.tar.gz"; - # hash = "sha256-nZPGeaNP+ibTtPoIN8rtHNLmfXZXKBi5HpfepzRwUkY="; - # }; - # meta = { - # description = "Perl module to generate random strings based on a pattern"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # StringRewritePrefix = buildPerlPackage { - # pname = "String-RewritePrefix"; - # version = "0.009"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/String-RewritePrefix-0.009.tar.gz"; - # hash = "sha256-RJGL7JalSvjKN8qJfkNnCewoSgeyhRbvPM5GZoaWRtU="; - # }; - # propagatedBuildInputs = [ SubExporter ]; - # meta = { - # description = "Rewrite strings based on a set of known prefixes"; - # homepage = "https://github.com/rjbs/String-RewritePrefix"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # StringShellQuote = buildPerlPackage { - # pname = "String-ShellQuote"; - # version = "1.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RO/ROSCH/String-ShellQuote-1.04.tar.gz"; - # hash = "sha256-5gY2UDjOINZG0lXIBe/90y+GR18Y1DynVFWwDk2G3TU="; - # }; - # doCheck = !stdenv.isDarwin; - # meta = { - # description = "Quote strings for passing through the shell"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "shell-quote"; - # }; - # }; - - # StringSimilarity = buildPerlPackage { - # pname = "String-Similarity"; - # version = "1.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/ML/MLEHMANN/String-Similarity-1.04.tar.gz"; - # hash = "sha256-H47aIpC7y3Ia7wzhsL/hOwEgHdPaphijN/LwLikcMkU="; - # }; - # doCheck = true; - # meta = { - # description = "Calculate the similarity of two strings"; - # license = with lib.licenses; [ gpl2Only ]; - # }; - # }; - - # ShellCommand = buildPerlPackage { - # pname = "Shell-Command"; - # version = "0.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FL/FLORA/Shell-Command-0.06.tar.gz"; - # hash = "sha256-8+Te71d5RL5G+nr1rBGKwoKJEXiLAbx2p0SVNVYW7NE="; - # }; - # meta = { - # description = "Cross-platform functions emulating common shell commands"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ShellConfigGenerate = buildPerlPackage { - # pname = "Shell-Config-Generate"; - # version = "0.34"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/Shell-Config-Generate-0.34.tar.gz"; - # hash = "sha256-hPRR8iIV3WjpwYqj992wOoIAfRZs+toAPQ8Wb1ceBWI="; - # }; - # buildInputs = [ Test2Suite ]; - # propagatedBuildInputs = [ ShellGuess ]; - # meta = { - # description = "Portably generate config for any shell"; - # homepage = "https://metacpan.org/pod/Shell::Config::Generate"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ShellGuess = buildPerlPackage { - # pname = "Shell-Guess"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/Shell-Guess-0.09.tar.gz"; - # hash = "sha256-QGn6JjfkQxGO2VbXECMdFmgj0jsqZOuHuKRocuhloSs="; - # }; - # meta = { - # description = "Make an educated guess about the shell in use"; - # homepage = "https://metacpan.org/pod/Shell::Guess"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # StringToIdentifierEN = buildPerlPackage { - # pname = "String-ToIdentifier-EN"; - # version = "0.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RK/RKITOVER/String-ToIdentifier-EN-0.12.tar.gz"; - # hash = "sha256-OvuEIykwuaxbGto4PI3VkHrk4jrsWrsBb3D56AU83Io="; - # }; - # propagatedBuildInputs = [ LinguaENInflectPhrase TextUnidecode namespaceclean ]; - # meta = { - # description = "Convert Strings to English Program Identifiers"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # StringTruncate = buildPerlPackage { - # pname = "String-Truncate"; - # version = "1.100603"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/String-Truncate-1.100603.tar.gz"; - # hash = "sha256-q0VgLM4t2VFe37sublzeGc3VSY1hojr9jEbB8R+O7GI="; - # }; - # propagatedBuildInputs = [ SubExporter ]; - # meta = { - # description = "A module for when strings are too long to be displayed in..."; - # homepage = "https://github.com/rjbs/String-Truncate"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # StringTT = buildPerlPackage { - # pname = "String-TT"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BO/BOBTFISH/String-TT-0.03.tar.gz"; - # hash = "sha256-92BfCgT5+hI9Ot9PNFeaFMkLfai5O2XS5IkyzNPJUqs="; - # }; - # buildInputs = [ TestException TestSimple13 TestTableDriven ]; - # propagatedBuildInputs = [ PadWalker SubExporter TemplateToolkit ]; - # meta = { - # description = "Use TT to interpolate lexical variables"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # StringUtil = buildPerlModule { - # pname = "String-Util"; - # version = "1.34"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BA/BAKERSCOT/String-Util-1.34.tar.gz"; - # hash = "sha256-MZzozWZTQeVlIfoVXZYqGTKOkNn3A2dlklzN4mclxGk="; - # }; - # buildInputs = [ ModuleBuildTiny ]; - # meta = { - # description = "String processing utility functions"; - # homepage = "https://github.com/scottchiefbaker/String-Util"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # strip-nondeterminism = callPackage ./perl-modules/strip-nondeterminism { }; - - # StructDumb = buildPerlModule { - # pname = "Struct-Dumb"; - # version = "0.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/Struct-Dumb-0.14.tar.gz"; - # hash = "sha256-E8FIU2sQ4oxuC04TLynkym5ptXSQWcRBV6J+hKVFlDY="; - # }; - # buildInputs = [ Test2Suite ]; - # meta = { - # description = "Make simple lightweight record-like structures"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SubExporter = buildPerlPackage { - # pname = "Sub-Exporter"; - # version = "0.990"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Sub-Exporter-0.990.tar.gz"; - # hash = "sha256-vGTsWgaGX5zGdiFcBqlEizoMizl0/7I6JPjirQkFRPw="; - # }; - # propagatedBuildInputs = [ DataOptList ]; - # meta = { - # description = "A sophisticated exporter for custom-built routines"; - # homepage = "https://github.com/rjbs/Sub-Exporter"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SubExporterForMethods = buildPerlPackage { - # pname = "Sub-Exporter-ForMethods"; - # version = "0.100055"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Sub-Exporter-ForMethods-0.100055.tar.gz"; - # hash = "sha256-eR9CA7p8D32DgLwBvsICFffIvHDX7QPlUu7kRUGr6U4="; - # }; - # buildInputs = [ namespaceautoclean ]; - # propagatedBuildInputs = [ SubExporter SubName ]; - # meta = { - # description = "Helper routines for using Sub::Exporter to build methods"; - # homepage = "https://github.com/rjbs/Sub-Exporter-ForMethods"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SubExporterGlobExporter = buildPerlPackage { - # pname = "Sub-Exporter-GlobExporter"; - # version = "0.006"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Sub-Exporter-GlobExporter-0.006.tar.gz"; - # hash = "sha256-3nQ/CAJnAcKmoiKotBxM3CVLGkr+fvmJh806ukzlJpY="; - # }; - # propagatedBuildInputs = [ SubExporter ]; - # meta = { - # description = "Export shared globs with Sub::Exporter collectors"; - # homepage = "https://github.com/rjbs/Sub-Exporter-GlobExporter"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SubExporterProgressive = buildPerlPackage { - # pname = "Sub-Exporter-Progressive"; - # version = "0.001013"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FR/FREW/Sub-Exporter-Progressive-0.001013.tar.gz"; - # hash = "sha256-1TW3lU1k2hrBMFsfrfmCAnaeNZk3aFSyztkMOCvqwFY="; - # }; - # meta = { - # description = "Only use Sub::Exporter if you need it"; - # homepage = "https://github.com/frioux/Sub-Exporter-Progressive"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SubHandlesVia = buildPerlPackage { - # pname = "Sub-HandlesVia"; - # version = "0.050000"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TOBYINK/Sub-HandlesVia-0.050000.tar.gz"; - # hash = "sha256-Lfk0k+L56VvleblQtuGf9ST5TIBhOq3AOohhHf91eU8="; - # }; - # propagatedBuildInputs = [ ClassMethodModifiers RoleHooks RoleTiny TypeTiny ]; - # buildInputs = [ TestFatal TestRequires TryTiny ]; - # meta = { - # description = "Alternative handles_via implementation"; - # homepage = "https://metacpan.org/release/Sub-HandlesVia"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SubIdentify = buildPerlPackage { - # pname = "Sub-Identify"; - # version = "0.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RG/RGARCIA/Sub-Identify-0.14.tar.gz"; - # hash = "sha256-Bo0nIIZRTdHoQrakCxvtuv7mOQDlsIiQ72cAA53vrW8="; - # }; - # meta = { - # description = "Retrieve names of code references"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SubInfo = buildPerlPackage { - # pname = "Sub-Info"; - # version = "0.002"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/EX/EXODIST/Sub-Info-0.002.tar.gz"; - # hash = "sha256-6jBW1pa97/IamdNA1VcIh9OajMR7/yOt/ILfZ1jN0Oo="; - # }; - # propagatedBuildInputs = [ Importer ]; - # meta = { - # description = "Tool for inspecting subroutines"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SubInstall = buildPerlPackage { - # pname = "Sub-Install"; - # version = "0.929"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Sub-Install-0.929.tar.gz"; - # hash = "sha256-gLHigdjNOysx2scR9cihZXqHzYC75przkkvL605dsHc="; - # }; - # meta = { - # description = "Install subroutines into packages easily"; - # homepage = "https://github.com/rjbs/Sub-Install"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SubName = buildPerlPackage { - # pname = "Sub-Name"; - # version = "0.27"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Sub-Name-0.27.tar.gz"; - # hash = "sha256-7PNvuhxHypPh2qOUlo7TnEGGhnRZ2c0XPEIeK5cgQ+g="; - # }; - # buildInputs = [ BC DevelCheckBin ]; - # meta = { - # description = "(Re)name a sub"; - # homepage = "https://github.com/p5sagit/Sub-Name"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SubOverride = buildPerlPackage { - # pname = "Sub-Override"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/O/OV/OVID/Sub-Override-0.09.tar.gz"; - # hash = "sha256-k5pnwfcplo4MyBt0lY23UOG9t8AgvuGiYzMvQiwuJbU="; - # }; - # buildInputs = [ TestFatal ]; - # meta = { - # description = "Perl extension for easily overriding subroutines"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - SubQuote = buildPerlPackage { - pname = "Sub-Quote"; - version = "2.006008"; - src = fetchurl { - url = "mirror://cpan/authors/id/H/HA/HAARG/Sub-Quote-2.006008.tar.gz"; - hash = "sha256-lL69UAr1V2LoPqLyvFlNh6+CgHI3DHEQxgwjioANFbI="; - }; - buildInputs = [ TestFatal ]; - meta = { - description = "Efficient generation of subroutines via string eval"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # SubStrictDecl = buildPerlModule { - # pname = "Sub-StrictDecl"; - # version = "0.005"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Sub-StrictDecl-0.005.tar.gz"; - # hash = "sha256-oSfa52RcGpVwzZopcMbcST1SL/BzGKNKOeQJCY9pESU="; - # }; - # propagatedBuildInputs = [ LexicalSealRequireHints ]; - # perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC"; - # meta = { - # description = "Detect undeclared subroutines in compilation"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - SubUplevel = buildPerlPackage { - pname = "Sub-Uplevel"; - version = "0.2800"; - src = fetchurl { - url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Sub-Uplevel-0.2800.tar.gz"; - hash = "sha256-tPP2O4D2gKQhMy2IUd2+Wo5y/Kp01dHZjzyMxKPs4pM="; - }; - 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 ]; - }; - }; - - # SVNSimple = buildPerlPackage { - # pname = "SVN-Simple"; - # version = "0.28"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CL/CLKAO/SVN-Simple-0.28.tar.gz"; - # hash = "sha256-1jzBaeQ2m+mKU5q+nMFhG/zCs2lmplF+Z2aI/tGIT/s="; - # }; - # propagatedBuildInputs = [ (pkgs.subversionClient.override { inherit perl; }) ]; - # meta = { - # description = "A simple interface to subversion's editor interface"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SafeHole = buildPerlModule { - # pname = "Safe-Hole"; - # version = "0.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TODDR/Safe-Hole-0.14.tar.gz"; - # hash = "sha256-9PVui70GxP5K4G2xIYbeyt+6wep3XqGMbAKJSB0V7AU="; - # }; - # meta = { - # description = "Lib/Safe/Hole.pm"; - # homepage = "https://github.com/toddr/Safe-Hole"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # broken = stdenv.isDarwin; - # }; - # }; - - # Swim = buildPerlPackage { - # pname = "Swim"; - # version = "0.1.48"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IN/INGY/Swim-0.1.48.tar.gz"; - # hash = "sha256-pfcv0vIpF/orSsuy7iw9MpA9l+5bDkSbDzhwGMd/Tww="; - # }; - # propagatedBuildInputs = [ HTMLEscape HashMerge IPCRun Pegex TextAutoformat YAMLLibYAML ]; - # meta = { - # description = "See What I Mean?!"; - # homepage = "https://github.com/ingydotnet/swim-pm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "swin"; - # }; - # }; - - # Switch = buildPerlPackage { - # pname = "Switch"; - # version = "2.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CH/CHORNY/Switch-2.17.tar.gz"; - # hash = "sha256-MTVJdRQP5iNawTChCUlkka0z3UL5xiGJ4j9J91+TbXU="; - # }; - # doCheck = false; # FIXME: 2/293 test failures - # meta = { - # description = "A switch statement for Perl, do not use if you can use given/when"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SymbolGet = buildPerlPackage { - # pname = "Symbol-Get"; - # version = "0.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FE/FELIPE/Symbol-Get-0.10.tar.gz"; - # hash = "sha256-DuVWjFrjVzyodOCeTQUkRmz8Gtmiwk0LyR1MewbyHZw="; - # }; - # buildInputs = [ TestDeep TestException ]; - # propagatedBuildInputs = [ CallContext ]; - # meta = { - # description = "Read Perl's symbol table programmatically"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # SymbolGlobalName = buildPerlPackage { - # pname = "Symbol-Global-Name"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AL/ALEXMV/Symbol-Global-Name-0.05.tar.gz"; - # hash = "sha256-D3Yj6dckdgqmQEAiLaHYLxGIWGeRMpJhzGDa0dYNapI="; - # }; - # meta = { - # description = "Finds name and type of a global variable"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SymbolUtil = buildPerlModule { - # pname = "Symbol-Util"; - # version = "0.0203"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DE/DEXTER/Symbol-Util-0.0203.tar.gz"; - # hash = "sha256-VbZh3SL5zpub5afgo/UomsAM0lTCHj2GAyiaVlrm3DI="; - # }; - # meta = { - # description = "Additional utils for Perl symbols manipulation"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # syntax = buildPerlPackage { - # pname = "syntax"; - # version = "0.004"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PH/PHAYLON/syntax-0.004.tar.gz"; - # hash = "sha256-/hm22oqPQ6WqLuVxRBvA4zn7FW0AgcFXoaJOmBLH02U="; - # }; - # propagatedBuildInputs = [ DataOptList namespaceclean ]; - # meta = { - # description = "Activate syntax extensions"; - # homepage = "https://github.com/phaylon/syntax/wiki"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SyntaxKeywordJunction = buildPerlPackage { - # pname = "Syntax-Keyword-Junction"; - # version = "0.003008"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FR/FREW/Syntax-Keyword-Junction-0.003008.tar.gz"; - # hash = "sha256-i0l18hsZkqfmwt9dzJKyVMYZJVle3c368LFJhxeqle8="; - # }; - # buildInputs = [ TestRequires ]; - # propagatedBuildInputs = [ syntax ]; - # meta = { - # description = "Perl6 style Junction operators in Perl5"; - # homepage = "https://github.com/frioux/Syntax-Keyword-Junction"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SyntaxKeywordTry = buildPerlModule { - # pname = "Syntax-Keyword-Try"; - # version = "0.29"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/Syntax-Keyword-Try-0.29.tar.gz"; - # hash = "sha256-zDIHGdNgjaqVFHQ6Q9rCvpnLjM2Ymx/vooUpDLHVnY8="; - # }; - # buildInputs = [ Test2Suite ]; - # propagatedBuildInputs = [ XSParseKeyword ]; - # perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC"; - # meta = { - # description = "A try/catch/finally syntax for perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.zakame ]; - # }; - # }; - - # SysMmap = buildPerlPackage { - # pname = "Sys-Mmap"; - # version = "0.20"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TODDR/Sys-Mmap-0.20.tar.gz"; - # hash = "sha256-GCDOLInxq3NXZE+NsPSfFC9UUmJQ+x4jXbEKqA8V4s8="; - # }; - # meta = { - # description = "Use mmap to map in a file as a Perl variable"; - # maintainers = with maintainers; [ peterhoeg ]; - # license = with lib.licenses; [ gpl2Plus ]; - # }; - # }; - - # SysMemInfo = buildPerlPackage { - # pname = "Sys-MemInfo"; - # version = "0.99"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SC/SCRESTO/Sys-MemInfo-0.99.tar.gz"; - # hash = "sha256-B4YxnTo6i65dcnk5JEvxfhQLcU9Sc01en2JyA+TPPjs="; - # }; - # meta = { - # description = "Memory information"; - # license = with lib.licenses; [ gpl2Plus ]; - # maintainers = [ maintainers.pSub ]; - # }; - # }; - - # SysCPU = buildPerlPackage { - # pname = "Sys-CPU"; - # version = "0.61"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MZ/MZSANFORD/Sys-CPU-0.61.tar.gz"; - # hash = "sha256-JQqGt5wjEAHErnHS9mQoCSpPuyBwlxrK/UcapJc5yeQ="; - # }; - # patches = [ - # # Bug #95400 for Sys-CPU: Tests fail on ARM and AArch64 Linux - # # https://rt.cpan.org/Public/Bug/Display.html?id=95400 - # (fetchpatch { - # url = "https://rt.cpan.org/Ticket/Attachment/1359669/721669/0001-Add-support-for-cpu_type-on-ARM-and-AArch64-Linux-pl.patch"; - # hash = "sha256-oIJQX+Fz/CPmJNPuJyHVpJxJB2K5IQibnvaT4dv/qmY="; - # }) - # (fetchpatch { - # url = "https://rt.cpan.org/Ticket/Attachment/1388036/737125/0002-cpu_clock-can-be-undefined-on-an-ARM.patch"; - # hash = "sha256-nCypGyi6bZDEXqdb7wlGGzk9cFzmYkWGP1slBpXDfHw="; - # }) - # ]; - # buildInputs = lib.optional stdenv.isDarwin pkgs.darwin.apple_sdk.frameworks.Carbon; - # doCheck = !stdenv.isAarch64; - # meta = { - # description = "Perl extension for getting CPU information. Currently only number of CPU's supported."; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SysCpuAffinity = buildPerlModule { - # pname = "Sys-CpuAffinity"; - # version = "1.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MO/MOB/Sys-CpuAffinity-1.12.tar.gz"; - # hash = "sha256-/jLAXz6wWXCMZH8ruFslBFhZHyupBR2Nhm9Uajh+6Eg="; - # }; - # doCheck = false; # Would run checks for all supported systems - # meta = { - # description = "Set CPU affinity for processes"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ tomasajt ]; - # }; - # }; - - # SysHostnameLong = buildPerlPackage { - # pname = "Sys-Hostname-Long"; - # version = "1.5"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SC/SCOTT/Sys-Hostname-Long-1.5.tar.gz"; - # hash = "sha256-6Rht83Bqh379YUnyxxHWz4fdbPcvark1uoEhsiWyZcs="; - # }; - # doCheck = false; # no `hostname' in stdenv - # meta = { - # description = "Try every conceivable way to get full hostname"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SysSigAction = buildPerlPackage { - # pname = "Sys-SigAction"; - # version = "0.23"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LB/LBAXTER/Sys-SigAction-0.23.tar.gz"; - # hash = "sha256-xO9sk0VTQDH8u+Ktw0f8cZTUevyUXnpE+sfpVjCV01M="; - # }; - # doCheck = !stdenv.isAarch64; # it hangs on Aarch64 - # meta = { - # description = "Perl extension for Consistent Signal Handling"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SysSyslog = buildPerlPackage { - # pname = "Sys-Syslog"; - # version = "0.36"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SA/SAPER/Sys-Syslog-0.36.tar.gz"; - # hash = "sha256-7UKp5boErUhWzAy1040onDxdN2RUPsBO+vxK9+M3jfg="; - # }; - # meta = { - # description = "Perl interface to the UNIX syslog(3) calls"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SystemCommand = buildPerlPackage { - # pname = "System-Command"; - # version = "1.122"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BO/BOOK/System-Command-1.122.tar.gz"; - # hash = "sha256-2bgjsmYZqmn3oGFmUKeBDolajfBi3p0iQNZdvlz+dHo="; - # }; - # propagatedBuildInputs = [ IPCRun ]; - # buildInputs = [ PodCoverageTrustPod TestCPANMeta TestPod TestPodCoverage ]; - # meta = { - # description = "Object for running system commands"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SysVirt = buildPerlModule rec { - # pname = "Sys-Virt"; - # version = "10.0.0"; - # src = fetchFromGitLab { - # owner = "libvirt"; - # repo = "libvirt-perl"; - # rev = "v${version}"; - # hash = "sha256-FK2SaerA/GB0ZAg/QXG9Ig1Cvpg6v9lh1sKPjYU52M8="; - # }; - # nativeBuildInputs = [ pkgs.pkg-config ]; - # buildInputs = [ pkgs.libvirt CPANChanges TestPod TestPodCoverage XMLXPath ]; - # perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local' - # meta = { - # description = "Libvirt Perl API"; - # homepage = "https://libvirt.org"; - # license = with lib.licenses; [ gpl2Plus artistic1 ]; - # broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.SysVirt.x86_64-darwin - # }; - # }; - - # TAPParserSourceHandlerpgTAP = buildPerlModule { - # pname = "TAP-Parser-SourceHandler-pgTAP"; - # version = "3.36"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DW/DWHEELER/TAP-Parser-SourceHandler-pgTAP-3.36.tar.gz"; - # hash = "sha256-B75RUy4GPqxu2OWBUFRw7ryB1VBkQa8tzzK8Dr7pjGc="; - # }; - # doCheck = !stdenv.isDarwin; - # meta = { - # description = "Stream TAP from pgTAP test scripts"; - # homepage = "https://search.cpan.org/dist/Tap-Parser-Sourcehandler-pgTAP"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TaskCatalystTutorial = buildPerlPackage { - # pname = "Task-Catalyst-Tutorial"; - # version = "0.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Task-Catalyst-Tutorial-0.06.tar.gz"; - # hash = "sha256-dbGy2WFVZHhCWHFGzv0N4wlDuFGV6OPspR4PC4ZC1h4="; - # }; - # propagatedBuildInputs = [ CatalystAuthenticationStoreDBIxClass CatalystControllerHTMLFormFu CatalystDevel CatalystManual CatalystPluginAuthorizationACL CatalystPluginAuthorizationRoles CatalystPluginSessionStateCookie CatalystPluginSessionStoreFastMmap CatalystPluginStackTrace CatalystViewTT ]; - # doCheck = false; /* fails with 'open3: exec of .. perl .. failed: Argument list too long at .../TAP/Parser/Iterator/Process.pm line 165.' */ - # meta = { - # description = "Everything you need to follow the Catalyst Tutorial"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TaskFreecellSolverTesting = buildPerlModule { - # pname = "Task-FreecellSolver-Testing"; - # version = "0.0.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Task-FreecellSolver-Testing-0.0.12.tar.gz"; - # hash = "sha256-PRkQt64SVBfG4HeUeOtK8/yc+J4iGVhfiiBBFGP5k6c="; - # }; - # buildInputs = [ CodeTidyAll TestDataSplit TestDifferences TestPerlTidy TestRunPluginTrimDisplayedFilenames TestRunValgrind TestTrailingSpace TestTrap ]; - # propagatedBuildInputs = [ EnvPath FileWhich GamesSolitaireVerify InlineC ListMoreUtils MooX StringShellQuote TaskTestRunAllPlugins TemplateToolkit YAMLLibYAML ]; - # meta = { - # description = "Install the CPAN dependencies of the Freecell Solver test suite"; - # homepage = "https://metacpan.org/release/Task-FreecellSolver-Testing"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # TaskPlack = buildPerlModule { - # pname = "Task-Plack"; - # version = "0.28"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Task-Plack-0.28.tar.gz"; - # hash = "sha256-edUriAZUjz+Vro1qyRW6Q524SJ/mOxOdCsFym7KfXCo="; - # }; - # propagatedBuildInputs = [ CGICompile CGIEmulatePSGI CGIPSGI Corona FCGI FCGIClient FCGIProcManager HTTPServerSimplePSGI IOHandleUtil NetFastCGI PSGI PlackAppProxy PlackMiddlewareAuthDigest PlackMiddlewareConsoleLogger PlackMiddlewareDebug PlackMiddlewareDeflater PlackMiddlewareHeader PlackMiddlewareReverseProxy PlackMiddlewareSession Starlet Starman Twiggy ]; - # buildInputs = [ ModuleBuildTiny TestSharedFork ]; - # meta = { - # description = "Plack bundle"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TaskTestRunAllPlugins = buildPerlModule { - # pname = "Task-Test-Run-AllPlugins"; - # version = "0.0106"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Task-Test-Run-AllPlugins-0.0106.tar.gz"; - # hash = "sha256-G40L8IhYBmWbwpiBDw1VCq/2gEWtwjepSaymshp9zng="; - # }; - # buildInputs = [ TestRun TestRunCmdLine TestRunPluginAlternateInterpreters TestRunPluginBreakOnFailure TestRunPluginColorFileVerdicts TestRunPluginColorSummary TestRunPluginTrimDisplayedFilenames ]; - # meta = { - # description = "Specifications for installing all the Test::Run"; - # homepage = "https://web-cpan.shlomifish.org/modules/Test-Run"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # TaskWeaken = buildPerlPackage { - # pname = "Task-Weaken"; - # version = "1.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Task-Weaken-1.06.tar.gz"; - # hash = "sha256-I4P+252672RkaOqCSvv3yAEHZyDPug3yp6B0cm3NZr4="; - # }; - # meta = { - # description = "Ensure that a platform has weaken support"; - # homepage = "https://github.com/karenetheridge/Task-Weaken"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Tcl = buildPerlPackage { - # pname = "Tcl"; - # version = "1.27"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/V/VK/VKON/Tcl-1.27.tar.gz"; - # hash = "sha256-+DhYd6Sp7Z89OQPS0PfNcPrDzmgyxg9gCmghzuP7WHI="; - # }; - # propagatedBuildInputs = [ - # pkgs.bwidget - # pkgs.tcl - # pkgs.tix - # pkgs.tk - # ] ++ lib.optionals stdenv.isDarwin [ - # darwin.apple_sdk.frameworks.CoreServices ]; - # makeMakerFlags = lib.optionals stdenv.isLinux - # [ "--tclsh=${pkgs.tcl}/bin/tclsh" "--nousestubs" ]; - # meta = { - # description = "Tcl extension module for Perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TclpTk = buildPerlPackage { - # pname = "Tcl-pTk"; - # version = "1.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CA/CAC/Tcl-pTk-1.11.tar.gz"; - # hash = "sha256-05PxKxzN7I8ZbN27WJHZSEx5qpQQWmN22f+cRg2CDN0="; - # }; - # propagatedBuildInputs = [ - # ClassISA - # SubName - # Tcl - # TestDeep - # ]; - # buildPhase = '' - # perl Makefile.PL --tclsh "${pkgs.tk.tcl}/bin/tclsh" INSTALL_BASE=$out --no-test-for-tk - # ''; - # postInstall = '' - # mkdir -p $out/lib/perl5/site_perl - # mv $out/lib/perl5/Tcl $out/lib/perl5/site_perl/ - # mv $out/lib/perl5/auto $out/lib/perl5/site_perl/ - # '' + lib.optionalString stdenv.isDarwin '' - # mv $out/lib/perl5/darwin-thread-multi-2level $out/lib/perl5/site_perl/ - # ''; - # meta = { - # description = "Interface to Tcl/Tk with Perl/Tk compatible syntax"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TemplatePluginAutoformat = buildPerlPackage { - # pname = "Template-Plugin-Autoformat"; - # version = "2.77"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KA/KARMAN/Template-Plugin-Autoformat-2.77.tar.gz"; - # hash = "sha256-vd+0kZ8Kuyor56lmUzPg1OCYAy8OOD268ExNiWx0hu0="; - # }; - # propagatedBuildInputs = [ TemplateToolkit TextAutoformat ]; - # meta = { - # description = "TT plugin for Text::Autoformat"; - # homepage = "https://github.com/karpet/template-plugin-autoformat"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TemplatePluginClass = buildPerlPackage { - # pname = "Template-Plugin-Class"; - # version = "0.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RC/RCLAMP/Template-Plugin-Class-0.14.tar.gz"; - # hash = "sha256-BgT+iue/OtlnnmTZsa1MnpAUwXeqgOg11SqG942XB8M="; - # }; - # propagatedBuildInputs = [ TemplateToolkit ]; - # meta = { - # description = "Allow calling of class methods on arbitrary classes"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TemplatePluginIOAll = buildPerlPackage { - # pname = "Template-Plugin-IO-All"; - # version = "0.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/X/XE/XERN/Template-Plugin-IO-All-0.01.tar.gz"; - # hash = "sha256-H3RFQiohky4Ju++TV2bgr2t8zrCI6djgMM16hLzcXuQ="; - # }; - # propagatedBuildInputs = [ IOAll TemplateToolkit ]; - # meta = { - # description = "Perl Template Toolkit Plugin for IO::All"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ eelco ]; - # }; - # }; - - # TemplatePluginJavaScript = buildPerlPackage { - # pname = "Template-Plugin-JavaScript"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Template-Plugin-JavaScript-0.02.tar.gz"; - # hash = "sha256-6iDYBq1lIoLQNTSY4oYN+BJcgLZJFjDCXSY72IDGGNc="; - # }; - # propagatedBuildInputs = [ TemplateToolkit ]; - # meta = { - # description = "Encodes text to be safe in JavaScript"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TemplatePluginJSONEscape = buildPerlPackage { - # pname = "Template-Plugin-JSON-Escape"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NA/NANTO/Template-Plugin-JSON-Escape-0.02.tar.gz"; - # hash = "sha256-BRqLHTvGAdWPxR4kYGfTZFDP6XAnigRW6KthlA8TzYY="; - # }; - # propagatedBuildInputs = [ JSON TemplateToolkit ]; - # meta = { - # description = "Adds a .json vmethod and a json filter"; - # license = with lib.licenses; [ bsd0 ]; - # }; - # }; - - # TemplateTimer = buildPerlPackage { - # pname = "Template-Timer"; - # version = "1.00"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PETDANCE/Template-Timer-1.00.tar.gz"; - # hash = "sha256-tzFMs2UgnZNVe4BU4DEa6MPLXRydIo0es+P8GTpbd7Q="; - # }; - # propagatedBuildInputs = [ TemplateToolkit ]; - # meta = { - # description = "Rudimentary profiling for Template Toolkit"; - # license = with lib.licenses; [ artistic2 gpl3Only ]; - # }; - # }; - - # TemplateTiny = buildPerlPackage { - # pname = "Template-Tiny"; - # version = "1.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Template-Tiny-1.14.tar.gz"; - # hash = "sha256-gZz6tgREg8/ijOsof938MXaiAlsbbw6YCy3MJtImm0w="; - # }; - # meta = { - # description = "Template Toolkit reimplemented in as little code as possible"; - # homepage = "https://github.com/karenetheridge/Template-Tiny"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TemplateToolkit = buildPerlPackage { - # pname = "Template-Toolkit"; - # version = "3.101"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AB/ABW/Template-Toolkit-3.101.tar.gz"; - # hash = "sha256-0qMt1sIeSzfGqT34CHyp6IDPrmE6Pl766jB7C9yu21g="; - # }; - # doCheck = !stdenv.isDarwin; - # propagatedBuildInputs = [ AppConfig ]; - # buildInputs = [ CGI TestLeakTrace ]; - # meta = { - # description = "Comprehensive template processing system"; - # homepage = "http://www.template-toolkit.org"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TemplateGD = buildPerlPackage { - # pname = "Template-GD"; - # version = "2.66"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AB/ABW/Template-GD-2.66.tar.gz"; - # hash = "sha256-mFI8gZLy6BhAQuWi4XK9dnrCid0uSA819oDc4yFgkFs="; - # }; - # propagatedBuildInputs = [ GD TemplateToolkit ]; - # meta = { - # description = "GD plugin(s) for the Template Toolkit"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TermEncoding = buildPerlPackage { - # pname = "Term-Encoding"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Term-Encoding-0.03.tar.gz"; - # hash = "sha256-lbqWh9c10lo8vmRQjXiU8AnH+ioXJsPnhuniHaIlHQs="; - # }; - # meta = { - # description = "Detect encoding of the current terminal"; - # homepage = "https://github.com/miyagawa/Term-Encoding"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TermProgressBar = buildPerlPackage { - # pname = "Term-ProgressBar"; - # version = "2.23"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MANWAR/Term-ProgressBar-2.23.tar.gz"; - # hash = "sha256-3vwD+59KwcnfE1nTEr/zwIZd3vvzq6ZM1CppqGIV1J0="; - # }; - # buildInputs = [ CaptureTiny TestException TestWarnings ]; - # propagatedBuildInputs = [ ClassMethodMaker TermReadKey ]; - # meta = { - # description = "Provide a progress meter on a standard terminal"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TermProgressBarQuiet = buildPerlPackage { - # pname = "Term-ProgressBar-Quiet"; - # version = "0.31"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LB/LBROCARD/Term-ProgressBar-Quiet-0.31.tar.gz"; - # hash = "sha256-JWdSkvWIvCnTLnEM82Z9qaKhdR4TmAF3Cp/bGM0hhKY="; - # }; - # propagatedBuildInputs = [ IOInteractive TermProgressBar ]; - # buildInputs = [ TestMockObject ]; - # meta = { - # description = "Provide a progress meter if run interactively"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TermProgressBarSimple = buildPerlPackage { - # pname = "Term-ProgressBar-Simple"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/EV/EVDB/Term-ProgressBar-Simple-0.03.tar.gz"; - # hash = "sha256-og2zxn1b39DB+rOSxtHCaICn7oQ69gKvT5tTpwQ1eaY="; - # }; - # propagatedBuildInputs = [ TermProgressBarQuiet ]; - # buildInputs = [ TestMockObject ]; - # meta = { - # description = "Simpler progress bars"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - 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 - ''); - - # 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"; - # version = "1.46"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HAYASHI/Term-ReadLine-Gnu-1.46.tar.gz"; - # hash = "sha256-sTgyEy5QNmw0/qwSzoKDfAqds0ylMK5dJ9uXz5yWTHs="; - # }; - # buildInputs = [ pkgs.readline pkgs.ncurses ]; - # NIX_CFLAGS_LINK = "-lreadline -lncursesw"; - - # # For some crazy reason Makefile.PL doesn't generate a Makefile if - # # AUTOMATED_TESTING is set. - # env.AUTOMATED_TESTING = false; - - # # Makefile.PL looks for ncurses in Glibc's prefix. - # preConfigure = - # '' - # substituteInPlace Makefile.PL --replace '$Config{libpth}' \ - # "'${pkgs.ncurses.out}/lib'" - # ''; - - # # Tests don't work because they require /dev/tty. - # doCheck = false; - - # meta = { - # description = "Perl extension for the GNU Readline/History Library"; - # homepage = "https://github.com/hirooih/perl-trg"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "perlsh"; - # }; - # }; - - # TermReadLineTTYtter = buildPerlPackage { - # pname = "Term-ReadLine-TTYtter"; - # version = "1.4"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CK/CKAISER/Term-ReadLine-TTYtter-1.4.tar.gz"; - # hash = "sha256-rDcxM87hshIqgnP+e0JEYT0O7O/oi2aL2Y/nHR7ErJM="; - # }; - - # outputs = [ "out" ]; - - # meta = { - # description = "A Term::ReadLine driver based on Term::ReadLine::Perl, with special features for microblogging and the TTYtter client (q.v)"; - # homepage = "https://www.floodgap.com/software/ttytter"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TermReadPassword = buildPerlPackage rec { - # pname = "Term-ReadPassword"; - # version = "0.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PH/PHOENIX/${pname}-${version}.tar.gz"; - # hash = "sha256-4ahmNFs1+f/vfQA34T1tTLKAMQCJ+YwgcTiAvHD7QyM="; - # }; - - # outputs = [ "out" ]; - - # meta = { - # description = "This module lets you ask the user for a password in the traditional way, from the keyboard, without echoing"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TermShell = buildPerlModule { - # pname = "Term-Shell"; - # version = "0.13"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Term-Shell-0.13.tar.gz"; - # hash = "sha256-U6C9smVokcUIpHDZPLfhz+qzjuqeWClWCn2LX2APa/I="; - # }; - # propagatedBuildInputs = [ TermReadKey TextAutoformat ]; - # meta = { - # homepage = "https://metacpan.org/release/Term-Shell"; - # description = "A simple command-line shell framework"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TermShellUI = buildPerlPackage { - # pname = "Term-ShellUI"; - # version = "0.92"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BR/BRONSON/Term-ShellUI-0.92.tar.gz"; - # hash = "sha256-MnnAHHYiczXu/wkDKkD0sCsoUVGzV2wEys0VvgWUK9s="; - # }; - # meta = { - # description = "A fully-featured shell-like command line environment"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # TermSizeAny = buildPerlPackage { - # pname = "Term-Size-Any"; - # version = "0.002"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FE/FERREIRA/Term-Size-Any-0.002.tar.gz"; - # hash = "sha256-ZPpf2xrjqCMTSqqVrsdTVLwXvdnKEroKeuNKflGz3tI="; - # }; - # propagatedBuildInputs = [ DevelHide TermSizePerl ]; - # meta = { - # description = "Retrieve terminal size"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TermSizePerl = buildPerlPackage { - # pname = "Term-Size-Perl"; - # version = "0.031"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FE/FERREIRA/Term-Size-Perl-0.031.tar.gz"; - # hash = "sha256-rppnRssbMF3cj42MpGh4VSucESNiiXHhOidRg4IvIJ4="; - # }; - # meta = { - # description = "Perl extension for retrieving terminal size (Perl version)"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TermTable = buildPerlPackage { - # pname = "Term-Table"; - # version = "0.017"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/EX/EXODIST/Term-Table-0.017.tar.gz"; - # hash = "sha256-8R20JorYBE9uGhrJU0ygzTrXecQAb/83+uUA25j6yRo="; - # }; - # propagatedBuildInputs = [ Importer ]; - # meta = { - # description = "Format a header and rows into a table"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TermSk = buildPerlPackage { - # pname = "Term-Sk"; - # version = "0.18"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KE/KEICHNER/Term-Sk-0.18.tar.gz"; - # hash = "sha256-8uSReWBhIFsIaIgCsod5LX2AOwiXIzn7EHC6BWEq+IU="; - # }; - # meta = { - # description = "Perl extension for displaying a progress indicator on a terminal"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TermUI = buildPerlPackage { - # pname = "Term-UI"; - # version = "0.50"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BI/BINGOS/Term-UI-0.50.tar.gz"; - # hash = "sha256-YL/dbUwVi4jTcBM/xlsgSFo2pFsS2QYAC4HHjKUkFj0="; - # }; - # propagatedBuildInputs = [ LogMessageSimple ]; - # meta = { - # description = "User interfaces via Term::ReadLine made easy"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TermVT102 = buildPerlPackage { - # pname = "Term-VT102"; - # version = "0.91"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AJ/AJWOOD/Term-VT102-0.91.tar.gz"; - # hash = "sha256-+VTgMQlB1FwPw+tKQPXToA1oEZ4nfTA6HmrxHe1vvZQ="; - # }; - # meta = { - # description = "A class to emulate a DEC VT102 terminal"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # TermVT102Boundless = buildPerlPackage { - # pname = "Term-VT102-Boundless"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FB/FBARRIOS/Term-VT102-Boundless-0.05.tar.gz"; - # hash = "sha256-4d7YWuPXa1nAO4aX9KbLAa4xvWKpNU9bt9GPnpJ7SF8="; - # }; - # propagatedBuildInputs = [ TermVT102 ]; - # meta = { - # description = "A Term::VT102 that grows automatically to accommodate whatever you print to it"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TermAnimation = buildPerlPackage { - # pname = "Term-Animation"; - # version = "2.6"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KB/KBAUCOM/Term-Animation-2.6.tar.gz"; - # hash = "sha256-fVw8LU+bZXqLHc5/Xiy74CraLpfHLzoDBL88mdCEsEU="; - # }; - # propagatedBuildInputs = [ Curses ]; - # meta = { - # description = "ASCII sprite animation framework"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Test2Harness = buildPerlPackage { - # pname = "Test2-Harness"; - # version = "1.000155"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Harness-1.000155.tar.gz"; - # hash = "sha256-Hvi/euDKALaHu24RXzq4yVBI5ICsmuUylzabxpSkc4s="; - # }; - - # checkPhase = '' - # patchShebangs ./t ./scripts/yath - # export AUTOMATED_TESTING=1 - # ./scripts/yath test -j $NIX_BUILD_CORES - # ''; - - # propagatedBuildInputs = [ DataUUID Importer LongJump ScopeGuard TermTable Test2PluginMemUsage Test2PluginUUID Test2Suite YAMLTiny gotofile ]; - # meta = { - # description = "A new and improved test harness with better Test2 integration"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "yath"; - # broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Test2Harness.x86_64-darwin - # }; - # }; - - # Test2PluginMemUsage = buildPerlPackage { - # pname = "Test2-Plugin-MemUsage"; - # version = "0.002003"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Plugin-MemUsage-0.002003.tar.gz"; - # hash = "sha256-XgZi1agjrggWQfXOgoQxEe7BgxzTH4g6bG3lSv34fCU="; - # }; - # buildInputs = [ Test2Suite ]; - # meta = { - # description = "Collect and display memory usage information"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Test2PluginUUID = buildPerlPackage { - # pname = "Test2-Plugin-UUID"; - # version = "0.002001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Plugin-UUID-0.002001.tar.gz"; - # hash = "sha256-TGyNSE1xU9h3ncFVqZKyAwlbXFqhz7Hui87c0GAYeMk="; - # }; - # buildInputs = [ Test2Suite ]; - # propagatedBuildInputs = [ DataUUID ]; - # meta = { - # description = "Use REAL UUIDs in Test2"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Test2PluginNoWarnings = buildPerlPackage { - # pname = "Test2-Plugin-NoWarnings"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/Test2-Plugin-NoWarnings-0.09.tar.gz"; - # hash = "sha256-vj3YAAQu7zYr8X0gVs+ek03ukczOmOTxeLj7V3Ly+3Q="; - # }; - # buildInputs = [ IPCRun3 Test2Suite ]; - # propagatedBuildInputs = [ TestSimple13 ]; - # meta = { - # description = "Fail if tests warn"; - # homepage = "https://metacpan.org/release/Test2-Plugin-NoWarnings"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # Test2Suite = buildPerlPackage { - # pname = "Test2-Suite"; - # version = "0.000156"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Suite-0.000156.tar.gz"; - # hash = "sha256-vzgq5y86k79+02iFEY+uL/qw/xF3Q/WQON8lTv7yyU4="; - # }; - # propagatedBuildInputs = [ ModulePluggable ScopeGuard SubInfo TermTable TestSimple13 ]; - # meta = { - # description = "Distribution with a rich set of tools built upon the Test2 framework"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Test2ToolsFFI = buildPerlPackage { - # pname = "Test2-Tools-FFI"; - # version = "0.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test2-Tools-FFI-0.06.tar.gz"; - # hash = "sha256-MA28QKEubG+7y7lv05uQK+bZZXJtrx5qtzuKCv0lLy8="; - # }; - # buildInputs = [ FileShareDirInstall Test2Suite ]; - # propagatedBuildInputs = [ CaptureTiny FFICheckLib FFIPlatypus FileShareDirDist ]; - # meta = { - # homepage = "https://metacpan.org/pod/Test2::Tools::FFI"; - # description = "Tools for testing FFI"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ tomasajt ]; - # }; - # }; - - # Test2ToolsMemoryCycle = buildPerlPackage { - # pname = "Test2-Tools-MemoryCycle"; - # version = "0.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test2-Tools-MemoryCycle-0.01.tar.gz"; - # hash = "sha256-U1s9ylQqMyUVEq3ktafb6+PESNg/iA0ZjkPcEnl5aYs="; - # }; - # buildInputs = [ Test2Suite ]; - # propagatedBuildInputs = [ DevelCycle PadWalker ]; - # meta = { - # homepage = "https://metacpan.org/pod/Test2::Tools::MemoryCycle"; - # description = "Check for memory leaks and circular memory references"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ tomasajt ]; - # }; - # }; - - # TestAbortable = buildPerlPackage { - # pname = "Test-Abortable"; - # version = "0.003"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Abortable-0.003.tar.gz"; - # hash = "sha256-TVPDXvPLf5wXUrqfEdOpeiETt9hMJg6rj5p8G4Aba40="; - # }; - # propagatedBuildInputs = [ SubExporter ]; - # buildInputs = [ TestNeeds ]; - # meta = { - # description = "Subtests that you can die your way out of ... but survive"; - # homepage = "https://github.com/rjbs/Test-Abortable"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestAssert = buildPerlModule { - # pname = "Test-Assert"; - # version = "0.0504"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DE/DEXTER/Test-Assert-0.0504.tar.gz"; - # hash = "sha256-z6NtqWxQQzH/ICZ0e6R9R37+g1z2zyNO4QywX6n7i6Q="; - # }; - # buildInputs = [ ClassInspector TestUnitLite ]; - # propagatedBuildInputs = [ ExceptionBase constantboolean ]; - # meta = { - # description = "Assertion methods for those who like JUnit"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestAssertions = buildPerlPackage { - # pname = "Test-Assertions"; - # version = "1.054"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BB/BBC/Test-Assertions-1.054.tar.gz"; - # hash = "sha256-/NzkHVcnOIFYGt9oCiCmrfUaTDt+McP2mGb7kQk3AoA="; - # }; - # propagatedBuildInputs = [ LogTrace ]; - # meta = { - # description = "A simple set of building blocks for both unit and runtime testing"; - # license = with lib.licenses; [ gpl2Only ]; - # }; - # }; - - # TestAggregate = buildPerlModule { - # pname = "Test-Aggregate"; - # version = "0.375"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RW/RWSTAUNER/Test-Aggregate-0.375.tar.gz"; - # hash = "sha256-xswKv9DU/OhTcazKk+wkU4GEHTK0yqLWR15LyBMEJ9E="; - # }; - # buildInputs = [ TestMost TestNoWarnings TestTrap ]; - # meta = { - # description = "Aggregate *.t tests to make them run faster"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # broken = true; # This module only works with Test::More version < 1.3, but you have 1.302133 - # }; - # }; - - - # TestBase = buildPerlPackage { - # pname = "Test-Base"; - # version = "0.89"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IN/INGY/Test-Base-0.89.tar.gz"; - # hash = "sha256-J5Shqq6x06KH3SxyhiWGY3llYvfbnMxrQkvE8d6K0BQ="; - # }; - # propagatedBuildInputs = [ Spiffy ]; - # buildInputs = [ AlgorithmDiff TextDiff ]; - # meta = { - # description = "A Data Driven Testing Framework"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestBits = buildPerlPackage { - # pname = "Test-Bits"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/Test-Bits-0.02.tar.gz"; - # hash = "sha256-qYJvVkg6J+LGMVZZDzKKNjPjA3XBDfyJ9mkOOSneC8M="; - # }; - # propagatedBuildInputs = [ ListAllUtils ]; - # buildInputs = [ TestFatal ]; - # meta = { - # description = "Provides a bits_is() subroutine for testing binary data"; - # homepage = "https://metacpan.org/release/Test-Bits"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # TestCheckDeps = buildPerlPackage { - # pname = "Test-CheckDeps"; - # version = "0.010"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LE/LEONT/Test-CheckDeps-0.010.tar.gz"; - # hash = "sha256-ZvzMpsbzMOfsyJi9alGEbiFFs+AteMSZe6a33iO1Ue4="; - # }; - # propagatedBuildInputs = [ CPANMetaCheck ]; - # meta = { - # description = "Check for presence of dependencies"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestClass = buildPerlPackage { - # pname = "Test-Class"; - # version = "0.52"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SZ/SZABGAB/Test-Class-0.52.tar.gz"; - # hash = "sha256-QMGx04jwqGdHacJ1KfDMNjTKD9nY9ysZbAUxYRk0vII="; - # }; - # buildInputs = [ TestException ]; - # propagatedBuildInputs = [ MROCompat ModuleRuntime TryTiny ]; - # meta = { - # description = "Easily create test classes in an xUnit/JUnit style"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestClassMost = buildPerlModule { - # pname = "Test-Class-Most"; - # version = "0.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/O/OV/OVID/Test-Class-Most-0.08.tar.gz"; - # hash = "sha256-Y0ze2Gu6Xd4Hztcv+4pGcF/5OqhEuY6WveBVQCNMff8="; - # }; - # buildInputs = [ TestClass TestDeep TestDifferences TestException TestMost TestWarn ]; - # meta = { - # description = "Test Classes the easy way"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestCleanNamespaces = buildPerlPackage { - # pname = "Test-CleanNamespaces"; - # version = "0.24"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Test-CleanNamespaces-0.24.tar.gz"; - # hash = "sha256-M41VaejommVJNfhD7AvISqpIb+jdGJj7nKs+zOzVMno="; - # }; - # buildInputs = [ Filepushd Moo Mouse RoleTiny SubExporter TestDeep TestNeeds TestWarnings namespaceclean ]; - # propagatedBuildInputs = [ PackageStash SubIdentify ]; - # meta = { - # description = "Check for uncleaned imports"; - # homepage = "https://github.com/karenetheridge/Test-CleanNamespaces"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestCmd = buildPerlPackage { - # pname = "Test-Cmd"; - # version = "1.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/Test-Cmd-1.09.tar.gz"; - # hash = "sha256-zzMg7N3nkeC4lFogwfbyZdkPHj2rGPHiPLZ3x51yloQ="; - # }; - # doCheck = false; /* test fails */ - # meta = { - # description = "Perl module for portable testing of commands and scripts"; - # homepage = "https://github.com/neilb/Test-Cmd"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestCommand = buildPerlModule { - # pname = "Test-Command"; - # version = "0.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DANBOO/Test-Command-0.11.tar.gz"; - # hash = "sha256-KKP8b+pzoZ9WPxG9DygYZ1bUx0IHvm3qyq0m0ggblTM="; - # }; - # meta = { - # description = "Test routines for external commands"; - # homepage = "https://metacpan.org/release/Test-Command"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestCompile = buildPerlModule { - # pname = "Test-Compile"; - # version = "3.3.1"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/EG/EGILES/Test-Compile-v3.3.1.tar.gz"; - # hash = "sha256-gIRQ89Ref0GapNZo4pgodonp6jY4hpO/8YDXhwzj5iE="; - # }; - # propagatedBuildInputs = [ UNIVERSALrequire ]; - # meta = { - # description = "Assert that your Perl files compile OK"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestCPANMeta = buildPerlPackage { - # pname = "Test-CPAN-Meta"; - # version = "0.25"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-0.25.tar.gz"; - # hash = "sha256-9VtPnPa8OW0P6AJyZ2hcsqxK/86JfQlnoxf6xttajbU="; - # }; - # meta = { - # description = "Validate your CPAN META.json files"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # TestCPANMetaJSON = buildPerlPackage { - # pname = "Test-CPAN-Meta-JSON"; - # version = "0.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-JSON-0.16.tar.gz"; - # hash = "sha256-Z6xQmt/7HSslao+MBSPgB2HZYBZhksYHApj3CIqa6ck="; - # }; - # propagatedBuildInputs = [ JSON ]; - # meta = { - # description = "Validate your CPAN META.json files"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # TestDataSplit = buildPerlModule { - # pname = "Test-Data-Split"; - # version = "0.2.2"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Data-Split-0.2.2.tar.gz"; - # hash = "sha256-5Qg4kK2tMNfeUHA1adX1zvF0oZhZNSLqe0bOOHuCgCI="; - # }; - # buildInputs = [ TestDifferences ]; - # propagatedBuildInputs = [ IOAll ListMoreUtils MooX MooXlate ]; - # meta = { - # description = "Split data-driven tests into several test scripts"; - # homepage = "https://metacpan.org/release/Test-Data-Split"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - TestDeep = buildPerlPackage { - pname = "Test-Deep"; - version = "1.204"; - src = fetchurl { - url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Deep-1.204.tar.gz"; - hash = "sha256-tlkfbM3YU8fvyf88V1Y3BAMhHP/kYEfwgrHNFhGoTl8="; - }; - meta = { - description = "Extremely flexible deep comparison"; - homepage = "https://github.com/rjbs/Test-Deep"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # TestDeepJSON = buildPerlModule { - # pname = "Test-Deep-JSON"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MO/MOTEMEN/Test-Deep-JSON-0.05.tar.gz"; - # hash = "sha256-rshXG54xtzAeJhMsEyxoAJUtwInGRddpVKOtGms1CFg="; - # }; - # buildInputs = [ ModuleBuildTiny ]; - # propagatedBuildInputs = [ ExporterLite JSONMaybeXS TestDeep ]; - # meta = { - # description = "Compare JSON with Test::Deep"; - # homepage = "https://github.com/motemen/perl5-Test-Deep-JSON"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestDeepType = buildPerlPackage { - # pname = "Test-Deep-Type"; - # version = "0.008"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Deep-Type-0.008.tar.gz"; - # hash = "sha256-bnvqGi8edTGaItHFGZbrrFDKXjZj0bwiMTCIfmLpWfE="; - # }; - # buildInputs = [ TestFatal TestNeeds ]; - # propagatedBuildInputs = [ TestDeep TryTiny ]; - # meta = { - # description = "A Test::Deep plugin for validating type constraints"; - # homepage = "https://github.com/karenetheridge/Test-Deep-Type"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestDiagINC = buildPerlPackage { - # pname = "Test-DiagINC"; - # version = "0.010"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-DiagINC-0.010.tar.gz"; - # hash = "sha256-W8uNNWxQnjWdU9hpwH79qo/uXWz5mJcBi5qRTOshIi4="; - # }; - # buildInputs = [ CaptureTiny ]; - # meta = { - # homepage = "https://github.com/dagolden/Test-DiagINC"; - # description = "List modules and versions loaded if tests fail"; - # license = lib.licenses.asl20; - # }; - # }; - - # TestDir = buildPerlPackage { - # pname = "Test-Dir"; - # version = "1.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MT/MTHURN/Test-Dir-1.16.tar.gz"; - # hash = "sha256-czKzI5E+tqJoTQlHVRljBLL4YG9w6quRNlTKkfJz6sI="; - # }; - # meta = { - # description = "Test directory attributes"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestDifferences = buildPerlPackage { - # pname = "Test-Differences"; - # version = "0.70"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Test-Differences-0.70.tar.gz"; - # hash = "sha256-vuG1GGqpuif+0r8bBnRSDQvQzQUdkTOH+QhsH5SlaFQ="; - # }; - # propagatedBuildInputs = [ CaptureTiny TextDiff ]; - # meta = { - # description = "Test strings and data structures and show differences if not ok"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestDistManifest = buildPerlModule { - # pname = "Test-DistManifest"; - # version = "1.014"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Test-DistManifest-1.014.tar.gz"; - # hash = "sha256-PSbCDfQmKJgcv8+lscoCjGzq2zRMHc+XolrWqItz18U="; - # }; - # buildInputs = [ ModuleBuildTiny ]; - # propagatedBuildInputs = [ ModuleManifest ]; - # meta = { - # description = "Author test that validates a package MANIFEST"; - # homepage = "https://github.com/jawnsy/Test-DistManifest"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestEOL = buildPerlPackage { - # pname = "Test-EOL"; - # version = "2.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Test-EOL-2.02.tar.gz"; - # hash = "sha256-KDGZ1/sngH/iImr3sSVxxtwlCNjlwP61BdCJ0xcgr8Q="; - # }; - # meta = { - # description = "Check the correct line endings in your project"; - # homepage = "https://github.com/karenetheridge/Test-EOL"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestException = buildPerlPackage { - # pname = "Test-Exception"; - # version = "0.43"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/EX/EXODIST/Test-Exception-0.43.tar.gz"; - # hash = "sha256-FWsT8Hdk92bYtFpDco8kOa+Bo1EmJUON6reDt4g+tTM="; - # }; - # propagatedBuildInputs = [ SubUplevel ]; - # meta = { - # description = "Test exception-based code"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestExpect = buildPerlPackage { - # pname = "Test-Expect"; - # version = "0.34"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BP/BPS/Test-Expect-0.34.tar.gz"; - # hash = "sha256-Jij87N2l9km9JTI/ZGuWoaB+RVfK3LMnybrU3EG7uZk="; - # }; - # propagatedBuildInputs = [ ClassAccessorChained ExpectSimple ]; - # meta = { - # description = "Automated driving and testing of terminal-based programs"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestFailWarnings = buildPerlPackage { - # pname = "Test-FailWarnings"; - # version = "0.008"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-FailWarnings-0.008.tar.gz"; - # hash = "sha256-2jTvkCn2hJ1gJiAdSRJ9BU7mrEuXnIIhAxX1chlkqW8="; - # }; - # buildInputs = [ CaptureTiny ]; - # meta = { - # description = "Add test failures if warnings are caught"; - # homepage = "https://github.com/dagolden/Test-FailWarnings"; - # license = with lib.licenses; [ asl20 ]; - # }; - # }; - - # TestFakeHTTPD = buildPerlModule { - # pname = "Test-Fake-HTTPD"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MASAKI/Test-Fake-HTTPD-0.09.tar.gz"; - # hash = "sha256-FPecsGepCSLpvlVPjks509aXeK5Mj/9E9WD2N/tvLR4="; - # }; - # propagatedBuildInputs = [ HTTPDaemon Plack ]; - # buildInputs = [ LWP ModuleBuildTiny TestException TestSharedFork TestTCP TestUseAllModules ]; - # meta = { - # description = "A fake HTTP server"; - # homepage = "https://github.com/masaki/Test-Fake-HTTPD"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - TestFatal = buildPerlPackage { - pname = "Test-Fatal"; - version = "0.017"; - src = fetchurl { - url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Fatal-0.017.tar.gz"; - hash = "sha256-N9//2vuEt2Lv6WsC+yqkHzcCbHPmuDWQ23YilpfzxKY="; - }; - propagatedBuildInputs = [ TryTiny ]; - meta = { - description = "Incredibly simple helpers for testing code with exceptions"; - homepage = "https://github.com/rjbs/Test-Fatal"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # TestFile = buildPerlPackage { - # pname = "Test-File"; - # version = "1.993"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BD/BDFOY/Test-File-1.993.tar.gz"; - # hash = "sha256-7y/+Gq7HtC2HStQR7GR1R7m5vC9fuT5J4zmUiEVq/Ho="; - # }; - # meta = { - # description = "Test file attributes"; - # homepage = "https://github.com/briandfoy/test-file"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # TestFileContents = buildPerlPackage { - # pname = "Test-File-Contents"; - # version = "0.242"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/Test-File-Contents-0.242.tar.gz"; - # hash = "sha256-qDisC29uEOiWE7UMphdzzbqbpHh7qC57tl2q9whKpQs="; - # }; - # propagatedBuildInputs = [ TextDiff ]; - # meta = { - # description = "Test routines for examining the contents of files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestFileShareDir = buildPerlPackage { - # pname = "Test-File-ShareDir"; - # version = "1.001002"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KE/KENTNL/Test-File-ShareDir-1.001002.tar.gz"; - # hash = "sha256-szZHy7Sy8vz73k+LtDg9CslcL4nExXcOtpHxZDozeq0="; - # }; - # buildInputs = [ TestFatal ]; - # propagatedBuildInputs = [ ClassTiny FileCopyRecursive FileShareDir PathTiny ScopeGuard ]; - # meta = { - # description = "Create a Fake ShareDir for your modules for testing"; - # homepage = "https://github.com/kentnl/Test-File-ShareDir"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestFilename = buildPerlPackage { - # pname = "Test-Filename"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-Filename-0.03.tar.gz"; - # hash = "sha256-akUMxMYoHtESnzKhwHQfIoln/touMqKRX/Yhw2Ul/L4="; - # }; - # propagatedBuildInputs = [ PathTiny ]; - # meta = { - # description = "Portable filename comparison"; - # homepage = "https://metacpan.org/release/Test-Filename"; - # license = with lib.licenses; [ asl20 ]; - # }; - # }; - - # TestFork = buildPerlModule { - # pname = "Test-Fork"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Test-Fork-0.02.tar.gz"; - # hash = "sha256-/P77+yT4havoJ8KtB6w9Th/s8hOhRxf8rzw3F1BF0D4="; - # }; - # meta = { - # description = "Test code which forks"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestFutureIOImpl = buildPerlModule { - # pname = "Test-Future-IO-Impl"; - # version = "0.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-Future-IO-Impl-0.14.tar.gz"; - # hash = "sha256-AH22GdPUljQyXFbvvKDh5Vdt0z95RV8t6llb5u344jU="; - # }; - # propagatedBuildInputs = [ Test2Suite ]; - # meta = { - # description = "Acceptance tests for C implementations"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestHarnessStraps = buildPerlModule { - # pname = "Test-Harness-Straps"; - # version = "0.30"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Test-Harness-Straps-0.30.tar.gz"; - # hash = "sha256-iwDvqjVyPBo1yMj1+kapnkvFKN+lIDUrVKxBjvbRz6g="; - # }; - # meta = { - # description = "Detailed analysis of test results"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestHexDifferences = buildPerlPackage { - # pname = "Test-HexDifferences"; - # version = "1.001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/ST/STEFFENW/Test-HexDifferences-1.001.tar.gz"; - # hash = "sha256-pjlF7N1CCvwxEJT5OiIM+zXfIyQt5hnlO6Z0d6E2kKI="; - # }; - # propagatedBuildInputs = [ SubExporter TextDiff ]; - # buildInputs = [ TestDifferences TestNoWarnings ]; - # meta = { - # description = "Test binary as hexadecimal string"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestHexString = buildPerlModule { - # pname = "Test-HexString"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-HexString-0.03.tar.gz"; - # hash = "sha256-fUxM3BkvJZTceP916yz00FYfeUs27g6s7oxKGqigP0A="; - # }; - # meta = { - # description = "Test binary strings with hex dump diagnostics"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestIdentity = buildPerlModule { - # pname = "Test-Identity"; - # version = "0.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-Identity-0.01.tar.gz"; - # hash = "sha256-LwIFAJrtFSZoGCqvoWNXqx9HtMvAAeiYcbZzh++OXyM="; - # }; - # meta = { - # description = "Assert the referential identity of a reference"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestHTTPServerSimple = buildPerlPackage { - # pname = "Test-HTTP-Server-Simple"; - # version = "0.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AL/ALEXMV/Test-HTTP-Server-Simple-0.11.tar.gz"; - # hash = "sha256-hcl+vU3rgFKRsXJ3Ay2kiAcijyT4mxzi+zwJ96iWu3g="; - # }; - # propagatedBuildInputs = [ HTTPServerSimple ]; - # meta = { - # description = "Test::More functions for HTTP::Server::Simple"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestJSON = buildPerlModule { - # pname = "Test-JSON"; - # version = "0.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/O/OV/OVID/Test-JSON-0.11.tar.gz"; - # hash = "sha256-B8CKsvzBKFDRrVT89q/prRoloJgxDD5xQq8dPLgh17M="; - # }; - # propagatedBuildInputs = [ JSONAny ]; - # buildInputs = [ TestDifferences ]; - # meta = { - # description = "Test JSON data"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestKwalitee = buildPerlPackage { - # pname = "Test-Kwalitee"; - # version = "1.28"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Kwalitee-1.28.tar.gz"; - # hash = "sha256-tFNs3XVbWXciMtQyXae9T7f1vlC0WF27r3WO7DBiQ6M="; - # }; - # propagatedBuildInputs = [ ModuleCPANTSAnalyse ]; - # buildInputs = [ CPANMetaCheck TestDeep TestWarnings ]; - # meta = { - # description = "Test the Kwalitee of a distribution before you release it"; - # homepage = "https://github.com/karenetheridge/Test-Kwalitee"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "kwalitee-metrics"; - # }; - # }; - - # TestLWPUserAgent = buildPerlPackage { - # pname = "Test-LWP-UserAgent"; - # version = "0.036"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Test-LWP-UserAgent-0.036.tar.gz"; - # hash = "sha256-BTJ1MNNGuAphpulD+9dJmGvcqJIRpOswHAjC0XkxThE="; - # }; - # propagatedBuildInputs = [ LWP SafeIsa namespaceclean ]; - # buildInputs = [ PathTiny Plack TestDeep TestFatal TestNeeds TestRequiresInternet TestWarnings ]; - # meta = { - # description = "A LWP::UserAgent suitable for simulating and testing network calls"; - # homepage = "https://github.com/karenetheridge/Test-LWP-UserAgent"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestLeakTrace = buildPerlPackage { - # pname = "Test-LeakTrace"; - # version = "0.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LE/LEEJO/Test-LeakTrace-0.17.tar.gz"; - # hash = "sha256-d31k0pOPXqWGMA7vl+8D6stD1MGFPJw7EJHrMxFGeXA="; - # }; - # meta = { - # description = "Traces memory leaks"; - # homepage = "https://metacpan.org/release/Test-LeakTrace"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestLectroTest = buildPerlPackage { - # pname = "Test-LectroTest"; - # version = "0.5001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TM/TMOERTEL/Test-LectroTest-0.5001.tar.gz"; - # hash = "sha256-rCtPDZWJmvGhoex4TLdAsrkCVqvuEcg+eykRA+ye1zU="; - # }; - # meta = { - # description = "Easy, automatic, specification-based tests"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestLoadAllModules = buildPerlPackage { - # pname = "Test-LoadAllModules"; - # version = "0.022"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KI/KITANO/Test-LoadAllModules-0.022.tar.gz"; - # hash = "sha256-G4YfVVAgZIp0gdStKBqJ5iQYf4lDepizRjVpGyZeXP4="; - # }; - # propagatedBuildInputs = [ ListMoreUtils ModulePluggable ]; - # meta = { - # description = "Do use_ok for modules in search path"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestLongString = buildPerlPackage { - # pname = "Test-LongString"; - # version = "0.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RG/RGARCIA/Test-LongString-0.17.tar.gz"; - # hash = "sha256-q8Q0nq8E0b7B5GQWajAYWR6oRtjzxcnIr0rEkF0+l08="; - # }; - # meta = { - # description = "Tests strings for equality, with more helpful failures"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - TestMemoryCycle = buildPerlPackage { - pname = "Test-Memory-Cycle"; - version = "1.06"; - src = fetchurl { - url = "mirror://cpan/authors/id/P/PE/PETDANCE/Test-Memory-Cycle-1.06.tar.gz"; - hash = "sha256-nVPd/clkzYRUyw2kxpW2o65HtFg5KRw0y52NHPqrMgI="; - }; - propagatedBuildInputs = [ DevelCycle PadWalker ]; - meta = { - description = "Verifies code hasn't left circular references"; - license = with lib.licenses; [ artistic2 ]; - }; - }; - - # TestMemoryGrowth = buildPerlModule { - # pname = "Test-MemoryGrowth"; - # version = "0.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-MemoryGrowth-0.04.tar.gz"; - # hash = "sha256-oGWFJ1Kr1J5BFbmPbbRsdSy71ePkjtAUXO45L3k9LtA="; - # }; - # meta = { - # description = "Assert that code does not cause growth in memory usage"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.TestMemoryGrowth.x86_64-darwin - # }; - # }; - - # TestMetricsAny = buildPerlModule { - # pname = "Test-Metrics-Any"; - # version = "0.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-Metrics-Any-0.01.tar.gz"; - # hash = "sha256-JQbIjU6yGydLEIX4BskY3Ml//2nhbRJJ5uGdlDYl5Gg="; - # }; - # propagatedBuildInputs = [ MetricsAny ]; - # meta = { - # description = "Assert that code produces metrics via Metrics::Any"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestMockClass = buildPerlModule { - # pname = "Test-Mock-Class"; - # version = "0.0303"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DE/DEXTER/Test-Mock-Class-0.0303.tar.gz"; - # hash = "sha256-zS5S/inKCrtsLmGvvDP7Qui+tCGzhL5rwGSs8xl28wI="; - # }; - # buildInputs = [ ClassInspector TestAssert TestUnitLite ]; - # propagatedBuildInputs = [ FatalException Moose namespaceclean ]; - # meta = { - # description = "Simulating other classes"; - # license = with lib.licenses; [ lgpl2Plus ]; - # }; - # }; - - # TestMockGuard = buildPerlModule { - # pname = "Test-Mock-Guard"; - # version = "0.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/X/XA/XAICRON/Test-Mock-Guard-0.10.tar.gz"; - # hash = "sha256-fyKKY/jWzrkqp4QIChPoUHMSGyg17KBteU+XCZUNvT0="; - # }; - # propagatedBuildInputs = [ ClassLoad ]; - # meta = { - # description = "Simple mock test library using RAII"; - # homepage = "https://github.com/zigorou/p5-test-mock-guard"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestMockHTTPTiny = buildPerlPackage { - # pname = "Test-Mock-HTTP-Tiny"; - # version = "0.002"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/O/OD/ODYNIEC/Test-Mock-HTTP-Tiny-0.002.tar.gz"; - # hash = "sha256-+c+tfYUEZQvtNJO8bSyoLXuRvDcTyGxDXnXriKxb5eY="; - # }; - # propagatedBuildInputs = [ TestDeep URI ]; - # meta = { - # description = "Record and replay HTTP requests/responses with HTTP::Tiny"; - # homepage = "https://github.com/odyniec/p5-Test-Mock-HTTP-Tiny"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestMockModule = buildPerlModule { - # pname = "Test-MockModule"; - # version = "0.177.0"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GF/GFRANKS/Test-MockModule-v0.177.0.tar.gz"; - # hash = "sha256-G9p6SdzqdgdtQKe2psPz4V5rGchLYXHfRFNNkROPEEU="; - # }; - # propagatedBuildInputs = [ SUPER ]; - # buildInputs = [ TestWarnings ]; - # meta = { - # description = "Override subroutines in a module for unit testing"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # SUPER = buildPerlModule { - # pname = "SUPER"; - # version = "1.20190531"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CH/CHROMATIC/SUPER-1.20190531.tar.gz"; - # hash = "sha256-aF0e525/DpAGlCkjv334sRwQcTKZKRdZPc9zl9QX05o="; - # }; - # propagatedBuildInputs = [ SubIdentify ]; - # meta = { - # description = "Control superclass method dispatch"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - - # TestMockObject = buildPerlPackage { - # pname = "Test-MockObject"; - # version = "1.20200122"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CH/CHROMATIC/Test-MockObject-1.20200122.tar.gz"; - # hash = "sha256-K3+A2of1pv4DYNnuUhBRBTAXRCw6Juhdto36yfgwdiM="; - # }; - # buildInputs = [ TestException TestWarn ]; - # propagatedBuildInputs = [ UNIVERSALcan UNIVERSALisa ]; - # meta = { - # description = "Perl extension for emulating troublesome interfaces"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestMockTime = buildPerlPackage { - # pname = "Test-MockTime"; - # version = "0.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DD/DDICK/Test-MockTime-0.17.tar.gz"; - # hash = "sha256-M2PhGLJgbx1qvJVvIrDQkQl3K3CGFV+1ycf5gzUGAvk="; - # }; - # meta = { - # description = "Replaces actual time with simulated time"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestMockTimeHiRes = buildPerlModule { - # pname = "Test-MockTime-HiRes"; - # version = "0.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TA/TARAO/Test-MockTime-HiRes-0.08.tar.gz"; - # hash = "sha256-X0n3rviV0yfa/fJ0TznBdsirDkuCJ9LW495omiWb3sE="; - # }; - # buildInputs = [ AnyEvent ModuleBuildTiny TestClass TestRequires ]; - # propagatedBuildInputs = [ TestMockTime ]; - # meta = { - # description = "Replaces actual time with simulated high resolution time"; - # homepage = "https://github.com/tarao/perl5-Test-MockTime-HiRes"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestMojibake = buildPerlPackage { - # pname = "Test-Mojibake"; - # version = "1.3"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SY/SYP/Test-Mojibake-1.3.tar.gz"; - # hash = "sha256-j/51/5tpNSSIcn3Kc9uR+KoUtZ8voQTrdxfA1xpfGzM="; - # }; - # meta = { - # description = "Check your source for encoding misbehavior"; - # homepage = "https://github.com/creaktive/Test-Mojibake"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "scan_mojibake"; - # }; - # }; - - # TestMoreUTF8 = buildPerlPackage { - # pname = "Test-More-UTF8"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MO/MONS/Test-More-UTF8-0.05.tar.gz"; - # hash = "sha256-ufHEs2qXzf76pT7REV3Tj0tIMDd3X2VZ7h3xSs/RzgQ="; - # }; - # meta = { - # description = "Enhancing Test::More for UTF8-based projects"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestMost = buildPerlPackage { - # pname = "Test-Most"; - # version = "0.38"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/O/OV/OVID/Test-Most-0.38.tar.gz"; - # hash = "sha256-CJ64lPe6zkw3xjNODikOsgM47hAiOvDILL5ygceDgt8="; - # }; - # propagatedBuildInputs = [ ExceptionClass ]; - # buildInputs = [ TestDeep TestDifferences TestException TestWarn ]; - # meta = { - # description = "Most commonly needed test functions and features"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Testmysqld = buildPerlModule { - # pname = "Test-mysqld"; - # version = "1.0013"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SO/SONGMU/Test-mysqld-1.0013.tar.gz"; - # hash = "sha256-V61BoJBXyWO1gsgaB276UPpW664hd9gwd33oOGBePu8="; - # }; - # buildInputs = [ pkgs.which ModuleBuildTiny TestSharedFork ]; - # propagatedBuildInputs = [ ClassAccessorLite DBDmysql FileCopyRecursive ]; - # meta = { - # description = "Mysqld runner for tests"; - # homepage = "https://github.com/kazuho/p5-test-mysqld"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - TestNeeds = buildPerlPackage { - pname = "Test-Needs"; - version = "0.002010"; - src = fetchurl { - url = "mirror://cpan/authors/id/H/HA/HAARG/Test-Needs-0.002010.tar.gz"; - hash = "sha256-kj/9x4/LqWYJdT5LriawugGGiT3kpjzVI24BLHyQ4gg="; - }; - meta = { - description = "Skip tests when modules not available"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # TestNoTabs = buildPerlPackage { - # pname = "Test-NoTabs"; - # version = "2.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Test-NoTabs-2.02.tar.gz"; - # hash = "sha256-+3XGo4ch8BaeEcHn2+UyntchaIWgsBEj80LdhtM1YDA="; - # }; - # meta = { - # description = "Check the presence of tabs in your project"; - # homepage = "https://github.com/karenetheridge/Test-NoTabs"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - TestNoWarnings = buildPerlPackage { - pname = "Test-NoWarnings"; - version = "1.06"; - src = fetchurl { - url = "mirror://cpan/authors/id/H/HA/HAARG/Test-NoWarnings-1.06.tar.gz"; - hash = "sha256-wtxRFDt+tjIxIQ4n3yDSyDk3cuCjM1R+yLeiBe1i9zc="; - }; - meta = { - description = "Make sure you didn't emit any warnings while testing"; - license = with lib.licenses; [ lgpl21Only ]; - }; - }; - - # TestObject = buildPerlPackage { - # pname = "Test-Object"; - # version = "0.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Object-0.08.tar.gz"; - # hash = "sha256-ZSeJZBR4NzE/QQjlW1lnboo2TW7fAbPcGYruiUqx0Ls="; - # }; - # meta = { - # description = "Thoroughly testing objects via registered handlers"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestOutput = buildPerlPackage { - # pname = "Test-Output"; - # version = "1.034"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BD/BDFOY/Test-Output-1.034.tar.gz"; - # hash = "sha256-zULigBwNK0gtGMn7SwbHVwVIGLy7KCTl378zrXo9aaA="; - # }; - # propagatedBuildInputs = [ CaptureTiny ]; - # meta = { - # description = "Utilities to test STDOUT and STDERR messages"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # TestPAUSEPermissions = buildPerlPackage { - # pname = "Test-PAUSE-Permissions"; - # version = "0.07"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SK/SKAJI/Test-PAUSE-Permissions-0.07.tar.gz"; - # hash = "sha256-VXDBu/KbxjeoRWcIuaJ0bPT8usE3SF7f82D48I5xBz4="; - # }; - # propagatedBuildInputs = [ ConfigIdentity PAUSEPermissions ParseLocalDistribution ]; - # buildInputs = [ ExtUtilsMakeMakerCPANfile TestUseAllModules ]; - # meta = { - # description = "Tests module permissions in your distribution"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestPerlCritic = buildPerlModule { - # pname = "Test-Perl-Critic"; - # version = "1.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PETDANCE/Test-Perl-Critic-1.04.tar.gz"; - # hash = "sha256-KPgGtUEseQi1bPFnMIS4tEzhy1TJQX14TZFCjhoECW4="; - # }; - # propagatedBuildInputs = [ MCE PerlCritic ]; - # meta = { - # description = "Use Perl::Critic in test programs"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestPerlTidy = buildPerlModule { - # pname = "Test-PerlTidy"; - # version = "20230226"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-PerlTidy-20230226.tar.gz"; - # hash = "sha256-wOJCEQeVeV1Nu2xEFmzlV09cftuninidG8rnZoXYA8E="; - # }; - # propagatedBuildInputs = [ PathTiny PerlTidy TextDiff ]; - # buildInputs = [ TestPerlCritic ]; - # meta = { - # description = "Check that all your files are tidy"; - # homepage = "https://metacpan.org/release/Test-PerlTidy"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestPod = buildPerlPackage { - # pname = "Test-Pod"; - # version = "1.52"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Pod-1.52.tar.gz"; - # hash = "sha256-YKjbzGAWi/HapcwjUCNt+TQ+mHj0q5gwlwpd3m/o5fw="; - # }; - # meta = { - # description = "Check for POD errors in files"; - # homepage = "https://search.cpan.org/dist/Test-Pod"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestPodCoverage = buildPerlPackage { - # pname = "Test-Pod-Coverage"; - # version = "1.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/Test-Pod-Coverage-1.10.tar.gz"; - # hash = "sha256-SMnMqffZnu50EXZEW0Ma3wnAKeGqV8RwPJ9G92AdQNQ="; - # }; - # propagatedBuildInputs = [ PodCoverage ]; - # meta = { - # description = "Check for pod coverage in your distribution"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # TestPodLinkCheck = buildPerlModule { - # pname = "Test-Pod-LinkCheck"; - # version = "0.008"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AP/APOCAL/Test-Pod-LinkCheck-0.008.tar.gz"; - # hash = "sha256-K/53EXPDi2nusIlQTj92URuOReap5trD5hbkAOpnvPA="; - # }; - # buildInputs = [ ModuleBuildTiny TestPod ]; - # propagatedBuildInputs = [ CaptureTiny Moose podlinkcheck ]; - # meta = { - # description = "Tests POD for invalid links"; - # homepage = "https://search.cpan.org/dist/Test-Pod-LinkCheck"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestPodNo404s = buildPerlModule { - # pname = "Test-Pod-No404s"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AP/APOCAL/Test-Pod-No404s-0.02.tar.gz"; - # hash = "sha256-EcYGBW/WK9ROB5977wbEWapYnuhc3tv6DMMl6jV8jnk="; - # }; - # propagatedBuildInputs = [ LWP URIFind ]; - # buildInputs = [ ModuleBuildTiny TestPod ]; - # meta = { - # description = "Using this test module will check your POD for any http 404 links"; - # homepage = "https://search.cpan.org/dist/Test-Pod-No404s"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestPortabilityFiles = buildPerlPackage { - # pname = "Test-Portability-Files"; - # version = "0.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AB/ABRAXXA/Test-Portability-Files-0.10.tar.gz"; - # hash = "sha256-COS0MkktwbRLVdXbV5Uut2N5x/Q07o8WrKZNSR9AGhY="; - # }; - # meta = { - # description = "Check file names portability"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestRefcount = buildPerlModule { - # pname = "Test-Refcount"; - # version = "0.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-Refcount-0.10.tar.gz"; - # hash = "sha256-BFfCCklWRz0VfE+q/4gUFUvJP24rVDwoEqGf+OM3DrI="; - # }; - # meta = { - # description = "Assert reference counts on objects"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - TestRequires = buildPerlPackage { - pname = "Test-Requires"; - version = "0.11"; - src = fetchurl { - url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Test-Requires-0.11.tar.gz"; - hash = "sha256-S4jeVJWX7s3ffDw4pNAgShb1mtgEV3tnGJasBOJOBA8="; - }; - meta = { - description = "Checks to see if the module can be loaded"; - homepage = "https://github.com/tokuhirom/Test-Requires"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # TestRequiresGit = buildPerlPackage { - # pname = "Test-Requires-Git"; - # version = "1.008"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BO/BOOK/Test-Requires-Git-1.008.tar.gz"; - # hash = "sha256-cJFiEJcNhNdJFFEVmri2fhUlHIwNrnw99sjYhULqQqY="; - # }; - # propagatedBuildInputs = [ GitVersionCompare ]; - # meta = { - # description = "Check your test requirements against the available version of Git"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - TestRequiresInternet = buildPerlPackage { - pname = "Test-RequiresInternet"; - version = "0.05"; - src = fetchurl { - url = "mirror://cpan/authors/id/M/MA/MALLEN/Test-RequiresInternet-0.05.tar.gz"; - hash = "sha256-u6ezKhzA1Yzi7CCyAKc0fGljFkHoyuj/RWetJO8egz4="; - }; - meta = { - description = "Easily test network connectivity"; - homepage = "https://metacpan.org/dist/Test-RequiresInternet"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # TestRoo = buildPerlPackage { - # pname = "Test-Roo"; - # version = "1.004"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-Roo-1.004.tar.gz"; - # hash = "sha256-IRKaPOy1B7AJSOFs8V/N5dxNsjWrqEr9f0fSIBOp3tY="; - # }; - - # propagatedBuildInputs = [ Moo MooXTypesMooseLike SubInstall strictures ]; - # buildInputs = [ CaptureTiny ]; - # meta = { - # description = "Composable, reusable tests with roles and Moo"; - # license = with lib.licenses; [ asl20 ]; - # }; - # }; - - # TestRoutine = buildPerlPackage { - # pname = "Test-Routine"; - # version = "0.031"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Routine-0.031.tar.gz"; - # hash = "sha256-f9kp7TPyVMoJkCJQGSYInHeU71d7uoYHbn2YFlYPXAc="; - # }; - # buildInputs = [ TestAbortable TestFatal ]; - # propagatedBuildInputs = [ Moose namespaceautoclean ]; - # meta = { - # description = "Composable units of assertion"; - # homepage = "https://github.com/rjbs/Test-Routine"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestRun = buildPerlModule { - # pname = "Test-Run"; - # version = "0.0305"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-0.0305.tar.gz"; - # hash = "sha256-+Jpx3WD44qd26OYBd8ntXlkJbUAF1QvSmJuSeeCHwkg="; - # }; - # buildInputs = [ TestTrap ]; - # propagatedBuildInputs = [ IPCSystemSimple ListMoreUtils MooseXStrictConstructor TextSprintfNamed UNIVERSALrequire ]; - # meta = { - # description = "Base class to run standard TAP scripts"; - # homepage = "https://web-cpan.shlomifish.org/modules/Test-Run"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # TestRunCmdLine = buildPerlModule { - # pname = "Test-Run-CmdLine"; - # version = "0.0132"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-CmdLine-0.0132.tar.gz"; - # hash = "sha256-ssORzVRjV378dti/so6tKz1OOm+pLbDvNMANyfTPpwc="; - # }; - # buildInputs = [ TestRun TestTrap ]; - # propagatedBuildInputs = [ MooseXGetopt UNIVERSALrequire YAMLLibYAML ]; - # doCheck = !stdenv.isDarwin; - # meta = { - # description = "Analyze tests from the command line using Test::Run"; - # homepage = "http://web-cpan.berlios.de/modules/Test-Run"; - # license = with lib.licenses; [ mit ]; - # mainProgram = "runprove"; - # }; - # }; - - # TestRunPluginAlternateInterpreters = buildPerlModule { - # pname = "Test-Run-Plugin-AlternateInterpreters"; - # version = "0.0125"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-AlternateInterpreters-0.0125.tar.gz"; - # hash = "sha256-UsNomxRdgh8XCj8uXPM6DCkoKE3d6W1sN88VAA8ymbs="; - # }; - # buildInputs = [ TestRun TestRunCmdLine TestTrap YAMLLibYAML ]; - # propagatedBuildInputs = [ Moose ]; - # meta = { - # description = "Define different interpreters for different test scripts with Test::Run"; - # homepage = "https://web-cpan.shlomifish.org/modules/Test-Run"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # TestRunPluginBreakOnFailure = buildPerlModule { - # pname = "Test-Run-Plugin-BreakOnFailure"; - # version = "0.0.6"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-BreakOnFailure-v0.0.6.tar.gz"; - # hash = "sha256-oBgO4+LwwUQSkFXaBeKTFRC59QcXTQ+6yjwMndBNE6k="; - # }; - # buildInputs = [ TestRun TestRunCmdLine TestTrap YAMLLibYAML ]; - # propagatedBuildInputs = [ Moose ]; - # meta = { - # description = "Stop processing the entire test suite"; - # homepage = "https://web-cpan.shlomifish.org/modules/Test-Run"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # TestRunPluginColorFileVerdicts = buildPerlModule { - # pname = "Test-Run-Plugin-ColorFileVerdicts"; - # version = "0.0125"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-ColorFileVerdicts-0.0125.tar.gz"; - # hash = "sha256-HCQaLBSm/WZLRy5Lb2iP1gyHlzsxjITgFIccBn8uHkY="; - # }; - # buildInputs = [ TestRun TestRunCmdLine TestTrap ]; - # propagatedBuildInputs = [ Moose ]; - # moreInputs = [ TestTrap ]; # Added because tests were failing without it - # doCheck=true; - # meta = { - # description = "Make the file verdict ('ok', 'NOT OK')"; - # homepage = "https://web-cpan.shlomifish.org/modules/Test-Run"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # TestRunPluginColorSummary = buildPerlModule { - # pname = "Test-Run-Plugin-ColorSummary"; - # version = "0.0203"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-ColorSummary-0.0203.tar.gz"; - # hash = "sha256-e9l5N5spa1EPxVuxwAuKEM00hQ5OIZf1cBtUYAY/iv0="; - # }; - # buildInputs = [ TestRun TestRunCmdLine TestTrap ]; - # moreInputs = [ TestTrap ]; # Added because tests were failing without it - # doCheck=true; - # meta = { - # description = "A Test::Run plugin that"; - # homepage = "https://web-cpan.shlomifish.org/modules/Test-Run"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # TestRunPluginTrimDisplayedFilenames = buildPerlModule { - # pname = "Test-Run-Plugin-TrimDisplayedFilenames"; - # version = "0.0126"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-TrimDisplayedFilenames-0.0126.tar.gz"; - # hash = "sha256-ioZJw8anmIp3N65KcW1g4MazIXMBtAFT6tNquPTqkCg="; - # }; - # buildInputs = [ TestRun TestRunCmdLine TestTrap YAMLLibYAML ]; - # propagatedBuildInputs = [ Moose ]; - # meta = { - # description = "Trim the first components"; - # homepage = "https://web-cpan.shlomifish.org/modules/Test-Run"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # TestRunValgrind = buildPerlModule { - # pname = "Test-RunValgrind"; - # version = "0.2.2"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-RunValgrind-0.2.2.tar.gz"; - # hash = "sha256-aRPRTK3CUbI8W3I1+NSsPeKHE41xK3W9lLACrwuPpe4="; - # }; - # buildInputs = [ TestTrap ]; - # propagatedBuildInputs = [ PathTiny ]; - # meta = { - # description = "Tests that an external program is valgrind-clean"; - # homepage = "https://metacpan.org/release/Test-RunValgrind"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # TestScript = buildPerlPackage { - # pname = "Test-Script"; - # version = "1.29"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test-Script-1.29.tar.gz"; - # hash = "sha256-iS5+bB6nsWcQkJlCz1wL2rcO7i79SqnBbqlS4rkPiVA="; - # }; - - # buildInputs = [ Test2Suite ]; - - # propagatedBuildInputs = [ CaptureTiny ProbePerl ]; - # meta = { - # description = "Basic cross-platform tests for scripts"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestScriptRun = buildPerlPackage { - # pname = "Test-Script-Run"; - # version = "0.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SU/SUNNAVY/Test-Script-Run-0.08.tar.gz"; - # hash = "sha256-H+8hbnC8QlrOPixDcN/N3bXnmLCZ77omeSRKTVvBqwo="; - # }; - # propagatedBuildInputs = [ IPCRun3 TestException ]; - # meta = { - # description = "Test scripts with run"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestSharedFork = buildPerlPackage { - # pname = "Test-SharedFork"; - # version = "0.35"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/EX/EXODIST/Test-SharedFork-0.35.tar.gz"; - # hash = "sha256-KTLoZWEOgHWPdkxYZ1fvjhHbEoTZWOJeS3qFCYQUxZ8="; - # }; - # buildInputs = [ TestRequires ]; - # meta = { - # description = "Fork test"; - # homepage = "https://github.com/tokuhirom/Test-SharedFork"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestSimple13 = buildPerlPackage { - # pname = "Test-Simple"; - # version = "1.302195"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/EX/EXODIST/Test-Simple-1.302195.tar.gz"; - # hash = "sha256-s5C7I1kuC5Rsla27PDCxG8Y0ooayhHvmEa2SnFfjmmw="; - # }; - # meta = { - # description = "Basic utilities for writing tests"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestSnapshot = buildPerlPackage { - # pname = "Test-Snapshot"; - # version = "0.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETJ/Test-Snapshot-0.06.tar.gz"; - # hash = "sha256-9N16mlW6oiR1QK40IQzQWgT50QYb7+yXockO2pW/rkU="; - # }; - # buildInputs = [ CaptureTiny ]; - # propagatedBuildInputs = [ TextDiff ]; - # meta = { - # description = "Test against data stored in automatically-named file"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # TestSpec = buildPerlPackage { - # pname = "Test-Spec"; - # version = "0.54"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AK/AKZHAN/Test-Spec-0.54.tar.gz"; - # hash = "sha256-CjHPEmXc7pC7xCRWrWC7Njr8f6xml//7D9SbupKhZdI="; - # }; - # propagatedBuildInputs = [ DevelGlobalPhase PackageStash TieIxHash ]; - # buildInputs = [ TestDeep TestTrap ]; - # meta = { - # description = "Write tests in a declarative specification style"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestSubCalls = buildPerlPackage { - # pname = "Test-SubCalls"; - # version = "1.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Test-SubCalls-1.10.tar.gz"; - # hash = "sha256-y8Hps1oF5x/rwT5e9UejHIJJiZu2AR29ydn/Nm3atsI="; - # }; - # propagatedBuildInputs = [ HookLexWrap ]; - # meta = { - # description = "Track the number of times subs are called"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestSynopsis = buildPerlPackage { - # pname = "Test-Synopsis"; - # version = "0.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Z/ZO/ZOFFIX/Test-Synopsis-0.17.tar.gz"; - # hash = "sha256-0mjJizPS+hTbsisg1lYbq0ie6CWH374ZrSd2IMe4tt4="; - # }; - # meta = { - # description = "Test your SYNOPSIS code"; - # homepage = "https://metacpan.org/release/Test-Synopsis"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestTableDriven = buildPerlPackage { - # pname = "Test-TableDriven"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JR/JROCKWAY/Test-TableDriven-0.02.tar.gz"; - # hash = "sha256-Qlh4r88qFOBHyviRsZFen1/7A2lBYJxDjg370bWxhZo="; - # }; - # meta = { - # description = "Write tests, not scripts that run them"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestTempDirTiny = buildPerlPackage { - # pname = "Test-TempDir-Tiny"; - # version = "0.018"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-TempDir-Tiny-0.018.tar.gz"; - # hash = "sha256-17eh/X/M4BaNRPuIdpGP6KmvSa4OuLCWJbZ7GNcfXoE="; - # }; - # meta = { - # description = "Temporary directories that stick around when tests fail"; - # homepage = "https://github.com/dagolden/Test-TempDir-Tiny"; - # license = with lib.licenses; [ asl20 ]; - # }; - # }; - - # TestTCP = buildPerlPackage { - # pname = "Test-TCP"; - # version = "2.22"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Test-TCP-2.22.tar.gz"; - # hash = "sha256-PlPDwG1tCYCiv+uRVgK3FOaC7iEa6IwRdIzyzHFOe1c="; - # }; - # buildInputs = [ TestSharedFork ]; - # meta = { - # description = "Testing TCP program"; - # homepage = "https://github.com/tokuhirom/Test-TCP"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestUNIXSock = buildPerlModule rec { - # pname = "Test-UNIXSock"; - # version = "0.4"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/F/FU/FUJIWARA/${pname}-${version}.tar.gz"; - # hash = "sha256-NzC0zBA0Es+/b+JHvbwwC+l94wnMmxxcvVc3E7hojz8="; - # }; - # buildInputs = [ ModuleBuildTiny ]; - # propagatedBuildInputs = [ TestSharedFork TestTCP ]; - # meta = { - # description = "Testing UNIX domain socket program"; - # homepage = "https://github.com/fujiwara/Test-UNIXSock"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestTime = buildPerlPackage { - # pname = "Test-Time"; - # version = "0.092"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AN/ANATOFUZ/Test-Time-0.092.tar.gz"; - # hash = "sha256-MNkPVM6ECJPHuiysKk0e7NTJzfgFkQxZXjronf1kRzg="; - # }; - # meta = { - # description = "Overrides the time() and sleep() core functions for testing"; - # homepage = "https://github.com/cho45/Test-Time"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestToolbox = buildPerlModule { - # pname = "Test-Toolbox"; - # version = "0.4"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIKO/Test-Toolbox-0.4.tar.gz"; - # hash = "sha256-QCC1x/OhWsmxh9Bd/ZgWuAMOwNSkf/g3P3Yzu2FOvcM="; - # }; - # meta = { - # description = "Test::Toolbox - tools for testing"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestTrailingSpace = buildPerlModule { - # pname = "Test-TrailingSpace"; - # version = "0.0601"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-TrailingSpace-0.0601.tar.gz"; - # hash = "sha256-q7jOdEg6Y9c/4e9gO3zgptR8mO3nMZVdc1eE+tHcT8w="; - # }; - # buildInputs = [ FileTreeCreate ]; - # propagatedBuildInputs = [ FileFindObjectRule ]; - # meta = { - # description = "Test for trailing space in source files"; - # homepage = "https://metacpan.org/release/Test-TrailingSpace"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # TestUnitLite = buildPerlModule { - # pname = "Test-Unit-Lite"; - # version = "0.1202"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DE/DEXTER/Test-Unit-Lite-0.1202.tar.gz"; - # hash = "sha256-NR0l7nExYoqvfjmV/h//uJOuf+bvWM8zcO0yCVP1sqg="; - # }; - # meta = { - # description = "Unit testing without external dependencies"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - TestWarn = buildPerlPackage { - pname = "Test-Warn"; - version = "0.37"; - src = fetchurl { - url = "mirror://cpan/authors/id/B/BI/BIGJ/Test-Warn-0.37.tar.gz"; - hash = "sha256-mMoy5/L16om4v7mgYJl389FT4kLi5RcFEmy5VPGga1c="; - }; - propagatedBuildInputs = [ SubUplevel ]; - meta = { - description = "Perl extension to test methods for warnings"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - TestWarnings = buildPerlPackage { - pname = "Test-Warnings"; - version = "0.032"; - src = fetchurl { - url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Warnings-0.032.tar.gz"; - hash = "sha256-Ryfa4kFunwfkHi3DqRQ7pq/8HsV2UhF8mdUAOOMT6dk="; - }; - 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 ]; - }; - }; - - # TestWeaken = buildPerlPackage { - # pname = "Test-Weaken"; - # version = "3.022000"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KR/KRYDE/Test-Weaken-3.022000.tar.gz"; - # hash = "sha256-JjGocSExAmLg6WEHpvoO1pSHt3AVIHc77l+prMwpX1s="; - # }; - # propagatedBuildInputs = [ ScalarListUtils ]; - # meta = { - # description = "Test that freed memory objects were, indeed, freed"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestWithoutModule = buildPerlPackage { - # pname = "Test-Without-Module"; - # version = "0.21"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CO/CORION/Test-Without-Module-0.21.tar.gz"; - # hash = "sha256-PN6vraxIU+vq/miTRtVV2l36PPqdTITj5ee/7lC+7EY="; - # }; - # meta = { - # description = "Test fallback behaviour in absence of modules"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestWWWMechanize = buildPerlPackage { - # pname = "Test-WWW-Mechanize"; - # version = "1.60"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PETDANCE/Test-WWW-Mechanize-1.60.tar.gz"; - # hash = "sha256-I/1y5+0b553h0CotFfDfCTQV4Oq2/GFf9rtoh0Emhnc="; - # }; - # buildInputs = [ TestLongString ]; - # propagatedBuildInputs = [ CarpAssertMore HTTPServerSimple WWWMechanize ]; - # meta = { - # description = "Testing-specific WWW::Mechanize subclass"; - # homepage = "https://github.com/libwww-perl/WWW-Mechanize"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # TestWWWMechanizeCatalyst = buildPerlPackage { - # pname = "Test-WWW-Mechanize-Catalyst"; - # version = "0.62"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MS/MSTROUT/Test-WWW-Mechanize-Catalyst-0.62.tar.gz"; - # hash = "sha256-GDveGuerpw3LPtd3xVSCN/QsPtVR/VvGWM7obQIWrLE="; - # }; - # doCheck = false; # listens on an external port - # propagatedBuildInputs = [ CatalystRuntime WWWMechanize ]; - # buildInputs = [ CatalystPluginSession CatalystPluginSessionStateCookie TestException TestWWWMechanize Testutf8 ]; - # meta = { - # description = "Test::WWW::Mechanize for Catalyst"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestWWWMechanizeCGI = buildPerlPackage { - # pname = "Test-WWW-Mechanize-CGI"; - # version = "0.1"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Test-WWW-Mechanize-CGI-0.1.tar.gz"; - # hash = "sha256-pXagsi470a/JJ0/FY7A3ru53cThJyev2pq1EFcFsnC8="; - # }; - # propagatedBuildInputs = [ WWWMechanizeCGI ]; - # buildInputs = [ TestLongString TestWWWMechanize ]; - # meta = { - # description = "Test CGI applications with Test::WWW::Mechanize"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestWWWMechanizePSGI = buildPerlPackage { - # pname = "Test-WWW-Mechanize-PSGI"; - # version = "0.39"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/O/OA/OALDERS/Test-WWW-Mechanize-PSGI-0.39.tar.gz"; - # hash = "sha256-R2s6s7R9U05Nag9JkAIdXTTGnsk3rAcW5mzop7yHmVg="; - # }; - # buildInputs = [ CGI TestLongString TestWWWMechanize ]; - # propagatedBuildInputs = [ Plack ]; - # meta = { - # description = "Test PSGI programs using WWW::Mechanize"; - # homepage = "https://github.com/acme/test-www-mechanize-psgi"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestXPath = buildPerlPackage { - # pname = "Test-XPath"; - # version = "0.20"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MANWAR/Test-XPath-0.20.tar.gz"; - # hash = "sha256-36phHnFGrZyXabW89oiUmXa4Ny3354ekC5M6FI2JIDk="; - # }; - # propagatedBuildInputs = [ XMLLibXML ]; - # meta = { - # description = "Test XML and HTML content and structure with XPath expressions"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestYAML = buildPerlPackage { - # pname = "Test-YAML"; - # version = "1.07"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TI/TINITA/Test-YAML-1.07.tar.gz"; - # hash = "sha256-HzANA09GKYy5KWCRLMBLrDP7J/BbiFLY8FHhELnNmV8="; - # }; - # buildInputs = [ TestBase ]; - # meta = { - # description = "Testing Module for YAML Implementations"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "test-yaml"; - # }; - # }; - - # TextAligner = buildPerlModule { - # pname = "Text-Aligner"; - # version = "0.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Aligner-0.16.tar.gz"; - # hash = "sha256-XIV9vOWG9X+j18Tr0yACOrOyljsgSUKK4BvTvE8hVyU="; - # }; - # meta = { - # description = "Module to align text"; - # homepage = "https://metacpan.org/release/Text-Aligner"; - # license = with lib.licenses; [ isc ]; - # }; - # }; - - # TextAspell = buildPerlPackage { - # pname = "Text-Aspell"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HANK/Text-Aspell-0.09.tar.gz"; - # hash = "sha256-K+oyCfGOJzsZPjF1pC0mk5GRnkmrEGtuJSOV0nIYL2U="; - # }; - # propagatedBuildInputs = [ pkgs.aspell ]; - # ASPELL_CONF = "dict-dir ${pkgs.aspellDicts.en}/lib/aspell"; - # env.NIX_CFLAGS_COMPILE = "-I${pkgs.aspell}/include"; - # NIX_CFLAGS_LINK = "-L${pkgs.aspell}/lib -laspell"; - # meta = { - # description = "Perl interface to the GNU Aspell library"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextAutoformat = buildPerlPackage { - # pname = "Text-Autoformat"; - # version = "1.75"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/Text-Autoformat-1.75.tar.gz"; - # hash = "sha256-ndT0zj2uxLTb9bWdrEVoqJRq7RLCi05ZiMjoxgLGt3E="; - # }; - # propagatedBuildInputs = [ TextReform ]; - # meta = { - # description = "Automatic text wrapping and reformatting"; - # homepage = "https://github.com/neilb/Text-Autoformat"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextBalanced = buildPerlPackage { - # pname = "Text-Balanced"; - # version = "2.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHAY/Text-Balanced-2.06.tar.gz"; - # hash = "sha256-dz4PDyHAyyz2ZM7muij/cCWbq8yJL5tlD5y9oAvgkq0="; - # }; - # meta = { - # description = "Extract delimited text sequences from strings"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextBibTeX = buildPerlModule { - # pname = "Text-BibTeX"; - # version = "0.89"; - # buildInputs = [ CaptureTiny ConfigAutoConf ExtUtilsLibBuilder ]; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AM/AMBS/Text-BibTeX-0.89.tar.gz"; - # hash = "sha256-iKeOvwiOx1AvQBxaKxOMhiz1RYU0t3MiO786r0EiQZY="; - # }; - # # libbtparse.so: cannot open shared object file - # patches = [ ./perl-modules/TextBibTeX-use-lib.patch ]; - # perlPreHook = "export LD=$CC"; - # perlPostHook = lib.optionalString stdenv.isDarwin '' - # oldPath="$(pwd)/btparse/src/libbtparse.dylib" - # newPath="$out/lib/libbtparse.dylib" - - # install_name_tool -id "$newPath" "$newPath" - # install_name_tool -change "$oldPath" "$newPath" "$out/bin/biblex" - # install_name_tool -change "$oldPath" "$newPath" "$out/bin/bibparse" - # install_name_tool -change "$oldPath" "$newPath" "$out/bin/dumpnames" - # install_name_tool -change "$oldPath" "$newPath" "$out/${perl.libPrefix}/${perl.version}/darwin"*"-2level/auto/Text/BibTeX/BibTeX.bundle" - # ''; - # meta = { - # description = "Interface to read and parse BibTeX files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextBrew = buildPerlPackage { - # pname = "Text-Brew"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KC/KCIVEY/Text-Brew-0.02.tar.gz"; - # hash = "sha256-qhuFhBz5/G/jODZrvIcKTpMEonZB5j+Sof2Wvujr9kw="; - # }; - # meta = { - # description = "An implementation of the Brew edit distance"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextCharWidth = buildPerlPackage { - # pname = "Text-CharWidth"; - # version = "0.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KU/KUBOTA/Text-CharWidth-0.04.tar.gz"; - # hash = "sha256-q97V9P3ZM46J/S8dgnHESYna5b9Qrs5BthedjiMHBPg="; - # }; - # meta = { - # description = "Get number of occupied columns of a string on terminal"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextCSV = buildPerlPackage { - # pname = "Text-CSV"; - # version = "2.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Text-CSV-2.03.tar.gz"; - # hash = "sha256-SLvOnyNJNaiFlWGOBN0UFigkbWUPKnJgJN8cE34LZfs="; - # }; - # meta = { - # description = "Comma-separated values manipulator (using XS or PurePerl)"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextCSVEncoded = buildPerlPackage { - # pname = "Text-CSV-Encoded"; - # version = "0.25"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Z/ZA/ZARQUON/Text-CSV-Encoded-0.25.tar.gz"; - # hash = "sha256-JIpZg6IN1XeGY56I2v3WVPO5OSVJASDW1xLaayvludA="; - # }; - # propagatedBuildInputs = [ TextCSV ]; - # meta = { - # description = "Encoding aware Text::CSV"; - # homepage = "https://github.com/singingfish/Text-CSV-Encoded"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextCSV_XS = buildPerlPackage { - # pname = "Text-CSV_XS"; - # version = "1.52"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HM/HMBRAND/Text-CSV_XS-1.52.tgz"; - # hash = "sha256-5BWqcFut+Es1ncTA8MmC8b9whIHaoUdW8xNufInA5B0="; - # }; - # meta = { - # description = "Comma-Separated Values manipulation routines"; - # homepage = "https://metacpan.org/pod/Text::CSV_XS"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextDiff = buildPerlPackage { - # pname = "Text-Diff"; - # version = "1.45"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/Text-Diff-1.45.tar.gz"; - # hash = "sha256-6Lqgexs/U+AK82NomLv3OuyaD/OPlFNu3h2+lu8IbwQ="; - # }; - # propagatedBuildInputs = [ AlgorithmDiff ]; - # meta = { - # description = "Perform diffs on files and record sets"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextFormat = buildPerlModule { - # pname = "Text-Format"; - # version = "0.62"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Format-0.62.tar.gz"; - # hash = "sha256-fUKQVzGeEjxZC6B2UzTwreSl656o23wOxNOQLeX5BAQ="; - # }; - # meta = { - # description = "Various subroutines to format text"; - # homepage = "https://github.com/shlomif/perl-Module-Format"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ bcdarwin ]; - # }; - # }; - - # TextDiffFormattedHTML = buildPerlPackage { - # pname = "Text-Diff-FormattedHTML"; - # version = "0.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AM/AMBS/Text-Diff-FormattedHTML-0.08.tar.gz"; - # hash = "sha256-Oat3WlwFZ0Xyq9jMfBy8VJbf735SqfS9itpqpsnHtw0="; - # }; - # propagatedBuildInputs = [ FileSlurp StringDiff ]; - # meta = { - # description = "Generate a colorful HTML diff of strings/files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # TextFuzzy = buildPerlPackage { - # pname = "Text-Fuzzy"; - # version = "0.29"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BK/BKB/Text-Fuzzy-0.29.tar.gz"; - # hash = "sha256-PfXP0soaTFyn/3urPMjVOtIGThNMvxEATzz4xLkFW/8="; - # }; - # meta = { - # description = "Partial string matching using edit distances"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextGerman = buildPerlPackage { - # pname = "Text-German"; - # version = "0.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/U/UL/ULPFR/Text-German-0.06.tar.gz"; - # hash = "sha256-ki1PGQEtl3OxH0pvZCEF6fkT9YZvRGG2BZymdNW7B90="; - # }; - # meta = { - # description = "German grundform reduction"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextGlob = buildPerlPackage { - # pname = "Text-Glob"; - # version = "0.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RC/RCLAMP/Text-Glob-0.11.tar.gz"; - # hash = "sha256-BpzNSdPwot7bEV9L3J+6wHqDWShAlT0fzfw5650wUoc="; - # }; - # meta = { - # description = "Match globbing patterns against text"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextHogan = buildPerlPackage { - # pname = "Text-Hogan"; - # version = "2.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KA/KAORU/Text-Hogan-2.03.tar.gz"; - # hash = "sha256-WNkj7eTFmEiI75u7JW2IVMxdIqRwikd0sxPLU4jFYXo="; - # }; - # propagatedBuildInputs = [ Clone RefUtil TextTrim ]; - # buildInputs = [ DataVisitor PathTiny TryTiny YAML ]; - # meta = { - # description = "Text::Hogan - A mustache templating engine statement-for-statement cloned from hogan.js"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextIconv = buildPerlPackage { - # pname = "Text-Iconv"; - # version = "1.7"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MP/MPIOTR/Text-Iconv-1.7.tar.gz"; - # hash = "sha256-W4C31ecJ00OTvLqIlxhkoXtEpb8PnkvO44PQKefS1cM="; - # }; - # meta = { - # description = "Perl interface to iconv() codeset conversion function"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; # taken from el6 - # broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.TextIconv.x86_64-darwin - # }; - # }; - - # TestInDistDir = buildPerlPackage { - # pname = "Test-InDistDir"; - # version = "1.112071"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MITHALDU/Test-InDistDir-1.112071.tar.gz"; - # hash = "sha256-kixcYzFPQG9MuzXsQjrCFU0sK3GmWt23cyydJAqD/vs="; - # }; - # meta = { - # description = "Test environment setup for development with IDE"; - # homepage = "https://github.com/wchristian/Test-InDistDir"; - # license = with lib.licenses; [ wtfpl ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # TestInter = buildPerlPackage { - # pname = "Test-Inter"; - # version = "1.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SB/SBECK/Test-Inter-1.10.tar.gz"; - # hash = "sha256-cewRXqwm+2aJGb1mQLQcNzInUuvUjBx222a3O679O10="; - # }; - # buildInputs = [ FileFindRule TestPod TestPodCoverage ]; - # meta = { - # description = "Framework for more readable interactive test scripts"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextLayout = buildPerlPackage { - # pname = "Text-Layout"; - # version = "0.031"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JV/JV/Text-Layout-0.031.tar.gz"; - # hash = "sha256-EQ4ObbzKIFhKcckNpxBYAdRrXXYd+QmsTfYQbDM3B34="; - # }; - # buildInputs = [ IOString PDFAPI2 ]; - # meta = { - # description = "Pango style markup formatting"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextLevenshteinXS = buildPerlPackage { - # pname = "Text-LevenshteinXS"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JG/JGOLDBERG/Text-LevenshteinXS-0.03.tar.gz"; - # hash = "sha256-43T/eyN5Gc5eqSRfNW0ctSzIf9JrOlo4s/Pl/4KgFJE="; - # }; - # meta = { - # description = "Levenshtein edit distance in a XS way"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextLorem = buildPerlPackage { - # pname = "Text-Lorem"; - # version = "0.34"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AD/ADEOLA/Text-Lorem-0.34.tar.gz"; - # hash = "sha256-DOajwZkXsjI0JKGqdC2YiwY8OUQEJ6MQGkzsbb2EcVc="; - # }; - # meta = { - # description = "Generate random Latin looking text"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # mainProgram = "lorem"; - # }; - # }; - - # TestManifest = buildPerlPackage { - # pname = "Test-Manifest"; - # version = "2.023"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BD/BDFOY/Test-Manifest-2.023.tar.gz"; - # hash = "sha256-0k5SVT58uc2oH5L/6MkrPkNGcY5HEIAaWzW38lGnceI="; - # }; - # meta = { - # description = "Interact with a t/test_manifest file"; - # homepage = "https://github.com/briandfoy/test-manifest"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # TextMarkdown = buildPerlPackage { - # pname = "Text-Markdown"; - # version = "1.000031"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Text-Markdown-1.000031.tar.gz"; - # hash = "sha256-wZHG1ezrjLdcBWUZI2BmLSAtcWutB6IzxLMppChNxxs="; - # }; - # nativeBuildInputs = [ shortenPerlShebang ]; - # nativeCheckInputs = [ ListMoreUtils TestDifferences TestException ]; - # postInstall = '' - # shortenPerlShebang $out/bin/Markdown.pl - # ''; - # meta = { - # description = "Convert Markdown syntax to (X)HTML"; - # license = with lib.licenses; [ bsd3 ]; - # mainProgram = "Markdown.pl"; - # }; - # }; - - # TextMarkdownHoedown = buildPerlModule { - # pname = "Text-Markdown-Hoedown"; - # version = "1.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Text-Markdown-Hoedown-1.03.tar.gz"; - # hash = "sha256-U6cw/29IgrmavYVW8mqRH1gvZ1tZ8OFnJe0ey8CE7lA="; - # }; - # buildInputs = [ Filepushd ]; - # perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC"; - # meta = { - # description = "Hoedown for Perl5"; - # homepage = "https://github.com/tokuhirom/Text-Markdown-Hoedown"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestMinimumVersion = buildPerlPackage { - # pname = "Test-MinimumVersion"; - # version = "0.101083"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-MinimumVersion-0.101083.tar.gz"; - # hash = "sha256-MqHrzYA/oQ7vylU7w87dQ1lqdZ3Dl1revSJoiCPDauo="; - # }; - # propagatedBuildInputs = [ PerlMinimumVersion ]; - # meta = { - # description = "Does your code require newer perl than you think?"; - # homepage = "https://github.com/rjbs/Test-MinimumVersion"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextMicroTemplate = buildPerlPackage { - # pname = "Text-MicroTemplate"; - # version = "0.24"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KA/KAZUHO/Text-MicroTemplate-0.24.tar.gz"; - # hash = "sha256-MoAecfNe6Kqg1XbOwSXO5Gs9SRWuZCvGSWISDU+XtMg="; - # }; - # meta = { - # description = "Micro template engine with Perl5 language"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextMultiMarkdown = buildPerlPackage { - # pname = "Text-MultiMarkdown"; - # version = "1.001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BD/BDFOY/Text-MultiMarkdown-1.001.tar.gz"; - # hash = "sha256-UB1ErH2lSUSZzqhR6bL7UlOAgLDB6TYjDIwm1n4EhDM="; - # }; - # buildInputs = [ ListMoreUtils TestException ]; - # propagatedBuildInputs = [ HTMLParser TextMarkdown ]; - # meta = { - # description = "Convert MultiMarkdown syntax to (X)HTML"; - # license = with lib.licenses; [ bsd3 ]; - # mainProgram = "MultiMarkdown.pl"; - # }; - # }; - - # TestNumberDelta = buildPerlPackage { - # pname = "Test-Number-Delta"; - # version = "1.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-Number-Delta-1.06.tar.gz"; - # hash = "sha256-U1QwkZ5v32zlX/dumJKvzLo7fUFg20XzrEOw+S/80Ek="; - # }; - # meta = { - # description = "Compare the difference between numbers against a given tolerance"; - # homepage = "https://github.com/dagolden/Test-Number-Delta"; - # license = with lib.licenses; [ asl20 ]; - # }; - # }; - - # TextParsewords = buildPerlPackage { - # pname = "Text-ParseWords"; - # version = "3.31"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/Text-ParseWords-3.31.tar.gz"; - # hash = "sha256-KuVVughNdbK4/u640aAJESdoFa2oa8yxRSI2lk1aL8c="; - # }; - # meta = { - # description = "Parse text into an array of tokens or array of arrays"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextPasswordPronounceable = buildPerlPackage { - # pname = "Text-Password-Pronounceable"; - # version = "0.30"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TS/TSIBLEY/Text-Password-Pronounceable-0.30.tar.gz"; - # hash = "sha256-wYalAlbgvt+vsX584VfnxS8ZUDu3nhjr8GJVkR9urRo="; - # }; - # meta = { - # description = "Generate pronounceable passwords"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextPatch = buildPerlPackage { - # pname = "Text-Patch"; - # version = "1.8"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CA/CADE/Text-Patch-1.8.tar.gz"; - # hash = "sha256-6vGOYbpqPhQ4RqfMZvCM5YoMT72pKssxrt4lyztcPcw="; - # }; - # propagatedBuildInputs = [ TextDiff ]; - # meta = { - # description = "Patches text with given patch"; - # license = with lib.licenses; [ gpl2Only ]; - # }; - # }; - - # TextPDF = buildPerlPackage { - # pname = "Text-PDF"; - # version = "0.31"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BH/BHALLISSY/Text-PDF-0.31.tar.gz"; - # hash = "sha256-359RXuFZgEsNWnXVrbk8RYTH7EAdjFnCfp9zkl2NrGg="; - # }; - # meta = { - # description = "Module for manipulating PDF files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextQuoted = buildPerlPackage { - # pname = "Text-Quoted"; - # version = "2.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BP/BPS/Text-Quoted-2.10.tar.gz"; - # hash = "sha256-CBv5XskiCvJs7IkWHmG/c/n7y/7uHZrxUTnl17cI9EU="; - # }; - # propagatedBuildInputs = [ TextAutoformat ]; - # meta = { - # description = "Extract the structure of a quoted mail message"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextRecordParser = buildPerlPackage { - # pname = "Text-RecordParser"; - # version = "1.6.5"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KC/KCLARK/Text-RecordParser-1.6.5.tar.gz"; - # hash = "sha256-2juBQUxj+NkhjRFnRaiLlIxGyYsYdjT2KYkuVAAbw1o="; - # }; - - # # In a NixOS chroot build, the tests fail because the font configuration - # # at /etc/fonts/font.conf is not available. - # doCheck = false; - - # propagatedBuildInputs = [ ClassAccessor IOStringy ListMoreUtils Readonly TextAutoformat ]; - # buildInputs = [ TestException ]; - # meta = { - # description = "Read record-oriented files"; - # license = with lib.licenses; [ gpl2Only ]; - # }; - # }; - - # TextReflow = buildPerlPackage { - # pname = "Text-Reflow"; - # version = "1.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MW/MWARD/Text-Reflow-1.17.tar.gz"; - # hash = "sha256-S/ITn/YX1uWcwOWc3s18tyPs/SjVrDh6+1U//cBxuGA="; - # }; - # meta = { - # description = "Reflow text files using Knuth's paragraphing algorithm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextReform = buildPerlModule { - # pname = "Text-Reform"; - # version = "1.20"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CH/CHORNY/Text-Reform-1.20.tar.gz"; - # hash = "sha256-qHkt2MGqyXABAyM3s2o1a+luLXTE8DnvmjY7ZB20rmE="; - # }; - # meta = { - # description = "Manual text wrapping and reformatting"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextRoman = buildPerlPackage { - # pname = "Text-Roman"; - # version = "3.5"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SY/SYP/Text-Roman-3.5.tar.gz"; - # hash = "sha256-y0oIo7FRgC/7L84yWKQWVCq4HbD3Oe5HSpWD/7c+BGo="; - # }; - # meta = { - # description = "Allows conversion between Roman and Arabic algarisms"; - # homepage = "https://github.com/creaktive/Text-Roman"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextSimpleTable = buildPerlPackage { - # pname = "Text-SimpleTable"; - # version = "2.07"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Text-SimpleTable-2.07.tar.gz"; - # hash = "sha256-JW0/OHZOljMxWLFKsYJXuS8xVcYNZYyvuAOJ9y9GGe0="; - # }; - # propagatedBuildInputs = [ UnicodeLineBreak ]; - # meta = { - # description = "Simple eyecandy ASCII tables"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # TextSoundex = buildPerlPackage { - # pname = "Text-Soundex"; - # version = "3.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Text-Soundex-3.05.tar.gz"; - # hash = "sha256-9t1VtCgLJd6peCIYOYZDglYAdOHWkzOV+u4lEMLbYO0="; - # }; - # meta = { - # description = "Implementation of the soundex algorithm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextSprintfNamed = buildPerlModule { - # pname = "Text-Sprintf-Named"; - # version = "0.0405"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Sprintf-Named-0.0405.tar.gz"; - # hash = "sha256-m0cNeP/PxAqz+ZgjGzNrnTQXIw+3zlW0fNewVXOnD/w="; - # }; - # buildInputs = [ TestWarn ]; - # meta = { - # description = "Sprintf-like function with named conversions"; - # homepage = "https://metacpan.org/release/Text-Sprintf-Named"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # TextTable = buildPerlModule { - # pname = "Text-Table"; - # version = "1.135"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Table-1.135.tar.gz"; - # hash = "sha256-/KPBboMSf3xE3ePT9+PHPqUNEJoQVERd6Agv6nlMpdI="; - # }; - # propagatedBuildInputs = [ TextAligner ]; - # meta = { - # description = "Organize Data in Tables"; - # homepage = "https://metacpan.org/release/Text-Table"; - # license = with lib.licenses; [ isc ]; - # }; - # }; - - # TextTabularDisplay = buildPerlPackage { - # pname = "Text-TabularDisplay"; - # version = "1.38"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DARREN/Text-TabularDisplay-1.38.tar.gz"; - # hash = "sha256-6wmQ+vpWtmfyPbdkvdpaTcX0sd3EsTg6pe7W8i7Rhug="; - # }; - # meta = { - # description = "Display text in formatted table output"; - # license = with lib.licenses; [ gpl2Plus ]; - # }; - # }; - - # TextTemplate = buildPerlPackage { - # pname = "Text-Template"; - # version = "1.61"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MS/MSCHOUT/Text-Template-1.61.tar.gz"; - # hash = "sha256-opXqfR7yQa4mQMH3hktij45vmewU+x2ngbL18haNzwk="; - # }; - # buildInputs = [ TestMoreUTF8 TestWarnings ]; - # meta = { - # description = "Expand template text with embedded Perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestTrap = buildPerlModule { - # pname = "Test-Trap"; - # version = "0.3.5"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/EB/EBHANSSEN/Test-Trap-v0.3.5.tar.gz"; - # hash = "sha256-VPmQFlYrWx1yEQEA8fK+Q3F4zfhDdvSV/9A3bx1+y5o="; - # }; - # propagatedBuildInputs = [ DataDump ]; - # meta = { - # description = "Trap exit codes, exceptions, output, etc"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestVars = buildPerlModule { - # pname = "Test-Vars"; - # version = "0.015"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GF/GFUJI/Test-Vars-0.015.tar.gz"; - # hash = "sha256-4Y3RWCcuTsmTnh37M8dDGrTnXGtAsoDDi16AT9pHGlQ="; - # }; - - # buildInputs = [ ModuleBuildTiny ]; - - # meta = { - # description = "Detects unused variables in perl modules"; - # homepage = "https://github.com/houseabsolute/p5-Test-Vars"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TestVersion = buildPerlPackage { - # pname = "Test-Version"; - # version = "2.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test-Version-2.09.tar.gz"; - # hash = "sha256-nOHdKJel8w4bf4lm7Gb1fY2PKA9gXyjHyiIfp5rKOOA="; - # }; - # buildInputs = [ TestException ]; - # propagatedBuildInputs = [ FileFindRulePerl ]; - # meta = { - # description = "Check to see that version's in modules are sane"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # TextTrim = buildPerlPackage { - # pname = "Text-Trim"; - # version = "1.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJT/Text-Trim-1.04.tar.gz"; - # hash = "sha256-1YeKkHnTPNF2bParxEzWJb0AoCE9LOjjFD/mlEq6qhE="; - # }; - # meta = { - # description = "Remove leading and/or trailing whitespace from strings"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextUnaccent = buildPerlPackage { - # pname = "Text-Unaccent"; - # version = "1.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LD/LDACHARY/Text-Unaccent-1.08.tar.gz"; - # hash = "sha256-J45u/Jsk82mclh77NuvmAqNAi1QVcgF97hMdFScocys="; - # }; - # # https://rt.cpan.org/Public/Bug/Display.html?id=124815 - # env.NIX_CFLAGS_COMPILE = "-DHAS_VPRINTF"; - # meta = { - # description = "Remove accents from a string"; - # license = with lib.licenses; [ gpl2Only ]; - # broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.TextUnaccent.x86_64-darwin - # }; - # }; - - # TextUnidecode = buildPerlPackage { - # pname = "Text-Unidecode"; - # version = "1.30"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SB/SBURKE/Text-Unidecode-1.30.tar.gz"; - # hash = "sha256-bCTxTdwdIOJhYcIHtzyhhO7S71fwi1+y7hlubi6IscY="; - # }; - # meta = { - # description = "Plain ASCII transliterations of Unicode tex"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Testutf8 = buildPerlPackage { - # pname = "Test-utf8"; - # version = "1.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MARKF/Test-utf8-1.02.tar.gz"; - # hash = "sha256-34LwnFlAgwslpJ8cgWL6JNNx5gKIDt742aTUv9Zri9c="; - # }; - # meta = { - # description = "Handy utf8 tests"; - # homepage = "https://github.com/2shortplanks/Test-utf8/tree"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextNSP = buildPerlPackage { - # pname = "Text-NSP"; - # version = "1.31"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TP/TPEDERSE/Text-NSP-1.31.tar.gz"; - # hash = "sha256-oBIBvrKWNrPkHs2ips9lIv0mVBa9bZlPrQL1n7Sc9ZU="; - # }; - # meta = { - # description = "Extract collocations and Ngrams from text"; - # license = with lib.licenses; [ gpl2Plus ]; - # maintainers = [ maintainers.bzizou ]; - # }; - # }; - - # TextvFileasData = buildPerlPackage { - # pname = "Text-vFile-asData"; - # version = "0.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RC/RCLAMP/Text-vFile-asData-0.08.tar.gz"; - # hash = "sha256-spGrXg+YfFFyVgppIjRxGnXkWW2DR19y0BJ4NpUy+Co="; - # }; - # propagatedBuildInputs = [ ClassAccessorChained ]; - # meta = { - # description = "Parse vFile formatted files into data structures"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextWikiFormat = buildPerlModule { - # pname = "Text-WikiFormat"; - # version = "0.81"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CY/CYCLES/Text-WikiFormat-0.81.tar.gz"; - # hash = "sha256-5DzZla2RV6foOdmT7ntsTRhUlH5VfQltnVqvdFB/qzM="; - # }; - # propagatedBuildInputs = [ URI ]; - # meta = { - # description = "Module for translating Wiki formatted text into other formats"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextWordDiff = buildPerlPackage { - # pname = "Text-WordDiff"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TI/TIMK/Text-WordDiff-0.09.tar.gz"; - # hash = "sha256-/uaZynY63KL04Y9KioNv0hArwoIK9wj460M1bVrg1Q4="; - # }; - # propagatedBuildInputs = [ AlgorithmDiff HTMLParser ]; - # meta = { - # description = "Track changes between documents"; - # homepage = "https://metacpan.org/release/Text-WordDiff"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextWrapI18N = buildPerlPackage { - # pname = "Text-WrapI18N"; - # version = "0.06"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KU/KUBOTA/Text-WrapI18N-0.06.tar.gz"; - # hash = "sha256-S9KaF/DCx5LRLBAFs8J28qsPrjnACFmuF0HXlBhGpIg="; - # }; - # buildInputs = lib.optionals (!stdenv.isDarwin) [ pkgs.glibcLocales ]; - # propagatedBuildInputs = [ TextCharWidth ]; - # preConfigure = '' - # substituteInPlace WrapI18N.pm --replace '/usr/bin/locale' '${pkgs.unixtools.locale}/bin/locale' - # ''; - # meta = { - # description = "Line wrapping module with support for multibyte, fullwidth, and combining characters and languages without whitespaces between words"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TextWrapper = buildPerlPackage { - # pname = "Text-Wrapper"; - # version = "1.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CJ/CJM/Text-Wrapper-1.05.tar.gz"; - # hash = "sha256-ZCaOFZg6nfR+HZGZpJHzlOifVC5Ur7M/S3jz8xjgmrk="; - # }; - # buildInputs = [ TestDifferences ]; - # meta = { - # description = "Word wrap text by breaking long lines"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Throwable = buildPerlPackage { - # pname = "Throwable"; - # version = "1.001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/Throwable-1.001.tar.gz"; - # hash = "sha256-0MtenX0G1w8sxW7s+FeoOkXqykOFDc3akdP+tN3eTFE="; - # }; - # propagatedBuildInputs = [ DevelStackTrace Moo ]; - # meta = { - # description = "A role for classes that can be thrown"; - # homepage = "https://github.com/rjbs/Throwable"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TieCacheLRU = buildPerlPackage { - # pname = "Tie-Cache-LRU"; - # version = "20150301"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Tie-Cache-LRU-20150301.tar.gz"; - # hash = "sha256-G/dARQ06bXwStIwl99pZZOROfMOLKFcs+3b/IkZPRGk="; - # }; - # propagatedBuildInputs = [ ClassVirtual enum ]; - # meta = { - # description = "A Least-Recently Used cache"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TieCacheLRUExpires = buildPerlPackage { - # pname = "Tie-Cache-LRU-Expires"; - # version = "0.55"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/O/OE/OESTERHOL/Tie-Cache-LRU-Expires-0.55.tar.gz"; - # hash = "sha256-sxbYSazSXyQ0bVWplQ0oH+4HRjmHZ8YBI0EiFZVz65o="; - # }; - # propagatedBuildInputs = [ TieCacheLRU ]; - # meta = { - # description = "Extends Tie::Cache::LRU with expiring"; - # license = with lib.licenses; [ artistic1 ]; - # }; - # }; - - # TieCycle = buildPerlPackage { - # pname = "Tie-Cycle"; - # version = "1.227"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BD/BDFOY/Tie-Cycle-1.227.tar.gz"; - # hash = "sha256-eDgzV5HnGjszuKGd4wUpSeGJCkgj3vY5eCPJkiL6Hdg="; - # }; - # meta = { - # description = "Cycle through a list of values via a scalar"; - # homepage = "https://github.com/briandfoy/tie-cycle"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # TieEncryptedHash = buildPerlPackage { - # pname = "Tie-EncryptedHash"; - # version = "1.24"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/V/VI/VIPUL/Tie-EncryptedHash-1.24.tar.gz"; - # hash = "sha256-qpoIOiMeQEYXCliUZE48WWecfb0KotEhfchRUN8sHiE="; - # }; - # propagatedBuildInputs = [ CryptBlowfish CryptCBC CryptDES ]; - # meta = { - # description = "Hashes (and objects based on hashes) with encrypting fields"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # TieFile = buildPerlPackage { - # pname = "Tie-File"; - # version = "1.07"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TODDR/Tie-File-1.07.tar.gz"; - # hash = "sha256-S1NUpB/pVBvc6lK0/VMBRPMVME0D8F3Q/vwynYHCawg="; - # }; - # meta = { - # description = "Access the lines of a disk file via a Perl array"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TieIxHash = buildPerlModule { - # pname = "Tie-IxHash"; - # version = "1.23"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CH/CHORNY/Tie-IxHash-1.23.tar.gz"; - # hash = "sha256-+rsLjJfmfJs0tswY7Wb2xeAcVbJX3PAHVV4LAn1Mr1Y="; - # }; - # meta = { - # description = "Ordered associative arrays for Perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TieHandleOffset = buildPerlPackage { - # pname = "Tie-Handle-Offset"; - # version = "0.004"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Tie-Handle-Offset-0.004.tar.gz"; - # hash = "sha256-7p85BV3GlaokSiUvVv/Tf4vgcgmzN604eCRyEgbSqJ4="; - # }; - # meta = { - # description = "Tied handle that hides the beginning of a file"; - # homepage = "https://github.com/dagolden/tie-handle-offset"; - # license = with lib.licenses; [ asl20 ]; - # }; - # }; - - # TieHashIndexed = buildPerlPackage { - # pname = "Tie-Hash-Indexed"; - # version = "0.08"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MH/MHX/Tie-Hash-Indexed-0.08.tar.gz"; - # hash = "sha256-N7xigV9ahIrHeRK5v0eIqfJyiE6DpS4gk9q0qDpKexA="; - # }; - # doCheck = false; /* test fails on some machines */ - # meta = { - # description = "Ordered hashes for Perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TieHashMethod = buildPerlPackage { - # pname = "Tie-Hash-Method"; - # version = "0.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Y/YV/YVES/Tie-Hash-Method-0.02.tar.gz"; - # hash = "sha256-1RP7tRQT98oeZKG9zmGU337GB23qVQZtZ7lQGR7sMqk="; - # }; - # meta = { - # description = "Tied hash with specific methods overriden by callbacks"; - # license = with lib.licenses; [ artistic1 ]; - # }; - # }; - - # TieRefHash = buildPerlPackage { - # pname = "Tie-RefHash"; - # version = "1.40"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/Tie-RefHash-1.40.tar.gz"; - # hash = "sha256-Ws8fUY0vtfYgyq16Gy/x9vdRb++PQLprdD7si5aSftc="; - # }; - # meta = { - # description = "Use references as hash keys"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TieRegexpHash = buildPerlPackage { - # pname = "Tie-RegexpHash"; - # version = "0.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AL/ALTREUS/Tie-RegexpHash-0.17.tar.gz"; - # hash = "sha256-DCB4UOd++xZhjgqgFVB5JqNCWzSq1apuPkDYOYmghaM="; - # }; - # meta = { - # description = "Use regular expressions as hash keys"; - # license = with lib.licenses; [ artistic1 ]; - # }; - # }; - - # TieSimple = buildPerlPackage { - # pname = "Tie-Simple"; - # version = "1.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HANENKAMP/Tie-Simple-1.04.tar.gz"; - # hash = "sha256-KeniEzlRBGx48gXxs+jfYskOEU8OCPoGuBd2ag+AixI="; - # }; - # meta = { - # description = "Variable ties made much easier: much, much, much easier.."; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TieSub = buildPerlPackage { - # pname = "Tie-Sub"; - # version = "1.001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/ST/STEFFENW/Tie-Sub-1.001.tar.gz"; - # hash = "sha256-73GgSCbRNisrduyyHOFzw304pHqf7Cg6qYJDWJD08bE="; - # }; - # propagatedBuildInputs = [ ParamsValidate ]; - # buildInputs = [ ModuleBuild TestDifferences TestException TestNoWarnings ]; - # meta = { - # description = "Tie::Sub - Tying a subroutine, function or method to a hash"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TieToObject = buildPerlPackage { - # pname = "Tie-ToObject"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NU/NUFFIN/Tie-ToObject-0.03.tar.gz"; - # hash = "sha256-oxoNRDD+FPWWIvMdt/JbInXa0uxS8QQL6wMNPoOtOvQ="; - # }; - # meta = { - # description = "Tie to an existing object"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - TimeDate = buildPerlPackage { - pname = "TimeDate"; - version = "2.33"; - src = fetchurl { - url = "mirror://cpan/authors/id/A/AT/ATOOMIC/TimeDate-2.33.tar.gz"; - hash = "sha256-wLacSwOd5vUBsNnxPsWMhrBAwffpsn7ySWUcFD1gXrI="; - }; - meta = { - description = "Miscellaneous timezone manipulations routines"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # TimeDuration = buildPerlPackage { - # pname = "Time-Duration"; - # version = "1.21"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/Time-Duration-1.21.tar.gz"; - # hash = "sha256-/jQOuodl+SY2lGdOXf8UgzRD4Zhl5f9Ce715t7X4qbg="; - # }; - # meta = { - # description = "Rounded or exact English expression of durations"; - # homepage = "https://github.com/neilbowers/Time-Duration"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TimeDurationParse = buildPerlPackage { - # pname = "Time-Duration-Parse"; - # version = "0.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/Time-Duration-Parse-0.16.tar.gz"; - # hash = "sha256-EISmRj7ieQ+ZIVvXaxNcpFr+K/ppmPpv1UcLaeG6vBI="; - # }; - # buildInputs = [ TimeDuration ]; - # propagatedBuildInputs = [ ExporterLite ]; - # meta = { - # description = "Parse string that represents time duration"; - # homepage = "https://github.com/neilb/Time-Duration-Parse"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TimeLocal = buildPerlPackage { - # pname = "Time-Local"; - # version = "1.35"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/Time-Local-1.35.tar.gz"; - # hash = "sha256-HRNrcb0EHL5vZsQxgO555nW3KtWjWWq9akTSEQcq2ik="; - # }; - # meta = { - # description = "Efficiently compute time from local and GMT time"; - # homepage = "https://metacpan.org/release/Time-Local"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TimeMoment = buildPerlPackage { - # pname = "Time-Moment"; - # version = "0.44"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CH/CHANSEN/Time-Moment-0.44.tar.gz"; - # hash = "sha256-ZKz6BC9jT8742t9V5/QrpOqriq631SEuuJgVox949v0="; - # }; - # buildInputs = [ TestFatal TestNumberDelta TestRequires ]; - # meta = { - # description = "Represents a date and time of day with an offset from UTC"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TimeOut = buildPerlPackage { - # pname = "Time-Out"; - # version = "0.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PA/PATL/Time-Out-0.11.tar.gz"; - # hash = "sha256-k5baaY/UUtnOYNZCzaIQjxHyDtdsiWF3muEbiXroFdI="; - # }; - # meta = { - # description = "Easily timeout long running operations"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TimeParseDate = buildPerlPackage { - # pname = "Time-ParseDate"; - # version = "2015.103"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MU/MUIR/modules/Time-ParseDate-2015.103.tar.gz"; - # hash = "sha256-LBoGI1v4EYE8qsnqqdqnGvdYZnzfewgstZhjIg/K7tE="; - # }; - # doCheck = false; - # meta = { - # description = "Parse and format time values"; - # license = with lib.licenses; [ publicDomain ]; - # }; - # }; - - # TimePeriod = buildPerlPackage { - # pname = "Time-Period"; - # version = "1.25"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PB/PBOYD/Time-Period-1.25.tar.gz"; - # hash = "sha256-0H+lgFKb6sapyCdMa/IgtMOq3mhd9lwWadUzOb9u8eg="; - # }; - # meta = { - # description = "A Perl module to deal with time periods"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.winpat ]; - # }; - # }; - - # TimePiece = buildPerlPackage { - # pname = "Time-Piece"; - # version = "1.3401"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ES/ESAYM/Time-Piece-1.3401.tar.gz"; - # hash = "sha256-S1W3uw6rRc8jmlTf6tJ336BhIaQ+Y7P84IU67P2wTCc="; - # }; - # meta = { - # description = "Object Oriented time objects"; - # homepage = "https://metacpan.org/release/Time-Piece"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ sgo ]; - # }; - # }; - - # Tirex = callPackage ./perl-modules/Tirex { }; - - # Tk = buildPerlPackage { - # pname = "Tk"; - # version = "804.036"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SR/SREZIC/Tk-804.036.tar.gz"; - # hash = "sha256-Mqpycaa9/twzMBGbOCXa3dCqS1yTb4StdOq7kyogCl4="; - # }; - # patches = [ - # # Fix failing configure test due to implicit int return value of main, which results - # # in an error with clang 16. - # ./perl-modules/tk-configure-implicit-int-fix.patch - # ]; - # makeMakerFlags = [ "X11INC=${pkgs.xorg.libX11.dev}/include" "X11LIB=${pkgs.xorg.libX11.out}/lib" ]; - # buildInputs = [ pkgs.xorg.libX11 pkgs.libpng ]; - # doCheck = false; # Expects working X11. - # meta = { - # description = "Tk - a Graphical User Interface Toolkit"; - # license = with lib.licenses; [ tcltk ]; - # }; - # }; - - # TkToolBar = buildPerlPackage { - # pname = "Tk-ToolBar"; - # version = "0.12"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AS/ASB/Tk-ToolBar-0.12.tar.gz"; - # hash = "sha256-Rj4oTsRxN+fEJclpGwKo3sXOJytY6h9jWa6AQaI53Q8="; - # }; - # makeMakerFlags = [ "X11INC=${pkgs.xorg.libX11.dev}/include" "X11LIB=${pkgs.xorg.libX11.out}/lib" ]; - # buildInputs = [ Tk ]; - # doCheck = false; # Expects working X11. - # meta = { - # description = "A toolbar widget for Perl/Tk"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TreeDAGNode = buildPerlPackage { - # pname = "Tree-DAG_Node"; - # version = "1.32"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Tree-DAG_Node-1.32.tgz"; - # hash = "sha256-ItnePW5vSv2J5tglxmT5SCh4vUninLgTQqcHr0BULT0="; - # }; - # propagatedBuildInputs = [ FileSlurpTiny ]; - # meta = { - # description = "An N-ary tree"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TreeSimple = buildPerlPackage { - # pname = "Tree-Simple"; - # version = "1.34"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Tree-Simple-1.34.tgz"; - # hash = "sha256-t+l5m9Iiu5TP+ZP312WYDL6hts0qql7L6tY1q99H0pw="; - # }; - # buildInputs = [ TestException ]; - # meta = { - # description = "A simple tree object"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TreeSimpleVisitorFactory = buildPerlPackage { - # pname = "Tree-Simple-VisitorFactory"; - # version = "0.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Tree-Simple-VisitorFactory-0.16.tgz"; - # hash = "sha256-nPU4+qEsVP+0qRQ5lF5IjxhW9iuJrFByqSIRngGIDaY="; - # }; - # propagatedBuildInputs = [ TreeSimple ]; - # buildInputs = [ TestException ]; - # meta = { - # description = "A factory object for dispensing Visitor objects"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - TryTiny = buildPerlPackage { - pname = "Try-Tiny"; - version = "0.31"; - src = fetchurl { - url = "mirror://cpan/authors/id/E/ET/ETHER/Try-Tiny-0.31.tar.gz"; - hash = "sha256-MwDTHYpAdbJtj0bOhkodkT4OhGfO66ZlXV0rLiBsEb4="; - }; - buildInputs = [ CPANMetaCheck CaptureTiny ]; - meta = { - description = "Minimal try/catch with proper preservation of $@"; - homepage = "https://github.com/p5sagit/Try-Tiny"; - license = with lib.licenses; [ mit ]; - }; - }; - - # TryTinyByClass = buildPerlPackage { - # pname = "Try-Tiny-ByClass"; - # version = "0.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MAUKE/Try-Tiny-ByClass-0.01.tar.gz"; - # hash = "sha256-A45O9SkpXyacKA/vmZpeTbkVaULwkaw8rXabHkVw8UY="; - # }; - # propagatedBuildInputs = [ DispatchClass TryTiny ]; - # meta = { - # description = "Selectively catch exceptions by class name"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Twiggy = buildPerlPackage { - # pname = "Twiggy"; - # version = "0.1026"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Twiggy-0.1026.tar.gz"; - # hash = "sha256-TZHqbtmumo70MU3Cp89S6wJrNlvmg4azXqaGTfrFf54="; - # }; - # propagatedBuildInputs = [ AnyEvent Plack ]; - # buildInputs = [ TestRequires TestSharedFork TestTCP ]; - # meta = { - # description = "AnyEvent HTTP server for PSGI"; - # homepage = "https://github.com/miyagawa/Twiggy"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "twiggy"; - # }; - # }; - - TypeTiny = buildPerlPackage { - pname = "Type-Tiny"; - version = "2.004000"; - src = fetchurl { - url = "mirror://cpan/authors/id/T/TO/TOBYINK/Type-Tiny-2.004000.tar.gz"; - hash = "sha256-aX5/d17fyF9M8HeS0E/RmwnCUoX5j1k46O/E90UHoSg="; - }; - propagatedBuildInputs = [ ExporterTiny ]; - buildInputs = [ TestMemoryCycle ]; - meta = { - description = "Tiny, yet Moo(se)-compatible type constraint"; - homepage = "https://typetiny.toby.ink"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # TypeTinyXS = buildPerlPackage { - # pname = "Type-Tiny-XS"; - # version = "0.025"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TOBYINK/Type-Tiny-XS-0.025.tar.gz"; - # hash = "sha256-mmFFDdqQKU9gbNej+kTzsaNmvNiKQZkXsFTuXiPRSL0="; - # }; - # meta = { - # description = "Provides an XS boost for some of Type::Tiny's built-in type constraints"; - # homepage = "https://metacpan.org/release/Type-Tiny-XS"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # TypesSerialiser = buildPerlPackage { - # pname = "Types-Serialiser"; - # version = "1.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Types-Serialiser-1.01.tar.gz"; - # hash = "sha256-+McXOwkU0OPZVyggd7Nm8MjHAlZxXq7zKY/zK5I4ioA="; - # }; - # propagatedBuildInputs = [ commonsense ]; - # meta = { - # description = "Simple data types for common serialisation formats"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # UNIVERSALcan = buildPerlPackage { - # pname = "UNIVERSAL-can"; - # version = "1.20140328"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CH/CHROMATIC/UNIVERSAL-can-1.20140328.tar.gz"; - # hash = "sha256-Ui2p8nR4b+LLqZvHfMHIHSFhlHkD1/rRC9Yt+38RmQ8="; - # }; - # meta = { - # description = "Work around buggy code calling UNIVERSAL::can() as a function"; - # homepage = "https://github.com/chromatic/UNIVERSAL-can"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # UNIVERSALisa = buildPerlPackage { - # pname = "UNIVERSAL-isa"; - # version = "1.20171012"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/UNIVERSAL-isa-1.20171012.tar.gz"; - # hash = "sha256-0WlWA2ywHIGd7H0pT274kb4Ltkh2mJYBNUspMWTafys="; - # }; - # meta = { - # description = "Attempt to recover from people calling UNIVERSAL::isa as a function"; - # homepage = "https://github.com/karenetheridge/UNIVERSAL-isa"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # UNIVERSALrequire = buildPerlPackage { - # pname = "UNIVERSAL-require"; - # version = "0.19"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEILB/UNIVERSAL-require-0.19.tar.gz"; - # hash = "sha256-1GfNJuBsjDsgP9O8B5aubIN6xeMQCTyCJn/134UPGgM="; - # }; - # meta = { - # description = "Require() modules from a variable [deprecated]"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # UnicodeCaseFold = buildPerlModule { - # pname = "Unicode-CaseFold"; - # version = "1.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AR/ARODLAND/Unicode-CaseFold-1.01.tar.gz"; - # hash = "sha256-QYohKAj50Li7MwrJBQltLdNkl2dT1McVNNq5g2pjGU0="; - # }; - # perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local' - # meta = { - # description = "Unicode case-folding for case-insensitive lookups"; - # homepage = "https://metacpan.org/release/Unicode-CaseFold"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # UnicodeCheckUTF8 = buildPerlPackage { - # pname = "Unicode-CheckUTF8"; - # version = "1.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BR/BRADFITZ/Unicode-CheckUTF8-1.03.tar.gz"; - # hash = "sha256-l/hNrwM+ubSc2P4x2yIf7wNaXC7h11fzEiyIz5diQUw="; - # }; - # meta = { - # description = "Checks if scalar is valid UTF-8"; - # license = with lib.licenses; [ ucd /* and */ artistic1 gpl1Plus ]; - # }; - # }; - - # UnicodeLineBreak = buildPerlPackage { - # pname = "Unicode-LineBreak"; - # version = "2019.001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/N/NE/NEZUMI/Unicode-LineBreak-2019.001.tar.gz"; - # hash = "sha256-SGdi5MrN3Md7E5ifl5oCn4RjC4F15/7xeYnhV9S2MYo="; - # }; - # propagatedBuildInputs = [ MIMECharset ]; - # meta = { - # description = "UAX #14 Unicode Line Breaking Algorithm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # UnicodeString = buildPerlPackage { - # pname = "Unicode-String"; - # version = "2.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GA/GAAS/GAAS/Unicode-String-2.10.tar.gz"; - # hash = "sha256-iUoRDs5HlUaviv7Aly7scyDIbE3qTms1Tf88dSa6m2g="; - # }; - # meta = { - # description = "String of Unicode characters (UTF-16BE)"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # UnicodeStringprep = buildPerlModule { - # pname = "Unicode-Stringprep"; - # version = "1.105"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CF/CFAERBER/Unicode-Stringprep-1.105.tar.gz"; - # hash = "sha256-5r67xYQIIx/RMX25ECRJs+faT6Q3559jc4LTYxPv0BE="; - # }; - # buildInputs = [ TestNoWarnings ]; - # meta = { - # description = "Preparation of Internationalized Strings (RFC 3454)"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # UnicodeUTF8 = buildPerlPackage { - # pname = "Unicode-UTF8"; - # version = "0.62"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CH/CHANSEN/Unicode-UTF8-0.62.tar.gz"; - # hash = "sha256-+oci0LdGluMy/d1EKZRDbqk9O/x5gtS6vc7f3dZX0PY="; - # }; - # buildInputs = [ TestFatal ]; - # meta = { - # description = "Encoding and decoding of UTF-8 encoding form"; - # homepage = "https://github.com/chansen/p5-unicode-utf8"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = with maintainers; [ sgo ]; - # }; - # }; - - # UnixGetrusage = buildPerlPackage { - # pname = "Unix-Getrusage"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TA/TAFFY/Unix-Getrusage-0.03.tar.gz"; - # hash = "sha256-ds3hzuJFMmC4WrvdwnzcmHXwHSRX4XbgPcq/BftETRI="; - # }; - # meta = { - # description = "Perl interface to the Unix getrusage system call"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - URI = buildPerlPackage { - pname = "URI"; - version = "5.21"; - src = fetchurl { - url = "mirror://cpan/authors/id/O/OA/OALDERS/URI-5.21.tar.gz"; - hash = "sha256-liZYYM1hveFuhBXc+/EIBW3hYsqgrDf4HraVydLgq3c="; - }; - 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 ]; - }; - }; - - # URIdb = buildPerlModule { - # pname = "URI-db"; - # version = "0.21"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DW/DWHEELER/URI-db-0.21.tar.gz"; - # hash = "sha256-pkM9wVF6kH4YmRKkx2td/HYzLj/X/Is4oTfkAZx4CzQ="; - # }; - # propagatedBuildInputs = [ URINested ]; - # meta = { - # description = "Database URIs"; - # homepage = "https://search.cpan.org/dist/URI-db"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # URIFind = buildPerlModule { - # pname = "URI-Find"; - # version = "20160806"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MS/MSCHWERN/URI-Find-20160806.tar.gz"; - # hash = "sha256-4hOkJaUbX1UyQhHzeQnXh0nQus3qJZulGphV0NGWY9Y="; - # }; - # propagatedBuildInputs = [ URI ]; - # meta = { - # description = "Find URIs in arbitrary text"; - # homepage = "https://metacpan.org/release/URI-Find"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "urifind"; - # }; - # }; - - # URIFromHash = buildPerlPackage { - # pname = "URI-FromHash"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/URI-FromHash-0.05.tar.gz"; - # hash = "sha256-p8rFvM7p8uLYrQ9gVAAWNxLNCsZN8vuDT3YPtJ8vb9A="; - # }; - # propagatedBuildInputs = [ ParamsValidate URI ]; - # buildInputs = [ TestFatal ]; - # meta = { - # description = "Build a URI from a set of named parameters"; - # homepage = "https://metacpan.org/release/URI-FromHash"; - # license = with lib.licenses; [ artistic2 ]; - # }; - # }; - - # UriGoogleChart = buildPerlPackage { - # pname = "URI-GoogleChart"; - # version = "1.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GA/GAAS/URI-GoogleChart-1.02.tar.gz"; - # hash = "sha256-WoLCLsYBejXQ/IJv7xNBIiaHL8SiPA4sAUqfqS8rGAI="; - # }; - # propagatedBuildInputs = [ URI ]; - # meta = { - # description = "Generate Google Chart URIs"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # UserIdentity = buildPerlPackage { - # pname = "User-Identity"; - # version = "1.02"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MARKOV/User-Identity-1.02.tar.gz"; - # hash = "sha256-OySu5/UnjGXD8EEVsHyG5kaTTpnqQJJANj8wiZE+uJk="; - # }; - # propagatedBuildInputs = [ HashOrdered ]; - # meta = { - # description = "Collect information about a user"; - # homepage = "http://perl.overmeer.net/CPAN"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # URIIMAP = buildPerlPackage { - # pname = "URI-imap"; - # version = "1.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CW/CWEST/URI-imap-1.01.tar.gz"; - # hash = "sha256-uxSZiW7ONKe08JFinC5yw2imcwDoVzqyIZjJ2HI1uy0="; - # }; - # propagatedBuildInputs = [ URI ]; - # meta = { - # description = "Support IMAP URI"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # URINested = buildPerlModule { - # pname = "URI-Nested"; - # version = "0.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DW/DWHEELER/URI-Nested-0.10.tar.gz"; - # hash = "sha256-4ZcTOaZfusY6uHFC1LWdPSWdUUF3U8d8tY6jGoIz768="; - # }; - # propagatedBuildInputs = [ URI ]; - # meta = { - # description = "Nested URIs"; - # homepage = "https://metacpan.org/release/URI-Nested"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # URISmartURI = buildPerlPackage { - # pname = "URI-SmartURI"; - # version = "0.032"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RK/RKITOVER/URI-SmartURI-0.032.tar.gz"; - # hash = "sha256-6xdLeUYi4UK30JT2p+Nqe6T8i7zySF4QPuPaNevMTyw="; - # }; - # propagatedBuildInputs = [ ClassC3Componentised FileFindRule ListMoreUtils Moose URI namespaceclean ]; - # buildInputs = [ TestFatal TestNoWarnings ]; - # meta = { - # description = "Subclassable and hostless URIs"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # URITemplate = buildPerlPackage { - # pname = "URI-Template"; - # version = "0.24"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BR/BRICAS/URI-Template-0.24.tar.gz"; - # hash = "sha256-aK4tYbV+FNytD4Kvr/3F7AW1B6HpyN9aphOKqipbEd4="; - # }; - # propagatedBuildInputs = [ URI ]; - # meta = { - # description = "Object for handling URI templates (RFC 6570)"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # URIcpan = buildPerlPackage { - # pname = "URI-cpan"; - # version = "1.009"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RJ/RJBS/URI-cpan-1.009.tar.gz"; - # hash = "sha256-JFV5sCW2P1d8cndDARmEcjhxykDcNezsjq05riSkjhI="; - # }; - # propagatedBuildInputs = [ CPANDistnameInfo URI ]; - # meta = { - # description = "URLs that refer to things on the CPAN"; - # homepage = "https://github.com/rjbs/URI-cpan"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # URIws = buildPerlPackage { - # pname = "URI-ws"; - # version = "0.03"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PL/PLICEASE/URI-ws-0.03.tar.gz"; - # hash = "sha256-bmsOQXKstqU8IiY5wABgjC3WHVCEhkdIKshgDVDlQe8="; - # }; - # propagatedBuildInputs = [ URI ]; - # meta = { - # description = "WebSocket support for URI package"; - # homepage = "http://perl.wdlabs.com/URI-ws"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # UUID4Tiny = buildPerlPackage { - # pname = "UUID4-Tiny"; - # version = "0.003"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CV/CVLIBRARY/UUID4-Tiny-0.003.tar.gz"; - # hash = "sha256-4S9sgrg1dcORd3O0HA+1HPeDx8bPcuDJkWks4u8Hg2I="; - # }; - # postPatch = lib.optionalString (stdenv.isAarch64) '' - # # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/asm-generic/unistd.h - # # printf SYS_getrandom | gcc -include sys/syscall.h -E - - # substituteInPlace lib/UUID4/Tiny.pm \ - # --replace "syscall( 318" "syscall( 278" - # ''; - # meta = { - # description = "Cryptographically secure v4 UUIDs for Linux x64"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # platforms = lib.platforms.linux; # configure phase fails with "OS unsupported" - # }; - # }; - - # UUIDTiny = buildPerlPackage { - # pname = "UUID-Tiny"; - # version = "1.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CA/CAUGUSTIN/UUID-Tiny-1.04.tar.gz"; - # hash = "sha256-bc2SYE1k6WzGwYgZSuFqnTpGVWIk93tvPR0TEraPmj0="; - # }; - # meta = { - # description = "Pure Perl UUID Support With Functional Interface"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # UUIDURandom = buildPerlPackage { - # pname = "UUID-URandom"; - # version = "0.001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/UUID-URandom-0.001.tar.gz"; - # hash = "sha256-PxNjGxO5YE+0ieKYlJDJnxA3Q6g3I5va+unWuvVfj0Y="; - # }; - # propagatedBuildInputs = [ CryptURandom ]; - # meta = { - # description = "UUIDs based on /dev/urandom or the Windows Crypto API"; - # homepage = "https://github.com/dagolden/UUID-URandom"; - # license = with lib.licenses; [ asl20 ]; - # }; - # }; - - # VariableMagic = buildPerlPackage { - # pname = "Variable-Magic"; - # version = "0.63"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/V/VP/VPIT/Variable-Magic-0.63.tar.gz"; - # hash = "sha256-ukCDssMf8mlPI3EzPVVMgmqvJLTZjQPki1tKQ6Kg5nk="; - # }; - # meta = { - # description = "Associate user-defined magic to variables from Perl"; - # homepage = "https://search.cpan.org/dist/Variable-Magic"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Version = buildPerlPackage { - # pname = "version"; - # version = "0.9930"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LE/LEONT/version-0.9930.tar.gz"; - # hash = "sha256-YduVX7yzn1kC+myLlXrrJ0HiPUhA+Eq/hGrx9nCu7jA="; - # }; - # meta = { - # description = "Structured version objects"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # vidir = buildPerlPackage { - # pname = "App-vidir"; - # version = "0.052"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/W/WO/WOLDRICH/App-vidir-0.052.tar.gz"; - # hash = "sha256-GSKQdqXxPvGe1sEbu5Bcrc4iYH+pDoXJrxqqKbWsFQo="; - # }; - # outputs = [ "out" ]; - # meta = { - # description = "File manager USING vim itself"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.chreekat ]; - # mainProgram = "vidir"; - # }; - # }; - - # VMEC2 = buildPerlModule { - # pname = "VM-EC2"; - # version = "1.28"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/L/LD/LDS/VM-EC2-1.28.tar.gz"; - # hash = "sha256-srazF0XFdDH8oO+5udC48WjWCBdV4Ej9nWxEab0Qis0="; - # }; - # propagatedBuildInputs = [ AnyEventCacheDNS AnyEventHTTP JSON StringApprox XMLSimple ]; - # meta = { - # description = "Perl interface to Amazon EC2, Virtual Private Cloud, Elastic Load Balancing, Autoscaling, and Relational Database services"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # VMEC2SecurityCredentialCache = buildPerlPackage { - # pname = "VM-EC2-Security-CredentialCache"; - # version = "0.25"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RC/RCONOVER/VM-EC2-Security-CredentialCache-0.25.tar.gz"; - # hash = "sha256-/H6cFS/ytyHMsiGsQAiZNHdc9YNmrttcwWk2CfhAk3s="; - # }; - # propagatedBuildInputs = [ DateTimeFormatISO8601 VMEC2 ]; - # meta = { - # description = "Cache credentials respecting expiration time for IAM roles"; - # homepage = "https://search.cpan.org/dist/VM-EC2-Security-CredentialCache"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # W3CLinkChecker = buildPerlPackage { - # pname = "W3C-LinkChecker"; - # version = "5.0.0"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DH/DHM/W3C-LinkChecker-5.0.0.tar.gz"; - # hash = "sha256-CvdY0ZUMswTdqvqnoDmHaHTYjC/teL2KYx6zkG5U+6Y="; - # }; - # outputs = [ "out" ]; - # propagatedBuildInputs = [ CGI CSSDOM ConfigGeneral LWP LocaleCodes NetIP TermReadKey ]; - # meta = { - # description = "W3C Link Checker"; - # homepage = "https://validator.w3.org/checklink"; - # license = with lib.licenses; [ w3c ]; - # mainProgram = "checklink"; - # }; - # }; - - # WWWCurl = buildPerlPackage { - # pname = "WWW-Curl"; - # version = "4.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SZ/SZBALINT/WWW-Curl-4.17.tar.gz"; - # hash = "sha256-Uv+rEQ4yNI13XyQclz61b5awju28EQ130lfNsKJKt7o="; - # }; - # patches = [ - # (fetchpatch { - # url = "https://aur.archlinux.org/cgit/aur.git/plain/makefile.patch?h=perl-www-curl&id=7e004bb8c5dc49c903a5d5fa5ff28c30a58e2595"; - # hash = "sha256-8JZbe4IMfRZyLa118AAH/wsXrazOFy79OoH3Nuy57A4="; - # name = "perl-www-curl-makefile.patch"; - # }) - # ]; - # env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-return-type"; - # buildInputs = [ pkgs.curl ]; - # doCheck = false; # performs network access - # meta = { - # description = "Perl extension interface for libcurl"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # WWWFormUrlEncoded = buildPerlModule { - # pname = "WWW-Form-UrlEncoded"; - # version = "0.26"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KA/KAZEBURO/WWW-Form-UrlEncoded-0.26.tar.gz"; - # hash = "sha256-wEgLXx8VtxFj7DJ7jnhCKY8Ms6zpfmPXA0rx6UotkPQ="; - # }; - # meta = { - # description = "Parser and builder for application/x-www-form-urlencoded"; - # homepage = "https://github.com/kazeburo/WWW-Form-UrlEncoded"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # WWWMechanize = buildPerlPackage { - # pname = "WWW-Mechanize"; - # version = "2.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SI/SIMBABQUE/WWW-Mechanize-2.17.tar.gz"; - # hash = "sha256-nAIAPoRiHeoSyYDEEB555PjK5OOCzT2iOfqovRmPBjo="; - # }; - # propagatedBuildInputs = [ HTMLForm HTMLTree LWP ]; - # doCheck = false; - # buildInputs = [ CGI HTTPServerSimple PathTiny TestDeep TestFatal TestOutput TestWarnings ]; - # meta = { - # description = "Handy web browsing in a Perl object"; - # homepage = "https://github.com/libwww-perl/WWW-Mechanize"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "mech-dump"; - # }; - # }; - - # WWWMechanizeCGI = buildPerlPackage { - # pname = "WWW-Mechanize-CGI"; - # version = "0.3"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MR/MRAMBERG/WWW-Mechanize-CGI-0.3.tar.gz"; - # hash = "sha256-weBNi/Hh8NfP9Rl7I2Z2kyrLgCgJNq7a5PngSFGo0hA="; - # }; - # propagatedBuildInputs = [ HTTPRequestAsCGI WWWMechanize ]; - # preConfigure = '' - # substituteInPlace t/cgi-bin/script.cgi \ - # --replace '#!/usr/bin/perl' '#!${perl}/bin/perl' - # ''; - # meta = { - # description = "Use WWW::Mechanize with CGI applications"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.WWWMechanizeCGI.x86_64-darwin - # }; - # }; - - WWWRobotRules = buildPerlPackage { - pname = "WWW-RobotRules"; - version = "6.02"; - src = fetchurl { - url = "mirror://cpan/authors/id/G/GA/GAAS/WWW-RobotRules-6.02.tar.gz"; - hash = "sha256-RrUC56KI1VlCmJHutdl5Rh3T7MalxJHq2F0WW24DpR4="; - }; - propagatedBuildInputs = [ URI ]; - meta = { - description = "Database of robots.txt-derived permissions"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # WWWTwilioAPI = buildPerlPackage { - # pname = "WWW-Twilio-API"; - # version = "0.21"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SC/SCOTTW/WWW-Twilio-API-0.21.tar.gz"; - # hash = "sha256-WC21OgkfjaNnDAN3MzFPJRCvXo7gukKg45Hi8uPKdzQ="; - # }; - # prePatch = "rm examples.pl"; - # propagatedBuildInputs = [ LWPProtocolHttps ]; - # meta = { - # description = "Accessing Twilio's REST API with Perl"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # WWWYoutubeViewer = callPackage ./perl-modules/WWW-YoutubeViewer { }; - - # Want = buildPerlPackage { - # pname = "Want"; - # version = "0.29"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RO/ROBIN/Want-0.29.tar.gz"; - # hash = "sha256-tOR0C41Mt4NZEnPGNr1oMEiS4o2J6Iq/knOx3hf1Uvc="; - # }; - # meta = { - # description = "A generalisation of wantarray"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Win32ShellQuote = buildPerlPackage { - # pname = "Win32-ShellQuote"; - # version = "0.003001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/H/HA/HAARG/Win32-ShellQuote-0.003001.tar.gz"; - # hash = "sha256-qnSw49wtQc1j9i+FPlIf/Xa42CNHmiYZ4i7bQEm0wNw="; - # }; - # meta = { - # description = "Quote argument lists for Win32"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Workflow = buildPerlPackage { - # pname = "Workflow"; - # version = "1.62"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JO/JONASBN/Workflow-1.62.tar.gz"; - # hash = "sha256-WNNokAm4j+Gp2DcWfTKaoe4xTzFZeeVik2OGVFs80pU="; - # }; - # buildInputs = [ DBDMock ListMoreUtils MockMonkeyPatch PodCoverageTrustPod TestException TestKwalitee TestPod TestPodCoverage ]; - # propagatedBuildInputs = [ ClassAccessor ClassFactory DateTime DBI DataUUID DateTimeFormatStrptime ExceptionClass FileSlurp LogLog4perl Readonly XMLSimple ]; - # meta = { - # description = "Simple, flexible system to implement workflows"; - # homepage = "https://github.com/jonasbn/perl-workflow"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Wx = buildPerlPackage { - # pname = "Wx"; - # version = "0.9932"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MD/MDOOTSON/Wx-0.9932.tar.gz"; - # hash = "sha256-HP22U1oPRnbm8aqyydjhbVd74+s7fMBMgHTWheZlG3A="; - # }; - # patches = [ - # (fetchpatch { - # url = "https://sources.debian.org/data/main/libw/libwx-perl/1%3A0.9932-8/debian/patches/gtk3.patch"; - # hash = "sha256-CokmRzDTFmEMN/jTKw9ECCPvi0mHt5+h8Ojg4Jgd7D4="; - # }) - # (fetchpatch { - # url = "https://sources.debian.org/data/main/libw/libwx-perl/1%3A0.9932-8/debian/patches/wxWidgets_3.2_MakeMaker.patch"; - # hash = "sha256-kTJiCGv8yxQbgMych9yT2cOt+2bL1G4oJ0gehNcu0Rc="; - # }) - # (fetchpatch { - # url = "https://sources.debian.org/data/main/libw/libwx-perl/1%3A0.9932-8/debian/patches/wxWidgets_3.2_port.patch"; - # hash = "sha256-y9LMpcbm7p8+LZ2Hw3PA2jc7bHAFEu0QRa170XuseKw="; - # }) - # ]; - # # DND.c:453:15: error: incompatible integer to pointer conversion assigning to 'NativeFormat' (aka 'const __CFString *') from 'wxDataFormatId' - # postPatch = '' - # substituteInPlace ext/dnd/XS/DataObject.xs \ - # --replace "#ifdef __WXGTK20__" "#if wxUSE_GUI" - # ''; - # propagatedBuildInputs = [ AlienWxWidgets ]; - # # Testing requires an X server: - # # Error: Unable to initialize GTK, is DISPLAY set properly?" - # doCheck = false; - # buildInputs = [ ExtUtilsXSpp ]; - # meta = { - # description = "Interface to the wxWidgets cross-platform GUI toolkit"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # WxGLCanvas = buildPerlPackage { - # pname = "Wx-GLCanvas"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MB/MBARBON/Wx-GLCanvas-0.09.tar.gz"; - # hash = "sha256-atLCn/Bv+Apci0udHWvwrtV0iegxvlnJRJT09ojcj+A="; - # }; - # propagatedBuildInputs = [ pkgs.libGLU Wx ]; - # doCheck = false; - # meta = { - # description = "wxPerl demo helper for Wx::GLCanvas"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # X11IdleTime = buildPerlPackage { - # pname = "X11-IdleTime"; - # version = "0.09"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AW/AWENDT/X11-IdleTime-0.09.tar.gz"; - # hash = "sha256-2P3cB455ge4xt2CMZTZFyyDwFr3dx8VQtNUn79NiR0g="; - # }; - # buildInputs = [ pkgs.xorg.libXext pkgs.xorg.libXScrnSaver pkgs.xorg.libX11 ]; - # propagatedBuildInputs = [ InlineC ]; - # patchPhase = "sed -ie 's,-L/usr/X11R6/lib/,-L${pkgs.xorg.libX11.out}/lib/ -L${pkgs.xorg.libXext.out}/lib/ -L${pkgs.xorg.libXScrnSaver}/lib/,' IdleTime.pm"; - # meta = { - # description = "Get the idle time of X11"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # X11Protocol = buildPerlPackage { - # pname = "X11-Protocol"; - # version = "0.56"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SM/SMCCAM/X11-Protocol-0.56.tar.gz"; - # hash = "sha256-3pbdbHwfJfMoeqevZJAr+ErKqo4MO7dqoWdjZ+BKCLc="; - # }; - # doCheck = false; # requires an X server - # meta = { - # description = "Perl module for the X Window System Protocol, version 11"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # X11ProtocolOther = buildPerlPackage { - # pname = "X11-Protocol-Other"; - # version = "31"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KR/KRYDE/X11-Protocol-Other-31.tar.gz"; - # hash = "sha256-PGJZk9x6jrHQLgcQimZjAkWcb8b589J2FfdJUVjcc/Q="; - # }; - # propagatedBuildInputs = [ X11Protocol ]; - # buildInputs = [ EncodeHanExtra ModuleUtil ]; - # meta = { - # description = "Miscellaneous helpers for X11::Protocol connections"; - # homepage = "https://user42.tuxfamily.org/x11-protocol-other/index.html"; - # license = with lib.licenses; [ gpl1Plus gpl3Plus ]; - # }; - # }; - - # X11GUITest = buildPerlPackage { - # pname = "X11-GUITest"; - # version = "0.28"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/C/CT/CTRONDLP/X11-GUITest-0.28.tar.gz"; - # hash = "sha256-3O7eU3AGEP/xQtydXE5M0DcMiKTysTcfnL9NjYzm9ks="; - # }; - # buildInputs = [ pkgs.xorg.libX11 pkgs.xorg.libXi pkgs.xorg.libXt pkgs.xorg.libXtst ]; - # NIX_CFLAGS_LINK = "-lX11"; - # doCheck = false; # requires an X server - # meta = { - # description = "Provides GUI testing/interaction routines"; - # license = with lib.licenses; [ gpl2Only ]; - # }; - # }; - - # X11XCB = buildPerlPackage { - # pname = "X11-XCB"; - # version = "0.20"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Z/ZH/ZHMYLOVE/X11-XCB-0.20.tar.gz"; - # hash = "sha256-rVY5Yd4gIlVOdZHvXLjZY0ngxzdxIYXkeFBViMZ6L9I="; - # }; - # env.AUTOMATED_TESTING = false; - # nativeBuildInputs = [ pkgs.pkg-config ]; - # buildInputs = [ pkgs.xorg.libxcb pkgs.xorg.xcbproto pkgs.xorg.xcbutil pkgs.xorg.xcbutilwm ExtUtilsDepends ExtUtilsPkgConfig TestDeep TestException ]; - # propagatedBuildInputs = [ DataDump MouseXNativeTraits XMLDescent XMLSimple XSObjectMagic ]; - # NIX_CFLAGS_LINK = "-lxcb -lxcb-util -lxcb-xinerama -lxcb-icccm -lxcb-randr -lxcb-xkb"; - # doCheck = false; # requires an X server - # meta = { - # description = "Perl bindings for libxcb"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # XMLCanonicalizeXML = buildPerlPackage { - # pname = "XML-CanonicalizeXML"; - # version = "0.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SJ/SJZASADA/XML-CanonicalizeXML-0.10.tar.gz"; - # hash = "sha256-5yhGSIDLtMHz/XceCQOoUmzWV7OUuzchYDUkXPHihu4="; - # }; - # buildInputs = [ pkgs.libxml2 ]; - # meta = { - # description = "Perl extension for inclusive (1.0 and 1.1) and exclusive canonicalization of XML using libxml2"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.sgo ]; - # }; - # }; - - # XMLDescent = buildPerlModule { - # pname = "XML-Descent"; - # version = "1.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/A/AN/ANDYA/XML-Descent-1.04.tar.gz"; - # hash = "sha256-pxG4VvjN9eZHpExx+WfUjAlgNbnb0/Hvvb6kBgWvvVA="; - # }; - # buildInputs = [ TestDifferences ]; - # propagatedBuildInputs = [ XMLTokeParser ]; - # meta = { - # description = "Recursive descent XML parsing"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # XMLEncoding = buildPerlPackage { - # pname = "XML-Encoding"; - # version = "2.11"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHAY/XML-Encoding-2.11.tar.gz"; - # hash = "sha256-pQ5Brwp5uILUiBa5VoHzilWvHmqIgo3NljdKi94jBaE="; - # }; - # propagatedBuildInputs = [ XMLParser ]; - # meta = { - # description = "A perl module for parsing XML encoding maps"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # XMLEntities = buildPerlPackage { - # pname = "XML-Entities"; - # version = "1.0002"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SI/SIXTEASE/XML-Entities-1.0002.tar.gz"; - # hash = "sha256-wyqk8wlXPXZIqy5Bb2K2sgZS8q2c/T7sgv1REB/nMQ0="; - # }; - # nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang; - # propagatedBuildInputs = [ LWP ]; - # postInstall = lib.optionalString stdenv.isDarwin '' - # shortenPerlShebang $out/bin/download-entities.pl - # ''; - # meta = { - # description = "Mapping of XML entities to Unicode"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # XMLDOM = buildPerlPackage { - # pname = "XML-DOM"; - # version = "1.46"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-DOM-1.46.tar.gz"; - # hash = "sha256-i6JLC0WbAdbF5bBAiCnH1d/kf/ebNUjIE3WQSAmbF14="; - # }; - # propagatedBuildInputs = [ XMLRegExp libxml_perl ]; - # meta = { - # description = "Interface to XML::DOM toolset"; - # license = with lib.licenses; [ gpl2Only ]; - # }; - # }; - - # XMLFeedPP = buildPerlPackage { - # pname = "XML-FeedPP"; - # version = "0.95"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MARKOV/XML-FeedPP-0.95.tar.gz"; - # hash = "sha256-kMOVm/GmC3aimnSac5QfOgx7mllUwTZbyB2vyrsBqPQ="; - # }; - # propagatedBuildInputs = [ XMLTreePP ]; - # meta = { - # description = "Parse/write/merge/edit RSS/RDF/Atom syndication feeds"; - # homepage = "http://perl.overmeer.net/CPAN"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # XMLFilterBufferText = buildPerlPackage { - # pname = "XML-Filter-BufferText"; - # version = "1.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/R/RB/RBERJON/XML-Filter-BufferText-1.01.tar.gz"; - # hash = "sha256-j9ISbTvuxVTfhSkZ9HOeaJICy7pqF1Bum2bqFlhBp1w="; - # }; - # doCheck = false; - # meta = { - # description = "Filter to put all characters() in one event"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # XMLFilterXInclude = buildPerlPackage { - # pname = "XML-Filter-XInclude"; - # version = "1.0"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MS/MSERGEANT/XML-Filter-XInclude-1.0.tar.gz"; - # hash = "sha256-mHRvPB9vBJSR/sID1FW7j4ycbiUPBBkE3aXXjiEYf5M="; - # }; - # doCheck = false; - # meta = { - # description = "XInclude as a SAX Filter"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # XMLFilterSort = buildPerlPackage { - # pname = "XML-Filter-Sort"; - # version = "1.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GR/GRANTM/XML-Filter-Sort-1.01.tar.gz"; - # hash = "sha256-UQWF85pJFszV+o1UXpYXnJHq9vx8l6QBp1aOhBFi+l8="; - # }; - # nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang; - # propagatedBuildInputs = [ - # XMLSAX - # XMLSAXWriter - # ]; - # postInstall = lib.optionalString stdenv.isDarwin '' - # shortenPerlShebang $out/bin/xmlsort - # ''; - # meta = { - # description = "SAX filter for sorting elements in XML"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "xmlsort"; - # }; - # }; - - # XMLGrove = buildPerlPackage { - # pname = "XML-Grove"; - # version = "0.46alpha"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KM/KMACLEOD/XML-Grove-0.46alpha.tar.gz"; - # hash = "sha256-/LZtffSsKcsO3B6mLBdQcCyqaob8lHkKlPyxo2vQ0Rc="; - # }; - # buildInputs = [ pkgs.libxml2 ]; - # propagatedBuildInputs = [ libxml_perl ]; - - # #patch from https://bugzilla.redhat.com/show_bug.cgi?id=226285 - # patches = [ ./perl-modules/xml-grove-utf8.patch ]; - # meta = { - # description = "Perl-style XML objects"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # XMLHandlerYAWriter = buildPerlPackage { - # pname = "XML-Handler-YAWriter"; - # version = "0.23"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KR/KRAEHE/XML-Handler-YAWriter-0.23.tar.gz"; - # hash = "sha256-50y7vl41wapyYZC/re8cePN7ThV3+JyT2sKgr4MqpIU="; - # }; - # propagatedBuildInputs = [ libxml_perl ]; - # meta = { - # description = "Yet another Perl SAX XML Writer"; - # license = with lib.licenses; [ gpl1Only ]; - # mainProgram = "xmlpretty"; - # }; - # }; - - # XMLLibXML = buildPerlPackage { - # pname = "XML-LibXML"; - # version = "2.0209"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/XML-LibXML-2.0209.tar.gz"; - # hash = "sha256-tKWrvNaJqi+7yLe0UznpYcSYTkgQhJTrbCgrR0giJCU="; - # }; - # SKIP_SAX_INSTALL = 1; - # buildInputs = [ AlienBuild AlienLibxml2 ] - # ++ lib.optionals stdenv.isDarwin (with pkgs; [ libiconv zlib ]); - # patches = [ - # ./perl-modules/XML-LibXML-clang16.patch - # ]; - # # Remove test that fails after LibXML 2.11 upgrade - # postPatch = '' - # rm t/35huge_mode.t - # ''; - # propagatedBuildInputs = [ XMLSAX ]; - # meta = { - # description = "Perl Binding for libxml2"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # XMLLibXMLSimple = buildPerlPackage { - # pname = "XML-LibXML-Simple"; - # version = "1.01"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MARKOV/XML-LibXML-Simple-1.01.tar.gz"; - # hash = "sha256-zZjIEEtw12cr+ia0UTt4rfK0uSIOWGqovrGlCFADZaY="; - # }; - # propagatedBuildInputs = [ XMLLibXML ]; - # meta = { - # description = "An API for simple XML files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # XMLLibXSLT = buildPerlPackage { - # pname = "XML-LibXSLT"; - # version = "2.002001"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/XML-LibXSLT-2.002001.tar.gz"; - # hash = "sha256-34knxP8ZSfYlgNHB5vAPDNVrU9OpV+5LFxtZv/pjssA="; - # }; - # nativeBuildInputs = [ pkgs.pkg-config ]; - # buildInputs = [ pkgs.zlib pkgs.libxml2 pkgs.libxslt ]; - # propagatedBuildInputs = [ XMLLibXML ]; - # meta = { - # description = "Interface to the GNOME libxslt library"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # XMLMini = buildPerlPackage { - # pname = "XML-Mini"; - # version = "1.38"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PD/PDEEGAN/XML-Mini-1.38.tar.gz"; - # hash = "sha256-r4A9OANqMYThJKaC5UZvG8EH9IqJ7zWwx2R+EaBz/i0="; - # }; - # meta = { - # description = "Perl implementation of the XML::Mini XML create/parse interface"; - # license = with lib.licenses; [ gpl3Plus ]; - # }; - # }; - - XMLNamespaceSupport = buildPerlPackage { - pname = "XML-NamespaceSupport"; - version = "1.12"; - src = fetchurl { - url = "mirror://cpan/authors/id/P/PE/PERIGRIN/XML-NamespaceSupport-1.12.tar.gz"; - hash = "sha256-R+mVhZ+N0EE6o/ItNQxKYtplLoVCZ6oFhq5USuK65e8="; - }; - meta = { - description = "A simple generic namespace processor"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - XMLParser = buildPerlPackage { - pname = "XML-Parser"; - version = "2.46"; - src = fetchurl { - url = "mirror://cpan/authors/id/T/TO/TODDR/XML-Parser-2.46.tar.gz"; - 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" ]; - propagatedBuildInputs = [ LWP ]; - meta = { - description = "A perl module for parsing XML documents"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # XMLParserLite = buildPerlPackage { - # pname = "XML-Parser-Lite"; - # version = "0.722"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PH/PHRED/XML-Parser-Lite-0.722.tar.gz"; - # hash = "sha256-b5CgJ+FTGg5UBs8d4Txwm1IWlm349z0Lq5q5GSCXY+4="; - # }; - # buildInputs = [ TestRequires ]; - # meta = { - # description = "Lightweight pure-perl XML Parser (based on regexps)"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # XMLXPath = buildPerlPackage { - # pname = "XML-XPath"; - # version = "1.48"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MA/MANWAR/XML-XPath-1.48.tar.gz"; - # hash = "sha256-e8db42sjnlsucAqVcNK1O0MJPUZ/Kr5qdD+f+Qk3kM0="; - # }; - # buildInputs = [ PathTiny ]; - # propagatedBuildInputs = [ XMLParser ]; - # meta = { - # description = "Parse and evaluate XPath statements"; - # license = with lib.licenses; [ artistic2 ]; - # mainProgram = "xpath"; - # }; - # }; - - # XMLXPathEngine = buildPerlPackage { - # pname = "XML-XPathEngine"; - # version = "0.14"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIROD/XML-XPathEngine-0.14.tar.gz"; - # hash = "sha256-0v57y70L66FET0pzNAHnuKpSgvrUJm1Cc13XRYKy4mQ="; - # }; - # meta = { - # description = "A re-usable XPath engine for DOM-like trees"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # XMLRegExp = buildPerlPackage { - # pname = "XML-RegExp"; - # version = "0.04"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-RegExp-0.04.tar.gz"; - # hash = "sha256-3xmQCWA2CFyOLUWQT+GA+Cv+1A8afgUkPzNOoQCQ/FQ="; - # }; - # meta = { - # description = "Regular expressions for XML tokens"; - # license = with lib.licenses; [ gpl2Plus]; - # }; - # }; - - # XMLRPCLite = buildPerlPackage { - # pname = "XMLRPC-Lite"; - # version = "0.717"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PH/PHRED/XMLRPC-Lite-0.717.tar.gz"; - # hash = "sha256-Op+l8ssfr4t8ZrTDhuqzXKxgiK/E28dX1Pd9KE2rRSQ="; - # }; - # propagatedBuildInputs = [ SOAPLite ]; - # # disable tests that require network - # preCheck = "rm t/{26-xmlrpc.t,37-mod_xmlrpc.t}"; - # meta = { - # description = "Client and server implementation of XML-RPC protocol"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # XMLRSS = buildPerlModule { - # pname = "XML-RSS"; - # version = "1.62"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SH/SHLOMIF/XML-RSS-1.62.tar.gz"; - # hash = "sha256-0ycGNELH/3FDmTqgwtFv3lEhSRyXFmHrbLcA0uBDi04="; - # }; - # propagatedBuildInputs = [ DateTimeFormatMail DateTimeFormatW3CDTF XMLParser ]; - # meta = { - # description = "Creates and updates RSS files"; - # homepage = "https://metacpan.org/release/XML-RSS"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # XMLRules = buildPerlModule { - # pname = "XML-Rules"; - # version = "1.16"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JE/JENDA/XML-Rules-1.16.tar.gz"; - # hash = "sha256-N4glXAev5BlaDecs4FBlIyDYF1KP8tEMYR9uOSBDhos="; - # }; - # propagatedBuildInputs = [ XMLParser ]; - # meta = { - # description = "Parse XML and specify what and how to keep/process for individual tags"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - XMLSAX = buildPerlPackage { - pname = "XML-SAX"; - version = "1.02"; - src = fetchurl { - url = "mirror://cpan/authors/id/G/GR/GRANTM/XML-SAX-1.02.tar.gz"; - hash = "sha256-RQbDhwQ6pqd7RV8A9XQJ83IKp+VTSVqyU1JjtO0eoSo="; - }; - 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 ]; - }; - }; - - XMLSAXBase = buildPerlPackage { - pname = "XML-SAX-Base"; - version = "1.09"; - src = fetchurl { - url = "mirror://cpan/authors/id/G/GR/GRANTM/XML-SAX-Base-1.09.tar.gz"; - hash = "sha256-Zss1W6TvR8EMpzi9NZmXI2RDhqyFOrvrUTKEH16KKtA="; - }; - meta = { - description = "Base class for SAX Drivers and Filters"; - homepage = "https://github.com/grantm/XML-SAX-Base"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - - # XMLSAXExpat = buildPerlPackage { - # pname = "XML-SAX-Expat"; - # version = "0.51"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/B/BJ/BJOERN/XML-SAX-Expat-0.51.tar.gz"; - # hash = "sha256-TAFiE9DOfbLElOMAhrWZF7MC24wpLc0h853uvZeAyD8="; - # }; - # propagatedBuildInputs = [ XMLParser XMLSAX ]; - # # Avoid creating perllocal.pod, which contains a timestamp - # installTargets = [ "pure_install" ]; - # meta = { - # description = "SAX Driver for Expat"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # XMLSAXWriter = buildPerlPackage { - # pname = "XML-SAX-Writer"; - # version = "0.57"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PERIGRIN/XML-SAX-Writer-0.57.tar.gz"; - # hash = "sha256-PWHQfvQ7ASb1tN5PQVolb6hZ+ojcT9q6rXC3vnxoLPA="; - # }; - # propagatedBuildInputs = [ XMLFilterBufferText XMLNamespaceSupport XMLSAXBase ]; - # meta = { - # description = "SAX2 XML Writer"; - # homepage = "https://github.com/perigrin/xml-sax-writer"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # XMLSemanticDiff = buildPerlModule { - # pname = "XML-SemanticDiff"; - # version = "1.0007"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PERIGRIN/XML-SemanticDiff-1.0007.tar.gz"; - # hash = "sha256-Bf3v77vD9rYvx8m1+rr7a2le1o8KPZWFdyUdHwQCoPU="; - # }; - # propagatedBuildInputs = [ XMLParser ]; - # meta = { - # description = "Perl extension for comparing XML documents"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # XMLSimple = buildPerlPackage { - # pname = "XML-Simple"; - # version = "2.25"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/G/GR/GRANTM/XML-Simple-2.25.tar.gz"; - # hash = "sha256-Ux/drr6iQWdD61xP36sCj1AhI9miIEBaQQDmj8SA2/g="; - # }; - # propagatedBuildInputs = [ XMLSAXExpat ]; - # meta = { - # description = "An API for simple XML files"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # XMLTokeParser = buildPerlPackage { - # pname = "XML-TokeParser"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PO/PODMASTER/XML-TokeParser-0.05.tar.gz"; - # hash = "sha256-hTm0+YQ2sabQiDQai0Uwt5IqzWUfPyk3f4sZSMfi18I="; - # }; - # propagatedBuildInputs = [ XMLParser ]; - # meta = { - # description = "Simplified interface to XML::Parser"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # XMLTreePP = buildPerlPackage { - # pname = "XML-TreePP"; - # version = "0.43"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/K/KA/KAWASAKI/XML-TreePP-0.43.tar.gz"; - # hash = "sha256-f74tZDCGAFmJSu7r911MrPG/jXt1KU64fY4VAvgb12A="; - # }; - # propagatedBuildInputs = [ LWP ]; - # meta = { - # description = "Pure Perl implementation for parsing/writing XML documents"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # XMLTwig = buildPerlPackage { - # pname = "XML-Twig"; - # version = "3.52"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIROD/XML-Twig-3.52.tar.gz"; - # hash = "sha256-/vdYJsJPK4d9Cg0mRSEvxPuXVu1NJxFhSsFcSX6GgK0="; - # }; - # postInstall = '' - # mkdir -p $out/bin - # cp tools/xml_grep/xml_grep $out/bin - # ''; - # propagatedBuildInputs = [ XMLParser ]; - # doCheck = false; # requires lots of extra packages - # meta = { - # description = "A Perl module for processing huge XML documents in tree mode"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # mainProgram = "xml_grep"; - # }; - # }; - - # XMLValidatorSchema = buildPerlPackage { - # pname = "XML-Validator-Schema"; - # version = "1.10"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/SA/SAMTREGAR/XML-Validator-Schema-1.10.tar.gz"; - # hash = "sha256-YUJnlYAVCokffTIjK14x4rTl5T6Kb6nL7stcI4FPFCI="; - # }; - # propagatedBuildInputs = [ TreeDAGNode XMLFilterBufferText XMLSAX ]; - # meta = { - # description = "Validate XML against a subset of W3C XML Schema"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # XMLWriter = buildPerlPackage { - # pname = "XML-Writer"; - # version = "0.900"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/J/JO/JOSEPHW/XML-Writer-0.900.tar.gz"; - # hash = "sha256-c8j1vT7PKzUPStrm1mdtUuCOzC199KnwifpoNg1ADR8="; - # }; - # meta = { - # description = "Module for creating a XML document object oriented with on the fly validating towards the given DTD"; - # license = with lib.licenses; [ gpl1Only ]; - # }; - # }; - - # XSObjectMagic = buildPerlPackage { - # pname = "XS-Object-Magic"; - # version = "0.05"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/XS-Object-Magic-0.05.tar.gz"; - # hash = "sha256-PcnkYM7pLhF0QGJ1RkOjN3jKUqVNIF/K/6SrDzzxXlo="; - # }; - # buildInputs = [ ExtUtilsDepends TestFatal TestSimple13 ]; - # meta = { - # description = "Opaque, extensible XS pointer backed objects using sv_magic"; - # homepage = "https://github.com/karenetheridge/XS-Object-Magic"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # XSParseKeyword = buildPerlModule { - # pname = "XS-Parse-Keyword"; - # version = "0.38"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/XS-Parse-Keyword-0.38.tar.gz"; - # hash = "sha256-JQDEeGnPXKjGHdI8Z7rav2a48e+14nkgdlfBzmk+IR4="; - # }; - # buildInputs = [ ExtUtilsCChecker Test2Suite ]; - # perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC"; - # meta = { - # description = "XS functions to assist in parsing keyword syntax"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.zakame ]; - # }; - # }; - - # XSParseSublike = buildPerlModule { - # pname = "XS-Parse-Sublike"; - # version = "0.20"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PE/PEVANS/XS-Parse-Sublike-0.20.tar.gz"; - # hash = "sha256-Wn0myqMroqQQUZwMJLHYCznvMgdRN224vbef2u/pms0="; - # }; - # buildInputs = [ Test2Suite ]; - # perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC"; - # meta = { - # description = "XS functions to assist in parsing sub-like syntax"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # maintainers = [ maintainers.zakame ]; - # }; - # }; - - # XXX = buildPerlPackage { - # pname = "XXX"; - # version = "0.38"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IN/INGY/XXX-0.38.tar.gz"; - # hash = "sha256-0QUQ6gD2Gav0erKZ8Ui9WzYM+gfcDtUYE4t87HJpLSo="; - # }; - # propagatedBuildInputs = [ YAMLPP ]; - # meta = { - # description = "See Your Data in the Nude"; - # homepage = "https://github.com/ingydotnet/xxx-pm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # YAML = buildPerlPackage { - # pname = "YAML"; - # version = "1.30"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TI/TINITA/YAML-1.30.tar.gz"; - # hash = "sha256-UDCm1sv/rxJYMFC/VSqoANRkbKlnjBh63WSSJ/V0ec0="; - # }; - - # buildInputs = [ TestBase TestDeep TestYAML ]; - - # meta = { - # description = "YAML Ain't Markup Language (tm)"; - # homepage = "https://github.com/ingydotnet/yaml-pm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # YAMLOld = buildPerlPackage { - # pname = "YAML-Old"; - # version = "1.23"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/I/IN/INGY/YAML-Old-1.23.tar.gz"; - # hash = "sha256-+lRvzZrMWjm8iHGQL3/B66UOfceBxc1cCr8a7ObRfs0="; - # }; - # buildInputs = [ TestYAML TestBase ]; - # meta = { - # description = "Old YAML.pm Legacy Code"; - # homepage = "https://github.com/ingydotnet/yaml-old-pm"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # YAMLSyck = buildPerlPackage { - # pname = "YAML-Syck"; - # version = "1.34"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TO/TODDR/YAML-Syck-1.34.tar.gz"; - # hash = "sha256-zJFWzK69p5jr/i8xthnoBld/hg7RcEJi8X/608bjQVk="; - # }; - # perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC"; - # meta = { - # description = "Fast, lightweight YAML loader and dumper"; - # homepage = "https://github.com/toddr/YAML-Syck"; - # license = with lib.licenses; [ mit ]; - # }; - # }; - - # YAMLTiny = buildPerlPackage { - # pname = "YAML-Tiny"; - # version = "1.74"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/E/ET/ETHER/YAML-Tiny-1.74.tar.gz"; - # hash = "sha256-ezjKn1084kIwpri9wfR/Wy2zSOf3+WZsJvWVVjbjPWw="; - # }; - # meta = { - # description = "Read/Write YAML files with as little code as possible"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # YAMLLibYAML = buildPerlPackage { - # pname = "YAML-LibYAML"; - # version = "0.89"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TI/TINITA/YAML-LibYAML-0.89.tar.gz"; - # hash = "sha256-FVq4NnU0XFCt0DMRrPndkVlVcH+Qmiq9ixfXeShZsuw="; - # }; - # meta = { - # description = "Perl YAML Serialization using XS and libyaml"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # YAMLPP = buildPerlPackage { - # pname = "YAML-PP"; - # version = "0.036"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/T/TI/TINITA/YAML-PP-0.036.tar.gz"; - # hash = "sha256-yLTlBYSt+S73Vz9rsB1u1Y5iF2MsV0J7cnTPp8pG/Bs="; - # }; - # buildInputs = [ TestDeep TestWarn ]; - # meta = { - # description = "YAML 1.2 Processor"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # Yancy = buildPerlPackage { - # pname = "Yancy"; - # version = "1.088"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/P/PR/PREACTION/Yancy-1.088.tar.gz"; - # hash = "sha256-addqs5ilrGiQc0Paisybr9UZ+0x4WrAU7CagUhA2vSo="; - # }; - # buildInputs = [ FileShareDirInstall ]; - # propagatedBuildInputs = [ ClassMethodModifiers JSONValidator Mojolicious MojoliciousPluginI18N MojoliciousPluginOpenAPI RoleTiny ]; - # meta = { - # homepage = "http://preaction.me/yancy/"; - # description = "The Best Web Framework Deserves the Best CMS"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # WebMachine = buildPerlPackage { - # pname = "Web-Machine"; - # version = "0.17"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/D/DR/DROLSKY/Web-Machine-0.17.tar.gz"; - # hash = "sha256-8TnSsxFMVJ6RhH2qq4t1y2meV9r1u/Db0TKT8z/l4io="; - # }; - # buildInputs = [ NetHTTP TestFailWarnings TestFatal ]; - # propagatedBuildInputs = [ HTTPHeadersActionPack HTTPMessage HashMultiValue IOHandleUtil ModuleRuntime Plack SubExporter TryTiny ]; - # meta = { - # description = "A Perl port of Webmachine"; - # homepage = "https://metacpan.org/release/Web-Machine"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # WebScraper = buildPerlModule { - # pname = "Web-Scraper"; - # version = "0.38"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Web-Scraper-0.38.tar.gz"; - # hash = "sha256-+VtuX41/7r4RbQW/WaK3zxpR7Z0wvKgBI0MOxFZ1Q78="; - # }; - # buildInputs = [ ModuleBuildTiny TestBase TestRequires ]; - # propagatedBuildInputs = [ HTMLParser HTMLSelectorXPath HTMLTagset HTMLTree HTMLTreeBuilderXPath UNIVERSALrequire URI XMLXPathEngine YAML libwwwperl ]; - # meta = { - # homepage = "https://github.com/miyagawa/web-scraper"; - # description = "Web Scraping Toolkit using HTML and CSS Selectors or XPath expressions"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # WebServiceLinode = buildPerlModule { - # pname = "WebService-Linode"; - # version = "0.29"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/M/MI/MIKEGRB/WebService-Linode-0.29.tar.gz"; - # hash = "sha256-EDqrJFME8I6eh6x7yITdtEpjDea6wHfckh9xbXEVSSI="; - # }; - # buildInputs = [ ModuleBuildTiny ]; - # propagatedBuildInputs = [ JSON LWPProtocolHttps ]; - # meta = { - # description = "Perl Interface to the Linode.com API"; - # homepage = "https://github.com/mikegrb/WebService-Linode"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # WebServiceValidatorHTMLW3C = buildPerlModule { - # pname = "WebService-Validator-HTML-W3C"; - # version = "0.28"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/S/ST/STRUAN/WebService-Validator-HTML-W3C-0.28.tar.gz"; - # hash = "sha256-zLB60zegOuyBob6gqJzSlUaR/1uzZ9+aMrnZEw8XURA="; - # }; - # buildInputs = [ ClassAccessor LWP ]; - # meta = { - # description = "Access the W3Cs online HTML validator"; - # license = with lib.licenses; [ artistic1 gpl1Plus ]; - # }; - # }; - - # ZonemasterCLI = buildPerlPackage { - # pname = "Zonemaster-CLI"; - # version = "6.000003"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Z/ZN/ZNMSTR/Zonemaster-CLI-v6.0.3.tar.gz"; - # hash = "sha256-oYDBYVygvPUZ9vrGX/y5A0MAQ6zgSsrf6AtUdFcZG4Q="; - # }; - # propagatedBuildInputs = [ - # JSONXS - # MooseXGetopt - # TextReflow - # ZonemasterEngine - # ZonemasterLDNS - # libintl-perl - # ]; - - # preConfigure = '' - # patchShebangs script/ - # ''; - - # meta = { - # description = "Run Zonemaster tests from the command line"; - # license = with lib.licenses; [ bsd3 ]; - # maintainers = with lib.maintainers; [ qbit ]; - # }; - # }; - - # ZonemasterEngine = buildPerlPackage { - # pname = "Zonemaster-Engine"; - # version = "4.6.1"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Z/ZN/ZNMSTR/Zonemaster-Engine-v4.6.1.tar.gz"; - # hash = "sha256-4AXo3bZTOLnnPjjX5KNb/2O7MRqcAtlqpz5sPwNN9b0="; - # }; - # buildInputs = [ PodCoverage TestDifferences TestException TestFatal TestNoWarnings TestPod ]; - # propagatedBuildInputs = [ ClassAccessor Clone EmailValid FileShareDir FileSlurp IOSocketINET6 ListMoreUtils ModuleFind Moose MooseXSingleton NetIP NetIPXS Readonly TextCSV ZonemasterLDNS libintl-perl ]; - - # meta = { - # description = "A tool to check the quality of a DNS zone"; - # license = with lib.licenses; [ bsd3 ]; - # }; - # }; - - # ZonemasterLDNS = buildPerlPackage { - # pname = "Zonemaster-LDNS"; - # version = "3.2.0"; - # src = fetchurl { - # url = "mirror://cpan/authors/id/Z/ZN/ZNMSTR/Zonemaster-LDNS-3.2.0.tar.gz"; - # hash = "sha256-BpsWQRcpX6gtJSlAocqLMIrYsfPocjvk6CaqqX9wbWw="; - # }; - # env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include -I${pkgs.libidn2}.dev}/include"; - # NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -L${lib.getLib pkgs.libidn2}/lib -lcrypto -lidn2"; - - # makeMakerFlags = [ "--prefix-openssl=${pkgs.openssl.dev}" ]; - - # nativeBuildInputs = [ pkgs.pkg-config ]; - # buildInputs = [ DevelChecklib ModuleInstall ModuleInstallXSUtil TestFatal TestDifferences pkgs.ldns pkgs.libidn2 pkgs.openssl ]; - # meta = { - # description = "Perl wrapper for the ldns DNS library"; - # license = with lib.licenses; [ bsd3 ]; - # }; - # }; - -} -# // lib.optionalAttrs config.allowAliases { -# autodie = null; # part of Perl -# AutoLoader = null; # part of Perl 5.22 -# constant = null; # part of Perl 5.22 -# DevelSelfStubber = null; # part of Perl 5.22 -# Digest = null; # part of Perl 5.22 -# Exporter = null; # part of Perl 5.22 -# I18NCollate = null; # part of Perl 5.22 -# lib_ = null; # part of Perl 5.22 -# LocaleMaketextSimple = null; # part of Perl 5.22 -# MathComplex = null; # part of Perl 5.22 -# MIMEBase64 = null; # part of Perl 5.22 -# PerlIOviaQuotedPrint = null; # part of Perl 5.22 -# PodEscapes = null; # part of Perl 5.22 -# Safe = null; # part of Perl 5.22 -# SearchDict = null; # part of Perl 5.22 -# Test = null; # part of Perl 5.22 -# TextAbbrev = null; # part of Perl 5.22 -# TextTabsWrap = null; # part of Perl 5.22 -# DigestSHA = null; -# "if" = null; -# TestSimple = null; -# AttributeHandlers = null; # part of Perl 5.26 -# base = null; # part of Perl 5.26 -# CPANMeta = null; # part of Perl 5.26 -# CPANMetaRequirements = null; # part of Perl 5.26 -# CPANMetaYAML = null; # part of Perl 5.26 -# DigestMD5 = null; # part of Perl 5.26 -# LocaleMaketext = null; # part of Perl 5.26 -# ModuleLoadConditional = null; # part of Perl 5.26 -# ModuleMetadata = null; # part of Perl 5.26 -# PerlOSType = null; # part of Perl 5.26 -# PodUsage = null; # part of Perl 5.26 -# TermANSIColor = null; # part of Perl 5.26 -# TermCap = null; # part of Perl 5.26 -# ThreadSemaphore = null; # part of Perl 5.26 -# UnicodeNormalize = null; # part of Perl 5.26 -# XSLoader = null; # part of Perl 5.26 - -# Carp = null; # part of Perl 5.28 -# ExtUtilsCBuilder = null; # part of Perl 5.28 -# ExtUtilsParseXS = null; # part of Perl 5.28 -# FilterSimple = null; # part of Perl 5.28 -# IOSocketIP = null; # part of Perl 5.28 -# SelfLoader = null; # part of Perl 5.28 -# Socket = null; # part of Perl 5.28 -# TestHarness = null; # part of Perl 5.28 -# threads = null; # part of Perl 5.28 -# TimeHiRes = null; # part of Perl 5.28 -# UnicodeCollate = null; # part of Perl 5.28 -# ModuleCoreList = null; # part of Perl 5.28.2 - -# bignum = null; # part of Perl 5.30.3 -# DataDumper = null; # part of Perl 5.30.3 -# ExtUtilsManifest = null; # part of Perl 5.30.3 -# FileTemp = null; # part of Perl 5.30.3 -# MathBigRat = null; # part of Perl 5.30.3 -# Storable = null; # part of Perl 5.30.3 -# threadsshared = null; # part of Perl 5.30.3 -# ThreadQueue = null; # part of Perl 5.30.3 - -# ArchiveZip_1_53 = self.ArchiveZip; -# Autobox = self.autobox; -# CommonSense = self.commonsense; # For backwards compatibility. -# if_ = self."if"; # For backwards compatibility. -# Log4Perl = self.LogLog4perl; # For backwards compatibility. -# MouseXGetOpt = self.MouseXGetopt; -# NamespaceAutoclean = self.namespaceautoclean; # Deprecated. -# NamespaceClean = self.namespaceclean; # Deprecated. -# CatalystPluginUnicodeEncoding = self.CatalystRuntime; -# ClassAccessorFast = self.ClassAccessor; -# ClassMOP = self.Moose; -# CompressZlib = self.IOCompress; -# constantdefer = self.constant-defer; -# DigestHMAC_SHA1 = self.DigestHMAC; -# DistZillaPluginNoTabsTests = self.DistZillaPluginTestNoTabs; -# EmailMIMEModifier = self.EmailMIME; -# ExtUtilsCommand = self.ExtUtilsMakeMaker; -# IOSocketInet6 = self.IOSocketINET6; -# IOstringy = self.IOStringy; -# libintl_perl = self.libintl-perl; -# libintlperl = self.libintl-perl; -# LWPProtocolconnect = self.LWPProtocolConnect; -# LWPProtocolhttps = self.LWPProtocolHttps; -# LWPUserAgent = self.LWP; -# MIMEtools = self.MIMETools; -# NetLDAP = self.perlldap; -# NetSMTP = self.libnet; -# OLEStorageLight = self.OLEStorage_Lite; # For backwards compatibility. Please use OLEStorage_Lite instead. -# ParseCPANMeta = self.CPANMeta; -# TestMoose = self.Moose; -# TestMore = self.TestSimple; -# TestTester = self.TestSimple; -# Testuseok = self.TestSimple; -# SubExporterUtil = self.SubExporter; -# version = self.Version; - -# Gtk2GladeXML = throw "Gtk2GladeXML has been removed"; # 2022-01-15 -# pcscperl = throw "'pcscperl' has been renamed to 'ChipcardPCSC'"; # Added 2023-12-07 -# } diff --git a/pkgs/by-name/pe/perl/setup-hook-cross.sh b/pkgs/by-name/pe/perl/setup-hook-cross.sh deleted file mode 100644 index a7aad6f..0000000 --- a/pkgs/by-name/pe/perl/setup-hook-cross.sh +++ /dev/null @@ -1,12 +0,0 @@ -addPerlLibPath () { - addToSearchPath PERL5LIB $1/lib/perl5/site_perl/@version@ - addToSearchPath PERL5LIB $1/lib/perl5/site_perl/cross_perl/@version@ - # Adding the arch-specific directory is morally incorrect, as - # miniperl can't load the native modules there. However, it can - # (and sometimes needs to) load and run some of the pure perl - # code there, so we add it anyway. When needed, stubs can be put - # into $1/lib/perl5/site_perl/cross_perl/@version@ - addToSearchPath PERL5LIB $1/lib/perl5/site_perl/@version@/@runtimeArch@ -} - -addEnvHooks "$hostOffset" addPerlLibPath diff --git a/pkgs/by-name/pe/perl/setup-hook.sh b/pkgs/by-name/pe/perl/setup-hook.sh deleted file mode 100644 index 7909412..0000000 --- a/pkgs/by-name/pe/perl/setup-hook.sh +++ /dev/null @@ -1,5 +0,0 @@ -addPerlLibPath () { - addToSearchPath PERL5LIB $1/lib/perl5/site_perl -} - -addEnvHooks "$hostOffset" addPerlLibPath diff --git a/pkgs/by-name/pe/perl/sw_vers.patch b/pkgs/by-name/pe/perl/sw_vers.patch deleted file mode 100644 index 2e30dba..0000000 --- a/pkgs/by-name/pe/perl/sw_vers.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/hints/darwin.sh b/hints/darwin.sh -index afadf53..80b7533 100644 ---- a/hints/darwin.sh -+++ b/hints/darwin.sh -@@ -329,7 +329,7 @@ EOM - # sw_vers output what we want - # "ProductVersion: 10.10.5" "10.10" - # "ProductVersion: 10.11" "10.11" -- prodvers=`sw_vers|awk '/^ProductVersion:/{print $2}'|awk -F. '{print $1"."$2}'` -+ prodvers="${MACOSX_DEPLOYMENT_TARGET:-10.12}" - case "$prodvers" in - 10.*) - add_macosx_version_min ccflags $prodvers diff --git a/pkgs/by-name/pe/perl/wrapper.nix b/pkgs/by-name/pe/perl/wrapper.nix deleted file mode 100644 index 8e4630b..0000000 --- a/pkgs/by-name/pe/perl/wrapper.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ 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"; - - inherit paths; - inherit ignoreCollisions; - extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall; - - 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" - - # 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 - '' + postBuild; - - 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; - }; - }; -in env diff --git a/pkgs/by-name/pi/pixman/default.nix b/pkgs/by-name/pi/pixman/default.nix deleted file mode 100644 index 339d9be..0000000 --- a/pkgs/by-name/pi/pixman/default.nix +++ /dev/null @@ -1,87 +0,0 @@ -{ lib -, stdenv -, fetchurl -, meson -, ninja -, pkg-config -, libpng -, glib /*just passthru*/ - -# for passthru.tests -# , cairo -# , qemu -# , scribus -# , tigervnc -# , wlroots -# , xwayland - -# , gitUpdater -# , testers -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "pixman"; - version = "0.43.4"; - - src = fetchurl { - urls = with finalAttrs; [ - "mirror://xorg/individual/lib/${pname}-${version}.tar.gz" - "https://cairographics.org/releases/${pname}-${version}.tar.gz" - ]; - hash = "sha256-oGJNuQGAx923n8epFRCT3DfGRtjDjT8jL3Z89kuFoiY="; - }; - - # Raise test timeout, 120s can be slightly exceeded on slower hardware - postPatch = '' - substituteInPlace test/meson.build \ - --replace-fail 'timeout : 120' 'timeout : 240' - ''; - - separateDebugInfo = !stdenv.hostPlatform.isStatic; - - nativeBuildInputs = [ meson ninja pkg-config ]; - - buildInputs = [ libpng ]; - - # Default "enabled" value attempts to enable CPU features on all - # 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"; - - preConfigure = '' - # https://gitlab.freedesktop.org/pixman/pixman/-/issues/62 - export OMP_NUM_THREADS=$((NIX_BUILD_CORES > 184 ? 184 : NIX_BUILD_CORES)) - ''; - - enableParallelBuilding = true; - - doCheck = !stdenv.isDarwin; - - postInstall = glib.flattenInclude; - - # passthru = { - # tests = { - # inherit cairo qemu scribus tigervnc wlroots xwayland; - # pkg-config = testers.hasPkgConfigModules { - # package = finalAttrs.finalPackage; - # }; - # }; - # updateScript = gitUpdater { - # url = "https://gitlab.freedesktop.org/pixman/pixman.git"; - # rev-prefix = "pixman-"; - # }; - # }; - - meta = with lib; { - homepage = "http://pixman.org"; - description = "A low-level library for pixel manipulation"; - license = licenses.mit; - platforms = platforms.all; - pkgConfigModules = [ "pixman-1" ]; - }; -}) diff --git a/pkgs/by-name/pk/pkg-config/2.36.3-not-win32.patch b/pkgs/by-name/pk/pkg-config/2.36.3-not-win32.patch deleted file mode 100644 index c1dd808..0000000 --- a/pkgs/by-name/pk/pkg-config/2.36.3-not-win32.patch +++ /dev/null @@ -1,324 +0,0 @@ ---- a/glib/configure.ac 2013-08-04 20:21:20.808722600 -0500 -+++ b/glib/configure.ac 2013-08-04 18:30:21.852852200 -0500 -@@ -1880,7 +1880,7 @@ dnl ************************************ - - AC_MSG_CHECKING(for platform-dependent source) - case "$host" in -- *-*-cygwin*|*-*-mingw*) -+ *-*-mingw*) - PLATFORMDEP=gwin32.lo - ;; - *) -@@ -2594,9 +2594,6 @@ dnl *** Win32 API libs *** - dnl ********************** - - case $host in -- *-*-cygwin*) -- G_LIBS_EXTRA="-luser32 -lkernel32" -- ;; - *-*-mingw*) - G_LIBS_EXTRA="-lws2_32 -lole32 -lwinmm -lshlwapi" - ;; ---- a/glib/glib/gatomic.c 2013-08-04 20:21:20.907728300 -0500 -+++ b/glib/glib/gatomic.c 2013-08-04 18:11:14.000000000 -0500 -@@ -464,7 +464,7 @@ gsize - return g_atomic_pointer_xor ((volatile gpointer *) atomic, val); - } - --#elif defined (G_PLATFORM_WIN32) -+#elif defined (G_OS_WIN32) - - #include - #if !defined(_M_AMD64) && !defined (_M_IA64) && !defined(_M_X64) && !(defined _MSC_VER && _MSC_VER <= 1200) ---- a/glib/glib/gcharset.c 2013-08-04 20:21:20.925729300 -0500 -+++ b/glib/glib/gcharset.c 2013-08-04 18:11:14.000000000 -0500 -@@ -496,7 +496,7 @@ guess_category_value (const gchar *categ - if ((retval != NULL) && (retval[0] != '\0')) - return retval; - --#ifdef G_PLATFORM_WIN32 -+#ifdef G_OS_WIN32 - /* g_win32_getlocale() first checks for LC_ALL, LC_MESSAGES and - * LANG, which we already did above. Oh well. The main point of - * calling g_win32_getlocale() is to get the thread's locale as used ---- a/glib/glib/gconvert.c 2013-08-04 20:21:20.933729800 -0500 -+++ b/glib/glib/gconvert.c 2013-08-04 18:11:14.000000000 -0500 -@@ -33,9 +33,6 @@ - - #ifdef G_OS_WIN32 - #include "win_iconv.c" --#endif -- --#ifdef G_PLATFORM_WIN32 - #define STRICT - #include - #undef STRICT -@@ -1258,7 +1255,7 @@ g_locale_from_utf8 (const gchar *utf8str - charset, "UTF-8", bytes_read, bytes_written, error); - } - --#ifndef G_PLATFORM_WIN32 -+#ifndef G_OS_WIN32 - - typedef struct _GFilenameCharsetCache GFilenameCharsetCache; - -@@ -1374,7 +1371,7 @@ g_get_filename_charsets (const gchar *** - return cache->is_utf8; - } - --#else /* G_PLATFORM_WIN32 */ -+#else /* G_OS_WIN32 */ - - gboolean - g_get_filename_charsets (const gchar ***filename_charsets) -@@ -1403,7 +1400,7 @@ g_get_filename_charsets (const gchar *** - #endif - } - --#endif /* G_PLATFORM_WIN32 */ -+#endif /* G_OS_WIN32 */ - - static gboolean - get_filename_charset (const gchar **filename_charset) ---- a/glib/glib/gfileutils.c 2013-08-04 20:21:20.942730300 -0500 -+++ b/glib/glib/gfileutils.c 2013-08-04 18:11:14.000000000 -0500 -@@ -2153,7 +2153,7 @@ g_path_skip_root (const gchar *file_name - { - g_return_val_if_fail (file_name != NULL, NULL); - --#ifdef G_PLATFORM_WIN32 -+#ifdef G_OS_WIN32 - /* Skip \\server\share or //server/share */ - if (G_IS_DIR_SEPARATOR (file_name[0]) && - G_IS_DIR_SEPARATOR (file_name[1]) && -@@ -2163,7 +2163,6 @@ g_path_skip_root (const gchar *file_name - gchar *p; - p = strchr (file_name + 2, G_DIR_SEPARATOR); - --#ifdef G_OS_WIN32 - { - gchar *q; - -@@ -2171,7 +2170,6 @@ g_path_skip_root (const gchar *file_name - if (p == NULL || (q != NULL && q < p)) - p = q; - } --#endif - - if (p && p > file_name + 2 && p[1]) - { ---- a/glib/glib/glib.h 2013-08-04 20:21:20.949730700 -0500 -+++ b/glib/glib/glib.h 2013-08-04 18:11:14.000000000 -0500 -@@ -96,7 +96,7 @@ - #include - #include - #include --#ifdef G_PLATFORM_WIN32 -+#ifdef G_OS_WIN32 - #include - #endif - ---- a/glib/glib/gutf8.c 2013-08-04 20:21:20.984732700 -0500 -+++ b/glib/glib/gutf8.c 2013-08-04 18:11:14.000000000 -0500 -@@ -27,7 +27,7 @@ - #endif - #include - --#ifdef G_PLATFORM_WIN32 -+#ifdef G_OS_WIN32 - #include - #define STRICT - #include ---- a/glib/glib/gutils.c 2013-08-04 20:21:21.015734500 -0500 -+++ b/glib/glib/gutils.c 2013-08-04 18:11:14.000000000 -0500 -@@ -72,7 +72,7 @@ - #include "garray.h" - #include "glibintl.h" - --#ifdef G_PLATFORM_WIN32 -+#ifdef G_OS_WIN32 - #include "gconvert.h" - #include "gwin32.h" - #endif -@@ -86,16 +86,13 @@ - * These are portable utility functions. - */ - --#ifdef G_PLATFORM_WIN32 -+#ifdef G_OS_WIN32 - # include - # ifndef GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS - # define GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT 2 - # define GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS 4 - # endif - # include /* For UNLEN */ --#endif /* G_PLATFORM_WIN32 */ -- --#ifdef G_OS_WIN32 - # include - # include - /* older SDK (e.g. msvc 5.0) does not have these*/ -@@ -131,7 +128,7 @@ - #include - #endif - --#ifdef G_PLATFORM_WIN32 -+#ifdef G_OS_WIN32 - - gchar * - _glib_get_dll_directory (void) ---- a/glib/glib/gutils.h 2013-08-04 20:21:21.067737500 -0500 -+++ b/glib/glib/gutils.h 2013-08-04 18:11:14.000000000 -0500 -@@ -350,7 +350,7 @@ g_bit_storage (gulong number) - * On non-Windows platforms, expands to nothing. - */ - --#ifndef G_PLATFORM_WIN32 -+#ifndef G_OS_WIN32 - # define G_WIN32_DLLMAIN_FOR_DLL_NAME(static, dll_name) - #else - # define G_WIN32_DLLMAIN_FOR_DLL_NAME(static, dll_name) \ -@@ -378,7 +378,7 @@ DllMain (HINSTANCE hinstDLL, \ - - #endif /* !G_DISABLE_DEPRECATED */ - --#endif /* G_PLATFORM_WIN32 */ -+#endif /* G_OS_WIN32 */ - - G_END_DECLS - ---- a/glib/glib/gwin32.h 2013-08-04 20:21:21.081738300 -0500 -+++ b/glib/glib/gwin32.h 2013-08-04 18:11:14.000000000 -0500 -@@ -33,7 +33,7 @@ - - #include - --#ifdef G_PLATFORM_WIN32 -+#ifdef G_OS_WIN32 - - G_BEGIN_DECLS - -@@ -41,8 +41,6 @@ G_BEGIN_DECLS - #define MAXPATHLEN 1024 - #endif - --#ifdef G_OS_WIN32 -- - /* - * To get prototypes for the following POSIXish functions, you have to - * include the indicated non-POSIX headers. The functions are defined -@@ -68,7 +66,6 @@ G_BEGIN_DECLS - GLIB_AVAILABLE_IN_ALL - gint g_win32_ftruncate (gint f, - guint size); --#endif /* G_OS_WIN32 */ - - /* The MS setlocale uses locale names of the form "English_United - * States.1252" etc. We want the Unixish standard form "en", "zh_TW" -@@ -112,7 +109,7 @@ gchar* g_win32_locale_filename_ - - G_END_DECLS - --#endif /* G_PLATFORM_WIN32 */ -+#endif /* G_OS_WIN32 */ - - #ifdef G_OS_WIN32 - #ifdef _WIN64 ---- a/glib/glib/libcharset/localcharset.c 2013-08-04 20:21:21.095739100 -0500 -+++ b/glib/glib/libcharset/localcharset.c 2013-08-04 18:11:14.000000000 -0500 -@@ -46,10 +46,6 @@ - # include - # endif - # endif --# ifdef __CYGWIN__ --# define WIN32_LEAN_AND_MEAN --# include --# endif - #elif defined WIN32_NATIVE - # define WIN32_LEAN_AND_MEAN - # include -@@ -111,7 +107,7 @@ _g_locale_get_charset_aliases (void) - cp = charset_aliases; - if (cp == NULL) - { --#if !(defined VMS || defined WIN32_NATIVE || defined __CYGWIN__) -+#if !(defined VMS || defined WIN32_NATIVE) - FILE *fp; - const char *dir; - const char *base = "charset.alias"; -@@ -237,7 +233,7 @@ _g_locale_get_charset_aliases (void) - "DECKOREAN" "\0" "EUC-KR" "\0"; - # endif - --# if defined WIN32_NATIVE || defined __CYGWIN__ -+# if defined WIN32_NATIVE - /* To avoid the troubles of installing a separate file in the same - directory as the DLL and of retrieving the DLL's directory at - runtime, simply inline the aliases here. */ -@@ -292,53 +288,6 @@ _g_locale_charset_raw (void) - /* Most systems support nl_langinfo (CODESET) nowadays. */ - codeset = nl_langinfo (CODESET); - --# ifdef __CYGWIN__ -- /* Cygwin 2006 does not have locales. nl_langinfo (CODESET) always -- returns "US-ASCII". As long as this is not fixed, return the suffix -- of the locale name from the environment variables (if present) or -- the codepage as a number. */ -- if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0) -- { -- const char *locale; -- static char buf[2 + 10 + 1]; -- -- locale = getenv ("LC_ALL"); -- if (locale == NULL || locale[0] == '\0') -- { -- locale = getenv ("LC_CTYPE"); -- if (locale == NULL || locale[0] == '\0') -- locale = getenv ("LANG"); -- } -- if (locale != NULL && locale[0] != '\0') -- { -- /* If the locale name contains an encoding after the dot, return -- it. */ -- const char *dot = strchr (locale, '.'); -- -- if (dot != NULL) -- { -- const char *modifier; -- -- dot++; -- /* Look for the possible @... trailer and remove it, if any. */ -- modifier = strchr (dot, '@'); -- if (modifier == NULL) -- return dot; -- if (modifier - dot < sizeof (buf)) -- { -- memcpy (buf, dot, modifier - dot); -- buf [modifier - dot] = '\0'; -- return buf; -- } -- } -- } -- -- /* Woe32 has a function returning the locale's codepage as a number. */ -- sprintf (buf, "CP%u", GetACP ()); -- codeset = buf; -- } --# endif -- - # else - - /* On old systems which lack it, use setlocale or getenv. */ -diff --git a/glib/gtypes.h b/glib/gtypes.h -index c18e0bf..816685a 100644 ---- a/glib/glib/gtypes.h -+++ b/glib/glib/gtypes.h -@@ -462,7 +462,7 @@ G_END_DECLS - * properly get exported in Windows DLLs. - */ - #ifndef GLIB_VAR --# ifdef G_PLATFORM_WIN32 -+# ifdef G_OS_WIN32 - # ifdef GLIB_STATIC_COMPILATION - # define GLIB_VAR extern - # else /* !GLIB_STATIC_COMPILATION */ diff --git a/pkgs/by-name/pk/pkg-config/default.nix b/pkgs/by-name/pk/pkg-config/default.nix deleted file mode 100644 index 663f318..0000000 --- a/pkgs/by-name/pk/pkg-config/default.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ lib, stdenv, fetchurl, libiconv, vanilla ? false }: - -stdenv.mkDerivation rec { - pname = "pkg-config"; - version = "0.29.2"; - - src = fetchurl { - url = "https://pkg-config.freedesktop.org/releases/${pname}-${version}.tar.gz"; - sha256 = "14fmwzki1rlz8bs2p810lk6jqdxsk966d8drgsjmi54cd00rrikg"; - }; - - 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 - ++ 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 - ''; - - 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" - ]; - - 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"] - # Silence fprintf format errors when building for Windows. - ++ lib.optionals stdenv.hostPlatform.isWindows ["-Wno-error=format"] - ); - - enableParallelBuilding = true; - doCheck = true; - - postInstall = ''rm -f "$out"/bin/*-pkg-config''; # clean the duplicate file - - meta = with lib; { - description = "A tool that allows packages to find out information about other packages"; - homepage = "http://pkg-config.freedesktop.org/wiki/"; - platforms = platforms.all; - license = licenses.gpl2Plus; - mainProgram = "pkg-config"; - }; -} diff --git a/pkgs/by-name/pk/pkg-config/packages.nix b/pkgs/by-name/pk/pkg-config/packages.nix deleted file mode 100644 index b4f4847..0000000 --- a/pkgs/by-name/pk/pkg-config/packages.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - pkg-config-unwrapped = callPackage ./. { }; - - 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/pk/pkg-config/requires-private.patch b/pkgs/by-name/pk/pkg-config/requires-private.patch deleted file mode 100644 index d40aa98..0000000 --- a/pkgs/by-name/pk/pkg-config/requires-private.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/main.c b/main.c -index b61ca34..5a420c2 100644 ---- a/main.c -+++ b/main.c -@@ -602,10 +602,10 @@ main (int argc, char **argv) - else - disable_private_libs(); - -- /* honor Requires.private if any Cflags are requested or any static -+ /* honor Requires.private if any any static - * libs are requested */ - -- if (pkg_flags & CFLAGS_ANY || want_requires_private || want_exists || -+ if (want_requires_private || - (want_static_lib_list && (pkg_flags & LIBS_ANY))) - enable_requires_private(); - diff --git a/pkgs/by-name/po/potrace/default.nix b/pkgs/by-name/po/potrace/default.nix deleted file mode 100644 index b46c206..0000000 --- a/pkgs/by-name/po/potrace/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, stdenv, fetchurl, zlib }: - -stdenv.mkDerivation rec { - pname = "potrace"; - version = "1.16"; - - src = fetchurl { - url = "https://potrace.sourceforge.net/download/${version}/potrace-${version}.tar.gz"; - sha256 = "1k3sxgjqq0jnpk9xxys05q32sl5hbf1lbk1gmfxcrmpdgnhli0my"; - }; - - configureFlags = [ "--with-libpotrace" ]; - - buildInputs = [ zlib ]; - - enableParallelBuilding = true; - doCheck = true; - - meta = with lib; { - homepage = "https://potrace.sourceforge.net/"; - description = "A tool for tracing a bitmap, which means, transforming a bitmap into a smooth, scalable image"; - platforms = platforms.unix; - maintainers = [ maintainers.pSub ]; - license = licenses.gpl2; - }; -} diff --git a/pkgs/by-name/pr/procps-ng/default.nix b/pkgs/by-name/pr/procps-ng/default.nix deleted file mode 100644 index e4d245f..0000000 --- a/pkgs/by-name/pr/procps-ng/default.nix +++ /dev/null @@ -1,72 +0,0 @@ -{ 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 - - # 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) -}: - -stdenv.mkDerivation rec { - pname = "procps"; - version = "3.3.17"; - - # The project's releases are on SF, but git repo on gitlab. - src = fetchurl { - url = "mirror://sourceforge/procps-ng/procps-ng-${version}.tar.xz"; - 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="; - }) - ]; - - buildInputs = [ ncurses ] - ++ lib.optional withSystemd systemd; - nativeBuildInputs = [ pkg-config ]; - - 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" ] - ++ 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" - ]; - - installPhase = lib.optionalString watchOnly '' - install -m 0755 -D watch $out/bin/watch - install -m 0644 -D watch.1 $out/share/man/man1/watch.1 - ''; - - meta = with lib; { - homepage = "https://gitlab.com/procps-ng/procps"; - description = "Utilities that give information about processes using the /proc filesystem"; - priority = 11; # less than coreutils, which also provides "kill" and "uptime" - license = licenses.gpl2; - platforms = platforms.unix; - maintainers = [ maintainers.typetetris ]; - }; -} diff --git a/pkgs/by-name/pr/procps-ng/packages.nix b/pkgs/by-name/pr/procps-ng/packages.nix deleted file mode 100644 index 3716c19..0000000 --- a/pkgs/by-name/pr/procps-ng/packages.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - procps = - if stdenv.isLinux - then callPackage ./. { } - else unixtools.procps; -} diff --git a/pkgs/by-name/pr/procps-ng/v3-CVE-2023-4016.patch b/pkgs/by-name/pr/procps-ng/v3-CVE-2023-4016.patch deleted file mode 100644 index 2e260ea..0000000 --- a/pkgs/by-name/pr/procps-ng/v3-CVE-2023-4016.patch +++ /dev/null @@ -1,63 +0,0 @@ -This is https://gitlab.com/procps-ng/procps/-/commit/2c933ecba3bb1d3041a5a7a53a7b4078a6003413.diff -back-ported to procps 3.3.17. That commit changes xmalloc to xcalloc. This patch differs in two ways: - -* We modify it to change malloc (no x-) to xcalloc instead -* We pull in procps-4's definition of xcalloc - -Alternative considered: Also pull in commits that changed malloc to xmalloc and defined xcalloc. -This alternative is rejected because those commits contain many other unrelated changes. - -diff --git a/ps/parser.c b/ps/parser.c -index 4263a1fb..ee9a57d9 100644 ---- a/ps/parser.c -+++ b/ps/parser.c -@@ -36,6 +36,14 @@ - #include "common.h" - #include "c.h" - -+static void *xxcalloc(const size_t nelems, const size_t size) -+{ -+ void *ret = calloc(nelems, size); -+ if (!ret && size && nelems) -+ xerrx(EXIT_FAILURE, "cannot allocate %zu bytes", nelems*size); -+ return ret; -+} -+ - #define ARG_GNU 0 - #define ARG_END 1 - #define ARG_PGRP 2 -@@ -184,7 +192,6 @@ static const char *parse_list(const char *arg, const char *(*parse_fn)(char *, s - const char *err; /* error code that could or did happen */ - /*** prepare to operate ***/ - node = malloc(sizeof(selection_node)); -- node->u = malloc(strlen(arg)*sizeof(sel_union)); /* waste is insignificant */ - node->n = 0; - buf = strdup(arg); - /*** sanity check and count items ***/ -@@ -205,6 +212,7 @@ static const char *parse_list(const char *arg, const char *(*parse_fn)(char *, s - } while (*++walk); - if(need_item) goto parse_error; - node->n = items; -+ node->u = xxcalloc(items, sizeof(sel_union)); - /*** actually parse the list ***/ - walk = buf; - while(items--){ -@@ -1031,15 +1039,15 @@ static const char *parse_trailing_pids(void){ - thisarg = ps_argc - 1; /* we must be at the end now */ - - pidnode = malloc(sizeof(selection_node)); -- pidnode->u = malloc(i*sizeof(sel_union)); /* waste is insignificant */ -+ pidnode->u = xxcalloc(i, sizeof(sel_union)); /* waste is insignificant */ - pidnode->n = 0; - - grpnode = malloc(sizeof(selection_node)); -- grpnode->u = malloc(i*sizeof(sel_union)); /* waste is insignificant */ -+ grpnode->u = xxcalloc(i, sizeof(sel_union)); /* waste is insignificant */ - grpnode->n = 0; - - sidnode = malloc(sizeof(selection_node)); -- sidnode->u = malloc(i*sizeof(sel_union)); /* waste is insignificant */ -+ sidnode->u = xxcalloc(i, sizeof(sel_union)); /* waste is insignificant */ - sidnode->n = 0; - - while(i--){ diff --git a/pkgs/by-name/ps/psutils/default.nix b/pkgs/by-name/ps/psutils/default.nix deleted file mode 100644 index 93c7b9f..0000000 --- a/pkgs/by-name/ps/psutils/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib, stdenv, fetchurl, perl }: - -stdenv.mkDerivation rec { - pname = "psutils"; - version = "17"; - - src = fetchurl { - url = "http://knackered.knackered.org/angus/download/${pname}/${pname}-p${version}.tar.gz"; - hash = "sha256-OFPreVhLqPvieoFUJbZan38Vsljg1DoFqFa9t11YiuQ="; - }; - - postPatch = '' - sed -i 's/void main/int main/' *.c - ''; - - configurePhase = '' - sed -e 's,/usr/local/bin/perl,${perl}/bin/perl,' \ - -e "s,/usr/local,$out," \ - -e "s,CFLAGS =,CFLAGS = -std=c89," \ - Makefile.unix > Makefile - ''; - - makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; - - preInstall = '' - mkdir -p $out/bin $out/share/man/man1 - ''; - - meta = { - description = "Collection of useful utilities for manipulating PS documents"; - homepage = "http://knackered.knackered.org/angus/psutils/"; - license = lib.licenses.bsd3; - platforms = lib.platforms.unix; - }; -} diff --git a/pkgs/by-name/pu/publicsuffix-list/default.nix b/pkgs/by-name/pu/publicsuffix-list/default.nix deleted file mode 100644 index b2c69df..0000000 --- a/pkgs/by-name/pu/publicsuffix-list/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ lib, stdenvNoCC, fetchFromGitHub }: - -stdenvNoCC.mkDerivation { - pname = "publicsuffix-list"; - version = "0-unstable-2024-01-07"; - - src = fetchFromGitHub { - owner = "publicsuffix"; - repo = "list"; - rev = "5db9b65997e3c9230ac4353b01994c2ae9667cb9"; - hash = "sha256-kIJVS2ETAXQa1MMG8cjRUSFUn+jm9jBWH8go3L+lqHE="; - }; - - dontBuild = true; - - installPhase = '' - runHook preInstall - - install -Dm0444 public_suffix_list.dat tests/test_psl.txt -t $out/share/publicsuffix - - runHook postInstall - ''; - - meta = with lib; { - homepage = "https://publicsuffix.org/"; - description = "Cross-vendor public domain suffix database"; - platforms = platforms.all; - license = licenses.mpl20; - maintainers = [ maintainers.c0bw3b ]; - }; -} diff --git a/pkgs/by-name/py/python/catch_conflicts/README.md b/pkgs/by-name/py/python/catch_conflicts/README.md deleted file mode 100644 index d144b80..0000000 --- a/pkgs/by-name/py/python/catch_conflicts/README.md +++ /dev/null @@ -1,13 +0,0 @@ - - -catch_conflicts.py -================== - -The file catch_conflicts.py is in a subdirectory because, if it isn't, the -/nix/store/ directory is added to sys.path causing a delay when building. - -Pointers: - -- https://docs.python.org/3/library/sys.html#sys.path - -- https://github.com/NixOS/nixpkgs/pull/23600 diff --git a/pkgs/by-name/py/python/catch_conflicts/catch_conflicts.py b/pkgs/by-name/py/python/catch_conflicts/catch_conflicts.py deleted file mode 100644 index ad679d9..0000000 --- a/pkgs/by-name/py/python/catch_conflicts/catch_conflicts.py +++ /dev/null @@ -1,84 +0,0 @@ -from importlib.metadata import PathDistribution -from pathlib import Path -import collections -import sys -import os -from typing import Dict, List, Tuple -do_abort: bool = False -packages: Dict[str, Dict[str, List[Dict[str, List[str]]]]] = collections.defaultdict(list) -out_path: Path = Path(os.getenv("out")) -version: Tuple[int, int] = sys.version_info -site_packages_path: str = f'lib/python{version[0]}.{version[1]}/site-packages' - - -def get_name(dist: PathDistribution) -> str: - return dist.metadata['name'].lower().replace('-', '_') - - -# pretty print a package -def describe_package(dist: PathDistribution) -> str: - return f"{get_name(dist)} {dist.version} ({dist._path})" - - -# pretty print a list of parents (dependency chain) -def describe_parents(parents: List[str]) -> str: - if not parents: - return "" - return \ - f" dependency chain:\n " \ - + str(f"\n ...depending on: ".join(parents)) - - -# inserts an entry into 'packages' -def add_entry(name: str, version: str, store_path: str, parents: List[str]) -> None: - if name not in packages: - packages[name] = {} - if store_path not in packages[name]: - packages[name][store_path] = [] - packages[name][store_path].append(dict( - version=version, - parents=parents, - )) - - -# transitively discover python dependencies and store them in 'packages' -def find_packages(store_path: Path, site_packages_path: str, parents: List[str]) -> None: - site_packages: Path = (store_path / site_packages_path) - propagated_build_inputs: Path = (store_path / "nix-support/propagated-build-inputs") - - # add the current package to the list - if site_packages.exists(): - for dist_info in site_packages.glob("*.dist-info"): - dist: PathDistribution = PathDistribution(dist_info) - add_entry(get_name(dist), dist.version, store_path, parents) - - # recursively add dependencies - if propagated_build_inputs.exists(): - with open(propagated_build_inputs, "r") as f: - build_inputs: List[str] = f.read().strip().split(" ") - for build_input in build_inputs: - if build_input not in parents: - find_packages(Path(build_input), site_packages_path, parents + [build_input]) - - -find_packages(out_path, site_packages_path, [f"this derivation: {out_path}"]) - -# print all duplicates -for name, store_paths in packages.items(): - if len(store_paths) > 1: - do_abort = True - print("Found duplicated packages in closure for dependency '{}': ".format(name)) - for store_path, candidates in store_paths.items(): - for candidate in candidates: - print(f" {name} {candidate['version']} ({store_path})") - print(describe_parents(candidate['parents'])) - -# fail if duplicates were found -if do_abort: - print("") - print( - "Package duplicates found in closure, see above. Usually this " - "happens if two packages depend on different version " - "of the same dependency." - ) - sys.exit(1) diff --git a/pkgs/by-name/py/python/catch_conflicts/catch_conflicts_py2.py b/pkgs/by-name/py/python/catch_conflicts/catch_conflicts_py2.py deleted file mode 100644 index bb82900..0000000 --- a/pkgs/by-name/py/python/catch_conflicts/catch_conflicts_py2.py +++ /dev/null @@ -1,30 +0,0 @@ -import pkg_resources -import collections -import sys - -do_abort = False -packages = collections.defaultdict(list) - -for f in sys.path: - for req in pkg_resources.find_distributions(f): - if req not in packages[req.project_name]: - # some exceptions inside buildPythonPackage - if req.project_name in ['setuptools', 'pip', 'wheel']: - continue - packages[req.project_name].append(req) - - -for name, duplicates in packages.items(): - if len(duplicates) > 1: - do_abort = True - print("Found duplicated packages in closure for dependency '{}': ".format(name)) - for dup in duplicates: - print(" " + repr(dup)) - -if do_abort: - print("") - print( - 'Package duplicates found in closure, see above. Usually this ' - 'happens if two packages depend on different version ' - 'of the same dependency.') - sys.exit(1) diff --git a/pkgs/by-name/py/python/conda/default.nix b/pkgs/by-name/py/python/conda/default.nix deleted file mode 100644 index 77bda13..0000000 --- a/pkgs/by-name/py/python/conda/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ 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]) - ); -} diff --git a/pkgs/by-name/py/python/cpython/2.7/2.5.2-ctypes-util-find_library.patch b/pkgs/by-name/py/python/cpython/2.7/2.5.2-ctypes-util-find_library.patch deleted file mode 100644 index 22bc0f7..0000000 --- a/pkgs/by-name/py/python/cpython/2.7/2.5.2-ctypes-util-find_library.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- origsrc/Lib/ctypes/util.py 2007-09-14 15:05:26.000000000 -0500 -+++ src/Lib/ctypes/util.py 2008-11-25 17:54:47.319296200 -0600 -@@ -41,6 +41,20 @@ - continue - return None - -+elif sys.platform == "cygwin": -+ def find_library(name): -+ for libdir in ['/usr/lib', '/usr/local/lib']: -+ for libext in ['lib%s.dll.a' % name, 'lib%s.a' % name]: -+ implib = os.path.join(libdir, libext) -+ if not os.path.exists(implib): -+ continue -+ cmd = "dlltool -I " + implib + " 2>/dev/null" -+ res = os.popen(cmd).read().replace("\n","") -+ if not res: -+ continue -+ return res -+ return None -+ - elif os.name == "posix": - # Andreas Degert's find functions, using gcc, /sbin/ldconfig, objdump - import re, tempfile, errno -@@ -157,6 +173,10 @@ - print cdll.LoadLibrary("libcrypto.dylib") - print cdll.LoadLibrary("libSystem.dylib") - print cdll.LoadLibrary("System.framework/System") -+ elif sys.platform == "cygwin": -+ print cdll.LoadLibrary("cygbz2-1.dll") -+ print find_library("crypt") -+ print cdll.LoadLibrary("cygcrypt-0.dll") - else: - print cdll.LoadLibrary("libm.so") - print cdll.LoadLibrary("libcrypt.so") diff --git a/pkgs/by-name/py/python/cpython/2.7/2.5.2-tkinter-x11.patch b/pkgs/by-name/py/python/cpython/2.7/2.5.2-tkinter-x11.patch deleted file mode 100644 index 28b6daf..0000000 --- a/pkgs/by-name/py/python/cpython/2.7/2.5.2-tkinter-x11.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- origsrc/setup.py 2008-02-04 17:41:02.000000000 -0600 -+++ src/setup.py 2008-07-02 02:11:28.671875000 -0500 -@@ -1277,12 +1279,6 @@ - include_dirs.append('/usr/X11/include') - added_lib_dirs.append('/usr/X11/lib') - -- # If Cygwin, then verify that X is installed before proceeding -- if host_platform == 'cygwin': -- x11_inc = find_file('X11/Xlib.h', [], include_dirs) -- if x11_inc is None: -- return -- - # Check for BLT extension - if self.compiler.find_library_file(lib_dirs + added_lib_dirs, - 'BLT8.0'): -@@ -1300,9 +1296,8 @@ - if host_platform in ['aix3', 'aix4']: - libs.append('ld') - -- # Finally, link with the X11 libraries (not appropriate on cygwin) -- if host_platform != "cygwin": -- libs.append('X11') -+ # Finally, link with the X11 libraries -+ libs.append('X11') - - ext = Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'], - define_macros=[('WITH_APPINIT', 1)] + defs, diff --git a/pkgs/by-name/py/python/cpython/2.7/2.6.2-ssl-threads.patch b/pkgs/by-name/py/python/cpython/2.7/2.6.2-ssl-threads.patch deleted file mode 100644 index bef137e..0000000 --- a/pkgs/by-name/py/python/cpython/2.7/2.6.2-ssl-threads.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- origsrc/Modules/_ssl.c 2009-01-26 10:55:41.000000000 -0600 -+++ src/Modules/_ssl.c 2009-08-20 00:04:59.346816700 -0500 -@@ -15,6 +15,10 @@ - - #include "Python.h" - -+#ifdef __CYGWIN__ -+#undef WITH_THREAD -+#endif -+ - #ifdef WITH_THREAD - #include "pythread.h" - #define PySSL_BEGIN_ALLOW_THREADS { \ diff --git a/pkgs/by-name/py/python/cpython/2.7/2.6.5-FD_SETSIZE.patch b/pkgs/by-name/py/python/cpython/2.7/2.6.5-FD_SETSIZE.patch deleted file mode 100644 index d1dae8c..0000000 --- a/pkgs/by-name/py/python/cpython/2.7/2.6.5-FD_SETSIZE.patch +++ /dev/null @@ -1,41 +0,0 @@ ---- Python-2.6.5.orig/Modules/selectmodule.c 2012-02-02 22:35:21.835125000 -0500 -+++ Python-2.6.5/Modules/selectmodule.c 2012-02-02 22:41:41.210125000 -0500 -@@ -6,6 +6,21 @@ - >= 0. - */ - -+/* Windows #defines FD_SETSIZE to 64 if FD_SETSIZE isn't already defined. -+ 64 is too small (too many people have bumped into that limit). -+ Here we boost it. -+ -+ Cygwin also defines FD_SETSIZE to 64, so also increase the limit on -+ Cygwin. We must do this before sys/types.h is included, which otherwise -+ sets FD_SETSIZE to the default. -+ -+ Users who want even more than the boosted limit should #define -+ FD_SETSIZE higher before this; e.g., via compiler /D switch. -+*/ -+#if (defined(MS_WINDOWS) || defined(__CYGWIN__)) && !defined(FD_SETSIZE) -+#define FD_SETSIZE 512 -+#endif -+ - #include "Python.h" - #include - -@@ -16,16 +31,6 @@ - #undef HAVE_BROKEN_POLL - #endif - --/* Windows #defines FD_SETSIZE to 64 if FD_SETSIZE isn't already defined. -- 64 is too small (too many people have bumped into that limit). -- Here we boost it. -- Users who want even more than the boosted limit should #define -- FD_SETSIZE higher before this; e.g., via compiler /D switch. --*/ --#if defined(MS_WINDOWS) && !defined(FD_SETSIZE) --#define FD_SETSIZE 512 --#endif -- - #if defined(HAVE_POLL_H) - #include - #elif defined(HAVE_SYS_POLL_H) diff --git a/pkgs/by-name/py/python/cpython/2.7/2.6.5-export-PySignal_SetWakeupFd.patch b/pkgs/by-name/py/python/cpython/2.7/2.6.5-export-PySignal_SetWakeupFd.patch deleted file mode 100644 index ea69697..0000000 --- a/pkgs/by-name/py/python/cpython/2.7/2.6.5-export-PySignal_SetWakeupFd.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- origsrc/Include/pyerrors.h 2008-06-08 23:58:54.000000000 -0500 -+++ src/Include/pyerrors.h 2010-05-12 04:19:31.535297200 -0500 -@@ -232,7 +232,7 @@ PyAPI_FUNC(int) PyErr_CheckSignals(void) - PyAPI_FUNC(void) PyErr_SetInterrupt(void); - - /* In signalmodule.c */ --int PySignal_SetWakeupFd(int fd); -+PyAPI_FUNC(int) PySignal_SetWakeupFd(int fd); - - /* Support for adding program text to SyntaxErrors */ - PyAPI_FUNC(void) PyErr_SyntaxLocation(const char *, int); diff --git a/pkgs/by-name/py/python/cpython/2.7/2.6.5-ncurses-abi6.patch b/pkgs/by-name/py/python/cpython/2.7/2.6.5-ncurses-abi6.patch deleted file mode 100644 index e1cf5ad..0000000 --- a/pkgs/by-name/py/python/cpython/2.7/2.6.5-ncurses-abi6.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- origsrc/Include/py_curses.h 2009-09-06 16:23:05.000000000 -0500 -+++ src/Include/py_curses.h 2010-04-14 15:21:23.008971400 -0500 -@@ -17,6 +17,13 @@ - #define NCURSES_OPAQUE 0 - #endif /* __APPLE__ */ - -+#ifdef __CYGWIN__ -+/* the following define is necessary for Cygwin; without it, the -+ Cygwin-supplied ncurses.h sets NCURSES_OPAQUE to 1, and then Python -+ can't get at the WINDOW flags field. */ -+#define NCURSES_INTERNALS -+#endif /* __CYGWIN__ */ -+ - #ifdef __FreeBSD__ - /* - ** On FreeBSD, [n]curses.h and stdlib.h/wchar.h use different guards diff --git a/pkgs/by-name/py/python/cpython/2.7/2.7.3-dbm.patch b/pkgs/by-name/py/python/cpython/2.7/2.7.3-dbm.patch deleted file mode 100644 index bfaeb37..0000000 --- a/pkgs/by-name/py/python/cpython/2.7/2.7.3-dbm.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- origsrc/setup.py.orig 2012-11-27 10:20:47.442395900 -0500 -+++ src/setup.py 2012-11-27 10:53:15.583020900 -0500 -@@ -1141,7 +1141,7 @@ - - dbm_order = ['gdbm'] - # The standard Unix dbm module: -- if host_platform not in ['cygwin']: -+ if host_platform not in ['win32']: - config_args = [arg.strip("'") - for arg in sysconfig.get_config_var("CONFIG_ARGS").split()] - dbm_args = [arg for arg in config_args -@@ -1192,6 +1192,15 @@ - ], - libraries = gdbm_libs) - break -+ if find_file("ndbm.h", inc_dirs, []) is not None: -+ print("building dbm using gdbm") -+ dbmext = Extension( -+ 'dbm', ['dbmmodule.c'], -+ define_macros=[ -+ ('HAVE_NDBM_H', None), -+ ], -+ libraries = gdbm_libs) -+ break - elif cand == "bdb": - if db_incs is not None: - print "building dbm using bdb" diff --git a/pkgs/by-name/py/python/cpython/2.7/2.7.3-dylib.patch b/pkgs/by-name/py/python/cpython/2.7/2.7.3-dylib.patch deleted file mode 100644 index 6e1fc8b..0000000 --- a/pkgs/by-name/py/python/cpython/2.7/2.7.3-dylib.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- origsrc/Lib/distutils/unixccompiler.py.orig 2012-11-27 07:44:15.409993500 -0500 -+++ src/Lib/distutils/unixccompiler.py 2012-11-27 08:09:57.801770900 -0500 -@@ -141,6 +141,7 @@ - static_lib_format = shared_lib_format = dylib_lib_format = "lib%s%s" - if sys.platform == "cygwin": - exe_extension = ".exe" -+ dylib_lib_extension = ".dll.a" - - def preprocess(self, source, - output_file=None, macros=None, include_dirs=None, diff --git a/pkgs/by-name/py/python/cpython/2.7/2.7.3-getpath-exe-extension.patch b/pkgs/by-name/py/python/cpython/2.7/2.7.3-getpath-exe-extension.patch deleted file mode 100644 index 68f6921..0000000 --- a/pkgs/by-name/py/python/cpython/2.7/2.7.3-getpath-exe-extension.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- origsrc/Modules/getpath.c.orig 2012-11-27 12:07:56.098645900 -0500 -+++ src/Modules/getpath.c 2012-11-27 12:10:11.254895900 -0500 -@@ -436,6 +436,28 @@ - if (isxfile(progpath)) - break; - -+#ifdef __CYGWIN__ -+ /* -+ * Cygwin automatically removes the ".exe" extension from argv[0] -+ * to make programs feel like they are in a more Unix-like -+ * environment. Unfortunately, this can make it problemmatic for -+ * Cygwin to distinguish between a directory and an executable with -+ * the same name excluding the ".exe" extension. For example, the -+ * Cygwin Python build directory has a "Python" directory and a -+ * "python.exe" executable. This causes isxfile() to erroneously -+ * return false. If isdir() returns true and there is enough space -+ * to append the ".exe" extension, then we try again with the -+ * extension appended. -+ */ -+#define EXE ".exe" -+ if (isdir(progpath) && strlen(progpath) + strlen(EXE) <= MAXPATHLEN) -+ { -+ strcat(progpath, EXE); -+ if (isxfile(progpath)) -+ break; -+ } -+#endif /* __CYGWIN__ */ -+ - if (!delim) { - progpath[0] = '\0'; - break; diff --git a/pkgs/by-name/py/python/cpython/2.7/2.7.3-no-libm.patch b/pkgs/by-name/py/python/cpython/2.7/2.7.3-no-libm.patch deleted file mode 100644 index 55281db..0000000 --- a/pkgs/by-name/py/python/cpython/2.7/2.7.3-no-libm.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- origsrc/setup.py.orig 2012-11-27 09:28:34.051770900 -0500 -+++ src/setup.py 2012-11-27 09:28:47.239270900 -0500 -@@ -470,7 +470,7 @@ - - # Check for MacOS X, which doesn't need libm.a at all - math_libs = ['m'] -- if host_platform in ['darwin', 'beos']: -+ if host_platform in ['darwin', 'beos', 'cygwin']: - math_libs = [] - - # XXX Omitted modules: gl, pure, dl, SGI-specific modules diff --git a/pkgs/by-name/py/python/cpython/2.7/atomic_pyc.patch b/pkgs/by-name/py/python/cpython/2.7/atomic_pyc.patch deleted file mode 100644 index 06d3718..0000000 --- a/pkgs/by-name/py/python/cpython/2.7/atomic_pyc.patch +++ /dev/null @@ -1,116 +0,0 @@ -diff --git a/Lib/py_compile.py b/Lib/py_compile.py -index 978da73d74..3559eb95ca 100644 ---- a/Lib/py_compile.py -+++ b/Lib/py_compile.py -@@ -120,16 +120,27 @@ def compile(file, cfile=None, dfile=None, doraise=False): - return - if cfile is None: - cfile = file + (__debug__ and 'c' or 'o') -- with open(cfile, 'wb') as fc: -- fc.write('\0\0\0\0') -- if "DETERMINISTIC_BUILD" in os.environ: -+ # Atomically write the pyc/pyo file. Issue #13146. -+ # id() is used to generate a pseudo-random filename. -+ path_tmp = '{}.{}'.format(cfile, id(cfile)) -+ try: -+ with open(path_tmp, 'wb') as fc: - fc.write('\0\0\0\0') -- else: -- wr_long(fc, timestamp) -- marshal.dump(codeobject, fc) -- fc.flush() -- fc.seek(0, 0) -- fc.write(MAGIC) -+ if "DETERMINISTIC_BUILD" in os.environ: -+ fc.write('\0\0\0\0') -+ else: -+ wr_long(fc, timestamp) -+ marshal.dump(codeobject, fc) -+ fc.flush() -+ fc.seek(0, 0) -+ fc.write(MAGIC) -+ os.rename(path_tmp, cfile) -+ except OSError: -+ try: -+ os.unlink(path_tmp) -+ except OSError: -+ pass -+ raise - - def main(args=None): - """Compile several source files. -diff --git a/Python/import.c b/Python/import.c -index 1e31d79279..f78a1efcf0 100644 ---- a/Python/import.c -+++ b/Python/import.c -@@ -951,6 +951,8 @@ static void - write_compiled_module(PyCodeObject *co, char *cpathname, struct stat *srcstat, time_t mtime) - { - FILE *fp; -+ size_t cpathname_len; -+ char *cpathname_tmp; - #ifdef MS_WINDOWS /* since Windows uses different permissions */ - mode_t mode = srcstat->st_mode & ~S_IEXEC; - /* Issue #6074: We ensure user write access, so we can delete it later -@@ -963,11 +965,28 @@ write_compiled_module(PyCodeObject *co, char *cpathname, struct stat *srcstat, t - mode_t mode = srcstat->st_mode & ~S_IXUSR & ~S_IXGRP & ~S_IXOTH; - #endif - -+#ifdef MS_WINDOWS - fp = open_exclusive(cpathname, mode); -+#else -+ /* Under POSIX, we first write to a tmp file and then take advantage -+ of atomic renaming. */ -+ cpathname_len = strlen(cpathname); -+ cpathname_tmp = PyMem_MALLOC(cpathname_len + 5); -+ if (cpathname_tmp == NULL) { -+ PyErr_Clear(); -+ return; -+ } -+ memcpy(cpathname_tmp, cpathname, cpathname_len); -+ memcpy(cpathname_tmp + cpathname_len, ".tmp", 5); -+ fp = open_exclusive(cpathname_tmp, mode); -+#endif - if (fp == NULL) { - if (Py_VerboseFlag) - PySys_WriteStderr( - "# can't create %s\n", cpathname); -+#ifndef MS_WINDOWS -+ PyMem_FREE(cpathname_tmp); -+#endif - return; - } - PyMarshal_WriteLongToFile(pyc_magic, fp, Py_MARSHAL_VERSION); -@@ -979,7 +998,12 @@ write_compiled_module(PyCodeObject *co, char *cpathname, struct stat *srcstat, t - PySys_WriteStderr("# can't write %s\n", cpathname); - /* Don't keep partial file */ - fclose(fp); -+#ifdef MS_WINDOWS - (void) unlink(cpathname); -+#else -+ (void) unlink(cpathname_tmp); -+ PyMem_FREE(cpathname_tmp); -+#endif - return; - } - /* Now write the true mtime (as a 32-bit field) */ -@@ -989,6 +1013,19 @@ write_compiled_module(PyCodeObject *co, char *cpathname, struct stat *srcstat, t - PyMarshal_WriteLongToFile((long)mtime, fp, Py_MARSHAL_VERSION); - fflush(fp); - } -+ /* Under POSIX, do an atomic rename */ -+#ifndef MS_WINDOWS -+ if (rename(cpathname_tmp, cpathname)) { -+ if (Py_VerboseFlag) -+ PySys_WriteStderr("# can't write %s\n", cpathname); -+ /* Don't keep tmp file */ -+ fclose(fp); -+ (void) unlink(cpathname_tmp); -+ PyMem_FREE(cpathname_tmp); -+ return; -+ } -+ PyMem_FREE(cpathname_tmp); -+#endif - fclose(fp); - if (Py_VerboseFlag) - PySys_WriteStderr("# wrote %s\n", cpathname); diff --git a/pkgs/by-name/py/python/cpython/2.7/cross-compile.patch b/pkgs/by-name/py/python/cpython/2.7/cross-compile.patch deleted file mode 100644 index c83b564..0000000 --- a/pkgs/by-name/py/python/cpython/2.7/cross-compile.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- ./setup.py.orig 2018-04-29 15:47:33.000000000 -0700 -+++ ./setup.py 2018-11-11 09:41:58.097682221 -0800 -@@ -458,8 +458,6 @@ - if not cross_compiling: - add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') - add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') -- if cross_compiling: -- self.add_gcc_paths() - self.add_multiarch_paths() - - # Add paths specified in the environment variables LDFLAGS and -@@ -517,7 +515,10 @@ - # be assumed that no additional -I,-L directives are needed. - inc_dirs = self.compiler.include_dirs[:] - lib_dirs = self.compiler.library_dirs[:] -- if not cross_compiling: -+ if cross_compiling: -+ inc_dirs = [] -+ lib_dirs = [] -+ else: - for d in ( - '/usr/include', - ): -@@ -582,6 +584,8 @@ class PyBuildExt(build_ext): - # Some modules that are normally always on: - #exts.append( Extension('_weakref', ['_weakref.c']) ) - -+ self.compiler.library_dirs = lib_dirs + [ '.' ] -+ - # array objects - exts.append( Extension('array', ['arraymodule.c']) ) - diff --git a/pkgs/by-name/py/python/cpython/2.7/default.nix b/pkgs/by-name/py/python/cpython/2.7/default.nix deleted file mode 100644 index dda254f..0000000 --- a/pkgs/by-name/py/python/cpython/2.7/default.nix +++ /dev/null @@ -1,364 +0,0 @@ -{ 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 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 -> (!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."; - -let - buildPackages = pkgsBuildHost; - inherit (passthru) pythonOnBuildForHost; - - 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; - }; - - version = with sourceVersion; "${major}.${minor}.${patch}${suffix}"; - - # ActiveState is a fork of cpython that includes fixes for security - # issues after its EOL - src = fetchFromGitHub { - owner = "ActiveState"; - repo = "cpython"; - rev = "v${version}"; - inherit hash; - }; - - hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false); - patches = - [ # Look in C_INCLUDE_PATH and LIBRARY_PATH for stuff. - ./search-path.patch - - # Python recompiles a Python if the mtime stored *in* the - # pyc/pyo file differs from the mtime of the source file. This - # doesn't work in Nix because Nix changes the mtime of files in - # the Nix store to 1. So treat that as a special case. - ./nix-store-mtime.patch - - # patch python to put zero timestamp into pyc - # if DETERMINISTIC_BUILD env var is set - ./deterministic-build.patch - - # Fix python bug #27177 (https://bugs.python.org/issue27177) - # The issue is that `match.group` only recognizes python integers - # instead of everything that has `__index__`. - # This bug was fixed upstream, but not backported to 2.7 - (fetchpatch { - name = "re_match_index.patch"; - url = "https://bugs.python.org/file43084/re_match_index.patch"; - sha256 = "0l9rw6r5r90iybdkp3hhl2pf0h0s1izc68h5d3ywrm92pq32wz57"; - }) - - # Fix race-condition during pyc creation. Has a slight backwards - # incompatible effect: pyc symlinks will now be overridden - # (https://bugs.python.org/issue17222). Included in python >= 3.4, - # backported in debian since 2013. - # https://bugs.python.org/issue13146 - ./atomic_pyc.patch - - # Backport from CPython 3.8 of a good list of tests to run for PGO. - ./profile-task.patch - - # The workaround is for unittests on Win64, which we don't support. - # It does break aarch64-darwin, which we do support. See: - # * https://bugs.python.org/issue35523 - # * https://github.com/python/cpython/commit/e6b247c8e524 - ../3.7/no-win64-workaround.patch - - # fix openssl detection by reverting irrelevant change for us, to enable hashlib which is required by pip - (fetchpatch { - url = "https://github.com/ActiveState/cpython/pull/35/commits/20ea5b46aaf1e7bdf9d6905ba8bece2cc73b05b0.patch"; - revert = true; - hash = "sha256-Lp5fGlcfJJ6p6vKmcLckJiAA2AZz4prjFE0aMEJxotw="; - }) - ] ++ lib.optionals (x11Support && stdenv.isDarwin) [ - ./use-correct-tcl-tk-on-darwin.patch - - ] ++ lib.optionals stdenv.isDarwin [ - # Fix darwin build https://bugs.python.org/issue34027 - ../3.7/darwin-libutil.patch - - ] ++ 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 - # 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). - ./no-ldconfig.patch - - # Fix ctypes.util.find_library with gcc10. - ./find_library-gcc10.patch - - ] ++ 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 - ./2.6.5-export-PySignal_SetWakeupFd.patch - ./2.6.5-FD_SETSIZE.patch - ./2.6.5-ncurses-abi6.patch - ./2.7.3-dbm.patch - ./2.7.3-dylib.patch - ./2.7.3-getpath-exe-extension.patch - ./2.7.3-no-libm.patch - ] ++ lib.optionals hasDistutilsCxxPatch [ - - # Patch from http://bugs.python.org/issue1222585 adapted to work with - # `patch -p1' and with a last hunk removed - # 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. - ./python-2.7-distutils-C++.patch - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - ./cross-compile.patch - ]; - - 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) '' - for i in Lib/plat-*/regen; do - substituteInPlace $i --replace /usr/include/ ${stdenv.cc.libc}/include/ - done - '' + 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" - ] - # 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"; - - 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.isDarwin && configd != null) configd; - nativeBuildInputs = - [ autoreconfHook ] - ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) - [ buildPackages.stdenv.cc buildPackages.python ]; - - mkPaths = paths: { - C_INCLUDE_PATH = lib.makeSearchPathOutput "dev" "include" paths; - LIBRARY_PATH = lib.makeLibraryPath paths; - }; - - # Python 2.7 needs this - 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 ({ - pname = "python"; - inherit version; - - 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" - + 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'" - ''; - - postInstall = - '' - # 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/regrtest.py* ]]; then - rm -rf "$item" - else - echo $item - fi - done - touch $out/lib/${libPrefix}/test/__init__.py - ln -s $out/lib/${libPrefix}/pdb.py $out/bin/pdb - ln -s $out/lib/${libPrefix}/pdb.py $out/bin/pdb${sourceVersion.major}.${sourceVersion.minor} - ln -s $out/share/man/man1/{python2.7.1.gz,python.1.gz} - - rm "$out"/lib/python*/plat-*/regen # refers to glibc.dev - - # 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 '' - # Determinism: deterministic bytecode - # First we delete all old bytecode. - find $out -name "*.pyc" -delete - '' + 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 '' - 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} - ''; - - enableParallelBuilding = true; - - doCheck = false; # expensive, and fails - - meta = { - homepage = "http://python.org"; - description = "A high-level dynamically-typed programming language"; - longDescription = '' - Python is a remarkably powerful dynamic programming language that - is used in a wide variety of application domains. Some of its key - distinguishing features include: clear, readable syntax; strong - introspection capabilities; intuitive object orientation; natural - expression of procedural code; full modularity, supporting - hierarchical packages; exception-based error handling; and very - high level dynamic data types. - ''; - license = lib.licenses.psfl; - platforms = lib.platforms.all; - maintainers = with lib.maintainers; [ fridh ]; - knownVulnerabilities = [ - "Python 2.7 has reached its end of life after 2020-01-01. See https://www.python.org/doc/sunset-python-2/." - # Quote: That means that we will not improve it anymore after that day, - # even if someone finds a security problem in it. You should upgrade to - # Python 3 as soon as you can. [..] So, in 2008, we announced that we - # would sunset Python 2 in 2015, and asked people to upgrade before - # then. Some did, but many did not. So, in 2014, we extended that - # sunset till 2020. - ]; - }; - } // crossCompileEnv) diff --git a/pkgs/by-name/py/python/cpython/2.7/deterministic-build.patch b/pkgs/by-name/py/python/cpython/2.7/deterministic-build.patch deleted file mode 100644 index 98d9d33..0000000 --- a/pkgs/by-name/py/python/cpython/2.7/deterministic-build.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff -ur orig/Lib/py_compile.py new/Lib/py_compile.py ---- orig/Lib/py_compile.py -+++ new/Lib/py_compile.py -@@ -122,7 +122,10 @@ - cfile = file + (__debug__ and 'c' or 'o') - with open(cfile, 'wb') as fc: - fc.write('\0\0\0\0') -- wr_long(fc, timestamp) -+ if "DETERMINISTIC_BUILD" in os.environ: -+ fc.write('\0\0\0\0') -+ else: -+ wr_long(fc, timestamp) - marshal.dump(codeobject, fc) - fc.flush() - fc.seek(0, 0) -diff -ur orig/Python/import.c new/Python/import.c ---- orig/Python/import.c -+++ new/Python/import.c -@@ -939,10 +939,12 @@ - return; - } - /* Now write the true mtime (as a 32-bit field) */ -- fseek(fp, 4L, 0); -- assert(mtime <= 0xFFFFFFFF); -- PyMarshal_WriteLongToFile((long)mtime, fp, Py_MARSHAL_VERSION); -- fflush(fp); -+ if (Py_GETENV("DETERMINISTIC_BUILD") == NULL) { -+ fseek(fp, 4L, 0); -+ assert(mtime <= 0xFFFFFFFF); -+ PyMarshal_WriteLongToFile((long)mtime, fp, Py_MARSHAL_VERSION); -+ fflush(fp); -+ } - fclose(fp); - if (Py_VerboseFlag) - PySys_WriteStderr("# wrote %s\n", cpathname); - diff --git a/pkgs/by-name/py/python/cpython/2.7/find_library-gcc10.patch b/pkgs/by-name/py/python/cpython/2.7/find_library-gcc10.patch deleted file mode 100644 index 4627baf..0000000 --- a/pkgs/by-name/py/python/cpython/2.7/find_library-gcc10.patch +++ /dev/null @@ -1,79 +0,0 @@ -Backport https://github.com/python/cpython/commit/82df3b3071bb003247c33eac4670775e9883c994 -and https://github.com/python/cpython/commit/27ac19cca2c639caaf6fedf3632fe6beb265f24f - -Fixes the check phase of python2Packages.cffi. - ---- a/Lib/ctypes/util.py -+++ b/Lib/ctypes/util.py -@@ -87,6 +87,12 @@ elif os.name == "posix": - # Andreas Degert's find functions, using gcc, /sbin/ldconfig, objdump - import re, tempfile, errno - -+ def _is_elf(filename): -+ "Return True if the given file is an ELF file" -+ elf_header = b'\x7fELF' -+ with open(filename, 'rb') as thefile: -+ return thefile.read(4) == elf_header -+ - def _findLib_gcc(name): - # Run GCC's linker with the -t (aka --trace) option and examine the - # library name it prints out. The GCC command will fail because we -@@ -110,10 +116,17 @@ elif os.name == "posix": - # the normal behaviour of GCC if linking fails - if e.errno != errno.ENOENT: - raise -- res = re.search(expr, trace) -+ res = re.findall(expr, trace) - if not res: - return None -- return res.group(0) -+ -+ for file in res: -+ # Check if the given file is an elf file: gcc can report -+ # some files that are linker scripts and not actual -+ # shared objects. See bpo-41976 for more details -+ if not _is_elf(file): -+ continue -+ return file - - - if sys.platform == "sunos5": -@@ -237,8 +250,37 @@ elif os.name == "posix": - def _findSoname_ldconfig(name): - return None - -+ def _findLib_ld(name): -+ # See issue #9998 for why this is needed -+ expr = r'[^\(\)\s]*lib%s\.[^\(\)\s]*' % re.escape(name) -+ cmd = ['ld', '-t'] -+ libpath = os.environ.get('LD_LIBRARY_PATH') -+ if libpath: -+ for d in libpath.split(':'): -+ cmd.extend(['-L', d]) -+ cmd.extend(['-o', os.devnull, '-l%s' % name]) -+ result = None -+ try: -+ p = subprocess.Popen(cmd, stdout=subprocess.PIPE, -+ stderr=subprocess.PIPE, -+ universal_newlines=True) -+ out, _ = p.communicate() -+ res = re.findall(expr, out) -+ for file in res: -+ # Check if the given file is an elf file: gcc can report -+ # some files that are linker scripts and not actual -+ # shared objects. See bpo-41976 for more details -+ if not _is_elf(file): -+ continue -+ return file -+ except Exception: -+ pass # result will be None -+ return result -+ - def find_library(name): -- return _findSoname_ldconfig(name) or _get_soname(_findLib_gcc(name)) -+ # See issue #9998 -+ return _findSoname_ldconfig(name) or \ -+ _get_soname(_findLib_gcc(name)) or _get_soname(_findLib_ld(name)) - - ################################################################ - # test code diff --git a/pkgs/by-name/py/python/cpython/2.7/nix-store-mtime.patch b/pkgs/by-name/py/python/cpython/2.7/nix-store-mtime.patch deleted file mode 100644 index 83f3fea..0000000 --- a/pkgs/by-name/py/python/cpython/2.7/nix-store-mtime.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ru -x '*~' Python-2.7.1-orig/Python/import.c Python-2.7.1/Python/import.c ---- Python-2.7.1-orig/Python/import.c 2010-05-20 20:37:55.000000000 +0200 -+++ Python-2.7.1/Python/import.c 2011-01-04 15:55:11.000000000 +0100 -@@ -751,7 +751,7 @@ - return NULL; - } - pyc_mtime = PyMarshal_ReadLongFromFile(fp); -- if (pyc_mtime != mtime) { -+ if (pyc_mtime != mtime && mtime != 1) { - if (Py_VerboseFlag) - PySys_WriteStderr("# %s has bad mtime\n", cpathname); - fclose(fp); diff --git a/pkgs/by-name/py/python/cpython/2.7/no-ldconfig.patch b/pkgs/by-name/py/python/cpython/2.7/no-ldconfig.patch deleted file mode 100644 index 2a6b2a2..0000000 --- a/pkgs/by-name/py/python/cpython/2.7/no-ldconfig.patch +++ /dev/null @@ -1,117 +0,0 @@ -From 6b0f329a9f37110020ca02b35c8125391ef282b7 Mon Sep 17 00:00:00 2001 -From: Frederik Rietdijk -Date: Sat, 24 Dec 2016 15:56:10 +0100 -Subject: [PATCH] no ldconfig - ---- - Lib/ctypes/util.py | 35 +---------------------------------- - Lib/uuid.py | 47 ----------------------------------------------- - 2 files changed, 1 insertion(+), 81 deletions(-) - -diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py -index ab10ec5..f253e34 100644 ---- a/Lib/ctypes/util.py -+++ b/Lib/ctypes/util.py -@@ -235,40 +235,7 @@ elif os.name == "posix": - else: - - def _findSoname_ldconfig(name): -- import struct -- if struct.calcsize('l') == 4: -- machine = os.uname()[4] + '-32' -- else: -- machine = os.uname()[4] + '-64' -- mach_map = { -- 'x86_64-64': 'libc6,x86-64', -- 'ppc64-64': 'libc6,64bit', -- 'sparc64-64': 'libc6,64bit', -- 's390x-64': 'libc6,64bit', -- 'ia64-64': 'libc6,IA-64', -- } -- abi_type = mach_map.get(machine, 'libc6') -- -- # XXX assuming GLIBC's ldconfig (with option -p) -- expr = r'\s+(lib%s\.[^\s]+)\s+\(%s' % (re.escape(name), abi_type) -- -- env = dict(os.environ) -- env['LC_ALL'] = 'C' -- env['LANG'] = 'C' -- null = open(os.devnull, 'wb') -- try: -- with null: -- p = subprocess.Popen(['/sbin/ldconfig', '-p'], -- stderr=null, -- stdout=subprocess.PIPE, -- env=env) -- except OSError: # E.g. command not found -- return None -- [data, _] = p.communicate() -- res = re.search(expr, data) -- if not res: -- return None -- return res.group(1) -+ return None - - def find_library(name): - return _findSoname_ldconfig(name) or _get_soname(_findLib_gcc(name)) -diff --git a/Lib/uuid.py b/Lib/uuid.py -index 7432032..05eeee5 100644 ---- a/Lib/uuid.py -+++ b/Lib/uuid.py -@@ -441,53 +441,6 @@ def _netbios_getnode(): - - # If ctypes is available, use it to find system routines for UUID generation. - _uuid_generate_time = _UuidCreate = None --try: -- import ctypes, ctypes.util -- import sys -- -- # The uuid_generate_* routines are provided by libuuid on at least -- # Linux and FreeBSD, and provided by libc on Mac OS X. -- _libnames = ['uuid'] -- if not sys.platform.startswith('win'): -- _libnames.append('c') -- for libname in _libnames: -- try: -- lib = ctypes.CDLL(ctypes.util.find_library(libname)) -- except: -- continue -- if hasattr(lib, 'uuid_generate_time'): -- _uuid_generate_time = lib.uuid_generate_time -- break -- del _libnames -- -- # The uuid_generate_* functions are broken on MacOS X 10.5, as noted -- # in issue #8621 the function generates the same sequence of values -- # in the parent process and all children created using fork (unless -- # those children use exec as well). -- # -- # Assume that the uuid_generate functions are broken from 10.5 onward, -- # the test can be adjusted when a later version is fixed. -- if sys.platform == 'darwin': -- import os -- if int(os.uname()[2].split('.')[0]) >= 9: -- _uuid_generate_time = None -- -- # On Windows prior to 2000, UuidCreate gives a UUID containing the -- # hardware address. On Windows 2000 and later, UuidCreate makes a -- # random UUID and UuidCreateSequential gives a UUID containing the -- # hardware address. These routines are provided by the RPC runtime. -- # NOTE: at least on Tim's WinXP Pro SP2 desktop box, while the last -- # 6 bytes returned by UuidCreateSequential are fixed, they don't appear -- # to bear any relationship to the MAC address of any network device -- # on the box. -- try: -- lib = ctypes.windll.rpcrt4 -- except: -- lib = None -- _UuidCreate = getattr(lib, 'UuidCreateSequential', -- getattr(lib, 'UuidCreate', None)) --except: -- pass - - def _unixdll_getnode(): - """Get the hardware address on Unix using ctypes.""" --- -2.11.0 - diff --git a/pkgs/by-name/py/python/cpython/2.7/profile-task.patch b/pkgs/by-name/py/python/cpython/2.7/profile-task.patch deleted file mode 100644 index 9c08565..0000000 --- a/pkgs/by-name/py/python/cpython/2.7/profile-task.patch +++ /dev/null @@ -1,21 +0,0 @@ -Backport from CPython 3.8 of a good list of tests to run for PGO. - -Upstream commit: - https://github.com/python/cpython/commit/4e16a4a31 - -Upstream discussion: - https://bugs.python.org/issue36044 - -diff --git a/Makefile.pre.in b/Makefile.pre.in -index 00fdd21ce..713dc1e53 100644 ---- a/Makefile.pre.in -+++ b/Makefile.pre.in -@@ -259,7 +259,7 @@ TCLTK_LIBS= - # The task to run while instrumented when building the profile-opt target. - # We exclude unittests with -x that take a rediculious amount of time to - # run in the instrumented training build or do not provide much value. --PROFILE_TASK=-m test.regrtest --pgo -x test_asyncore test_gdb test_multiprocessing test_subprocess -+PROFILE_TASK=-m test.regrtest --pgo test_array test_base64 test_binascii test_binop test_bisect test_bytes test_bz2 test_cmath test_codecs test_collections test_complex test_dataclasses test_datetime test_decimal test_difflib test_embed test_float test_fstring test_functools test_generators test_hashlib test_heapq test_int test_itertools test_json test_long test_lzma test_math test_memoryview test_operator test_ordered_dict test_pickle test_pprint test_re test_set test_sqlite test_statistics test_struct test_tabnanny test_time test_unicode test_xml_etree test_xml_etree_c - - # report files for gcov / lcov coverage report - COVERAGE_INFO= $(abs_builddir)/coverage.info diff --git a/pkgs/by-name/py/python/cpython/2.7/python-2.7-distutils-C++.patch b/pkgs/by-name/py/python/cpython/2.7/python-2.7-distutils-C++.patch deleted file mode 100644 index 78d9272..0000000 --- a/pkgs/by-name/py/python/cpython/2.7/python-2.7-distutils-C++.patch +++ /dev/null @@ -1,259 +0,0 @@ ---- a/Lib/distutils/cygwinccompiler.py -+++ b/Lib/distutils/cygwinccompiler.py -@@ -117,8 +117,10 @@ - # dllwrap 2.10.90 is buggy - if self.ld_version >= "2.10.90": - self.linker_dll = "gcc" -+ self.linker_dll_cxx = "g++" - else: - self.linker_dll = "dllwrap" -+ self.linker_dll_cxx = "dllwrap" - - # ld_version >= "2.13" support -shared so use it instead of - # -mdll -static -@@ -132,9 +134,13 @@ - self.set_executables(compiler='gcc -mcygwin -O -Wall', - compiler_so='gcc -mcygwin -mdll -O -Wall', - compiler_cxx='g++ -mcygwin -O -Wall', -+ compiler_so_cxx='g++ -mcygwin -mdll -O -Wall', - linker_exe='gcc -mcygwin', - linker_so=('%s -mcygwin %s' % -- (self.linker_dll, shared_option))) -+ (self.linker_dll, shared_option)), -+ linker_exe_cxx='g++ -mcygwin', -+ linker_so_cxx=('%s -mcygwin %s' % -+ (self.linker_dll_cxx, shared_option))) - - # cygwin and mingw32 need different sets of libraries - if self.gcc_version == "2.91.57": -@@ -160,8 +166,12 @@ - raise CompileError, msg - else: # for other files use the C-compiler - try: -- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + -- extra_postargs) -+ if self.detect_language(src) == 'c++': -+ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] + -+ extra_postargs) -+ else: -+ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + -+ extra_postargs) - except DistutilsExecError, msg: - raise CompileError, msg - -@@ -327,9 +337,14 @@ - self.set_executables(compiler='gcc%s -O -Wall' % no_cygwin, - compiler_so='gcc%s -mdll -O -Wall' % no_cygwin, - compiler_cxx='g++%s -O -Wall' % no_cygwin, -+ compiler_so_cxx='g++%s -mdll -O -Wall' % no_cygwin, - linker_exe='gcc%s' % no_cygwin, - linker_so='%s%s %s %s' - % (self.linker_dll, no_cygwin, -+ shared_option, entry_point), -+ linker_exe_cxx='g++%s' % no_cygwin, -+ linker_so_cxx='%s%s %s %s' -+ % (self.linker_dll_cxx, no_cygwin, - shared_option, entry_point)) - # Maybe we should also append -mthreads, but then the finished - # dlls need another dll (mingwm10.dll see Mingw32 docs) ---- a/Lib/distutils/emxccompiler.py -+++ b/Lib/distutils/emxccompiler.py -@@ -65,8 +65,12 @@ - # XXX optimization, warnings etc. should be customizable. - self.set_executables(compiler='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall', - compiler_so='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall', -+ compiler_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall', -+ compiler_so_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall', - linker_exe='gcc -Zomf -Zmt -Zcrtdll', -- linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll') -+ linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll', -+ linker_exe_cxx='g++ -Zomf -Zmt -Zcrtdll', -+ linker_so_cxx='g++ -Zomf -Zmt -Zcrtdll -Zdll') - - # want the gcc library statically linked (so that we don't have - # to distribute a version dependent on the compiler we have) -@@ -83,8 +87,12 @@ - raise CompileError, msg - else: # for other files use the C-compiler - try: -- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + -- extra_postargs) -+ if self.detect_language(src) == 'c++': -+ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] + -+ extra_postargs) -+ else: -+ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + -+ extra_postargs) - except DistutilsExecError, msg: - raise CompileError, msg - ---- a/Lib/distutils/sysconfig.py -+++ b/Lib/distutils/sysconfig.py -@@ -170,10 +170,12 @@ - _osx_support.customize_compiler(_config_vars) - _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True' - -- (cc, cxx, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \ -- get_config_vars('CC', 'CXX', 'CFLAGS', -- 'CCSHARED', 'LDSHARED', 'SO', 'AR', -- 'ARFLAGS') -+ (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \ -+ get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED', -+ 'SO', 'AR', 'ARFLAGS') -+ -+ cflags = '' -+ cxxflags = '' - - if 'CC' in os.environ: - newcc = os.environ['CC'] -@@ -188,19 +190,27 @@ - cxx = os.environ['CXX'] - if 'LDSHARED' in os.environ: - ldshared = os.environ['LDSHARED'] -+ if 'LDCXXSHARED' in os.environ: -+ ldcxxshared = os.environ['LDCXXSHARED'] - if 'CPP' in os.environ: - cpp = os.environ['CPP'] - else: - cpp = cc + " -E" # not always - if 'LDFLAGS' in os.environ: - ldshared = ldshared + ' ' + os.environ['LDFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS'] - if 'CFLAGS' in os.environ: - cflags = cflags + ' ' + os.environ['CFLAGS'] - ldshared = ldshared + ' ' + os.environ['CFLAGS'] -+ if 'CXXFLAGS' in os.environ: -+ cxxflags = os.environ['CXXFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS'] - if 'CPPFLAGS' in os.environ: - cpp = cpp + ' ' + os.environ['CPPFLAGS'] - cflags = cflags + ' ' + os.environ['CPPFLAGS'] -+ cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS'] - ldshared = ldshared + ' ' + os.environ['CPPFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS'] - if 'AR' in os.environ: - ar = os.environ['AR'] - if 'ARFLAGS' in os.environ: -@@ -209,13 +219,17 @@ - archiver = ar + ' ' + ar_flags - - cc_cmd = cc + ' ' + cflags -+ cxx_cmd = cxx + ' ' + cxxflags - compiler.set_executables( - preprocessor=cpp, - compiler=cc_cmd, - compiler_so=cc_cmd + ' ' + ccshared, -- compiler_cxx=cxx, -+ compiler_cxx=cxx_cmd, -+ compiler_so_cxx=cxx_cmd + ' ' + ccshared, - linker_so=ldshared, - linker_exe=cc, -+ linker_so_cxx=ldcxxshared, -+ linker_exe_cxx=cxx, - archiver=archiver) - - compiler.shared_lib_extension = so_ext ---- a/Lib/distutils/unixccompiler.py -+++ b/Lib/distutils/unixccompiler.py -@@ -55,14 +55,17 @@ - # are pretty generic; they will probably have to be set by an outsider - # (eg. using information discovered by the sysconfig about building - # Python extensions). -- executables = {'preprocessor' : None, -- 'compiler' : ["cc"], -- 'compiler_so' : ["cc"], -- 'compiler_cxx' : ["cc"], -- 'linker_so' : ["cc", "-shared"], -- 'linker_exe' : ["cc"], -- 'archiver' : ["ar", "-cr"], -- 'ranlib' : None, -+ executables = {'preprocessor' : None, -+ 'compiler' : ["cc"], -+ 'compiler_so' : ["cc"], -+ 'compiler_cxx' : ["c++"], -+ 'compiler_so_cxx' : ["c++"], -+ 'linker_so' : ["cc", "-shared"], -+ 'linker_exe' : ["cc"], -+ 'linker_so_cxx' : ["c++", "-shared"], -+ 'linker_exe_cxx' : ["c++"], -+ 'archiver' : ["ar", "-cr"], -+ 'ranlib' : None, - } - - if sys.platform[:6] == "darwin": -@@ -112,12 +115,19 @@ - - def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts): - compiler_so = self.compiler_so -+ compiler_so_cxx = self.compiler_so_cxx - if sys.platform == 'darwin': - compiler_so = _osx_support.compiler_fixup(compiler_so, - cc_args + extra_postargs) -+ compiler_so_cxx = _osx_support.compiler_fixup(compiler_so_cxx, -+ cc_args + extra_postargs) - try: -- self.spawn(compiler_so + cc_args + [src, '-o', obj] + -- extra_postargs) -+ if self.detect_language(src) == 'c++': -+ self.spawn(compiler_so_cxx + cc_args + [src, '-o', obj] + -+ extra_postargs) -+ else: -+ self.spawn(compiler_so + cc_args + [src, '-o', obj] + -+ extra_postargs) - except DistutilsExecError, msg: - raise CompileError, msg - -@@ -174,23 +184,16 @@ - ld_args.extend(extra_postargs) - self.mkpath(os.path.dirname(output_filename)) - try: -- if target_desc == CCompiler.EXECUTABLE: -- linker = self.linker_exe[:] -+ if target_lang == "c++": -+ if target_desc == CCompiler.EXECUTABLE: -+ linker = self.linker_exe_cxx[:] -+ else: -+ linker = self.linker_so_cxx[:] - else: -- linker = self.linker_so[:] -- if target_lang == "c++" and self.compiler_cxx: -- # skip over environment variable settings if /usr/bin/env -- # is used to set up the linker's environment. -- # This is needed on OSX. Note: this assumes that the -- # normal and C++ compiler have the same environment -- # settings. -- i = 0 -- if os.path.basename(linker[0]) == "env": -- i = 1 -- while '=' in linker[i]: -- i = i + 1 -- -- linker[i] = self.compiler_cxx[i] -+ if target_desc == CCompiler.EXECUTABLE: -+ linker = self.linker_exe[:] -+ else: -+ linker = self.linker_so[:] - - if sys.platform == 'darwin': - linker = _osx_support.compiler_fixup(linker, ld_args) ---- a/Lib/_osx_support.py -+++ b/Lib/_osx_support.py -@@ -14,13 +14,13 @@ - # configuration variables that may contain universal build flags, - # like "-arch" or "-isdkroot", that may need customization for - # the user environment --_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS', 'BASECFLAGS', -- 'BLDSHARED', 'LDSHARED', 'CC', 'CXX', -- 'PY_CFLAGS', 'PY_LDFLAGS', 'PY_CPPFLAGS', -- 'PY_CORE_CFLAGS') -+_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'CXXFLAGS', 'LDFLAGS', 'CPPFLAGS', -+ 'BASECFLAGS', 'BLDSHARED', 'LDSHARED', 'LDCXXSHARED', -+ 'CC', 'CXX', 'PY_CFLAGS', 'PY_LDFLAGS', -+ 'PY_CPPFLAGS', 'PY_CORE_CFLAGS') - - # configuration variables that may contain compiler calls --_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'CC', 'CXX') -+_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'LDCXXSHARED', 'CC', 'CXX') - - # prefix added to original configuration variable names - _INITPRE = '_OSX_SUPPORT_INITIAL_' \ No newline at end of file diff --git a/pkgs/by-name/py/python/cpython/2.7/search-path.patch b/pkgs/by-name/py/python/cpython/2.7/search-path.patch deleted file mode 100644 index 2e7b752..0000000 --- a/pkgs/by-name/py/python/cpython/2.7/search-path.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -rc Python-2.4.4-orig/setup.py Python-2.4.4/setup.py -*** Python-2.4.4-orig/setup.py 2006-10-08 19:41:25.000000000 +0200 ---- Python-2.4.4/setup.py 2007-05-27 16:04:54.000000000 +0200 -*************** -*** 279,288 **** - # Check for AtheOS which has libraries in non-standard locations - if platform == 'atheos': - lib_dirs += ['/system/libs', '/atheos/autolnk/lib'] -- lib_dirs += os.getenv('LIBRARY_PATH', '').split(os.pathsep) - inc_dirs += ['/system/include', '/atheos/autolnk/include'] -- inc_dirs += os.getenv('C_INCLUDE_PATH', '').split(os.pathsep) - - # OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb) - if platform in ['osf1', 'unixware7', 'openunix8']: - lib_dirs += ['/usr/ccs/lib'] ---- 279,289 ---- - # Check for AtheOS which has libraries in non-standard locations - if platform == 'atheos': - lib_dirs += ['/system/libs', '/atheos/autolnk/lib'] - inc_dirs += ['/system/include', '/atheos/autolnk/include'] - -+ lib_dirs += os.getenv('LIBRARY_PATH', '').split(os.pathsep) -+ inc_dirs += os.getenv('C_INCLUDE_PATH', '').split(os.pathsep) -+ - # OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb) - if platform in ['osf1', 'unixware7', 'openunix8']: - lib_dirs += ['/usr/ccs/lib'] diff --git a/pkgs/by-name/py/python/cpython/2.7/use-correct-tcl-tk-on-darwin.patch b/pkgs/by-name/py/python/cpython/2.7/use-correct-tcl-tk-on-darwin.patch deleted file mode 100644 index b73f62b..0000000 --- a/pkgs/by-name/py/python/cpython/2.7/use-correct-tcl-tk-on-darwin.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff --git a/setup.py b/setup.py -index 2779658..902d0eb 100644 ---- a/setup.py -+++ b/setup.py -@@ -1699,9 +1699,6 @@ class PyBuildExt(build_ext): - # Rather than complicate the code below, detecting and building - # AquaTk is a separate method. Only one Tkinter will be built on - # Darwin - either AquaTk, if it is found, or X11 based Tk. -- if (host_platform == 'darwin' and -- self.detect_tkinter_darwin(inc_dirs, lib_dirs)): -- return - - # Assume we haven't found any of the libraries or include files - # The versions with dots are used on Unix, and the versions without -@@ -1747,22 +1744,6 @@ class PyBuildExt(build_ext): - if dir not in include_dirs: - include_dirs.append(dir) - -- # Check for various platform-specific directories -- if host_platform == 'sunos5': -- include_dirs.append('/usr/openwin/include') -- added_lib_dirs.append('/usr/openwin/lib') -- elif os.path.exists('/usr/X11R6/include'): -- include_dirs.append('/usr/X11R6/include') -- added_lib_dirs.append('/usr/X11R6/lib64') -- added_lib_dirs.append('/usr/X11R6/lib') -- elif os.path.exists('/usr/X11R5/include'): -- include_dirs.append('/usr/X11R5/include') -- added_lib_dirs.append('/usr/X11R5/lib') -- else: -- # Assume default location for X11 -- include_dirs.append('/usr/X11/include') -- added_lib_dirs.append('/usr/X11/lib') -- - # If Cygwin, then verify that X is installed before proceeding - if host_platform == 'cygwin': - x11_inc = find_file('X11/Xlib.h', [], include_dirs) -@@ -1786,10 +1767,6 @@ class PyBuildExt(build_ext): - if host_platform in ['aix3', 'aix4']: - libs.append('ld') - -- # Finally, link with the X11 libraries (not appropriate on cygwin) -- if host_platform != "cygwin": -- libs.append('X11') -- - ext = Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'], - define_macros=[('WITH_APPINIT', 1)] + defs, - include_dirs = include_dirs, diff --git a/pkgs/by-name/py/python/cpython/3.10/no-ldconfig.patch b/pkgs/by-name/py/python/cpython/3.10/no-ldconfig.patch deleted file mode 100644 index c259aed..0000000 --- a/pkgs/by-name/py/python/cpython/3.10/no-ldconfig.patch +++ /dev/null @@ -1,107 +0,0 @@ -From 084c6dd6352077e64f10cf7aa168f95d800f3819 Mon Sep 17 00:00:00 2001 -From: Jonathan Ringer -Date: Mon, 9 Nov 2020 10:24:35 -0800 -Subject: [PATCH] CPython: Don't use ldconfig - ---- - Lib/ctypes/util.py | 77 ++-------------------------------------------- - 1 file changed, 2 insertions(+), 75 deletions(-) - -diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py -index 0c2510e..7fb98af 100644 ---- a/Lib/ctypes/util.py -+++ b/Lib/ctypes/util.py -@@ -100,53 +100,7 @@ elif os.name == "posix": - return thefile.read(4) == elf_header - - def _findLib_gcc(name): -- # Run GCC's linker with the -t (aka --trace) option and examine the -- # library name it prints out. The GCC command will fail because we -- # haven't supplied a proper program with main(), but that does not -- # matter. -- expr = os.fsencode(r'[^\(\)\s]*lib%s\.[^\(\)\s]*' % re.escape(name)) -- -- c_compiler = shutil.which('gcc') -- if not c_compiler: -- c_compiler = shutil.which('cc') -- if not c_compiler: -- # No C compiler available, give up -- return None -- -- temp = tempfile.NamedTemporaryFile() -- try: -- args = [c_compiler, '-Wl,-t', '-o', temp.name, '-l' + name] -- -- env = dict(os.environ) -- env['LC_ALL'] = 'C' -- env['LANG'] = 'C' -- try: -- proc = subprocess.Popen(args, -- stdout=subprocess.PIPE, -- stderr=subprocess.STDOUT, -- env=env) -- except OSError: # E.g. bad executable -- return None -- with proc: -- trace = proc.stdout.read() -- finally: -- try: -- temp.close() -- except FileNotFoundError: -- # Raised if the file was already removed, which is the normal -- # behaviour of GCC if linking fails -- pass -- res = re.findall(expr, trace) -- if not res: -- return None -- -- for file in res: -- # Check if the given file is an elf file: gcc can report -- # some files that are linker scripts and not actual -- # shared objects. See bpo-41976 for more details -- if not _is_elf(file): -- continue -- return os.fsdecode(file) -+ return None - - - if sys.platform == "sunos5": -@@ -268,34 +222,7 @@ elif os.name == "posix": - else: - - def _findSoname_ldconfig(name): -- import struct -- if struct.calcsize('l') == 4: -- machine = os.uname().machine + '-32' -- else: -- machine = os.uname().machine + '-64' -- mach_map = { -- 'x86_64-64': 'libc6,x86-64', -- 'ppc64-64': 'libc6,64bit', -- 'sparc64-64': 'libc6,64bit', -- 's390x-64': 'libc6,64bit', -- 'ia64-64': 'libc6,IA-64', -- } -- abi_type = mach_map.get(machine, 'libc6') -- -- # XXX assuming GLIBC's ldconfig (with option -p) -- regex = r'\s+(lib%s\.[^\s]+)\s+\(%s' -- regex = os.fsencode(regex % (re.escape(name), abi_type)) -- try: -- with subprocess.Popen(['/sbin/ldconfig', '-p'], -- stdin=subprocess.DEVNULL, -- stderr=subprocess.DEVNULL, -- stdout=subprocess.PIPE, -- env={'LC_ALL': 'C', 'LANG': 'C'}) as p: -- res = re.search(regex, p.stdout.read()) -- if res: -- return os.fsdecode(res.group(1)) -- except OSError: -- pass -+ return None - - def _findLib_ld(name): - # See issue #9998 for why this is needed --- -2.28.0 - diff --git a/pkgs/by-name/py/python/cpython/3.11/darwin-libutil.patch b/pkgs/by-name/py/python/cpython/3.11/darwin-libutil.patch deleted file mode 100644 index 92b846b..0000000 --- a/pkgs/by-name/py/python/cpython/3.11/darwin-libutil.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c -index 40229bce0f..3cc604930e 100644 ---- a/Modules/posixmodule.c -+++ b/Modules/posixmodule.c -@@ -7258,7 +7258,7 @@ os_sched_getaffinity_impl(PyObject *module, pid_t pid) - #ifdef HAVE_UTMP_H - #include - #endif /* HAVE_UTMP_H */ --#elif defined(HAVE_LIBUTIL_H) -+#elif defined(HAVE_LIBUTIL_H) && !defined(__APPLE__) - #include - #elif defined(HAVE_UTIL_H) - #include diff --git a/pkgs/by-name/py/python/cpython/3.11/no-ldconfig.patch b/pkgs/by-name/py/python/cpython/3.11/no-ldconfig.patch deleted file mode 100644 index ca6a76d..0000000 --- a/pkgs/by-name/py/python/cpython/3.11/no-ldconfig.patch +++ /dev/null @@ -1,107 +0,0 @@ -From 5330b6af9f832af59aa5c61d9ef6971053a8e709 Mon Sep 17 00:00:00 2001 -From: Jonathan Ringer -Date: Mon, 9 Nov 2020 10:24:35 -0800 -Subject: [PATCH] CPython: Don't use ldconfig - ---- - Lib/ctypes/util.py | 77 ++-------------------------------------------- - 1 file changed, 2 insertions(+), 75 deletions(-) - -diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py -index 0c2510e161..7fb98af308 100644 ---- a/Lib/ctypes/util.py -+++ b/Lib/ctypes/util.py -@@ -100,53 +100,7 @@ def _is_elf(filename): - return thefile.read(4) == elf_header - - def _findLib_gcc(name): -- # Run GCC's linker with the -t (aka --trace) option and examine the -- # library name it prints out. The GCC command will fail because we -- # haven't supplied a proper program with main(), but that does not -- # matter. -- expr = os.fsencode(r'[^\(\)\s]*lib%s\.[^\(\)\s]*' % re.escape(name)) -- -- c_compiler = shutil.which('gcc') -- if not c_compiler: -- c_compiler = shutil.which('cc') -- if not c_compiler: -- # No C compiler available, give up -- return None -- -- temp = tempfile.NamedTemporaryFile() -- try: -- args = [c_compiler, '-Wl,-t', '-o', temp.name, '-l' + name] -- -- env = dict(os.environ) -- env['LC_ALL'] = 'C' -- env['LANG'] = 'C' -- try: -- proc = subprocess.Popen(args, -- stdout=subprocess.PIPE, -- stderr=subprocess.STDOUT, -- env=env) -- except OSError: # E.g. bad executable -- return None -- with proc: -- trace = proc.stdout.read() -- finally: -- try: -- temp.close() -- except FileNotFoundError: -- # Raised if the file was already removed, which is the normal -- # behaviour of GCC if linking fails -- pass -- res = re.findall(expr, trace) -- if not res: -- return None -- -- for file in res: -- # Check if the given file is an elf file: gcc can report -- # some files that are linker scripts and not actual -- # shared objects. See bpo-41976 for more details -- if not _is_elf(file): -- continue -- return os.fsdecode(file) -+ return None - - - if sys.platform == "sunos5": -@@ -268,34 +222,7 @@ def find_library(name, is64 = False): - else: - - def _findSoname_ldconfig(name): -- import struct -- if struct.calcsize('l') == 4: -- machine = os.uname().machine + '-32' -- else: -- machine = os.uname().machine + '-64' -- mach_map = { -- 'x86_64-64': 'libc6,x86-64', -- 'ppc64-64': 'libc6,64bit', -- 'sparc64-64': 'libc6,64bit', -- 's390x-64': 'libc6,64bit', -- 'ia64-64': 'libc6,IA-64', -- } -- abi_type = mach_map.get(machine, 'libc6') -- -- # XXX assuming GLIBC's ldconfig (with option -p) -- regex = r'\s+(lib%s\.[^\s]+)\s+\(%s' -- regex = os.fsencode(regex % (re.escape(name), abi_type)) -- try: -- with subprocess.Popen(['/sbin/ldconfig', '-p'], -- stdin=subprocess.DEVNULL, -- stderr=subprocess.DEVNULL, -- stdout=subprocess.PIPE, -- env={'LC_ALL': 'C', 'LANG': 'C'}) as p: -- res = re.search(regex, p.stdout.read()) -- if res: -- return os.fsdecode(res.group(1)) -- except OSError: -- pass -+ return None - - def _findLib_ld(name): - # See issue #9998 for why this is needed --- -2.33.1 - diff --git a/pkgs/by-name/py/python/cpython/3.11/python-3.x-distutils-C++.patch b/pkgs/by-name/py/python/cpython/3.11/python-3.x-distutils-C++.patch deleted file mode 100644 index 335e06b..0000000 --- a/pkgs/by-name/py/python/cpython/3.11/python-3.x-distutils-C++.patch +++ /dev/null @@ -1,257 +0,0 @@ -diff --git a/Lib/_osx_support.py b/Lib/_osx_support.py -index aa66c8b9f4..71e6556bac 100644 ---- a/Lib/_osx_support.py -+++ b/Lib/_osx_support.py -@@ -14,13 +14,13 @@ - # configuration variables that may contain universal build flags, - # like "-arch" or "-isdkroot", that may need customization for - # the user environment --_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS', 'BASECFLAGS', -- 'BLDSHARED', 'LDSHARED', 'CC', 'CXX', -- 'PY_CFLAGS', 'PY_LDFLAGS', 'PY_CPPFLAGS', -- 'PY_CORE_CFLAGS', 'PY_CORE_LDFLAGS') -+_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'CXXFLAGS', 'LDFLAGS', 'CPPFLAGS', -+ 'BASECFLAGS', 'BLDSHARED', 'LDSHARED', 'LDCXXSHARED', -+ 'CC', 'CXX', 'PY_CFLAGS', 'PY_LDFLAGS', -+ 'PY_CPPFLAGS', 'PY_CORE_LDFLAGS', 'PY_CORE_CFLAGS') - - # configuration variables that may contain compiler calls --_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'CC', 'CXX') -+_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'LDCXXSHARED', 'CC', 'CXX') - - # prefix added to original configuration variable names - _INITPRE = '_OSX_SUPPORT_INITIAL_' -diff --git a/Lib/distutils/cygwinccompiler.py b/Lib/distutils/cygwinccompiler.py -index 66c12dd358..dddb9fd2d4 100644 ---- a/Lib/distutils/cygwinccompiler.py -+++ b/Lib/distutils/cygwinccompiler.py -@@ -123,8 +123,10 @@ def __init__(self, verbose=0, dry_run=0, force=0): - # dllwrap 2.10.90 is buggy - if self.ld_version >= "2.10.90": - self.linker_dll = "gcc" -+ self.linker_dll_cxx = "g++" - else: - self.linker_dll = "dllwrap" -+ self.linker_dll_cxx = "dllwrap" - - # ld_version >= "2.13" support -shared so use it instead of - # -mdll -static -@@ -138,9 +140,13 @@ def __init__(self, verbose=0, dry_run=0, force=0): - self.set_executables(compiler='gcc -mcygwin -O -Wall', - compiler_so='gcc -mcygwin -mdll -O -Wall', - compiler_cxx='g++ -mcygwin -O -Wall', -+ compiler_so_cxx='g++ -mcygwin -mdll -O -Wall', - linker_exe='gcc -mcygwin', - linker_so=('%s -mcygwin %s' % -- (self.linker_dll, shared_option))) -+ (self.linker_dll, shared_option)), -+ linker_exe_cxx='g++ -mcygwin', -+ linker_so_cxx=('%s -mcygwin %s' % -+ (self.linker_dll_cxx, shared_option))) - - # cygwin and mingw32 need different sets of libraries - if self.gcc_version == "2.91.57": -@@ -164,8 +170,12 @@ def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts): - raise CompileError(msg) - else: # for other files use the C-compiler - try: -- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + -- extra_postargs) -+ if self.detect_language(src) == 'c++': -+ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] + -+ extra_postargs) -+ else: -+ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + -+ extra_postargs) - except DistutilsExecError as msg: - raise CompileError(msg) - -@@ -300,9 +310,14 @@ def __init__(self, verbose=0, dry_run=0, force=0): - self.set_executables(compiler='gcc -O -Wall', - compiler_so='gcc -mdll -O -Wall', - compiler_cxx='g++ -O -Wall', -+ compiler_so_cxx='g++ -mdll -O -Wall', - linker_exe='gcc', - linker_so='%s %s %s' - % (self.linker_dll, shared_option, -+ entry_point), -+ linker_exe_cxx='g++', -+ linker_so_cxx='%s %s %s' -+ % (self.linker_dll_cxx, shared_option, - entry_point)) - # Maybe we should also append -mthreads, but then the finished - # dlls need another dll (mingwm10.dll see Mingw32 docs) -diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py -index 3414a761e7..f1af560cc1 100644 ---- a/Lib/distutils/sysconfig.py -+++ b/Lib/distutils/sysconfig.py -@@ -216,9 +216,11 @@ def customize_compiler(compiler): - _osx_support.customize_compiler(_config_vars) - _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True' - -- (cc, cxx, cflags, ccshared, ldshared, shlib_suffix, ar, ar_flags) = \ -- get_config_vars('CC', 'CXX', 'CFLAGS', -- 'CCSHARED', 'LDSHARED', 'SHLIB_SUFFIX', 'AR', 'ARFLAGS') -+ (cc, cxx, cflags, ccshared, ldshared, ldcxxshared, shlib_suffix, ar, ar_flags) = \ -+ get_config_vars('CC', 'CXX', 'CFLAGS', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED', -+ 'SHLIB_SUFFIX', 'AR', 'ARFLAGS') -+ -+ cxxflags = cflags - - if 'CC' in os.environ: - newcc = os.environ['CC'] -@@ -233,19 +235,27 @@ def customize_compiler(compiler): - cxx = os.environ['CXX'] - if 'LDSHARED' in os.environ: - ldshared = os.environ['LDSHARED'] -+ if 'LDCXXSHARED' in os.environ: -+ ldcxxshared = os.environ['LDCXXSHARED'] - if 'CPP' in os.environ: - cpp = os.environ['CPP'] - else: - cpp = cc + " -E" # not always - if 'LDFLAGS' in os.environ: - ldshared = ldshared + ' ' + os.environ['LDFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS'] - if 'CFLAGS' in os.environ: -- cflags = cflags + ' ' + os.environ['CFLAGS'] -+ cflags = os.environ['CFLAGS'] - ldshared = ldshared + ' ' + os.environ['CFLAGS'] -+ if 'CXXFLAGS' in os.environ: -+ cxxflags = os.environ['CXXFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS'] - if 'CPPFLAGS' in os.environ: - cpp = cpp + ' ' + os.environ['CPPFLAGS'] - cflags = cflags + ' ' + os.environ['CPPFLAGS'] -+ cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS'] - ldshared = ldshared + ' ' + os.environ['CPPFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS'] - if 'AR' in os.environ: - ar = os.environ['AR'] - if 'ARFLAGS' in os.environ: -@@ -254,13 +264,17 @@ def customize_compiler(compiler): - archiver = ar + ' ' + ar_flags - - cc_cmd = cc + ' ' + cflags -+ cxx_cmd = cxx + ' ' + cxxflags - compiler.set_executables( - preprocessor=cpp, - compiler=cc_cmd, - compiler_so=cc_cmd + ' ' + ccshared, -- compiler_cxx=cxx, -+ compiler_cxx=cxx_cmd, -+ compiler_so_cxx=cxx_cmd + ' ' + ccshared, - linker_so=ldshared, - linker_exe=cc, -+ linker_so_cxx=ldcxxshared, -+ linker_exe_cxx=cxx, - archiver=archiver) - - compiler.shared_lib_extension = shlib_suffix -diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py -index d00c48981e..4a3d271fee 100644 ---- a/Lib/distutils/unixccompiler.py -+++ b/Lib/distutils/unixccompiler.py -@@ -52,14 +52,17 @@ class UnixCCompiler(CCompiler): - # are pretty generic; they will probably have to be set by an outsider - # (eg. using information discovered by the sysconfig about building - # Python extensions). -- executables = {'preprocessor' : None, -- 'compiler' : ["cc"], -- 'compiler_so' : ["cc"], -- 'compiler_cxx' : ["cc"], -- 'linker_so' : ["cc", "-shared"], -- 'linker_exe' : ["cc"], -- 'archiver' : ["ar", "-cr"], -- 'ranlib' : None, -+ executables = {'preprocessor' : None, -+ 'compiler' : ["cc"], -+ 'compiler_so' : ["cc"], -+ 'compiler_cxx' : ["c++"], -+ 'compiler_so_cxx' : ["c++"], -+ 'linker_so' : ["cc", "-shared"], -+ 'linker_exe' : ["cc"], -+ 'linker_so_cxx' : ["c++", "-shared"], -+ 'linker_exe_cxx' : ["c++"], -+ 'archiver' : ["ar", "-cr"], -+ 'ranlib' : None, - } - - if sys.platform[:6] == "darwin": -@@ -110,12 +113,19 @@ def preprocess(self, source, output_file=None, macros=None, - - def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts): - compiler_so = self.compiler_so -+ compiler_so_cxx = self.compiler_so_cxx - if sys.platform == 'darwin': - compiler_so = _osx_support.compiler_fixup(compiler_so, - cc_args + extra_postargs) -+ compiler_so_cxx = _osx_support.compiler_fixup(compiler_so_cxx, -+ cc_args + extra_postargs) - try: -- self.spawn(compiler_so + cc_args + [src, '-o', obj] + -- extra_postargs) -+ if self.detect_language(src) == 'c++': -+ self.spawn(compiler_so_cxx + cc_args + [src, '-o', obj] + -+ extra_postargs) -+ else: -+ self.spawn(compiler_so + cc_args + [src, '-o', obj] + -+ extra_postargs) - except DistutilsExecError as msg: - raise CompileError(msg) - -@@ -173,30 +183,16 @@ def link(self, target_desc, objects, - ld_args.extend(extra_postargs) - self.mkpath(os.path.dirname(output_filename)) - try: -- if target_desc == CCompiler.EXECUTABLE: -- linker = self.linker_exe[:] -+ if target_lang == "c++": -+ if target_desc == CCompiler.EXECUTABLE: -+ linker = self.linker_exe_cxx[:] -+ else: -+ linker = self.linker_so_cxx[:] - else: -- linker = self.linker_so[:] -- if target_lang == "c++" and self.compiler_cxx: -- # skip over environment variable settings if /usr/bin/env -- # is used to set up the linker's environment. -- # This is needed on OSX. Note: this assumes that the -- # normal and C++ compiler have the same environment -- # settings. -- i = 0 -- if os.path.basename(linker[0]) == "env": -- i = 1 -- while '=' in linker[i]: -- i += 1 -- -- if os.path.basename(linker[i]) == 'ld_so_aix': -- # AIX platforms prefix the compiler with the ld_so_aix -- # script, so we need to adjust our linker index -- offset = 1 -+ if target_desc == CCompiler.EXECUTABLE: -+ linker = self.linker_exe[:] - else: -- offset = 0 -- -- linker[i+offset] = self.compiler_cxx[i] -+ linker = self.linker_so[:] - - if sys.platform == 'darwin': - linker = _osx_support.compiler_fixup(linker, ld_args) -diff --git a/Makefile.pre.in b/Makefile.pre.in -index f803391346..090f14c46c 100644 ---- a/Makefile.pre.in -+++ b/Makefile.pre.in -@@ -732,9 +732,9 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt @LIBMPDEC_INTERNAL@ @LIBEXPAT_INTERNAL - *\ -s*|s*) quiet="-q";; \ - *) quiet="";; \ - esac; \ -- echo "$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ -+ echo "$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' CFLAGS='$(PY_CFLAGS)' \ - $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build"; \ -- $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ -+ $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' CFLAGS='$(PY_CFLAGS)' \ - $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build - - diff --git a/pkgs/by-name/py/python/cpython/3.12/no-ldconfig.patch b/pkgs/by-name/py/python/cpython/3.12/no-ldconfig.patch deleted file mode 100644 index ca6a76d..0000000 --- a/pkgs/by-name/py/python/cpython/3.12/no-ldconfig.patch +++ /dev/null @@ -1,107 +0,0 @@ -From 5330b6af9f832af59aa5c61d9ef6971053a8e709 Mon Sep 17 00:00:00 2001 -From: Jonathan Ringer -Date: Mon, 9 Nov 2020 10:24:35 -0800 -Subject: [PATCH] CPython: Don't use ldconfig - ---- - Lib/ctypes/util.py | 77 ++-------------------------------------------- - 1 file changed, 2 insertions(+), 75 deletions(-) - -diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py -index 0c2510e161..7fb98af308 100644 ---- a/Lib/ctypes/util.py -+++ b/Lib/ctypes/util.py -@@ -100,53 +100,7 @@ def _is_elf(filename): - return thefile.read(4) == elf_header - - def _findLib_gcc(name): -- # Run GCC's linker with the -t (aka --trace) option and examine the -- # library name it prints out. The GCC command will fail because we -- # haven't supplied a proper program with main(), but that does not -- # matter. -- expr = os.fsencode(r'[^\(\)\s]*lib%s\.[^\(\)\s]*' % re.escape(name)) -- -- c_compiler = shutil.which('gcc') -- if not c_compiler: -- c_compiler = shutil.which('cc') -- if not c_compiler: -- # No C compiler available, give up -- return None -- -- temp = tempfile.NamedTemporaryFile() -- try: -- args = [c_compiler, '-Wl,-t', '-o', temp.name, '-l' + name] -- -- env = dict(os.environ) -- env['LC_ALL'] = 'C' -- env['LANG'] = 'C' -- try: -- proc = subprocess.Popen(args, -- stdout=subprocess.PIPE, -- stderr=subprocess.STDOUT, -- env=env) -- except OSError: # E.g. bad executable -- return None -- with proc: -- trace = proc.stdout.read() -- finally: -- try: -- temp.close() -- except FileNotFoundError: -- # Raised if the file was already removed, which is the normal -- # behaviour of GCC if linking fails -- pass -- res = re.findall(expr, trace) -- if not res: -- return None -- -- for file in res: -- # Check if the given file is an elf file: gcc can report -- # some files that are linker scripts and not actual -- # shared objects. See bpo-41976 for more details -- if not _is_elf(file): -- continue -- return os.fsdecode(file) -+ return None - - - if sys.platform == "sunos5": -@@ -268,34 +222,7 @@ def find_library(name, is64 = False): - else: - - def _findSoname_ldconfig(name): -- import struct -- if struct.calcsize('l') == 4: -- machine = os.uname().machine + '-32' -- else: -- machine = os.uname().machine + '-64' -- mach_map = { -- 'x86_64-64': 'libc6,x86-64', -- 'ppc64-64': 'libc6,64bit', -- 'sparc64-64': 'libc6,64bit', -- 's390x-64': 'libc6,64bit', -- 'ia64-64': 'libc6,IA-64', -- } -- abi_type = mach_map.get(machine, 'libc6') -- -- # XXX assuming GLIBC's ldconfig (with option -p) -- regex = r'\s+(lib%s\.[^\s]+)\s+\(%s' -- regex = os.fsencode(regex % (re.escape(name), abi_type)) -- try: -- with subprocess.Popen(['/sbin/ldconfig', '-p'], -- stdin=subprocess.DEVNULL, -- stderr=subprocess.DEVNULL, -- stdout=subprocess.PIPE, -- env={'LC_ALL': 'C', 'LANG': 'C'}) as p: -- res = re.search(regex, p.stdout.read()) -- if res: -- return os.fsdecode(res.group(1)) -- except OSError: -- pass -+ return None - - def _findLib_ld(name): - # See issue #9998 for why this is needed --- -2.33.1 - diff --git a/pkgs/by-name/py/python/cpython/3.13/no-ldconfig.patch b/pkgs/by-name/py/python/cpython/3.13/no-ldconfig.patch deleted file mode 100644 index ca6a76d..0000000 --- a/pkgs/by-name/py/python/cpython/3.13/no-ldconfig.patch +++ /dev/null @@ -1,107 +0,0 @@ -From 5330b6af9f832af59aa5c61d9ef6971053a8e709 Mon Sep 17 00:00:00 2001 -From: Jonathan Ringer -Date: Mon, 9 Nov 2020 10:24:35 -0800 -Subject: [PATCH] CPython: Don't use ldconfig - ---- - Lib/ctypes/util.py | 77 ++-------------------------------------------- - 1 file changed, 2 insertions(+), 75 deletions(-) - -diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py -index 0c2510e161..7fb98af308 100644 ---- a/Lib/ctypes/util.py -+++ b/Lib/ctypes/util.py -@@ -100,53 +100,7 @@ def _is_elf(filename): - return thefile.read(4) == elf_header - - def _findLib_gcc(name): -- # Run GCC's linker with the -t (aka --trace) option and examine the -- # library name it prints out. The GCC command will fail because we -- # haven't supplied a proper program with main(), but that does not -- # matter. -- expr = os.fsencode(r'[^\(\)\s]*lib%s\.[^\(\)\s]*' % re.escape(name)) -- -- c_compiler = shutil.which('gcc') -- if not c_compiler: -- c_compiler = shutil.which('cc') -- if not c_compiler: -- # No C compiler available, give up -- return None -- -- temp = tempfile.NamedTemporaryFile() -- try: -- args = [c_compiler, '-Wl,-t', '-o', temp.name, '-l' + name] -- -- env = dict(os.environ) -- env['LC_ALL'] = 'C' -- env['LANG'] = 'C' -- try: -- proc = subprocess.Popen(args, -- stdout=subprocess.PIPE, -- stderr=subprocess.STDOUT, -- env=env) -- except OSError: # E.g. bad executable -- return None -- with proc: -- trace = proc.stdout.read() -- finally: -- try: -- temp.close() -- except FileNotFoundError: -- # Raised if the file was already removed, which is the normal -- # behaviour of GCC if linking fails -- pass -- res = re.findall(expr, trace) -- if not res: -- return None -- -- for file in res: -- # Check if the given file is an elf file: gcc can report -- # some files that are linker scripts and not actual -- # shared objects. See bpo-41976 for more details -- if not _is_elf(file): -- continue -- return os.fsdecode(file) -+ return None - - - if sys.platform == "sunos5": -@@ -268,34 +222,7 @@ def find_library(name, is64 = False): - else: - - def _findSoname_ldconfig(name): -- import struct -- if struct.calcsize('l') == 4: -- machine = os.uname().machine + '-32' -- else: -- machine = os.uname().machine + '-64' -- mach_map = { -- 'x86_64-64': 'libc6,x86-64', -- 'ppc64-64': 'libc6,64bit', -- 'sparc64-64': 'libc6,64bit', -- 's390x-64': 'libc6,64bit', -- 'ia64-64': 'libc6,IA-64', -- } -- abi_type = mach_map.get(machine, 'libc6') -- -- # XXX assuming GLIBC's ldconfig (with option -p) -- regex = r'\s+(lib%s\.[^\s]+)\s+\(%s' -- regex = os.fsencode(regex % (re.escape(name), abi_type)) -- try: -- with subprocess.Popen(['/sbin/ldconfig', '-p'], -- stdin=subprocess.DEVNULL, -- stderr=subprocess.DEVNULL, -- stdout=subprocess.PIPE, -- env={'LC_ALL': 'C', 'LANG': 'C'}) as p: -- res = re.search(regex, p.stdout.read()) -- if res: -- return os.fsdecode(res.group(1)) -- except OSError: -- pass -+ return None - - def _findLib_ld(name): - # See issue #9998 for why this is needed --- -2.33.1 - diff --git a/pkgs/by-name/py/python/cpython/3.13/virtualenv-permissions.patch b/pkgs/by-name/py/python/cpython/3.13/virtualenv-permissions.patch deleted file mode 100644 index 8099eef..0000000 --- a/pkgs/by-name/py/python/cpython/3.13/virtualenv-permissions.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/Lib/venv/__init__.py b/Lib/venv/__init__.py -index 4856594755..6769ab8026 100644 ---- a/Lib/venv/__init__.py -+++ b/Lib/venv/__init__.py -@@ -522,6 +522,7 @@ def skip_file(f): - with open(dstfile, 'wb') as f: - f.write(new_data) - shutil.copymode(srcfile, dstfile) -+ os.chmod(dstfile, 0o644) - - def upgrade_dependencies(self, context): - logger.debug( diff --git a/pkgs/by-name/py/python/cpython/3.7/darwin-libutil.patch b/pkgs/by-name/py/python/cpython/3.7/darwin-libutil.patch deleted file mode 100644 index 51e3cb6..0000000 --- a/pkgs/by-name/py/python/cpython/3.7/darwin-libutil.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c -index c3682b4..16826c6 100644 ---- a/Modules/posixmodule.c -+++ b/Modules/posixmodule.c -@@ -5880,15 +5880,13 @@ error: - #if defined(HAVE_OPENPTY) || defined(HAVE_FORKPTY) || defined(HAVE_DEV_PTMX) - #ifdef HAVE_PTY_H - #include --#else -+#endif - #ifdef HAVE_LIBUTIL_H - #include --#else -+#endif - #ifdef HAVE_UTIL_H - #include --#endif /* HAVE_UTIL_H */ --#endif /* HAVE_LIBUTIL_H */ --#endif /* HAVE_PTY_H */ -+#endif - #ifdef HAVE_STROPTS_H - #include - #endif diff --git a/pkgs/by-name/py/python/cpython/3.7/fix-finding-headers-when-cross-compiling.patch b/pkgs/by-name/py/python/cpython/3.7/fix-finding-headers-when-cross-compiling.patch deleted file mode 100644 index 543e267..0000000 --- a/pkgs/by-name/py/python/cpython/3.7/fix-finding-headers-when-cross-compiling.patch +++ /dev/null @@ -1,54 +0,0 @@ -From debccd4be0a8d619770f63622d9de1b451dd02ac Mon Sep 17 00:00:00 2001 -From: Ben Wolsieffer -Date: Fri, 25 Sep 2020 16:49:16 -0400 -Subject: [PATCH] Fix finding headers when cross compiling - -When cross-compiling third-party extensions, get_python_inc() may be called to -return the path to Python's headers. However, it uses the sys.prefix or -sys.exec_prefix of the build Python, which returns incorrect paths when -cross-compiling (paths pointing to build system headers). - -To fix this, we use the INCLUDEPY and CONFINCLUDEPY conf variables, which can -be configured to point at host Python by setting _PYTHON_SYSCONFIGDATA_NAME. -The existing behavior is maintained on non-POSIX platforms or if a prefix is -manually specified. ---- - Lib/distutils/sysconfig.py | 14 ++++++++++---- - 1 file changed, 10 insertions(+), 4 deletions(-) - -diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py -index 37feae5df7..6d4ad06696 100644 ---- a/Lib/distutils/sysconfig.py -+++ b/Lib/distutils/sysconfig.py -@@ -95,8 +95,6 @@ def get_python_inc(plat_specific=0, prefix=None): - If 'prefix' is supplied, use it instead of sys.base_prefix or - sys.base_exec_prefix -- i.e., ignore 'plat_specific'. - """ -- if prefix is None: -- prefix = plat_specific and BASE_EXEC_PREFIX or BASE_PREFIX - if os.name == "posix": - if python_build: - # Assume the executable is in the build directory. The -@@ -109,9 +107,17 @@ def get_python_inc(plat_specific=0, prefix=None): - else: - incdir = os.path.join(get_config_var('srcdir'), 'Include') - return os.path.normpath(incdir) -- python_dir = 'python' + get_python_version() + build_flags -- return os.path.join(prefix, "include", python_dir) -+ if prefix is None: -+ if plat_specific: -+ return get_config_var('CONFINCLUDEPY') -+ else: -+ return get_config_var('INCLUDEPY') -+ else: -+ python_dir = 'python' + get_python_version() + build_flags -+ return os.path.join(prefix, "include", python_dir) - elif os.name == "nt": -+ if prefix is None: -+ prefix = plat_specific and BASE_EXEC_PREFIX or BASE_PREFIX - if python_build: - # Include both the include and PC dir to ensure we can find - # pyconfig.h --- -2.28.0 - diff --git a/pkgs/by-name/py/python/cpython/3.7/no-win64-workaround.patch b/pkgs/by-name/py/python/cpython/3.7/no-win64-workaround.patch deleted file mode 100644 index 685b1e8..0000000 --- a/pkgs/by-name/py/python/cpython/3.7/no-win64-workaround.patch +++ /dev/null @@ -1,37 +0,0 @@ -From e6b247c8e524dbe5fc03b3492f628d0d5348bc49 Mon Sep 17 00:00:00 2001 -From: Victor Stinner -Date: Tue, 18 Dec 2018 14:47:21 +0100 -Subject: [PATCH] bpo-35523: Remove ctypes callback workaround (GH-11211) - -Remove ctypes callback workaround: no longer create a callback at startup. -Avoid SELinux alert on "import ctypes" and "import uuid". ---- - Lib/ctypes/__init__.py | 5 ----- - .../next/Library/2018-12-18-13-52-13.bpo-35523.SkoMno.rst | 2 ++ - 2 files changed, 2 insertions(+), 5 deletions(-) - create mode 100644 Misc/NEWS.d/next/Library/2018-12-18-13-52-13.bpo-35523.SkoMno.rst - -diff --git a/Lib/ctypes/__init__.py b/Lib/ctypes/__init__.py -index 6146773988648..5f78beda5866e 100644 ---- a/Lib/ctypes/__init__.py -+++ b/Lib/ctypes/__init__.py -@@ -266,11 +266,6 @@ def _reset_cache(): - # _SimpleCData.c_char_p_from_param - POINTER(c_char).from_param = c_char_p.from_param - _pointer_type_cache[None] = c_void_p -- # XXX for whatever reasons, creating the first instance of a callback -- # function is needed for the unittests on Win64 to succeed. This MAY -- # be a compiler bug, since the problem occurs only when _ctypes is -- # compiled with the MS SDK compiler. Or an uninitialized variable? -- CFUNCTYPE(c_int)(lambda: None) - - def create_unicode_buffer(init, size=None): - """create_unicode_buffer(aString) -> character array -diff --git a/Misc/NEWS.d/next/Library/2018-12-18-13-52-13.bpo-35523.SkoMno.rst b/Misc/NEWS.d/next/Library/2018-12-18-13-52-13.bpo-35523.SkoMno.rst -new file mode 100644 -index 0000000000000..94a9fd257383e ---- /dev/null -+++ b/Misc/NEWS.d/next/Library/2018-12-18-13-52-13.bpo-35523.SkoMno.rst -@@ -0,0 +1,2 @@ -+Remove :mod:`ctypes` callback workaround: no longer create a callback at -+startup. Avoid SELinux alert on ``import ctypes`` and ``import uuid``. diff --git a/pkgs/by-name/py/python/cpython/3.7/python-3.x-distutils-C++.patch b/pkgs/by-name/py/python/cpython/3.7/python-3.x-distutils-C++.patch deleted file mode 100644 index 243313f..0000000 --- a/pkgs/by-name/py/python/cpython/3.7/python-3.x-distutils-C++.patch +++ /dev/null @@ -1,248 +0,0 @@ ---- a/Lib/_osx_support.py -+++ b/Lib/_osx_support.py -@@ -14,13 +14,13 @@ __all__ = [ - # configuration variables that may contain universal build flags, - # like "-arch" or "-isdkroot", that may need customization for - # the user environment --_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS', 'BASECFLAGS', -- 'BLDSHARED', 'LDSHARED', 'CC', 'CXX', -- 'PY_CFLAGS', 'PY_LDFLAGS', 'PY_CPPFLAGS', -- 'PY_CORE_CFLAGS', 'PY_CORE_LDFLAGS') -+_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'CXXFLAGS', 'LDFLAGS', 'CPPFLAGS', -+ 'BASECFLAGS', 'BLDSHARED', 'LDSHARED', 'LDCXXSHARED', -+ 'CC', 'CXX', 'PY_CFLAGS', 'PY_LDFLAGS', -+ 'PY_CPPFLAGS', 'PY_CORE_LDFLAGS', 'PY_CORE_CFLAGS') - - # configuration variables that may contain compiler calls --_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'CC', 'CXX') -+_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'LDCXXSHARED', 'CC', 'CXX') - - # prefix added to original configuration variable names - _INITPRE = '_OSX_SUPPORT_INITIAL_' ---- a/Lib/distutils/cygwinccompiler.py -+++ b/Lib/distutils/cygwinccompiler.py -@@ -125,8 +125,10 @@ class CygwinCCompiler(UnixCCompiler): - # dllwrap 2.10.90 is buggy - if self.ld_version >= "2.10.90": - self.linker_dll = "gcc" -+ self.linker_dll_cxx = "g++" - else: - self.linker_dll = "dllwrap" -+ self.linker_dll_cxx = "dllwrap" - - # ld_version >= "2.13" support -shared so use it instead of - # -mdll -static -@@ -140,9 +142,13 @@ class CygwinCCompiler(UnixCCompiler): - self.set_executables(compiler='gcc -mcygwin -O -Wall', - compiler_so='gcc -mcygwin -mdll -O -Wall', - compiler_cxx='g++ -mcygwin -O -Wall', -+ compiler_so_cxx='g++ -mcygwin -mdll -O -Wall', - linker_exe='gcc -mcygwin', - linker_so=('%s -mcygwin %s' % -- (self.linker_dll, shared_option))) -+ (self.linker_dll, shared_option)), -+ linker_exe_cxx='g++ -mcygwin', -+ linker_so_cxx=('%s -mcygwin %s' % -+ (self.linker_dll_cxx, shared_option))) - - # cygwin and mingw32 need different sets of libraries - if self.gcc_version == "2.91.57": -@@ -166,8 +172,12 @@ class CygwinCCompiler(UnixCCompiler): - raise CompileError(msg) - else: # for other files use the C-compiler - try: -- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + -- extra_postargs) -+ if self.detect_language(src) == 'c++': -+ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] + -+ extra_postargs) -+ else: -+ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + -+ extra_postargs) - except DistutilsExecError as msg: - raise CompileError(msg) - -@@ -302,9 +312,14 @@ class Mingw32CCompiler(CygwinCCompiler): - self.set_executables(compiler='gcc -O -Wall', - compiler_so='gcc -mdll -O -Wall', - compiler_cxx='g++ -O -Wall', -+ compiler_so_cxx='g++ -mdll -O -Wall', - linker_exe='gcc', - linker_so='%s %s %s' - % (self.linker_dll, shared_option, -+ entry_point), -+ linker_exe_cxx='g++', -+ linker_so_cxx='%s %s %s' -+ % (self.linker_dll_cxx, shared_option, - entry_point)) - # Maybe we should also append -mthreads, but then the finished - # dlls need another dll (mingwm10.dll see Mingw32 docs) ---- a/Lib/distutils/sysconfig.py -+++ b/Lib/distutils/sysconfig.py -@@ -170,9 +170,11 @@ def customize_compiler(compiler): - _osx_support.customize_compiler(_config_vars) - _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True' - -- (cc, cxx, cflags, ccshared, ldshared, shlib_suffix, ar, ar_flags) = \ -- get_config_vars('CC', 'CXX', 'CFLAGS', -- 'CCSHARED', 'LDSHARED', 'SHLIB_SUFFIX', 'AR', 'ARFLAGS') -+ (cc, cxx, cflags, ccshared, ldshared, ldcxxshared, shlib_suffix, ar, ar_flags) = \ -+ get_config_vars('CC', 'CXX', 'CFLAGS', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED', -+ 'SHLIB_SUFFIX', 'AR', 'ARFLAGS') -+ -+ cxxflags = cflags - - if 'CC' in os.environ: - newcc = os.environ['CC'] -@@ -187,19 +189,27 @@ def customize_compiler(compiler): - cxx = os.environ['CXX'] - if 'LDSHARED' in os.environ: - ldshared = os.environ['LDSHARED'] -+ if 'LDCXXSHARED' in os.environ: -+ ldcxxshared = os.environ['LDCXXSHARED'] - if 'CPP' in os.environ: - cpp = os.environ['CPP'] - else: - cpp = cc + " -E" # not always - if 'LDFLAGS' in os.environ: - ldshared = ldshared + ' ' + os.environ['LDFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS'] - if 'CFLAGS' in os.environ: -- cflags = cflags + ' ' + os.environ['CFLAGS'] -+ cflags = os.environ['CFLAGS'] - ldshared = ldshared + ' ' + os.environ['CFLAGS'] -+ if 'CXXFLAGS' in os.environ: -+ cxxflags = os.environ['CXXFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS'] - if 'CPPFLAGS' in os.environ: - cpp = cpp + ' ' + os.environ['CPPFLAGS'] - cflags = cflags + ' ' + os.environ['CPPFLAGS'] -+ cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS'] - ldshared = ldshared + ' ' + os.environ['CPPFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS'] - if 'AR' in os.environ: - ar = os.environ['AR'] - if 'ARFLAGS' in os.environ: -@@ -208,13 +218,17 @@ def customize_compiler(compiler): - archiver = ar + ' ' + ar_flags - - cc_cmd = cc + ' ' + cflags -+ cxx_cmd = cxx + ' ' + cxxflags - compiler.set_executables( - preprocessor=cpp, - compiler=cc_cmd, - compiler_so=cc_cmd + ' ' + ccshared, -- compiler_cxx=cxx, -+ compiler_cxx=cxx_cmd, -+ compiler_so_cxx=cxx_cmd + ' ' + ccshared, - linker_so=ldshared, - linker_exe=cc, -+ linker_so_cxx=ldcxxshared, -+ linker_exe_cxx=cxx, - archiver=archiver) - - compiler.shared_lib_extension = shlib_suffix ---- a/Lib/distutils/unixccompiler.py -+++ b/Lib/distutils/unixccompiler.py -@@ -52,14 +52,17 @@ class UnixCCompiler(CCompiler): - # are pretty generic; they will probably have to be set by an outsider - # (eg. using information discovered by the sysconfig about building - # Python extensions). -- executables = {'preprocessor' : None, -- 'compiler' : ["cc"], -- 'compiler_so' : ["cc"], -- 'compiler_cxx' : ["cc"], -- 'linker_so' : ["cc", "-shared"], -- 'linker_exe' : ["cc"], -- 'archiver' : ["ar", "-cr"], -- 'ranlib' : None, -+ executables = {'preprocessor' : None, -+ 'compiler' : ["cc"], -+ 'compiler_so' : ["cc"], -+ 'compiler_cxx' : ["c++"], -+ 'compiler_so_cxx' : ["c++"], -+ 'linker_so' : ["cc", "-shared"], -+ 'linker_exe' : ["cc"], -+ 'linker_so_cxx' : ["c++", "-shared"], -+ 'linker_exe_cxx' : ["c++"], -+ 'archiver' : ["ar", "-cr"], -+ 'ranlib' : None, - } - - if sys.platform[:6] == "darwin": -@@ -110,12 +113,19 @@ class UnixCCompiler(CCompiler): - - def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts): - compiler_so = self.compiler_so -+ compiler_so_cxx = self.compiler_so_cxx - if sys.platform == 'darwin': - compiler_so = _osx_support.compiler_fixup(compiler_so, - cc_args + extra_postargs) -+ compiler_so_cxx = _osx_support.compiler_fixup(compiler_so_cxx, -+ cc_args + extra_postargs) - try: -- self.spawn(compiler_so + cc_args + [src, '-o', obj] + -- extra_postargs) -+ if self.detect_language(src) == 'c++': -+ self.spawn(compiler_so_cxx + cc_args + [src, '-o', obj] + -+ extra_postargs) -+ else: -+ self.spawn(compiler_so + cc_args + [src, '-o', obj] + -+ extra_postargs) - except DistutilsExecError as msg: - raise CompileError(msg) - -@@ -173,30 +183,16 @@ class UnixCCompiler(CCompiler): - ld_args.extend(extra_postargs) - self.mkpath(os.path.dirname(output_filename)) - try: -- if target_desc == CCompiler.EXECUTABLE: -- linker = self.linker_exe[:] -+ if target_lang == "c++": -+ if target_desc == CCompiler.EXECUTABLE: -+ linker = self.linker_exe_cxx[:] -+ else: -+ linker = self.linker_so_cxx[:] - else: -- linker = self.linker_so[:] -- if target_lang == "c++" and self.compiler_cxx: -- # skip over environment variable settings if /usr/bin/env -- # is used to set up the linker's environment. -- # This is needed on OSX. Note: this assumes that the -- # normal and C++ compiler have the same environment -- # settings. -- i = 0 -- if os.path.basename(linker[0]) == "env": -- i = 1 -- while '=' in linker[i]: -- i += 1 -- -- if os.path.basename(linker[i]) == 'ld_so_aix': -- # AIX platforms prefix the compiler with the ld_so_aix -- # script, so we need to adjust our linker index -- offset = 1 -+ if target_desc == CCompiler.EXECUTABLE: -+ linker = self.linker_exe[:] - else: -- offset = 0 -- -- linker[i+offset] = self.compiler_cxx[i] -+ linker = self.linker_so[:] - - if sys.platform == 'darwin': - linker = _osx_support.compiler_fixup(linker, ld_args) ---- a/Makefile.pre.in -+++ b/Makefile.pre.in -@@ -584,10 +584,10 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o - *\ -s*|s*) quiet="-q";; \ - *) quiet="";; \ - esac; \ -- echo "$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ -+ echo "$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' CFLAGS='$(PY_CFLAGS)' \ - _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \ - $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build"; \ -- $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ -+ $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' CFLAGS='$(PY_CFLAGS)' \ - _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \ - $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build - diff --git a/pkgs/by-name/py/python/cpython/3.8/0001-On-all-posix-systems-not-just-Darwin-set-LDSHARED-if.patch b/pkgs/by-name/py/python/cpython/3.8/0001-On-all-posix-systems-not-just-Darwin-set-LDSHARED-if.patch deleted file mode 100644 index 0c26300..0000000 --- a/pkgs/by-name/py/python/cpython/3.8/0001-On-all-posix-systems-not-just-Darwin-set-LDSHARED-if.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 1911995b1a1252d80bf2b9651840e185a1a6baf5 Mon Sep 17 00:00:00 2001 -From: Hong Xu -Date: Thu, 25 Jul 2019 10:25:55 -0700 -Subject: [PATCH] On all posix systems, not just Darwin, set LDSHARED (if not - set) according to CC - -This patch is slightly different from https://bugs.python.org/issue24935 -, except that we now handle LDSHARED according to CC on all posix -systems, not just Darwin or Linux. ---- - Lib/distutils/sysconfig.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py -index 37feae5df7..9fdce6896d 100644 ---- a/Lib/distutils/sysconfig.py -+++ b/Lib/distutils/sysconfig.py -@@ -199,10 +199,10 @@ def customize_compiler(compiler): - - if 'CC' in os.environ: - newcc = os.environ['CC'] -- if (sys.platform == 'darwin' -+ if (os.name == 'posix' - and 'LDSHARED' not in os.environ - and ldshared.startswith(cc)): -- # On OS X, if CC is overridden, use that as the default -+ # On POSIX systems, if CC is overridden, use that as the default - # command for LDSHARED as well - ldshared = newcc + ldshared[len(cc):] - cc = newcc --- -2.25.1 - diff --git a/pkgs/by-name/py/python/cpython/3.8/no-ldconfig.patch b/pkgs/by-name/py/python/cpython/3.8/no-ldconfig.patch deleted file mode 100644 index 41d3ab5..0000000 --- a/pkgs/by-name/py/python/cpython/3.8/no-ldconfig.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 66f492d2eda94bd64db833839a325caf6ba0fed5 Mon Sep 17 00:00:00 2001 -From: Greg Roodt -Date: Wed, 9 Dec 2020 17:59:24 +1100 -Subject: [PATCH] Don't use ldconfig - ---- - Lib/ctypes/util.py | 77 ++-------------------------------------------- - 1 file changed, 2 insertions(+), 75 deletions(-) - -diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py -index 0c2510e161..7fb98af308 100644 ---- a/Lib/ctypes/util.py -+++ b/Lib/ctypes/util.py -@@ -100,53 +100,7 @@ elif os.name == "posix": - return thefile.read(4) == elf_header - - def _findLib_gcc(name): -- # Run GCC's linker with the -t (aka --trace) option and examine the -- # library name it prints out. The GCC command will fail because we -- # haven't supplied a proper program with main(), but that does not -- # matter. -- expr = os.fsencode(r'[^\(\)\s]*lib%s\.[^\(\)\s]*' % re.escape(name)) -- -- c_compiler = shutil.which('gcc') -- if not c_compiler: -- c_compiler = shutil.which('cc') -- if not c_compiler: -- # No C compiler available, give up -- return None -- -- temp = tempfile.NamedTemporaryFile() -- try: -- args = [c_compiler, '-Wl,-t', '-o', temp.name, '-l' + name] -- -- env = dict(os.environ) -- env['LC_ALL'] = 'C' -- env['LANG'] = 'C' -- try: -- proc = subprocess.Popen(args, -- stdout=subprocess.PIPE, -- stderr=subprocess.STDOUT, -- env=env) -- except OSError: # E.g. bad executable -- return None -- with proc: -- trace = proc.stdout.read() -- finally: -- try: -- temp.close() -- except FileNotFoundError: -- # Raised if the file was already removed, which is the normal -- # behaviour of GCC if linking fails -- pass -- res = re.findall(expr, trace) -- if not res: -- return None -- -- for file in res: -- # Check if the given file is an elf file: gcc can report -- # some files that are linker scripts and not actual -- # shared objects. See bpo-41976 for more details -- if not _is_elf(file): -- continue -- return os.fsdecode(file) -+ return None - - - if sys.platform == "sunos5": -@@ -268,34 +222,7 @@ elif os.name == "posix": - else: - - def _findSoname_ldconfig(name): -- import struct -- if struct.calcsize('l') == 4: -- machine = os.uname().machine + '-32' -- else: -- machine = os.uname().machine + '-64' -- mach_map = { -- 'x86_64-64': 'libc6,x86-64', -- 'ppc64-64': 'libc6,64bit', -- 'sparc64-64': 'libc6,64bit', -- 's390x-64': 'libc6,64bit', -- 'ia64-64': 'libc6,IA-64', -- } -- abi_type = mach_map.get(machine, 'libc6') -- -- # XXX assuming GLIBC's ldconfig (with option -p) -- regex = r'\s+(lib%s\.[^\s]+)\s+\(%s' -- regex = os.fsencode(regex % (re.escape(name), abi_type)) -- try: -- with subprocess.Popen(['/sbin/ldconfig', '-p'], -- stdin=subprocess.DEVNULL, -- stderr=subprocess.DEVNULL, -- stdout=subprocess.PIPE, -- env={'LC_ALL': 'C', 'LANG': 'C'}) as p: -- res = re.search(regex, p.stdout.read()) -- if res: -- return os.fsdecode(res.group(1)) -- except OSError: -- pass -+ return None - - def _findLib_ld(name): - # See issue #9998 for why this is needed --- -2.24.3 (Apple Git-128) diff --git a/pkgs/by-name/py/python/cpython/3.9/darwin-tcl-tk.patch b/pkgs/by-name/py/python/cpython/3.9/darwin-tcl-tk.patch deleted file mode 100644 index a9b0c06..0000000 --- a/pkgs/by-name/py/python/cpython/3.9/darwin-tcl-tk.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/setup.py b/setup.py -index 04eb6b2..2e1160d 100644 ---- a/setup.py -+++ b/setup.py -@@ -1981,8 +1981,8 @@ class PyBuildExt(build_ext): - # Rather than complicate the code below, detecting and building - # AquaTk is a separate method. Only one Tkinter will be built on - # Darwin - either AquaTk, if it is found, or X11 based Tk. -- if (MACOS and self.detect_tkinter_darwin()): -- return True -+ # if (MACOS and self.detect_tkinter_darwin()): -+ # return True - - # Assume we haven't found any of the libraries or include files - # The versions with dots are used on Unix, and the versions without diff --git a/pkgs/by-name/py/python/cpython/3.9/no-ldconfig.patch b/pkgs/by-name/py/python/cpython/3.9/no-ldconfig.patch deleted file mode 100644 index 41d3ab5..0000000 --- a/pkgs/by-name/py/python/cpython/3.9/no-ldconfig.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 66f492d2eda94bd64db833839a325caf6ba0fed5 Mon Sep 17 00:00:00 2001 -From: Greg Roodt -Date: Wed, 9 Dec 2020 17:59:24 +1100 -Subject: [PATCH] Don't use ldconfig - ---- - Lib/ctypes/util.py | 77 ++-------------------------------------------- - 1 file changed, 2 insertions(+), 75 deletions(-) - -diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py -index 0c2510e161..7fb98af308 100644 ---- a/Lib/ctypes/util.py -+++ b/Lib/ctypes/util.py -@@ -100,53 +100,7 @@ elif os.name == "posix": - return thefile.read(4) == elf_header - - def _findLib_gcc(name): -- # Run GCC's linker with the -t (aka --trace) option and examine the -- # library name it prints out. The GCC command will fail because we -- # haven't supplied a proper program with main(), but that does not -- # matter. -- expr = os.fsencode(r'[^\(\)\s]*lib%s\.[^\(\)\s]*' % re.escape(name)) -- -- c_compiler = shutil.which('gcc') -- if not c_compiler: -- c_compiler = shutil.which('cc') -- if not c_compiler: -- # No C compiler available, give up -- return None -- -- temp = tempfile.NamedTemporaryFile() -- try: -- args = [c_compiler, '-Wl,-t', '-o', temp.name, '-l' + name] -- -- env = dict(os.environ) -- env['LC_ALL'] = 'C' -- env['LANG'] = 'C' -- try: -- proc = subprocess.Popen(args, -- stdout=subprocess.PIPE, -- stderr=subprocess.STDOUT, -- env=env) -- except OSError: # E.g. bad executable -- return None -- with proc: -- trace = proc.stdout.read() -- finally: -- try: -- temp.close() -- except FileNotFoundError: -- # Raised if the file was already removed, which is the normal -- # behaviour of GCC if linking fails -- pass -- res = re.findall(expr, trace) -- if not res: -- return None -- -- for file in res: -- # Check if the given file is an elf file: gcc can report -- # some files that are linker scripts and not actual -- # shared objects. See bpo-41976 for more details -- if not _is_elf(file): -- continue -- return os.fsdecode(file) -+ return None - - - if sys.platform == "sunos5": -@@ -268,34 +222,7 @@ elif os.name == "posix": - else: - - def _findSoname_ldconfig(name): -- import struct -- if struct.calcsize('l') == 4: -- machine = os.uname().machine + '-32' -- else: -- machine = os.uname().machine + '-64' -- mach_map = { -- 'x86_64-64': 'libc6,x86-64', -- 'ppc64-64': 'libc6,64bit', -- 'sparc64-64': 'libc6,64bit', -- 's390x-64': 'libc6,64bit', -- 'ia64-64': 'libc6,IA-64', -- } -- abi_type = mach_map.get(machine, 'libc6') -- -- # XXX assuming GLIBC's ldconfig (with option -p) -- regex = r'\s+(lib%s\.[^\s]+)\s+\(%s' -- regex = os.fsencode(regex % (re.escape(name), abi_type)) -- try: -- with subprocess.Popen(['/sbin/ldconfig', '-p'], -- stdin=subprocess.DEVNULL, -- stderr=subprocess.DEVNULL, -- stdout=subprocess.PIPE, -- env={'LC_ALL': 'C', 'LANG': 'C'}) as p: -- res = re.search(regex, p.stdout.read()) -- if res: -- return os.fsdecode(res.group(1)) -- except OSError: -- pass -+ return None - - def _findLib_ld(name): - # See issue #9998 for why this is needed --- -2.24.3 (Apple Git-128) diff --git a/pkgs/by-name/py/python/cpython/default.nix b/pkgs/by-name/py/python/cpython/default.nix deleted file mode 100644 index 301af7a..0000000 --- a/pkgs/by-name/py/python/cpython/default.nix +++ /dev/null @@ -1,668 +0,0 @@ -{ lib -, stdenv -, fetchurl -, fetchpatch -, fetchgit - -# build dependencies -, autoconf-archive -, autoreconfHook -, nukeReferences -, pkg-config -, python-setup-hook - -# runtime dependencies -, bzip2 -, expat -, libffi -, libxcrypt -, mpdecimal -, ncurses -, openssl -, sqlite -, xz -, zlib - -# 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 - -# 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 - -# 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 - -# 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 - -# for the Python package set -, packageOverrides ? (self: super: {}) - -# tests -, testers - -} @ 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 bluezSupport -> bluez != null; - -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 -> (!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."; - -let - inherit (lib) - concatMapStringsSep - concatStringsSep - enableFeature - getDev - getLib - optionals - 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}); - }; - - 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 - ]; - - 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; - - src = fetchurl { - url = with sourceVersion; "https://www.python.org/ftp/python/${major}.${minor}.${patch}/Python-${version}.tar.xz"; - inherit hash; - }; - - # The CPython interpreter contains a _sysconfigdata_ - # module that is imported by the sysconfig and distutils.sysconfig modules. - # The sysconfigdata module is generated at build time and contains settings - # required for building Python extension modules, such as include paths and - # other compiler flags. By default, the sysconfigdata module is loaded from - # the currently running interpreter (ie. the build platform interpreter), but - # when cross-compiling we want to load it from the host platform interpreter. - # This can be done using the _PYTHON_SYSCONFIGDATA_NAME environment variable. - # The _PYTHON_HOST_PLATFORM variable also needs to be set to get the correct - # 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 - - # 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; - 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 '' - sysconfigdataHook() { - if [ "$1" = '${placeholder "out"}' ]; then - export _PYTHON_HOST_PLATFORM='${pythonHostPlatform}' - export _PYTHON_SYSCONFIGDATA_NAME='${pythonSysconfigdataName}' - fi - } - - addEnvHooks "$hostOffset" sysconfigdataHook - ''; - - execSuffix = stdenv.hostPlatform.extensions.executable; -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; - - 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" - ]); - - 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 ""); - # Determinism: We fix the hashes of str, bytes and datetime objects. - 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" - ]; - - 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" - ''; - - 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 - - # 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" - - # 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} '{}' + - - # 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. - - 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/ - ''; - - preFixup = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' - # Ensure patch-shebangs uses shebangs of host interpreter. - export PATH=${lib.makeBinPath [ "$out" ]}:$PATH - ''; - - # Add CPython specific setup-hook that configures distutils.sysconfig to - # always load sysconfigdata from host Python. - postFixup = lib.optionalString (!stdenv.hostPlatform.isDarwin) '' - cat << "EOF" >> "$out/nix-support/setup-hook" - ${sysconfigdataHook} - EOF - ''; - - # 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 - ]; - - separateDebugInfo = true; - - passthru = passthru // { - doc = stdenv.mkDerivation { - inherit src; - name = "python${pythonVersion}-${version}-doc"; - - patches = optionals (pythonAtLeast "3.9" && pythonOlder "3.10") [ - # https://github.com/python/cpython/issues/98366 - (fetchpatch { - url = "https://github.com/python/cpython/commit/5612471501b05518287ed61c1abcb9ed38c03942.patch"; - hash = "sha256-p41hJwAiyRgyVjCVQokMSpSFg/VDDrqkCSxsodVb6vY="; - }) - ]; - - dontConfigure = true; - - dontBuild = true; - - sphinxRoot = "Doc"; - - postInstallSphinx = '' - mv $out/share/doc/* $out/share/doc/python${pythonVersion}-${version} - ''; - - nativeBuildInputs = with pkgsBuildBuild.python3.pkgs; [ sphinxHook python-docs-theme ]; - }; - - tests = passthru.tests // { - pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - }; - }; - - enableParallelBuilding = true; - - meta = with lib; { - homepage = "https://www.python.org"; - 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 - "https://docs.python.org/${majorMinor}/whatsnew/changelog.html#python-${dashedVersion}"; - description = "A high-level dynamically-typed programming language"; - longDescription = '' - Python is a remarkably powerful dynamic programming language that - is used in a wide variety of application domains. Some of its key - distinguishing features include: clear, readable syntax; strong - introspection capabilities; intuitive object orientation; natural - expression of procedural code; full modularity, supporting - hierarchical packages; exception-based error handling; and very - high level dynamic data types. - ''; - license = licenses.psfl; - pkgConfigModules = [ "python3" ]; - platforms = platforms.linux ++ platforms.darwin ++ platforms.windows; - maintainers = with maintainers; [ fridh ]; - mainProgram = executable; - }; -}) 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 deleted file mode 100644 index a15bca1..0000000 --- a/pkgs/by-name/py/python/cpython/docs/2.7-html.nix +++ /dev/null @@ -1,20 +0,0 @@ -# This file was generated and will be overwritten by ./generate.sh - -{ stdenv, fetchurl, lib }: - -stdenv.mkDerivation { - pname = "python27-docs-html"; - version = "2.7.18"; - - src = fetchurl { - url = "http://www.python.org/ftp/python/doc/2.7.18/python-2.7.18-docs-html.tar.bz2"; - sha256 = "03igxwpqc2lvzspnj78zz1prnmfwwj00jbvh1wsxvb0wayd5wi10"; - }; - installPhase = '' - mkdir -p $out/share/doc/python27 - cp -R ./ $out/share/doc/python27/html - ''; - meta = { - maintainers = [ ]; - }; -} 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 deleted file mode 100644 index 54b2899..0000000 --- a/pkgs/by-name/py/python/cpython/docs/2.7-pdf-a4.nix +++ /dev/null @@ -1,20 +0,0 @@ -# This file was generated and will be overwritten by ./generate.sh - -{ stdenv, fetchurl, lib }: - -stdenv.mkDerivation { - pname = "python27-docs-pdf-a4"; - version = "2.7.18"; - - src = fetchurl { - url = "http://www.python.org/ftp/python/doc/2.7.18/python-2.7.18-docs-pdf-a4.tar.bz2"; - sha256 = "0rxb2fpxwivjpk5wi2pl1fqibr4khf9s0yq6a49k9b4awi9nkb6v"; - }; - installPhase = '' - mkdir -p $out/share/doc/python27 - cp -R ./ $out/share/doc/python27/pdf-a4 - ''; - meta = { - maintainers = [ ]; - }; -} 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 deleted file mode 100644 index 84cf35f..0000000 --- a/pkgs/by-name/py/python/cpython/docs/2.7-pdf-letter.nix +++ /dev/null @@ -1,20 +0,0 @@ -# This file was generated and will be overwritten by ./generate.sh - -{ stdenv, fetchurl, lib }: - -stdenv.mkDerivation { - pname = "python27-docs-pdf-letter"; - version = "2.7.18"; - - src = fetchurl { - url = "http://www.python.org/ftp/python/doc/2.7.18/python-2.7.18-docs-pdf-letter.tar.bz2"; - sha256 = "07hbqvrdlq01cb95r1574bxqqhiqbkj4f92wzlq4d6dq1l272nan"; - }; - installPhase = '' - mkdir -p $out/share/doc/python27 - cp -R ./ $out/share/doc/python27/pdf-letter - ''; - meta = { - maintainers = [ ]; - }; -} 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 deleted file mode 100644 index 5d25344..0000000 --- a/pkgs/by-name/py/python/cpython/docs/2.7-text.nix +++ /dev/null @@ -1,20 +0,0 @@ -# This file was generated and will be overwritten by ./generate.sh - -{ stdenv, fetchurl, lib }: - -stdenv.mkDerivation { - pname = "python27-docs-text"; - version = "2.7.18"; - - src = fetchurl { - url = "http://www.python.org/ftp/python/doc/2.7.18/python-2.7.18-docs-text.tar.bz2"; - sha256 = "1wj7mxs52kp5lmn5mvv574sygkfnk00kbz9ya9c03yfq5dd5nvy8"; - }; - installPhase = '' - mkdir -p $out/share/doc/python27 - cp -R ./ $out/share/doc/python27/text - ''; - meta = { - maintainers = [ ]; - }; -} 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 deleted file mode 100644 index 6efe8d5..0000000 --- a/pkgs/by-name/py/python/cpython/docs/3.10-html.nix +++ /dev/null @@ -1,20 +0,0 @@ -# This file was generated and will be overwritten by ./generate.sh - -{ stdenv, fetchurl, lib }: - -stdenv.mkDerivation { - pname = "python310-docs-html"; - version = "3.10.7"; - - src = fetchurl { - url = "http://www.python.org/ftp/python/doc/3.10.7/python-3.10.7-docs-html.tar.bz2"; - sha256 = "0j86z1vmaghzj5i4frvzyfb9qwsmm09g4f4ssx5w27cm30b8k0v1"; - }; - installPhase = '' - mkdir -p $out/share/doc/python310 - cp -R ./ $out/share/doc/python310/html - ''; - meta = { - maintainers = [ ]; - }; -} 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 deleted file mode 100644 index 1cbbf17..0000000 --- a/pkgs/by-name/py/python/cpython/docs/3.10-pdf-a4.nix +++ /dev/null @@ -1,20 +0,0 @@ -# This file was generated and will be overwritten by ./generate.sh - -{ stdenv, fetchurl, lib }: - -stdenv.mkDerivation { - pname = "python310-docs-pdf-a4"; - version = "3.10.7"; - - src = fetchurl { - url = "http://www.python.org/ftp/python/doc/3.10.7/python-3.10.7-docs-pdf-a4.tar.bz2"; - sha256 = "1gvi457dsj3ywwvxysp7idkk9ndngnby1dnfh1q8f5gv3kg4093r"; - }; - installPhase = '' - mkdir -p $out/share/doc/python310 - cp -R ./ $out/share/doc/python310/pdf-a4 - ''; - meta = { - maintainers = [ ]; - }; -} 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 deleted file mode 100644 index 6b24450..0000000 --- a/pkgs/by-name/py/python/cpython/docs/3.10-pdf-letter.nix +++ /dev/null @@ -1,20 +0,0 @@ -# This file was generated and will be overwritten by ./generate.sh - -{ stdenv, fetchurl, lib }: - -stdenv.mkDerivation { - pname = "python310-docs-pdf-letter"; - version = "3.10.7"; - - src = fetchurl { - url = "http://www.python.org/ftp/python/doc/3.10.7/python-3.10.7-docs-pdf-letter.tar.bz2"; - sha256 = "0hzq5n6absqsh21jp6j5iaim9a1wq69d8lc2assldzb2zg4i75hr"; - }; - installPhase = '' - mkdir -p $out/share/doc/python310 - cp -R ./ $out/share/doc/python310/pdf-letter - ''; - meta = { - maintainers = [ ]; - }; -} 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 deleted file mode 100644 index 694ed0e..0000000 --- a/pkgs/by-name/py/python/cpython/docs/3.10-texinfo.nix +++ /dev/null @@ -1,20 +0,0 @@ -# This file was generated and will be overwritten by ./generate.sh - -{ stdenv, fetchurl, lib }: - -stdenv.mkDerivation { - pname = "python310-docs-texinfo"; - version = "3.10.7"; - - src = fetchurl { - url = "http://www.python.org/ftp/python/doc/3.10.7/python-3.10.7-docs-texinfo.tar.bz2"; - sha256 = "0p0fifi84ijz4ng6krw7c1x965jhgysprkijblmlnax7x9rmqrdf"; - }; - installPhase = '' - mkdir -p $out/share/info - cp ./python.info $out/share/info - ''; - meta = { - maintainers = [ ]; - }; -} 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 deleted file mode 100644 index 4ada4e2..0000000 --- a/pkgs/by-name/py/python/cpython/docs/3.10-text.nix +++ /dev/null @@ -1,20 +0,0 @@ -# This file was generated and will be overwritten by ./generate.sh - -{ stdenv, fetchurl, lib }: - -stdenv.mkDerivation { - pname = "python310-docs-text"; - version = "3.10.7"; - - src = fetchurl { - url = "http://www.python.org/ftp/python/doc/3.10.7/python-3.10.7-docs-text.tar.bz2"; - sha256 = "1zbmm2fvdjnl214y41yffyqw3ywfai5r5npc00n1wkfxsdp7gcc3"; - }; - installPhase = '' - mkdir -p $out/share/doc/python310 - cp -R ./ $out/share/doc/python310/text - ''; - meta = { - maintainers = [ ]; - }; -} diff --git a/pkgs/by-name/py/python/cpython/docs/default.nix b/pkgs/by-name/py/python/cpython/docs/default.nix deleted file mode 100644 index b632478..0000000 --- a/pkgs/by-name/py/python/cpython/docs/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ stdenv, fetchurl, lib }: - -let -pythonDocs = { - html = { - recurseForDerivations = true; - python27 = import ./2.7-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; - }; - }; -}; in pythonDocs diff --git a/pkgs/by-name/py/python/cpython/docs/generate.sh b/pkgs/by-name/py/python/cpython/docs/generate.sh deleted file mode 100755 index 46db4d8..0000000 --- a/pkgs/by-name/py/python/cpython/docs/generate.sh +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/env bash - -cd -- "$(dirname -- "${BASH_SOURCE[0]}")" - -TYPES="html pdf-a4 pdf-letter text texinfo" -URL=http://www.python.org/ftp/python/doc/VERSION/python-VERSION-docs-TYPE.tar.bz2 -VERSIONS=$(for major in 2 3; do curl https://docs.python.org/$major/archives/ 2>/dev/null | perl -l -n -e'/default.nix <>default.nix < ${outfile} - - attrname=python${major}${minor} - cat >>default.nix <> default.nix -done - -echo "}; in pythonDocs" >> default.nix diff --git a/pkgs/by-name/py/python/cpython/docs/template-info.nix b/pkgs/by-name/py/python/cpython/docs/template-info.nix deleted file mode 100644 index 4f5d4b3..0000000 --- a/pkgs/by-name/py/python/cpython/docs/template-info.nix +++ /dev/null @@ -1,20 +0,0 @@ -# This file was generated and will be overwritten by ./generate.sh - -{ stdenv, fetchurl, lib }: - -stdenv.mkDerivation { - pname = "pythonMAJORMINOR-docs-TYPE"; - version = "VERSION"; - - src = fetchurl { - url = "URL"; - sha256 = "SHA"; - }; - installPhase = '' - mkdir -p $out/share/info - cp ./python.info $out/share/info - ''; - meta = { - maintainers = [ ]; - }; -} diff --git a/pkgs/by-name/py/python/cpython/docs/template.nix b/pkgs/by-name/py/python/cpython/docs/template.nix deleted file mode 100644 index fff6e0b..0000000 --- a/pkgs/by-name/py/python/cpython/docs/template.nix +++ /dev/null @@ -1,20 +0,0 @@ -# This file was generated and will be overwritten by ./generate.sh - -{ stdenv, fetchurl, lib }: - -stdenv.mkDerivation { - pname = "pythonMAJORMINOR-docs-TYPE"; - version = "VERSION"; - - src = fetchurl { - url = "URL"; - sha256 = "SHA"; - }; - installPhase = '' - mkdir -p $out/share/doc/pythonMAJORMINOR - cp -R ./ $out/share/doc/pythonMAJORMINOR/TYPE - ''; - meta = { - maintainers = [ ]; - }; -} diff --git a/pkgs/by-name/py/python/cpython/loongarch-support.patch b/pkgs/by-name/py/python/cpython/loongarch-support.patch deleted file mode 100644 index 44348c5..0000000 --- a/pkgs/by-name/py/python/cpython/loongarch-support.patch +++ /dev/null @@ -1,50 +0,0 @@ -diff --git a/configure b/configure -index 8133d47f61..334c98e208 100755 ---- a/configure -+++ b/configure -@@ -6215,6 +6215,20 @@ cat > conftest.c < conftest.c <=6) && defined(_MIPSEL) diff --git a/pkgs/by-name/py/python/cpython/mimetypes.patch b/pkgs/by-name/py/python/cpython/mimetypes.patch deleted file mode 100644 index 4ea700a..0000000 --- a/pkgs/by-name/py/python/cpython/mimetypes.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff --git i/Lib/mimetypes.py w/Lib/mimetypes.py -index f3343c8..ab5b886 100644 ---- i/Lib/mimetypes.py -+++ w/Lib/mimetypes.py -@@ -40,16 +40,8 @@ - ] - - knownfiles = [ -- "/etc/mime.types", -- "/etc/httpd/mime.types", # Mac OS X -- "/etc/httpd/conf/mime.types", # Apache -- "/etc/apache/mime.types", # Apache 1 -- "/etc/apache2/mime.types", # Apache 2 -- "/usr/local/etc/httpd/conf/mime.types", -- "/usr/local/lib/netscape/mime.types", -- "/usr/local/etc/httpd/conf/mime.types", # Apache 1.2 -- "/usr/local/etc/mime.types", # Apache 1.3 -- ] -+ "@mime-types@/etc/mime.types", -+] - - inited = False - _db = None diff --git a/pkgs/by-name/py/python/cpython/platform-triplet-detection.patch b/pkgs/by-name/py/python/cpython/platform-triplet-detection.patch deleted file mode 100644 index ec76546..0000000 --- a/pkgs/by-name/py/python/cpython/platform-triplet-detection.patch +++ /dev/null @@ -1,295 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index ba768aea93..621ac166bd 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -936,125 +936,192 @@ cat > conftest.c < -+# if defined(__UCLIBC__) -+# error uclibc not supported -+# elif defined(__dietlibc__) -+# error dietlibc not supported -+# elif defined(__GLIBC__) -+# define LIBC gnu -+# define LIBC_X32 gnux32 -+# if defined(__ARM_PCS_VFP) -+# define LIBC_ARM gnueabihf -+# else -+# define LIBC_ARM gnueabi -+# endif -+# if defined(__loongarch__) -+# if defined(__loongarch_soft_float) -+# define LIBC_LA gnusf -+# elif defined(__loongarch_single_float) -+# define LIBC_LA gnuf32 -+# elif defined(__loongarch_double_float) -+# define LIBC_LA gnu -+# else -+# error unknown loongarch floating-point base abi -+# endif -+# endif -+# if defined(_MIPS_SIM) -+# if defined(__mips_hard_float) -+# if _MIPS_SIM == _ABIO32 -+# define LIBC_MIPS gnu -+# elif _MIPS_SIM == _ABIN32 -+# define LIBC_MIPS gnuabin32 -+# elif _MIPS_SIM == _ABI64 -+# define LIBC_MIPS gnuabi64 -+# else -+# error unknown mips sim value -+# endif -+# else -+# if _MIPS_SIM == _ABIO32 -+# define LIBC_MIPS gnusf -+# elif _MIPS_SIM == _ABIN32 -+# define LIBC_MIPS gnuabin32sf -+# elif _MIPS_SIM == _ABI64 -+# define LIBC_MIPS gnuabi64sf -+# else -+# error unknown mips sim value -+# endif -+# endif -+# endif -+# if defined(__SPE__) -+# define LIBC_PPC gnuspe -+# else -+# define LIBC_PPC gnu -+# endif -+# else -+# include -+# ifdef __DEFINED_va_list -+# define LIBC musl -+# define LIBC_X32 muslx32 -+# if defined(__ARM_PCS_VFP) -+# define LIBC_ARM musleabihf -+# else -+# define LIBC_ARM musleabi -+# endif -+# if defined(__loongarch__) -+# if defined(__loongarch_soft_float) -+# define LIBC_LA muslsf -+# elif defined(__loongarch_single_float) -+# define LIBC_LA muslf32 -+# elif defined(__loongarch_double_float) -+# define LIBC_LA musl -+# else -+# error unknown loongarch floating-point base abi -+# endif -+# endif -+# if defined(_MIPS_SIM) -+# if defined(__mips_hard_float) -+# if _MIPS_SIM == _ABIO32 -+# define LIBC_MIPS musl -+# elif _MIPS_SIM == _ABIN32 -+# define LIBC_MIPS musln32 -+# elif _MIPS_SIM == _ABI64 -+# define LIBC_MIPS musl -+# else -+# error unknown mips sim value -+# endif -+# else -+# if _MIPS_SIM == _ABIO32 -+# define LIBC_MIPS muslsf -+# elif _MIPS_SIM == _ABIN32 -+# define LIBC_MIPS musln32sf -+# elif _MIPS_SIM == _ABI64 -+# define LIBC_MIPS muslsf -+# else -+# error unknown mips sim value -+# endif -+# endif -+# endif -+# if defined(_SOFT_FLOAT) || defined(__NO_FPRS__) -+# define LIBC_PPC muslsf -+# else -+# define LIBC_PPC musl -+# endif -+# else -+# error unknown libc -+# endif -+# endif - # if defined(__x86_64__) && defined(__LP64__) -- x86_64-linux-gnu -+ x86_64-linux-LIBC - # elif defined(__x86_64__) && defined(__ILP32__) -- x86_64-linux-gnux32 -+ x86_64-linux-LIBC_X32 - # elif defined(__i386__) -- i386-linux-gnu -+ i386-linux-LIBC - # elif defined(__aarch64__) && defined(__AARCH64EL__) - # if defined(__ILP32__) -- aarch64_ilp32-linux-gnu -+ aarch64_ilp32-linux-LIBC - # else -- aarch64-linux-gnu -+ aarch64-linux-LIBC - # endif - # elif defined(__aarch64__) && defined(__AARCH64EB__) - # if defined(__ILP32__) -- aarch64_be_ilp32-linux-gnu -+ aarch64_be_ilp32-linux-LIBC - # else -- aarch64_be-linux-gnu -+ aarch64_be-linux-LIBC - # endif - # elif defined(__alpha__) -- alpha-linux-gnu --# elif defined(__ARM_EABI__) && defined(__ARM_PCS_VFP) -+ alpha-linux-LIBC -+# elif defined(__ARM_EABI__) - # if defined(__ARMEL__) -- arm-linux-gnueabihf -+ arm-linux-LIBC_ARM - # else -- armeb-linux-gnueabihf --# endif --# elif defined(__ARM_EABI__) && !defined(__ARM_PCS_VFP) --# if defined(__ARMEL__) -- arm-linux-gnueabi --# else -- armeb-linux-gnueabi -+ armeb-linux-LIBC_ARM - # endif - # elif defined(__hppa__) -- hppa-linux-gnu -+ hppa-linux-LIBC - # elif defined(__ia64__) -- ia64-linux-gnu --# elif defined(__loongarch__) --# if defined(__loongarch_lp64) --# if defined(__loongarch_soft_float) -- loongarch64-linux-gnusf --# elif defined(__loongarch_single_float) -- loongarch64-linux-gnuf32 --# elif defined(__loongarch_double_float) -- loongarch64-linux-gnu -+ ia64-linux-LIBC -+# elif defined(__loongarch__) && defined(__loongarch_lp64) -+ loongarch64-linux-LIBC_LA -+# elif defined(__m68k__) && !defined(__mcoldfire__) -+ m68k-linux-LIBC -+# elif defined(__mips__) -+# if defined(__mips_isa_rev) && (__mips_isa_rev >=6) -+# if defined(_MIPSEL) && defined(__mips64) -+ mipsisa64r6el-linux-LIBC_MIPS -+# elif defined(_MIPSEL) -+ mipsisa32r6el-linux-LIBC_MIPS -+# elif defined(__mips64) -+ mipsisa64r6-linux-LIBC_MIPS - # else --# error unknown platform triplet -+ mipsisa32r6-linux-LIBC_MIPS - # endif - # else --# error unknown platform triplet --# endif --# elif defined(__m68k__) && !defined(__mcoldfire__) -- m68k-linux-gnu --# elif defined(__mips_hard_float) && defined(__mips_isa_rev) && (__mips_isa_rev >=6) && defined(_MIPSEL) --# if _MIPS_SIM == _ABIO32 -- mipsisa32r6el-linux-gnu --# elif _MIPS_SIM == _ABIN32 -- mipsisa64r6el-linux-gnuabin32 --# elif _MIPS_SIM == _ABI64 -- mipsisa64r6el-linux-gnuabi64 --# else --# error unknown platform triplet --# endif --# elif defined(__mips_hard_float) && defined(__mips_isa_rev) && (__mips_isa_rev >=6) --# if _MIPS_SIM == _ABIO32 -- mipsisa32r6-linux-gnu --# elif _MIPS_SIM == _ABIN32 -- mipsisa64r6-linux-gnuabin32 --# elif _MIPS_SIM == _ABI64 -- mipsisa64r6-linux-gnuabi64 --# else --# error unknown platform triplet --# endif --# elif defined(__mips_hard_float) && defined(_MIPSEL) --# if _MIPS_SIM == _ABIO32 -- mipsel-linux-gnu --# elif _MIPS_SIM == _ABIN32 -- mips64el-linux-gnuabin32 --# elif _MIPS_SIM == _ABI64 -- mips64el-linux-gnuabi64 --# else --# error unknown platform triplet --# endif --# elif defined(__mips_hard_float) --# if _MIPS_SIM == _ABIO32 -- mips-linux-gnu --# elif _MIPS_SIM == _ABIN32 -- mips64-linux-gnuabin32 --# elif _MIPS_SIM == _ABI64 -- mips64-linux-gnuabi64 --# else --# error unknown platform triplet -+# if defined(_MIPSEL) && defined(__mips64) -+ mips64el-linux-LIBC_MIPS -+# elif defined(_MIPSEL) -+ mipsel-linux-LIBC_MIPS -+# elif defined(__mips64) -+ mips64-linux-LIBC_MIPS -+# else -+ mips-linux-LIBC_MIPS -+# endif - # endif - # elif defined(__or1k__) -- or1k-linux-gnu --# elif defined(__powerpc__) && defined(__SPE__) -- powerpc-linux-gnuspe -+ or1k-linux-LIBC - # elif defined(__powerpc64__) - # if defined(__LITTLE_ENDIAN__) -- powerpc64le-linux-gnu -+ powerpc64le-linux-LIBC - # else -- powerpc64-linux-gnu -+ powerpc64-linux-LIBC - # endif - # elif defined(__powerpc__) -- powerpc-linux-gnu -+ powerpc-linux-LIBC_PPC - # elif defined(__s390x__) -- s390x-linux-gnu -+ s390x-linux-LIBC - # elif defined(__s390__) -- s390-linux-gnu -+ s390-linux-LIBC - # elif defined(__sh__) && defined(__LITTLE_ENDIAN__) -- sh4-linux-gnu -+ sh4-linux-LIBC - # elif defined(__sparc__) && defined(__arch64__) -- sparc64-linux-gnu -+ sparc64-linux-LIBC - # elif defined(__sparc__) -- sparc-linux-gnu -+ sparc-linux-LIBC - # elif defined(__riscv) - # if __riscv_xlen == 32 -- riscv32-linux-gnu -+ riscv32-linux-LIBC - # elif __riscv_xlen == 64 -- riscv64-linux-gnu -+ riscv64-linux-LIBC - # else - # error unknown platform triplet - # endif -@@ -1102,12 +1169,7 @@ cat > conftest.c <conftest.out 2>/dev/null; then -- PLATFORM_TRIPLET=`grep -v '^#' conftest.out | grep -v '^ *$' | tr -d ' '` -- case "$build_os" in -- linux-musl*) -- PLATFORM_TRIPLET=`echo "$PLATFORM_TRIPLET" | sed 's/linux-gnu/linux-musl/'` -- ;; -- esac -+ PLATFORM_TRIPLET=`grep -v '^#' conftest.out | grep -v '^ *$' | grep -v typedef | tr -d ' '` - AC_MSG_RESULT([$PLATFORM_TRIPLET]) - else - AC_MSG_RESULT([none]) diff --git a/pkgs/by-name/py/python/cpython/virtualenv-permissions.patch b/pkgs/by-name/py/python/cpython/virtualenv-permissions.patch deleted file mode 100644 index c686f21..0000000 --- a/pkgs/by-name/py/python/cpython/virtualenv-permissions.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/Lib/venv/__init__.py b/Lib/venv/__init__.py -index caa7285..ad666ac 100644 ---- a/Lib/venv/__init__.py -+++ b/Lib/venv/__init__.py -@@ -379,7 +379,7 @@ class EnvBuilder: - if data is not None: - with open(dstfile, 'wb') as f: - f.write(data) -- shutil.copymode(srcfile, dstfile) -+ os.chmod(dstfile, 0o644) - - - def create(env_dir, system_site_packages=False, clear=False, diff --git a/pkgs/by-name/py/python/default.nix b/pkgs/by-name/py/python/default.nix deleted file mode 100644 index 4cc3f6f..0000000 --- a/pkgs/by-name/py/python/default.nix +++ /dev/null @@ -1,213 +0,0 @@ -{ __splicedPackages -, callPackage -, config -, darwin -, db -, lib -, libffiBoot -, makeScopeWithSplicing' -, pythonPackagesExtensions -, stdenv -}@args: - -(let - - # Common passthru for all Python interpreters. - passthruFun = import ./passthrufun.nix args; - - 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 = "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-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/conda-install-hook.sh b/pkgs/by-name/py/python/hooks/conda-install-hook.sh deleted file mode 100644 index af9ed60..0000000 --- a/pkgs/by-name/py/python/hooks/conda-install-hook.sh +++ /dev/null @@ -1,27 +0,0 @@ -# Setup hook to use in case a conda binary package is installed -echo "Sourcing conda install hook" - -condaInstallPhase(){ - echo "Executing condaInstallPhase" - runHook preInstall - - # There are two different formats of conda packages. - # It either contains only a site-packages directory - # or multiple top level directories. - siteDir=@pythonSitePackages@ - if [ -e ./site-packages ]; then - mkdir -p $out/$siteDir - cp -r ./site-packages/* $out/$siteDir - else - cp -r . $out - rm $out/env-vars - fi - - runHook postInstall - echo "Finished executing condaInstallPhase" -} - -if [ -z "${installPhase-}" ]; then - echo "Using condaInstallPhase" - installPhase=condaInstallPhase -fi diff --git a/pkgs/by-name/py/python/hooks/conda-unpack-hook.sh b/pkgs/by-name/py/python/hooks/conda-unpack-hook.sh deleted file mode 100644 index 6204c13..0000000 --- a/pkgs/by-name/py/python/hooks/conda-unpack-hook.sh +++ /dev/null @@ -1,18 +0,0 @@ -# Setup hook to use in case a conda binary package is fetched -echo "Sourcing conda unpack hook" - -condaUnpackPhase(){ - echo "Executing condaUnpackPhase" - runHook preUnpack - - # use lbzip2 for parallel decompression (bz2 is slow) - lbzip2 -dc -n $NIX_BUILD_CORES $src | tar --exclude='info' -x - - # runHook postUnpack # Calls find...? - echo "Finished executing condaUnpackPhase" -} - -if [ -z "${unpackPhase-}" ]; then - echo "Using condaUnpackPhase" - unpackPhase=condaUnpackPhase -fi diff --git a/pkgs/by-name/py/python/hooks/default.nix b/pkgs/by-name/py/python/hooks/default.nix deleted file mode 100644 index c61cd77..0000000 --- a/pkgs/by-name/py/python/hooks/default.nix +++ /dev/null @@ -1,259 +0,0 @@ -self: dontUse: with self; - -let - inherit (python) pythonOnBuildForHost; - inherit (pkgs) runCommand; - pythonInterpreter = pythonOnBuildForHost.interpreter; - 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); - - condaInstallHook = callPackage ({ makePythonHook, gnutar, lbzip2 }: - makePythonHook { - name = "conda-install-hook"; - propagatedBuildInputs = [ gnutar lbzip2 ]; - substitutions = { - inherit pythonSitePackages; - }; - } ./conda-install-hook.sh) {}; - - condaUnpackHook = callPackage ({ makePythonHook }: - makePythonHook { - name = "conda-unpack-hook"; - propagatedBuildInputs = []; - } ./conda-unpack-hook.sh) {}; - - eggBuildHook = callPackage ({ makePythonHook }: - makePythonHook { - name = "egg-build-hook.sh"; - propagatedBuildInputs = [ ]; - } ./egg-build-hook.sh) {}; - - eggInstallHook = callPackage ({ makePythonHook, setuptools }: - makePythonHook { - name = "egg-install-hook.sh"; - propagatedBuildInputs = [ setuptools ]; - substitutions = { - inherit pythonInterpreter pythonSitePackages; - }; - } ./egg-install-hook.sh) {}; - - eggUnpackHook = callPackage ({ makePythonHook, }: - makePythonHook { - name = "egg-unpack-hook.sh"; - propagatedBuildInputs = [ ]; - } ./egg-unpack-hook.sh) {}; - - pipBuildHook = callPackage ({ makePythonHook, pip, wheel }: - makePythonHook { - name = "pip-build-hook.sh"; - propagatedBuildInputs = [ pip wheel ]; - substitutions = { - inherit pythonInterpreter pythonSitePackages; - }; - } ./pip-build-hook.sh) {}; - - pypaBuildHook = callPackage ({ makePythonHook, build, wheel }: - makePythonHook { - name = "pypa-build-hook.sh"; - propagatedBuildInputs = [ wheel ]; - substitutions = { - inherit build; - }; - # A test to ensure that this hook never propagates any of its dependencies - # into the build environment. - # This prevents false positive alerts raised by catchConflictsHook. - # 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; - }; - - pipInstallHook = callPackage ({ makePythonHook, pip }: - makePythonHook { - name = "pip-install-hook"; - propagatedBuildInputs = [ pip ]; - substitutions = { - inherit pythonInterpreter pythonSitePackages; - }; - } ./pip-install-hook.sh) {}; - - pypaInstallHook = callPackage ({ makePythonHook, installer }: - makePythonHook { - name = "pypa-install-hook"; - propagatedBuildInputs = [ installer ]; - substitutions = { - inherit pythonInterpreter pythonSitePackages; - }; - } ./pypa-install-hook.sh) { - inherit (pythonOnBuildForHost.pkgs) installer; - }; - - pytestCheckHook = callPackage ({ makePythonHook, pytest }: - makePythonHook { - name = "pytest-check-hook"; - propagatedBuildInputs = [ pytest ]; - substitutions = { - inherit pythonCheckInterpreter; - }; - } ./pytest-check-hook.sh) {}; - - 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; - }; - passthru.tests = import ./python-catch-conflicts-hook-tests.nix { - inherit pythonOnBuildForHost runCommand; - inherit (pkgs) coreutils gnugrep writeShellScript; - }; - } ./python-catch-conflicts-hook.sh) {}; - - pythonImportsCheckHook = callPackage ({ makePythonHook }: - makePythonHook { - name = "python-imports-check-hook.sh"; - substitutions = { - inherit pythonCheckInterpreter pythonSitePackages; - }; - } ./python-imports-check-hook.sh) {}; - - pythonNamespacesHook = callPackage ({ makePythonHook, buildPackages }: - makePythonHook { - name = "python-namespaces-hook.sh"; - substitutions = { - inherit pythonSitePackages; - inherit (buildPackages) findutils; - }; - } ./python-namespaces-hook.sh) {}; - - pythonOutputDistHook = callPackage ({ makePythonHook }: - makePythonHook { - name = "python-output-dist-hook"; - } ./python-output-dist-hook.sh ) {}; - - 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"]); - bytecodeName = if isPy3k then "__pycache__" else "*.pyc"; - }; - } ./python-recompile-bytecode-hook.sh ) {}; - - pythonRelaxDepsHook = callPackage ({ makePythonHook, wheel }: - makePythonHook { - name = "python-relax-deps-hook"; - substitutions = { - inherit pythonInterpreter pythonSitePackages wheel; - }; - } ./python-relax-deps-hook.sh) {}; - - pythonRemoveBinBytecodeHook = callPackage ({ makePythonHook }: - makePythonHook { - name = "python-remove-bin-bytecode-hook"; - } ./python-remove-bin-bytecode-hook.sh) {}; - - pythonRemoveTestsDirHook = callPackage ({ makePythonHook }: - makePythonHook { - name = "python-remove-tests-dir-hook"; - substitutions = { - inherit pythonSitePackages; - }; - } ./python-remove-tests-dir-hook.sh) {}; - - pythonRuntimeDepsCheckHook = callPackage ({ makePythonHook, packaging }: - makePythonHook { - name = "python-runtime-deps-check-hook.sh"; - propagatedBuildInputs = [ packaging ]; - substitutions = { - inherit pythonInterpreter pythonSitePackages; - hook = ./python-runtime-deps-check-hook.py; - }; - } ./python-runtime-deps-check-hook.sh) {}; - - setuptoolsBuildHook = callPackage ({ makePythonHook, setuptools, wheel }: - makePythonHook { - name = "setuptools-build-hook"; - 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) {}; - - setuptoolsCheckHook = callPackage ({ makePythonHook, setuptools }: - makePythonHook { - name = "setuptools-check-hook"; - propagatedBuildInputs = [ setuptools ]; - substitutions = { - inherit pythonCheckInterpreter setuppy; - }; - } ./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) {}; - - unittestCheckHook = callPackage ({ makePythonHook }: - makePythonHook { - name = "unittest-check-hook"; - substitutions = { - inherit pythonCheckInterpreter; - }; - } ./unittest-check-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 }: - makePythonHook { - name = "wheel-unpack-hook.sh"; - propagatedBuildInputs = [ wheel ]; - } ./wheel-unpack-hook.sh) {}; - - wrapPython = callPackage ../wrap-python.nix { - inherit (pkgs.buildPackages) makeWrapper; - }; - - sphinxHook = callPackage ({ makePythonHook, installShellFiles }: - makePythonHook { - name = "python${python.pythonVersion}-sphinx-hook"; - propagatedBuildInputs = [ pythonOnBuildForHost.pkgs.sphinx installShellFiles ]; - substitutions = { - sphinxBuild = "${pythonOnBuildForHost.pkgs.sphinx}/bin/sphinx-build"; - }; - } ./sphinx-hook.sh) {}; -} diff --git a/pkgs/by-name/py/python/hooks/egg-build-hook.sh b/pkgs/by-name/py/python/hooks/egg-build-hook.sh deleted file mode 100644 index d5abc8d..0000000 --- a/pkgs/by-name/py/python/hooks/egg-build-hook.sh +++ /dev/null @@ -1,15 +0,0 @@ -# Setup hook to use for eggs -echo "Sourcing egg-build-hook" - -eggBuildPhase() { - echo "Executing eggBuildPhase" - runHook preBuild - - runHook postBuild - echo "Finished executing eggBuildPhase" -} - -if [ -z "${dontUseEggBuild-}" ] && [ -z "${buildPhase-}" ]; then - echo "Using eggBuildPhase" - buildPhase=eggBuildPhase -fi diff --git a/pkgs/by-name/py/python/hooks/egg-install-hook.sh b/pkgs/by-name/py/python/hooks/egg-install-hook.sh deleted file mode 100644 index ae894fb..0000000 --- a/pkgs/by-name/py/python/hooks/egg-install-hook.sh +++ /dev/null @@ -1,21 +0,0 @@ -# Setup hook for eggs -echo "Sourcing egg-install-hook" - -eggInstallPhase() { - echo "Executing eggInstallPhase" - runHook preInstall - - mkdir -p "$out/@pythonSitePackages@" - export PYTHONPATH="$out/@pythonSitePackages@:$PYTHONPATH" - - find - @pythonInterpreter@ -m easy_install --prefix="$out" *.egg - - runHook postInstall - echo "Finished executing eggInstallPhase" -} - -if [ -z "${dontUseEggInstall-}" ] && [ -z "${installPhase-}" ]; then - echo "Using eggInstallPhase" - installPhase=eggInstallPhase -fi diff --git a/pkgs/by-name/py/python/hooks/egg-unpack-hook.sh b/pkgs/by-name/py/python/hooks/egg-unpack-hook.sh deleted file mode 100644 index c8ed3de..0000000 --- a/pkgs/by-name/py/python/hooks/egg-unpack-hook.sh +++ /dev/null @@ -1,17 +0,0 @@ -# Setup hook to use in case an egg is fetched -echo "Sourcing egg setup hook" - -eggUnpackPhase(){ - echo "Executing eggUnpackPhase" - runHook preUnpack - - cp "$src" "$(stripHash "$src")" - -# runHook postUnpack # Calls find...? - echo "Finished executing eggUnpackPhase" -} - -if [ -z "${dontUseEggUnpack-}" ] && [ -z "${unpackPhase-}" ]; then - echo "Using eggUnpackPhase" - unpackPhase=eggUnpackPhase -fi diff --git a/pkgs/by-name/py/python/hooks/pip-build-hook.sh b/pkgs/by-name/py/python/hooks/pip-build-hook.sh deleted file mode 100644 index 9de4c7d..0000000 --- a/pkgs/by-name/py/python/hooks/pip-build-hook.sh +++ /dev/null @@ -1,52 +0,0 @@ -# Setup hook to use for pip projects -echo "Sourcing pip-build-hook" - -declare -a pipBuildFlags - -pipBuildPhase() { - echo "Executing pipBuildPhase" - runHook preBuild - - mkdir -p dist - echo "Creating a wheel..." - @pythonInterpreter@ -m pip wheel \ - --verbose \ - --no-index \ - --no-deps \ - --no-clean \ - --no-build-isolation \ - --wheel-dir dist \ - $pipBuildFlags . - echo "Finished creating a wheel..." - - runHook postBuild - echo "Finished executing pipBuildPhase" -} - -pipShellHook() { - echo "Executing pipShellHook" - runHook preShellHook - - # Long-term setup.py should be dropped. - if [ -e pyproject.toml ]; then - tmp_path=$(mktemp -d) - export PATH="$tmp_path/bin:$PATH" - export PYTHONPATH="$tmp_path/@pythonSitePackages@:$PYTHONPATH" - mkdir -p "$tmp_path/@pythonSitePackages@" - @pythonInterpreter@ -m pip install -e . --prefix "$tmp_path" \ - --no-build-isolation >&2 - fi - - runHook postShellHook - echo "Finished executing pipShellHook" -} - -if [ -z "${dontUsePipBuild-}" ] && [ -z "${buildPhase-}" ]; then - echo "Using pipBuildPhase" - buildPhase=pipBuildPhase -fi - -if [ -z "${shellHook-}" ]; then - echo "Using pipShellHook" - shellHook=pipShellHook -fi diff --git a/pkgs/by-name/py/python/hooks/pip-install-hook.sh b/pkgs/by-name/py/python/hooks/pip-install-hook.sh deleted file mode 100644 index a4f08b8..0000000 --- a/pkgs/by-name/py/python/hooks/pip-install-hook.sh +++ /dev/null @@ -1,24 +0,0 @@ -# Setup hook for pip. -echo "Sourcing pip-install-hook" - -declare -a pipInstallFlags - -pipInstallPhase() { - echo "Executing pipInstallPhase" - runHook preInstall - - mkdir -p "$out/@pythonSitePackages@" - export PYTHONPATH="$out/@pythonSitePackages@:$PYTHONPATH" - - pushd dist || return 1 - @pythonInterpreter@ -m pip install ./*.whl --no-index --no-warn-script-location --prefix="$out" --no-cache $pipInstallFlags - popd || return 1 - - runHook postInstall - echo "Finished executing pipInstallPhase" -} - -if [ -z "${dontUsePipInstall-}" ] && [ -z "${installPhase-}" ]; then - echo "Using pipInstallPhase" - installPhase=pipInstallPhase -fi 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 deleted file mode 100644 index 4153c21..0000000 --- a/pkgs/by-name/py/python/hooks/pypa-build-hook-test.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ 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 { - pname = "dont-propagate-conflicting-deps"; - version = "0.0.0"; - src = projectSource; - format = "pyproject"; - propagatedBuildInputs = [ - # At least one dependency of `build` should be included here to - # keep the test meaningful - (mkConflict pythonOnBuildForHost.pkgs.tomli) - # setuptools is also needed to build the example project - pythonOnBuildForHost.pkgs.setuptools - ]; - }; -} diff --git a/pkgs/by-name/py/python/hooks/pypa-build-hook.sh b/pkgs/by-name/py/python/hooks/pypa-build-hook.sh deleted file mode 100644 index dd49d93..0000000 --- a/pkgs/by-name/py/python/hooks/pypa-build-hook.sh +++ /dev/null @@ -1,19 +0,0 @@ -# Setup hook to use for pypa/build projects -echo "Sourcing pypa-build-hook" - -pypaBuildPhase() { - echo "Executing pypaBuildPhase" - runHook preBuild - - echo "Creating a wheel..." - @build@/bin/pyproject-build --no-isolation --outdir dist/ --wheel $pypaBuildFlags - echo "Finished creating a wheel..." - - runHook postBuild - echo "Finished executing pypaBuildPhase" -} - -if [ -z "${dontUsePypaBuild-}" ] && [ -z "${buildPhase-}" ]; then - echo "Using pypaBuildPhase" - buildPhase=pypaBuildPhase -fi diff --git a/pkgs/by-name/py/python/hooks/pypa-install-hook.sh b/pkgs/by-name/py/python/hooks/pypa-install-hook.sh deleted file mode 100644 index 2d92574..0000000 --- a/pkgs/by-name/py/python/hooks/pypa-install-hook.sh +++ /dev/null @@ -1,26 +0,0 @@ -# Setup hook for PyPA installer. -echo "Sourcing pypa-install-hook" - -pypaInstallPhase() { - echo "Executing pypaInstallPhase" - runHook preInstall - - pushd dist > /dev/null - - for wheel in *.whl; do - @pythonInterpreter@ -m installer --prefix "$out" "$wheel" - echo "Successfully installed $wheel" - done - - popd > /dev/null - - export PYTHONPATH="$out/@pythonSitePackages@:$PYTHONPATH" - - runHook postInstall - echo "Finished executing pypaInstallPhase" -} - -if [ -z "${dontUsePypaInstall-}" ] && [ -z "${installPhase-}" ]; then - echo "Using pypaInstallPhase" - installPhase=pypaInstallPhase -fi diff --git a/pkgs/by-name/py/python/hooks/pytest-check-hook.sh b/pkgs/by-name/py/python/hooks/pytest-check-hook.sh deleted file mode 100644 index 0f708f8..0000000 --- a/pkgs/by-name/py/python/hooks/pytest-check-hook.sh +++ /dev/null @@ -1,74 +0,0 @@ -# Setup hook for pytest -echo "Sourcing pytest-check-hook" - -declare -ar disabledTests -declare -a disabledTestPaths - -function _concatSep { - local result - local sep="$1" - local -n arr=$2 - for index in ${!arr[*]}; do - if [ $index -eq 0 ]; then - result="${arr[index]}" - else - result+=" $sep ${arr[index]}" - fi - done - echo "$result" -} - -function _pytestComputeDisabledTestsString () { - declare -a tests - local tests=($1) - local prefix="not " - prefixed=( "${tests[@]/#/$prefix}" ) - result=$(_concatSep "and" prefixed) - echo "$result" -} - -function pytestCheckPhase() { - echo "Executing pytestCheckPhase" - runHook preCheck - - # Compose arguments - args=" -m pytest" - if [ -n "$disabledTests" ]; then - disabledTestsString=$(_pytestComputeDisabledTestsString "${disabledTests[@]}") - args+=" -k \""$disabledTestsString"\"" - fi - - if [ -n "${disabledTestPaths-}" ]; then - eval "disabledTestPaths=($disabledTestPaths)" - fi - - for path in ${disabledTestPaths[@]}; do - if [ ! -e "$path" ]; then - echo "Disabled tests path \"$path\" does not exist. Aborting" - exit 1 - fi - args+=" --ignore=\"$path\"" - done - args+=" ${pytestFlagsArray[@]}" - eval "@pythonCheckInterpreter@ $args" - - runHook postCheck - echo "Finished executing pytestCheckPhase" -} - -if [ -z "${dontUsePytestCheck-}" ] && [ -z "${installCheckPhase-}" ]; then - echo "Using pytestCheckPhase" - preDistPhases+=" pytestCheckPhase" - - # It's almost always the case that setuptoolsCheckPhase should not be ran - # when the pytestCheckHook is being ran - if [ -z "${useSetuptoolsCheck-}" ]; then - dontUseSetuptoolsCheck=1 - - # Remove command if already injected into preDistPhases - if [[ "$preDistPhases" =~ "setuptoolsCheckPhase" ]]; then - echo "Removing setuptoolsCheckPhase" - preDistPhases=${preDistPhases/setuptoolsCheckPhase/} - fi - fi -fi 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 deleted file mode 100644 index cba1034..0000000 --- a/pkgs/by-name/py/python/hooks/python-catch-conflicts-hook-tests.nix +++ /dev/null @@ -1,146 +0,0 @@ -{ pythonOnBuildForHost, runCommand, writeShellScript, coreutils, gnugrep }: let - - pythonPkgs = pythonOnBuildForHost.pkgs; - - ### UTILITIES - - # customize a package so that its store paths differs - customize = pkg: pkg.overrideAttrs { some_modification = true; }; - - # generates minimal pyproject.toml - 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 - ''; - - # 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 - ); - - # 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 { - - ### TEST CASES - - # Test case which must not trigger any conflicts. - # 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) - ]; - }; - - # multi-output derivation with dependency on itself must not crash - 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 - expectFailure package "Found duplicated packages in closure for dependency 'packaging'"; - - - /* - More complex test case with a transitive conflict - - Test sets up this dependency tree: - - toplevel - ├── dep1 - │ └── leaf - └── 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 - expectFailure toplevel "Found duplicated packages in closure for dependency 'leaf'"; -} diff --git a/pkgs/by-name/py/python/hooks/python-catch-conflicts-hook.sh b/pkgs/by-name/py/python/hooks/python-catch-conflicts-hook.sh deleted file mode 100644 index 0abcad3..0000000 --- a/pkgs/by-name/py/python/hooks/python-catch-conflicts-hook.sh +++ /dev/null @@ -1,10 +0,0 @@ -# Setup hook for detecting conflicts in Python packages -echo "Sourcing python-catch-conflicts-hook.sh" - -pythonCatchConflictsPhase() { - PYTHONPATH="@setuptools@/@pythonSitePackages@:$PYTHONPATH" @pythonInterpreter@ @catchConflicts@ -} - -if [ -z "${dontUsePythonCatchConflicts-}" ]; then - preDistPhases+=" pythonCatchConflictsPhase" -fi diff --git a/pkgs/by-name/py/python/hooks/python-imports-check-hook.sh b/pkgs/by-name/py/python/hooks/python-imports-check-hook.sh deleted file mode 100644 index 7172ac4..0000000 --- a/pkgs/by-name/py/python/hooks/python-imports-check-hook.sh +++ /dev/null @@ -1,17 +0,0 @@ -# Setup hook for checking whether Python imports succeed -echo "Sourcing python-imports-check-hook.sh" - -pythonImportsCheckPhase () { - echo "Executing pythonImportsCheckPhase" - - if [ -n "$pythonImportsCheck" ]; then - echo "Check whether the following modules can be imported: $pythonImportsCheck" - export PYTHONPATH="$out/@pythonSitePackages@:$PYTHONPATH" - ( cd $out && eval "@pythonCheckInterpreter@ -c 'import os; import importlib; list(map(lambda mod: importlib.import_module(mod), os.environ[\"pythonImportsCheck\"].split()))'" ) - fi -} - -if [ -z "${dontUsePythonImportsCheck-}" ]; then - echo "Using pythonImportsCheckPhase" - preDistPhases+=" pythonImportsCheckPhase" -fi diff --git a/pkgs/by-name/py/python/hooks/python-namespaces-hook.sh b/pkgs/by-name/py/python/hooks/python-namespaces-hook.sh deleted file mode 100644 index 37479d9..0000000 --- a/pkgs/by-name/py/python/hooks/python-namespaces-hook.sh +++ /dev/null @@ -1,52 +0,0 @@ -# Clean up __init__.py's found in namespace directories -echo "Sourcing python-namespaces-hook" - -pythonNamespacesHook() { - echo "Executing pythonNamespacesHook" - - for namespace in ${pythonNamespaces[@]}; do - echo "Enforcing PEP420 namespace: ${namespace}" - - # split namespace into segments. "azure.mgmt" -> "azure mgmt" - IFS='.' read -ra pathSegments <<< $namespace - constructedPath=$out/@pythonSitePackages@ - - # Need to remove the __init__.py at each namespace level - # E.g `azure/__init__.py` and `azure/mgmt/__init__.py` - # The __pycache__ entry also needs to be removed - for pathSegment in ${pathSegments[@]}; do - constructedPath=${constructedPath}/${pathSegment} - pathToRemove=${constructedPath}/__init__.py - pycachePath=${constructedPath}/__pycache__/ - - # remove __init__.py - if [ -f "$pathToRemove" ]; then - rm -v "$pathToRemove" - fi - - # remove ${pname}-${version}-${python-interpeter}-nspkg.pth - # - # Still need to check that parent directory exists in the - # event of a "meta-package" package, which will just install - # other packages, but not produce anything in site-packages - # besides meta information - if [ -d "${constructedPath}/../" -a -z ${dontRemovePth-} ]; then - # .pth files are located in the parent directory of a module - @findutils@/bin/find ${constructedPath}/../ -name '*-nspkg.pth' -exec rm -v "{}" + - fi - - # remove __pycache__/ entry, can be interpreter specific. E.g. __init__.cpython-38.pyc - # use null characters to perserve potential whitespace in filepath - if [ -d "$pycachePath" ]; then - @findutils@/bin/find "$pycachePath" -name '__init__*' -exec rm -v "{}" + - fi - done - done - - echo "Finished executing pythonNamespacesHook" -} - -if [ -z "${dontUsePythonNamespacesHook-}" -a -n "${pythonNamespaces-}" ]; then - postFixupHooks+=(pythonNamespacesHook) -fi - diff --git a/pkgs/by-name/py/python/hooks/python-output-dist-hook.sh b/pkgs/by-name/py/python/hooks/python-output-dist-hook.sh deleted file mode 100644 index 83b79d0..0000000 --- a/pkgs/by-name/py/python/hooks/python-output-dist-hook.sh +++ /dev/null @@ -1,24 +0,0 @@ -# Setup hook for storing dist folder (wheels/sdists) in a separate output -echo "Sourcing python-catch-conflicts-hook.sh" - -pythonOutputDistPhase() { - echo "Executing pythonOutputDistPhase" - if [[ -d dist ]]; then - mv "dist" "$dist" - else - cat >&2 <1,<=2 -> abc -# pythonRelaxDeps = [ "abc" ]; -# # This will relax all dependencies restrictions instead -# # pythonRelaxDeps = true; -# # This will remove the dependency -# # e.g.: cde>1,<=2 -> -# pythonRemoveDeps = [ "cde" ]; -# # This will remove all dependencies from the project -# # pythonRemoveDeps = true; -# … -# } -# -# IMPLEMENTATION NOTES: -# -# The "Requires-Dist" dependency specification format is described in PEP 508. -# Examples that the regular expressions in this hook needs to support: -# -# Requires-Dist: foo -# -> foo -# Requires-Dist: foo[optional] -# -> foo[optional] -# Requires-Dist: foo[optional]~=1.2.3 -# -> foo[optional] -# Requires-Dist: foo[optional, xyz] (~=1.2.3) -# -> foo[optional, xyz] -# Requires-Dist: foo[optional]~=1.2.3 ; os_name = "posix" -# -> foo[optional] ; os_name = "posix" -# -# Currently unsupported: URL specs (foo @ https://example.com/a.zip). - -_pythonRelaxDeps() { - local -r metadata_file="$1" - - if [[ -z "${pythonRelaxDeps:-}" ]] || [[ "$pythonRelaxDeps" == 0 ]]; then - return - elif [[ "$pythonRelaxDeps" == 1 ]]; then - sed -i "$metadata_file" -r \ - -e 's/(Requires-Dist: [a-zA-Z0-9_.-]+\s*(\[[^]]+\])?)[^;]*(;.*)?/\1\3/' - else - for dep in $pythonRelaxDeps; do - sed -i "$metadata_file" -r \ - -e "s/(Requires-Dist: $dep\s*(\[[^]]+\])?)[^;]*(;.*)?/\1\3/i" - done - fi -} - -_pythonRemoveDeps() { - local -r metadata_file="$1" - - if [[ -z "${pythonRemoveDeps:-}" ]] || [[ "$pythonRemoveDeps" == 0 ]]; then - return - elif [[ "$pythonRemoveDeps" == 1 ]]; then - sed -i "$metadata_file" \ - -e '/Requires-Dist:.*/d' - else - for dep in $pythonRemoveDeps; do - sed -i "$metadata_file" \ - -e "/Requires-Dist: $dep/d" - done - fi - -} - -pythonRelaxDepsHook() { - pushd dist - - local -r unpack_dir="unpacked" - local -r metadata_file="$unpack_dir/*/*.dist-info/METADATA" - - # We generally shouldn't have multiple wheel files, but let's be safer here - for wheel in *".whl"; do - - PYTHONPATH="@wheel@/@pythonSitePackages@:$PYTHONPATH" \ - @pythonInterpreter@ -m wheel unpack --dest "$unpack_dir" "$wheel" - rm -rf "$wheel" - - # Using no quotes on purpose since we need to expand the glob from `$metadata_file` - _pythonRelaxDeps $metadata_file - _pythonRemoveDeps $metadata_file - - if (( "${NIX_DEBUG:-0}" >= 1 )); then - echo "pythonRelaxDepsHook: resulting METADATA for '$wheel':" - cat $metadata_file - fi - - PYTHONPATH="@wheel@/@pythonSitePackages@:$PYTHONPATH" \ - @pythonInterpreter@ -m wheel pack "$unpack_dir/"* - done - - # Remove the folder since it will otherwise be in the dist output. - rm -rf "$unpack_dir" - - popd -} - -postBuild+=" pythonRelaxDepsHook" diff --git a/pkgs/by-name/py/python/hooks/python-remove-bin-bytecode-hook.sh b/pkgs/by-name/py/python/hooks/python-remove-bin-bytecode-hook.sh deleted file mode 100644 index 1180694..0000000 --- a/pkgs/by-name/py/python/hooks/python-remove-bin-bytecode-hook.sh +++ /dev/null @@ -1,17 +0,0 @@ -# Setup hook for removing bytecode from the bin folder -echo "Sourcing python-remove-bin-bytecode-hook.sh" - -# The bin folder is added to $PATH and should only contain executables. -# It may happen there are executables with a .py extension for which -# bytecode is generated. This hook removes that bytecode. - -pythonRemoveBinBytecodePhase () { - if [ -d "$out/bin" ]; then - rm -rf "$out/bin/__pycache__" # Python 3 - find "$out/bin" -type f -name "*.pyc" -delete # Python 2 - fi -} - -if [ -z "${dontUsePythonRemoveBinBytecode-}" ]; then - preDistPhases+=" pythonRemoveBinBytecodePhase" -fi diff --git a/pkgs/by-name/py/python/hooks/python-remove-tests-dir-hook.sh b/pkgs/by-name/py/python/hooks/python-remove-tests-dir-hook.sh deleted file mode 100644 index ad9e3c0..0000000 --- a/pkgs/by-name/py/python/hooks/python-remove-tests-dir-hook.sh +++ /dev/null @@ -1,15 +0,0 @@ -# Clean up top-level tests directory in site-package installation. -echo "Sourcing python-remove-tests-dir-hook" - -pythonRemoveTestsDir() { - echo "Executing pythonRemoveTestsDir" - - rm -rf $out/@pythonSitePackages@/tests - rm -rf $out/@pythonSitePackages@/test - - echo "Finished executing pythonRemoveTestsDir" -} - -if [ -z "${dontUsePythonRemoveTestsDir-}" ]; then - postFixupHooks+=(pythonRemoveTestsDir) -fi diff --git a/pkgs/by-name/py/python/hooks/python-runtime-deps-check-hook.py b/pkgs/by-name/py/python/hooks/python-runtime-deps-check-hook.py deleted file mode 100644 index 36ce389..0000000 --- a/pkgs/by-name/py/python/hooks/python-runtime-deps-check-hook.py +++ /dev/null @@ -1,102 +0,0 @@ -#!/usr/bin/env python3 -""" -The runtimeDependenciesHook validates, that all dependencies specified -in wheel metadata are available in the local environment. - -In case that does not hold, it will print missing dependencies and -violated version constraints. -""" - - -import importlib.metadata -import re -import sys -import tempfile -from argparse import ArgumentParser -from zipfile import ZipFile - -from packaging.metadata import Metadata, parse_email -from packaging.requirements import Requirement - -argparser = ArgumentParser() -argparser.add_argument("wheel", help="Path to the .whl file to test") - - -def error(msg: str) -> None: - print(f" - {msg}", file=sys.stderr) - - -def normalize_name(name: str) -> str: - """ - Normalize package names according to PEP503 - """ - return re.sub(r"[-_.]+", "-", name).lower() - - -def get_manifest_text_from_wheel(wheel: str) -> str: - """ - Given a path to a wheel, this function will try to extract the - METADATA file in the wheels .dist-info directory. - """ - with ZipFile(wheel) as zipfile: - for zipinfo in zipfile.infolist(): - if zipinfo.filename.endswith(".dist-info/METADATA"): - with tempfile.TemporaryDirectory() as tmp: - path = zipfile.extract(zipinfo, path=tmp) - with open(path, encoding="utf-8") as fd: - return fd.read() - - raise RuntimeError("No METADATA file found in wheel") - - -def get_metadata(wheel: str) -> Metadata: - """ - Given a path to a wheel, returns a parsed Metadata object. - """ - text = get_manifest_text_from_wheel(wheel) - raw, _ = parse_email(text) - metadata = Metadata.from_raw(raw) - - return metadata - - -def test_requirement(requirement: Requirement) -> bool: - """ - Given a requirement specification, tests whether the dependency can - be resolved in the local environment, and whether it satisfies the - specified version constraints. - """ - if requirement.marker and not requirement.marker.evaluate(): - # ignore requirements with incompatible markers - return True - - package_name = normalize_name(requirement.name) - - try: - package = importlib.metadata.distribution(requirement.name) - except importlib.metadata.PackageNotFoundError: - error(f"{package_name} not installed") - return False - - if requirement.specifier and package.version not in requirement.specifier: - error( - f"{package_name}{requirement.specifier} not satisfied by version {package.version}" - ) - return False - - return True - - -if __name__ == "__main__": - args = argparser.parse_args() - - metadata = get_metadata(args.wheel) - requirements = metadata.requires_dist - - if not requirements: - sys.exit(0) - - tests = [test_requirement(requirement) for requirement in requirements] - - if not all(tests): - sys.exit(1) diff --git a/pkgs/by-name/py/python/hooks/python-runtime-deps-check-hook.sh b/pkgs/by-name/py/python/hooks/python-runtime-deps-check-hook.sh deleted file mode 100644 index 43a2f9b..0000000 --- a/pkgs/by-name/py/python/hooks/python-runtime-deps-check-hook.sh +++ /dev/null @@ -1,20 +0,0 @@ -# Setup hook for PyPA installer. -echo "Sourcing python-runtime-deps-check-hook" - -pythonRuntimeDepsCheckHook() { - echo "Executing pythonRuntimeDepsCheck" - - export PYTHONPATH="$out/@pythonSitePackages@:$PYTHONPATH" - - for wheel in dist/*.whl; do - echo "Checking runtime dependencies for $(basename $wheel)" - @pythonInterpreter@ @hook@ "$wheel" - done - - echo "Finished executing pythonRuntimeDepsCheck" -} - -if [ -z "${dontCheckRuntimeDeps-}" ]; then - echo "Using pythonRuntimeDepsCheckHook" - preInstallPhases+=" pythonRuntimeDepsCheckHook" -fi diff --git a/pkgs/by-name/py/python/hooks/setuptools-build-hook.sh b/pkgs/by-name/py/python/hooks/setuptools-build-hook.sh deleted file mode 100644 index 4c63a18..0000000 --- a/pkgs/by-name/py/python/hooks/setuptools-build-hook.sh +++ /dev/null @@ -1,31 +0,0 @@ -# Setup hook for setuptools. -echo "Sourcing setuptools-build-hook" - -setuptoolsBuildPhase() { - echo "Executing setuptoolsBuildPhase" - local args setuptools_has_parallel=@setuptools_has_parallel@ - runHook preBuild - - cp -f @setuppy@ nix_run_setup - args="" - if [ -n "$setupPyGlobalFlags" ]; then - args+="$setupPyGlobalFlags" - fi - if [ -n "$enableParallelBuilding" ]; then - if [ -n "$setuptools_has_parallel" ]; then - setupPyBuildFlags+=" --parallel $NIX_BUILD_CORES" - fi - fi - if [ -n "$setupPyBuildFlags" ]; then - args+=" build_ext $setupPyBuildFlags" - fi - eval "@pythonInterpreter@ nix_run_setup $args bdist_wheel" - - runHook postBuild - echo "Finished executing setuptoolsBuildPhase" -} - -if [ -z "${dontUseSetuptoolsBuild-}" ] && [ -z "${buildPhase-}" ]; then - echo "Using setuptoolsBuildPhase" - buildPhase=setuptoolsBuildPhase -fi diff --git a/pkgs/by-name/py/python/hooks/setuptools-check-hook.sh b/pkgs/by-name/py/python/hooks/setuptools-check-hook.sh deleted file mode 100644 index 88b7b11..0000000 --- a/pkgs/by-name/py/python/hooks/setuptools-check-hook.sh +++ /dev/null @@ -1,18 +0,0 @@ -# Setup hook for setuptools. -echo "Sourcing setuptools-check-hook" - -setuptoolsCheckPhase() { - echo "Executing setuptoolsCheckPhase" - runHook preCheck - - cp -f @setuppy@ nix_run_setup - @pythonCheckInterpreter@ nix_run_setup test - - runHook postCheck - echo "Finished executing setuptoolsCheckPhase" -} - -if [ -z "${dontUseSetuptoolsCheck-}" ] && [ -z "${installCheckPhase-}" ]; then - echo "Using setuptoolsCheckPhase" - preDistPhases+=" setuptoolsCheckPhase" -fi diff --git a/pkgs/by-name/py/python/hooks/setuptools-rust-hook.sh b/pkgs/by-name/py/python/hooks/setuptools-rust-hook.sh deleted file mode 100644 index 917c19e..0000000 --- a/pkgs/by-name/py/python/hooks/setuptools-rust-hook.sh +++ /dev/null @@ -1,18 +0,0 @@ -echo "Sourcing setuptools-rust-hook" - -setuptoolsRustSetup() { - # This can work only if rustPlatform.cargoSetupHook is also included - if ! command -v cargoSetupPostPatchHook >/dev/null; then - echo "ERROR: setuptools-rust has to be used alongside with rustPlatform.cargoSetupHook!" - exit 1 - fi - - export PYO3_CROSS_LIB_DIR="@pyLibDir@" - export CARGO_BUILD_TARGET=@cargoBuildTarget@ - # TODO theoretically setting linker should not be required because it is - # already set in pkgs/build-support/rust/hooks/default.nix but build fails - # on missing linker without this. - export CARGO_TARGET_@cargoLinkerVar@_LINKER=@targetLinker@ -} - -preConfigureHooks+=(setuptoolsRustSetup) diff --git a/pkgs/by-name/py/python/hooks/sphinx-hook.sh b/pkgs/by-name/py/python/hooks/sphinx-hook.sh deleted file mode 100644 index 0307e83..0000000 --- a/pkgs/by-name/py/python/hooks/sphinx-hook.sh +++ /dev/null @@ -1,72 +0,0 @@ -# shellcheck shell=bash -echo "Sourcing sphinx-hook" - -declare -a __sphinxBuilders - -buildSphinxPhase() { - echo "Executing buildSphinxPhase" - - local __sphinxRoot="" - runHook preBuildSphinx - - if [[ -n "${sphinxRoot:-}" ]] ; then # explicit root - if ! [[ -f "${sphinxRoot}/conf.py" ]] ; then - echo 2>&1 "$sphinxRoot/conf.py: no such file" - exit 1 - fi - __sphinxRoot=$sphinxRoot - else - for candidate in doc docs doc/source docs/source ; do - if [[ -f "$candidate/conf.py" ]] ; then - echo "Sphinx documentation found in $candidate" - __sphinxRoot=$candidate - break - fi - done - fi - - if [[ -z "${__sphinxRoot}" ]] ; then - echo 2>&1 "Sphinx documentation not found, use 'sphinxRoot' variable" - exit 1 - fi - - if [ -n "${sphinxBuilders-}" ]; then - eval "__sphinxBuilders=($sphinxBuilders)" - else - __sphinxBuilders=(html) - fi - - for __builder in "${__sphinxBuilders[@]}"; do - echo "Executing sphinx-build with ${__builder} builder" - @sphinxBuild@ -M "${__builder}" "${__sphinxRoot}" ".sphinx/${__builder}" -v - done - - runHook postBuildSphinx -} - -installSphinxPhase() { - echo "Executing installSphinxPhase" - - local docdir="" - runHook preInstallSphinx - - for __builder in "${__sphinxBuilders[@]}"; do - # divert output for man builder - if [ "$__builder" == "man" ]; then - installManPage .sphinx/man/man/* - - else - # shellcheck disable=2154 - docdir="${doc:-$out}/share/doc/${name}" - - mkdir -p "$docdir" - - cp -r ".sphinx/${__builder}/${__builder}" "$docdir/" - rm -fr "${docdir}/${__builder}/_sources" "${docdir}/${__builder}/.buildinfo" - fi - done - - runHook postInstallSphinx -} - -preDistPhases+=" buildSphinxPhase installSphinxPhase" diff --git a/pkgs/by-name/py/python/hooks/unittest-check-hook.sh b/pkgs/by-name/py/python/hooks/unittest-check-hook.sh deleted file mode 100644 index 3485fcc..0000000 --- a/pkgs/by-name/py/python/hooks/unittest-check-hook.sh +++ /dev/null @@ -1,29 +0,0 @@ -# Setup hook for unittest. -echo "Sourcing unittest-check-hook" - -unittestCheckPhase() { - echo "Executing unittestCheckPhase" - runHook preCheck - - eval "@pythonCheckInterpreter@ -m unittest discover $unittestFlagsArray" - - runHook postCheck - echo "Finished executing unittestCheckPhase" -} - -if [ -z "${dontUseUnittestCheck-}" ] && [ -z "${installCheckPhase-}" ]; then - echo "Using unittestCheckPhase" - preDistPhases+=" unittestCheckPhase" - - # It's almost always the case that setuptoolsCheckPhase should not be ran - # when the unittestCheckHook is being ran - if [ -z "${useSetuptoolsCheck-}" ]; then - dontUseSetuptoolsCheck=1 - - # Remove command if already injected into preDistPhases - if [[ "$preDistPhases" =~ "setuptoolsCheckPhase" ]]; then - echo "Removing setuptoolsCheckPhase" - preDistPhases=${preDistPhases/setuptoolsCheckPhase/} - fi - fi -fi diff --git a/pkgs/by-name/py/python/hooks/venv-shell-hook.sh b/pkgs/by-name/py/python/hooks/venv-shell-hook.sh deleted file mode 100644 index 1fcc0bb..0000000 --- a/pkgs/by-name/py/python/hooks/venv-shell-hook.sh +++ /dev/null @@ -1,28 +0,0 @@ -venvShellHook() { - echo "Executing venvHook" - runHook preShellHook - - if [ -d "${venvDir}" ]; then - echo "Skipping venv creation, '${venvDir}' already exists" - source "${venvDir}/bin/activate" - else - echo "Creating new venv environment in path: '${venvDir}'" - @pythonInterpreter@ -m venv "${venvDir}" - - source "${venvDir}/bin/activate" - runHook postVenvCreation - fi - - runHook postShellHook - echo "Finished executing venvShellHook" -} - -if [ -z "${dontUseVenvShellHook:-}" ] && [ -z "${shellHook-}" ]; then - echo "Using venvShellHook" - if [ -z "${venvDir-}" ]; then - echo "Error: \`venvDir\` should be set when using \`venvShellHook\`." - exit 1 - else - shellHook=venvShellHook - fi -fi diff --git a/pkgs/by-name/py/python/hooks/wheel-unpack-hook.sh b/pkgs/by-name/py/python/hooks/wheel-unpack-hook.sh deleted file mode 100644 index fca808a..0000000 --- a/pkgs/by-name/py/python/hooks/wheel-unpack-hook.sh +++ /dev/null @@ -1,18 +0,0 @@ -# Setup hook to use in case a wheel is fetched -echo "Sourcing wheel setup hook" - -wheelUnpackPhase(){ - echo "Executing wheelUnpackPhase" - runHook preUnpack - - mkdir -p dist - cp "$src" "dist/$(stripHash "$src")" - -# runHook postUnpack # Calls find...? - echo "Finished executing wheelUnpackPhase" -} - -if [ -z "${dontUseWheelUnpack-}" ] && [ -z "${unpackPhase-}" ]; then - echo "Using wheelUnpackPhase" - unpackPhase=wheelUnpackPhase -fi diff --git a/pkgs/by-name/py/python/manylinux/default.nix b/pkgs/by-name/py/python/manylinux/default.nix deleted file mode 100644 index ba20c0d..0000000 --- a/pkgs/by-name/py/python/manylinux/default.nix +++ /dev/null @@ -1,88 +0,0 @@ -{ lib, pkgs }: - -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 - - 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 - - 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; - }); - - # 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; - })); - -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. - # Additionally, add `autoPatchelfHook` to `nativeBuildInputs`. - manylinux1 = lib.unique (lib.attrValues manylinux1Libs); - manylinux2010 = lib.unique (lib.attrValues manylinux2010Libs); - manylinux2014 = lib.unique (lib.attrValues manylinux2014Libs); - - # These are symlink trees to the relevant libs and are typically not needed - # These exist so as to quickly test whether all required libraries are provided - # by the mapped packages. - manylinux1Package = createManyLinuxPackage "manylinux1" manylinux1Libs; - manylinux2010Package = createManyLinuxPackage "manylinux2010" manylinux2010Libs; - manylinux2014Package = createManyLinuxPackage "manylinux2014" manylinux2014Libs; -} diff --git a/pkgs/by-name/py/python/mk-python-derivation.nix b/pkgs/by-name/py/python/mk-python-derivation.nix deleted file mode 100644 index 4c45d96..0000000 --- a/pkgs/by-name/py/python/mk-python-derivation.nix +++ /dev/null @@ -1,349 +0,0 @@ -# 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 -}: - -let - inherit (builtins) unsafeGetAttrPos; - inherit (lib) - elem optionalString max stringLength fixedWidthString getName - optional optionals optionalAttrs hasSuffix escapeShellArgs - extendDerivation head splitString isBool; - - leftPadName = name: against: let - len = max (stringLength name) (stringLength against); - in fixedWidthString len " " name; - - isPythonModule = drv: - # all pythonModules have the pythonModule attribute - (drv ? "pythonModule") - # Some pythonModules are turned in to a pythonApplication by setting the field to false - && (!isBool drv.pythonModule); - - isMismatchedPython = drv: drv.pythonModule != python; - - withDistOutput' = lib.flip elem ["pyproject" "setuptools" "wheel"]; - - isBootstrapInstallPackage' = lib.flip elem [ "flit-core" "installer" ]; - - isBootstrapPackage' = lib.flip elem ([ - "build" "packaging" "pyproject-hooks" "wheel" - ] ++ optionals (python.pythonOlder "3.11") [ - "tomli" - ]); - - 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" - ]; - -in - -{ name ? "${attrs.pname}-${attrs.version}" - -# Build-time dependencies for the package -, nativeBuildInputs ? [] - -# Run-time dependencies for the package -, buildInputs ? [] - -# 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 ? [] - -# Python module dependencies. -# These are named after PEP-621. -, dependencies ? [] -, optional-dependencies ? {} - -# Python PEP-517 build systems. -, build-system ? [] - -# DEPRECATED: use propagatedBuildInputs -, pythonPath ? [] - -# Enabled to detect some (native)BuildInputs mistakes -, strictDeps ? true - -, outputs ? [ "out" ] - -# 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) - -# Additional arguments to pass to the makeWrapper function, which wraps -# generated binaries. -, makeWrapperArgs ? [] - -# 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 - -# 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 - -# 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 - -, meta ? {} - -, doCheck ? config.doCheckByDefault or false - -, disabledTestPaths ? [] - -# Allow passing in a custom stdenv to buildPython* -, stdenv ? python.stdenv - -, ... } @ attrs: - -assert (pyproject != null) -> (format == null); - -let - format' = - if pyproject != null then - if pyproject then - "pyproject" - else - "other" - else if format != null then - format - else - "setuptools"; - - 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}: - - 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} - - 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 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: - - makeWrapperArgs = [ "--prefix PATH : ''${lib.makeBinPath [ ${getName drv } ] }" ]; - - ${optionalLocation} - ''; - - checkDrv = attrName: drv: - if (isPythonModule drv) && (isMismatchedPython drv) then throwMismatch attrName drv - else drv; - - in attrName: inputs: map (checkDrv attrName) inputs; - - isBootstrapInstallPackage = isBootstrapInstallPackage' (attrs.pname or null); - - isBootstrapPackage = isBootstrapInstallPackage || isBootstrapPackage' (attrs.pname or null); - - isSetuptoolsDependency = isSetuptoolsDependency' (attrs.pname or null); - - passthru = - attrs.passthru or { } - // { - 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; - }; - - # Keep extra attributes from `attrs`, e.g., `patchPhase', etc. - self = toPythonModule (stdenv.mkDerivation ((cleanAttrs attrs) // { - - 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; - - 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 - ]); - - inherit strictDeps; - - 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; - - 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 ]; - - outputs = outputs ++ optional withDistOutput "dist"; - - 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; - })); - -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 deleted file mode 100644 index c4b3eb1..0000000 --- a/pkgs/by-name/py/python/packages.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - pythonInterpreters = callPackage ./. { }; - 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; }; - - # 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. - # When switching these sets, please update docs at ../../doc/languages-frameworks/python.md - python2 = python27; - python3 = python311; - - # pythonPackages further below, but assigned here because they need to be in sync - 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="; - }; - }) - ); - - actdiag = with python3.pkgs; toPythonApplication actdiag; - blockdiag = with python3Packages; toPythonApplication blockdiag; - nwdiag = with python3Packages; toPythonApplication nwdiag; - buildcatrust = with python3.pkgs; toPythonApplication buildcatrust; - seqdiag = with python3Packages; toPythonApplication seqdiag; -} diff --git a/pkgs/by-name/py/python/passthrufun.nix b/pkgs/by-name/py/python/passthrufun.nix deleted file mode 100644 index 8635841..0000000 --- a/pkgs/by-name/py/python/passthrufun.nix +++ /dev/null @@ -1,105 +0,0 @@ -{ 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; - - 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; - }; - - inherit pythonAttr; -} diff --git a/pkgs/by-name/py/python/pypy/default.nix b/pkgs/by-name/py/python/pypy/default.nix deleted file mode 100644 index 9b41494..0000000 --- a/pkgs/by-name/py/python/pypy/default.nix +++ /dev/null @@ -1,210 +0,0 @@ -{ 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; - -let - isPy3k = (lib.versions.major pythonVersion) == "3"; - isPy38OrNewer = lib.versionAtLeast pythonVersion "3.8"; - isPy39OrNewer = lib.versionAtLeast pythonVersion "3.9"; - passthru = passthruFun rec { - inherit self sourceVersion pythonVersion packageOverrides; - implementation = "pypy"; - libPrefix = "pypy${pythonVersion}"; - 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; - - pythonOnBuildForBuild = pkgsBuildBuild.${pythonAttr}; - pythonOnBuildForHost = pkgsBuildHost.${pythonAttr}; - pythonOnBuildForTarget = pkgsBuildTarget.${pythonAttr}; - pythonOnHostForHost = pkgsHostHost.${pythonAttr}; - 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 { - inherit pname version; - - src = fetchurl { - url = "https://downloads.python.org/pypy/pypy${pythonVersion}-v${version}-src.tar.bz2"; - inherit hash; - }; - - 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 - ]; - - # Remove bootstrap python from closure - dontPatchShebangs = true; - disallowedReferences = [ python ]; - - 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); - - patches = [ - ./dont_fetch_vendored_deps.patch - - (substituteAll { - src = ./tk_tcl_paths.patch; - inherit tk tcl; - tk_dev = tk.dev; - tcl_dev = tcl; - tk_libprefix = tk.libPrefix; - tcl_libprefix = tcl.libPrefix; - }) - - (substituteAll { - src = ./sqlite_paths.patch; - inherit (sqlite) out dev; - }) - ]; - - postPatch = '' - substituteInPlace lib_pypy/pypy_tools/build_cffi_imports.py \ - --replace "multiprocessing.cpu_count()" "$NIX_BUILD_CORES" - - substituteInPlace "lib-python/${if isPy3k then "3/tkinter/tix.py" else "2.7/lib-tk/Tix.py"}" \ - --replace "os.environ.get('TIX_LIBRARY')" "os.environ.get('TIX_LIBRARY') or '${tix}/lib'" - ''; - - buildPhase = '' - runHook preBuild - - ${pythonForPypy.interpreter} rpython/bin/rpython \ - --make-jobs="$NIX_BUILD_CORES" \ - -O${optimizationLevel} \ - --batch pypy/goal/targetpypystandalone.py - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - mkdir -p $out/{bin,include,lib,${executable}-c} - - cp -R {include,lib_pypy,lib-python,${executable}-c} $out/${executable}-c - cp lib${executable}-c${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/ - ln -s $out/${executable}-c/${executable}-c $out/bin/${executable} - ${lib.optionalString isPy39OrNewer "ln -s $out/bin/${executable} $out/bin/pypy3"} - - # other packages expect to find stuff according to libPrefix - ln -s $out/${executable}-c/include $out/include/${libPrefix} - 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 - - 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} - ''; - - 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"; - - ${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}' - ''; - - inherit passthru; - 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" ]; - broken = optimizationLevel == "0"; # generates invalid code - maintainers = with maintainers; [ andersk ]; - }; -} diff --git a/pkgs/by-name/py/python/pypy/dont_fetch_vendored_deps.patch b/pkgs/by-name/py/python/pypy/dont_fetch_vendored_deps.patch deleted file mode 100644 index bc959e1..0000000 --- a/pkgs/by-name/py/python/pypy/dont_fetch_vendored_deps.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur a/lib_pypy/pypy_tools/build_cffi_imports.py b/lib_pypy/pypy_tools/build_cffi_imports.py ---- a/lib_pypy/pypy_tools/build_cffi_imports.py 2021-04-12 01:11:48.000000000 -0400 -+++ b/lib_pypy/pypy_tools/build_cffi_imports.py 2021-07-16 06:37:03.000000000 -0400 -@@ -225,6 +225,8 @@ - - print('*', ' '.join(args), file=sys.stderr) - if embed_dependencies and key in cffi_dependencies: -+ print("Nixpkgs: skipping fetching/building dependency", key) -+ elif False: - status, stdout, stderr = _build_dependency(key) - if status != 0: - failures.append((key, module)) diff --git a/pkgs/by-name/py/python/pypy/prebuilt.nix b/pkgs/by-name/py/python/pypy/prebuilt.nix deleted file mode 100644 index 4b47c64..0000000 --- a/pkgs/by-name/py/python/pypy/prebuilt.nix +++ /dev/null @@ -1,165 +0,0 @@ -{ 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 -# our PyPy source build when developing that expression. - -let - isPy3k = majorVersion == "3"; - passthru = passthruFun rec { - inherit self sourceVersion pythonVersion packageOverrides; - implementation = "pypy"; - libPrefix = "pypy${pythonVersion}"; - executable = "pypy${lib.optionalString isPy3k "3"}"; - sitePackages = "lib/${libPrefix}/site-packages"; - hasDistutilsCxxPatch = false; - - # Not possible to cross-compile with. - pythonOnBuildForBuild = throw "${pname} does not support cross compilation"; - pythonOnBuildForHost = self; - pythonOnBuildForTarget = throw "${pname} does not support cross compilation"; - pythonOnHostForHost = throw "${pname} does not support cross compilation"; - pythonOnTargetForTarget = throw "${pname} does not support cross compilation"; - }; - pname = "${passthru.executable}_prebuilt"; - version = with sourceVersion; "${major}.${minor}.${patch}"; - - majorVersion = lib.versions.major pythonVersion; - - downloadUrls = { - aarch64-linux = "https://downloads.python.org/pypy/pypy${pythonVersion}-v${version}-aarch64.tar.bz2"; - x86_64-linux = "https://downloads.python.org/pypy/pypy${pythonVersion}-v${version}-linux64.tar.bz2"; - aarch64-darwin = "https://downloads.python.org/pypy/pypy${pythonVersion}-v${version}-macos_arm64.tar.bz2"; - x86_64-darwin = "https://downloads.python.org/pypy/pypy${pythonVersion}-v${version}-macos_x86_64.tar.bz2"; - }; - -in with passthru; stdenv.mkDerivation { - inherit pname version; - - src = fetchurl { - url = downloadUrls.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}"); - 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 - ]; - - nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ]; - - installPhase = '' - runHook preInstall - - mkdir -p $out - echo "Moving files to $out" - mv -t $out bin include lib - mv $out/bin/libpypy*-c${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/ - ${lib.optionalString stdenv.isLinux '' - rm $out/bin/*.debug - ''} - - echo "Removing bytecode" - find . -name "__pycache__" -type d -depth -delete - - # Include a sitecustomize.py file - cp ${../sitecustomize.py} $out/${sitePackages}/sitecustomize.py - - 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 - ''; - - 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}' - ''; - - setupHook = python-setup-hook sitePackages; - - donPatchElf = true; - dontStrip = true; - - inherit passthru; - - meta = with lib; { - homepage = "http://pypy.org/"; - description = "Fast, compliant alternative implementation of the Python language (${pythonVersion})"; - license = licenses.mit; - platforms = lib.mapAttrsToList (arch: _: arch) downloadUrls; - }; - -} diff --git a/pkgs/by-name/py/python/pypy/prebuilt_2_7.nix b/pkgs/by-name/py/python/pypy/prebuilt_2_7.nix deleted file mode 100644 index 37a06f9..0000000 --- a/pkgs/by-name/py/python/pypy/prebuilt_2_7.nix +++ /dev/null @@ -1,161 +0,0 @@ -{ 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 -# our PyPy source build when developing that expression. - -let - isPy3k = majorVersion == "3"; - passthru = passthruFun { - inherit self sourceVersion pythonVersion packageOverrides; - implementation = "pypy"; - libPrefix = "pypy${pythonVersion}"; - executable = "pypy${lib.optionalString isPy3k "3"}"; - sitePackages = "site-packages"; - hasDistutilsCxxPatch = false; - - # Not possible to cross-compile with. - pythonOnBuildForBuild = throw "${pname} does not support cross compilation"; - pythonOnBuildForHost = self; - pythonOnBuildForTarget = throw "${pname} does not support cross compilation"; - pythonOnHostForHost = throw "${pname} does not support cross compilation"; - pythonOnTargetForTarget = throw "${pname} does not support cross compilation"; - }; - pname = "${passthru.executable}_prebuilt"; - version = with sourceVersion; "${major}.${minor}.${patch}"; - - majorVersion = lib.versions.major pythonVersion; - - downloadUrls = { - aarch64-linux = "https://downloads.python.org/pypy/pypy${pythonVersion}-v${version}-aarch64.tar.bz2"; - x86_64-linux = "https://downloads.python.org/pypy/pypy${pythonVersion}-v${version}-linux64.tar.bz2"; - aarch64-darwin = "https://downloads.python.org/pypy/pypy${pythonVersion}-v${version}-macos_arm64.tar.bz2"; - x86_64-darwin = "https://downloads.python.org/pypy/pypy${pythonVersion}-v${version}-macos_x86_64.tar.bz2"; - }; - -in with passthru; stdenv.mkDerivation { - inherit pname version; - - src = fetchurl { - url = downloadUrls.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}"); - 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 - ]; - - nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ]; - - installPhase = '' - runHook preInstall - - mkdir -p $out/lib - echo "Moving files to $out" - mv -t $out bin include lib-python lib_pypy site-packages - mv $out/bin/libpypy*-c${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/ - ${lib.optionalString stdenv.isLinux '' - mv lib/libffi.so.6* $out/lib/ - rm $out/bin/*.debug - ''} - - echo "Removing bytecode" - find . -name "__pycache__" -type d -depth -delete - - # Include a sitecustomize.py file - cp ${../sitecustomize.py} $out/${sitePackages}/sitecustomize.py - - 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 - ''; - - 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}' - ''; - - setupHook = python-setup-hook sitePackages; - - donPatchElf = true; - dontStrip = true; - - inherit passthru; - - meta = with lib; { - homepage = "http://pypy.org/"; - description = "Fast, compliant alternative implementation of the Python language (${pythonVersion})"; - license = licenses.mit; - platforms = lib.mapAttrsToList (arch: _: arch) downloadUrls; - }; - -} diff --git a/pkgs/by-name/py/python/pypy/sqlite_paths.patch b/pkgs/by-name/py/python/pypy/sqlite_paths.patch deleted file mode 100644 index 42de7ef..0000000 --- a/pkgs/by-name/py/python/pypy/sqlite_paths.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur a/lib_pypy/_sqlite3_build.py b/lib_pypy/_sqlite3_build.py ---- a/lib_pypy/_sqlite3_build.py 2021-04-12 01:11:48.000000000 -0400 -+++ b/lib_pypy/_sqlite3_build.py 2021-07-14 18:08:33.000000000 -0400 -@@ -301,6 +301,8 @@ - else: - extra_args = dict( - libraries=libraries, -+ include_dirs=['@dev@/include'], -+ library_dirs=['@out@/lib'] - ) - - SOURCE = """ diff --git a/pkgs/by-name/py/python/pypy/tk_tcl_paths.patch b/pkgs/by-name/py/python/pypy/tk_tcl_paths.patch deleted file mode 100644 index cf1bcdd..0000000 --- a/pkgs/by-name/py/python/pypy/tk_tcl_paths.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- a/lib_pypy/_tkinter/tklib_build.py -+++ b/lib_pypy/_tkinter/tklib_build.py -@@ -17,23 +17,14 @@ elif sys.platform == 'win32': - incdirs = [] - linklibs = ['tcl85', 'tk85'] - libdirs = [] --elif sys.platform == 'darwin': -- # homebrew -- homebrew = os.environ.get('HOMEBREW_PREFIX', '') -- incdirs = ['/usr/local/opt/tcl-tk/include'] -- linklibs = ['tcl8.6', 'tk8.6'] -- libdirs = [] -- if homebrew: -- incdirs.append(homebrew + '/include') -- libdirs.append(homebrew + '/opt/tcl-tk/lib') - else: - # On some Linux distributions, the tcl and tk libraries are - # stored in /usr/include, so we must check this case also -- libdirs = [] -+ libdirs = ["@tcl@/lib", "@tk@/lib"] - found = False - for _ver in ['', '8.6', '8.5']: -- incdirs = ['/usr/include/tcl' + _ver] -- linklibs = ['tcl' + _ver, 'tk' + _ver] -+ incdirs = ['@tcl_dev@/include', '@tk_dev@/include'] -+ linklibs = ['@tcl_libprefix@', '@tk_libprefix@'] - if os.path.isdir(incdirs[0]): - found = True - break diff --git a/pkgs/by-name/py/python/python-modules/aiohttp/default.nix b/pkgs/by-name/py/python/python-modules/aiohttp/default.nix deleted file mode 100644 index e46b598..0000000 --- a/pkgs/by-name/py/python/python-modules/aiohttp/default.nix +++ /dev/null @@ -1,138 +0,0 @@ -{ 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 { - pname = "aiohttp"; - version = "3.9.3"; - pyproject = true; - - disabled = pythonOlder "3.8"; - - src = fetchFromGitHub { - owner = "aio-libs"; - repo = "aiohttp"; - rev = "refs/tags/v${version}"; - hash = "sha256-dEeMHruFJ1o0J6VUJcpUk7LhEC8sV8hUKXoKcd618lE="; - }; - - patches = [ - (substituteAll { - src = ./unvendor-llhttp.patch; - llhttpDev = lib.getDev llhttp; - llhttpLib = lib.getLib llhttp; - }) - ]; - - postPatch = '' - sed -i '/--cov/d' setup.cfg - - rm -r vendor - patchShebangs tools - touch .git # tools/gen.py uses .git to find the project root - ''; - - nativeBuildInputs = [ - cython - setuptools - ]; - - preBuild = '' - make cythonize - ''; - - propagatedBuildInputs = [ - attrs - multidict - async-timeout - yarl - frozenlist - aiosignal - aiodns - brotli - ]; - - # 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 - ]; - - 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 - ]; - - __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" - ''; - - meta = with lib; { - changelog = "https://github.com/aio-libs/aiohttp/blob/v${version}/CHANGES.rst"; - description = "Asynchronous HTTP Client/Server for Python and asyncio"; - license = licenses.asl20; - homepage = "https://github.com/aio-libs/aiohttp"; - maintainers = with maintainers; [ dotlambda ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/aiohttp/unvendor-llhttp.patch b/pkgs/by-name/py/python/python-modules/aiohttp/unvendor-llhttp.patch deleted file mode 100644 index 49b3e91..0000000 --- a/pkgs/by-name/py/python/python-modules/aiohttp/unvendor-llhttp.patch +++ /dev/null @@ -1,60 +0,0 @@ -diff --git a/Makefile b/Makefile -index 5769d2a1..f505dd81 100644 ---- a/Makefile -+++ b/Makefile -@@ -71,7 +71,7 @@ vendor/llhttp/node_modules: vendor/llhttp/package.json - generate-llhttp: .llhttp-gen - - .PHONY: cythonize --cythonize: .install-cython $(PYXS:.pyx=.c) -+cythonize: $(PYXS:.pyx=.c) - - .install-deps: .install-cython $(PYXS:.pyx=.c) $(call to-hash,$(CYS) $(REQS)) - @python -m pip install -r requirements/dev.txt -c requirements/constraints.txt -diff --git a/aiohttp/_cparser.pxd b/aiohttp/_cparser.pxd -index 165dd61d..bc6bf86d 100644 ---- a/aiohttp/_cparser.pxd -+++ b/aiohttp/_cparser.pxd -@@ -10,7 +10,7 @@ from libc.stdint cimport ( - ) - - --cdef extern from "../vendor/llhttp/build/llhttp.h": -+cdef extern from "@llhttpDev@/include/llhttp.h": - - struct llhttp__internal_s: - int32_t _index -diff --git a/setup.py b/setup.py -index 4d59a022..d87d5b69 100644 ---- a/setup.py -+++ b/setup.py -@@ -17,13 +17,6 @@ if sys.implementation.name != "cpython": - NO_EXTENSIONS = True - - --if IS_GIT_REPO and not (HERE / "vendor/llhttp/README.md").exists(): -- print("Install submodules when building from git clone", file=sys.stderr) -- print("Hint:", file=sys.stderr) -- print(" git submodule update --init", file=sys.stderr) -- sys.exit(2) -- -- - # NOTE: makefile cythonizes all Cython modules - - extensions = [ -@@ -33,12 +26,11 @@ extensions = [ - [ - "aiohttp/_http_parser.c", - "aiohttp/_find_header.c", -- "vendor/llhttp/build/c/llhttp.c", -- "vendor/llhttp/src/native/api.c", -- "vendor/llhttp/src/native/http.c", - ], - define_macros=[("LLHTTP_STRICT_MODE", 0)], -- include_dirs=["vendor/llhttp/build"], -+ include_dirs=["@llhttpDev@/include"], -+ library_dirs=["@llhttpLib@/lib"], -+ libraries=["llhttp"], - ), - Extension("aiohttp._helpers", ["aiohttp/_helpers.c"]), - Extension("aiohttp._http_writer", ["aiohttp/_http_writer.c"]), diff --git a/pkgs/by-name/py/python/python-modules/alabaster/default.nix b/pkgs/by-name/py/python/python-modules/alabaster/default.nix deleted file mode 100644 index b2b77a3..0000000 --- a/pkgs/by-name/py/python/python-modules/alabaster/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, flit-core -, pygments -}: - -buildPythonPackage rec { - pname = "alabaster"; - version = "0.7.16"; - pyproject = true; - - src = fetchPypi { - inherit pname version; - hash = "sha256-dai5nCil2tUN1/jM3UR6Eh3bOJLanlPRylzKMQbVjWU="; - }; - - nativeBuildInputs = [ flit-core ]; - - propagatedBuildInputs = [ pygments ]; - - # No tests included - doCheck = false; - - meta = with lib; { - homepage = "https://github.com/bitprophet/alabaster"; - description = "A Sphinx theme"; - license = licenses.bsd3; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/attrs/default.nix b/pkgs/by-name/py/python/python-modules/attrs/default.nix deleted file mode 100644 index 8e46432..0000000 --- a/pkgs/by-name/py/python/python-modules/attrs/default.nix +++ /dev/null @@ -1,63 +0,0 @@ -{ lib -, callPackage -, buildPythonPackage -, fetchPypi -, pythonOlder -, hatchling -}: - -buildPythonPackage rec { - pname = "attrs"; - version = "23.2.0"; - disabled = pythonOlder "3.7"; - format = "pyproject"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-k13DtSnCYvbPduUId9NaS9PB3hlP1B9HoreujxmXHzA="; - }; - - patches = [ - # hatch-vcs and hatch-fancy-pypi-readme depend on pytest, which depends on attrs - ./remove-hatch-plugins.patch - ]; - - postPatch = '' - substituteAllInPlace pyproject.toml - ''; - - nativeBuildInputs = [ - hatchling - ]; - - outputs = [ - "out" - "testout" - ]; - - postInstall = '' - # Install tests as the tests output. - mkdir $testout - cp -R conftest.py tests $testout - ''; - - 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. - doCheck = false; - - passthru.tests = { - pytest = callPackage ./tests.nix { }; - }; - - meta = with lib; { - description = "Python attributes without boilerplate"; - homepage = "https://github.com/python-attrs/attrs"; - changelog = "https://github.com/python-attrs/attrs/releases/tag/${version}"; - license = licenses.mit; - maintainers = with maintainers; [ ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/attrs/remove-hatch-plugins.patch b/pkgs/by-name/py/python/python-modules/attrs/remove-hatch-plugins.patch deleted file mode 100644 index cf743ba..0000000 --- a/pkgs/by-name/py/python/python-modules/attrs/remove-hatch-plugins.patch +++ /dev/null @@ -1,78 +0,0 @@ -diff --git a/pyproject.toml b/pyproject.toml -index 1c72fc2..ae45740 100644 ---- a/pyproject.toml -+++ b/pyproject.toml -@@ -1,7 +1,7 @@ - # SPDX-License-Identifier: MIT - - [build-system] --requires = ["hatchling", "hatch-vcs", "hatch-fancy-pypi-readme>=23.2.0"] -+requires = ["hatchling"] - build-backend = "hatchling.build" - - -@@ -26,7 +26,8 @@ classifiers = [ - "Typing :: Typed", - ] - dependencies = ["importlib_metadata;python_version<'3.8'"] --dynamic = ["version", "readme"] -+dynamic = ["readme"] -+version = "@version@" - - [project.optional-dependencies] - tests-mypy = [ -@@ -70,54 +71,9 @@ Funding = "https://github.com/sponsors/hynek" - Tidelift = "https://tidelift.com/subscription/pkg/pypi-attrs?utm_source=pypi-attrs&utm_medium=pypi" - - --[tool.hatch.version] --source = "vcs" --raw-options = { local_scheme = "no-local-version" } -- - [tool.hatch.build.targets.wheel] - packages = ["src/attr", "src/attrs"] - --[tool.hatch.metadata.hooks.fancy-pypi-readme] --content-type = "text/markdown" -- --# PyPI doesn't support the tag. --[[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] --text = """

-- -- attrs -- --

--""" -- --[[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] --path = "README.md" --start-after = "" -- --[[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] --text = """ -- --## Release Information -- --""" -- --[[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] --path = "CHANGELOG.md" --pattern = "\n(###.+?\n)## " -- --[[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] --text = """ -- ----- -- --[Full changelog](https://www.attrs.org/en/stable/changelog.html) --""" -- --# Point sponsor image URLs to versions. --[[tool.hatch.metadata.hooks.fancy-pypi-readme.substitutions]] --pattern = '\/latest\/_static/sponsors' --replacement = '/$HFPR_VERSION/_static/sponsors' -- -- - [tool.pytest.ini_options] - addopts = ["-ra", "--strict-markers", "--strict-config"] - xfail_strict = true diff --git a/pkgs/by-name/py/python/python-modules/attrs/tests.nix b/pkgs/by-name/py/python/python-modules/attrs/tests.nix deleted file mode 100644 index 2614716..0000000 --- a/pkgs/by-name/py/python/python-modules/attrs/tests.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ buildPythonPackage -, pytestCheckHook -, attrs -, hypothesis -}: - -buildPythonPackage { - pname = "attrs-tests"; - inherit (attrs) version; - format = "other"; - - srcs = attrs.testout; - - dontBuild = true; - dontInstall = true; - - nativeCheckInputs = [ - attrs - hypothesis - pytestCheckHook - ]; -} diff --git a/pkgs/by-name/py/python/python-modules/babel/default.nix b/pkgs/by-name/py/python/python-modules/babel/default.nix deleted file mode 100644 index 2e2a1a6..0000000 --- a/pkgs/by-name/py/python/python-modules/babel/default.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, isPyPy -, pythonAtLeast -, pythonOlder - -# build-system -, setuptools - -# tests -, freezegun -, pytestCheckHook -, pytz -, tzdata -}: - -buildPythonPackage rec { - pname = "babel"; - version = "2.14.0"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - src = fetchPypi { - pname = "Babel"; - inherit version; - hash = "sha256-aRmGfbA2OYuiHrXHoPayirjLw656c6ROvjSudKTn02M="; - }; - - nativeBuildInputs = [ - setuptools - ]; - - propagatedBuildInputs = lib.optionals (pythonOlder "3.9") [ - pytz - ]; - - # including backports.zoneinfo for python<3.9 yields infinite recursion - doCheck = pythonAtLeast "3.9"; - - nativeCheckInputs = [ - freezegun - pytestCheckHook - # https://github.com/python-babel/babel/issues/988#issuecomment-1521765563 - pytz - ] ++ lib.optionals isPyPy [ - tzdata - ]; - - disabledTests = [ - # fails on days switching from and to daylight saving time in EST - # https://github.com/python-babel/babel/issues/988 - "test_format_time" - ]; - - meta = with lib; { - homepage = "https://babel.pocoo.org/"; - changelog = "https://github.com/python-babel/babel/releases/tag/v${version}"; - description = "Collection of internationalizing tools"; - mainProgram = "pybabel"; - license = licenses.bsd3; - maintainers = with maintainers; [ ]; - }; -} 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 deleted file mode 100644 index ff51968..0000000 --- a/pkgs/by-name/py/python/python-modules/backports-zoneinfo/default.nix +++ /dev/null @@ -1,81 +0,0 @@ -{ lib, buildPythonPackage, fetchFromGitHub -, pythonAtLeast -, pythonOlder -, python -, substituteAll -, importlib-resources -, tzdata -, hypothesis -, pytestCheckHook -, fetchpatch -}: - -buildPythonPackage rec { - pname = "backports-zoneinfo"; - version = "0.2.1"; - format = "setuptools"; - - disabled = pythonAtLeast "3.9"; - - src = fetchFromGitHub { - owner = "pganssle"; - repo = "zoneinfo"; - rev = version; - hash = "sha256-00xdDOVdDanfsjQTd3yjMN2RFGel4cWRrAA3CvSnl24="; - }; - - # Make sure test data update patch applies - prePatch = '' - substituteInPlace tests/data/zoneinfo_data.json --replace \"2020a\" \"2021a\" - ''; - - patches = [ - # Update test suite's test data to zoneinfo 2022a - # https://github.com/pganssle/zoneinfo/pull/115 - (fetchpatch { - name = "backports-zoneinfo-2022a-update-test-data1.patch"; - url = "https://github.com/pganssle/zoneinfo/pull/115/commits/837e2a0f9f1a1332e4233f83e3648fa564a9ec9e.patch"; - sha256 = "196knwa212mr0b7zsh8papzr3f5mii87gcjjjx1r9zzvmk3g3ri0"; - }) - (fetchpatch { - name = "backports-zoneinfo-2022a-update-test-data2.patch"; - url = "https://github.com/pganssle/zoneinfo/pull/115/commits/9fd330265b177916d6182249439bb40d5691eb58.patch"; - sha256 = "1zxa5bkwi8hbnh4c0qv72wv6vdp5jlxqizfjsc05ymzvwa99cf75"; - }) - - (substituteAll { - name = "zoneinfo-path"; - src = ./zoneinfo.patch; - zoneinfo = "${tzdata}/${python.sitePackages}/tzdata/zoneinfo"; - }) - ]; - - propagatedBuildInputs = [ - tzdata - ] ++ lib.optionals (pythonOlder "3.7") [ - importlib-resources - ]; - - pythonImportsCheck = [ "backports.zoneinfo" ]; - - nativeCheckInputs = [ - hypothesis - pytestCheckHook - ]; - - disabledTests = [ - # AssertionError: 'AEDT' != 'AEST' - "test_folds_and_gaps" - # AssertionError: 0 != 1 : (datetime.datetime(1917, 3, 25, 2, 0, 1, tzinfo=backports.zoneinfo.ZoneInfo(key='Australia/Sydney')), datetime.datetime(1917, 3, 24, 15, 0, tzinfo=datetime.timezone.utc)) - "test_folds_from_utc" - # backports.zoneinfo._common.ZoneInfoNotFoundError: 'No time zone found with key Eurasia/Badzone' - "test_bad_keys" - ]; - - meta = with lib; { - description = "Backport of the standard library module zoneinfo"; - homepage = "https://github.com/pganssle/zoneinfo"; - license = licenses.asl20; - maintainers = with maintainers; [ jonringer ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/backports-zoneinfo/zoneinfo.patch b/pkgs/by-name/py/python/python-modules/backports-zoneinfo/zoneinfo.patch deleted file mode 100644 index 69dd750..0000000 --- a/pkgs/by-name/py/python/python-modules/backports-zoneinfo/zoneinfo.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/src/backports/zoneinfo/_tzpath.py b/src/backports/zoneinfo/_tzpath.py -index 9baaf6b..3f842af 100644 ---- a/src/backports/zoneinfo/_tzpath.py -+++ b/src/backports/zoneinfo/_tzpath.py -@@ -24,10 +24,7 @@ def reset_tzpath(to=None): - base_tzpath = _parse_python_tzpath(env_var) - elif sys.platform != "win32": - base_tzpath = [ -- "/usr/share/zoneinfo", -- "/usr/lib/zoneinfo", -- "/usr/share/lib/zoneinfo", -- "/etc/zoneinfo", -+ "@zoneinfo@" - ] - - base_tzpath.sort(key=lambda x: not os.path.exists(x)) - 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 deleted file mode 100644 index f4e49bd..0000000 --- a/pkgs/by-name/py/python/python-modules/bootstrap/build/default.nix +++ /dev/null @@ -1,70 +0,0 @@ -{ 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; - - nativeBuildInputs = [ makeWrapper ]; - - buildPhase = '' - runHook preBuild - - PYTHONPATH="${flit-core}/${python.sitePackages}" \ - ${python.interpreter} -m flit_core.wheel - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - PYTHONPATH="${installer}/${python.sitePackages}" \ - ${python.interpreter} -m installer \ - --destdir "$out" --prefix "" dist/*.whl - - runHook postInstall - ''; - } // attrs); - - bootstrap-packaging = buildBootstrapPythonModule packaging {}; - - bootstrap-pyproject-hooks = buildBootstrapPythonModule pyproject-hooks {}; - - bootstrap-tomli = buildBootstrapPythonModule tomli {}; - - sitePkgs = python.sitePackages; -in -buildBootstrapPythonModule build { - # like the installPhase above, but wrapping the pyproject-build command - # to set up PYTHONPATH with the correct dependencies. - # This allows using `pyproject-build` without propagating its dependencies - # into the build environment, which is necessary to prevent - # pythonCatchConflicts from raising false positive alerts. - # This would happen whenever the package to build has a dependency on - # another version of a package that is also a dependency of pyproject-build. - installPhase = '' - runHook preInstall - - PYTHONPATH="${installer}/${python.sitePackages}" \ - ${python.interpreter} -m installer \ - --destdir "$out" --prefix "" dist/*.whl - - wrapProgram $out/bin/pyproject-build \ - --prefix PYTHONPATH : "$out/${sitePkgs}" \ - --prefix PYTHONPATH : "${bootstrap-pyproject-hooks}/${sitePkgs}" \ - --prefix PYTHONPATH : "${bootstrap-packaging}/${sitePkgs}" \ - --prefix PYTHONPATH : "${bootstrap-tomli}/${sitePkgs}" - - runHook postInstall - ''; -} 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 deleted file mode 100644 index 43fec03..0000000 --- a/pkgs/by-name/py/python/python-modules/bootstrap/flit-core/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib -, stdenv -, python -, flit-core -}: - -stdenv.mkDerivation rec { - pname = "${python.libPrefix}-bootstrap-${flit-core.pname}"; - inherit (flit-core) version src patches meta; - - sourceRoot = "${src.name}/flit_core"; - - buildPhase = '' - runHook preBuild - - ${python.interpreter} -m flit_core.wheel - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - ${python.interpreter} bootstrap_install.py dist/flit_core-*.whl \ - --install-root "$out" --installdir "/${python.sitePackages}" - - runHook postInstall - ''; -} 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 deleted file mode 100644 index a3944ba..0000000 --- a/pkgs/by-name/py/python/python-modules/bootstrap/installer/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib -, stdenv -, python -, flit-core -, installer -}: - -stdenv.mkDerivation { - pname = "${python.libPrefix}-bootstrap-${installer.pname}"; - inherit (installer) version src patches meta; - - buildPhase = '' - runHook preBuild - - PYTHONPATH="${flit-core}/${python.sitePackages}" \ - ${python.interpreter} -m flit_core.wheel - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - PYTHONPATH=src ${python.interpreter} -m installer \ - --destdir "$out" --prefix "" dist/installer-*.whl - - runHook postInstall - ''; -} 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 deleted file mode 100644 index f8a10d4..0000000 --- a/pkgs/by-name/py/python/python-modules/bootstrap/packaging/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ stdenv -, python -, flit-core -, installer -, packaging -}: - -stdenv.mkDerivation { - pname = "${python.libPrefix}-bootstrap-${packaging.pname}"; - inherit (packaging) version src meta; - - buildPhase = '' - runHook preBuild - - PYTHONPATH="${flit-core}/${python.sitePackages}" \ - ${python.interpreter} -m flit_core.wheel - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - PYTHONPATH="${installer}/${python.sitePackages}" \ - ${python.interpreter} -m installer \ - --destdir "$out" --prefix "" dist/*.whl - - runHook postInstall - ''; -} diff --git a/pkgs/by-name/py/python/python-modules/brotlicffi/default.nix b/pkgs/by-name/py/python/python-modules/brotlicffi/default.nix deleted file mode 100644 index 9d246d3..0000000 --- a/pkgs/by-name/py/python/python-modules/brotlicffi/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ lib -, fetchFromGitHub -, buildPythonPackage -, pythonOlder -, cffi -, brotli -}: - -buildPythonPackage rec { - pname = "brotlicffi"; - version = "1.1.0.0"; - format = "setuptools"; - disabled = pythonOlder "3.7"; - - src = fetchFromGitHub { - owner = "python-hyper"; - repo = pname; - rev = "v${version}"; - sha256 = "sha256-oW4y1WBJ7+4XwNwwSSR0qUqN03cZYXUYQ6EAwce9dzI="; - }; - - buildInputs = [ - brotli - ]; - - propagatedNativeBuildInputs = [ - cffi - ]; - - propagatedBuildInputs = [ - cffi - ]; - - preBuild = '' - export USE_SHARED_BROTLI=1 - ''; - - # Test data is not available, only when using libbrotli git checkout - doCheck = false; - - pythonImportsCheck = [ "brotlicffi" ]; - - meta = with lib; { - description = "Python CFFI bindings to the Brotli library"; - homepage = "https://github.com/python-hyper/brotlicffi"; - license = licenses.mit; - maintainers = with maintainers; [ fab ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/build/default.nix b/pkgs/by-name/py/python/python-modules/build/default.nix deleted file mode 100644 index 4eaace8..0000000 --- a/pkgs/by-name/py/python/python-modules/build/default.nix +++ /dev/null @@ -1,113 +0,0 @@ -{ lib -, stdenv -, buildPythonPackage -, fetchFromGitHub -, flit-core -, packaging -, pythonOlder -, pyproject-hooks -, tomli -# for passthru.tests -# , filelock -# , pytest-mock -# , pytest-rerunfailures -# , pytest-xdist -# , pytestCheckHook -# , setuptools -# , wheel -}: - -buildPythonPackage rec { - pname = "build"; - version = "1.2.1"; - format = "pyproject"; - - disabled = pythonOlder "3.7"; - - src = fetchFromGitHub { - owner = "pypa"; - repo = "build"; - rev = "refs/tags/${version}"; - hash = "sha256-G0g+1v19sQMUuQlZKGELZOwwX07i7TIdEdaYzr8bKtI="; - }; - - postPatch = '' - # not strictly required, causes circular dependency cycle - sed -i '/importlib-metadata >= 4.6/d' pyproject.toml - ''; - - nativeBuildInputs = [ - flit-core - ]; - - propagatedBuildInputs = [ - packaging - pyproject-hooks - ] ++ 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. - doCheck = false; - - # passthru.tests = { - # pytest = buildPythonPackage { - # pname = "${pname}-pytest"; - # inherit src version; - # format = "other"; - - # dontBuild = true; - # dontInstall = true; - - # nativeCheckInputs = [ - # build - # filelock - # pytest-mock - # pytest-rerunfailures - # pytest-xdist - # pytestCheckHook - # setuptools - # wheel - # ]; - - # pytestFlagsArray = [ - # "-W" - # "ignore::DeprecationWarning" - # ]; - - # __darwinAllowLocalNetworking = true; - - # disabledTests = [ - # # Tests often fail with StopIteration - # "test_isolat" - # "test_default_pip_is_never_too_old" - # "test_build" - # "test_with_get_requires" - # "test_init" - # "test_output" - # "test_wheel_metadata" - # ] ++ lib.optionals stdenv.isDarwin [ - # # Expects Apple's Python and its quirks - # "test_can_get_venv_paths_with_conflicting_default_scheme" - # ]; - # }; - # }; - - pythonImportsCheck = [ - "build" - ]; - - meta = with lib; { - mainProgram = "pyproject-build"; - description = "Simple, correct PEP517 package builder"; - longDescription = '' - build will invoke the PEP 517 hooks to build a distribution package. It - is a simple build tool and does not perform any dependency management. - ''; - homepage = "https://github.com/pypa/build"; - changelog = "https://github.com/pypa/build/blob/${version}/CHANGELOG.rst"; - license = licenses.mit; - maintainers = teams.python.members ++ [ maintainers.fab ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/buildcatrust/default.nix b/pkgs/by-name/py/python/python-modules/buildcatrust/default.nix deleted file mode 100644 index 5fc3eab..0000000 --- a/pkgs/by-name/py/python/python-modules/buildcatrust/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, flit-core -, pytestCheckHook -}: - -buildPythonPackage rec { - pname = "buildcatrust"; - version = "0.3.0"; - pyproject = true; - - src = fetchPypi { - inherit pname version; - hash = "sha256-Ac10CZdihFBmr5LE6xFKx4+zr2n5nyR23px6N4vN05M="; - }; - - nativeBuildInputs = [ - flit-core - ]; - - nativeCheckInputs = [ - pytestCheckHook - ]; - - disabledTestPaths = [ - # Non-hermetic, needs internet access (e.g. attempts to retrieve NSS store). - "buildcatrust/tests/test_nonhermetic.py" - ]; - - pythonImportsCheck = [ - "buildcatrust" - "buildcatrust.cli" - ]; - - meta = with lib; { - description = "Build SSL/TLS trust stores"; - mainProgram = "buildcatrust"; - homepage = "https://github.com/lukegb/buildcatrust"; - license = licenses.mit; - maintainers = with maintainers; [ lukegb ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/calver/default.nix b/pkgs/by-name/py/python/python-modules/calver/default.nix deleted file mode 100644 index 4b400f2..0000000 --- a/pkgs/by-name/py/python/python-modules/calver/default.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ lib -, buildPythonPackage -, pythonOlder -, fetchFromGitHub -, pretend -, pytestCheckHook -}: - -let - self = buildPythonPackage rec { - pname = "calver"; - version = "2022.06.26"; - format = "setuptools"; - - disabled = pythonOlder "3.5"; - - src = fetchFromGitHub { - owner = "di"; - repo = "calver"; - rev = version; - hash = "sha256-YaXTkeUazwzghCX96Wfx39hGvukWKtHMLLeyF9OeiZI="; - }; - - postPatch = '' - substituteInPlace setup.py \ - --replace "version=calver_version(True)" 'version="${version}"' - ''; - - doCheck = false; # avoid infinite recursion with hatchling - - nativeCheckInputs = [ - pretend - pytestCheckHook - ]; - - pythonImportsCheck = [ "calver" ]; - - passthru.tests.calver = self.overridePythonAttrs { doCheck = true; }; - - meta = { - description = "Setuptools extension for CalVer package versions"; - homepage = "https://github.com/di/calver"; - license = lib.licenses.asl20; - maintainers = with lib.maintainers; [ dotlambda ]; - }; - }; -in - 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 deleted file mode 100644 index 73492ba..0000000 --- a/pkgs/by-name/py/python/python-modules/certifi/default.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ lib -, buildPythonPackage -, cacert -, pythonOlder -, fetchFromGitHub -, setuptools -, pytestCheckHook -}: - -buildPythonPackage rec { - pname = "certifi"; - version = "2024.02.02"; - pyproject = true; - - disabled = pythonOlder "3.6"; - - src = fetchFromGitHub { - owner = pname; - repo = "python-certifi"; - rev = version; - hash = "sha256-gnWJjZy5E/0lvAeLftXNtcHH6RHL/dUomXOBgumiWX8="; - }; - - patches = [ - # Add support for NIX_SSL_CERT_FILE - ./env.patch - ]; - - postPatch = '' - # Use our system-wide ca-bundle instead of the bundled one - rm -v "certifi/cacert.pem" - ln -snvf "${cacert}/etc/ssl/certs/ca-bundle.crt" "certifi/cacert.pem" - ''; - - nativeBuildInputs = [ - setuptools - ]; - - propagatedNativeBuildInputs = [ - # propagate cacerts setup-hook to set up `NIX_SSL_CERT_FILE` - cacert - ]; - - nativeCheckInputs = [ - pytestCheckHook - ]; - - pythonImportsCheck = [ - "certifi" - ]; - - meta = with lib; { - homepage = "https://github.com/certifi/python-certifi"; - description = "Python package for providing Mozilla's CA Bundle"; - license = licenses.isc; - maintainers = with maintainers; [ koral ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/certifi/env.patch b/pkgs/by-name/py/python/python-modules/certifi/env.patch deleted file mode 100644 index 97a48b4..0000000 --- a/pkgs/by-name/py/python/python-modules/certifi/env.patch +++ /dev/null @@ -1,87 +0,0 @@ -diff --git a/certifi/core.py b/certifi/core.py -index 91f538b..1110ce0 100644 ---- a/certifi/core.py -+++ b/certifi/core.py -@@ -4,6 +4,7 @@ certifi.py - - This module returns the installation location of cacert.pem or its contents. - """ -+import os - import sys - import atexit - -@@ -11,12 +12,21 @@ def exit_cacert_ctx() -> None: - _CACERT_CTX.__exit__(None, None, None) # type: ignore[union-attr] - - -+def get_cacert_path_from_environ(): -+ path = os.environ.get("NIX_SSL_CERT_FILE", None) -+ -+ if path == "/no-cert-file.crt": -+ return None -+ -+ return path -+ -+ - if sys.version_info >= (3, 11): - - from importlib.resources import as_file, files - - _CACERT_CTX = None -- _CACERT_PATH = None -+ _CACERT_PATH = get_cacert_path_from_environ() - - def where() -> str: - # This is slightly terrible, but we want to delay extracting the file -@@ -44,6 +54,8 @@ if sys.version_info >= (3, 11): - return _CACERT_PATH - - def contents() -> str: -+ if _CACERT_PATH is not None: -+ return open(_CACERT_PATH, encoding="utf-8").read() - return files("certifi").joinpath("cacert.pem").read_text(encoding="ascii") - - elif sys.version_info >= (3, 7): -@@ -51,7 +63,7 @@ elif sys.version_info >= (3, 7): - from importlib.resources import path as get_path, read_text - - _CACERT_CTX = None -- _CACERT_PATH = None -+ _CACERT_PATH = get_cacert_path_from_environ() - - def where() -> str: - # This is slightly terrible, but we want to delay extracting the -@@ -80,7 +92,9 @@ elif sys.version_info >= (3, 7): - return _CACERT_PATH - - def contents() -> str: -- return read_text("certifi", "cacert.pem", encoding="ascii") -+ if _CACERT_PATH is not None: -+ return open(_CACERT_PATH, encoding="utf-8").read() -+ return read_text("certifi", "cacert.pem", encoding="utf-8") - - else: - import os -@@ -90,6 +104,8 @@ else: - Package = Union[types.ModuleType, str] - Resource = Union[str, "os.PathLike"] - -+ _CACERT_PATH = get_cacert_path_from_environ() -+ - # This fallback will work for Python versions prior to 3.7 that lack the - # importlib.resources module but relies on the existing `where` function - # so won't address issues with environments like PyOxidizer that don't set -@@ -108,7 +124,13 @@ else: - def where() -> str: - f = os.path.dirname(__file__) - -+ if _CACERT_PATH is not None: -+ return _CACERT_PATH -+ - return os.path.join(f, "cacert.pem") - - def contents() -> str: -+ if _CACERT_PATH is not None: -+ with open(_CACERT_PATH, encoding="utf-8") as data: -+ return data.read() - return read_text("certifi", "cacert.pem", encoding="ascii") diff --git a/pkgs/by-name/py/python/python-modules/cffi/clang-pointer-substraction-warning.diff b/pkgs/by-name/py/python/python-modules/cffi/clang-pointer-substraction-warning.diff deleted file mode 100644 index 75b2677..0000000 --- a/pkgs/by-name/py/python/python-modules/cffi/clang-pointer-substraction-warning.diff +++ /dev/null @@ -1,11 +0,0 @@ -diff -r c649a735cf82 testing/support.py ---- a/testing/support.py Thu Feb 23 05:42:01 2023 +0100 -+++ b/testing/support.py Sat May 20 21:46:56 2023 -0400 -@@ -112,6 +112,7 @@ - '-Wno-unreachable-code'] - # special things for clang - extra_compile_args.append('-Qunused-arguments') -+ extra_compile_args.append('-Wno-null-pointer-subtraction') - else: - # assume a standard gcc - extra_compile_args = ['-Werror', '-Wall', '-Wextra', '-Wconversion', diff --git a/pkgs/by-name/py/python/python-modules/cffi/darwin-use-libffi-closures.diff b/pkgs/by-name/py/python/python-modules/cffi/darwin-use-libffi-closures.diff deleted file mode 100644 index 4ef5127..0000000 --- a/pkgs/by-name/py/python/python-modules/cffi/darwin-use-libffi-closures.diff +++ /dev/null @@ -1,29 +0,0 @@ -diff --git a/src/c/_cffi_backend.c b/src/c/_cffi_backend.c -index 537271f..9c3bf94 100644 ---- a/src/c/_cffi_backend.c -+++ b/src/c/_cffi_backend.c -@@ -103,11 +103,11 @@ - # define CFFI_CHECK_FFI_PREP_CIF_VAR 0 - # define CFFI_CHECK_FFI_PREP_CIF_VAR_MAYBE 0 - --#elif defined(__APPLE__) && defined(FFI_AVAILABLE_APPLE) -+#elif defined(__APPLE__) - --# define CFFI_CHECK_FFI_CLOSURE_ALLOC __builtin_available(macos 10.15, ios 13, watchos 6, tvos 13, *) -+# define CFFI_CHECK_FFI_CLOSURE_ALLOC 1 - # define CFFI_CHECK_FFI_CLOSURE_ALLOC_MAYBE 1 --# define CFFI_CHECK_FFI_PREP_CLOSURE_LOC __builtin_available(macos 10.15, ios 13, watchos 6, tvos 13, *) -+# define CFFI_CHECK_FFI_PREP_CLOSURE_LOC 1 - # define CFFI_CHECK_FFI_PREP_CLOSURE_LOC_MAYBE 1 --# define CFFI_CHECK_FFI_PREP_CIF_VAR __builtin_available(macos 10.15, ios 13, watchos 6, tvos 13, *) -+# define CFFI_CHECK_FFI_PREP_CIF_VAR 1 - # define CFFI_CHECK_FFI_PREP_CIF_VAR_MAYBE 1 -@@ -6422,7 +6422,7 @@ static PyObject *b_callback(PyObject *self, PyObject *args) - else - #endif - { --#if defined(__APPLE__) && defined(FFI_AVAILABLE_APPLE) && !FFI_LEGACY_CLOSURE_API -+#if defined(__APPLE__) && !FFI_LEGACY_CLOSURE_API - PyErr_Format(PyExc_SystemError, "ffi_prep_closure_loc() is missing"); - goto error; - #else diff --git a/pkgs/by-name/py/python/python-modules/cffi/default.nix b/pkgs/by-name/py/python/python-modules/cffi/default.nix deleted file mode 100644 index 7b2547a..0000000 --- a/pkgs/by-name/py/python/python-modules/cffi/default.nix +++ /dev/null @@ -1,83 +0,0 @@ -{ 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; - - 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 - ]; - - 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 - ]; - - buildInputs = [ - libffi - ]; - - 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"; - - doCheck = !stdenv.hostPlatform.isMusl; - - 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; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/chardet/default.nix b/pkgs/by-name/py/python/python-modules/chardet/default.nix deleted file mode 100644 index f0170eb..0000000 --- a/pkgs/by-name/py/python/python-modules/chardet/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, hypothesis -, pythonOlder -, pytestCheckHook -, setuptools -}: - -buildPythonPackage rec { - pname = "chardet"; - version = "5.2.0"; - format = "pyproject"; - disabled = pythonOlder "3.6"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-Gztv9HmoxBS8P6LAhSmVaVxKAm3NbQYzst0JLKOcHPc="; - }; - - nativeBuildInputs = [ - setuptools - ]; - - nativeCheckInputs = [ - hypothesis - pytestCheckHook - ]; - - disabledTests = [ - # flaky; https://github.com/chardet/chardet/issues/256 - "test_detect_all_and_detect_one_should_agree" - ]; - - pythonImportsCheck = [ "chardet" ]; - - meta = with lib; { - changelog = "https://github.com/chardet/chardet/releases/tag/${version}"; - description = "Universal encoding detector"; - mainProgram = "chardetect"; - homepage = "https://github.com/chardet/chardet"; - license = licenses.lgpl21Plus; - maintainers = with maintainers; [ domenkozar ]; - }; -} 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 deleted file mode 100644 index 2a6a13d..0000000 --- a/pkgs/by-name/py/python/python-modules/charset-normalizer/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ lib -, aiohttp -, buildPythonPackage -, fetchFromGitHub -, pytestCheckHook -, pythonOlder -, requests -}: - -buildPythonPackage rec { - pname = "charset-normalizer"; - version = "3.3.2"; - format = "setuptools"; - - disabled = pythonOlder "3.5"; - - src = fetchFromGitHub { - owner = "Ousret"; - repo = "charset_normalizer"; - rev = "refs/tags/${version}"; - hash = "sha256-T9lnlS05Ogb2eLLHYWFnjBtRaB/OBqGWHQ/2WLunrNY="; - }; - - postPatch = '' - substituteInPlace setup.cfg \ - --replace " --cov=charset_normalizer --cov-report=term-missing" "" - ''; - - nativeCheckInputs = [ - pytestCheckHook - ]; - - pythonImportsCheck = [ - "charset_normalizer" - ]; - - passthru.tests = { inherit aiohttp requests; }; - - meta = with lib; { - description = "Python module for encoding and language detection"; - mainProgram = "normalizer"; - homepage = "https://charset-normalizer.readthedocs.io/"; - changelog = "https://github.com/Ousret/charset_normalizer/blob/${version}/CHANGELOG.md"; - license = licenses.mit; - maintainers = with maintainers; [ fab ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/cython/0.nix b/pkgs/by-name/py/python/python-modules/cython/0.nix deleted file mode 100644 index e0b6c02..0000000 --- a/pkgs/by-name/py/python/python-modules/cython/0.nix +++ /dev/null @@ -1,90 +0,0 @@ -{ lib -, stdenv -, buildPythonPackage -, fetchPypi -, fetchpatch -, setuptools -, python -, pkg-config -, gdb -, numpy -, ncurses -}: - -let - 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" ] - # 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" ] - ; - -in buildPythonPackage rec { - pname = "cython"; - version = "0.29.36"; - pyproject = true; - - src = fetchPypi { - pname = "Cython"; - inherit version; - hash = "sha256-QcDP0tdU44PJ7rle/8mqSrhH0Ml0cHfd18Dctow7wB8="; - }; - - nativeBuildInputs = [ - pkg-config - setuptools - ]; - - nativeCheckInputs = [ - gdb numpy ncurses - ]; - - LC_ALL = "en_US.UTF-8"; - - patches = [ - # backport Cython 3.0 trashcan support (https://github.com/cython/cython/pull/2842) to 0.X series. - # it does not affect Python code unless the code explicitly uses the feature. - # trashcan support is needed to avoid stack overflows during object deallocation in sage (https://trac.sagemath.org/ticket/27267) - ./trashcan.patch - # The above commit introduces custom trashcan macros, as well as - # compiler changes to use them in Cython-emitted code. The latter - # change is still useful, but the former has been upstreamed as of - # Python 3.8, and the patch below makes Cython use the upstream - # trashcan macros whenever available. This is needed for Python - # 3.11 support, because the API used in Cython's implementation - # changed: https://github.com/cython/cython/pull/4475 - (fetchpatch { - name = "disable-trashcan.patch"; - url = "https://github.com/cython/cython/commit/e337825cdcf5e94d38ba06a0cb0188e99ce0cc92.patch"; - hash = "sha256-q0f63eetKrDpmP5Z4v8EuGxg26heSyp/62OYqhRoSso="; - }) - ]; - - checkPhase = '' - 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})"''} - ''; - - # https://github.com/cython/cython/issues/2785 - # Temporary solution - doCheck = false; - # doCheck = !stdenv.isDarwin; - - # force regeneration of generated code in source distributions - # https://github.com/cython/cython/issues/5089 - setupHook = ./setup-hook.sh; - - meta = { - changelog = "https://github.com/cython/cython/blob/${version}/CHANGES.rst"; - description = "An optimising static compiler for both the Python programming language and the extended Cython programming language"; - homepage = "https://cython.org"; - license = lib.licenses.asl20; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/cython/default.nix b/pkgs/by-name/py/python/python-modules/cython/default.nix deleted file mode 100644 index 2062ae0..0000000 --- a/pkgs/by-name/py/python/python-modules/cython/default.nix +++ /dev/null @@ -1,70 +0,0 @@ -{ lib -, stdenv -, buildPythonPackage -, fetchPypi -, setuptools -, python -, pkg-config -, gdb -, numpy -, ncurses -}: - -let - 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" ] - # 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" ] - ; - -in buildPythonPackage rec { - pname = "cython"; - version = "3.0.9"; - pyproject = true; - - src = fetchPypi { - pname = "Cython"; - inherit version; - hash = "sha256-otNU8FnR8FXTTPqmLFtovHisLOq2QHFI1H+1CM87pPM="; - }; - - build-system = [ - pkg-config - setuptools - ]; - - nativeCheckInputs = [ - gdb numpy ncurses - ]; - - env.LC_ALL = "en_US.UTF-8"; - - checkPhase = '' - 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})"''} - ''; - - # https://github.com/cython/cython/issues/2785 - # Temporary solution - doCheck = false; - # doCheck = !stdenv.isDarwin; - - # force regeneration of generated code in source distributions - # https://github.com/cython/cython/issues/5089 - setupHook = ./setup-hook.sh; - - meta = { - changelog = "https://github.com/cython/cython/blob/${version}/CHANGES.rst"; - description = "An optimising static compiler for both the Python programming language and the extended Cython programming language"; - homepage = "https://cython.org"; - license = lib.licenses.asl20; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/cython/setup-hook.sh b/pkgs/by-name/py/python/python-modules/cython/setup-hook.sh deleted file mode 100644 index c26330a..0000000 --- a/pkgs/by-name/py/python/python-modules/cython/setup-hook.sh +++ /dev/null @@ -1,3 +0,0 @@ -if [ -z "${dontForceRegenCython-}"]; then - export CYTHON_FORCE_REGEN=1 -fi diff --git a/pkgs/by-name/py/python/python-modules/cython/trashcan.patch b/pkgs/by-name/py/python/python-modules/cython/trashcan.patch deleted file mode 100644 index 398422e..0000000 --- a/pkgs/by-name/py/python/python-modules/cython/trashcan.patch +++ /dev/null @@ -1,354 +0,0 @@ -From 1b77e35d848340f2c5f4c9b82965c25a0572d48f Mon Sep 17 00:00:00 2001 -From: Jeroen Demeyer -Date: Thu, 14 Feb 2019 10:02:41 +0100 -Subject: [PATCH] @cython.trashcan directive to enable the Python trashcan for - deallocations - ---- - Cython/Compiler/ModuleNode.py | 10 +++ - Cython/Compiler/Options.py | 2 + - Cython/Compiler/PyrexTypes.py | 8 +- - Cython/Compiler/Symtab.py | 18 +++- - Cython/Utility/ExtensionTypes.c | 43 ++++++++++ - tests/run/trashcan.pyx | 148 ++++++++++++++++++++++++++++++++ - 6 files changed, 227 insertions(+), 2 deletions(-) - create mode 100644 tests/run/trashcan.pyx - -diff --git a/Cython/Compiler/ModuleNode.py b/Cython/Compiler/ModuleNode.py -index 56845330d..3a3e8a956 100644 ---- a/Cython/Compiler/ModuleNode.py -+++ b/Cython/Compiler/ModuleNode.py -@@ -1443,6 +1443,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): - - is_final_type = scope.parent_type.is_final_type - needs_gc = scope.needs_gc() -+ needs_trashcan = scope.needs_trashcan() - - weakref_slot = scope.lookup_here("__weakref__") if not scope.is_closure_class_scope else None - if weakref_slot not in scope.var_entries: -@@ -1481,6 +1482,11 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): - # running this destructor. - code.putln("PyObject_GC_UnTrack(o);") - -+ if needs_trashcan: -+ code.globalstate.use_utility_code( -+ UtilityCode.load_cached("PyTrashcan", "ExtensionTypes.c")) -+ code.putln("__Pyx_TRASHCAN_BEGIN(o, %s)" % slot_func_cname) -+ - # call the user's __dealloc__ - self.generate_usr_dealloc_call(scope, code) - -@@ -1554,6 +1560,10 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): - code.putln("(*Py_TYPE(o)->tp_free)(o);") - if freelist_size: - code.putln("}") -+ -+ if needs_trashcan: -+ code.putln("__Pyx_TRASHCAN_END") -+ - code.putln( - "}") - -diff --git a/Cython/Compiler/Options.py b/Cython/Compiler/Options.py -index d03119fca..05a728135 100644 ---- a/Cython/Compiler/Options.py -+++ b/Cython/Compiler/Options.py -@@ -319,6 +319,7 @@ directive_types = { - 'freelist': int, - 'c_string_type': one_of('bytes', 'bytearray', 'str', 'unicode'), - 'c_string_encoding': normalise_encoding_name, -+ 'trashcan': bool, - 'cpow': bool - } - -@@ -362,6 +363,7 @@ directive_scopes = { # defaults to available everywhere - 'np_pythran': ('module',), - 'fast_gil': ('module',), - 'iterable_coroutine': ('module', 'function'), -+ 'trashcan' : ('cclass',), - } - - -diff --git a/Cython/Compiler/PyrexTypes.py b/Cython/Compiler/PyrexTypes.py -index c309bd04b..9231130b5 100644 ---- a/Cython/Compiler/PyrexTypes.py -+++ b/Cython/Compiler/PyrexTypes.py -@@ -1129,6 +1129,7 @@ class PyObjectType(PyrexType): - is_extern = False - is_subclassed = False - is_gc_simple = False -+ builtin_trashcan = False # builtin type using trashcan - - def __str__(self): - return "Python object" -@@ -1183,10 +1184,14 @@ class PyObjectType(PyrexType): - - - builtin_types_that_cannot_create_refcycles = set([ -- 'bool', 'int', 'long', 'float', 'complex', -+ 'object', 'bool', 'int', 'long', 'float', 'complex', - 'bytearray', 'bytes', 'unicode', 'str', 'basestring' - ]) - -+builtin_types_with_trashcan = set([ -+ 'dict', 'list', 'set', 'frozenset', 'tuple', 'type', -+]) -+ - - class BuiltinObjectType(PyObjectType): - # objstruct_cname string Name of PyObject struct -@@ -1211,6 +1216,7 @@ class BuiltinObjectType(PyObjectType): - self.typeptr_cname = "(&%s)" % cname - self.objstruct_cname = objstruct_cname - self.is_gc_simple = name in builtin_types_that_cannot_create_refcycles -+ self.builtin_trashcan = name in builtin_types_with_trashcan - if name == 'type': - # Special case the type type, as many C API calls (and other - # libraries) actually expect a PyTypeObject* for type arguments. -diff --git a/Cython/Compiler/Symtab.py b/Cython/Compiler/Symtab.py -index 7361a55ae..f0c311ba6 100644 ---- a/Cython/Compiler/Symtab.py -+++ b/Cython/Compiler/Symtab.py -@@ -2043,7 +2043,7 @@ class PyClassScope(ClassScope): - class CClassScope(ClassScope): - # Namespace of an extension type. - # -- # parent_type CClassType -+ # parent_type PyExtensionType - # #typeobj_cname string or None - # #objstruct_cname string - # method_table_cname string -@@ -2087,6 +2087,22 @@ class CClassScope(ClassScope): - return not self.parent_type.is_gc_simple - return False - -+ def needs_trashcan(self): -+ # If the trashcan directive is explicitly set to False, -+ # unconditionally disable the trashcan. -+ directive = self.directives.get('trashcan') -+ if directive is False: -+ return False -+ # If the directive is set to True and the class has Python-valued -+ # C attributes, then it should use the trashcan in tp_dealloc. -+ if directive and self.has_cyclic_pyobject_attrs: -+ return True -+ # Use the trashcan if the base class uses it -+ base_type = self.parent_type.base_type -+ if base_type and base_type.scope is not None: -+ return base_type.scope.needs_trashcan() -+ return self.parent_type.builtin_trashcan -+ - def needs_tp_clear(self): - """ - Do we need to generate an implementation for the tp_clear slot? Can -diff --git a/Cython/Utility/ExtensionTypes.c b/Cython/Utility/ExtensionTypes.c -index dc187ab49..f359165df 100644 ---- a/Cython/Utility/ExtensionTypes.c -+++ b/Cython/Utility/ExtensionTypes.c -@@ -119,6 +119,49 @@ static int __Pyx_PyType_Ready(PyTypeObject *t) { - return r; - } - -+/////////////// PyTrashcan.proto /////////////// -+ -+// These macros are taken from https://github.com/python/cpython/pull/11841 -+// Unlike the Py_TRASHCAN_SAFE_BEGIN/Py_TRASHCAN_SAFE_END macros, they -+// allow dealing correctly with subclasses. -+ -+// This requires CPython version >= 2.7.4 -+// (or >= 3.2.4 but we don't support such old Python 3 versions anyway) -+#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x02070400 -+#define __Pyx_TRASHCAN_BEGIN_CONDITION(op, cond) \ -+ do { \ -+ PyThreadState *_tstate = NULL; \ -+ // If "cond" is false, then _tstate remains NULL and the deallocator -+ // is run normally without involving the trashcan -+ if (cond) { \ -+ _tstate = PyThreadState_GET(); \ -+ if (_tstate->trash_delete_nesting >= PyTrash_UNWIND_LEVEL) { \ -+ // Store the object (to be deallocated later) and jump past -+ // Py_TRASHCAN_END, skipping the body of the deallocator -+ _PyTrash_thread_deposit_object((PyObject*)(op)); \ -+ break; \ -+ } \ -+ ++_tstate->trash_delete_nesting; \ -+ } -+ // The body of the deallocator is here. -+#define __Pyx_TRASHCAN_END \ -+ if (_tstate) { \ -+ --_tstate->trash_delete_nesting; \ -+ if (_tstate->trash_delete_later && _tstate->trash_delete_nesting <= 0) \ -+ _PyTrash_thread_destroy_chain(); \ -+ } \ -+ } while (0); -+ -+#define __Pyx_TRASHCAN_BEGIN(op, dealloc) __Pyx_TRASHCAN_BEGIN_CONDITION(op, \ -+ Py_TYPE(op)->tp_dealloc == (destructor)(dealloc)) -+ -+#else -+// The trashcan is a no-op on other Python implementations -+// or old CPython versions -+#define __Pyx_TRASHCAN_BEGIN(op, dealloc) -+#define __Pyx_TRASHCAN_END -+#endif -+ - /////////////// CallNextTpDealloc.proto /////////////// - - static void __Pyx_call_next_tp_dealloc(PyObject* obj, destructor current_tp_dealloc); -diff --git a/tests/run/trashcan.pyx b/tests/run/trashcan.pyx -new file mode 100644 -index 000000000..93a501ff8 ---- /dev/null -+++ b/tests/run/trashcan.pyx -@@ -0,0 +1,148 @@ -+# mode: run -+ -+cimport cython -+ -+ -+# Count number of times an object was deallocated twice. This should remain 0. -+cdef int double_deallocations = 0 -+def assert_no_double_deallocations(): -+ global double_deallocations -+ err = double_deallocations -+ double_deallocations = 0 -+ assert not err -+ -+ -+# Compute x = f(f(f(...(None)...))) nested n times and throw away the result. -+# The real test happens when exiting this function: then a big recursive -+# deallocation of x happens. We are testing two things in the tests below: -+# that Python does not crash and that no double deallocation happens. -+# See also https://github.com/python/cpython/pull/11841 -+def recursion_test(f, int n=2**20): -+ x = None -+ cdef int i -+ for i in range(n): -+ x = f(x) -+ -+ -+@cython.trashcan(True) -+cdef class Recurse: -+ """ -+ >>> recursion_test(Recurse) -+ >>> assert_no_double_deallocations() -+ """ -+ cdef public attr -+ cdef int deallocated -+ -+ def __init__(self, x): -+ self.attr = x -+ -+ def __dealloc__(self): -+ # Check that we're not being deallocated twice -+ global double_deallocations -+ double_deallocations += self.deallocated -+ self.deallocated = 1 -+ -+ -+cdef class RecurseSub(Recurse): -+ """ -+ >>> recursion_test(RecurseSub) -+ >>> assert_no_double_deallocations() -+ """ -+ cdef int subdeallocated -+ -+ def __dealloc__(self): -+ # Check that we're not being deallocated twice -+ global double_deallocations -+ double_deallocations += self.subdeallocated -+ self.subdeallocated = 1 -+ -+ -+@cython.freelist(4) -+@cython.trashcan(True) -+cdef class RecurseFreelist: -+ """ -+ >>> recursion_test(RecurseFreelist) -+ >>> recursion_test(RecurseFreelist, 1000) -+ >>> assert_no_double_deallocations() -+ """ -+ cdef public attr -+ cdef int deallocated -+ -+ def __init__(self, x): -+ self.attr = x -+ -+ def __dealloc__(self): -+ # Check that we're not being deallocated twice -+ global double_deallocations -+ double_deallocations += self.deallocated -+ self.deallocated = 1 -+ -+ -+# Subclass of list => uses trashcan by default -+# As long as https://github.com/python/cpython/pull/11841 is not fixed, -+# this does lead to double deallocations, so we skip that check. -+cdef class RecurseList(list): -+ """ -+ >>> RecurseList(42) -+ [42] -+ >>> recursion_test(RecurseList) -+ """ -+ def __init__(self, x): -+ super().__init__((x,)) -+ -+ -+# Some tests where the trashcan is NOT used. When the trashcan is not used -+# in a big recursive deallocation, the __dealloc__s of the base classs are -+# only run after the __dealloc__s of the subclasses. -+# We use this to detect trashcan usage. -+cdef int base_deallocated = 0 -+cdef int trashcan_used = 0 -+def assert_no_trashcan_used(): -+ global base_deallocated, trashcan_used -+ err = trashcan_used -+ trashcan_used = base_deallocated = 0 -+ assert not err -+ -+ -+cdef class Base: -+ def __dealloc__(self): -+ global base_deallocated -+ base_deallocated = 1 -+ -+ -+# Trashcan disabled by default -+cdef class Sub1(Base): -+ """ -+ >>> recursion_test(Sub1, 100) -+ >>> assert_no_trashcan_used() -+ """ -+ cdef public attr -+ -+ def __init__(self, x): -+ self.attr = x -+ -+ def __dealloc__(self): -+ global base_deallocated, trashcan_used -+ trashcan_used += base_deallocated -+ -+ -+@cython.trashcan(True) -+cdef class Middle(Base): -+ cdef public foo -+ -+ -+# Trashcan disabled explicitly -+@cython.trashcan(False) -+cdef class Sub2(Middle): -+ """ -+ >>> recursion_test(Sub2, 1000) -+ >>> assert_no_trashcan_used() -+ """ -+ cdef public attr -+ -+ def __init__(self, x): -+ self.attr = x -+ -+ def __dealloc__(self): -+ global base_deallocated, trashcan_used -+ trashcan_used += base_deallocated --- -2.39.0 - diff --git a/pkgs/by-name/py/python/python-modules/docutils/default.nix b/pkgs/by-name/py/python/python-modules/docutils/default.nix deleted file mode 100644 index 136f679..0000000 --- a/pkgs/by-name/py/python/python-modules/docutils/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ stdenv -, lib -, fetchPypi -, buildPythonPackage -, python -, pythonOlder -}: - -buildPythonPackage rec { - pname = "docutils"; - version = "0.20.1"; - - disabled = pythonOlder "3.7"; - - format = "setuptools"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-8IpOJ2w6FYOobc4+NKuj/gTQK7ot1R7RYQYkToqSPjs="; - }; - - # 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 - ''; - - # Create symlinks lacking a ".py" suffix, many programs depend on these names - postFixup = '' - for f in $out/bin/*.py; do - ln -s $(basename $f) $out/bin/$(basename $f .py) - done - ''; - - meta = with lib; { - description = "Python Documentation Utilities"; - homepage = "http://docutils.sourceforge.net/"; - 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 deleted file mode 100644 index f3db3a9..0000000 --- a/pkgs/by-name/py/python/python-modules/editables/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, flit-core -, pytestCheckHook -}: - -buildPythonPackage rec { - pname = "editables"; - version = "0.5"; - format = "pyproject"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-MJYn2bXErcDmaNjG+nusG6fIxdQVwtJ/YPCB+OgNHeI="; - }; - - nativeBuildInputs = [ - flit-core - ]; - - nativeCheckInputs = [ - pytestCheckHook - ]; - - # Tests not included in archive. - doCheck = false; - - pythonImportsCheck = [ "editables" ]; - - meta = with lib; { - description = "Editable installations"; - maintainers = with maintainers; [ ]; - homepage = "https://github.com/pfmoore/editables"; - license = licenses.mit; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/exceptiongroup/default.nix b/pkgs/by-name/py/python/python-modules/exceptiongroup/default.nix deleted file mode 100644 index 2dca56a..0000000 --- a/pkgs/by-name/py/python/python-modules/exceptiongroup/default.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ lib -, buildPythonPackage -, fetchFromGitHub -, flit-scm -, pytestCheckHook -, pythonOlder -, pythonAtLeast -}: - -buildPythonPackage rec { - pname = "exceptiongroup"; - version = "1.2.0"; - format = "pyproject"; - - disabled = pythonOlder "3.7"; - - src = fetchFromGitHub { - owner = "agronholm"; - repo = "exceptiongroup"; - rev = version; - hash = "sha256-iGeaRVJeFAWfJpwr7N4kST7d8YxpX3WgDqQemlR0cLU="; - }; - - nativeBuildInputs = [ - flit-scm - ]; - - doCheck = pythonAtLeast "3.11"; # infinite recursion with pytest - - nativeCheckInputs = [ - pytestCheckHook - ]; - - disabledTests = if pythonAtLeast "3.12" then [ - # https://github.com/agronholm/exceptiongroup/issues/116 - "test_deep_split" - "test_deep_subgroup" - ] else null; - - pythonImportsCheck = [ - "exceptiongroup" - ]; - - meta = with lib; { - description = "Backport of PEP 654 (exception groups)"; - homepage = "https://github.com/agronholm/exceptiongroup"; - changelog = "https://github.com/agronholm/exceptiongroup/blob/${version}/CHANGES.rst"; - license = with licenses; [ mit ]; - maintainers = with maintainers; [ fab ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/execnet/default.nix b/pkgs/by-name/py/python/python-modules/execnet/default.nix deleted file mode 100644 index eb184c1..0000000 --- a/pkgs/by-name/py/python/python-modules/execnet/default.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ lib -, buildPythonPackage -, isPyPy -, fetchPypi -, hatchling -, hatch-vcs -, gevent -, pytestCheckHook -}: - -buildPythonPackage rec { - pname = "execnet"; - version = "2.0.2"; - format = "pyproject"; - - src = fetchPypi { - inherit pname version; - 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 - ''; - - nativeBuildInputs = [ - hatchling - hatch-vcs - ]; - - # sometimes crashes with: OSError: [Errno 9] Bad file descriptor - doCheck = !isPyPy; - - nativeCheckInputs = [ - gevent - pytestCheckHook - ]; - - disabledTests = [ - # gets stuck - "test_popen_io" - # OSError: [Errno 9] Bad file descriptor - "test_stdouterrin_setnull" - ]; - - pytestFlagsArray = [ "-vvv" ]; - - pythonImportsCheck = [ - "execnet" - ]; - - __darwinAllowLocalNetworking = true; - - meta = with lib; { - changelog = "https://github.com/pytest-dev/execnet/blob/v${version}/CHANGELOG.rst"; - description = "Distributed Python deployment and communication"; - homepage = "https://execnet.readthedocs.io/"; - license = licenses.mit; - maintainers = with maintainers; [ ]; - }; -} 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 deleted file mode 100644 index e5f4100..0000000 --- a/pkgs/by-name/py/python/python-modules/fb-re2/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ lib -, buildPythonPackage -, fetchpatch -, fetchPypi -, re2 -}: - -buildPythonPackage rec { - pname = "fb-re2"; - version = "1.0.7"; - format = "setuptools"; - - src = fetchPypi { - inherit pname version; - sha256 = "83b2c2cd58d3874e6e3a784cf4cf2f1a57ce1969e50180f92b010eea24ef26cf"; - }; - - patches = [ - # Bump stdlib to c++17 to fix build with recent re2 - # https://github.com/facebook/pyre2/issues/24 - # https://github.com/facebook/pyre2/pull/25 - (fetchpatch { - url = "https://github.com/facebook/pyre2/pull/25/commits/08fb06ec3ccd412ca69483d27234684a04cb91a0.patch"; - hash = "sha256-kzxE2AxpE1tJJK0dJgoFfVka9zy2u0HEqiHoS7DQDQ0="; - }) - ]; - - buildInputs = [ re2 ]; - - # no tests in PyPI tarball - doCheck = false; - - meta = { - description = "Python wrapper for Google's RE2"; - homepage = "https://github.com/facebook/pyre2"; - license = lib.licenses.bsd3; - maintainers = with lib.maintainers; [ ivan ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/filelock/default.nix b/pkgs/by-name/py/python/python-modules/filelock/default.nix deleted file mode 100644 index b32335b..0000000 --- a/pkgs/by-name/py/python/python-modules/filelock/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, hatch-vcs -, hatchling -, pytest-mock -, pytestCheckHook -, pythonOlder -}: - -buildPythonPackage rec { - pname = "filelock"; - version = "3.13.1"; - format = "pyproject"; - - disabled = pythonOlder "3.7"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-Uh9fVsUPhCb14DrTsoG0kKh+8VvGxSbxaCkPDHFI1E4="; - }; - - nativeBuildInputs = [ - hatch-vcs - hatchling - ]; - - nativeCheckInputs = [ - pytest-mock - pytestCheckHook - ]; - - meta = with lib; { - changelog = "https://github.com/tox-dev/py-filelock/releases/tag/${version}"; - description = "A platform independent file lock for Python"; - homepage = "https://github.com/benediktschmitt/py-filelock"; - license = licenses.unlicense; - maintainers = with maintainers; [ hyphon81 ]; - }; -} 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 deleted file mode 100644 index 9f728cf..0000000 --- a/pkgs/by-name/py/python/python-modules/flit-core/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib -, buildPythonPackage -, flit -}: - -buildPythonPackage rec { - pname = "flit-core"; - inherit (flit) version; - format = "pyproject"; - - inherit (flit) src patches; - - sourceRoot = "${src.name}/flit_core"; - - # Tests are run in the "flit" package. - doCheck = false; - - # passthru.tests = { - # inherit flit; - # }; - - meta = with lib; { - description = "Distribution-building parts of Flit. See flit package for more information"; - homepage = "https://github.com/pypa/flit"; - changelog = "https://github.com/pypa/flit/blob/${src.rev}/doc/history.rst"; - license = licenses.bsd3; - maintainers = teams.python.members; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/flit/default.nix b/pkgs/by-name/py/python/python-modules/flit/default.nix deleted file mode 100644 index b623d1e..0000000 --- a/pkgs/by-name/py/python/python-modules/flit/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ lib -, buildPythonPackage -, fetchFromGitHub -, docutils -, requests -, pytestCheckHook -, testpath -, responses -, flit-core -, tomli-w -}: - -# Flit is actually an application to build universal wheels. -# It requires Python 3 and should eventually be moved outside of -# python-packages.nix. When it will be used to build wheels, -# care should be taken that there is no mingling of PYTHONPATH. - -buildPythonPackage rec { - pname = "flit"; - version = "3.9.0"; - format = "pyproject"; - - src = fetchFromGitHub { - owner = "takluyver"; - repo = "flit"; - rev = version; - hash = "sha256-yl2+PcKr7xRW4oIBWl+gzh/nKhSNu5GH9fWKRGgaNHU="; - }; - - nativeBuildInputs = [ - flit-core - ]; - - propagatedBuildInputs = [ - docutils - requests - flit-core - tomli-w - ]; - - nativeCheckInputs = [ pytestCheckHook testpath responses ]; - - disabledTests = [ - # needs some ini file. - "test_invalid_classifier" - # calls pip directly. disabled for PEP 668 - "test_install_data_dir" - "test_install_module_pep621" - "test_symlink_data_dir" - "test_symlink_module_pep621" - ]; - - meta = with lib; { - changelog = "https://github.com/pypa/flit/blob/${version}/doc/history.rst"; - description = "A simple packaging tool for simple packages"; - mainProgram = "flit"; - homepage = "https://github.com/pypa/flit"; - license = licenses.bsd3; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/freezegun/default.nix b/pkgs/by-name/py/python/python-modules/freezegun/default.nix deleted file mode 100644 index 2279e70..0000000 --- a/pkgs/by-name/py/python/python-modules/freezegun/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pytestCheckHook -, python-dateutil -, pythonOlder -, setuptools -}: - -buildPythonPackage rec { - pname = "freezegun"; - version = "1.4.0"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-EJObC6D/Wtrs87BqXC9zBx2WeOUHxertsjx2HVasd0s="; - }; - - nativeBuildInputs = [ - setuptools - ]; - - propagatedBuildInputs = [ - python-dateutil - ]; - - nativeCheckInputs = [ - pytestCheckHook - ]; - - pythonImportsCheck = [ - "freezegun" - ]; - - meta = with lib; { - description = "Library that allows your Python tests to travel through time"; - homepage = "https://github.com/spulec/freezegun"; - changelog = "https://github.com/spulec/freezegun/blob/${version}/CHANGELOG"; - license = licenses.asl20; - maintainers = with maintainers; [ fab ]; - }; -} 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 deleted file mode 100644 index 654b950..0000000 --- a/pkgs/by-name/py/python/python-modules/func-timeout/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pytestCheckHook -}: - -buildPythonPackage rec { - pname = "func-timeout"; - version = "4.3.5"; - format = "setuptools"; - - src = fetchPypi { - pname = "func_timeout"; - inherit version; - sha256 = "74cd3c428ec94f4edfba81f9b2f14904846d5ffccc27c92433b8b5939b5575dd"; - }; - - nativeCheckInputs = [ - pytestCheckHook - ]; - - pythonImportsCheck = [ "func_timeout" ]; - - meta = with lib; { - description = "Allows you to specify timeouts when calling any existing function. Also provides support for stoppable-threads"; - homepage = "https://github.com/kata198/func_timeout"; - license = licenses.lgpl3Only; - maintainers = with maintainers; [ ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/gevent/default.nix b/pkgs/by-name/py/python/python-modules/gevent/default.nix deleted file mode 100644 index fcc67d9..0000000 --- a/pkgs/by-name/py/python/python-modules/gevent/default.nix +++ /dev/null @@ -1,85 +0,0 @@ -{ 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 -# , gunicorn -# , opentracing -# , pika -}: - -buildPythonPackage rec { - pname = "gevent"; - version = "24.2.1"; - format = "pyproject"; - - disabled = pythonOlder "3.7"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-Qy/Hb2gKz3zxiMLuD106tztjwfAxFMfNijTOu+WqIFY="; - }; - - nativeBuildInputs = [ - cython - setuptools - wheel - ] ++ lib.optionals (!isPyPy) [ - cffi - ]; - - buildInputs = [ - libev - libuv - c-ares - ]; - - propagatedBuildInputs = [ - importlib-metadata - zope-event - zope-interface - ] ++ lib.optionals (!isPyPy) [ - greenlet - ]; - - # Bunch of failures. - doCheck = false; - - pythonImportsCheck = [ - "gevent" - "gevent.events" - ]; - - # passthru.tests = { - # inherit - # dulwich - # gunicorn - # opentracing - # pika; - # } // lib.filterAttrs (k: v: lib.hasInfix "gevent" k) python.pkgs; - - GEVENTSETUP_EMBED = "0"; - - meta = with lib; { - description = "Coroutine-based networking library"; - homepage = "http://www.gevent.org/"; - license = licenses.mit; - maintainers = with maintainers; [ bjornfor ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/greenlet/default.nix b/pkgs/by-name/py/python/python-modules/greenlet/default.nix deleted file mode 100644 index 6839b23..0000000 --- a/pkgs/by-name/py/python/python-modules/greenlet/default.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi - -# build-system -, setuptools - -# tests -, objgraph -, psutil -, python -, unittestCheckHook -}: - -let greenlet = buildPythonPackage rec { - pname = "greenlet"; - version = "3.0.3"; - pyproject = true; - - src = fetchPypi { - inherit pname version; - hash = "sha256-QzdEQjUyWVVM4zWZ2otpLVqpb4l21WfUut8mM3H75JE="; - }; - - nativeBuildInputs = [ - setuptools - ]; - - # 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 - ]; - }; -}; -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 deleted file mode 100644 index 2588482..0000000 --- a/pkgs/by-name/py/python/python-modules/hatch-vcs/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pytestCheckHook -, pythonOlder -, git -, hatchling -, setuptools-scm -}: - -buildPythonPackage rec { - pname = "hatch-vcs"; - version = "0.4.0"; - format = "pyproject"; - - disabled = pythonOlder "3.8"; - - src = fetchPypi { - pname = "hatch_vcs"; - inherit version; - hash = "sha256-CTgQdI/gHbDUUfq88sGsJojK79Iy1O3pZwkLHBsH2fc="; - }; - - nativeBuildInputs = [ - hatchling - ]; - - propagatedBuildInputs = [ - hatchling - setuptools-scm - ]; - - nativeCheckInputs = [ - git - pytestCheckHook - ]; - - disabledTests = [ - # incompatible with setuptools-scm>=7 - # https://github.com/ofek/hatch-vcs/issues/8 - "test_write" - ]; - - pythonImportsCheck = [ - "hatch_vcs" - ]; - - meta = with lib; { - changelog = "https://github.com/ofek/hatch-vcs/releases/tag/v${version}"; - description = "A plugin for Hatch that uses your preferred version control system (like Git) to determine project versions"; - homepage = "https://github.com/ofek/hatch-vcs"; - license = licenses.mit; - maintainers = with maintainers; [ cpcloud ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/hatchling/default.nix b/pkgs/by-name/py/python/python-modules/hatchling/default.nix deleted file mode 100644 index 4d5d345..0000000 --- a/pkgs/by-name/py/python/python-modules/hatchling/default.nix +++ /dev/null @@ -1,76 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder - -# runtime -, editables -, packaging -, pathspec -, pluggy -, tomli -, trove-classifiers - -# tests -, build -, python -, requests -, virtualenv -}: - -buildPythonPackage rec { - pname = "hatchling"; - version = "1.22.4"; - format = "pyproject"; - disabled = pythonOlder "3.8"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-ii3OyW1/uEg4LvWEjlrEP9rmQfNaCKP6tRFr1JXzQW4="; - }; - - # listed in backend/pyproject.toml - propagatedBuildInputs = [ - editables - packaging - pathspec - pluggy - trove-classifiers - ] ++ lib.optionals (pythonOlder "3.11") [ - tomli - ]; - - pythonImportsCheck = [ - "hatchling" - "hatchling.build" - ]; - - # tries to fetch packages from the internet - doCheck = false; - - # listed in /backend/tests/downstream/requirements.txt - nativeCheckInputs = [ - build - requests - virtualenv - ]; - - preCheck = '' - export HOME=$TMPDIR - ''; - - checkPhase = '' - runHook preCheck - ${python.interpreter} tests/downstream/integrate.py - runHook postCheck - ''; - - meta = with lib; { - description = "Modern, extensible Python build backend"; - mainProgram = "hatchling"; - 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 ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/html5lib/default.nix b/pkgs/by-name/py/python/python-modules/html5lib/default.nix deleted file mode 100644 index b35cfee..0000000 --- a/pkgs/by-name/py/python/python-modules/html5lib/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, fetchpatch -, six -, webencodings -, mock -, pytest-expect -, pytestCheckHook -}: - -buildPythonPackage rec { - pname = "html5lib"; - version = "1.1"; - format = "setuptools"; - - src = fetchPypi { - inherit pname version; - sha256 = "b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f"; - }; - - patches = [ - # Fix compatibility with pytest 6. - # Will be included in the next release after 1.1. - (fetchpatch { - url = "https://github.com/html5lib/html5lib-python/commit/2c19b9899ab3a3e8bd0ca35e5d78544334204169.patch"; - hash = "sha256-VGCeB6o2QO/skeCZs8XLPfgEYVOSRL8cCpG7ajbZWEs="; - }) - ]; - - propagatedBuildInputs = [ - six - webencodings - ]; - - # latest release not compatible with pytest 6 - doCheck = false; - nativeCheckInputs = [ - mock - pytest-expect - pytestCheckHook - ]; - - meta = { - homepage = "https://github.com/html5lib/html5lib-python"; - downloadPage = "https://github.com/html5lib/html5lib-python/releases"; - description = "HTML parser based on WHAT-WG HTML5 specification"; - longDescription = '' - html5lib is a pure-python library for parsing HTML. It is designed to - conform to the WHATWG HTML specification, as is implemented by all - major web browsers. - ''; - license = lib.licenses.mit; - 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 deleted file mode 100644 index 5cf3408..0000000 --- a/pkgs/by-name/py/python/python-modules/hypothesis/default.nix +++ /dev/null @@ -1,126 +0,0 @@ -{ 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 { - pname = "hypothesis"; - version = "6.99.12"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - src = fetchFromGitHub { - owner = "HypothesisWorks"; - repo = "hypothesis"; - rev = "hypothesis-python-${version}"; - hash = "sha256-0nzjRDv4L3bxxnC0lBY5S7FP9CFhyzHzNchWXoX91Zg="; - }; - - # I tried to package sphinx-selective-exclude, but it throws - # error about "module 'sphinx' has no attribute 'directives'". - # - # It probably has to do with monkey-patching internals of Sphinx. - # On bright side, this extension does not introduces new commands, - # only changes "::only" command, so we probably okay with stock - # implementation. - # - # I wonder how upstream of "hypothesis" builds documentation. - postPatch = '' - sed -i -e '/sphinx_selective_exclude.eager_only/ d' docs/conf.py - ''; - - postUnpack = "sourceRoot=$sourceRoot/hypothesis-python"; - - nativeBuildInputs = [ - setuptools - ]; - - propagatedBuildInputs = [ - attrs - sortedcontainers - ] ++ lib.optionals (pythonOlder "3.11") [ - exceptiongroup - ]; - - nativeCheckInputs = [ - pexpect - pytest-xdist - pytestCheckHook - ] ++ lib.optionals isPyPy [ - tzdata - ]; - - inherit doCheck; - - # This file changes how pytest runs and breaks it - preCheck = '' - rm tox.ini - ''; - - 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; - - pythonImportsCheck = [ - "hypothesis" - ]; - - passthru = { - doc = stdenv.mkDerivation { - # Forge look and feel of multi-output derivation as best as we can. - # - # Using 'outputs = [ "doc" ];' breaks a lot of assumptions. - name = "${pname}-${version}-doc"; - inherit src pname version; - - postInstallSphinx = '' - mv $out/share/doc/* $out/share/doc/python$pythonVersion-$pname-$version - ''; - - nativeBuildInputs = [ - sphinxHook - sphinx-rtd-theme - sphinx-hoverxref - sphinx-codeautolink - ]; - - inherit (python) pythonVersion; - inherit meta; - }; - }; - - meta = with lib; { - 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}"; - 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 deleted file mode 100644 index 77aeb44..0000000 --- a/pkgs/by-name/py/python/python-modules/idna/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, flit-core -, pytestCheckHook -}: - -buildPythonPackage rec { - pname = "idna"; - version = "3.6"; - format = "pyproject"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-ns270IOwZ5iuHoaty/6KsUec+GTk7jD+TkagA9Ekkco="; - }; - - nativeBuildInputs = [ - flit-core - ]; - - nativeCheckInputs = [ - pytestCheckHook - ]; - - meta = { - homepage = "https://github.com/kjd/idna/"; - description = "Internationalized Domain Names in Applications (IDNA)"; - license = lib.licenses.bsd3; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/imagesize/default.nix b/pkgs/by-name/py/python/python-modules/imagesize/default.nix deleted file mode 100644 index ab41410..0000000 --- a/pkgs/by-name/py/python/python-modules/imagesize/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -}: - -buildPythonPackage rec { - pname = "imagesize"; - version = "1.4.1"; - format = "setuptools"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-aRUERK/7nLDVzFqSs2dvCy+3zZrjnpR6XhGja0SXzUo="; - }; - - meta = with lib; { - description = "Getting image size from png/jpeg/jpeg2000/gif file"; - homepage = "https://github.com/shibukawa/imagesize_py"; - license = with licenses; [ mit ]; - }; - -} 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 deleted file mode 100644 index 995d625..0000000 --- a/pkgs/by-name/py/python/python-modules/importlib-metadata/default.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder -, setuptools -, setuptools-scm -, typing-extensions -, toml -, zipp -}: - -buildPythonPackage rec { - pname = "importlib-metadata"; - version = "7.0.2"; - format = "pyproject"; - - disabled = pythonOlder "3.7"; - - src = fetchPypi { - pname = "importlib_metadata"; - inherit version; - hash = "sha256-GY9WjzIwh4yxtE+9eXX4eQbCIzbbouSn8FJ4woH715I="; - }; - - nativeBuildInputs = [ - setuptools # otherwise cross build fails - setuptools-scm - ]; - - propagatedBuildInputs = [ - toml - zipp - ] ++ lib.optionals (pythonOlder "3.8") [ - typing-extensions - ]; - - # Cyclic dependencies due to pyflakefs - doCheck = false; - - 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 ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/iniconfig/default.nix b/pkgs/by-name/py/python/python-modules/iniconfig/default.nix deleted file mode 100644 index 2089385..0000000 --- a/pkgs/by-name/py/python/python-modules/iniconfig/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ lib -, buildPythonPackage -, substituteAll -, fetchPypi -# , hatch-vcs -, hatchling -}: - -buildPythonPackage rec { - pname = "iniconfig"; - version = "2.0.0"; - format = "pyproject"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-LZHhNb9y0xpBCxfBbaYQqCy1X2sEd9GpAhNLJKRVuLM="; - }; - - nativeBuildInputs = [ - hatchling - ]; - - patches = [ - # Cannot use hatch-vcs, due to an inifinite recursion - (substituteAll { - src = ./version.patch; - inherit version; - }) - ]; - - pythonImportsCheck = [ - "iniconfig" - ]; - - # Requires pytest, which in turn requires this package - causes infinite - # recursion. See also: https://github.com/NixOS/nixpkgs/issues/63168 - doCheck = false; - - meta = with lib; { - description = "brain-dead simple parsing of ini files"; - homepage = "https://github.com/pytest-dev/iniconfig"; - license = licenses.mit; - maintainers = with maintainers; [ jonringer ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/iniconfig/version.patch b/pkgs/by-name/py/python/python-modules/iniconfig/version.patch deleted file mode 100644 index a075464..0000000 --- a/pkgs/by-name/py/python/python-modules/iniconfig/version.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff --git a/pyproject.toml b/pyproject.toml -index 6eee6ef..263999f 100644 ---- a/pyproject.toml -+++ b/pyproject.toml -@@ -1,12 +1,12 @@ - [build-system] - build-backend = "hatchling.build" - requires = [ -- "hatch-vcs", - "hatchling", - ] - - [project] - name = "iniconfig" -+version = "@version@" - description = "brain-dead simple config-ini parsing" - readme = "README.rst" - license = "MIT" -@@ -15,9 +15,6 @@ authors = [ - { name = "Holger Krekel", email = "holger.krekel@gmail.com" }, - ] - requires-python = ">=3.7" --dynamic = [ -- "version", --] - classifiers = [ - "Development Status :: 4 - Beta", - "Intended Audience :: Developers", -@@ -38,13 +35,6 @@ classifiers = [ - [project.urls] - Homepage = "https://github.com/pytest-dev/iniconfig" - -- --[tool.hatch.version] --source = "vcs" -- --[tool.hatch.build.hooks.vcs] --version-file = "src/iniconfig/_version.py" -- - [tool.hatch.build.targets.sdist] - include = [ - "/src", diff --git a/pkgs/by-name/py/python/python-modules/installer/default.nix b/pkgs/by-name/py/python/python-modules/installer/default.nix deleted file mode 100644 index a1d7038..0000000 --- a/pkgs/by-name/py/python/python-modules/installer/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ lib -, buildPythonPackage -, pythonAtLeast -, fetchFromGitHub -, flit-core -# for passthru.tests -# , installer -# , mock -# , pytestCheckHook -}: - -buildPythonPackage rec { - pname = "installer"; - version = "0.7.0"; - format = "pyproject"; - - src = fetchFromGitHub { - owner = "pypa"; - repo = pname; - rev = version; - hash = "sha256-thHghU+1Alpay5r9Dc3v7ATRFfYKV8l9qR0nbGOOX/A="; - }; - - patches = lib.optionals (pythonAtLeast "3.13") [ - # Fix compatibility with Python 3.13 - # https://github.com/pypa/installer/pull/201 - ./python313-compat.patch - ]; - - nativeBuildInputs = [ flit-core ]; - - # 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. - doCheck = false; - - # passthru.tests = { - # pytest = buildPythonPackage { - # pname = "${pname}-pytest"; - # inherit version; - # format = "other"; - - # dontBuild = true; - # dontInstall = true; - - # nativeCheckInputs = [ - # installer - # mock - # pytestCheckHook - # ]; - # }; - # }; - - meta = with lib; { - description = "A low-level library for installing a Python package from a wheel distribution"; - homepage = "https://github.com/pypa/installer"; - changelog = "https://github.com/pypa/installer/blob/${src.rev}/docs/changelog.md"; - license = licenses.mit; - maintainers = teams.python.members ++ [ ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/installer/python313-compat.patch b/pkgs/by-name/py/python/python-modules/installer/python313-compat.patch deleted file mode 100644 index 423a550..0000000 --- a/pkgs/by-name/py/python/python-modules/installer/python313-compat.patch +++ /dev/null @@ -1,55 +0,0 @@ -From b23f89b10cf5d179bd6b0bad195ee36f43a5fb9e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= - <16805946+edgarrmondragon@users.noreply.github.com> -Date: Tue, 19 Dec 2023 06:09:41 -0600 -Subject: [PATCH] Fix removed `importlib.resources.read_binary` in Python 3.13 - (#201) - -diff --git a/noxfile.py b/noxfile.py -index a690c59..6a69cce 100644 ---- a/noxfile.py -+++ b/noxfile.py -@@ -22,7 +22,7 @@ def lint(session): - session.run("pre-commit", "run", "--all-files", *args) - - --@nox.session(python=["3.7", "3.8", "3.9", "3.10", "3.11", "pypy3"]) -+@nox.session(python=["3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "pypy3"]) - def test(session): - session.install(".") - session.install("-r", "tests/requirements.txt") -@@ -42,7 +42,7 @@ def test(session): - ) - - --@nox.session(python=["3.7", "3.8", "3.9", "3.10", "3.11", "pypy3"]) -+@nox.session(python=["3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "pypy3"]) - def doctest(session): - session.install(".") - session.install("-r", "docs/requirements.txt") -diff --git a/src/installer/scripts.py b/src/installer/scripts.py -index d18060b..c9f96b4 100644 ---- a/src/installer/scripts.py -+++ b/src/installer/scripts.py -@@ -3,9 +3,19 @@ - import io - import os - import shlex -+import sys - import zipfile --from importlib.resources import read_binary --from typing import TYPE_CHECKING, Mapping, Optional, Tuple -+from types import ModuleType -+from typing import TYPE_CHECKING, Mapping, Optional, Tuple, Union -+ -+if sys.version_info >= (3, 9): # pragma: no cover -+ from importlib.resources import files -+ -+ def read_binary(package: Union[str, ModuleType], file_path: str) -> bytes: -+ return (files(package) / file_path).read_bytes() -+ -+else: # pragma: no cover -+ from importlib.resources import read_binary - - from installer import _scripts - 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 deleted file mode 100644 index 23722cc..0000000 --- a/pkgs/by-name/py/python/python-modules/jaraco-itertools/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, buildPythonPackage, fetchPypi, setuptools-scm -, inflect, more-itertools, six, pytest -}: - -buildPythonPackage rec { - pname = "jaraco-itertools"; - version = "6.4.1"; - format = "pyproject"; - - src = fetchPypi { - pname = "jaraco.itertools"; - inherit version; - hash = "sha256-MU/OVi67RepIIqmLvXsi5f6sfVEY28Gk8ess0Ea/+kc="; - }; - - pythonNamespaces = [ "jaraco" ]; - - nativeBuildInputs = [ setuptools-scm ]; - - propagatedBuildInputs = [ inflect more-itertools six ]; - nativeCheckInputs = [ pytest ]; - - # tests no longer available through pypi - doCheck = false; - checkPhase = '' - pytest - ''; - - pythonImportsCheck = [ "jaraco.itertools" ]; - - meta = with lib; { - description = "Tools for working with iterables"; - homepage = "https://github.com/jaraco/jaraco.itertools"; - license = licenses.mit; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/jinja2/default.nix b/pkgs/by-name/py/python/python-modules/jinja2/default.nix deleted file mode 100644 index 1c260e3..0000000 --- a/pkgs/by-name/py/python/python-modules/jinja2/default.nix +++ /dev/null @@ -1,92 +0,0 @@ -{ lib -, stdenv -, python -, buildPythonPackage -, pythonOlder -, fetchPypi -, babel -, markupsafe -, pytestCheckHook -, sphinxHook -, pallets-sphinx-themes -, setuptools -, sphinxcontrib-log-cabinet -, sphinx-issues -}: - -buildPythonPackage rec { - pname = "jinja2"; - version = "3.1.3"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - src = fetchPypi { - pname = "Jinja2"; - inherit version; - hash = "sha256-rIvWVE1Lssl5K/OhWegLuo/afwfoG8Ou1WVDLVklupA="; - }; - - nativeBuildInputs = [ - setuptools - ]; - - propagatedBuildInputs = [ - markupsafe - ]; - - passthru.optional-dependencies = { - 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; - - passthru.doc = stdenv.mkDerivation { - # Forge look and feel of multi-output derivation as best as we can. - # - # Using 'outputs = [ "doc" ];' breaks a lot of assumptions. - name = "${pname}-${version}-doc"; - inherit src pname version; - - patches = [ - # Fix import of "sphinxcontrib-log-cabinet" - ./patches/import-order.patch - ]; - - postInstallSphinx = '' - mv $out/share/doc/* $out/share/doc/python$pythonVersion-$pname-$version - ''; - - nativeBuildInputs = [ - sphinxHook - sphinxcontrib-log-cabinet - pallets-sphinx-themes - sphinx-issues - ]; - - inherit (python) pythonVersion; - inherit meta; - }; - - meta = with lib; { - changelog = "https://github.com/pallets/jinja/blob/${version}/CHANGES.rst"; - description = "Very fast and expressive template engine"; - downloadPage = "https://github.com/pallets/jinja"; - homepage = "https://jinja.palletsprojects.com"; - license = licenses.bsd3; - longDescription = '' - Jinja is a fast, expressive, extensible templating engine. Special - placeholders in the template allow writing code similar to Python - syntax. Then the template is passed data to render the final document. - ''; - maintainers = with maintainers; [ pierron ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/jinja2/patches/import-order.patch b/pkgs/by-name/py/python/python-modules/jinja2/patches/import-order.patch deleted file mode 100644 index 38514df..0000000 --- a/pkgs/by-name/py/python/python-modules/jinja2/patches/import-order.patch +++ /dev/null @@ -1,27 +0,0 @@ -Sphinx changed something between sphinx=4.5.0 and sphinx=5.3 that broke -"sphinxcontrib.log_cabinet" plugin. - -When Sphinx tries to importlib.import_module("sphinxcontrib.log_cabinet"), it -has couple other sphinxcontrib.* libraries in sys.path, and they seem to cause -conflict. So here I purge sys.path from sphixcontrib-related things, import -log_cabinet and put everything back, so when Sphinx will do "import_module", -"sphinxcontrib.log_cabinet" will be already imported and cached. - -All this is quite hacky, but we are talking about merely building documentation -here. If resulting html looks good, what happened in Nix sandbox stays in Nix -sandbox. - ---- a/docs/conf.py 1970-01-01 00:00:00.000000000 -0000 -+++ b/docs/conf.py 1970-01-01 00:00:00.000000000 -0000 -@@ -1,5 +1,12 @@ - from pallets_sphinx_themes import get_version - from pallets_sphinx_themes import ProjectLink -+import importlib -+import sys -+ -+saved_path = sys.path -+sys.path = [x for x in sys.path if "sphinxcontrib" not in x or "cabinet" in x] -+import sphinxcontrib.log_cabinet -+sys.path = saved_path - - # Project -------------------------------------------------------------- diff --git a/pkgs/by-name/py/python/python-modules/lxml/default.nix b/pkgs/by-name/py/python/python-modules/lxml/default.nix deleted file mode 100644 index d1d7036..0000000 --- a/pkgs/by-name/py/python/python-modules/lxml/default.nix +++ /dev/null @@ -1,63 +0,0 @@ -{ stdenv -, lib -, buildPythonPackage -, fetchFromGitHub - -# build-system -, cython -, setuptools - -# native dependencies -, libxml2 -, libxslt -, zlib -, xcodebuild -}: - -buildPythonPackage rec { - pname = "lxml"; - version = "5.1.0"; - pyproject = true; - - src = fetchFromGitHub { - owner = "lxml"; - repo = "lxml"; - rev = "refs/tags/lxml-${version}"; - hash = "sha256-eWLYzZWatYDmhuBTZynsdytlNFKKmtWQ1XIyzVD8sDY="; - }; - - # setuptoolsBuildPhase needs dependencies to be passed through nativeBuildInputs - nativeBuildInputs = [ - libxml2.dev - libxslt.dev - cython - setuptools - ] ++ lib.optionals stdenv.isDarwin [ - xcodebuild - ]; - buildInputs = [ - libxml2 - libxslt - zlib - ]; - - env = lib.optionalAttrs stdenv.cc.isClang { - NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-function-pointer-types"; - }; - - # tests are meant to be ran "in-place" in the same directory as src - doCheck = false; - - pythonImportsCheck = [ - "lxml" - "lxml.etree" - ]; - - meta = with lib; { - changelog = "https://github.com/lxml/lxml/blob/lxml-${version}/CHANGES.txt"; - description = "Pythonic binding for the libxml2 and libxslt libraries"; - homepage = "https://lxml.de"; - license = licenses.bsd3; - maintainers = with maintainers; [ jonringer ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/lxml/libxml-2.12.patch b/pkgs/by-name/py/python/python-modules/lxml/libxml-2.12.patch deleted file mode 100644 index d0d211c..0000000 --- a/pkgs/by-name/py/python/python-modules/lxml/libxml-2.12.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 3b8807306d79d2ae2e9fa28c5ecd3b40b32ee65b Mon Sep 17 00:00:00 2001 -From: Stefan Behnel -Date: Wed, 29 Nov 2023 10:28:47 +0100 -Subject: [PATCH] Follow changes in libxml2 2.12 and make xmlError usages - 'const'. This mostly impacts the error callback functions. - ---- - src/lxml/extensions.pxi | 4 ++-- - src/lxml/parser.pxi | 4 ++-- - src/lxml/xmlerror.pxi | 8 ++++---- - 3 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/src/lxml/extensions.pxi b/src/lxml/extensions.pxi -index 35a321b7..42b4c4f6 100644 ---- a/src/lxml/extensions.pxi -+++ b/src/lxml/extensions.pxi -@@ -393,7 +393,7 @@ cdef tuple LIBXML2_XPATH_ERROR_MESSAGES = ( - b"?? Unknown error ??\n", - ) - --cdef void _forwardXPathError(void* c_ctxt, xmlerror.xmlError* c_error) with gil: -+cdef void _forwardXPathError(void* c_ctxt, const xmlerror.xmlError* c_error) with gil: - cdef xmlerror.xmlError error - cdef int xpath_code - if c_error.message is not NULL: -@@ -414,7 +414,7 @@ cdef void _forwardXPathError(void* c_ctxt, xmlerror.xmlError* c_error) with gil: - - (<_BaseContext>c_ctxt)._error_log._receive(&error) - --cdef void _receiveXPathError(void* c_context, xmlerror.xmlError* error) nogil: -+cdef void _receiveXPathError(void* c_context, const xmlerror.xmlError* error) nogil: - if not __DEBUG: - return - if c_context is NULL: -diff --git a/src/lxml/parser.pxi b/src/lxml/parser.pxi -index 22463c7d..1566b6df 100644 ---- a/src/lxml/parser.pxi -+++ b/src/lxml/parser.pxi -@@ -626,10 +626,10 @@ cdef _initParserContext(_ParserContext context, - if c_ctxt is not NULL: - context._initParserContext(c_ctxt) - --cdef void _forwardParserError(xmlparser.xmlParserCtxt* _parser_context, xmlerror.xmlError* error) with gil: -+cdef void _forwardParserError(xmlparser.xmlParserCtxt* _parser_context, const xmlerror.xmlError* error) with gil: - (<_ParserContext>_parser_context._private)._error_log._receive(error) - --cdef void _receiveParserError(void* c_context, xmlerror.xmlError* error) nogil: -+cdef void _receiveParserError(void* c_context, const xmlerror.xmlError* error) nogil: - if __DEBUG: - if c_context is NULL or (c_context)._private is NULL: - _forwardError(NULL, error) -diff --git a/src/lxml/xmlerror.pxi b/src/lxml/xmlerror.pxi -index 1b50444f..4cd745f9 100644 ---- a/src/lxml/xmlerror.pxi -+++ b/src/lxml/xmlerror.pxi -@@ -66,7 +66,7 @@ cdef class _LogEntry: - tree.xmlFree(self._c_path) - - @cython.final -- cdef _setError(self, xmlerror.xmlError* error): -+ cdef _setError(self, const xmlerror.xmlError* error): - self.domain = error.domain - self.type = error.code - self.level = error.level -@@ -198,7 +198,7 @@ cdef class _BaseErrorLog: - pass - - @cython.final -- cdef void _receive(self, xmlerror.xmlError* error): -+ cdef void _receive(self, const xmlerror.xmlError* error): - cdef bint is_error - cdef _LogEntry entry - cdef _BaseErrorLog global_log -@@ -634,7 +634,7 @@ def use_global_python_log(PyErrorLog log not None): - - - # local log functions: forward error to logger object --cdef void _forwardError(void* c_log_handler, xmlerror.xmlError* error) with gil: -+cdef void _forwardError(void* c_log_handler, const xmlerror.xmlError* error) with gil: - cdef _BaseErrorLog log_handler - if c_log_handler is not NULL: - log_handler = <_BaseErrorLog>c_log_handler -@@ -645,7 +645,7 @@ cdef void _forwardError(void* c_log_handler, xmlerror.xmlError* error) with gil: - log_handler._receive(error) - - --cdef void _receiveError(void* c_log_handler, xmlerror.xmlError* error) nogil: -+cdef void _receiveError(void* c_log_handler, const xmlerror.xmlError* error) nogil: - # no Python objects here, may be called without thread context ! - if __DEBUG: - _forwardError(c_log_handler, error) --- -2.42.0 - diff --git a/pkgs/by-name/py/python/python-modules/markupsafe/default.nix b/pkgs/by-name/py/python/python-modules/markupsafe/default.nix deleted file mode 100644 index 60d2257..0000000 --- a/pkgs/by-name/py/python/python-modules/markupsafe/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder - -# build-system -, setuptools - -# tests -, pytestCheckHook - -# for passthru.tests -# , jinja2 -# , mkdocs -# , quart -# , werkzeug -}: - -buildPythonPackage rec { - pname = "markupsafe"; - version = "2.1.5"; - pyproject = true; - - disabled = pythonOlder "3.8"; - - src = fetchPypi { - pname = "MarkupSafe"; - inherit version; - hash = "sha256-0oPTeokLpMGuc/+t+ARkNcdue8Ike7tjwAvRpwnGVEs="; - }; - - nativeBuildInputs = [ - setuptools - ]; - - nativeCheckInputs = [ - pytestCheckHook - ]; - - pythonImportsCheck = [ - "markupsafe" - ]; - - # passthru.tests = { - # inherit - # jinja2 - # mkdocs - # quart - # werkzeug - # ; - # }; - - meta = with lib; { - 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; - maintainers = with maintainers; [ domenkozar ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/mkdocs/default.nix b/pkgs/by-name/py/python/python-modules/mkdocs/default.nix deleted file mode 100644 index a20958d..0000000 --- a/pkgs/by-name/py/python/python-modules/mkdocs/default.nix +++ /dev/null @@ -1,105 +0,0 @@ -{ - # eval time deps - lib -, buildPythonPackage -, fetchFromGitHub -, pythonAtLeast -, pythonOlder - -# buildtime -, hatchling - -# runtime deps -, click -, ghp-import -, importlib-metadata -, jinja2 -, markdown -, markupsafe -, mergedeep -, packaging -, pathspec -, platformdirs -, pyyaml -, pyyaml-env-tag -, watchdog - -# optional-dependencies -, babel -, setuptools - -# testing deps -, mock -, unittestCheckHook -}: - -buildPythonPackage rec { - pname = "mkdocs"; - version = "1.5.3"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - src = fetchFromGitHub { - owner = pname; - repo = pname; - rev = "refs/tags/${version}"; - hash = "sha256-axH4AeL+osxoUIVJbW6YjiTfUr6TAXMB4raZ3oO0fyw="; - }; - - nativeBuildInputs = [ - hatchling - ]; - - propagatedBuildInputs = [ - click - ghp-import - jinja2 - markdown - markupsafe - mergedeep - packaging - pathspec - platformdirs - pyyaml - pyyaml-env-tag - watchdog - ] ++ lib.optionals (pythonOlder "3.10") [ - importlib-metadata - ]; - - passthru.optional-dependencies = { - i18n = [ - babel - ] ++ lib.optionals (pythonAtLeast "3.12") [ - setuptools - ]; - }; - - nativeCheckInputs = [ - unittestCheckHook - mock - ] ++ passthru.optional-dependencies.i18n; - - unittestFlagsArray = [ "-v" "-p" "'*tests.py'" "mkdocs" ]; - - pythonImportsCheck = [ "mkdocs" ]; - - meta = with lib; { - changelog = "https://github.com/mkdocs/mkdocs/releases/tag/${version}"; - description = "Project documentation with Markdown / static website generator"; - mainProgram = "mkdocs"; - downloadPage = "https://github.com/mkdocs/mkdocs"; - longDescription = '' - MkDocs is a fast, simple and downright gorgeous static site generator that's - geared towards building project documentation. Documentation source files - are written in Markdown, and configured with a single YAML configuration file. - - MkDocs can also be used to generate general-purpose websites. - ''; - homepage = "http://mkdocs.org/"; - license = licenses.bsd2; - platforms = platforms.unix; - maintainers = with maintainers; [ rkoe ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/mock/default.nix b/pkgs/by-name/py/python/python-modules/mock/default.nix deleted file mode 100644 index 7e5a72a..0000000 --- a/pkgs/by-name/py/python/python-modules/mock/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder -, pytestCheckHook -}: - -buildPythonPackage rec { - pname = "mock"; - version = "5.1.0"; - format = "setuptools"; - - disabled = pythonOlder "3.6"; - - src = fetchPypi { - inherit pname version; - sha256 = "sha256-Xpaq1czaRxjgointlLICTfdcwtVVdbpXYtMfV2e4dn0="; - }; - - nativeCheckInputs = [ - pytestCheckHook - ]; - - pythonImportsCheck = [ - "mock" - ]; - - meta = with lib; { - description = "Rolling backport of unittest.mock for all Pythons"; - homepage = "https://github.com/testing-cabal/mock"; - changelog = "https://github.com/testing-cabal/mock/blob/${version}/CHANGELOG.rst"; - license = licenses.bsd2; - maintainers = [ ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/nose/default.nix b/pkgs/by-name/py/python/python-modules/nose/default.nix deleted file mode 100644 index d59dd0d..0000000 --- a/pkgs/by-name/py/python/python-modules/nose/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, isPy3k -, isPyPy -, python - ,pythonAtLeast -, coverage -}: - -buildPythonPackage rec { - version = "1.3.7"; - format = "setuptools"; - pname = "nose"; - - # unmaintained, relies on the imp module - disabled = pythonAtLeast "3.12"; - - src = fetchPypi { - inherit pname version; - sha256 = "f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98"; - }; - - # 2to3 was removed in setuptools 58 - postPatch = '' - substituteInPlace setup.py \ - --replace "'use_2to3': True," "" - - substituteInPlace setup3lib.py \ - --replace "from setuptools.command.build_py import Mixin2to3" "from distutils.util import Mixin2to3" - ''; - - preBuild = lib.optionalString (isPy3k) '' - ${python.pythonOnBuildForHost}/bin/2to3 -wn nose functional_tests unit_tests - ''; - - 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 - ''; - - meta = with lib; { - broken = isPyPy; # missing 2to3 conversion utility - description = "A unittest-based testing framework for python that makes writing and running tests easier"; - mainProgram = "nosetests"; - homepage = "https://nose.readthedocs.io/"; - license = licenses.lgpl3; - maintainers = with maintainers; [ ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/numpy/0001-BLD-remove-last-usage-of-distutils-in-_core-code_gen.patch b/pkgs/by-name/py/python/python-modules/numpy/0001-BLD-remove-last-usage-of-distutils-in-_core-code_gen.patch deleted file mode 100644 index b9bc53e..0000000 --- a/pkgs/by-name/py/python/python-modules/numpy/0001-BLD-remove-last-usage-of-distutils-in-_core-code_gen.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 0d0476328a1a2e3dd3e96340bd4ddd04d98c067b Mon Sep 17 00:00:00 2001 -From: Ralf Gommers -Date: Thu, 26 Oct 2023 16:57:03 +0200 -Subject: [PATCH] BLD: remove last usage of `distutils` in - `_core/code_generators/` - ---- - numpy/core/code_generators/genapi.py | 9 --------- - numpy/core/code_generators/generate_numpy_api.py | 7 +------ - numpy/core/code_generators/generate_ufunc_api.py | 7 +------ - 3 files changed, 2 insertions(+), 21 deletions(-) - -diff --git a/numpy/core/code_generators/genapi.py b/numpy/core/code_generators/genapi.py -index 2cdaba52d..d9d7862b2 100644 ---- a/numpy/core/code_generators/genapi.py -+++ b/numpy/core/code_generators/genapi.py -@@ -304,15 +304,6 @@ def find_functions(filename, tag='API'): - fo.close() - return functions - --def should_rebuild(targets, source_files): -- from distutils.dep_util import newer_group -- for t in targets: -- if not os.path.exists(t): -- return True -- sources = API_FILES + list(source_files) + [__file__] -- if newer_group(sources, targets[0], missing='newer'): -- return True -- return False - - def write_file(filename, data): - """ -diff --git a/numpy/core/code_generators/generate_numpy_api.py b/numpy/core/code_generators/generate_numpy_api.py -index ae38c4efc..640bae9e5 100644 ---- a/numpy/core/code_generators/generate_numpy_api.py -+++ b/numpy/core/code_generators/generate_numpy_api.py -@@ -148,12 +148,7 @@ def generate_api(output_dir, force=False): - targets = (h_file, c_file) - - sources = numpy_api.multiarray_api -- -- if (not force and not genapi.should_rebuild(targets, [numpy_api.__file__, __file__])): -- return targets -- else: -- do_generate_api(targets, sources) -- -+ do_generate_api(targets, sources) - return targets - - def do_generate_api(targets, sources): -diff --git a/numpy/core/code_generators/generate_ufunc_api.py b/numpy/core/code_generators/generate_ufunc_api.py -index e03299a52..3734cbd6a 100644 ---- a/numpy/core/code_generators/generate_ufunc_api.py -+++ b/numpy/core/code_generators/generate_ufunc_api.py -@@ -125,12 +125,7 @@ def generate_api(output_dir, force=False): - targets = (h_file, c_file) - - sources = ['ufunc_api_order.txt'] -- -- if (not force and not genapi.should_rebuild(targets, sources + [__file__])): -- return targets -- else: -- do_generate_api(targets, sources) -- -+ do_generate_api(targets, sources) - return targets - - def do_generate_api(targets, sources): --- -2.42.0 - diff --git a/pkgs/by-name/py/python/python-modules/numpy/default.nix b/pkgs/by-name/py/python/python-modules/numpy/default.nix deleted file mode 100644 index 4299c6d..0000000 --- a/pkgs/by-name/py/python/python-modules/numpy/default.nix +++ /dev/null @@ -1,190 +0,0 @@ -{ lib -, stdenv -, fetchPypi -, python -, pythonAtLeast -, pythonOlder -, buildPythonPackage -, writeTextFile - -# build-system -, cython -, gfortran -, meson-python -, mesonEmulatorHook -, pkg-config -, xcbuild - -# native dependencies -, blas -, lapack - -# tests -, hypothesis -, pytest-xdist -, pytestCheckHook -, setuptools -, typing-extensions -}: - -assert (!blas.isILP64) && (!lapack.isILP64); - -let - cfg = writeTextFile { - name = "site.cfg"; - text = lib.generators.toINI {} { - ${blas.implementation} = { - include_dirs = "${lib.getDev blas}/include:${lib.getDev lapack}/include"; - library_dirs = "${blas}/lib:${lapack}/lib"; - runtime_library_dirs = "${blas}/lib:${lapack}/lib"; - libraries = "lapack,lapacke,blas,cblas"; - }; - lapack = { - include_dirs = "${lib.getDev lapack}/include"; - library_dirs = "${lapack}/lib"; - runtime_library_dirs = "${lapack}/lib"; - }; - blas = { - include_dirs = "${lib.getDev blas}/include"; - library_dirs = "${blas}/lib"; - runtime_library_dirs = "${blas}/lib"; - }; - }; - }; -in buildPythonPackage rec { - pname = "numpy"; - version = "1.26.4"; - pyproject = true; - disabled = pythonOlder "3.9" || pythonAtLeast "3.13"; - - src = fetchPypi { - inherit pname version; - extension = "tar.gz"; - 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 - ]; - - postPatch = '' - # fails with multiple errors because we are not using the pinned setuptools version - # see https://github.com/numpy/numpy/blob/v1.25.0/pyproject.toml#L7 - # error: option --single-version-externally-managed not recognized - # TypeError: dist must be a Distribution instance - rm numpy/core/tests/test_cython.py - - patchShebangs numpy/_build_utils/*.py - - # remove needless reference to full Python path stored in built wheel - substituteInPlace numpy/meson.build \ - --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 - ]; - - buildInputs = [ - blas - lapack - ]; - - # Causes `error: argument unused during compilation: '-fno-strict-overflow'` due to `-Werror`. - hardeningDisable = lib.optionals stdenv.cc.isClang [ "strictoverflow" ]; - - # we default openblas to build with 64 threads - # if a machine has more than 64 threads, it will segfault - # see https://github.com/OpenMathLib/OpenBLAS/issues/2993 - preConfigure = '' - sed -i 's/-faltivec//' numpy/distutils/system_info.py - export OMP_NUM_THREADS=$((NIX_BUILD_CORES > 64 ? 64 : NIX_BUILD_CORES)) - ''; - - # HACK: copy mesonEmulatorHook's flags to the variable used by meson-python - postConfigure = '' - mesonFlags="$mesonFlags ''${mesonFlagsArray[@]}" - ''; - - preBuild = '' - ln -s ${cfg} site.cfg - ''; - - enableParallelBuilding = true; - - nativeCheckInputs = [ - pytest-xdist - pytestCheckHook - hypothesis - setuptools - typing-extensions - ]; - - preCheck = '' - cd "$out" - ''; - - # https://github.com/numpy/numpy/blob/a277f6210739c11028f281b8495faf7da298dbef/numpy/_pytesttester.py#L180 - pytestFlagsArray = [ - "-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" - ]; - - passthru = { - # just for backwards compatibility - blas = blas.provider; - blasImplementation = blas.implementation; - inherit cfg; - }; - - # Disable test - # - test_large_file_support: takes a long time and can cause the machine to run out of disk space - env.NOSE_EXCLUDE = "test_large_file_support"; - - meta = { - changelog = "https://github.com/numpy/numpy/releases/tag/v${version}"; - description = "Scientific tools for Python"; - mainProgram = "f2py"; - homepage = "https://numpy.org/"; - license = lib.licenses.bsd3; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/numpy/disable-failing-long-double-test-Rosetta-2.patch b/pkgs/by-name/py/python/python-modules/numpy/disable-failing-long-double-test-Rosetta-2.patch deleted file mode 100644 index 3e44674..0000000 --- a/pkgs/by-name/py/python/python-modules/numpy/disable-failing-long-double-test-Rosetta-2.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff --git a/numpy/core/tests/test_umath.py b/numpy/core/tests/test_umath.py -index 6951d41e4..eefe86ad4 100644 ---- a/numpy/core/tests/test_umath.py -+++ b/numpy/core/tests/test_umath.py -@@ -4180,7 +4180,17 @@ def test_against_cmath(self): - ) - @pytest.mark.xfail(IS_MUSL, reason="gh23049") - @pytest.mark.xfail(IS_WASM, reason="doesn't work") -- @pytest.mark.parametrize('dtype', [np.complex64, np.complex_, np.longcomplex]) -+ @pytest.mark.parametrize('dtype', [ -+ np.complex64, -+ np.complex_, -+ pytest.param( -+ np.longcomplex, -+ marks=pytest.mark.skipif( -+ sys.platform == "darwin" and platform.machine() == "x86_64", -+ reason="doesn’t work under Rosetta 2", -+ ), -+ ), -+ ]) - def test_loss_of_precision(self, dtype): - """Check loss of precision in complex arc* functions""" - diff --git a/pkgs/by-name/py/python/python-modules/numpy/numpy-distutils-C++.patch b/pkgs/by-name/py/python/python-modules/numpy/numpy-distutils-C++.patch deleted file mode 100644 index 6c75f34..0000000 --- a/pkgs/by-name/py/python/python-modules/numpy/numpy-distutils-C++.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git a/numpy/distutils/unixccompiler.py b/numpy/distutils/unixccompiler.py ---- a/numpy/distutils/unixccompiler.py -+++ b/numpy/distutils/unixccompiler.py -@@ -37,8 +37,6 @@ def UnixCCompiler__compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts - if opt not in llink_s: - self.linker_so = llink_s.split() + opt.split() - -- display = '%s: %s' % (os.path.basename(self.compiler_so[0]), src) -- - # gcc style automatic dependencies, outputs a makefile (-MF) that lists - # all headers needed by a c file as a side effect of compilation (-MMD) - if getattr(self, '_auto_depends', False): -@@ -47,8 +45,15 @@ def UnixCCompiler__compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts - deps = [] - - try: -- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + deps + -- extra_postargs, display = display) -+ if self.detect_language(src) == 'c++': -+ display = '%s: %s' % (os.path.basename(self.compiler_so_cxx[0]), src) -+ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] + deps + -+ extra_postargs, display = display) -+ else: -+ display = '%s: %s' % (os.path.basename(self.compiler_so[0]), src) -+ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + deps + -+ extra_postargs, display = display) -+ - except DistutilsExecError as e: - msg = str(e) - raise CompileError(msg) diff --git a/pkgs/by-name/py/python/python-modules/packaging/default.nix b/pkgs/by-name/py/python/python-modules/packaging/default.nix deleted file mode 100644 index 32ce7fd..0000000 --- a/pkgs/by-name/py/python/python-modules/packaging/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder - -# build-system -, flit-core - -# tests -, pretend -, pytestCheckHook -}: - -let - packaging = buildPythonPackage rec { - pname = "packaging"; - version = "24.0"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-64LF4+ViCQdHZuaIW7BLjDigwBXQowA26+fs40yZiek="; - }; - - nativeBuildInputs = [ - flit-core - ]; - - nativeCheckInputs = [ - pytestCheckHook - pretend - ]; - - pythonImportsCheck = [ - "packaging" - "packaging.metadata" - "packaging.requirements" - "packaging.specifiers" - "packaging.tags" - "packaging.version" - ]; - - # Prevent circular dependency with pytest - doCheck = false; - - 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 ]; - maintainers = teams.python.members ++ (with maintainers; [ bennofs ]); - }; - }; -in -packaging 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 deleted file mode 100644 index 9020e45..0000000 --- a/pkgs/by-name/py/python/python-modules/pallets-sphinx-themes/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, buildPythonPackage, fetchFromGitHub, sphinx, packaging }: - -buildPythonPackage rec { - pname = "pallets-sphinx-themes"; - version = "2.1.1"; - format = "setuptools"; - - src = fetchFromGitHub { - owner = "pallets"; - repo = "pallets-sphinx-themes"; - rev = "refs/tags/${version}"; - sha256 = "sha256-Z03rsqkwF2rYaqRZflf5qc5EdHPIEcEcB1ftYIm5DQs="; - }; - - propagatedBuildInputs = [ packaging sphinx ]; - - pythonImportsCheck = [ "pallets_sphinx_themes" ]; - - doCheck = false; - - meta = with lib; { - homepage = "https://github.com/pallets/pallets-sphinx-themes"; - description = "Sphinx theme for Pallets projects"; - license = licenses.bsd3; - maintainers = with maintainers; [ kaction ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/pathspec/default.nix b/pkgs/by-name/py/python/python-modules/pathspec/default.nix deleted file mode 100644 index b23ed50..0000000 --- a/pkgs/by-name/py/python/python-modules/pathspec/default.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder -, flit-core -, unittestCheckHook - -# for passthru.tests -# , awsebcli -# , black -# , hatchling -# , yamllint -}: - -buildPythonPackage rec { - pname = "pathspec"; - version = "0.12.1"; - format = "pyproject"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-pILVFQOhqzOxxnpsOBOiaVPb3HHDHayu+ag4xOKfVxI="; - }; - - nativeBuildInputs = [ - flit-core - ]; - - pythonImportsCheck = [ - "pathspec" - ]; - - checkInputs = [ - unittestCheckHook - ]; - - # passthru.tests = { - # inherit awsebcli black hatchling yamllint; - # }; - - meta = { - description = "Utility library for gitignore-style pattern matching of file paths"; - homepage = "https://github.com/cpburnz/python-path-specification"; - changelog = "https://github.com/cpburnz/python-pathspec/blob/v${version}/CHANGES.rst"; - license = lib.licenses.mpl20; - maintainers = with lib.maintainers; [ copumpkin ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/pluggy/default.nix b/pkgs/by-name/py/python/python-modules/pluggy/default.nix deleted file mode 100644 index a3b7766..0000000 --- a/pkgs/by-name/py/python/python-modules/pluggy/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ buildPythonPackage -, lib -, fetchFromGitHub -, setuptools-scm -, pythonOlder -# , importlib-metadata -, callPackage -}: - -buildPythonPackage rec { - pname = "pluggy"; - version = "1.4.0"; - - disabled = pythonOlder "3.8"; - - pyproject = true; - - src = fetchFromGitHub { - owner = "pytest-dev"; - repo = "pluggy"; - rev = "refs/tags/${version}"; - hash = "sha256-1XHJwODmpYQkYZvnZck6RrtT4lOeCf8cr1QFx9DCbzw="; - }; - - nativeBuildInputs = [ setuptools-scm ]; - - # To prevent infinite recursion with pytest - doCheck = false; - passthru.tests = { - pytest = callPackage ./tests.nix { }; - }; - - meta = { - changelog = "https://github.com/pytest-dev/pluggy/blob/${src.rev}/CHANGELOG.rst"; - description = "Plugin and hook calling mechanisms for Python"; - homepage = "https://github.com/pytest-dev/pluggy"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ dotlambda ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/pluggy/tests.nix b/pkgs/by-name/py/python/python-modules/pluggy/tests.nix deleted file mode 100644 index dc6e16e..0000000 --- a/pkgs/by-name/py/python/python-modules/pluggy/tests.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ buildPythonPackage -, pluggy -, pytestCheckHook -}: - -buildPythonPackage { - pname = "pluggy-tests"; - inherit (pluggy) version; - format = "other"; - - inherit (pluggy) src; - - dontBuild = true; - dontInstall = true; - - nativeCheckInputs = [ - pluggy - pytestCheckHook - ]; -} diff --git a/pkgs/by-name/py/python/python-modules/pretend/default.nix b/pkgs/by-name/py/python/python-modules/pretend/default.nix deleted file mode 100644 index 231b953..0000000 --- a/pkgs/by-name/py/python/python-modules/pretend/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib -, buildPythonPackage -, fetchFromGitHub -, pytestCheckHook -, pythonOlder -}: - -buildPythonPackage rec { - pname = "pretend"; - version = "1.0.9"; - format = "setuptools"; - - disabled = pythonOlder "3.7"; - - src = fetchFromGitHub { - owner = "alex"; - repo = pname; - rev = "v${version}"; - hash = "sha256-OqMfeIMFNBBLq6ejR3uOCIHZ9aA4zew7iefVlAsy1JQ="; - }; - - nativeCheckInputs = [ - pytestCheckHook - ]; - - pythonImportsCheck = [ - "pretend" - ]; - - meta = with lib; { - description = "Module for stubbing"; - homepage = "https://github.com/alex/pretend"; - license = licenses.bsd3; - maintainers = with maintainers; [ ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/psutil/default.nix b/pkgs/by-name/py/python/python-modules/psutil/default.nix deleted file mode 100644 index a27bb42..0000000 --- a/pkgs/by-name/py/python/python-modules/psutil/default.nix +++ /dev/null @@ -1,83 +0,0 @@ -{ lib -, stdenv -, buildPythonPackage -, CoreFoundation -, fetchPypi -, IOKit -, pytestCheckHook -, python -, pythonOlder -}: - -buildPythonPackage rec { - pname = "psutil"; - version = "5.9.8"; - format = "setuptools"; - - inherit stdenv; - - disabled = pythonOlder "3.7"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-a+Em4yJUht/yhqj7mgYkalJT9MfFO0depfWsk05kGUw="; - }; - - postPatch = '' - # stick to the old SDK name for now - # https://developer.apple.com/documentation/iokit/kiomasterportdefault/ - # https://developer.apple.com/documentation/iokit/kiomainportdefault/ - substituteInPlace psutil/arch/osx/cpu.c \ - --replace-fail kIOMainPortDefault kIOMasterPortDefault - ''; - - buildInputs = - # workaround for https://github.com/NixOS/nixpkgs/issues/146760 - lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [ - CoreFoundation - ] ++ lib.optionals stdenv.isDarwin [ - IOKit - ]; - - nativeCheckInputs = [ - pytestCheckHook - ]; - - # Segfaults on darwin: - # https://github.com/giampaolo/psutil/issues/1715 - doCheck = !stdenv.isDarwin; - - # In addition to the issues listed above there are some that occure due to - # our sandboxing which we can work around by disabling some tests: - # - cpu_times was flaky on darwin - # - the other disabled tests are likely due to sanboxing (missing specific errors) - pytestFlagsArray = [ - # Note: $out must be referenced as test import paths are relative - "$out/${python.sitePackages}/psutil/tests/test_system.py" - ]; - - disabledTests = [ - # Some of the tests have build-system hardware-based impurities (like - # reading temperature sensor values). Disable them to avoid the failures - # that sometimes result. - "cpu_freq" - "cpu_times" - "disk_io_counters" - "sensors_battery" - "sensors_temperatures" - "user" - "test_disk_partitions" # problematic on Hydra's Linux builders, apparently - ]; - - pythonImportsCheck = [ - "psutil" - ]; - - meta = with lib; { - description = "Process and system utilization information interface"; - homepage = "https://github.com/giampaolo/psutil"; - changelog = "https://github.com/giampaolo/psutil/blob/release-${version}/HISTORY.rst"; - license = licenses.bsd3; - maintainers = with maintainers; [ jonringer ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/pycparser/default.nix b/pkgs/by-name/py/python/python-modules/pycparser/default.nix deleted file mode 100644 index fa0622d..0000000 --- a/pkgs/by-name/py/python/python-modules/pycparser/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ lib, buildPythonPackage, fetchPypi, unittestCheckHook }: - -buildPythonPackage rec { - pname = "pycparser"; - version = "2.21"; - format = "setuptools"; - - src = fetchPypi { - inherit pname version; - sha256 = "e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"; - }; - - nativeCheckInputs = [ unittestCheckHook ]; - - unittestFlagsArray = [ "-s" "tests" ]; - - meta = with lib; { - description = "C parser in Python"; - homepage = "https://github.com/eliben/pycparser"; - license = licenses.bsd3; - maintainers = with maintainers; [ domenkozar ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/pyelftools/default.nix b/pkgs/by-name/py/python/python-modules/pyelftools/default.nix deleted file mode 100644 index 84cdda6..0000000 --- a/pkgs/by-name/py/python/python-modules/pyelftools/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ lib -, stdenv -, buildPythonPackage -, fetchFromGitHub -, python -, pythonOlder -}: - -buildPythonPackage rec { - pname = "pyelftools"; - version = "0.30"; - format = "setuptools"; - - disabled = pythonOlder "3.7"; - - src = fetchFromGitHub { - owner = "eliben"; - repo = pname; - rev = "v${version}"; - hash = "sha256-A9etnN7G24/Gu8YlV/YDpxZV+TG2eVXGx2ZjVnA9ZD4="; - }; - - doCheck = stdenv.hostPlatform.system == "x86_64-linux" && stdenv.hostPlatform.isGnu; - - checkPhase = '' - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" test/external_tools/readelf - ${python.interpreter} test/run_all_unittests.py - ${python.interpreter} test/run_examples_test.py - ${python.interpreter} test/run_readelf_tests.py --parallel - ''; - - pythonImportsCheck = [ - "elftools" - ]; - - meta = with lib; { - description = "Python library for analyzing ELF files and DWARF debugging information"; - mainProgram = "readelf.py"; - homepage = "https://github.com/eliben/pyelftools"; - changelog = "https://github.com/eliben/pyelftools/blob/v${version}/CHANGES"; - license = licenses.publicDomain; - 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 deleted file mode 100644 index 1e17f95..0000000 --- a/pkgs/by-name/py/python/python-modules/pygit2/default.nix +++ /dev/null @@ -1,77 +0,0 @@ -{ lib -, stdenv -, buildPythonPackage -, cacert -, cached-property -, cffi -, fetchPypi -, isPyPy -, libgit2 -, pycparser -, pytestCheckHook -, pythonOlder -, setuptools -}: - -buildPythonPackage rec { - pname = "pygit2"; - version = "1.14.1"; - pyproject = true; - - disabled = pythonOlder "3.9"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-7FlYVxuCpjUXhcpkXlOUwxrkXuxThLL6nE4F3eNZetY="; - }; - - preConfigure = lib.optionalString stdenv.isDarwin '' - export DYLD_LIBRARY_PATH="${libgit2}/lib" - ''; - - nativeBuildInputs = [ - setuptools - ]; - - buildInputs = [ - libgit2 - ]; - - propagatedBuildInputs = [ - cached-property - pycparser - ] ++ lib.optionals (!isPyPy) [ - cffi - ]; - - propagatedNativeBuildInputs = lib.optionals (!isPyPy) [ - cffi - ]; - - nativeCheckInputs = [ - pytestCheckHook - ]; - - disabledTestPaths = [ - # Disable tests that require networking - "test/test_repository.py" - "test/test_credentials.py" - "test/test_submodule.py" - ]; - - # Tests require certificates - # https://github.com/NixOS/nixpkgs/pull/72544#issuecomment-582674047 - SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; - - pythonImportsCheck = [ - "pygit2" - ]; - - meta = with lib; { - description = "A set of Python bindings to the libgit2 shared library"; - homepage = "https://github.com/libgit2/pygit2"; - changelog = "https://github.com/libgit2/pygit2/blob/v${version}/CHANGELOG.md"; - license = licenses.gpl2Only; - maintainers = with maintainers; [ ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/pygments/default.nix b/pkgs/by-name/py/python/python-modules/pygments/default.nix deleted file mode 100644 index 4be48e1..0000000 --- a/pkgs/by-name/py/python/python-modules/pygments/default.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi - -# build-system -, hatchling - -# tests -, pytestCheckHook -, wcag-contrast-ratio -}: - -let pygments = buildPythonPackage - rec { - pname = "pygments"; - version = "2.17.2"; - pyproject = true; - - src = fetchPypi { - inherit pname version; - hash = "sha256-2kbOyf0t5b46inhPQ05MSrZwtP9U1gXEwnF+nUnEw2c="; - }; - - nativeBuildInputs = [ - hatchling - ]; - - # circular dependencies if enabled by default - doCheck = false; - - nativeCheckInputs = [ - pytestCheckHook - wcag-contrast-ratio - ]; - - disabledTestPaths = [ - # 5 lines diff, including one nix store path in 20000+ lines - "tests/examplefiles/bash/ltmain.sh" - ]; - - pythonImportsCheck = [ - "pygments" - ]; - - passthru.tests = { - check = pygments.overridePythonAttrs (_: { doCheck = true; }); - }; - - meta = with lib; { - changelog = "https://github.com/pygments/pygments/releases/tag/${version}"; - homepage = "https://pygments.org/"; - description = "A generic syntax highlighter"; - mainProgram = "pygmentize"; - license = licenses.bsd2; - maintainers = with maintainers; [ ]; - }; - }; -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 deleted file mode 100644 index 1d98d59..0000000 --- a/pkgs/by-name/py/python/python-modules/pyproject-hooks/default.nix +++ /dev/null @@ -1,74 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, flit-core -, pythonOlder -, tomli -# for passthru.tests -# , pyproject-hooks -# , pytestCheckHook -# , setuptools -# , testpath -}: - -buildPythonPackage rec { - pname = "pyproject-hooks"; - version = "1.0.0"; - format = "pyproject"; - - disabled = pythonOlder "3.7"; - - src = fetchPypi rec { - pname = "pyproject_hooks"; - inherit version; - hash = "sha256-8nGymLl/WVXVP7ErcsH7GUjCLBprcLMVxUztrKAmTvU="; - }; - - nativeBuildInputs = [ - flit-core - ]; - - 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. - doCheck = false; - - # passthru.tests = { - # pytest = buildPythonPackage { - # pname = "${pname}-pytest"; - # inherit version; - # format = "other"; - - # dontBuild = true; - # dontInstall = true; - - # nativeCheckInputs = [ - # pyproject-hooks - # pytestCheckHook - # setuptools - # testpath - # ]; - - # disabledTests = [ - # # fail to import setuptools - # "test_setup_py" - # "test_issue_104" - # ]; - # }; - # }; - - pythonImportsCheck = [ - "pyproject_hooks" - ]; - - meta = with lib; { - description = "Low-level library for calling build-backends in `pyproject.toml`-based project "; - homepage = "https://github.com/pypa/pyproject-hooks"; - changelog = "https://github.com/pypa/pyproject-hooks/blob/v${version}/docs/changelog.rst"; - license = licenses.mit; - maintainers = teams.python.members; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/pysocks/default.nix b/pkgs/by-name/py/python/python-modules/pysocks/default.nix deleted file mode 100644 index b007ef9..0000000 --- a/pkgs/by-name/py/python/python-modules/pysocks/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -}: - -buildPythonPackage rec { - pname = "pysocks"; - version = "1.7.1"; - format = "setuptools"; - - src = fetchPypi { - pname = "PySocks"; - inherit version; - sha256 = "184sg65mbmih6ljblfsxcmq5js5l7dj3gpn618w9q5dy3rbh921z"; - }; - - doCheck = false; - - meta = with lib; { - description = "SOCKS module for Python"; - 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 deleted file mode 100644 index 0c29890..0000000 --- a/pkgs/by-name/py/python/python-modules/pystemmer/default.nix +++ /dev/null @@ -1,69 +0,0 @@ -{ lib -, python -, fetchFromGitHub -, fetchpatch2 -, buildPythonPackage -, cython -, setuptools -, libstemmer - }: - -buildPythonPackage rec { - pname = "pystemmer"; - version = "2.2.0.1"; - pyproejct = true; - - src = fetchFromGitHub { - owner = "snowballstem"; - repo = "pystemmer"; - rev = "refs/tags/v${version}"; - hash = "sha256-ngPx95ybgJmndpNPBwCa3BCNsozRg+dlEw+nhlIwI58="; - }; - - patches = [ - (fetchpatch2 { - # relax cython constraint - name = "pystemmer-relax-cython.patch"; - url = "https://github.com/snowballstem/pystemmer/commit/d3d423dc877b4f49e0ab1776f7edaff37feb6799.patch"; - hash = "sha256-9K6gy/cLFPfW82XYHVVPXUbQhf8XyB4NUi4YqNtyWcw="; - }) - ]; - - build-system = [ - cython - setuptools - ]; - - postConfigure = '' - export PYSTEMMER_SYSTEM_LIBSTEMMER="${lib.getDev libstemmer}/include" - ''; - - env.NIX_CFLAGS_COMPILE = toString [ - "-I${lib.getDev libstemmer}/include" - ]; - - NIX_CFLAGS_LINK = [ - "-L${libstemmer}/lib" - ]; - - pythonImportsCheck = [ - "Stemmer" - ]; - - checkPhase = '' - runHook preCheck - ${python.interpreter} runtests.py - runHook postCheck - ''; - - meta = with lib; { - description = "Snowball stemming algorithms, for information retrieval"; - downloadPage = "https://github.com/snowballstem/pystemmer"; - homepage = "http://snowball.tartarus.org/"; - license = with licenses; [ - bsd3 - mit - ]; - platforms = platforms.unix; - }; -} 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 deleted file mode 100644 index b7762e1..0000000 --- a/pkgs/by-name/py/python/python-modules/pytest-asyncio/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ lib -, buildPythonPackage -, callPackage -, fetchFromGitHub -, pytest -, pythonOlder -, setuptools-scm -}: - -buildPythonPackage rec { - pname = "pytest-asyncio"; - version = "0.23.6"; # N.B.: when updating, tests bleak and aioesphomeapi tests - pyproject = true; - - disabled = pythonOlder "3.8"; - - src = fetchFromGitHub { - owner = "pytest-dev"; - repo = "pytest-asyncio"; - rev = "refs/tags/v${version}"; - hash = "sha256-+kyKcVzW05kqtLeC81rk3fJpOtyW3xSYshgl5gqIddE="; - }; - - outputs = [ - "out" - "testout" - ]; - - nativeBuildInputs = [ - setuptools-scm - ]; - - buildInputs = [ - pytest - ]; - - postInstall = '' - mkdir $testout - cp -R tests $testout/tests - ''; - - doCheck = false; - passthru.tests.pytest = callPackage ./tests.nix {}; - - pythonImportsCheck = [ - "pytest_asyncio" - ]; - - meta = with lib; { - description = "Library for testing asyncio code with pytest"; - homepage = "https://github.com/pytest-dev/pytest-asyncio"; - changelog = "https://github.com/pytest-dev/pytest-asyncio/blob/v${version}/docs/source/reference/changelog.rst"; - license = licenses.asl20; - maintainers = with maintainers; [ dotlambda ]; - }; -} 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 deleted file mode 100644 index 7fd26c8..0000000 --- a/pkgs/by-name/py/python/python-modules/pytest-asyncio/tests.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ buildPythonPackage -, flaky -, hypothesis -, pytest-asyncio -, pytest-trio -, pytestCheckHook -}: - -buildPythonPackage { - pname = "pytest-asyncio-tests"; - inherit (pytest-asyncio) version; - - format = "other"; - - src = pytest-asyncio.testout; - - dontBuild = true; - dontInstall = true; - - propagatedBuildInputs = [ - pytest-asyncio - ]; - - nativeCheckInputs = [ - flaky - hypothesis - pytest-trio - pytestCheckHook - ]; -} 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 deleted file mode 100644 index df5376e..0000000 --- a/pkgs/by-name/py/python/python-modules/pytest-expect/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ buildPythonPackage -, lib -, fetchPypi -, pytest -, u-msgpack-python -, six -}: - -buildPythonPackage rec { - pname = "pytest-expect"; - version = "1.1.0"; - format = "setuptools"; - - src = fetchPypi { - inherit pname version; - sha256 = "36b4462704450798197d090809a05f4e13649d9cba9acdc557ce9517da1fd847"; - }; - - buildInputs = [ pytest ]; - propagatedBuildInputs = [ u-msgpack-python six ]; - - # Tests in neither the archive nor the repo - doCheck = false; - - meta = { - description = "py.test plugin to store test expectations and mark tests based on them"; - homepage = "https://github.com/gsnedders/pytest-expect"; - license = lib.licenses.mit; - }; -} 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 deleted file mode 100644 index f956a62..0000000 --- a/pkgs/by-name/py/python/python-modules/pytest-mock/default.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ lib -, buildPythonPackage -, pythonAtLeast -, pythonOlder -, fetchPypi -, pytest -, pytest-asyncio -, pytestCheckHook -, setuptools -, setuptools-scm -}: - -buildPythonPackage rec { - pname = "pytest-mock"; - version = "3.12.0"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-MaQPA4wiytMih7tDkyBURR/1WD/wlLym9nXfL4vBpuk="; - }; - - nativeBuildInputs = [ - setuptools - setuptools-scm - ]; - - buildInputs = [ - pytest - ]; - - nativeCheckInputs = [ - pytest-asyncio - pytestCheckHook - ]; - - disabledTests = lib.optionals (pythonAtLeast "3.11") [ - # Regression in 3.11.7 and 3.12.1; https://github.com/pytest-dev/pytest-mock/issues/401 - "test_failure_message_with_name" - "test_failure_message_with_no_name" - ]; - - pythonImportsCheck = [ "pytest_mock" ]; - - meta = with lib; { - description = "Thin wrapper around the mock package for easier use with pytest"; - homepage = "https://github.com/pytest-dev/pytest-mock"; - changelog = "https://github.com/pytest-dev/pytest-mock/blob/v${version}/CHANGELOG.rst"; - license = licenses.mit; - maintainers = with maintainers; [ dotlambda ]; - }; -} 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 deleted file mode 100644 index 59d459a..0000000 --- a/pkgs/by-name/py/python/python-modules/pytest-rerunfailures/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib -, buildPythonPackage -, pythonOlder -, fetchPypi -, setuptools -, packaging -, pytest -, pytestCheckHook -}: - -buildPythonPackage rec { - pname = "pytest-rerunfailures"; - version = "13.0"; - format = "pyproject"; - - disabled = pythonOlder "3.7"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-4TLb5CC8R29US5bnA27dCmlwdXQgm2Z3JjyVDRmwkZk="; - }; - - nativeBuildInputs = [ setuptools ]; - - buildInputs = [ pytest ]; - propagatedBuildInputs = [ packaging ]; - - nativeCheckInputs = [ pytestCheckHook ]; - - meta = with lib; { - description = "Pytest plugin to re-run tests to eliminate flaky failures"; - homepage = "https://github.com/pytest-dev/pytest-rerunfailures"; - license = licenses.mpl20; - maintainers = with maintainers; [ das-g ]; - }; -} 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 deleted file mode 100644 index 3ea96b5..0000000 --- a/pkgs/by-name/py/python/python-modules/pytest-timeout/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pytest -, pytestCheckHook -, pexpect -}: - -buildPythonPackage rec { - pname = "pytest-timeout"; - version = "2.3.1"; - format = "setuptools"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-Ejl3KRJcbsvaygEDW55SOdTblzUjIK8VWz9d4bpRZdk="; - }; - - buildInputs = [ - pytest - ]; - - nativeCheckInputs = [ - pytestCheckHook - pexpect - ]; - - disabledTests = [ - "test_suppresses_timeout_when_pdb_is_entered" - # Remove until https://github.com/pytest-dev/pytest/pull/7207 or similar - "test_suppresses_timeout_when_debugger_is_entered" - ]; - - pytestFlagsArray = [ - "-ra" - ]; - - pythonImportsCheck = [ - "pytest_timeout" - ]; - - meta = with lib; { - description = "Pytest plugin to abort hanging tests"; - homepage = "https://github.com/pytest-dev/pytest-timeout/"; - changelog = "https://github.com/pytest-dev/pytest-timeout/#changelog"; - license = licenses.mit; - maintainers = with maintainers; [ makefu ]; - }; -} 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 deleted file mode 100644 index 947040f..0000000 --- a/pkgs/by-name/py/python/python-modules/pytest-xdist/default.nix +++ /dev/null @@ -1,76 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder -, setuptools-scm -, pytestCheckHook -, filelock -, execnet -, pytest -, psutil -, setproctitle -}: - -buildPythonPackage rec { - pname = "pytest-xdist"; - version = "3.5.0"; - disabled = pythonOlder "3.7"; - - pyproject = true; - - src = fetchPypi { - inherit pname version; - hash = "sha256-y7NvPWfgxHi6pX+k7ciEOIfg9s/ELWd1MKNtdHKzLYo="; - }; - - nativeBuildInputs = [ - setuptools-scm - ]; - - buildInputs = [ - pytest - ]; - - propagatedBuildInputs = [ - execnet - ]; - - nativeCheckInputs = [ - filelock - pytestCheckHook - ]; - - passthru.optional-dependencies = { - psutil = [ psutil ]; - setproctitle = [ setproctitle ]; - }; - - pytestFlagsArray = [ - # pytest can already use xdist at this point - "--numprocesses=$NIX_BUILD_CORES" - ]; - - # access file system - disabledTests = [ - "test_distribution_rsyncdirs_example" - "test_rsync_popen_with_path" - "test_popen_rsync_subdir" - "test_rsync_report" - "test_init_rsync_roots" - "test_rsyncignore" - # flakey - "test_internal_errors_propagate_to_controller" - # https://github.com/pytest-dev/pytest-xdist/issues/985 - "test_workqueue_ordered_by_size" - ]; - - setupHook = ./setup-hook.sh; - - meta = with lib; { - changelog = "https://github.com/pytest-dev/pytest-xdist/blob/v${version}/CHANGELOG.rst"; - description = "Pytest xdist plugin for distributed testing and loop-on-failing modes"; - homepage = "https://github.com/pytest-dev/pytest-xdist"; - license = licenses.mit; - maintainers = with maintainers; [ dotlambda ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/pytest-xdist/setup-hook.sh b/pkgs/by-name/py/python/python-modules/pytest-xdist/setup-hook.sh deleted file mode 100644 index 4c6473c..0000000 --- a/pkgs/by-name/py/python/python-modules/pytest-xdist/setup-hook.sh +++ /dev/null @@ -1,17 +0,0 @@ -pytestXdistHook() { - pytestFlagsArray+=( - "--numprocesses=$NIX_BUILD_CORES" - ) -} - -# the flags should be added before pytestCheckHook runs so -# until we have dependency mechanism in generic builder, we need to use this ugly hack. - -if [ -z "${dontUsePytestXdist-}" ] && [ -z "${dontUsePytestCheck-}" ]; then - if [[ " ${preDistPhases:-} " =~ " pytestCheckPhase " ]]; then - preDistPhases+=" " - preDistPhases="${preDistPhases/ pytestCheckPhase / pytestXdistHook pytestCheckPhase }" - else - preDistPhases+=" pytestXdistHook" - fi -fi diff --git a/pkgs/by-name/py/python/python-modules/pytest/7.nix b/pkgs/by-name/py/python/python-modules/pytest/7.nix deleted file mode 100644 index 835e8ff..0000000 --- a/pkgs/by-name/py/python/python-modules/pytest/7.nix +++ /dev/null @@ -1,116 +0,0 @@ -{ lib -, buildPythonPackage -, callPackage -, pythonOlder -, fetchPypi -, writeText - -# build-system -, setuptools -, setuptools-scm - -# dependencies -, attrs -, exceptiongroup -, iniconfig -, packaging -, pluggy -, tomli - -# optional-dependencies -, argcomplete -, hypothesis -, mock -, nose -, pygments -, requests -, xmlschema -}: - -let self = buildPythonPackage rec { - pname = "pytest"; - version = "7.4.4"; - pyproject = true; - - 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 - ]; - }; - - 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 diff --git a/pkgs/by-name/py/python/python-modules/pytest/default.nix b/pkgs/by-name/py/python/python-modules/pytest/default.nix deleted file mode 100644 index 9b99112..0000000 --- a/pkgs/by-name/py/python/python-modules/pytest/default.nix +++ /dev/null @@ -1,113 +0,0 @@ -{ lib -, buildPythonPackage -, callPackage -, pythonOlder -, fetchPypi -, writeText - -# build-system -, setuptools -, setuptools-scm - -# dependencies -, attrs -, exceptiongroup -, iniconfig -, packaging -, pluggy -, tomli - -# optional-dependencies -, argcomplete -, hypothesis -, mock -, nose -, pygments -, requests -, xmlschema -}: - -buildPythonPackage rec { - pname = "pytest"; - version = "8.1.1"; - pyproject = true; - - src = fetchPypi { - inherit pname version; - hash = "sha256-rJeBQadZSJSIF9NgKXt6rg/LnW/2vJ7G1RS4XVplwEQ="; - }; - - 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 { }; - - # 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; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/pytest/tests.nix b/pkgs/by-name/py/python/python-modules/pytest/tests.nix deleted file mode 100644 index 8bf8daf..0000000 --- a/pkgs/by-name/py/python/python-modules/pytest/tests.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ buildPythonPackage -, isPyPy -, pytest -}: - -buildPythonPackage rec { - pname = "pytest-tests"; - inherit (pytest) version; - format = "other"; - - src = pytest.testout; - - dontBuild = true; - dontInstall = true; - - nativeCheckInputs = pytest.optional-dependencies.testing; - - doCheck = !isPyPy; # https://github.com/pytest-dev/pytest/issues/3460 - - # Ignored file https://github.com/pytest-dev/pytest/pull/5605#issuecomment-522243929 - # test_missing_required_plugins will emit deprecation warning which is treated as error - checkPhase = '' - runHook preCheck - ${pytest.out}/bin/pytest -x testing/ \ - --ignore=testing/test_junitxml.py \ - --ignore=testing/test_argcomplete.py \ - -k "not test_collect_pyargs_with_testpaths and not test_missing_required_plugins" - - # tests leave behind unreproducible pytest binaries in the output directory, remove: - find $out/lib -name "*-pytest-${version}.pyc" -delete - # specifically testing/test_assertion.py and testing/test_assertrewrite.py leave behind those: - find $out/lib -name "*opt-2.pyc" -delete - - runHook postCheck - ''; -} 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 deleted file mode 100644 index dd7cc0f..0000000 --- a/pkgs/by-name/py/python/python-modules/python-dateutil/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, setuptools-scm -, six -}: - -buildPythonPackage rec { - pname = "python-dateutil"; - version = "2.9.0.post0"; - pyproject = true; - - src = fetchPypi { - inherit pname version; - hash = "sha256-N91UII2n4c2HU4ghfV4A69QXkkn5D7ckN+kaNUWaCtM="; - }; - - postPatch = '' - substituteInPlace pyproject.toml \ - --replace-fail "setuptools_scm<8.0" "setuptools_scm" - ''; - - nativeBuildInputs = [ setuptools-scm ]; - - propagatedBuildInputs = [ six ]; - - # cyclic dependency: tests need freezegun, which depends on python-dateutil - doCheck = false; - - pythonImportsCheck = [ - "dateutil.easter" - "dateutil.parser" - "dateutil.relativedelta" - "dateutil.rrule" - "dateutil.tz" - "dateutil.utils" - "dateutil.zoneinfo" - ]; - - meta = with lib; { - 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 ]; - 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 deleted file mode 100644 index 359c7c1..0000000 --- a/pkgs/by-name/py/python/python-modules/pytz/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, setuptools -, unittestCheckHook -}: - -buildPythonPackage rec { - pname = "pytz"; - version = "2024.1"; - pyproject = true; - - src = fetchPypi { - inherit pname version; - hash = "sha256-KilzXqnBi68UtEiEa95aSAMO0mdXhHLYlVzQ50Q6mBI="; - }; - - nativeBuildInputs = [ - setuptools - ]; - - nativeCheckInputs = [ unittestCheckHook ]; - - unittestFlagsArray = [ "-s" "pytz/tests" ]; - - pythonImportsCheck = [ "pytz" ]; - - meta = with lib; { - changelog = "https://launchpad.net/pytz/+announcements"; - description = "World timezone definitions, modern and historical"; - homepage = "https://pythonhosted.org/pytz"; - license = licenses.mit; - maintainers = with maintainers; [ dotlambda ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/requests/default.nix b/pkgs/by-name/py/python/python-modules/requests/default.nix deleted file mode 100644 index 33749a9..0000000 --- a/pkgs/by-name/py/python/python-modules/requests/default.nix +++ /dev/null @@ -1,94 +0,0 @@ -{ lib -, stdenv -, brotlicffi -, buildPythonPackage -, certifi -, chardet -, charset-normalizer -, fetchPypi -, fetchpatch -, idna -, pysocks -, pytest-mock -, pytest-xdist -, pytestCheckHook -, pythonOlder -, urllib3 -}: - -buildPythonPackage rec { - pname = "requests"; - version = "2.31.0"; - format = "setuptools"; - - disabled = pythonOlder "3.7"; - - __darwinAllowLocalNetworking = true; - - src = fetchPypi { - inherit pname version; - hash = "sha256-lCxadY+Y15Dq7Ropy27vx/+w0c968Fw9J5Flbb1q0eE="; - }; - - dependencies = [ - brotlicffi - certifi - charset-normalizer - idna - urllib3 - ]; - - optional-dependencies = { - security = []; - socks = [ - pysocks - ]; - use_chardet_on_py3 = [ - chardet - ]; - }; - - nativeCheckInputs = [ - pytest-mock - pytest-xdist - pytestCheckHook - ] - ++ 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" - ]; - - disabledTestPaths = lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ - # Fatal Python error: Aborted - "tests/test_lowlevel.py" - ]; - - pythonImportsCheck = [ - "requests" - ]; - - meta = with lib; { - description = "HTTP library for Python"; - homepage = "http://docs.python-requests.org/"; - changelog = "https://github.com/psf/requests/blob/v${version}/HISTORY.md"; - license = licenses.asl20; - maintainers = with maintainers; [ fab ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/responses/default.nix b/pkgs/by-name/py/python/python-modules/responses/default.nix deleted file mode 100644 index 5a9960c..0000000 --- a/pkgs/by-name/py/python/python-modules/responses/default.nix +++ /dev/null @@ -1,75 +0,0 @@ -{ lib -, buildPythonPackage -, fetchFromGitHub -, fetchpatch2 -, pytest-asyncio -, pytest-httpserver -, pytestCheckHook -, pythonOlder -, pyyaml -, requests -, setuptools -, tomli -, tomli-w -, types-pyyaml -, types-toml -, urllib3 -}: - -buildPythonPackage rec { - pname = "responses"; - version = "0.25.0"; - pyproject = true; - - disabled = pythonOlder "3.8"; - - __darwinAllowLocalNetworking = true; - - src = fetchFromGitHub { - owner = "getsentry"; - repo = pname; - rev = "refs/tags/${version}"; - hash = "sha256-FHtuZ6NUmCveAJOXEajfTLRMR8W1Jz/pjFKdE6PHW2g="; - }; - - patches = [ - (fetchpatch2 { - # adds missing pytest asyncio markers - url = "https://github.com/getsentry/responses/commit/d5e7402f1782692d04742562370abaca8d54a972.patch"; - hash = "sha256-A/DYSKvuangolkcQX4k/uom//AQ9in7BsTmVtlCqmXQ="; - }) - ]; - - nativeBuildInputs = [ - setuptools - ]; - - propagatedBuildInputs = [ - pyyaml - requests - types-pyyaml - types-toml - urllib3 - ]; - - nativeCheckInputs = [ - pytest-asyncio - pytest-httpserver - pytestCheckHook - tomli-w - ] ++ lib.optionals (pythonOlder "3.11") [ - tomli - ]; - - pythonImportsCheck = [ - "responses" - ]; - - meta = with lib; { - description = "Python module for mocking out the requests Python library"; - homepage = "https://github.com/getsentry/responses"; - changelog = "https://github.com/getsentry/responses/blob/${version}/CHANGES"; - license = licenses.asl20; - maintainers = with maintainers; [ fab ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/setproctitle/default.nix b/pkgs/by-name/py/python/python-modules/setproctitle/default.nix deleted file mode 100644 index dfbee6e..0000000 --- a/pkgs/by-name/py/python/python-modules/setproctitle/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ lib -, buildPythonPackage -, pythonOlder -, fetchPypi -, setuptools -, pytestCheckHook -}: - -buildPythonPackage rec { - pname = "setproctitle"; - version = "1.3.3"; - pyproject = true; - - disabled = pythonOlder "3.6"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-yRPhUefqAVZ4N/8DeiPKh0AZKIAZi3+7kLFtGBYHyq4="; - }; - - nativeBuildInputs = [ - setuptools - ]; - - nativeCheckInputs = [ - pytestCheckHook - ]; - - # tries to compile programs with dependencies that aren't available - 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"; - 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 deleted file mode 100644 index fb4b83f..0000000 --- a/pkgs/by-name/py/python/python-modules/setuptools-scm/default.nix +++ /dev/null @@ -1,69 +0,0 @@ -{ lib -, buildPythonPackage -, callPackage -, fetchPypi -, pythonOlder - -# build-system -, setuptools - -# dependencies -, packaging -, typing-extensions -, tomli - -# optional-dependencies -# , rich -}: - -buildPythonPackage rec { - pname = "setuptools-scm"; - version = "8.0.4"; - pyproject = true; - - src = fetchPypi { - inherit pname version; - hash = "sha256-tfQ/9oAGaVlRk/0JiRVk7p0dfcsZbKtLJQbVOi4clcc="; - }; - - nativeBuildInputs = [ - setuptools - ] ++ lib.optionals (pythonOlder "3.11") [ - tomli - ]; - - propagatedBuildInputs = [ - packaging - setuptools - typing-extensions - ] ++ lib.optionals (pythonOlder "3.11") [ - tomli - ]; - - # passthru.optional-dependencies = { - # rich = [ - # rich - # ]; - # }; - - pythonImportsCheck = [ - "setuptools_scm" - ]; - - # check in passthru.tests.pytest to escape infinite recursion on pytest - doCheck = false; - - passthru.tests = { - pytest = callPackage ./tests.nix { }; - }; - - setupHook = ./setup-hook.sh; - - meta = with lib; { - changelog = "https://github.com/pypa/setuptools_scm/blob/${version}/CHANGELOG.md"; - homepage = "https://github.com/pypa/setuptools_scm/"; - description = "Handles managing your python package versions in scm metadata"; - license = licenses.mit; - maintainers = with maintainers; [ nickcao ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/setuptools-scm/setup-hook.sh b/pkgs/by-name/py/python/python-modules/setuptools-scm/setup-hook.sh deleted file mode 100644 index f8c30f9..0000000 --- a/pkgs/by-name/py/python/python-modules/setuptools-scm/setup-hook.sh +++ /dev/null @@ -1,32 +0,0 @@ -# Let built package know its version. -# Usually, when a package uses setuptools-scm as a build-time dependency, it -# expects to get the package version from SCM data. However, while doing a nix -# build, the source tree doesn't contain SCM data, so we should almost always -# get the version from the derivation attribute. -version-pretend-hook() { - if [ -z "$dontPretendSetuptoolsSCMVersion" -a -z "$SETUPTOOLS_SCM_PRETEND_VERSION" ]; then - echo Setting SETUPTOOLS_SCM_PRETEND_VERSION to $version - export SETUPTOOLS_SCM_PRETEND_VERSION="$version" - fi -} - -# Include all tracked files. -# When a package uses setuptools-scm as a build-time dependency, it usually -# expects it to include all scm-tracked files in the built package, by default. -# This is the official setuptools-scm behavior, documented in -# https://setuptools-scm.readthedocs.io/en/latest/usage/#file-finders-hook-makes-most-of-manifestin-unnecessary -# and https://setuptools.pypa.io/en/latest/userguide/datafiles.html. -# However, while doing a nix build, the source tree doesn't contain SCM data, -# so it would include only `.py` files by default. -# We generate a MANIFEST.in automatically that includes all tracked files to -# emulate this behavior of setuptools-scm. -include-tracked-files-hook() { - if [ -z "$dontIncludeSetuptoolsSCMTrackedFiles" ]; then - echo Including all tracked files automatically - old_manifest="$(if [ -f MANIFEST.in ]; then cat MANIFEST.in; fi)" - echo 'global-include **' > MANIFEST.in - echo "$old_manifest" >> MANIFEST.in - fi -} - -preBuildHooks+=(version-pretend-hook include-tracked-files-hook) 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 deleted file mode 100644 index b679a0f..0000000 --- a/pkgs/by-name/py/python/python-modules/setuptools-scm/tests.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ buildPythonPackage -, setuptools-scm -, pytestCheckHook -, git -, mercurial -, pip -, virtualenv -}: - -buildPythonPackage { - pname = "setuptools-scm-tests"; - inherit (setuptools-scm) version src; - format = "other"; - - dontBuild = true; - dontInstall = true; - - nativeCheckInputs = [ - pytestCheckHook - setuptools-scm - pip - virtualenv - git - mercurial - ]; - - disabledTests = [ - # network access - "test_pip_download" - ]; -} diff --git a/pkgs/by-name/py/python/python-modules/setuptools/default.nix b/pkgs/by-name/py/python/python-modules/setuptools/default.nix deleted file mode 100644 index 46a2597..0000000 --- a/pkgs/by-name/py/python/python-modules/setuptools/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ stdenv -, lib -, buildPythonPackage -, fetchFromGitHub -, python -, wheel -}: - -buildPythonPackage rec { - pname = "setuptools"; - version = "69.2.0"; - format = "pyproject"; - - src = fetchFromGitHub { - owner = "pypa"; - repo = "setuptools"; - rev = "refs/tags/v${version}"; - hash = "sha256-kll4zYFQn4g/8Fq0Y5vLvDXtotxYMbiNAgGa0sClFQk="; - }; - - patches = [ - ./tag-date.patch - ./setuptools-distutils-C++.patch - ]; - - nativeBuildInputs = [ - wheel - ]; - - preBuild = lib.optionalString (!stdenv.hostPlatform.isWindows) '' - export SETUPTOOLS_INSTALL_WINDOWS_SPECIFIC_FILES=0 - ''; - - # Requires pytest, causing infinite recursion. - doCheck = false; - - 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}"; - license = with licenses; [ mit ]; - platforms = python.meta.platforms; - maintainers = teams.python.members; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/setuptools/setuptools-distutils-C++.patch b/pkgs/by-name/py/python/python-modules/setuptools/setuptools-distutils-C++.patch deleted file mode 100644 index 399e168..0000000 --- a/pkgs/by-name/py/python/python-modules/setuptools/setuptools-distutils-C++.patch +++ /dev/null @@ -1,171 +0,0 @@ -diff --git a/setuptools/_distutils/cygwinccompiler.py b/setuptools/_distutils/cygwinccompiler.py -index 47efa377..5cdbbe10 100644 ---- a/setuptools/_distutils/cygwinccompiler.py -+++ b/setuptools/_distutils/cygwinccompiler.py -@@ -101,14 +101,19 @@ class CygwinCCompiler(UnixCCompiler): - self.cxx = os.environ.get('CXX', 'g++') - - self.linker_dll = self.cc -+ self.linker_dll_cxx = self.cxx - shared_option = "-shared" - - self.set_executables( - compiler='%s -mcygwin -O -Wall' % self.cc, - compiler_so='%s -mcygwin -mdll -O -Wall' % self.cc, - compiler_cxx='%s -mcygwin -O -Wall' % self.cxx, -+ compiler_so_cxx='%s -mcygwin -mdll -O -Wall' % self.cxx, - linker_exe='%s -mcygwin' % self.cc, - linker_so=('{} -mcygwin {}'.format(self.linker_dll, shared_option)), -+ linker_exe_cxx='%s -mcygwin' % self.cxx, -+ linker_so_cxx=('%s -mcygwin %s' % -+ (self.linker_dll_cxx, shared_option)), - ) - - # Include the appropriate MSVC runtime library if Python was built -@@ -140,9 +145,12 @@ class CygwinCCompiler(UnixCCompiler): - raise CompileError(msg) - else: # for other files use the C-compiler - try: -- self.spawn( -- self.compiler_so + cc_args + [src, '-o', obj] + extra_postargs -- ) -+ if self.detect_language(src) == 'c++': -+ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] + -+ extra_postargs) -+ else: -+ self.spawn( -+ self.compiler_so + cc_args + [src, '-o', obj] + extra_postargs) - except DistutilsExecError as msg: - raise CompileError(msg) - -@@ -278,9 +286,12 @@ class Mingw32CCompiler(CygwinCCompiler): - self.set_executables( - compiler='%s -O -Wall' % self.cc, - compiler_so='%s -mdll -O -Wall' % self.cc, -+ compiler_so_cxx='%s -mdll -O -Wall' % self.cxx, - compiler_cxx='%s -O -Wall' % self.cxx, - linker_exe='%s' % self.cc, - linker_so='{} {}'.format(self.linker_dll, shared_option), -+ linker_exe_cxx='%s' % self.cxx, -+ linker_so_cxx='%s %s' % (self.linker_dll_cxx, shared_option) - ) - - def runtime_library_dir_option(self, dir): -diff --git a/setuptools/_distutils/sysconfig.py b/setuptools/_distutils/sysconfig.py -index a40a7231..e5aad4f4 100644 ---- a/setuptools/_distutils/sysconfig.py -+++ b/setuptools/_distutils/sysconfig.py -@@ -297,6 +297,7 @@ def customize_compiler(compiler): # noqa: C901 - cflags, - ccshared, - ldshared, -+ ldcxxshared, - shlib_suffix, - ar, - ar_flags, -@@ -306,11 +307,14 @@ def customize_compiler(compiler): # noqa: C901 - 'CFLAGS', - 'CCSHARED', - 'LDSHARED', -+ 'LDCXXSHARED', - 'SHLIB_SUFFIX', - 'AR', - 'ARFLAGS', - ) - -+ cxxflags = cflags -+ - if 'CC' in os.environ: - newcc = os.environ['CC'] - if 'LDSHARED' not in os.environ and ldshared.startswith(cc): -@@ -322,19 +326,27 @@ def customize_compiler(compiler): # noqa: C901 - cxx = os.environ['CXX'] - if 'LDSHARED' in os.environ: - ldshared = os.environ['LDSHARED'] -+ if 'LDCXXSHARED' in os.environ: -+ ldcxxshared = os.environ['LDCXXSHARED'] - if 'CPP' in os.environ: - cpp = os.environ['CPP'] - else: - cpp = cc + " -E" # not always - if 'LDFLAGS' in os.environ: - ldshared = ldshared + ' ' + os.environ['LDFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS'] - if 'CFLAGS' in os.environ: -- cflags = cflags + ' ' + os.environ['CFLAGS'] -+ cflags = os.environ['CFLAGS'] - ldshared = ldshared + ' ' + os.environ['CFLAGS'] -+ if 'CXXFLAGS' in os.environ: -+ cxxflags = os.environ['CXXFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS'] - if 'CPPFLAGS' in os.environ: - cpp = cpp + ' ' + os.environ['CPPFLAGS'] - cflags = cflags + ' ' + os.environ['CPPFLAGS'] -+ cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS'] - ldshared = ldshared + ' ' + os.environ['CPPFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS'] - if 'AR' in os.environ: - ar = os.environ['AR'] - if 'ARFLAGS' in os.environ: -@@ -343,13 +355,17 @@ def customize_compiler(compiler): # noqa: C901 - archiver = ar + ' ' + ar_flags - - cc_cmd = cc + ' ' + cflags -+ cxx_cmd = cxx + ' ' + cxxflags - compiler.set_executables( - preprocessor=cpp, - compiler=cc_cmd, - compiler_so=cc_cmd + ' ' + ccshared, -- compiler_cxx=cxx, -+ compiler_cxx=cxx_cmd, -+ compiler_so_cxx=cxx_cmd + ' ' + ccshared, - linker_so=ldshared, -+ linker_so_cxx=ldcxxshared, - linker_exe=cc, -+ linker_exe_cxx=cxx, - archiver=archiver, - ) - -diff --git a/setuptools/_distutils/unixccompiler.py b/setuptools/_distutils/unixccompiler.py -index 6ca2332a..5ac64128 100644 ---- a/setuptools/_distutils/unixccompiler.py -+++ b/setuptools/_distutils/unixccompiler.py -@@ -115,9 +115,12 @@ class UnixCCompiler(CCompiler): - 'preprocessor': None, - 'compiler': ["cc"], - 'compiler_so': ["cc"], -- 'compiler_cxx': ["cc"], -+ 'compiler_cxx': ["c++"], -+ 'compiler_so_cxx': ["c++"], - 'linker_so': ["cc", "-shared"], -+ 'linker_so_cxx': ["c++", "-shared"], - 'linker_exe': ["cc"], -+ 'linker_exe_cxx': ["c++", "-shared"], - 'archiver': ["ar", "-cr"], - 'ranlib': None, - } -@@ -181,8 +184,13 @@ class UnixCCompiler(CCompiler): - - def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts): - compiler_so = compiler_fixup(self.compiler_so, cc_args + extra_postargs) -+ compiler_so_cxx = compiler_fixup(self.compiler_so_cxx, cc_args + extra_postargs) - try: -- self.spawn(compiler_so + cc_args + [src, '-o', obj] + extra_postargs) -+ if self.detect_language(src) == 'c++': -+ self.spawn(compiler_so_cxx + cc_args + [ src, '-o', obj] + -+ extra_postargs) -+ else: -+ self.spawn(compiler_so + cc_args + [src, '-o', obj] + extra_postargs) - except DistutilsExecError as msg: - raise CompileError(msg) - -@@ -250,7 +258,8 @@ class UnixCCompiler(CCompiler): - # building an executable or linker_so (with shared options) - # when building a shared library. - building_exe = target_desc == CCompiler.EXECUTABLE -- linker = (self.linker_exe if building_exe else self.linker_so)[:] -+ linker = (self.linker_exe if building_exe else (self.linker_so_cxx if -+ target_lang == "c++" else self.linker_so))[:] - - if target_lang == "c++" and self.compiler_cxx: - env, linker_ne = _split_env(linker) diff --git a/pkgs/by-name/py/python/python-modules/setuptools/tag-date.patch b/pkgs/by-name/py/python/python-modules/setuptools/tag-date.patch deleted file mode 100644 index 441177a..0000000 --- a/pkgs/by-name/py/python/python-modules/setuptools/tag-date.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/setup.cfg b/setup.cfg -index f23714b6..8aaeb330 100644 ---- a/setup.cfg -+++ b/setup.cfg -@@ -1,6 +1,6 @@ - [egg_info] - tag_build = .post --tag_date = 1 -+tag_date = 0 - - [aliases] - clean_egg_info = egg_info -Db '' diff --git a/pkgs/by-name/py/python/python-modules/six/default.nix b/pkgs/by-name/py/python/python-modules/six/default.nix deleted file mode 100644 index afaedae..0000000 --- a/pkgs/by-name/py/python/python-modules/six/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, isPyPy -, pytestCheckHook -}: - -buildPythonPackage rec { - pname = "six"; - version = "1.16.0"; - - format = "setuptools"; - - src = fetchPypi { - inherit pname version; - sha256 = "1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"; - }; - - nativeCheckInputs = [ - pytestCheckHook - ]; - - pytestFlagsArray = if isPyPy then [ - # uses ctypes to find native library - "--deselect=test_six.py::test_move_items" - ] else null; - - pythonImportsCheck = [ "six" ]; - - meta = { - changelog = "https://github.com/benjaminp/six/blob/${version}/CHANGES"; - description = "Python 2 and 3 compatibility library"; - homepage = "https://github.com/benjaminp/six"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ dotlambda ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/snowballstemmer/default.nix b/pkgs/by-name/py/python/python-modules/snowballstemmer/default.nix deleted file mode 100644 index a1723bd..0000000 --- a/pkgs/by-name/py/python/python-modules/snowballstemmer/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib, buildPythonPackage, pystemmer, fetchPypi }: - -buildPythonPackage rec { - pname = "snowballstemmer"; - version = "2.2.0"; - format = "setuptools"; - - src = fetchPypi { - inherit pname version; - sha256 = "09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"; - }; - - # No tests included - doCheck = false; - - propagatedBuildInputs = [ pystemmer ]; - - meta = with lib; { - description = "16 stemmer algorithms (15 + Poerter English stemmer) generated from Snowball algorithms"; - homepage = "http://sigal.saimon.org/en/latest/index.html"; - license = licenses.bsd3; - platforms = platforms.unix; - }; -} 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 deleted file mode 100644 index 9cf4b68..0000000 --- a/pkgs/by-name/py/python/python-modules/sphinx-issues/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, buildPythonPackage, sphinx, fetchFromGitHub, pandoc }: - -buildPythonPackage rec { - pname = "sphinx-issues"; - version = "3.0.1"; - format = "setuptools"; - outputs = [ "out" "doc" ]; - - src = fetchFromGitHub { - owner = "sloria"; - repo = "sphinx-issues"; - rev = version; - sha256 = "1lns6isq9kwcw8z4jwgy927f7idx9srvri5adaa5zmypw5x47hha"; - }; - - pythonImportsCheck = [ "sphinx_issues" ]; - - propagatedBuildInputs = [ sphinx ]; - - nativeBuildInputs = [ pandoc ]; - - postBuild = '' - pandoc -f rst -t html --standalone < README.rst > README.html - ''; - - postInstall = '' - mkdir -p $doc/share/doc/$name/html - cp README.html $doc/share/doc/$name/html - ''; - - meta = with lib; { - homepage = "https://github.com/sloria/sphinx-issues"; - description = "Sphinx extension for linking to your project's issue tracker."; - license = licenses.mit; - maintainers = with maintainers; [ kaction ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/sphinx/default.nix b/pkgs/by-name/py/python/python-modules/sphinx/default.nix deleted file mode 100644 index 53f58ed..0000000 --- a/pkgs/by-name/py/python/python-modules/sphinx/default.nix +++ /dev/null @@ -1,165 +0,0 @@ -{ lib -, buildPythonPackage -, pythonAtLeast -, pythonOlder -, fetchFromGitHub -, isPyPy - -# 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 - -# check phase -, filelock -, html5lib -, pytestCheckHook -, pytest-xdist -}: - -buildPythonPackage rec { - pname = "sphinx"; - version = "7.2.6"; - format = "pyproject"; - disabled = pythonOlder "3.9"; - - src = fetchFromGitHub { - owner = "sphinx-doc"; - repo = "sphinx"; - rev = "refs/tags/v${version}"; - postFetch = '' - # Change ä to æ in file names, since ä can be encoded multiple ways on different - # filesystems, leading to different hashes on different platforms. - cd "$out"; - mv tests/roots/test-images/{testimäge,testimæge}.png - sed -i 's/testimäge/testimæge/g' tests/{test_build*.py,roots/test-images/index.rst} - ''; - hash = "sha256-IjpRGeGpGfzrEvwIKtuu2l1S74w8W+AbqDOGnWwtRck="; - }; - - nativeBuildInputs = [ - flit-core - ]; - - propagatedBuildInputs = [ - alabaster - babel - docutils - imagesize - jinja2 - packaging - pygments - requests - snowballstemmer - sphinxcontrib-applehelp - sphinxcontrib-devhelp - sphinxcontrib-htmlhelp - sphinxcontrib-jsmath - sphinxcontrib-qthelp - sphinxcontrib-serializinghtml - # extra[docs] - sphinxcontrib-websupport - ] ++ lib.optionals (pythonOlder "3.10") [ - importlib-metadata - ]; - - __darwinAllowLocalNetworking = true; - - nativeCheckInputs = [ - filelock - html5lib - pytestCheckHook - pytest-xdist - ]; - - preCheck = '' - 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" - ]; - - meta = { - description = "Python documentation generator"; - longDescription = '' - Sphinx makes it easy to create intelligent and beautiful documentation. - - Here are some of Sphinx’s major features: - - Output formats: HTML (including Windows HTML Help), LaTeX (for printable - PDF versions), ePub, Texinfo, manual pages, plain text - - Extensive cross-references: semantic markup and automatic links for - functions, classes, citations, glossary terms and similar pieces of - information - - Hierarchical structure: easy definition of a document tree, with - automatic links to siblings, parents and children - - Automatic indices: general index as well as a language-specific module - indices - - Code handling: automatic highlighting using the Pygments highlighter - - Extensions: automatic testing of code snippets, inclusion of docstrings - from Python modules (API docs) via built-in extensions, and much more - functionality via third-party extensions. - - Themes: modify the look and feel of outputs via creating themes, and - re-use many third-party themes. - - Contributed extensions: dozens of extensions contributed by users; most - of them installable from PyPI. - - Sphinx uses the reStructuredText markup language by default, and can read - MyST markdown via third-party extensions. Both of these are powerful and - straightforward to use, and have functionality for complex documentation - and publishing workflows. They both build upon Docutils to parse and write - documents. - ''; - homepage = "https://www.sphinx-doc.org"; - changelog = "https://www.sphinx-doc.org/en/master/changes.html"; - license = lib.licenses.bsd3; - maintainers = [ ]; - }; -} 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 deleted file mode 100644 index 139b206..0000000 --- a/pkgs/by-name/py/python/python-modules/sphinxcontrib-applehelp/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder -, flit-core -}: - -buildPythonPackage rec { - pname = "sphinxcontrib-applehelp"; - version = "1.0.8"; - pyproject = true; - - disabled = pythonOlder "3.9"; - - src = fetchPypi { - pname = "sphinxcontrib_applehelp"; - inherit version; - hash = "sha256-xApPlvN3bEOT2TNBIFOWL6wrhPTJmnmCukLglXanBhk="; - }; - - nativeBuildInputs = [ - flit-core - ]; - - # Check is disabled due to circular dependency of sphinx - dontCheckRuntimeDeps = true; - doCheck = false; - - pythonNamespaces = [ "sphinxcontrib" ]; - - meta = with lib; { - description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books"; - homepage = "https://github.com/sphinx-doc/sphinxcontrib-applehelp"; - license = licenses.bsd2; - maintainers = [ ]; - }; -} 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 deleted file mode 100644 index 4d9dede..0000000 --- a/pkgs/by-name/py/python/python-modules/sphinxcontrib-devhelp/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder -, flit-core -}: - -buildPythonPackage rec { - pname = "sphinxcontrib-devhelp"; - version = "1.0.6"; - pyproject = true; - - disabled = pythonOlder "3.9"; - - src = fetchPypi { - pname = "sphinxcontrib_devhelp"; - inherit version; - hash = "sha256-mJP9P5BQa8S5e9uXfOuPvYI5ifQxayjDhB7BKFRDctM="; - }; - - nativeBuildInputs = [ - flit-core - ]; - - # Check is disabled due to circular dependency of sphinx - dontCheckRuntimeDeps = true; - doCheck = false; - - pythonNamespaces = [ "sphinxcontrib" ]; - - meta = with lib; { - description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document."; - homepage = "https://github.com/sphinx-doc/sphinxcontrib-devhelp"; - license = licenses.bsd2; - maintainers = [ ]; - }; -} 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 deleted file mode 100644 index 127c9a0..0000000 --- a/pkgs/by-name/py/python/python-modules/sphinxcontrib-htmlhelp/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder -, flit-core -}: - -buildPythonPackage rec { - pname = "sphinxcontrib-htmlhelp"; - version = "2.0.5"; - pyproject = true; - - disabled = pythonOlder "3.9"; - - src = fetchPypi { - pname = "sphinxcontrib_htmlhelp"; - inherit version; - hash = "sha256-Dch2N9XeU91e7DpqAXU7HM+ZSUvXVqr+zXS0+p5ykBU="; - }; - - nativeBuildInputs = [ - flit-core - ]; - - # Check is disabled due to circular dependency of sphinx - dontCheckRuntimeDeps = true; - doCheck = false; - - pythonNamespaces = [ "sphinxcontrib" ]; - - meta = with lib; { - description = "Sphinx extension which renders HTML help files"; - homepage = "https://github.com/sphinx-doc/sphinxcontrib-htmlhelp"; - license = licenses.bsd2; - maintainers = [ ]; - }; -} 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 deleted file mode 100644 index 4e633fb..0000000 --- a/pkgs/by-name/py/python/python-modules/sphinxcontrib-jsmath/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, isPy27 -}: - -buildPythonPackage rec { - pname = "sphinxcontrib-jsmath"; - version = "1.0.1"; - format = "setuptools"; - disabled = isPy27; - - src = fetchPypi { - inherit pname version; - sha256 = "a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"; - }; - - # Check is disabled due to circular dependency of sphinx - doCheck = false; - - pythonNamespaces = [ "sphinxcontrib" ]; - - meta = with lib; { - description = "sphinxcontrib-jsmath is a sphinx extension which renders display math in HTML via JavaScript."; - homepage = "https://github.com/sphinx-doc/sphinxcontrib-jsmath"; - license = licenses.bsd0; - maintainers = [ ]; - }; -} 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 deleted file mode 100644 index 2dfc743..0000000 --- a/pkgs/by-name/py/python/python-modules/sphinxcontrib-log-cabinet/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib, buildPythonPackage, fetchFromGitHub, sphinx }: - -buildPythonPackage rec { - pname = "sphinxcontrib-log-cabinet"; - version = "1.0.1"; - format = "setuptools"; - - src = fetchFromGitHub { - owner = "davidism"; - repo = "sphinxcontrib-log-cabinet"; - rev = "refs/tags/${version}"; - sha256 = "03cxspgqsap9q74sqkdx6r6b4gs4hq6dpvx4j58hm50yfhs06wn1"; - }; - - propagatedBuildInputs = [ sphinx ]; - - pythonImportsCheck = [ "sphinxcontrib.log_cabinet" ]; - - doCheck = false; # no tests - - pythonNamespaces = [ "sphinxcontrib" ]; - - meta = with lib; { - homepage = "https://github.com/davidism/sphinxcontrib-log-cabinet"; - description = "Sphinx extension to organize changelogs"; - license = licenses.mit; - maintainers = with maintainers; [ kaction ]; - }; -} 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 deleted file mode 100644 index 8293985..0000000 --- a/pkgs/by-name/py/python/python-modules/sphinxcontrib-qthelp/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder -, flit-core -}: - -buildPythonPackage rec { - pname = "sphinxcontrib-qthelp"; - version = "1.0.7"; - pyproject = true; - - disabled = pythonOlder "3.9"; - - src = fetchPypi { - pname = "sphinxcontrib_qthelp"; - inherit version; - hash = "sha256-BT3tw4gjqApyCagIYLFrci6eAgnjL+qYyQ5OZiRYjtY="; - }; - - nativeBuildInputs = [ - flit-core - ]; - - # Check is disabled due to circular dependency of sphinx - dontCheckRuntimeDeps = true; - doCheck = false; - - pythonNamespaces = [ "sphinxcontrib" ]; - - meta = with lib; { - description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document."; - homepage = "https://github.com/sphinx-doc/sphinxcontrib-qthelp"; - license = licenses.bsd2; - maintainers = [ ]; - }; -} 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 deleted file mode 100644 index 92bbbe3..0000000 --- a/pkgs/by-name/py/python/python-modules/sphinxcontrib-serializinghtml/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder -, flit-core -}: - -buildPythonPackage rec { - pname = "sphinxcontrib-serializinghtml"; - version = "1.1.10"; - pyproject = true; - - disabled = pythonOlder "3.9"; - - src = fetchPypi { - pname = "sphinxcontrib_serializinghtml"; - inherit version; - hash = "sha256-k/P13EWLkbGS/hDDl+Mk8mLPFj158ygsFY6ENqLEUR8="; - }; - - nativeBuildInputs = [ - flit-core - ]; - - # Check is disabled due to circular dependency of sphinx - dontCheckRuntimeDeps = true; - doCheck = false; - - pythonNamespaces = [ "sphinxcontrib" ]; - - meta = with lib; { - description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)."; - homepage = "https://github.com/sphinx-doc/sphinxcontrib-serializinghtml"; - license = licenses.bsd2; - maintainers = [ ]; - }; -} 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 deleted file mode 100644 index 7371d8a..0000000 --- a/pkgs/by-name/py/python/python-modules/sphinxcontrib-websupport/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, flit-core -, jinja2 -, sphinxcontrib-serializinghtml -}: - -buildPythonPackage rec { - pname = "sphinxcontrib-websupport"; - version = "1.2.7"; - format = "pyproject"; - - src = fetchPypi { - pname = "sphinxcontrib_websupport"; - inherit version; - hash = "sha256-4yKALr/V/nk2jv2GSuuHsGNWauYZEdzLJxTiikXtdWE="; - }; - - nativeBuildInputs = [ - flit-core - ]; - - propagatedBuildInputs = [ - jinja2 - sphinxcontrib-serializinghtml - ]; - - # circular dependency on sphinx - dontCheckRuntimeDeps = true; - doCheck = false; - - pythonNamespaces = [ "sphinxcontrib" ]; - - meta = { - description = "Sphinx API for Web Apps"; - homepage = "http://sphinx-doc.org/"; - license = lib.licenses.bsd2; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/testpath/default.nix b/pkgs/by-name/py/python/python-modules/testpath/default.nix deleted file mode 100644 index eb66bea..0000000 --- a/pkgs/by-name/py/python/python-modules/testpath/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ lib -, stdenv -, buildPythonPackage -, fetchPypi -, flit-core -, pytestCheckHook -}: - -buildPythonPackage rec { - pname = "testpath"; - version = "0.6.0"; - format = "pyproject"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-LxuX5kQsAmgevgG9hPUxAop8rqGvOCUAD1I0XDAoXg8="; - }; - - nativeBuildInputs = [ - flit-core - ]; - - nativeCheckInputs = [ - pytestCheckHook - ]; - - # exe are only required when testpath is used on windows - # https://github.com/jupyter/testpath/blob/de8ca59539eb23b9781e55848b7d2646c8c61df9/testpath/commands.py#L128 - preBuild = lib.optionalString (!stdenv.hostPlatform.isWindows) '' - rm testpath/cli-32.exe testpath/cli-64.exe - ''; - - preCheck = lib.optionalString stdenv.isDarwin '' - # Work around https://github.com/jupyter/testpath/issues/24 - export TMPDIR="/tmp" - ''; - - meta = with lib; { - description = "Test utilities for code working with files and commands"; - license = licenses.mit; - homepage = "https://github.com/jupyter/testpath"; - }; - -} diff --git a/pkgs/by-name/py/python/python-modules/toml/default.nix b/pkgs/by-name/py/python/python-modules/toml/default.nix deleted file mode 100644 index aa12d29..0000000 --- a/pkgs/by-name/py/python/python-modules/toml/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib, buildPythonPackage, fetchPypi }: - -buildPythonPackage rec { - pname = "toml"; - version = "0.10.2"; - format = "setuptools"; - - src = fetchPypi { - inherit pname version; - sha256 = "b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"; - }; - - # This package has a test script (built for Travis) that involves a) - # looking in the home directory for a binary test runner and b) using - # git to download a test suite. - doCheck = false; - - meta = with lib; { - description = "a Python library for parsing and creating TOML"; - homepage = "https://github.com/uiri/toml"; - license = licenses.mit; - maintainers = with maintainers; [ twey ]; - }; -} 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 deleted file mode 100644 index 920063f..0000000 --- a/pkgs/by-name/py/python/python-modules/tomli-w/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ lib -, buildPythonPackage -, callPackage -, fetchFromGitHub -, flit-core -}: - -buildPythonPackage rec { - pname = "tomli-w"; - version = "1.0.0"; - format = "pyproject"; - - src = fetchFromGitHub { - owner = "hukkin"; - repo = pname; - rev = version; - hash = "sha256-wZSC5uOi1JUeKXIli1I8/Vo0wGsv9Q1I84dAMQQP95w="; - }; - - nativeBuildInputs = [ flit-core ]; - - pythonImportsCheck = [ "tomli_w" ]; - - meta = with lib; { - description = "A write-only counterpart to Tomli, which is a read-only TOML parser"; - homepage = "https://github.com/hukkin/tomli-w"; - license = licenses.mit; - maintainers = with maintainers; [ lovesegfault ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/tomli/default.nix b/pkgs/by-name/py/python/python-modules/tomli/default.nix deleted file mode 100644 index e1708a7..0000000 --- a/pkgs/by-name/py/python/python-modules/tomli/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ lib -, buildPythonPackage -, callPackage -, fetchFromGitHub -, flit-core -, unittestCheckHook - -# important downstream dependencies -# for passthru.tests -# , flit -# , black -# , mypy -# , setuptools-scm -}: - -buildPythonPackage rec { - pname = "tomli"; - version = "2.0.1"; - format = "pyproject"; - - src = fetchFromGitHub { - owner = "hukkin"; - repo = pname; - rev = version; - hash = "sha256-v0ZMrHIIaGeORwD4JiBeLthmnKZODK5odZVL0SY4etA="; - }; - - nativeBuildInputs = [ flit-core ]; - - nativeCheckInputs = [ unittestCheckHook ]; - - pythonImportsCheck = [ "tomli" ]; - - # passthru.tests = { - # # test downstream dependencies - # inherit flit black mypy setuptools-scm; - # }; - - meta = with lib; { - description = "A Python library for parsing TOML, fully compatible with TOML v1.0.0"; - homepage = "https://github.com/hukkin/tomli"; - license = licenses.mit; - maintainers = with maintainers; [ veehaitch ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/tornado/4.nix b/pkgs/by-name/py/python/python-modules/tornado/4.nix deleted file mode 100644 index 7476a22..0000000 --- a/pkgs/by-name/py/python/python-modules/tornado/4.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ lib -, unittestCheckHook -, buildPythonPackage -, fetchPypi -, fetchpatch -, isPy27 -, pythonAtLeast -}: - -buildPythonPackage rec { - pname = "tornado"; - version = "4.5.3"; - disabled = isPy27 || pythonAtLeast "3.10"; - - src = fetchPypi { - inherit pname version; - sha256 = "02jzd23l4r6fswmwxaica9ldlyc2p6q8dk6dyff7j58fmdzf853d"; - }; - - patches = [ - (fetchpatch { - name = "CVE-2023-28370.patch"; - url = "https://github.com/tornadoweb/tornado/commit/32ad07c54e607839273b4e1819c347f5c8976b2f.patch"; - hash = "sha256-2dpPHkNThOaZD8T2g1vb/I5WYZ/vy/t690539uprJyc="; - }) - ]; - - nativeCheckInputs = [ unittestCheckHook ]; - - # We specify the name of the test files to prevent - # https://github.com/NixOS/nixpkgs/issues/14634 - unittestFlagsArray = [ "*_test.py" ]; - - __darwinAllowLocalNetworking = true; - - meta = { - description = "A web framework and asynchronous networking library"; - homepage = "https://www.tornadoweb.org/"; - license = lib.licenses.asl20; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/tornado/5.nix b/pkgs/by-name/py/python/python-modules/tornado/5.nix deleted file mode 100644 index 8ba3a8c..0000000 --- a/pkgs/by-name/py/python/python-modules/tornado/5.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ lib -, unittestCheckHook -, buildPythonPackage -, fetchPypi -, fetchpatch -, isPy27 -, pythonAtLeast -}: - -buildPythonPackage rec { - pname = "tornado"; - version = "5.1.1"; - disabled = isPy27 || pythonAtLeast "3.10"; - - src = fetchPypi { - inherit pname version; - sha256 = "4e5158d97583502a7e2739951553cbd88a72076f152b4b11b64b9a10c4c49409"; - }; - - patches = [ - (fetchpatch { - name = "CVE-2023-28370.patch"; - url = "https://github.com/tornadoweb/tornado/commit/32ad07c54e607839273b4e1819c347f5c8976b2f.patch"; - hash = "sha256-2dpPHkNThOaZD8T2g1vb/I5WYZ/vy/t690539uprJyc="; - }) - ]; - - nativeCheckInputs = [ unittestCheckHook ]; - - # We specify the name of the test files to prevent - # https://github.com/NixOS/nixpkgs/issues/14634 - unittestFlagsArray = [ "*_test.py" ]; - - __darwinAllowLocalNetworking = true; - - meta = { - description = "A web framework and asynchronous networking library"; - homepage = "https://www.tornadoweb.org/"; - license = lib.licenses.asl20; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/tornado/default.nix b/pkgs/by-name/py/python/python-modules/tornado/default.nix deleted file mode 100644 index 75187d1..0000000 --- a/pkgs/by-name/py/python/python-modules/tornado/default.nix +++ /dev/null @@ -1,74 +0,0 @@ -{ lib -, python -, buildPythonPackage -, fetchFromGitHub -, pytestCheckHook - -# for passthru.tests -, distributed -, jupyter-server -, jupyterlab -, matplotlib -, mitmproxy -, pytest-tornado -, pytest-tornasync -, pyzmq -, sockjs-tornado -, urllib3 -}: - -buildPythonPackage rec { - pname = "tornado"; - version = "6.3.3"; - format = "setuptools"; - - src = fetchFromGitHub { - owner = "tornadoweb"; - repo = "tornado"; - rev = "v${version}"; - hash = "sha256-l9Ce/c2wDSmsySr9yXu5Fl/+63QkQay46aDSUTJmetA="; - }; - - nativeCheckInputs = [ - pytestCheckHook - ]; - - disabledTestPaths = [ - # additional tests that have extra dependencies, run slowly, or produce more output than a simple pass/fail - # https://github.com/tornadoweb/tornado/blob/v6.2.0/maint/test/README - "maint/test" - - # AttributeError: 'TestIOStreamWebMixin' object has no attribute 'io_loop' - "tornado/test/iostream_test.py" - ]; - - disabledTests = [ - # Exception: did not get expected log message - "test_unix_socket_bad_request" - ]; - - pythonImportsCheck = [ "tornado" ]; - - __darwinAllowLocalNetworking = true; - - passthru.tests = { - inherit - distributed - jupyter-server - jupyterlab - matplotlib - mitmproxy - pytest-tornado - pytest-tornasync - pyzmq - sockjs-tornado - urllib3; - }; - - meta = with lib; { - description = "A web framework and asynchronous networking library"; - homepage = "https://www.tornadoweb.org/"; - license = licenses.asl20; - maintainers = with maintainers; [ ]; - }; -} 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 deleted file mode 100644 index 6482917..0000000 --- a/pkgs/by-name/py/python/python-modules/trove-classifiers/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, calver -, pytestCheckHook -, pythonOlder -, setuptools -}: - -let - self = buildPythonPackage rec { - pname = "trove-classifiers"; - version = "2024.3.3"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-337f+cZ/+GtzNiiZgzCxgOgdElseCWU22DrA/XlnP9w="; - }; - - postPatch = '' - substituteInPlace setup.py \ - --replace '"calver"' "" - ''; - - nativeBuildInputs = [ - calver - setuptools - ]; - - doCheck = false; # avoid infinite recursion with hatchling - - nativeCheckInputs = [ - pytestCheckHook - ]; - - pythonImportsCheck = [ "trove_classifiers" ]; - - passthru.tests.trove-classifiers = self.overridePythonAttrs { doCheck = true; }; - - meta = { - description = "Canonical source for classifiers on PyPI"; - homepage = "https://github.com/pypa/trove-classifiers"; - changelog = "https://github.com/pypa/trove-classifiers/releases/tag/${version}"; - license = lib.licenses.asl20; - maintainers = with lib.maintainers; [ dotlambda ]; - }; - }; -in - 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 deleted file mode 100644 index 4648dd7..0000000 --- a/pkgs/by-name/py/python/python-modules/trustme/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ lib -, buildPythonPackage -, cryptography -, fetchPypi -, idna -, pyopenssl -, pytestCheckHook -, pythonOlder -, service-identity -}: - -buildPythonPackage rec { - pname = "trustme"; - version = "1.1.0"; - format = "setuptools"; - - disabled = pythonOlder "3.8"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-U3Wtf7QnB0vslWWS4NTuKkz02miTThukvPQhcSa8ReY="; - }; - - propagatedBuildInputs = [ - cryptography - idna - ]; - - nativeCheckInputs = [ - pyopenssl - pytestCheckHook - service-identity - ]; - - # Some of the tests use localhost networking. - __darwinAllowLocalNetworking = true; - - 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 ]; - 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 deleted file mode 100644 index eb1c9c5..0000000 --- a/pkgs/by-name/py/python/python-modules/typing-extensions/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, flit-core -, pythonOlder -}: - -buildPythonPackage rec { - pname = "typing-extensions"; - version = "4.10.0"; - pyproject = true; - - disabled = pythonOlder "3.8"; - - src = fetchPypi { - pname = "typing_extensions"; - inherit version; - hash = "sha256-sKvXyJ6PuW+Y2xjYYQb/HZCraSAE63Rs9u2iaC+Rs8s="; - }; - - 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" - ]; - - meta = with lib; { - description = "Backported and Experimental Type Hints for Python"; - changelog = "https://github.com/python/typing_extensions/blob/${version}/CHANGELOG.md"; - homepage = "https://github.com/python/typing"; - license = licenses.psfl; - maintainers = with maintainers; [ pmiddend ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/urllib3/default.nix b/pkgs/by-name/py/python/python-modules/urllib3/default.nix deleted file mode 100644 index 70d8750..0000000 --- a/pkgs/by-name/py/python/python-modules/urllib3/default.nix +++ /dev/null @@ -1,88 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, isPyPy - -# build-system -, hatchling - -# optional-dependencies -, brotli -, brotlicffi -, pysocks - -# tests -, backports-zoneinfo -, pytestCheckHook -, pytest-timeout -, pythonOlder -, tornado -, trustme -}: - -let self = buildPythonPackage rec { - pname = "urllib3"; - version = "2.2.1"; - pyproject = true; - - 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 ]; - }; -}; -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 deleted file mode 100644 index 44ca0ff..0000000 --- a/pkgs/by-name/py/python/python-modules/virtualenv/default.nix +++ /dev/null @@ -1,97 +0,0 @@ -{ 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 { - pname = "virtualenv"; - version = "20.25.1"; - format = "pyproject"; - - disabled = pythonOlder "3.7"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-4I4T7NynoL1TeY81bVgxQ0r6Wwe5Pwq98Hl7egb/4Zc="; - }; - - nativeBuildInputs = [ - hatch-vcs - hatchling - ]; - - propagatedBuildInputs = [ - distlib - filelock - platformdirs - ] ++ lib.optionals (pythonOlder "3.8") [ - importlib-metadata - ]; - - nativeCheckInputs = [ - cython - flaky - pytest-freezegun - pytest-mock - pytest-timeout - pytestCheckHook - ] ++ lib.optionals (!isPyPy) [ - time-machine - ]; - - preCheck = '' - export HOME=$(mktemp -d) - ''; - - disabledTestPaths = [ - # Ignore tests which require network access - "tests/unit/create/test_creator.py" - "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" - ]; - - pythonImportsCheck = [ - "virtualenv" - ]; - - meta = with lib; { - description = "A tool to create isolated Python environments"; - mainProgram = "virtualenv"; - homepage = "http://www.virtualenv.org"; - changelog = "https://github.com/pypa/virtualenv/blob/${version}/docs/changelog.rst"; - license = licenses.mit; - maintainers = with maintainers; [ goibhniu ]; - }; -} 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 deleted file mode 100644 index 6a047c2..0000000 --- a/pkgs/by-name/py/python/python-modules/wcag-contrast-ratio/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, hypothesis -, pytestCheckHook -}: - -buildPythonPackage rec { - pname = "wcag-contrast-ratio"; - version = "0.9"; - format = "setuptools"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-aRkrjlwKfQ3F/xGH7rPjmBQWM6S95RxpyH9Y/oftNhw="; - }; - - nativeCheckInputs = [ - hypothesis - pytestCheckHook - ]; - - pytestFlagsArray = [ - "test.py" - ]; - - pythonImportsCheck = [ "wcag_contrast_ratio" ]; - - meta = with lib; { - description = "Library for computing contrast ratios, as required by WCAG 2.0"; - homepage = "https://github.com/gsnedders/wcag-contrast-ratio"; - license = licenses.mit; - maintainers = with maintainers; [ ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/webencodings/default.nix b/pkgs/by-name/py/python/python-modules/webencodings/default.nix deleted file mode 100644 index 8a80588..0000000 --- a/pkgs/by-name/py/python/python-modules/webencodings/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ buildPythonPackage -, lib -, fetchPypi -, pytest -}: - -buildPythonPackage rec { - pname = "webencodings"; - version = "0.5.1"; - format = "setuptools"; - - src = fetchPypi { - inherit pname version; - sha256 = "b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"; - }; - - nativeCheckInputs = [ pytest ]; - - checkPhase = '' - py.test webencodings/tests.py - ''; - - meta = { - description = "Character encoding aliases for legacy web content"; - homepage = "https://github.com/SimonSapin/python-webencodings"; - license = lib.licenses.bsd3; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/wheel/0001-tests-Rename-a-a-o-_-.py-_-.py.patch b/pkgs/by-name/py/python/python-modules/wheel/0001-tests-Rename-a-a-o-_-.py-_-.py.patch deleted file mode 100644 index 8e70f00..0000000 --- a/pkgs/by-name/py/python/python-modules/wheel/0001-tests-Rename-a-a-o-_-.py-_-.py.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 5879a4bbc34d1eb25e160b15b2f5a4f10eac6bd2 Mon Sep 17 00:00:00 2001 -From: toonn -Date: Mon, 13 Sep 2021 18:07:26 +0200 -Subject: [PATCH] =?UTF-8?q?tests:=20Rename=20a=CC=8Aa=CC=88o=CC=88=5F?= - =?UTF-8?q?=E6=97=A5=E6=9C=AC=E8=AA=9E.py=20=3D>=20=C3=A6=C9=90=C3=B8=5F?= - =?UTF-8?q?=E6=97=A5=E6=9C=AC=E5=83=B9.py?= -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -`åäö_日本語.py` normalizes differently in NFC and NFD normal forms. This -means a hash generated for the source directory can differ depending on -whether or not the filesystem is normalizing and which normal form it -uses. - -By renaming the file to `æɐø_日本價.py` we avoid this issue by using a -name that has the same encoding in each normal form. ---- - tests/test_bdist_wheel.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/test_bdist_wheel.py b/tests/test_bdist_wheel.py -index 5a6db16..42cf121 100644 ---- a/tests/test_bdist_wheel.py -+++ b/tests/test_bdist_wheel.py -@@ -69,7 +69,7 @@ def test_unicode_record(wheel_paths): - with ZipFile(path) as zf: - record = zf.read("unicode.dist-0.1.dist-info/RECORD") - -- assert "åäö_日本語.py".encode() in record -+ assert "æɐø_日本價.py".encode() in record - - - UTF8_PKG_INFO = """\ diff --git a/pkgs/by-name/py/python/python-modules/wheel/default.nix b/pkgs/by-name/py/python/python-modules/wheel/default.nix deleted file mode 100644 index 14339d2..0000000 --- a/pkgs/by-name/py/python/python-modules/wheel/default.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ lib -, buildPythonPackage -, fetchFromGitHub -, flit-core -}: - -buildPythonPackage rec { - pname = "wheel"; - version = "0.42.0"; - format = "pyproject"; - - src = fetchFromGitHub { - owner = "pypa"; - repo = pname; - rev = "refs/tags/${version}"; - hash = "sha256-WML3/gAK1R9DEeRVZWeO0VRFuNVKP52i5I5mYV6vQcI="; - postFetch = '' - cd $out - mv tests/testdata/unicode.dist/unicodedist/åäö_日本語.py \ - tests/testdata/unicode.dist/unicodedist/æɐø_日本價.py - patch -p1 < ${./0001-tests-Rename-a-a-o-_-.py-_-.py.patch} - ''; - }; - - nativeBuildInputs = [ - flit-core - ]; - - # No tests in archive - doCheck = false; - - pythonImportsCheck = [ "wheel" ]; - - meta = with lib; { - homepage = "https://github.com/pypa/wheel"; - description = "A built-package format for Python"; - mainProgram = "wheel"; - longDescription = '' - This library is the reference implementation of the Python wheel packaging standard, - as defined in PEP 427. - - It has two different roles: - - - A setuptools extension for building wheels that provides the bdist_wheel setuptools command - - A command line tool for working with wheel files - - It should be noted that wheel is not intended to be used as a library, - and as such there is no stable, public API. - ''; - license = with licenses; [ mit ]; - maintainers = with maintainers; [ siriobalmelli ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/xmlschema/default.nix b/pkgs/by-name/py/python/python-modules/xmlschema/default.nix deleted file mode 100644 index 61bdd69..0000000 --- a/pkgs/by-name/py/python/python-modules/xmlschema/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ - lib, - buildPythonPackage, - elementpath, - fetchFromGitHub, - jinja2, - lxml, - pytestCheckHook, - pythonOlder, - setuptools, -}: - -buildPythonPackage rec { - pname = "xmlschema"; - version = "3.3.1"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - src = fetchFromGitHub { - owner = "sissaschool"; - repo = "xmlschema"; - rev = "refs/tags/v${version}"; - hash = "sha256-Sy70OQvKx0H8vxRFTEkg+QV9eVij5C9dlAwJ2HTFOi8="; - }; - - build-system = [ setuptools ]; - - dependencies = [ elementpath ]; - - nativeCheckInputs = [ - jinja2 - lxml - pytestCheckHook - ]; - - pythonImportsCheck = [ "xmlschema" ]; - - meta = with lib; { - description = "XML Schema validator and data conversion library for Python"; - homepage = "https://github.com/sissaschool/xmlschema"; - changelog = "https://github.com/sissaschool/xmlschema/blob/${src.rev}/CHANGELOG.rst"; - license = licenses.mit; - maintainers = with maintainers; [ jonringer ]; - }; -} diff --git a/pkgs/by-name/py/python/python-modules/zipp/default.nix b/pkgs/by-name/py/python/python-modules/zipp/default.nix deleted file mode 100644 index 6555d17..0000000 --- a/pkgs/by-name/py/python/python-modules/zipp/default.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, func-timeout -, jaraco-itertools -, pythonOlder -, setuptools-scm -}: - -let zipp = buildPythonPackage rec { - pname = "zipp"; - version = "3.17.0"; - format = "pyproject"; - - disabled = pythonOlder "3.7"; - - 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; [ ]; - }; -}; 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 deleted file mode 100644 index 93cfc74..0000000 --- a/pkgs/by-name/py/python/python-modules/zope-event/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -}: - -buildPythonPackage rec { - pname = "zope.event"; - version = "4.6"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-gdmIEwRvyGzEE242mP7mKKMoL5wyDbGGWMIXSSNfzoA="; - }; - - meta = with lib; { - description = "An event publishing system"; - homepage = "https://pypi.org/project/zope.event/"; - license = licenses.zpl20; - maintainers = with maintainers; [ goibhniu ]; - }; - -} 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 deleted file mode 100644 index f834301..0000000 --- a/pkgs/by-name/py/python/python-modules/zope-interface/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib -, buildPythonPackage -, fetchPypi -, zope-event -}: - -buildPythonPackage rec { - pname = "zope.interface"; - version = "5.5.2"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-v+4fP/YhQ4GUmeNI9bin86oCWfmspeDdrnOR0Fnc5nE="; - }; - - propagatedBuildInputs = [ zope-event ]; - - doCheck = false; # Circular deps. - - meta = with lib; { - description = "Zope.Interface"; - homepage = "https://zope.org/Products/ZopeInterface"; - license = licenses.zpl20; - maintainers = [ maintainers.goibhniu ]; - }; -} diff --git a/pkgs/by-name/py/python/python-packages-base.nix b/pkgs/by-name/py/python/python-packages-base.nix deleted file mode 100644 index e2bd6cd..0000000 --- a/pkgs/by-name/py/python/python-packages-base.nix +++ /dev/null @@ -1,101 +0,0 @@ -{ pkgs -, stdenv -, lib -, python -}: - -self: - -let - inherit (self) callPackage; - - namePrefix = python.libPrefix + "-"; - - # 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; - } - 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. - })); - - # Check whether a derivation provides a Python module. - 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)); - - # Create a PYTHONPATH from a list of derivations. This function recurses into the items to find derivations - # providing Python modules. - makePythonPath = drvs: lib.makeSearchPath python.sitePackages (requiredPythonModules drvs); - - removePythonPrefix = lib.removePrefix namePrefix; - - # Convert derivation to a Python module. - toPythonModule = drv: - drv.overrideAttrs( oldAttrs: { - # Use passthru in order to prevent rebuilds when possible. - passthru = (oldAttrs.passthru or {})// { - pythonModule = python; - pythonPath = [ ]; # Deprecated, for compatibility. - requiredPythonModules = requiredPythonModules drv.propagatedBuildInputs; - }; - }); - - # Convert a Python library to an application. - 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`. - name = removePythonPrefix oldAttrs.name; - pythonModule = false; - }; - }); - - 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 { - inherit lib pkgs stdenv; - inherit (python.passthru) isPy27 isPy37 isPy38 isPy39 isPy310 isPy311 isPy3k isPyPy pythonAtLeast pythonOlder; - inherit buildPythonPackage buildPythonApplication; - inherit hasPythonModule requiredPythonModules makePythonPath disabled disabledIf; - inherit toPythonModule toPythonApplication; - - python = toPythonModule python; - # Dont take pythonPackages from "global" pkgs scope to avoid mixing python versions - pythonPackages = self; -} diff --git a/pkgs/by-name/py/python/python-packages.nix b/pkgs/by-name/py/python/python-packages.nix deleted file mode 100644 index 286304e..0000000 --- a/pkgs/by-name/py/python/python-packages.nix +++ /dev/null @@ -1,17365 +0,0 @@ -# This file contains the Python packages set. -# Each attribute is a Python library or a helper function. -# Expressions for Python libraries are supposed to be in `pkgs/development/python-modules//default.nix`. -# Python packages that do not need to be available for each interpreter version do not belong in this packages set. -# Examples are Python-based cli tools. -# -# For more details, please see the Python section in the Nixpkgs manual. - -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; - }); - }; - - setuptools = callPackage ./python-modules/setuptools { }; - -# a2wsgi = callPackage ./python-modules/a2wsgi { }; - -# aadict = callPackage ./python-modules/aadict { }; - -# aafigure = callPackage ./python-modules/aafigure { }; - -# aardwolf = callPackage ./python-modules/aardwolf { }; - -# abjad = callPackage ./python-modules/abjad { }; - -# about-time = callPackage ./python-modules/about-time { }; - -# absl-py = callPackage ./python-modules/absl-py { }; - -# accessible-pygments = callPackage ./python-modules/accessible-pygments { }; - -# accelerate = callPackage ./python-modules/accelerate { }; - -# accuweather = callPackage ./python-modules/accuweather { }; - -# accupy = callPackage ./python-modules/accupy { }; - -# acme = callPackage ./python-modules/acme { }; - -# acme-tiny = callPackage ./python-modules/acme-tiny { }; - -# acoustics = callPackage ./python-modules/acoustics { }; - -# acquire = callPackage ./python-modules/acquire { }; - -# actdiag = callPackage ./python-modules/actdiag { }; - -# acunetix = callPackage ./python-modules/acunetix { }; - -# adafruit-io = callPackage ./python-modules/adafruit-io { }; - -# adafruit-platformdetect = callPackage ./python-modules/adafruit-platformdetect { }; - -# adafruit-pureio = callPackage ./python-modules/adafruit-pureio { }; - -# adal = callPackage ./python-modules/adal { }; - -# adax = callPackage ./python-modules/adax { }; - -# adax-local = callPackage ./python-modules/adax-local { }; - -# adb-enhanced = callPackage ./python-modules/adb-enhanced { }; - -# adb-homeassistant = callPackage ./python-modules/adb-homeassistant { }; - -# adb-shell = callPackage ./python-modules/adb-shell { }; - -# adblock = callPackage ./python-modules/adblock { -# inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation Security; -# }; - -# add-trailing-comma = callPackage ./python-modules/add-trailing-comma { }; - -# addict = callPackage ./python-modules/addict { }; - -# adext = callPackage ./python-modules/adext { }; - -# adguardhome = callPackage ./python-modules/adguardhome { }; - -# adjusttext = callPackage ./python-modules/adjusttext { }; - -# adlfs = callPackage ./python-modules/adlfs { }; - -# advantage-air = callPackage ./python-modules/advantage-air { }; - -# advocate = callPackage ./python-modules/advocate { }; - -# aemet-opendata = callPackage ./python-modules/aemet-opendata { }; - -# aenum = callPackage ./python-modules/aenum { }; - -# aeppl = callPackage ./python-modules/aeppl { }; - -# aesara = callPackage ./python-modules/aesara { }; - -# aesedb = callPackage ./python-modules/aesedb { }; - -# aetcd = callPackage ./python-modules/aetcd { }; - -# afdko = callPackage ./python-modules/afdko { }; - -# affine = callPackage ./python-modules/affine { }; - -# afsapi = callPackage ./python-modules/afsapi { }; - -# agate = callPackage ./python-modules/agate { }; - -# agate-dbf = callPackage ./python-modules/agate-dbf { }; - -# agate-excel = callPackage ./python-modules/agate-excel { }; - -# agate-sql = callPackage ./python-modules/agate-sql { }; - -# agent-py = callPackage ./python-modules/agent-py { }; - -# ago = callPackage ./python-modules/ago { }; - -# aggdraw = callPackage ./python-modules/aggdraw { }; - -# aigpy = callPackage ./python-modules/aigpy { }; - -# aio-geojson-client = callPackage ./python-modules/aio-geojson-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-volcano = callPackage ./python-modules/aio-geojson-geonetnz-volcano { }; - -# 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-georss-client = callPackage ./python-modules/aio-georss-client { }; - -# aio-georss-gdacs = callPackage ./python-modules/aio-georss-gdacs { }; - -# aio-pika = callPackage ./python-modules/aio-pika { }; - -# aioairzone = callPackage ./python-modules/aioairzone { }; - -# aioairzone-cloud = callPackage ./python-modules/aioairzone-cloud { }; - -# aioairq = callPackage ./python-modules/aioairq { }; - -# aioaladdinconnect = callPackage ./python-modules/aioaladdinconnect { }; - -# aioambient = callPackage ./python-modules/aioambient { }; - -# aioapcaccess = callPackage ./python-modules/aioapcaccess { }; - -# aioapns = callPackage ./python-modules/aioapns { }; - -# aiocron = callPackage ./python-modules/aiocron { }; - -# ailment = callPackage ./python-modules/ailment { }; - -# aioamqp = callPackage ./python-modules/aioamqp { }; - -# aioaseko = callPackage ./python-modules/aioaseko { }; - -# aioasuswrt = callPackage ./python-modules/aioasuswrt { }; - -# aioautomower = callPackage ./python-modules/aioautomower { }; - -# aioazuredevops = callPackage ./python-modules/aioazuredevops { }; - -# aiobafi6 = callPackage ./python-modules/aiobafi6 { }; - -# aioboto3 = callPackage ./python-modules/aioboto3 { }; - -# aioblescan = callPackage ./python-modules/aioblescan { }; - -# aiocache = callPackage ./python-modules/aiocache { }; - -# aiocoap = callPackage ./python-modules/aiocoap { }; - -# aiocomelit = callPackage ./python-modules/aiocomelit { }; - -# aioconsole = callPackage ./python-modules/aioconsole { }; - -# aiocontextvars = callPackage ./python-modules/aiocontextvars { }; - -# aiocsv = callPackage ./python-modules/aiocsv { }; - -# aiocurrencylayer = callPackage ./python-modules/aiocurrencylayer { }; - -# aiodhcpwatcher = callPackage ./python-modules/aiodhcpwatcher { }; - -# aiodiscover = callPackage ./python-modules/aiodiscover { }; - -# aiodns = callPackage ./python-modules/aiodns { }; - -# aiodocker = callPackage ./python-modules/aiodocker { }; - -# aioeafm = callPackage ./python-modules/aioeafm { }; - -# aioeagle = callPackage ./python-modules/aioeagle { }; - -# aioecowitt = callPackage ./python-modules/aioecowitt { }; - -# aioelectricitymaps = callPackage ./python-modules/aioelectricitymaps { }; - -# aioemonitor = callPackage ./python-modules/aioemonitor { }; - -# aioesphomeapi = callPackage ./python-modules/aioesphomeapi { }; - -# aioextensions = callPackage ./python-modules/aioextensions { }; - -# aiofile = callPackage ./python-modules/aiofile { }; - -# aiofiles = callPackage ./python-modules/aiofiles { }; - -# aioflo = callPackage ./python-modules/aioflo { }; - -# aioftp = callPackage ./python-modules/aioftp { }; - -# aioguardian = callPackage ./python-modules/aioguardian { }; - -# aiogithubapi = callPackage ./python-modules/aiogithubapi { }; - -# aiogram = callPackage ./python-modules/aiogram { }; - -# aiohappyeyeballs = callPackage ./python-modules/aiohappyeyeballs { }; - -# aioharmony = callPackage ./python-modules/aioharmony { }; - -# aiohomekit = callPackage ./python-modules/aiohomekit { }; - - aiohttp = callPackage ./python-modules/aiohttp { }; - -# aiohttp-apispec = callPackage ./python-modules/aiohttp-apispec { }; - -# aiohttp-basicauth = callPackage ./python-modules/aiohttp-basicauth { }; - -# aiohttp-client-cache = callPackage ./python-modules/aiohttp-client-cache { }; - -# aiohttp-cors = callPackage ./python-modules/aiohttp-cors { }; - -# aiohttp-fast-url-dispatcher = callPackage ./python-modules/aiohttp-fast-url-dispatcher { }; - -# aiohttp-jinja2 = callPackage ./python-modules/aiohttp-jinja2 { }; - -# aiohttp-oauthlib = callPackage ./python-modules/aiohttp-oauthlib { }; - -# aiohttp-openmetrics = callPackage ./python-modules/aiohttp-openmetrics { }; - -# aiohttp-remotes = callPackage ./python-modules/aiohttp-remotes { }; - -# aiohttp-retry = callPackage ./python-modules/aiohttp-retry { }; - -# aiohttp-socks = callPackage ./python-modules/aiohttp-socks { }; - -# aiohttp-swagger = callPackage ./python-modules/aiohttp-swagger { }; - -# aiohttp-wsgi = callPackage ./python-modules/aiohttp-wsgi { }; - -# aiohttp-zlib-ng = callPackage ./python-modules/aiohttp-zlib-ng { }; - -# aioitertools = callPackage ./python-modules/aioitertools { }; - -# aiobiketrax = callPackage ./python-modules/aiobiketrax { }; - -# aiobotocore = callPackage ./python-modules/aiobotocore { }; - -# aiobroadlink = callPackage ./python-modules/aiobroadlink { }; - -# aiohue = callPackage ./python-modules/aiohue { }; - -# aiohwenergy = callPackage ./python-modules/aiohwenergy { }; - -# aioimaplib = callPackage ./python-modules/aioimaplib { }; - -# aioinflux = callPackage ./python-modules/aioinflux { }; - -# aiojobs = callPackage ./python-modules/aiojobs { }; - -# aiokafka = callPackage ./python-modules/aiokafka { }; - -# aiokef = callPackage ./python-modules/aiokef { }; - -# aiolookin = callPackage ./python-modules/aiolookin { }; - -# aiolifx = callPackage ./python-modules/aiolifx { }; - -# aiolifx-connection = callPackage ./python-modules/aiolifx-connection { }; - -# aiolifx-effects = callPackage ./python-modules/aiolifx-effects { }; - -# aiolifx-themes = callPackage ./python-modules/aiolifx-themes { }; - -# aiolimiter = callPackage ./python-modules/aiolimiter { }; - -# aiolip = callPackage ./python-modules/aiolip { }; - -# aiolivisi = callPackage ./python-modules/aiolivisi { }; - -# aiolyric = callPackage ./python-modules/aiolyric { }; - -# aiomisc = callPackage ./python-modules/aiomisc { }; - -# aiomisc-pytest = callPackage ./python-modules/aiomisc-pytest { }; - -# aiomodernforms = callPackage ./python-modules/aiomodernforms { }; - -# aiomqtt = callPackage ./python-modules/aiomqtt { }; - -# aiomultiprocess = callPackage ./python-modules/aiomultiprocess { }; - -# aiomusiccast = callPackage ./python-modules/aiomusiccast { }; - -# aiomysensors = callPackage ./python-modules/aiomysensors { }; - -# aiomysql = callPackage ./python-modules/aiomysql { }; - -# aionanoleaf = callPackage ./python-modules/aionanoleaf { }; - -# aionotion = callPackage ./python-modules/aionotion { }; - -# aionut = callPackage ./python-modules/aionut { }; - -# aiooncue = callPackage ./python-modules/aiooncue { }; - -# aioopenexchangerates = callPackage ./python-modules/aioopenexchangerates { }; - -# aioopenssl = callPackage ./python-modules/aioopenssl { }; - -# aiooss2 = callPackage ./python-modules/aiooss2 { }; - -# aiooui = callPackage ./python-modules/aiooui { }; - -# aiopegelonline = callPackage ./python-modules/aiopegelonline { }; - -# aiopg = callPackage ./python-modules/aiopg { }; - -# aiopinboard = callPackage ./python-modules/aiopinboard { }; - -# aioprocessing = callPackage ./python-modules/aioprocessing { }; - -# aioprometheus = callPackage ./python-modules/aioprometheus { }; - -# aiopulse = callPackage ./python-modules/aiopulse { }; - -# aiopurpleair = callPackage ./python-modules/aiopurpleair { }; - -# aiopvapi = callPackage ./python-modules/aiopvapi { }; - -# aiopvpc = callPackage ./python-modules/aiopvpc { }; - -# aiopyarr = callPackage ./python-modules/aiopyarr { }; - -# aiopylgtv = callPackage ./python-modules/aiopylgtv { }; - -# aioqsw = callPackage ./python-modules/aioqsw { }; - -# aioquic = callPackage ./python-modules/aioquic { }; - -# aioraven = callPackage ./python-modules/aioraven { }; - -# aiorecollect = callPackage ./python-modules/aiorecollect { }; - -# aioredis = callPackage ./python-modules/aioredis { }; - -# aioresponses = callPackage ./python-modules/aioresponses { }; - -# aioridwell = callPackage ./python-modules/aioridwell { }; - -# aiormq = callPackage ./python-modules/aiormq { }; - -# aiorpcx = callPackage ./python-modules/aiorpcx { }; - -# aiortm = callPackage ./python-modules/aiortm { }; - -# aiortsp = callPackage ./python-modules/aiortsp { }; - -# aioruckus = callPackage ./python-modules/aioruckus { }; - -# aiorun = callPackage ./python-modules/aiorun { }; - -# aioruuvigateway = callPackage ./python-modules/aioruuvigateway { }; - -# aiorwlock = callPackage ./python-modules/aiorwlock { }; - -# aiosasl = callPackage ./python-modules/aiosasl { }; - -# aiosql = callPackage ./python-modules/aiosql { }; - -# aiosenz = callPackage ./python-modules/aiosenz { }; - -# aioserial = callPackage ./python-modules/aioserial { }; - -# aioshelly = callPackage ./python-modules/aioshelly { }; - -# aioshutil = callPackage ./python-modules/aioshutil { }; - -# aioskybell = callPackage ./python-modules/aioskybell { }; - -# aiosignal = callPackage ./python-modules/aiosignal { }; - -# aioslimproto = callPackage ./python-modules/aioslimproto { }; - -# aiosmb = callPackage ./python-modules/aiosmb { }; - -# aiosmtpd = callPackage ./python-modules/aiosmtpd { }; - -# aiosmtplib = callPackage ./python-modules/aiosmtplib { }; - -# aiosomecomfort = callPackage ./python-modules/aiosomecomfort { }; - -# aiosqlite = callPackage ./python-modules/aiosqlite { }; - -# aiosteamist = callPackage ./python-modules/aiosteamist { }; - -# aiostream = callPackage ./python-modules/aiostream { }; - -# aioswitcher = callPackage ./python-modules/aioswitcher { }; - -# aiosyncthing = callPackage ./python-modules/aiosyncthing { }; - -# aiotankerkoenig = callPackage ./python-modules/aiotankerkoenig { }; - -# aiotractive = callPackage ./python-modules/aiotractive { }; - -# aiounifi = callPackage ./python-modules/aiounifi { }; - -# aiounittest = callPackage ./python-modules/aiounittest { }; - -# aiovlc = callPackage ./python-modules/aiovlc { }; - -# aiovodafone = callPackage ./python-modules/aiovodafone { }; - -# aiowatttime = callPackage ./python-modules/aiowatttime { }; - -# aiowaqi = callPackage ./python-modules/aiowaqi { }; - -# aioweenect = callPackage ./python-modules/aioweenect { }; - -# aiowebostv = callPackage ./python-modules/aiowebostv { }; - -# aiowinreg = callPackage ./python-modules/aiowinreg { }; - -# aiowithings = callPackage ./python-modules/aiowithings { }; - -# aioxmpp = callPackage ./python-modules/aioxmpp { }; - -# aioymaps = callPackage ./python-modules/aioymaps { }; - -# aiozeroconf = callPackage ./python-modules/aiozeroconf { }; - -# airium = callPackage ./python-modules/airium { }; - -# airly = callPackage ./python-modules/airly { }; - -# airthings-ble = callPackage ./python-modules/airthings-ble { }; - -# airthings-cloud = callPackage ./python-modules/airthings-cloud { }; - -# airtouch4pyapi = callPackage ./python-modules/airtouch4pyapi { }; - -# airtouch5py = callPackage ./python-modules/airtouch5py { }; - -# ajpy = callPackage ./python-modules/ajpy { }; - -# ajsonrpc = callPackage ./python-modules/ajsonrpc { }; - - alabaster = callPackage ./python-modules/alabaster { }; - -# aladdin-connect = callPackage ./python-modules/aladdin-connect { }; - -# alarmdecoder = callPackage ./python-modules/alarmdecoder { }; - -# albumentations = callPackage ./python-modules/albumentations { }; - -# ale-py = callPackage ./python-modules/ale-py { }; - -# alectryon = callPackage ./python-modules/alectryon { }; - -# alembic = callPackage ./python-modules/alembic { }; - -# alexapy = callPackage ./python-modules/alexapy { }; - -# algebraic-data-types = callPackage ./python-modules/algebraic-data-types { }; - -# alive-progress = callPackage ./python-modules/alive-progress { }; - -# 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-core = callPackage ./python-modules/aliyun-python-sdk-core { }; - -# 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-kms = callPackage ./python-modules/aliyun-python-sdk-kms { }; - -# aliyun-python-sdk-sts = callPackage ./python-modules/aliyun-python-sdk-sts { }; - -# allpairspy = callPackage ./python-modules/allpairspy { }; - -# allure-behave = callPackage ./python-modules/allure-behave { }; - -# allure-python-commons = callPackage ./python-modules/allure-python-commons { }; - -# allure-python-commons-test = callPackage ./python-modules/allure-python-commons-test { }; - -# allure-pytest = callPackage ./python-modules/allure-pytest { }; - -# alpha-vantage = callPackage ./python-modules/alpha-vantage { }; - -# altair = callPackage ./python-modules/altair { }; - -# altgraph = callPackage ./python-modules/altgraph { }; - -# amarna = callPackage ./python-modules/amarna { }; - -# amazon-ion = callPackage ./python-modules/amazon-ion { }; - -# amazon-kclpy = callPackage ./python-modules/amazon-kclpy { }; - -# ambee = callPackage ./python-modules/ambee { }; - -# amberelectric = callPackage ./python-modules/amberelectric { }; - -# ambiclimate = callPackage ./python-modules/ambiclimate { }; - -# amcrest = callPackage ./python-modules/amcrest { }; - -# amiibo-py = callPackage ./python-modules/amiibo-py { }; - -# amply = callPackage ./python-modules/amply { }; - -# amqp = callPackage ./python-modules/amqp { }; - -# amqplib = callPackage ./python-modules/amqplib { }; - -# amqtt = callPackage ./python-modules/amqtt { }; - -# anchor-kr = callPackage ./python-modules/anchor-kr { }; - -# ancp-bids = callPackage ./python-modules/ancp-bids { }; - -# android-backup = callPackage ./python-modules/android-backup { }; - -# androidtv = callPackage ./python-modules/androidtv { }; - -# androidtvremote2 = callPackage ./python-modules/androidtvremote2 { }; - -# androguard = callPackage ./python-modules/androguard { }; - -# anel-pwrctrl-homeassistant = callPackage ./python-modules/anel-pwrctrl-homeassistant { }; - -# angr = callPackage ./python-modules/angr { }; - -# angrcli = callPackage ./python-modules/angrcli { -# inherit (pkgs) coreutils; -# }; - -# angrop = callPackage ./python-modules/angrop { }; - -# aniso8601 = callPackage ./python-modules/aniso8601 { }; - -# anitopy = callPackage ./python-modules/anitopy { }; - -# annexremote = callPackage ./python-modules/annexremote { }; - -# annotated-types = callPackage ./python-modules/annotated-types { }; - -# annoy = callPackage ./python-modules/annoy { }; - -# anonip = callPackage ./python-modules/anonip { }; - -# anova-wifi = callPackage ./python-modules/anova-wifi { }; - -# ansi2html = callPackage ./python-modules/ansi2html { }; - -# ansi2image = callPackage ./python-modules/ansi2image { }; - -# ansible = callPackage ./python-modules/ansible { }; - -# ansible-builder = callPackage ./python-modules/ansible-builder { }; - -# ansible-compat = callPackage ./python-modules/ansible-compat { }; - -# ansible-core = callPackage ./python-modules/ansible/core.nix { }; - -# ansible-kernel = callPackage ./python-modules/ansible-kernel { }; - -# ansible-navigator = callPackage ./python-modules/ansible-navigator { }; - -# ansible-pylibssh = callPackage ./python-modules/ansible-pylibssh { }; - -# ansible-runner = callPackage ./python-modules/ansible-runner { }; - -# ansible-vault-rw = callPackage ./python-modules/ansible-vault-rw { }; - -# ansi = callPackage ./python-modules/ansi { }; - -# ansicolor = callPackage ./python-modules/ansicolor { }; - -# ansicolors = callPackage ./python-modules/ansicolors { }; - -# ansiconv = callPackage ./python-modules/ansiconv { }; - -# ansimarkup = callPackage ./python-modules/ansimarkup { }; - -# ansiwrap = callPackage ./python-modules/ansiwrap { }; - -# anthemav = callPackage ./python-modules/anthemav { }; - -# anthropic = callPackage ./python-modules/anthropic { }; - -# antlr4-python3-runtime = callPackage ./python-modules/antlr4-python3-runtime { -# inherit (pkgs) antlr4; -# }; - -# anyascii = callPackage ./python-modules/anyascii { }; - -# anybadge = callPackage ./python-modules/anybadge { }; - -# anyconfig = callPackage ./python-modules/anyconfig { }; - -# anyio = callPackage ./python-modules/anyio { }; - -# anyqt = callPackage ./python-modules/anyqt { }; - -# anysqlite = callPackage ./python-modules/anysqlite { }; - -# anytree = callPackage ./python-modules/anytree { -# inherit (pkgs) graphviz; -# }; - -# anywidget = callPackage ./python-modules/anywidget { }; - -# aocd = callPackage ./python-modules/aocd { }; - -# aocd-example-parser = callPackage ./python-modules/aocd-example-parser { }; - -# apache-beam = callPackage ./python-modules/apache-beam { }; - -# apcaccess = callPackage ./python-modules/apcaccess { }; - -# apipkg = callPackage ./python-modules/apipkg { }; - -# apischema = callPackage ./python-modules/apischema { }; - -# apispec = callPackage ./python-modules/apispec { }; - -# apispec-webframeworks = callPackage ./python-modules/apispec-webframeworks { }; - -# apkinspector = callPackage ./python-modules/apkinspector { }; - -# apkit = callPackage ./python-modules/apkit { }; - -# aplpy = callPackage ./python-modules/aplpy { }; - -# app-model = callPackage ./python-modules/app-model { }; - -# appdirs = callPackage ./python-modules/appdirs { }; - -# apple-weatherkit = callPackage ./python-modules/apple-weatherkit { }; - -# applicationinsights = callPackage ./python-modules/applicationinsights { }; - -# appnope = callPackage ./python-modules/appnope { }; - -# apprise = callPackage ./python-modules/apprise { }; - -# approval-utilities = callPackage ./python-modules/approval-utilities { }; - -# approvaltests = callPackage ./python-modules/approvaltests { }; - -# apptools = callPackage ./python-modules/apptools { }; - -# appthreat-vulnerability-db = callPackage ./python-modules/appthreat-vulnerability-db { }; - -# apricot-select = callPackage ./python-modules/apricot-select { }; - -# aprslib = callPackage ./python-modules/aprslib { }; - -# apscheduler = callPackage ./python-modules/apscheduler { }; - -# apsw = callPackage ./python-modules/apsw { }; - -# apycula = callPackage ./python-modules/apycula { }; - -# aqipy-atmotech = callPackage ./python-modules/aqipy-atmotech { }; - -# aqualogic = callPackage ./python-modules/aqualogic { }; - -# arabic-reshaper = callPackage ./python-modules/arabic-reshaper { }; - -# aranet4 = callPackage ./python-modules/aranet4 { }; - -# arc4 = callPackage ./python-modules/arc4 { }; - -# arcam-fmj = callPackage ./python-modules/arcam-fmj { }; - -# archinfo = callPackage ./python-modules/archinfo { }; - -# archspec = callPackage ./python-modules/archspec { }; - -# area = callPackage ./python-modules/area { }; - -# arelle = callPackage ./python-modules/arelle { -# gui = true; -# }; - -# arelle-headless = callPackage ./python-modules/arelle { -# gui = false; -# }; - -# aresponses = callPackage ./python-modules/aresponses { }; - - argcomplete = callPackage ./python-modules/argcomplete { }; - -# argh = callPackage ./python-modules/argh { }; - -# argilla = callPackage ./python-modules/argilla { }; - -# argon2-cffi = callPackage ./python-modules/argon2-cffi { }; - -# argon2-cffi-bindings = callPackage ./python-modules/argon2-cffi-bindings { }; - -# argostranslate = callPackage ./python-modules/argostranslate { -# ctranslate2-cpp = pkgs.ctranslate2; -# }; - -# argos-translate-files = callPackage ./python-modules/argos-translate-files { }; - -# argparse-addons = callPackage ./python-modules/argparse-addons { }; - -# argparse-dataclass = callPackage ./python-modules/argparse-dataclass { }; - -# argparse-manpage = callPackage ./python-modules/argparse-manpage { }; - -# args = callPackage ./python-modules/args { }; - -# aria2p = callPackage ./python-modules/aria2p { }; - -# ariadne = callPackage ./python-modules/ariadne { }; - -# arpy = callPackage ./python-modules/arpy { }; - -# arnparse = callPackage ./python-modules/arnparse { }; - -# array-record = callPackage ./python-modules/array-record { }; - -# arrayqueues = callPackage ./python-modules/arrayqueues { }; - -# arris-tg2492lg = callPackage ./python-modules/arris-tg2492lg { }; - -# arrow = callPackage ./python-modules/arrow { }; - -# arsenic = callPackage ./python-modules/arsenic { }; - -# art = callPackage ./python-modules/art { }; - -# arviz = callPackage ./python-modules/arviz { }; - -# arxiv2bib = callPackage ./python-modules/arxiv2bib { }; - -# asana = callPackage ./python-modules/asana { }; - -# ascii-magic = callPackage ./python-modules/ascii-magic { }; - -# asciimatics = callPackage ./python-modules/asciimatics { }; - -# asciitree = callPackage ./python-modules/asciitree { }; - -# asdf = callPackage ./python-modules/asdf { }; - -# asdf-standard = callPackage ./python-modules/asdf-standard { }; - -# asdf-transform-schemas = callPackage ./python-modules/asdf-transform-schemas { }; - -# ase = callPackage ./python-modules/ase { }; - -# asf-search = callPackage ./python-modules/asf-search { }; - -# asgi-csrf = callPackage ./python-modules/asgi-csrf { }; - -# asgi-lifespan = callPackage ./python-modules/asgi-lifespan { }; - -# asgi-logger = callPackage ./python-modules/asgi-logger { }; - -# asgineer = callPackage ./python-modules/asgineer { }; - -# asgiref = callPackage ./python-modules/asgiref { }; - -# asks = callPackage ./python-modules/asks { }; - -# asmog = callPackage ./python-modules/asmog { }; - -# asn1 = callPackage ./python-modules/asn1 { }; - -# asn1ate = callPackage ./python-modules/asn1ate { }; - -# asn1crypto = callPackage ./python-modules/asn1crypto { }; - -# asn1tools = callPackage ./python-modules/asn1tools { }; - -# aspectlib = callPackage ./python-modules/aspectlib { }; - -# aspell-python = callPackage ./python-modules/aspell-python { }; - -# aspy-refactor-imports = callPackage ./python-modules/aspy-refactor-imports { }; - -# aspy-yaml = callPackage ./python-modules/aspy-yaml { }; - -# assay = callPackage ./python-modules/assay { }; - -# assertpy = callPackage ./python-modules/assertpy { }; - -# asterisk-mbox = callPackage ./python-modules/asterisk-mbox { }; - -# asteroid-filterbanks = callPackage ./python-modules/asteroid-filterbanks { }; - -# asteval = callPackage ./python-modules/asteval { }; - -# astor = callPackage ./python-modules/astor { }; - -# astral = callPackage ./python-modules/astral { }; - -# astroid = callPackage ./python-modules/astroid { }; - -# astropy = callPackage ./python-modules/astropy { }; - -# astropy-healpix = callPackage ./python-modules/astropy-healpix { }; - -# astropy-helpers = callPackage ./python-modules/astropy-helpers { }; - -# astropy-iers-data = callPackage ./python-modules/astropy-iers-data { }; - -# astropy-extension-helpers = callPackage ./python-modules/astropy-extension-helpers { }; - -# astroquery = callPackage ./python-modules/astroquery { }; - -# asttokens = callPackage ./python-modules/asttokens { }; - -# astunparse = callPackage ./python-modules/astunparse { }; - -# asyauth = callPackage ./python-modules/asyauth { }; - -# async-dns = callPackage ./python-modules/async-dns { }; - -# async-generator = callPackage ./python-modules/async-generator { }; - -# async-interrupt = callPackage ./python-modules/async-interrupt { }; - -# async-lru = callPackage ./python-modules/async-lru { }; - -# async-modbus = callPackage ./python-modules/async-modbus { }; - -# asyncclick = callPackage ./python-modules/asyncclick { }; - -# asynccmd = callPackage ./python-modules/asynccmd { }; - -# asyncinotify = callPackage ./python-modules/asyncinotify { }; - -# asyncio-dgram = callPackage ./python-modules/asyncio-dgram { }; - -# asyncio-mqtt = callPackage ./python-modules/asyncio-mqtt { }; - -# asyncio-rlock = callPackage ./python-modules/asyncio-rlock { }; - -# asyncmy = callPackage ./python-modules/asyncmy { }; - -# asyncio-throttle = callPackage ./python-modules/asyncio-throttle { }; - -# asyncpg = callPackage ./python-modules/asyncpg { }; - -# asyncserial = callPackage ./python-modules/asyncserial { }; - -# asyncsleepiq = callPackage ./python-modules/asyncsleepiq { }; - -# asyncssh = callPackage ./python-modules/asyncssh { }; - -# asyncstdlib = callPackage ./python-modules/asyncstdlib { }; - -# async-stagger = callPackage ./python-modules/async-stagger { }; - -# asynctest = callPackage ./python-modules/asynctest { }; - -# async-timeout = callPackage ./python-modules/async-timeout { }; - -# async-tkinter-loop = callPackage ./python-modules/async-tkinter-loop { }; - -# asyncua = callPackage ./python-modules/asyncua { }; - -# async-upnp-client = callPackage ./python-modules/async-upnp-client { }; - -# asyncwhois = callPackage ./python-modules/asyncwhois { }; - -# asysocks = callPackage ./python-modules/asysocks { }; - -# atc-ble = callPackage ./python-modules/atc-ble { }; - -# atenpdu = callPackage ./python-modules/atenpdu { }; - -# atlassian-python-api = callPackage ./python-modules/atlassian-python-api { }; - -# atom = callPackage ./python-modules/atom { }; - -# atomiclong = callPackage ./python-modules/atomiclong { }; - -# atomicwrites = callPackage ./python-modules/atomicwrites { }; - -# atomicwrites-homeassistant = callPackage ./python-modules/atomicwrites-homeassistant { }; - -# atomman = callPackage ./python-modules/atomman { }; - -# atpublic = callPackage ./python-modules/atpublic { }; - -# atsim-potentials = callPackage ./python-modules/atsim-potentials { }; - -# attrdict = callPackage ./python-modules/attrdict { }; - - attrs = callPackage ./python-modules/attrs { }; - -# aubio = callPackage ./python-modules/aubio { }; - -# audible = callPackage ./python-modules/audible { }; - -# audio-metadata = callPackage ./python-modules/audio-metadata { }; - -# audioread = callPackage ./python-modules/audioread { }; - -# audiotools = callPackage ./python-modules/audiotools { -# inherit (pkgs.darwin.apple_sdk.frameworks) AudioToolbox AudioUnit CoreServices; -# }; - -# auditok = callPackage ./python-modules/auditok { }; - -# auditwheel = callPackage ./python-modules/auditwheel { -# inherit (pkgs) bzip2 gnutar patchelf unzip; -# }; - -# augeas = callPackage ./python-modules/augeas { -# inherit (pkgs) augeas; -# }; - -# augmax = callPackage ./python-modules/augmax { }; - -# auroranoaa = callPackage ./python-modules/auroranoaa { }; - -# aurorapy = callPackage ./python-modules/aurorapy { }; - -# autarco = callPackage ./python-modules/autarco { }; - -# auth0-python = callPackage ./python-modules/auth0-python { }; - -# authcaptureproxy = callPackage ./python-modules/authcaptureproxy { }; - -# authheaders = callPackage ./python-modules/authheaders { }; - -# authlib = callPackage ./python-modules/authlib { }; - -# authres = callPackage ./python-modules/authres { }; - -# autobahn = callPackage ./python-modules/autobahn { }; - -# autocommand = callPackage ./python-modules/autocommand { }; - -# autofaiss = callPackage ./python-modules/autofaiss { }; - -# autoflake = callPackage ./python-modules/autoflake { }; - -# autograd = callPackage ./python-modules/autograd { }; - -# autograd-gamma = callPackage ./python-modules/autograd-gamma { }; - -# autoit-ripper = callPackage ./python-modules/autoit-ripper { }; - -# autologging = callPackage ./python-modules/autologging { }; - -# automat = callPackage ./python-modules/automat { }; - -# automate-home = callPackage ./python-modules/automate-home { }; - -# automx2 = callPackage ./python-modules/automx2 { }; - -# autopage = callPackage ./python-modules/autopage { }; - -# autopep8 = callPackage ./python-modules/autopep8 { }; - -# autoslot = callPackage ./python-modules/autoslot { }; - -# avahi = toPythonModule (pkgs.avahi.override { -# inherit python; -# withPython = true; -# }); - -# av = callPackage ./python-modules/av { }; - -# avea = callPackage ./python-modules/avea { }; - -# avidtools = callPackage ./python-modules/avidtools { }; - -# avion = callPackage ./python-modules/avion { }; - -# avro3k = callPackage ./python-modules/avro3k { }; - -# avro = callPackage ./python-modules/avro { }; - -# avro-python3 = callPackage ./python-modules/avro-python3 { }; - -# aw-client = callPackage ./python-modules/aw-client { }; - -# aw-core = callPackage ./python-modules/aw-core { }; - -# awacs = callPackage ./python-modules/awacs { }; - -# awesome-slugify = callPackage ./python-modules/awesome-slugify { }; - -# awesomeversion = callPackage ./python-modules/awesomeversion { }; - -# awkward = callPackage ./python-modules/awkward { }; - -# awkward-cpp = callPackage ./python-modules/awkward-cpp { -# inherit (pkgs) cmake ninja; -# }; - -# aws-adfs = callPackage ./python-modules/aws-adfs { }; - -# aws-encryption-sdk = callPackage ./python-modules/aws-encryption-sdk { }; - -# aws-lambda-builders = callPackage ./python-modules/aws-lambda-builders { }; - -# aws-sam-translator = callPackage ./python-modules/aws-sam-translator { }; - -# aws-secretsmanager-caching = callPackage ./python-modules/aws-secretsmanager-caching { }; - -# aws-xray-sdk = callPackage ./python-modules/aws-xray-sdk { }; - -# awscrt = callPackage ./python-modules/awscrt { -# inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation Security; -# }; - -# awsiotpythonsdk = callPackage ./python-modules/awsiotpythonsdk { }; - -# awsipranges = callPackage ./python-modules/awsipranges { }; - -# awslambdaric = callPackage ./python-modules/awslambdaric { }; - -# awswrangler = callPackage ./python-modules/awswrangler { }; - -# ax = callPackage ./python-modules/ax { }; - -# axis = callPackage ./python-modules/axis { }; - -# axisregistry = callPackage ./python-modules/axisregistry { }; - -# azure-appconfiguration = callPackage ./python-modules/azure-appconfiguration { }; - -# azure-applicationinsights = callPackage ./python-modules/azure-applicationinsights { }; - -# azure-batch = callPackage ./python-modules/azure-batch { }; - -# azure-common = callPackage ./python-modules/azure-common { }; - -# azure-containerregistry = callPackage ./python-modules/azure-containerregistry { }; - -# azure-core = callPackage ./python-modules/azure-core { }; - -# azure-cosmos = callPackage ./python-modules/azure-cosmos { }; - -# azure-cosmosdb-nspkg = callPackage ./python-modules/azure-cosmosdb-nspkg { }; - -# azure-cosmosdb-table = callPackage ./python-modules/azure-cosmosdb-table { }; - -# azure-data-tables = callPackage ./python-modules/azure-data-tables { }; - -# azure-datalake-store = callPackage ./python-modules/azure-datalake-store { }; - -# azure-eventgrid = callPackage ./python-modules/azure-eventgrid { }; - -# azure-eventhub = callPackage ./python-modules/azure-eventhub { }; - -# azure-functions-devops-build = callPackage ./python-modules/azure-functions-devops-build { }; - -# azure-graphrbac = callPackage ./python-modules/azure-graphrbac { }; - -# azure-identity = callPackage ./python-modules/azure-identity { }; - -# azure-keyvault = callPackage ./python-modules/azure-keyvault { }; - -# azure-keyvault-administration = callPackage ./python-modules/azure-keyvault-administration { }; - -# azure-keyvault-certificates = callPackage ./python-modules/azure-keyvault-certificates { }; - -# azure-keyvault-keys = callPackage ./python-modules/azure-keyvault-keys { }; - -# azure-keyvault-nspkg = callPackage ./python-modules/azure-keyvault-nspkg { }; - -# azure-keyvault-secrets = callPackage ./python-modules/azure-keyvault-secrets { }; - -# azure-loganalytics = callPackage ./python-modules/azure-loganalytics { }; - -# azure-mgmt-advisor = callPackage ./python-modules/azure-mgmt-advisor { }; - -# azure-mgmt-apimanagement = callPackage ./python-modules/azure-mgmt-apimanagement { }; - -# azure-mgmt-appconfiguration = callPackage ./python-modules/azure-mgmt-appconfiguration { }; - -# azure-mgmt-appcontainers = callPackage ./python-modules/azure-mgmt-appcontainers { }; - -# azure-mgmt-applicationinsights = callPackage ./python-modules/azure-mgmt-applicationinsights { }; - -# azure-mgmt-authorization = callPackage ./python-modules/azure-mgmt-authorization { }; - -# azure-mgmt-batchai = callPackage ./python-modules/azure-mgmt-batchai { }; - -# azure-mgmt-batch = callPackage ./python-modules/azure-mgmt-batch { }; - -# azure-mgmt-billing = callPackage ./python-modules/azure-mgmt-billing { }; - -# azure-mgmt-botservice = callPackage ./python-modules/azure-mgmt-botservice { }; - -# azure-mgmt-cdn = callPackage ./python-modules/azure-mgmt-cdn { }; - -# azure-mgmt-cognitiveservices = callPackage ./python-modules/azure-mgmt-cognitiveservices { }; - -# azure-mgmt-commerce = callPackage ./python-modules/azure-mgmt-commerce { }; - -# azure-mgmt-common = callPackage ./python-modules/azure-mgmt-common { }; - -# azure-mgmt-compute = callPackage ./python-modules/azure-mgmt-compute { }; - -# azure-mgmt-consumption = callPackage ./python-modules/azure-mgmt-consumption { }; - -# azure-mgmt-containerinstance = callPackage ./python-modules/azure-mgmt-containerinstance { }; - -# azure-mgmt-containerregistry = callPackage ./python-modules/azure-mgmt-containerregistry { }; - -# azure-mgmt-containerservice = callPackage ./python-modules/azure-mgmt-containerservice { }; - -# azure-mgmt-core = callPackage ./python-modules/azure-mgmt-core { }; - -# azure-mgmt-cosmosdb = callPackage ./python-modules/azure-mgmt-cosmosdb { }; - -# azure-mgmt-databoxedge = callPackage ./python-modules/azure-mgmt-databoxedge { }; - -# azure-mgmt-datafactory = callPackage ./python-modules/azure-mgmt-datafactory { }; - -# 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-store = callPackage ./python-modules/azure-mgmt-datalake-store { }; - -# azure-mgmt-datamigration = callPackage ./python-modules/azure-mgmt-datamigration { }; - -# azure-mgmt-deploymentmanager = callPackage ./python-modules/azure-mgmt-deploymentmanager { }; - -# azure-mgmt-devspaces = callPackage ./python-modules/azure-mgmt-devspaces { }; - -# azure-mgmt-devtestlabs = callPackage ./python-modules/azure-mgmt-devtestlabs { }; - -# azure-mgmt-dns = callPackage ./python-modules/azure-mgmt-dns { }; - -# azure-mgmt-eventgrid = callPackage ./python-modules/azure-mgmt-eventgrid { }; - -# azure-mgmt-eventhub = callPackage ./python-modules/azure-mgmt-eventhub { }; - -# azure-mgmt-extendedlocation = callPackage ./python-modules/azure-mgmt-extendedlocation { }; - -# azure-mgmt-frontdoor = callPackage ./python-modules/azure-mgmt-frontdoor { }; - -# azure-mgmt-hanaonazure = callPackage ./python-modules/azure-mgmt-hanaonazure { }; - -# azure-mgmt-hdinsight = callPackage ./python-modules/azure-mgmt-hdinsight { }; - -# azure-mgmt-imagebuilder = callPackage ./python-modules/azure-mgmt-imagebuilder { }; - -# azure-mgmt-iotcentral = callPackage ./python-modules/azure-mgmt-iotcentral { }; - -# azure-mgmt-iothub = callPackage ./python-modules/azure-mgmt-iothub { }; - -# azure-mgmt-iothubprovisioningservices = callPackage ./python-modules/azure-mgmt-iothubprovisioningservices { }; - -# azure-mgmt-keyvault = callPackage ./python-modules/azure-mgmt-keyvault { }; - -# azure-mgmt-kusto = callPackage ./python-modules/azure-mgmt-kusto { }; - -# azure-mgmt-loganalytics = callPackage ./python-modules/azure-mgmt-loganalytics { }; - -# azure-mgmt-logic = callPackage ./python-modules/azure-mgmt-logic { }; - -# azure-mgmt-machinelearningcompute = callPackage ./python-modules/azure-mgmt-machinelearningcompute { }; - -# azure-mgmt-managedservices = callPackage ./python-modules/azure-mgmt-managedservices { }; - -# azure-mgmt-managementgroups = callPackage ./python-modules/azure-mgmt-managementgroups { }; - -# azure-mgmt-managementpartner = callPackage ./python-modules/azure-mgmt-managementpartner { }; - -# azure-mgmt-maps = callPackage ./python-modules/azure-mgmt-maps { }; - -# azure-mgmt-marketplaceordering = callPackage ./python-modules/azure-mgmt-marketplaceordering { }; - -# azure-mgmt-media = callPackage ./python-modules/azure-mgmt-media { }; - -# azure-mgmt-monitor = callPackage ./python-modules/azure-mgmt-monitor { }; - -# azure-mgmt-msi = callPackage ./python-modules/azure-mgmt-msi { }; - -# azure-mgmt-netapp = callPackage ./python-modules/azure-mgmt-netapp { }; - -# azure-mgmt-network = callPackage ./python-modules/azure-mgmt-network { }; - -# azure-mgmt-notificationhubs = callPackage ./python-modules/azure-mgmt-notificationhubs { }; - -# azure-mgmt-nspkg = callPackage ./python-modules/azure-mgmt-nspkg { }; - -# azure-mgmt-policyinsights = callPackage ./python-modules/azure-mgmt-policyinsights { }; - -# azure-mgmt-powerbiembedded = callPackage ./python-modules/azure-mgmt-powerbiembedded { }; - -# azure-mgmt-privatedns = callPackage ./python-modules/azure-mgmt-privatedns { }; - -# azure-mgmt-rdbms = callPackage ./python-modules/azure-mgmt-rdbms { }; - -# azure-mgmt-recoveryservicesbackup = callPackage ./python-modules/azure-mgmt-recoveryservicesbackup { }; - -# azure-mgmt-recoveryservices = callPackage ./python-modules/azure-mgmt-recoveryservices { }; - -# azure-mgmt-redhatopenshift = callPackage ./python-modules/azure-mgmt-redhatopenshift { }; - -# azure-mgmt-redis = callPackage ./python-modules/azure-mgmt-redis { }; - -# azure-mgmt-relay = callPackage ./python-modules/azure-mgmt-relay { }; - -# azure-mgmt-reservations = callPackage ./python-modules/azure-mgmt-reservations { }; - -# azure-mgmt-resource = callPackage ./python-modules/azure-mgmt-resource { }; - -# azure-mgmt-scheduler = callPackage ./python-modules/azure-mgmt-scheduler { }; - -# azure-mgmt-search = callPackage ./python-modules/azure-mgmt-search { }; - -# azure-mgmt-security = callPackage ./python-modules/azure-mgmt-security { }; - -# azure-mgmt-servicebus = callPackage ./python-modules/azure-mgmt-servicebus { }; - -# azure-mgmt-servicefabric = callPackage ./python-modules/azure-mgmt-servicefabric { }; - -# azure-mgmt-servicefabricmanagedclusters = callPackage ./python-modules/azure-mgmt-servicefabricmanagedclusters { }; - -# azure-mgmt-servicelinker = callPackage ./python-modules/azure-mgmt-servicelinker { }; - -# azure-mgmt-signalr = callPackage ./python-modules/azure-mgmt-signalr { }; - -# azure-mgmt-sql = callPackage ./python-modules/azure-mgmt-sql { }; - -# azure-mgmt-sqlvirtualmachine = callPackage ./python-modules/azure-mgmt-sqlvirtualmachine { }; - -# azure-mgmt-storage = callPackage ./python-modules/azure-mgmt-storage { }; - -# azure-mgmt-subscription = callPackage ./python-modules/azure-mgmt-subscription { }; - -# azure-mgmt-synapse = callPackage ./python-modules/azure-mgmt-synapse { }; - -# azure-mgmt-trafficmanager = callPackage ./python-modules/azure-mgmt-trafficmanager { }; - -# azure-mgmt-web = callPackage ./python-modules/azure-mgmt-web { }; - -# azure-monitor-ingestion = callPackage ./python-modules/azure-monitor-ingestion { }; - -# azure-multiapi-storage = callPackage ./python-modules/azure-multiapi-storage { }; - -# azure-nspkg = callPackage ./python-modules/azure-nspkg { }; - -# azure-servicebus = callPackage ./python-modules/azure-servicebus { }; - -# azure-servicefabric = callPackage ./python-modules/azure-servicefabric { }; - -# azure-servicemanagement-legacy = callPackage ./python-modules/azure-servicemanagement-legacy { }; - -# azure-storage-blob = callPackage ./python-modules/azure-storage-blob { }; - -# azure-storage-common = callPackage ./python-modules/azure-storage-common { }; - -# azure-storage-file = callPackage ./python-modules/azure-storage-file { }; - -# azure-storage-file-share = callPackage ./python-modules/azure-storage-file-share { }; - -# azure-storage-nspkg = callPackage ./python-modules/azure-storage-nspkg { }; - -# azure-storage-queue = callPackage ./python-modules/azure-storage-queue { }; - -# azure-synapse-accesscontrol = callPackage ./python-modules/azure-synapse-accesscontrol { }; - -# azure-synapse-artifacts = callPackage ./python-modules/azure-synapse-artifacts { }; - -# azure-synapse-managedprivateendpoints = callPackage ./python-modules/azure-synapse-managedprivateendpoints { }; - -# azure-synapse-spark = callPackage ./python-modules/azure-synapse-spark { }; - -# b2sdk = callPackage ./python-modules/b2sdk { }; - - babel = callPackage ./python-modules/babel { }; - -# babelfish = callPackage ./python-modules/babelfish { }; - -# babelfont = callPackage ./python-modules/babelfont { }; - -# babelgladeextractor = callPackage ./python-modules/babelgladeextractor { }; - -# bambi = callPackage ./python-modules/bambi { }; - -# pad4pi = callPackage ./python-modules/pad4pi { }; - -# paddle-bfloat = callPackage ./python-modules/paddle-bfloat { }; - -# paddle2onnx = callPackage ./python-modules/paddle2onnx { }; - -# paddleocr = callPackage ./python-modules/paddleocr { }; - -# paddlepaddle = callPackage ./python-modules/paddlepaddle { }; - -# pueblo = callPackage ./python-modules/pueblo { }; - -# pulumi = callPackage ./python-modules/pulumi { inherit (pkgs) pulumi; }; - -# pulumi-aws = callPackage ./python-modules/pulumi-aws { }; - -# pulumi-aws-native = pkgs.pulumiPackages.pulumi-aws-native.sdks.python; - -# pulumi-azure-native = pkgs.pulumiPackages.pulumi-azure-native.sdks.python; - -# pulumi-command = pkgs.pulumiPackages.pulumi-command.sdks.python; - -# pulumi-random = pkgs.pulumiPackages.pulumi-random.sdks.python; - -# backcall = callPackage ./python-modules/backcall { }; - -# backoff = callPackage ./python-modules/backoff { }; - -# backports-cached-property = callPackage ./python-modules/backports-cached-property { }; - -# backports-datetime-fromisoformat = callPackage ./python-modules/backports-datetime-fromisoformat { }; - -# 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-which = callPackage ./python-modules/backports-shutil-which { }; - -# backports-strenum = callPackage ./python-modules/backports-strenum { }; - - backports-zoneinfo = callPackage ./python-modules/backports-zoneinfo { }; - -# bacpypes = callPackage ./python-modules/bacpypes { }; - -# bagit = callPackage ./python-modules/bagit { }; - -# banal = callPackage ./python-modules/banal { }; - -# bandcamp-api = callPackage ./python-modules/bandcamp-api { }; - -# bandit = callPackage ./python-modules/bandit { }; - -# bangla = callPackage ./python-modules/bangla { }; - -# bap = callPackage ./python-modules/bap { -# inherit (pkgs.ocaml-ng.ocamlPackages_4_14) bap; -# }; - -# barectf = callPackage ./python-modules/barectf { }; - -# baron = callPackage ./python-modules/baron { }; - -# base2048 = callPackage ./python-modules/base2048 { }; - -# base36 = callPackage ./python-modules/base36 { }; - -# base58 = callPackage ./python-modules/base58 { }; - -# base58check = callPackage ./python-modules/base58check { }; - -# base64io = callPackage ./python-modules/base64io { }; - -# baseline = callPackage ./python-modules/baseline { }; - -# baselines = callPackage ./python-modules/baselines { }; - -# basemap = callPackage ./python-modules/basemap { }; - -# basemap-data = callPackage ./python-modules/basemap-data { }; - -# bases = callPackage ./python-modules/bases { }; - -# bash-kernel = callPackage ./python-modules/bash-kernel { }; - -# bashlex = callPackage ./python-modules/bashlex { }; - -# basiciw = callPackage ./python-modules/basiciw { }; - -# batchgenerators = callPackage ./python-modules/batchgenerators { }; - -# batchspawner = callPackage ./python-modules/batchspawner { }; - -# batinfo = callPackage ./python-modules/batinfo { }; - -# baycomp = callPackage ./python-modules/baycomp { }; - -# bayesian-optimization = callPackage ./python-modules/bayesian-optimization { }; - -# bayespy = callPackage ./python-modules/bayespy { }; - -# bbox = callPackage ./python-modules/bbox { }; - -# bc-detect-secrets = callPackage ./python-modules/bc-detect-secrets { }; - -# bc-jsonpath-ng = callPackage ./python-modules/bc-jsonpath-ng { }; - -# bc-python-hcl2 = callPackage ./python-modules/bc-python-hcl2 { }; - -# bcdoc = callPackage ./python-modules/bcdoc { }; - -# bcf = callPackage ./python-modules/bcf { }; - -# bcg = callPackage ./python-modules/bcg { }; - -# bch = callPackage ./python-modules/bch { }; - -# bcrypt = if stdenv.hostPlatform.system == "i686-linux" then -# callPackage ./python-modules/bcrypt/3.nix { } -# else -# callPackage ./python-modules/bcrypt { }; - -# bdffont = callPackage ./python-modules/bdffont { }; - -# beaker = callPackage ./python-modules/beaker { }; - -# before-after = callPackage ./python-modules/before-after { }; - -# beancount = callPackage ./python-modules/beancount { }; - -# beancount-black = callPackage ./python-modules/beancount-black { }; - -# beancount-parser = callPackage ./python-modules/beancount-parser { }; - -# beancount-docverif = callPackage ./python-modules/beancount-docverif { }; - -# beanstalkc = callPackage ./python-modules/beanstalkc { }; - -# beartype = callPackage ./python-modules/beartype { }; - -# beautiful-date = callPackage ./python-modules/beautiful-date { }; - -# beautifulsoup4 = callPackage ./python-modules/beautifulsoup4 { }; - -# beautifultable = callPackage ./python-modules/beautifultable { }; - -# beautysh = callPackage ./python-modules/beautysh { }; - -# bech32 = callPackage ./python-modules/bech32 { }; - -# behave = callPackage ./python-modules/behave { }; - -# bellows = callPackage ./python-modules/bellows { }; - -# bencode-py = callPackage ./python-modules/bencode-py { }; - -# bencoder = callPackage ./python-modules/bencoder { }; - -# beniget = callPackage ./python-modules/beniget { }; - -# bentoml = callPackage ./python-modules/bentoml { }; - -# bespon = callPackage ./python-modules/bespon { }; - -# betacode = callPackage ./python-modules/betacode { }; - -# betamax = callPackage ./python-modules/betamax { }; - -# betamax-matchers = callPackage ./python-modules/betamax-matchers { }; - -# betamax-serializers = callPackage ./python-modules/betamax-serializers { }; - -# betterproto = callPackage ./python-modules/betterproto { }; - -# beziers = callPackage ./python-modules/beziers { }; - -# bibtexparser = callPackage ./python-modules/bibtexparser { }; - -# bidict = callPackage ./python-modules/bidict { }; - -# bids-validator = callPackage ./python-modules/bids-validator { }; - -# biliass = callPackage ./python-modules/biliass { }; - -# billiard = callPackage ./python-modules/billiard { }; - -# bimmer-connected = callPackage ./python-modules/bimmer-connected { }; - -# binary = callPackage ./python-modules/binary { }; - -# binary2strings = callPackage ./python-modules/binary2strings { }; - -# binaryornot = callPackage ./python-modules/binaryornot { }; - -# bincopy = callPackage ./python-modules/bincopy { }; - -# bindep = callPackage ./python-modules/bindep { }; - -# binho-host-adapter = callPackage ./python-modules/binho-host-adapter { }; - -# binwalk = callPackage ./python-modules/binwalk { }; - -# binwalk-full = self.binwalk.override { visualizationSupport = true; }; - -# biopandas = callPackage ./python-modules/biopandas { }; - -# biopython = callPackage ./python-modules/biopython { }; - -# biplist = callPackage ./python-modules/biplist { }; - -# bip-utils = callPackage ./python-modules/bip-utils { }; - -# bip32 = callPackage ./python-modules/bip32 { }; - -# birch = callPackage ./python-modules/birch { }; - -# bitarray = callPackage ./python-modules/bitarray { }; - -# bitbox02 = callPackage ./python-modules/bitbox02 { }; - -# bitcoinlib = callPackage ./python-modules/bitcoinlib { }; - -# bitcoin-utils-fork-minimal = callPackage ./python-modules/bitcoin-utils-fork-minimal { }; - -# bitcoinrpc = callPackage ./python-modules/bitcoinrpc { }; - -# bite-parser = callPackage ./python-modules/bite-parser { }; - -# bitlist = callPackage ./python-modules/bitlist { }; - -# bitmath = callPackage ./python-modules/bitmath { }; - -# bitsandbytes = callPackage ./python-modules/bitsandbytes { }; - -# bitstring = callPackage ./python-modules/bitstring { }; - -# bitstruct = callPackage ./python-modules/bitstruct { }; - -# bitvavo-aio = callPackage ./python-modules/bitvavo-aio { }; - -# bizkaibus = callPackage ./python-modules/bizkaibus { }; - -# bjoern = callPackage ./python-modules/bjoern { }; - -# bkcharts = callPackage ./python-modules/bkcharts { }; - -# black = callPackage ./python-modules/black { }; - -# blackjax = callPackage ./python-modules/blackjax { }; - -# black-macchiato = callPackage ./python-modules/black-macchiato { }; - -# bleach = callPackage ./python-modules/bleach { }; - -# bleach-allowlist = callPackage ./python-modules/bleach-allowlist { }; - -# bleak = callPackage ./python-modules/bleak { }; - -# bleak-esphome = callPackage ./python-modules/bleak-esphome { }; - -# bleak-retry-connector = callPackage ./python-modules/bleak-retry-connector { }; - -# blebox-uniapi = callPackage ./python-modules/blebox-uniapi { }; - -# bless = callPackage ./python-modules/bless { }; - -# blessed = callPackage ./python-modules/blessed { }; - -# blessings = callPackage ./python-modules/blessings { }; - -# blinker = callPackage ./python-modules/blinker { }; - -# blinkpy = callPackage ./python-modules/blinkpy { }; - -# blinkstick = callPackage ./python-modules/blinkstick { }; - -# blis = callPackage ./python-modules/blis { }; - -# blobfile = callPackage ./python-modules/blobfile { }; - -# blockchain = callPackage ./python-modules/blockchain { }; - -# blockdiag = callPackage ./python-modules/blockdiag { }; - -# block-io = callPackage ./python-modules/block-io { }; - -# blockfrost-python = callPackage ./python-modules/blockfrost-python { }; - -# blocksat-cli = callPackage ./python-modules/blocksat-cli { }; - -# bloodhound-py = callPackage ./python-modules/bloodhound-py { }; - -# bloodyad = callPackage ./python-modules/bloodyad { }; - -# blosc2 = callPackage ./python-modules/blosc2 { }; - -# bluecurrent-api = callPackage ./python-modules/bluecurrent-api { }; - -# bluemaestro-ble = callPackage ./python-modules/bluemaestro-ble { }; - -# bluepy = callPackage ./python-modules/bluepy { }; - -# bluepy-devices = callPackage ./python-modules/bluepy-devices { }; - -# bluetooth-adapters = callPackage ./python-modules/bluetooth-adapters { }; - -# bluetooth-auto-recovery = callPackage ./python-modules/bluetooth-auto-recovery { }; - -# bluetooth-data-tools= callPackage ./python-modules/bluetooth-data-tools { }; - -# bluetooth-sensor-state-data = callPackage ./python-modules/bluetooth-sensor-state-data { }; - -# blurhash = callPackage ./python-modules/blurhash { }; - -# blurhash-python = callPackage ./python-modules/blurhash-python { }; - -# bme280spi = callPackage ./python-modules/bme280spi { }; - -# bme680 = callPackage ./python-modules/bme680 { }; - -# bnnumerizer = callPackage ./python-modules/bnnumerizer { }; - -# bnunicodenormalizer = callPackage ./python-modules/bnunicodenormalizer { }; - -# boa-api = callPackage ./python-modules/boa-api { }; - -# boiboite-opener-framework = callPackage ./python-modules/boiboite-opener-framework { }; - -# boilerpy3 = callPackage ./python-modules/boilerpy3 { }; - -# bokeh = callPackage ./python-modules/bokeh { }; - -# boltons = callPackage ./python-modules/boltons { }; - -# boltztrap2 = callPackage ./python-modules/boltztrap2 { }; - -# bond-api = callPackage ./python-modules/bond-api { }; - -# bond-async = callPackage ./python-modules/bond-async { }; - -# bonsai = callPackage ./python-modules/bonsai { }; - -# booleanoperations = callPackage ./python-modules/booleanoperations { }; - -# 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; -# }); - -# borb = callPackage ./python-modules/borb { }; - -# bork = callPackage ./python-modules/bork { }; - -# boschshcpy = callPackage ./python-modules/boschshcpy { }; - -# bottombar = callPackage ./python-modules/bottombar { }; - -# boost-histogram = callPackage ./python-modules/boost-histogram { -# inherit (pkgs) boost; -# }; - -# boto3 = callPackage ./python-modules/boto3 { }; - -# boto3-stubs = callPackage ./python-modules/boto3-stubs { }; - -# boto = callPackage ./python-modules/boto { }; - -# botocore = callPackage ./python-modules/botocore { }; - -# botocore-stubs = callPackage ./python-modules/botocore-stubs { }; - -# botorch = callPackage ./python-modules/botorch { }; - -# bottle = callPackage ./python-modules/bottle { }; - -# bottleneck = callPackage ./python-modules/bottleneck { }; - -# boxx = callPackage ./python-modules/boxx { }; - -# bpemb = callPackage ./python-modules/bpemb { }; - -# bpycv = callPackage ./python-modules/bpycv {}; - -# bpython = callPackage ./python-modules/bpython { }; - -# bqplot = callPackage ./python-modules/bqplot { }; - -# bqscales = callPackage ./python-modules/bqscales { }; - -# braceexpand = callPackage ./python-modules/braceexpand { }; - -# bracex = callPackage ./python-modules/bracex { }; - -# braintree = callPackage ./python-modules/braintree { }; - -# branca = callPackage ./python-modules/branca { }; - -# bravado-core = callPackage ./python-modules/bravado-core { }; - -# bravia-tv = callPackage ./python-modules/bravia-tv { }; - -# breathe = callPackage ./python-modules/breathe { }; - -# breezy = callPackage ./python-modules/breezy { }; - -# brelpy = callPackage ./python-modules/brelpy { }; - -# brian2 = callPackage ./python-modules/brian2 { }; - -# bring-api = callPackage ./python-modules/bring-api { }; - -# broadbean = callPackage ./python-modules/broadbean { }; - -# broadlink = callPackage ./python-modules/broadlink { }; - -# brother = callPackage ./python-modules/brother { }; - -# brother-ql = callPackage ./python-modules/brother-ql { }; - -# brotli = callPackage ./python-modules/brotli { }; - -# brotli-asgi = callPackage ./python-modules/brotli-asgi { }; - - brotlicffi = callPackage ./python-modules/brotlicffi { - inherit (pkgs) brotli; - }; - -# brotlipy = callPackage ./python-modules/brotlipy { }; - -# brottsplatskartan = callPackage ./python-modules/brottsplatskartan { }; - -# browser-cookie3 = callPackage ./python-modules/browser-cookie3 { }; - -# brunt = callPackage ./python-modules/brunt { }; - -# bsddb3 = callPackage ./python-modules/bsddb3 { }; - -# bsdiff4 = callPackage ./python-modules/bsdiff4 { }; - -# bson = callPackage ./python-modules/bson { }; - -# bsuite = callPackage ./python-modules/bsuite { }; - -# btchip-python = callPackage ./python-modules/btchip-python { }; - -# btest = callPackage ./python-modules/btest { }; - -# bthome-ble = callPackage ./python-modules/bthome-ble { }; - -# bt-proximity = callPackage ./python-modules/bt-proximity { }; - -# btrees = callPackage ./python-modules/btrees { }; - -# btrfs = callPackage ./python-modules/btrfs { }; - -# btrfsutil = callPackage ./python-modules/btrfsutil { }; - -# btsmarthub-devicelist = callPackage ./python-modules/btsmarthub-devicelist { }; - -# btsocket = callPackage ./python-modules/btsocket { }; - -# bubop = callPackage ./python-modules/bubop { }; - -# bucketstore = callPackage ./python-modules/bucketstore { }; - -# bugsnag = callPackage ./python-modules/bugsnag { }; - -# bugwarrior = callPackage ./python-modules/bugwarrior { }; - -# bugz = callPackage ./python-modules/bugz { }; - -# bugzilla = callPackage ./python-modules/bugzilla { }; - -# buienradar = callPackage ./python-modules/buienradar { }; - - build = callPackage ./python-modules/build { }; - - buildcatrust = callPackage ./python-modules/buildcatrust { }; - -# bumps = callPackage ./python-modules/bumps { }; - -# bunch = callPackage ./python-modules/bunch { }; - -# bundlewrap = callPackage ./python-modules/bundlewrap { }; - -# bundlewrap-keepass = callPackage ./python-modules/bundlewrap-keepass { }; - -# bundlewrap-pass = callPackage ./python-modules/bundlewrap-pass { }; - -# bundlewrap-teamvault = callPackage ./python-modules/bundlewrap-teamvault { }; - -# busypie = callPackage ./python-modules/busypie { }; - -# bx-py-utils = callPackage ./python-modules/bx-py-utils { }; - -# bx-python = callPackage ./python-modules/bx-python { }; - -# bwapy = callPackage ./python-modules/bwapy { }; - -# bytecode = callPackage ./python-modules/bytecode { }; - -# bytewax = callPackage ./python-modules/bytewax { }; - -# bz2file = callPackage ./python-modules/bz2file { }; - -# cachecontrol = callPackage ./python-modules/cachecontrol { }; - -# cached-ipaddress = callPackage ./python-modules/cached-ipaddress { }; - -# cached-property = callPackage ./python-modules/cached-property { }; - -# cachelib = callPackage ./python-modules/cachelib { }; - -# cachetools = callPackage ./python-modules/cachetools { }; - -# cachey = callPackage ./python-modules/cachey { }; - -# cachier = callPackage ./python-modules/cachier { }; - -# cachy = callPackage ./python-modules/cachy { }; - -# cadquery = callPackage ./python-modules/cadquery { -# inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa; -# }; - -# caffe = toPythonModule (pkgs.caffe.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 { }; - -# cairocffi = callPackage ./python-modules/cairocffi { }; - -# cairosvg = callPackage ./python-modules/cairosvg { }; - -# caldav = callPackage ./python-modules/caldav { }; - - calver = callPackage ./python-modules/calver { }; - -# callee = callPackage ./python-modules/callee { }; - -# calmjs = callPackage ./python-modules/calmjs { }; - -# calmjs-parse = callPackage ./python-modules/calmjs-parse { }; - -# calmjs-types = callPackage ./python-modules/calmjs-types { }; - -# calysto = callPackage ./python-modules/calysto { }; - -# calysto-scheme = callPackage ./python-modules/calysto-scheme { }; - -# camel-converter = callPackage ./python-modules/camel-converter { }; - -# can = callPackage ./python-modules/can { }; - -# canals = callPackage ./python-modules/canals { }; - -# canmatrix = callPackage ./python-modules/canmatrix { }; - -# canonicaljson = callPackage ./python-modules/canonicaljson { }; - -# canopen = callPackage ./python-modules/canopen { }; - -# cantools = callPackage ./python-modules/cantools { }; - -# 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; -# }; - -# captcha = callPackage ./python-modules/captcha { }; - -# capturer = callPackage ./python-modules/capturer { }; - -# carbon = callPackage ./python-modules/carbon { }; - -# cart = callPackage ./python-modules/cart { }; - -# cartopy = callPackage ./python-modules/cartopy { }; - -# casa-formats-io = callPackage ./python-modules/casa-formats-io { }; - -# casbin = callPackage ./python-modules/casbin { }; - -# case = callPackage ./python-modules/case { }; - -# cashaddress = callPackage ./python-modules/cashaddress { }; - -# cassandra-driver = callPackage ./python-modules/cassandra-driver { }; - -# castepxbin = callPackage ./python-modules/castepxbin { }; - -# casttube = callPackage ./python-modules/casttube { }; - -# catalogue = callPackage ./python-modules/catalogue { }; - -# catboost = callPackage ./python-modules/catboost { -# catboost = pkgs.catboost.override { -# pythonSupport = true; -# python3Packages = self; -# }; -# }; - -# catkin-pkg = callPackage ./python-modules/catkin-pkg { }; - -# catppuccin = callPackage ./python-modules/catppuccin { }; - -# cattrs = callPackage ./python-modules/cattrs { }; - -# cbeams = callPackage ../misc/cbeams { }; - -# cbor2 = callPackage ./python-modules/cbor2 { }; - -# cbor = callPackage ./python-modules/cbor { }; - -# cccolutils = callPackage ./python-modules/cccolutils { }; - -# cdcs = callPackage ./python-modules/cdcs { }; - -# celery = callPackage ./python-modules/celery { }; - -# celery-redbeat = callPackage ./python-modules/celery-redbeat { }; - -# celery-singleton = callPackage ./python-modules/celery-singleton { }; - -# celery-types = callPackage ./python-modules/celery-types { }; - -# cement = callPackage ./python-modules/cement { }; - -# cemm = callPackage ./python-modules/cemm { }; - -# censys = callPackage ./python-modules/censys { }; - -# cexprtk = callPackage ./python-modules/cexprtk { }; - -# coffea = callPackage ./python-modules/coffea { }; - -# cohere = callPackage ./python-modules/cohere { }; - -# coincurve = callPackage ./python-modules/coincurve { -# inherit (pkgs) secp256k1; -# }; - -# comicon = callPackage ./python-modules/comicon { }; - -# command-runner = callPackage ./python-modules/command-runner { }; - -# connect-box = callPackage ./python-modules/connect-box { }; - -# connection-pool = callPackage ./python-modules/connection-pool { }; - -# connio = callPackage ./python-modules/connio { }; - -# conway-polynomials = callPackage ./python-modules/conway-polynomials {}; - -# correctionlib = callPackage ./python-modules/correctionlib { }; - -# coqpit = callPackage ./python-modules/coqpit { }; - -# cepa = callPackage ./python-modules/cepa { }; - -# cerberus = callPackage ./python-modules/cerberus { }; - -# cert-chain-resolver = callPackage ./python-modules/cert-chain-resolver { }; - -# certauth = callPackage ./python-modules/certauth { }; - -# certbot = callPackage ./python-modules/certbot { }; - -# certbot-dns-cloudflare = callPackage ./python-modules/certbot-dns-cloudflare { }; - -# certbot-dns-google = callPackage ./python-modules/certbot-dns-google { }; - -# certbot-dns-inwx = callPackage ./python-modules/certbot-dns-inwx { }; - -# certbot-dns-ovh = callPackage ./python-modules/certbot-dns-ovh { }; - -# certbot-dns-rfc2136 = callPackage ./python-modules/certbot-dns-rfc2136 { }; - -# certbot-dns-route53 = callPackage ./python-modules/certbot-dns-route53 { }; - - certifi = callPackage ./python-modules/certifi { }; - -# certipy = callPackage ./python-modules/certipy { }; - -# certipy-ad = callPackage ./python-modules/certipy-ad { }; - -# certomancer = callPackage ./python-modules/certomancer { }; - -# certvalidator = callPackage ./python-modules/certvalidator { }; - -# cf-xarray = callPackage ./python-modules/cf-xarray { }; - -# cffconvert = callPackage ./python-modules/cffconvert { }; - - cffi = callPackage ./python-modules/cffi { }; - -# cffsubr = callPackage ./python-modules/cffsubr { }; - -# cfgv = callPackage ./python-modules/cfgv { }; - -# cfn-flip = callPackage ./python-modules/cfn-flip { }; - -# cfn-lint = callPackage ./python-modules/cfn-lint { }; - -# cfscrape = callPackage ./python-modules/cfscrape { }; - -# cftime = callPackage ./python-modules/cftime { }; - -# cgen = callPackage ./python-modules/cgen { }; - -# cgroup-utils = callPackage ./python-modules/cgroup-utils { }; - -# chacha20poly1305 = callPackage ./python-modules/chacha20poly1305 { }; - -# chacha20poly1305-reuseable = callPackage ./python-modules/chacha20poly1305-reuseable { }; - -# chai = callPackage ./python-modules/chai { }; - -# chainer = callPackage ./python-modules/chainer { -# inherit (pkgs.config) cudaSupport; -# }; - -# chainmap = callPackage ./python-modules/chainmap { }; - -# chainstream = callPackage ./python-modules/chainstream { }; - -# chalice = callPackage ./python-modules/chalice { }; - -# chameleon = callPackage ./python-modules/chameleon { }; - -# channels = callPackage ./python-modules/channels { }; - -# channels-redis = callPackage ./python-modules/channels-redis { }; - -# characteristic = callPackage ./python-modules/characteristic { }; - -# 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 { }; - -# chat-downloader = callPackage ./python-modules/chat-downloader { }; - -# check-manifest = callPackage ./python-modules/check-manifest { }; - -# checkdmarc = callPackage ./python-modules/checkdmarc { }; - -# checksumdir = callPackage ./python-modules/checksumdir { }; - -# cheetah3 = callPackage ./python-modules/cheetah3 { }; - -# cheroot = callPackage ./python-modules/cheroot { }; - -# cherrypy = callPackage ./python-modules/cherrypy { }; - -# cherrypy-cors = callPackage ./python-modules/cherrypy-cors { }; - -# chess = callPackage ./python-modules/chess { }; - -# chevron = callPackage ./python-modules/chevron { }; - -# chex = callPackage ./python-modules/chex { }; - -# 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"; - -# 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"; - -# chirpstack-api = callPackage ./python-modules/chirpstack-api { }; - -# chispa = callPackage ./python-modules/chispa { }; - -# chroma-hnswlib = callPackage ./python-modules/chroma-hnswlib { }; - -# chromadb = callPackage ./python-modules/chromadb { }; - -# chromaprint = callPackage ./python-modules/chromaprint { }; - -# ci-info = callPackage ./python-modules/ci-info { }; - -# ci-py = callPackage ./python-modules/ci-py { }; - -# cinemagoer = callPackage ./python-modules/cinemagoer { }; - -# circuit-webhook = callPackage ./python-modules/circuit-webhook { }; - -# circuitbreaker = callPackage ./python-modules/circuitbreaker { }; - -# circus = callPackage ./python-modules/circus { }; - -# cirq = callPackage ./python-modules/cirq { }; - -# cirq-aqt = callPackage ./python-modules/cirq-aqt { }; - -# cirq-core = callPackage ./python-modules/cirq-core { }; - -# cirq-ft = callPackage ./python-modules/cirq-ft { }; - -# cirq-ionq = callPackage ./python-modules/cirq-ionq { }; - -# cirq-google = callPackage ./python-modules/cirq-google { }; - -# cirq-rigetti = callPackage ./python-modules/cirq-rigetti { }; - -# cirq-pasqal = callPackage ./python-modules/cirq-pasqal { }; - -# cirq-web = callPackage ./python-modules/cirq-web { }; - -# ciscoconfparse = callPackage ./python-modules/ciscoconfparse { }; - -# ciscomobilityexpress = callPackage ./python-modules/ciscomobilityexpress { }; - -# ciso8601 = callPackage ./python-modules/ciso8601 { }; - -# citeproc-py = callPackage ./python-modules/citeproc-py { }; - -# cjkwrap = callPackage ./python-modules/cjkwrap { }; - -# ckcc-protocol = callPackage ./python-modules/ckcc-protocol { }; - -# clarabel = callPackage ./python-modules/clarabel { }; - -# clarifai = callPackage ./python-modules/clarifai { }; - -# clarifai-grpc = callPackage ./python-modules/clarifai-grpc { }; - -# claripy = callPackage ./python-modules/claripy { }; - -# classify-imports = callPackage ./python-modules/classify-imports { }; - -# cld2-cffi = callPackage ./python-modules/cld2-cffi { }; - -# cle = callPackage ./python-modules/cle { }; - -# clean-fid = callPackage ./python-modules/clean-fid { }; - -# cleanlab = callPackage ./python-modules/cleanlab { }; - -# cleo = callPackage ./python-modules/cleo { }; - -# clevercsv = callPackage ./python-modules/clevercsv { }; - -# clf = callPackage ./python-modules/clf { }; - -# clip = callPackage ./python-modules/clip { }; - -# clip-anytorch = callPackage ./python-modules/clip-anytorch { }; - -# clr-loader = callPackage ./python-modules/clr-loader { }; - -# cock = callPackage ./python-modules/cock { }; - -# cobs = callPackage ./python-modules/cobs { }; - -# class-doc = callPackage ./python-modules/class-doc { }; - -# cliche = callPackage ./python-modules/cliche { }; - -# click = callPackage ./python-modules/click { }; - -# clickclick = callPackage ./python-modules/clickclick { }; - -# click-aliases = callPackage ./python-modules/click-aliases { }; - -# click-command-tree = callPackage ./python-modules/click-command-tree { }; - -# click-completion = callPackage ./python-modules/click-completion { }; - -# click-configfile = callPackage ./python-modules/click-configfile { }; - -# click-datetime = callPackage ./python-modules/click-datetime { }; - -# click-default-group = callPackage ./python-modules/click-default-group { }; - -# click-didyoumean = callPackage ./python-modules/click-didyoumean { }; - -# click-help-colors = callPackage ./python-modules/click-help-colors { }; - -# click-log = callPackage ./python-modules/click-log { }; - -# click-odoo = callPackage ./python-modules/click-odoo { }; - -# click-odoo-contrib = callPackage ./python-modules/click-odoo-contrib { }; - -# click-option-group = callPackage ./python-modules/click-option-group { }; - -# click-plugins = callPackage ./python-modules/click-plugins { }; - -# click-shell = callPackage ./python-modules/click-shell { }; - -# click-spinner = callPackage ./python-modules/click-spinner { }; - -# click-repl = callPackage ./python-modules/click-repl { }; - -# click-threading = callPackage ./python-modules/click-threading { }; - -# clickgen = callPackage ./python-modules/clickgen { }; - -# clickhouse-cityhash = callPackage ./python-modules/clickhouse-cityhash { }; - -# clickhouse-cli = callPackage ./python-modules/clickhouse-cli { }; - -# clickhouse-connect = callPackage ./python-modules/clickhouse-connect { }; - -# clickhouse-driver = callPackage ./python-modules/clickhouse-driver { }; - -# cliff = callPackage ./python-modules/cliff { }; - -# clifford = callPackage ./python-modules/clifford { }; - -# cligj = callPackage ./python-modules/cligj { }; - -# cli-helpers = callPackage ./python-modules/cli-helpers { }; - -# clikit = callPackage ./python-modules/clikit { }; - -# clint = callPackage ./python-modules/clint { }; - -# clintermission = callPackage ./python-modules/clintermission { }; - -# clize = callPackage ./python-modules/clize { }; - -# clldutils = callPackage ./python-modules/clldutils { }; - -# cloudevents = callPackage ./python-modules/cloudevents { }; - -# cloudflare = callPackage ./python-modules/cloudflare { }; - -# cloudpathlib = callPackage ./python-modules/cloudpathlib { }; - -# cloudpickle = callPackage ./python-modules/cloudpickle { }; - -# cloudscraper = callPackage ./python-modules/cloudscraper { }; - -# cloudsmith-api = callPackage ./python-modules/cloudsmith-api { }; - -# cloudsplaining = callPackage ./python-modules/cloudsplaining { }; - -# cloup = callPackage ./python-modules/cloup { }; - -# clustershell = callPackage ./python-modules/clustershell { }; - -# 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-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"; - -# cma = callPackage ./python-modules/cma { }; - -# cmaes = callPackage ./python-modules/cmaes { }; - -# cmake = callPackage ./python-modules/cmake { inherit (pkgs) cmake; }; - -# cmarkgfm = callPackage ./python-modules/cmarkgfm { }; - -# cmd2 = callPackage ./python-modules/cmd2 { }; - -# cmd2-ext-test = callPackage ./python-modules/cmd2-ext-test { }; - -# cmdline = callPackage ./python-modules/cmdline { }; - -# cmdstanpy = callPackage ./python-modules/cmdstanpy { }; - -# cmigemo = callPackage ./python-modules/cmigemo { -# inherit (pkgs) cmigemo; -# }; - -# cmsis-pack-manager = callPackage ./python-modules/cmsis-pack-manager { }; - -# cmsis-svd = callPackage ./python-modules/cmsis-svd { }; - -# cnvkit = callPackage ./python-modules/cnvkit { }; - -# co2signal = callPackage ./python-modules/co2signal { }; - -# coapthon3 = callPackage ./python-modules/coapthon3 { }; - -# coconut = callPackage ./python-modules/coconut { }; - -# cocotb = callPackage ./python-modules/cocotb { }; - -# cocotb-bus = callPackage ./python-modules/cocotb-bus { }; - -# codecov = callPackage ./python-modules/codecov { }; - -# codepy = callPackage ./python-modules/codepy { }; - -# cogapp = callPackage ./python-modules/cogapp { }; - -# coinmetrics-api-client = callPackage ./python-modules/coinmetrics-api-client { }; - -# colanderalchemy = callPackage ./python-modules/colanderalchemy { }; - -# colander = callPackage ./python-modules/colander { }; - -# collections-extended = callPackage ./python-modules/collections-extended { }; - -# collidoscope = callPackage ./python-modules/collidoscope { }; - -# colorama = callPackage ./python-modules/colorama { }; - -# colorcet = callPackage ./python-modules/colorcet { }; - -# colorclass = callPackage ./python-modules/colorclass { }; - -# colored = callPackage ./python-modules/colored { }; - -# colored-traceback = callPackage ./python-modules/colored-traceback { }; - -# coloredlogs = callPackage ./python-modules/coloredlogs { }; - -# colorful = callPackage ./python-modules/colorful { }; - -# colorlog = callPackage ./python-modules/colorlog { }; - -# colorlover = callPackage ./python-modules/colorlover { }; - -# colormath = callPackage ./python-modules/colormath { }; - -# colorspacious = callPackage ./python-modules/colorspacious { }; - -# colorthief = callPackage ./python-modules/colorthief { }; - -# colorzero = callPackage ./python-modules/colorzero { }; - -# colour = callPackage ./python-modules/colour { }; - -# colout = callPackage ./python-modules/colout { }; - -# cometblue-lite = callPackage ./python-modules/cometblue-lite { }; - -# comm = callPackage ./python-modules/comm { }; - -# commandlines = callPackage ./python-modules/commandlines { }; - -# commandparse = callPackage ./python-modules/commandparse { }; - -# commentjson = callPackage ./python-modules/commentjson { }; - -# commoncode = callPackage ./python-modules/commoncode { }; - -# commonmark = callPackage ./python-modules/commonmark { }; - -# compiledb = callPackage ./python-modules/compiledb { }; - -# complycube = callPackage ./python-modules/complycube { }; - -# compreffor = callPackage ./python-modules/compreffor { }; - -# compressai = callPackage ./python-modules/compressai { }; - -# compressed-rtf = callPackage ./python-modules/compressed-rtf { }; - -# concurrent-log-handler = callPackage ./python-modules/concurrent-log-handler { }; - -# conda = callPackage ./python-modules/conda { }; - -# conda-libmamba-solver = callPackage ./python-modules/conda-libmamba-solver { }; - -# conda-package-handling = callPackage ./python-modules/conda-package-handling { }; - -# conda-package-streaming = callPackage ./python-modules/conda-package-streaming { }; - -# confection = callPackage ./python-modules/confection { }; - -# configargparse = callPackage ./python-modules/configargparse { }; - -# configclass = callPackage ./python-modules/configclass { }; - -# configobj = callPackage ./python-modules/configobj { }; - -# configparser = callPackage ./python-modules/configparser { }; - -# configshell = callPackage ./python-modules/configshell { }; - -# configupdater = callPackage ./python-modules/configupdater { }; - -# confluent-kafka = callPackage ./python-modules/confluent-kafka { }; - -# confuse = callPackage ./python-modules/confuse { }; - -# confight = callPackage ./python-modules/confight { }; - -# connexion = callPackage ./python-modules/connexion { }; - -# cons = callPackage ./python-modules/cons { }; - -# consonance = callPackage ./python-modules/consonance { }; - -# constantly = callPackage ./python-modules/constantly { }; - -# construct = callPackage ./python-modules/construct { }; - -# construct-classes = callPackage ./python-modules/construct-classes { }; - -# consul = callPackage ./python-modules/consul { }; - -# container-inspector = callPackage ./python-modules/container-inspector { }; - -# contexter = callPackage ./python-modules/contexter { }; - -# contextlib2 = callPackage ./python-modules/contextlib2 { }; - -# contexttimer = callPackage ./python-modules/contexttimer { }; - -# contourpy = callPackage ./python-modules/contourpy { }; - -# controku = callPackage ./python-modules/controku { }; - -# convertdate = callPackage ./python-modules/convertdate { }; - -# cookiecutter = callPackage ./python-modules/cookiecutter { }; - -# cookies = callPackage ./python-modules/cookies { }; - -# coordinates = callPackage ./python-modules/coordinates { }; - -# coreapi = callPackage ./python-modules/coreapi { }; - -# coredis = callPackage ./python-modules/coredis { }; - -# coreschema = callPackage ./python-modules/coreschema { }; - -# cornice = callPackage ./python-modules/cornice { }; - -# corsair-scan = callPackage ./python-modules/corsair-scan { }; - -# cose = callPackage ./python-modules/cose { }; - -# cot = callPackage ./python-modules/cot { -# qemu = pkgs.qemu; -# }; - -# courlan = callPackage ./python-modules/courlan { }; - -# cov-core = callPackage ./python-modules/cov-core { }; - -# coverage = callPackage ./python-modules/coverage { }; - -# coveralls = callPackage ./python-modules/coveralls { }; - -# cppe = callPackage ./python-modules/cppe { -# inherit (pkgs) cppe; -# }; - -# cppheaderparser = callPackage ./python-modules/cppheaderparser { }; - -# cppy = callPackage ./python-modules/cppy { }; - -# cpufeature = callPackage ./python-modules/cpufeature { }; - -# cpyparsing = callPackage ./python-modules/cpyparsing { }; - -# craft-application-1 = callPackage ./python-modules/craft-application-1 { }; - -# craft-application = callPackage ./python-modules/craft-application { }; - -# craft-archives = callPackage ./python-modules/craft-archives { }; - -# craft-cli = callPackage ./python-modules/craft-cli { }; - -# craft-grammar = callPackage ./python-modules/craft-grammar { }; - -# craft-parts = callPackage ./python-modules/craft-parts { }; - -# craft-providers = callPackage ./python-modules/craft-providers { }; - -# craft-store = callPackage ./python-modules/craft-store { }; - -# cram = callPackage ./python-modules/cram { }; - -# cramjam = callPackage ./python-modules/cramjam { }; - -# crashtest = callPackage ./python-modules/crashtest { }; - -# crate = callPackage ./python-modules/crate { }; - -# crayons = callPackage ./python-modules/crayons { }; - -# crc = callPackage ./python-modules/crc { }; - -# crc16 = callPackage ./python-modules/crc16 { }; - -# crc32c = callPackage ./python-modules/crc32c { }; - -# crccheck = callPackage ./python-modules/crccheck { }; - -# crcmod = callPackage ./python-modules/crcmod { }; - -# credstash = callPackage ./python-modules/credstash { }; - -# criticality-score = callPackage ./python-modules/criticality-score { }; - -# crocoddyl = toPythonModule (callPackage ../development/libraries/crocoddyl { -# pythonSupport = true; -# python3Packages = self; -# }); - -# cron-descriptor = callPackage ./python-modules/cron-descriptor { }; - -# croniter = callPackage ./python-modules/croniter { }; - -# cronsim = callPackage ./python-modules/cronsim { }; - -# crontab = callPackage ./python-modules/crontab { }; - -# crossplane = callPackage ./python-modules/crossplane { }; - -# crownstone-cloud = callPackage ./python-modules/crownstone-cloud { }; - -# crownstone-core = callPackage ./python-modules/crownstone-core { }; - -# crownstone-sse = callPackage ./python-modules/crownstone-sse { }; - -# crownstone-uart = callPackage ./python-modules/crownstone-uart { }; - -# cryptacular = callPackage ./python-modules/cryptacular { }; - -# cryptg = callPackage ./python-modules/cryptg { }; - -# cryptodatahub = callPackage ./python-modules/cryptodatahub { }; - -# cryptography = callPackage ./python-modules/cryptography { -# inherit (pkgs.darwin) libiconv; -# inherit (pkgs.darwin.apple_sdk.frameworks) Security; -# }; - -# cryptolyzer = callPackage ./python-modules/cryptolyzer { }; - -# cryptoparser = callPackage ./python-modules/cryptoparser { }; - -# crysp = callPackage ./python-modules/crysp { }; - -# crytic-compile = callPackage ./python-modules/crytic-compile { }; - -# cson = callPackage ./python-modules/cson { }; - -# csrmesh = callPackage ./python-modules/csrmesh { }; - -# cssbeautifier = callPackage ./python-modules/cssbeautifier { }; - -# csscompressor = callPackage ./python-modules/csscompressor { }; - -# cssmin = callPackage ./python-modules/cssmin { }; - -# 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-parser = callPackage ./python-modules/css-parser { }; - -# cssselect2 = callPackage ./python-modules/cssselect2 { }; - -# cssselect = callPackage ./python-modules/cssselect { }; - -# cssutils = callPackage ./python-modules/cssutils { }; - -# cstruct = callPackage ./python-modules/cstruct { }; - -# csvw = callPackage ./python-modules/csvw { }; - -# ctap-keyring-device = callPackage ./python-modules/ctap-keyring-device { }; - -# ctranslate2 = callPackage ./python-modules/ctranslate2 { -# ctranslate2-cpp = pkgs.ctranslate2; -# }; - -# cu2qu = callPackage ./python-modules/cu2qu { }; - -# cucumber-tag-expressions = callPackage ./python-modules/cucumber-tag-expressions { }; - -# 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; }; - -# curio = callPackage ./python-modules/curio { }; - -# curlify = callPackage ./python-modules/curlify { }; - -# curtsies = callPackage ./python-modules/curtsies { }; - -# curve25519-donna = callPackage ./python-modules/curve25519-donna { }; - -# cvelib = callPackage ./python-modules/cvelib { }; - -# cvss = callPackage ./python-modules/cvss { }; - -# cvxopt = callPackage ./python-modules/cvxopt { }; - -# cvxpy = callPackage ./python-modules/cvxpy { }; - -# cwcwidth = callPackage ./python-modules/cwcwidth { }; - -# cwl-upgrader = callPackage ./python-modules/cwl-upgrader { }; - -# cwl-utils = callPackage ./python-modules/cwl-utils { }; - -# cwlformat = callPackage ./python-modules/cwlformat { }; - -# cx-freeze = callPackage ./python-modules/cx-freeze { }; - -# cx-oracle = callPackage ./python-modules/cx-oracle { }; - -# cxxfilt = callPackage ./python-modules/cxxfilt { }; - -# cycler = callPackage ./python-modules/cycler { }; - -# cyclonedx-python-lib = callPackage ./python-modules/cyclonedx-python-lib { }; - -# cymem = callPackage ./python-modules/cymem { }; - -# cypari2 = callPackage ./python-modules/cypari2 { }; - -# cypherpunkpay = callPackage ./python-modules/cypherpunkpay { }; - -# cysignals = callPackage ./python-modules/cysignals { }; - - cython = callPackage ./python-modules/cython { }; - -# cython_0 = callPackage ./python-modules/cython/0.nix { }; - -# cython-test-exception-raiser = callPackage ./python-modules/cython-test-exception-raiser { }; - -# cytoolz = callPackage ./python-modules/cytoolz { }; - -# dacite = callPackage ./python-modules/dacite { }; - -# daemonize = callPackage ./python-modules/daemonize { }; - -# daemonocle = callPackage ./python-modules/daemonocle { }; - -# daff = callPackage ./python-modules/daff { }; - -# daiquiri = callPackage ./python-modules/daiquiri { }; - -# dalle-mini = callPackage ./python-modules/dalle-mini { }; - -# daphne = callPackage ./python-modules/daphne { }; - -# daqp = callPackage ./python-modules/daqp { }; - -# darkdetect = callPackage ./python-modules/darkdetect { }; - -# dasbus = callPackage ./python-modules/dasbus { }; - -# dash = callPackage ./python-modules/dash { }; - -# dash-core-components = callPackage ./python-modules/dash-core-components { }; - -# dash-html-components = callPackage ./python-modules/dash-html-components { }; - -# dash-renderer = callPackage ./python-modules/dash-renderer { }; - -# dash-table = callPackage ./python-modules/dash-table { }; - -# dashing = callPackage ./python-modules/dashing { }; - -# dask = callPackage ./python-modules/dask { }; - -# dask-awkward = callPackage ./python-modules/dask-awkward { }; - -# dask-expr = callPackage ./python-modules/dask-expr { }; - -# dask-gateway = callPackage ./python-modules/dask-gateway { }; - -# dask-gateway-server = callPackage ./python-modules/dask-gateway-server { }; - -# dask-glm = callPackage ./python-modules/dask-glm { }; - -# dask-histogram = callPackage ./python-modules/dask-histogram { }; - -# dask-image = callPackage ./python-modules/dask-image { }; - -# dask-jobqueue = callPackage ./python-modules/dask-jobqueue { }; - -# dask-ml = callPackage ./python-modules/dask-ml { }; - -# dask-mpi = callPackage ./python-modules/dask-mpi { }; - -# dask-yarn = callPackage ./python-modules/dask-yarn { }; - -# databases = callPackage ./python-modules/databases { }; - -# databricks-cli = callPackage ./python-modules/databricks-cli { }; - -# databricks-connect = callPackage ./python-modules/databricks-connect { }; - -# databricks-sql-connector = callPackage ./python-modules/databricks-sql-connector { }; - -# dataclass-factory = callPackage ./python-modules/dataclass-factory { }; - -# dataclass-wizard = callPackage ./python-modules/dataclass-wizard { }; - -# dataclasses-json = callPackage ./python-modules/dataclasses-json { }; - -# dataclasses-serialization = callPackage ./python-modules/dataclasses-serialization { }; - -# datadiff = callPackage ./python-modules/datadiff { }; - -# datadog = callPackage ./python-modules/datadog { }; - -# datafusion = callPackage ./python-modules/datafusion { -# inherit (pkgs.darwin.apple_sdk.frameworks) Security SystemConfiguration; -# }; - -# datamodeldict = callPackage ./python-modules/datamodeldict { }; - -# datapoint = callPackage ./python-modules/datapoint { }; - -# dataprep-ml = callPackage ./python-modules/dataprep-ml { }; - -# dataproperty = callPackage ./python-modules/dataproperty { }; - -# dataset = callPackage ./python-modules/dataset { }; - -# datasets = callPackage ./python-modules/datasets { }; - -# datasette = callPackage ./python-modules/datasette { }; - -# datasette-publish-fly = callPackage ./python-modules/datasette-publish-fly { }; - -# datasette-template-sql = callPackage ./python-modules/datasette-template-sql { }; - -# datashader = callPackage ./python-modules/datashader { }; - -# datashape = callPackage ./python-modules/datashape { }; - -# datatable = callPackage ./python-modules/datatable { }; - -# datauri = callPackage ./python-modules/datauri { }; - -# datefinder = callPackage ./python-modules/datefinder { }; - -# dateparser = callPackage ./python-modules/dateparser { }; - -# datetime = callPackage ./python-modules/datetime { }; - -# dateutils = callPackage ./python-modules/dateutils { }; - -# datrie = callPackage ./python-modules/datrie { }; - -# dawg-python = callPackage ./python-modules/dawg-python { }; - -# dazl = callPackage ./python-modules/dazl { }; - -# dbf = callPackage ./python-modules/dbf { }; - -# dbfread = callPackage ./python-modules/dbfread { }; - -# dbglib = callPackage ./python-modules/dbglib { }; - -# dbt-bigquery = callPackage ./python-modules/dbt-bigquery { }; - -# dbt-core = callPackage ./python-modules/dbt-core { }; - -# dbt-extractor = callPackage ./python-modules/dbt-extractor { }; - -# dbt-postgres = callPackage ./python-modules/dbt-postgres { }; - -# dbt-redshift = callPackage ./python-modules/dbt-redshift { }; - -# dbt-semantic-interfaces = callPackage ./python-modules/dbt-semantic-interfaces { }; - -# dbt-snowflake = callPackage ./python-modules/dbt-snowflake { }; - -# dbus-client-gen = callPackage ./python-modules/dbus-client-gen { }; - -# dbus-deviation = callPackage ./python-modules/dbus-deviation { }; - -# dbus-fast = callPackage ./python-modules/dbus-fast { }; - -# dbus-next = callPackage ./python-modules/dbus-next { }; - -# dbus-python = callPackage ./python-modules/dbus-python { -# inherit (pkgs) dbus; -# }; - -# dbus-python-client-gen = callPackage ./python-modules/dbus-python-client-gen { }; - -# dbus-signature-pyparsing = callPackage ./python-modules/dbus-signature-pyparsing { }; - -# dbutils = callPackage ./python-modules/dbutils { }; - -# db-dtypes = callPackage ./python-modules/db-dtypes { }; - -# dcmstack = callPackage ./python-modules/dcmstack { }; - -# dctorch = callPackage ./python-modules/dctorch { }; - -# ddt = callPackage ./python-modules/ddt { }; - -# deal = callPackage ./python-modules/deal { }; - -# deal-solver = callPackage ./python-modules/deal-solver { }; - -# deap = callPackage ./python-modules/deap { }; - -# debian = callPackage ./python-modules/debian { }; - -# debianbts = callPackage ./python-modules/debianbts { }; - -# debian-inspector = callPackage ./python-modules/debian-inspector { }; - -# debtcollector = callPackage ./python-modules/debtcollector { }; - -# debts = callPackage ./python-modules/debts { }; - -# debugpy = callPackage ./python-modules/debugpy { }; - -# debuglater = callPackage ./python-modules/debuglater { }; - -# decli = callPackage ./python-modules/decli { }; - -# decorator = callPackage ./python-modules/decorator { }; - -# decopatch = callPackage ./python-modules/decopatch { }; - -# deebot-client = callPackage ./python-modules/deebot-client { }; - -# deemix = callPackage ./python-modules/deemix { }; - -# deep-chainmap = callPackage ./python-modules/deep-chainmap { }; - -# deepdiff = callPackage ./python-modules/deepdiff { }; - -# deepdish = callPackage ./python-modules/deepdish { }; - -# deepl = callPackage ./python-modules/deepl { }; - -# deepmerge = callPackage ./python-modules/deepmerge { }; - -# deeptoolsintervals = callPackage ./python-modules/deeptoolsintervals { }; - -# deepwave = callPackage ./python-modules/deepwave { }; - -# deep-translator = callPackage ./python-modules/deep-translator { }; - -# deezer-py = callPackage ./python-modules/deezer-py { }; - -# deezer-python = callPackage ./python-modules/deezer-python { }; - -# defang = callPackage ./python-modules/defang { }; - -# defcon = callPackage ./python-modules/defcon { }; - -# deform = callPackage ./python-modules/deform { }; - -# defusedcsv = callPackage ./python-modules/defusedcsv { }; - -# defusedxml = callPackage ./python-modules/defusedxml { }; - -# dehinter = callPackage ./python-modules/dehinter { }; - -# deid = callPackage ./python-modules/deid { }; - -# dek = callPackage ./python-modules/dek { }; - -# delegator-py = callPackage ./python-modules/delegator-py { }; - -# delorean = callPackage ./python-modules/delorean { }; - -# deltachat = callPackage ./python-modules/deltachat { }; - -# deluge-client = callPackage ./python-modules/deluge-client { }; - -# demes = callPackage ./python-modules/demes { }; - -# demesdraw = callPackage ./python-modules/demesdraw { }; - -# demetriek = callPackage ./python-modules/demetriek { }; - -# demjson3 = callPackage ./python-modules/demjson3 { }; - -# demoji = callPackage ./python-modules/demoji { }; - -# dendropy = callPackage ./python-modules/dendropy { }; - -# denonavr = callPackage ./python-modules/denonavr { }; - -# dep-logic = callPackage ./python-modules/dep-logic { }; - -# dependency-injector = callPackage ./python-modules/dependency-injector { }; - -# deploykit = callPackage ./python-modules/deploykit { }; - -# deprecat = callPackage ./python-modules/deprecat { }; - -# deprecated = callPackage ./python-modules/deprecated { }; - -# deprecation = callPackage ./python-modules/deprecation { }; - -# derpconf = callPackage ./python-modules/derpconf { }; - -# desktop-entry-lib = callPackage ./python-modules/desktop-entry-lib { }; - -# desktop-notifier = callPackage ./python-modules/desktop-notifier { }; - -# detect-secrets = callPackage ./python-modules/detect-secrets { }; - -# detectron2 = callPackage ./python-modules/detectron2 { }; - -# devialet = callPackage ./python-modules/devialet { }; - -# devito = callPackage ./python-modules/devito { }; - -# devolo-home-control-api = callPackage ./python-modules/devolo-home-control-api { }; - -# devolo-plc-api = callPackage ./python-modules/devolo-plc-api { }; - -# devpi-common = callPackage ./python-modules/devpi-common { }; - -# devtools = callPackage ./python-modules/devtools { }; - -# dfdiskcache = callPackage ./python-modules/dfdiskcache { }; - -# diagrams = callPackage ./python-modules/diagrams { }; - -# diceware = callPackage ./python-modules/diceware { }; - -# dicom2nifti = callPackage ./python-modules/dicom2nifti { }; - -# dicom-numpy = callPackage ./python-modules/dicom-numpy { }; - -# dicomweb-client = callPackage ./python-modules/dicomweb-client { }; - -# dict2xml = callPackage ./python-modules/dict2xml { }; - -# dictdiffer = callPackage ./python-modules/dictdiffer { }; - -# dictionaries = callPackage ./python-modules/dictionaries { }; - -# dicttoxml = callPackage ./python-modules/dicttoxml { }; - -# dicttoxml2 = callPackage ./python-modules/dicttoxml2 { }; - -# diff-cover = callPackage ./python-modules/diff-cover { }; - -# diff-match-patch = callPackage ./python-modules/diff-match-patch { }; - -# diffimg = callPackage ./python-modules/diffimg { }; - -# diffsync = callPackage ./python-modules/diffsync { }; - -# diffusers = callPackage ./python-modules/diffusers { }; - -# digi-xbee = callPackage ./python-modules/digi-xbee { }; - -# dill = callPackage ./python-modules/dill { }; - -# dingz = callPackage ./python-modules/dingz { }; - -# dinghy = callPackage ./python-modules/dinghy { }; - -# diofant = callPackage ./python-modules/diofant { }; - -# dipy = callPackage ./python-modules/dipy { }; - -# directv = callPackage ./python-modules/directv { }; - -# dirigera = callPackage ./python-modules/dirigera { }; - -# dirty-equals = callPackage ./python-modules/dirty-equals { }; - -# dirtyjson = callPackage ./python-modules/dirtyjson { }; - -# discid = callPackage ./python-modules/discid { }; - -# discogs-client = callPackage ./python-modules/discogs-client { }; - -# discordpy = callPackage ./python-modules/discordpy { }; - -# discovery30303 = callPackage ./python-modules/discovery30303 { }; - -# diskcache = callPackage ./python-modules/diskcache { }; - -# dissect = callPackage ./python-modules/dissect { }; - -# dissect-btrfs = callPackage ./python-modules/dissect-btrfs { }; - -# dissect-cim = callPackage ./python-modules/dissect-cim { }; - -# dissect-clfs = callPackage ./python-modules/dissect-clfs { }; - -# dissect-cobaltstrike = callPackage ./python-modules/dissect-cobaltstrike { }; - -# dissect-cstruct = callPackage ./python-modules/dissect-cstruct { }; - -# dissect-fat = callPackage ./python-modules/dissect-fat { }; - -# dissect-ffs = callPackage ./python-modules/dissect-ffs { }; - -# dissect-esedb = callPackage ./python-modules/dissect-esedb { }; - -# dissect-etl = callPackage ./python-modules/dissect-etl { }; - -# dissect-eventlog = callPackage ./python-modules/dissect-eventlog { }; - -# dissect-evidence = callPackage ./python-modules/dissect-evidence { }; - -# dissect-executable = callPackage ./python-modules/dissect-executable { }; - -# dissect-extfs = callPackage ./python-modules/dissect-extfs { }; - -# dissect-hypervisor = callPackage ./python-modules/dissect-hypervisor { }; - -# dissect-jffs = callPackage ./python-modules/dissect-jffs { }; - -# dissect-ntfs = callPackage ./python-modules/dissect-ntfs { }; - -# dissect-ole = callPackage ./python-modules/dissect-ole { }; - -# dissect-regf = callPackage ./python-modules/dissect-regf { }; - -# dissect-shellitem = callPackage ./python-modules/dissect-shellitem { }; - -# dissect-squashfs = callPackage ./python-modules/dissect-squashfs { }; - -# dissect-sql = callPackage ./python-modules/dissect-sql { }; - -# dissect-target = callPackage ./python-modules/dissect-target { }; - -# dissect-thumbcache = callPackage ./python-modules/dissect-thumbcache { }; - -# dissect-util = callPackage ./python-modules/dissect-util { }; - -# dissect-vmfs = callPackage ./python-modules/dissect-vmfs { }; - -# dissect-volume = callPackage ./python-modules/dissect-volume { }; - -# dissect-xfs = callPackage ./python-modules/dissect-xfs { }; - -# dissononce = callPackage ./python-modules/dissononce { }; - -# distlib = callPackage ./python-modules/distlib { }; - -# distorm3 = callPackage ./python-modules/distorm3 { }; - -# distrax = callPackage ./python-modules/distrax { }; - -# distributed = callPackage ./python-modules/distributed { }; - -# distro = callPackage ./python-modules/distro { }; - -# distutils-extra = callPackage ./python-modules/distutils-extra { }; - -# # 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 { }; - -# # Pre-release -# django_5 = callPackage ./python-modules/django/5.nix { }; - -# django-admin-datta = callPackage ./python-modules/django-admin-datta { }; - -# django-admin-sortable2 = callPackage ./python-modules/django-admin-sortable2 { }; - -# django-allauth = callPackage ./python-modules/django-allauth { }; - -# django-allauth-2fa = callPackage ./python-modules/django-allauth-2fa { }; - -# django-anymail = callPackage ./python-modules/django-anymail { }; - -# django-annoying = callPackage ./python-modules/django-annoying { }; - -# django-appconf = callPackage ./python-modules/django-appconf { }; - -# django-auditlog = callPackage ./python-modules/django-auditlog { }; - -# django-auth-ldap = callPackage ./python-modules/django-auth-ldap { }; - -# django-autocomplete-light = callPackage ./python-modules/django-autocomplete-light { }; - -# django-bootstrap3 = callPackage ./python-modules/django-bootstrap3 { }; - -# django-bootstrap4 = callPackage ./python-modules/django-bootstrap4 { }; - -# django-bootstrap5 = callPackage ./python-modules/django-bootstrap5 { }; - -# django-cachalot = callPackage ./python-modules/django-cachalot { }; - -# django-cache-url = callPackage ./python-modules/django-cache-url { }; - -# django-cacheops = callPackage ./python-modules/django-cacheops { }; - -# django-celery-beat = callPackage ./python-modules/django-celery-beat { }; - -# django-celery-email = callPackage ./python-modules/django-celery-email { }; - -# django-celery-results = callPackage ./python-modules/django-celery-results { }; - -# django-ckeditor = callPackage ./python-modules/django-ckeditor { }; - -# django-classy-tags = callPackage ./python-modules/django-classy-tags { }; - -# django-cleanup = callPackage ./python-modules/django-cleanup { }; - -# django-colorful = callPackage ./python-modules/django-colorful { }; - -# django-compressor = callPackage ./python-modules/django-compressor { }; - -# django-compression-middleware = callPackage ./python-modules/django-compression-middleware { }; - -# django-configurations = callPackage ./python-modules/django-configurations { }; - -# django-context-decorator = callPackage ./python-modules/django-context-decorator { }; - -# django-contrib-comments = callPackage ./python-modules/django-contrib-comments { }; - -# django-cors-headers = callPackage ./python-modules/django-cors-headers { }; - -# django-countries = callPackage ./python-modules/django-countries { }; - -# django-crispy-bootstrap4 = callPackage ./python-modules/django-crispy-bootstrap4 { }; - -# django-crispy-bootstrap5 = callPackage ./python-modules/django-crispy-bootstrap5 { }; - -# django-crispy-forms = callPackage ./python-modules/django-crispy-forms { }; - -# django-crontab = callPackage ./python-modules/django-crontab { }; - -# django-cryptography = callPackage ./python-modules/django-cryptography { }; - -# django-csp = callPackage ./python-modules/django-csp { }; - -# django-currentuser = callPackage ./python-modules/django-currentuser { }; - -# django-debug-toolbar = callPackage ./python-modules/django-debug-toolbar { }; - -# django-dynamic-preferences = callPackage ./python-modules/django-dynamic-preferences { }; - -# django-encrypted-model-fields = callPackage ./python-modules/django-encrypted-model-fields { }; - -# django-environ = callPackage ./python-modules/django-environ { }; - -# django-extensions = callPackage ./python-modules/django-extensions { }; - -# django-filter = callPackage ./python-modules/django-filter { }; - -# django-formtools = callPackage ./python-modules/django-formtools { }; - -# django-formset-js-improved = callPackage ./python-modules/django-formset-js-improved { }; - -# django-graphiql-debug-toolbar = callPackage ./python-modules/django-graphiql-debug-toolbar { }; - -# django-gravatar2 = callPackage ./python-modules/django-gravatar2 { }; - -# django-google-analytics-app = callPackage ./python-modules/django-google-analytics-app { }; - -# django-guardian = callPackage ./python-modules/django-guardian { }; - -# django-haystack = callPackage ./python-modules/django-haystack { }; - -# django-hcaptcha = callPackage ./python-modules/django-hcaptcha { }; - -# django-health-check = callPackage ./python-modules/django-health-check { }; - -# django-hierarkey = callPackage ./python-modules/django-hierarkey { }; - -# django-hijack = callPackage ./python-modules/django-hijack { }; - -# django-i18nfield = callPackage ./python-modules/django-i18nfield { }; - -# django-import-export = callPackage ./python-modules/django-import-export { }; - -# django-ipware = callPackage ./python-modules/django-ipware { }; - -# django-jinja = callPackage ./python-modules/django-jinja2 { }; - -# django-jquery-js = callPackage ./python-modules/django-jquery-js { }; - -# django-js-asset = callPackage ./python-modules/django-js-asset { }; - -# django-js-reverse = callPackage ./python-modules/django-js-reverse { }; - -# django-libsass = callPackage ./python-modules/django-libsass { }; - -# django-leaflet = callPackage ./python-modules/django-leaflet { }; - -# django-logentry-admin = callPackage ./python-modules/django-logentry-admin { }; - -# django-login-required-middleware = callPackage ./python-modules/django-login-required-middleware { }; - -# django-localflavor = callPackage ./python-modules/django-localflavor { }; - -# django-mailman3 = callPackage ./python-modules/django-mailman3 { }; - -# django-markup = callPackage ./python-modules/django-markup { }; - -# django-markdownx = callPackage ./python-modules/django-markdownx { }; - -# django-model-utils = callPackage ./python-modules/django-model-utils { }; - -# django-modelcluster = callPackage ./python-modules/django-modelcluster { }; - -# django-modeltranslation = callPackage ./python-modules/django-modeltranslation { }; - -# django-multiselectfield = callPackage ./python-modules/django-multiselectfield { }; - -# django-maintenance-mode = callPackage ./python-modules/django-maintenance-mode { }; - -# django-mdeditor = callPackage ./python-modules/django-mdeditor { }; - -# django-mptt = callPackage ./python-modules/django-mptt { }; - -# django-mysql = callPackage ./python-modules/django-mysql { }; - -# django-ninja = callPackage ./python-modules/django-ninja { }; - -# django-nose = callPackage ./python-modules/django-nose { }; - -# django-oauth-toolkit = callPackage ./python-modules/django-oauth-toolkit { }; - -# django-otp = callPackage ./python-modules/django-otp { }; - -# django-paintstore = callPackage ./python-modules/django-paintstore { }; - -# django-parler = callPackage ./python-modules/django-parler { }; - -# django-pattern-library = callPackage ./python-modules/django-pattern-library { }; - -# django-payments = callPackage ./python-modules/django-payments { }; - -# django-pglocks = callPackage ./python-modules/django-pglocks { }; - -# django-phonenumber-field = callPackage ./python-modules/django-phonenumber-field { }; - -# django-picklefield = callPackage ./python-modules/django-picklefield { }; - -# django-polymorphic = callPackage ./python-modules/django-polymorphic { }; - -# django-postgresql-netfields = callPackage ./python-modules/django-postgresql-netfields { }; - -# django-prometheus = callPackage ./python-modules/django-prometheus { }; - -# django-pwa = callPackage ./python-modules/django-pwa { }; - -# django-q = callPackage ./python-modules/django-q { }; - -# django-scheduler = callPackage ./python-modules/django-scheduler { }; - -# django-scim2 = callPackage ./python-modules/django-scim2 { }; - -# django-shortuuidfield = callPackage ./python-modules/django-shortuuidfield { }; - -# django-scopes = callPackage ./python-modules/django-scopes { }; - -# djangoql = callPackage ./python-modules/djangoql { }; - -# django-ranged-response = callPackage ./python-modules/django-ranged-response { }; - -# django-raster = callPackage ./python-modules/django-raster { }; - -# django-redis = callPackage ./python-modules/django-redis { }; - -# django-rest-auth = callPackage ./python-modules/django-rest-auth { }; - -# django-rest-polymorphic = callPackage ./python-modules/django-rest-polymorphic { }; - -# django-rest-registration = callPackage ./python-modules/django-rest-registration { }; - -# django-rosetta = callPackage ./python-modules/django-rosetta { }; - -# django-rq = callPackage ./python-modules/django-rq { }; - -# djangorestframework = callPackage ./python-modules/djangorestframework { }; - -# djangorestframework-dataclasses = callPackage ./python-modules/djangorestframework-dataclasses { }; - -# djangorestframework-camel-case = callPackage ./python-modules/djangorestframework-camel-case { }; - -# djangorestframework-guardian = callPackage ./python-modules/djangorestframework-guardian { }; - -# djangorestframework-guardian2 = callPackage ./python-modules/djangorestframework-guardian2 { }; - -# djangorestframework-recursive = callPackage ./python-modules/djangorestframework-recursive { }; - -# djangorestframework-simplejwt = callPackage ./python-modules/djangorestframework-simplejwt { }; - -# djangorestframework-stubs = callPackage ./python-modules/djangorestframework-stubs { }; - -# django-reversion = callPackage ./python-modules/django-reversion { }; - -# django-sekizai = callPackage ./python-modules/django-sekizai { }; - -# django-sesame = callPackage ./python-modules/django-sesame { }; - -# django-silk = callPackage ./python-modules/django-silk { }; - -# django-simple-captcha = callPackage ./python-modules/django-simple-captcha { }; - -# django-simple-history = callPackage ./python-modules/django-simple-history { }; - -# django-sites = callPackage ./python-modules/django-sites { }; - -# django-sr = callPackage ./python-modules/django-sr { }; - -# django-statici18n = callPackage ./python-modules/django-statici18n { }; - -# django-storages = callPackage ./python-modules/django-storages { }; - -# django-stubs = callPackage ./python-modules/django-stubs { }; - -# django-stubs-ext = callPackage ./python-modules/django-stubs-ext { }; - -# django-tables2 = callPackage ./python-modules/django-tables2 { }; - -# django-tagging = callPackage ./python-modules/django-tagging { }; - -# django-taggit = callPackage ./python-modules/django-taggit { }; - -# django-tastypie = callPackage ./python-modules/django-tastypie { }; - -# django-timezone-field = callPackage ./python-modules/django-timezone-field { }; - -# django-treebeard = callPackage ./python-modules/django-treebeard { }; - -# django-two-factor-auth = callPackage ./python-modules/django-two-factor-auth { }; - -# django-types = callPackage ./python-modules/django-types { }; - -# django-versatileimagefield = callPackage ./python-modules/django-versatileimagefield { }; - -# django-vite = callPackage ./python-modules/django-vite { }; - -# django-webpack-loader = callPackage ./python-modules/django-webpack-loader { }; - -# django-webpush = callPackage ./python-modules/django-webpush { }; - -# django-widget-tweaks = callPackage ./python-modules/django-widget-tweaks { }; - -# dj-database-url = callPackage ./python-modules/dj-database-url { }; - -# dj-email-url = callPackage ./python-modules/dj-email-url { }; - -# djmail = callPackage ./python-modules/djmail { }; - -# dj-rest-auth = callPackage ./python-modules/dj-rest-auth { }; - -# dj-search-url = callPackage ./python-modules/dj-search-url { }; - -# dj-static = callPackage ./python-modules/dj-static { }; - -# dkimpy = callPackage ./python-modules/dkimpy { }; - -# dlib = callPackage ./python-modules/dlib { -# inherit (pkgs) dlib; -# }; - -# dlinfo = callPackage ./python-modules/dlinfo { }; - -# dllogger = callPackage ./python-modules/dllogger { }; - -# dlms-cosem = callPackage ./python-modules/dlms-cosem { }; - -# dlx = callPackage ./python-modules/dlx { }; - -# dmenu-python = callPackage ./python-modules/dmenu { }; - -# dm-env = callPackage ./python-modules/dm-env { }; - -# dm-haiku = callPackage ./python-modules/dm-haiku { }; - -# dm-sonnet = callPackage ./python-modules/dm-sonnet { }; - -# dm-tree = callPackage ./python-modules/dm-tree { -# abseil-cpp = pkgs.abseil-cpp_202103.override { -# cxxStandard = "14"; -# }; -# }; - -# dnachisel = callPackage ./python-modules/dnachisel { }; - -# dnf-plugins-core = callPackage ./python-modules/dnf-plugins-core { }; - -# dnf4 = callPackage ./python-modules/dnf4 { }; - -# dnfile = callPackage ./python-modules/dnfile { }; - -# dnslib = callPackage ./python-modules/dnslib { }; - -# dnspython = callPackage ./python-modules/dnspython { }; - -# dns-lexicon = callPackage ./python-modules/dns-lexicon { }; - -# doc8 = callPackage ./python-modules/doc8 { }; - -# docformatter = callPackage ./python-modules/docformatter { }; - -# docker = callPackage ./python-modules/docker { }; - -# dockerfile-parse = callPackage ./python-modules/dockerfile-parse { }; - -# dockerpty = callPackage ./python-modules/dockerpty { }; - -# docker-pycreds = callPackage ./python-modules/docker-pycreds { }; - -# docker-py = callPackage ./python-modules/docker-py { }; - -# dockerspawner = callPackage ./python-modules/dockerspawner { }; - -# docloud = callPackage ./python-modules/docloud { }; - -# docstr-coverage = callPackage ./python-modules/docstr-coverage { }; - -# docstring-to-markdown = callPackage ./python-modules/docstring-to-markdown { }; - -# docstring-parser = callPackage ./python-modules/docstring-parser { }; - -# docopt = callPackage ./python-modules/docopt { }; - -# docopt-ng = callPackage ./python-modules/docopt-ng { }; - -# docplex = callPackage ./python-modules/docplex { }; - -# docrep = callPackage ./python-modules/docrep { }; - -# doctest-ignore-unicode = callPackage ./python-modules/doctest-ignore-unicode { }; - - docutils = callPackage ./python-modules/docutils { }; - -# docx2python = callPackage ./python-modules/docx2python { }; - -# docx2txt = callPackage ./python-modules/docx2txt { }; - -# dodgy = callPackage ./python-modules/dodgy { }; - -# dogpile-cache = callPackage ./python-modules/dogpile-cache { }; - -# dogtag-pki = callPackage ./python-modules/dogtag-pki { }; - -# dogtail = callPackage ./python-modules/dogtail { }; - -# doit = callPackage ./python-modules/doit { }; - -# doit-py = callPackage ./python-modules/doit-py { }; - -# dokuwiki = callPackage ./python-modules/dokuwiki { }; - -# domeneshop = callPackage ./python-modules/domeneshop { }; - -# dominate = callPackage ./python-modules/dominate { }; - -# doorbirdpy = callPackage ./python-modules/doorbirdpy { }; - -# dopy = callPackage ./python-modules/dopy { }; - -# dotty-dict = callPackage ./python-modules/dotty-dict { }; - -# dot2tex = callPackage ./python-modules/dot2tex { -# inherit (pkgs) graphviz; -# }; - -# dotwiz = callPackage ./python-modules/dotwiz { }; - -# dotmap = callPackage ./python-modules/dotmap { }; - -# downloader-cli = callPackage ./python-modules/downloader-cli { }; - -# dparse = callPackage ./python-modules/dparse { }; - -# dparse2 = callPackage ./python-modules/dparse2 { }; - -# dpath = callPackage ./python-modules/dpath { }; - -# dpcontracts = callPackage ./python-modules/dpcontracts { }; - -# dpkt = callPackage ./python-modules/dpkt { }; - -# dploot = callPackage ./python-modules/dploot { }; - -# draftjs-exporter = callPackage ./python-modules/draftjs-exporter { }; - -# dragonfly = callPackage ./python-modules/dragonfly { }; - -# dramatiq = callPackage ./python-modules/dramatiq { }; - -# drawille = callPackage ./python-modules/drawille { }; - -# drawilleplot = callPackage ./python-modules/drawilleplot { }; - -# dremel3dpy = callPackage ./python-modules/dremel3dpy { }; - -# drf-jwt = callPackage ./python-modules/drf-jwt { }; - -# drf-nested-routers = callPackage ./python-modules/drf-nested-routers { }; - -# drf-spectacular = callPackage ./python-modules/drf-spectacular { }; - -# drf-spectacular-sidecar = callPackage ./python-modules/drf-spectacular-sidecar { }; - -# drf-ujson2 = callPackage ./python-modules/drf-ujson2 { }; - -# drf-writable-nested = callPackage ./python-modules/drf-writable-nested { }; - -# drf-yasg = callPackage ./python-modules/drf-yasg { }; - -# drivelib = callPackage ./python-modules/drivelib { }; - -# drms = callPackage ./python-modules/drms { }; - -# dronecan = callPackage ./python-modules/dronecan { }; - -# dropbox = callPackage ./python-modules/dropbox { }; - -# dropmqttapi = callPackage ./python-modules/dropmqttapi { }; - -# ds-store = callPackage ./python-modules/ds-store { }; - -# ds4drv = callPackage ./python-modules/ds4drv { }; - -# dsinternals = callPackage ./python-modules/dsinternals { }; - -# dsmr-parser = callPackage ./python-modules/dsmr-parser { }; - -# dsnap = callPackage ./python-modules/dsnap { }; - -# dtlssocket = callPackage ./python-modules/dtlssocket { }; - -# dtschema = callPackage ./python-modules/dtschema { }; - -# dtw-python = callPackage ./python-modules/dtw-python { }; - -# ducc0 = callPackage ./python-modules/ducc0 { }; - -# duckdb = callPackage ./python-modules/duckdb { -# inherit (pkgs) duckdb; -# }; - -# duckdb-engine = callPackage ./python-modules/duckdb-engine { }; - -# duckduckgo-search = callPackage ./python-modules/duckduckgo-search { }; - -# duct-py = callPackage ./python-modules/duct-py { }; - -# duden = callPackage ./python-modules/duden { }; - -# duecredit = callPackage ./python-modules/duecredit { }; - -# duet = callPackage ./python-modules/duet { }; - -# dufte = callPackage ./python-modules/dufte { }; - -# dugong = callPackage ./python-modules/dugong { }; - -# dulwich = callPackage ./python-modules/dulwich { -# inherit (pkgs) gnupg; -# }; - -# dunamai = callPackage ./python-modules/dunamai { }; - -# dungeon-eos = callPackage ./python-modules/dungeon-eos { }; - -# duo-client = callPackage ./python-modules/duo-client { }; - -# durus = callPackage ./python-modules/durus { }; - -# dvc = callPackage ./python-modules/dvc { }; - -# dvc-azure = callPackage ./python-modules/dvc-azure { }; - -# dvc-data = callPackage ./python-modules/dvc-data { }; - -# dvc-gdrive = callPackage ./python-modules/dvc-gdrive { }; - -# dvc-gs = callPackage ./python-modules/dvc-gs { }; - -# dvc-hdfs = callPackage ./python-modules/dvc-hdfs { }; - -# dvc-http = callPackage ./python-modules/dvc-http { }; - -# dvc-objects = callPackage ./python-modules/dvc-objects { }; - -# dvc-render = callPackage ./python-modules/dvc-render { }; - -# dvc-s3 = callPackage ./python-modules/dvc-s3 { }; - -# dvc-ssh = callPackage ./python-modules/dvc-ssh { }; - -# dvc-studio-client = callPackage ./python-modules/dvc-studio-client { }; - -# dvc-task = callPackage ./python-modules/dvc-task { }; - -# dvclive = callPackage ./python-modules/dvclive { }; - -# dwdwfsapi = callPackage ./python-modules/dwdwfsapi { }; - -# dyn = callPackage ./python-modules/dyn { }; - -# dynalite-devices = callPackage ./python-modules/dynalite-devices { }; - -# dynalite-panel = callPackage ./python-modules/dynalite-panel { }; - -# dynd = callPackage ./python-modules/dynd { }; - -# dsl2html = callPackage ./python-modules/dsl2html { }; - -# e3-core = callPackage ./python-modules/e3-core { }; - -# e3-testsuite = callPackage ./python-modules/e3-testsuite { }; - -# eagle100 = callPackage ./python-modules/eagle100 { }; - -# easydict = callPackage ./python-modules/easydict { }; - -# easyenergy = callPackage ./python-modules/easyenergy { }; - -# easygui = callPackage ./python-modules/easygui { }; - -# easyocr = callPackage ./python-modules/easyocr { }; - -# easyprocess = callPackage ./python-modules/easyprocess { }; - -# easy-thumbnails = callPackage ./python-modules/easy-thumbnails { }; - -# easywatch = callPackage ./python-modules/easywatch { }; - -# ebaysdk = callPackage ./python-modules/ebaysdk { }; - -# ebcdic = callPackage ./python-modules/ebcdic { }; - -# ebooklib = callPackage ./python-modules/ebooklib { }; - -# ec2instanceconnectcli = callPackage ../tools/virtualization/ec2instanceconnectcli { }; - -# eccodes = toPythonModule (pkgs.eccodes.override { -# enablePython = true; -# pythonPackages = self; -# }); - -# ecdsa = callPackage ./python-modules/ecdsa { }; - -# echo = callPackage ./python-modules/echo { }; - -# ecoaliface = callPackage ./python-modules/ecoaliface { }; - -# ecos = callPackage ./python-modules/ecos { }; - -# ecpy = callPackage ./python-modules/ecpy { }; - -# ecs-logging = callPackage ./python-modules/ecs-logging { }; - -# ed25519 = callPackage ./python-modules/ed25519 { }; - -# ed25519-blake2b = callPackage ./python-modules/ed25519-blake2b { }; - -# edalize = callPackage ./python-modules/edalize { }; - - editables = callPackage ./python-modules/editables { }; - -# editdistance = callPackage ./python-modules/editdistance { }; - -# editdistance-s = callPackage ./python-modules/editdistance-s { }; - -# editdistpy = callPackage ./python-modules/editdistpy { }; - -# editor = callPackage ./python-modules/editor { }; - -# editorconfig = callPackage ./python-modules/editorconfig { }; - -# edk2-pytool-library = callPackage ./python-modules/edk2-pytool-library { }; - -# edlib = callPackage ./python-modules/edlib { -# inherit (pkgs) edlib; -# }; - -# eduvpn-common = callPackage ./python-modules/eduvpn-common { }; - -# edward = callPackage ./python-modules/edward { }; - -# effdet = callPackage ./python-modules/effdet { }; - -# effect = callPackage ./python-modules/effect { }; - -# eggdeps = callPackage ./python-modules/eggdeps { }; - -# eigenpy = toPythonModule (callPackage ./python-modules/eigenpy { }); - -# einops = callPackage ./python-modules/einops { }; - -# eiswarnung = callPackage ./python-modules/eiswarnung { }; - -# elgato = callPackage ./python-modules/elgato { }; - -# elkm1-lib = callPackage ./python-modules/elkm1-lib { }; - -# elastic-apm = callPackage ./python-modules/elastic-apm { }; - -# elastic-transport = callPackage ./python-modules/elastic-transport { }; - -# elasticsearch = callPackage ./python-modules/elasticsearch { }; - -# elasticsearch8 = callPackage ./python-modules/elasticsearch8 { }; - -# elasticsearch-dsl = callPackage ./python-modules/elasticsearch-dsl { }; - -# elasticsearchdsl = self.elasticsearch-dsl; - -# elegy = callPackage ./python-modules/elegy { }; - -# elementpath = callPackage ./python-modules/elementpath { }; - -# elevate = callPackage ./python-modules/elevate { }; - -# eliot = callPackage ./python-modules/eliot { }; - -# eliqonline = callPackage ./python-modules/eliqonline { }; - -# elmax = callPackage ./python-modules/elmax { }; - -# elmax-api = callPackage ./python-modules/elmax-api { }; - -# emailthreads = callPackage ./python-modules/emailthreads { }; - -# email-validator = callPackage ./python-modules/email-validator { }; - -# embedding-reader = callPackage ./python-modules/embedding-reader { }; - -# embrace = callPackage ./python-modules/embrace { }; - -# emborg = callPackage ./python-modules/emborg { }; - -# emcee = callPackage ./python-modules/emcee { }; - -# emv = callPackage ./python-modules/emv { }; - -# emoji = callPackage ./python-modules/emoji { }; - -# empty-files = callPackage ./python-modules/empty-files { }; - -# empy = callPackage ./python-modules/empy { }; - -# emulated-roku = callPackage ./python-modules/emulated-roku { }; - -# enaml = callPackage ./python-modules/enaml { }; - -# enamlx = callPackage ./python-modules/enamlx { }; - -# encodec = callPackage ./python-modules/encodec { }; - -# energyflip-client = callPackage ./python-modules/energyflip-client { }; - -# energyflow = callPackage ./python-modules/energyflow { }; - -# energyzero = callPackage ./python-modules/energyzero { }; - -# enlighten = callPackage ./python-modules/enlighten { }; - -# enocean = callPackage ./python-modules/enocean { }; - -# enochecker-core = callPackage ./python-modules/enochecker-core { }; - -# enrich = callPackage ./python-modules/enrich { }; - -# enterpriseattack = callPackage ./python-modules/enterpriseattack { }; - -# entrance = callPackage ./python-modules/entrance { -# routerFeatures = false; -# }; - -# entrance-with-router-features = callPackage ./python-modules/entrance { -# routerFeatures = true; -# }; - -# entry-points-txt = callPackage ./python-modules/entry-points-txt { }; - -# entrypoint2 = callPackage ./python-modules/entrypoint2 { }; - -# entrypoints = callPackage ./python-modules/entrypoints { }; - -# enturclient = callPackage ./python-modules/enturclient { }; - -# enum34 = callPackage ./python-modules/enum34 { }; - -# enum-compat = callPackage ./python-modules/enum-compat { }; - -# env-canada = callPackage ./python-modules/env-canada { }; - -# environmental-override = callPackage ./python-modules/environmental-override { }; - -# environs = callPackage ./python-modules/environs { }; - -# envisage = callPackage ./python-modules/envisage { }; - -# envs = callPackage ./python-modules/envs { }; - -# envoy-reader = callPackage ./python-modules/envoy-reader { }; - -# envoy-utils = callPackage ./python-modules/envoy-utils { }; - -# enzyme = callPackage ./python-modules/enzyme { }; - -# epc = callPackage ./python-modules/epc { }; - -# ephem = callPackage ./python-modules/ephem { }; - -# ephemeral-port-reserve = callPackage ./python-modules/ephemeral-port-reserve { }; - -# epion = callPackage ./python-modules/epion { }; - -# epitran = callPackage ./python-modules/epitran { }; - -# epson-projector = callPackage ./python-modules/epson-projector { }; - -# equinox = callPackage ./python-modules/equinox { }; - -# eradicate = callPackage ./python-modules/eradicate { }; - -# es-client = callPackage ./python-modules/es-client { }; - -# esig = callPackage ./python-modules/esig { }; - -# espeak-phonemizer = callPackage ./python-modules/espeak-phonemizer { }; - -# esphome-dashboard-api = callPackage ./python-modules/esphome-dashboard-api { }; - -# esprima = callPackage ./python-modules/esprima { }; - -# escapism = callPackage ./python-modules/escapism { }; - -# essentials = callPackage ./python-modules/essentials { }; - -# essentials-openapi = callPackage ./python-modules/essentials-openapi { }; - -# etcd = callPackage ./python-modules/etcd { }; - -# etcd3 = callPackage ./python-modules/etcd3 { -# inherit (pkgs) etcd; -# }; - -# ete3 = callPackage ./python-modules/ete3 { }; - -# etelemetry = callPackage ./python-modules/etelemetry { }; - -# etebase = callPackage ./python-modules/etebase { -# inherit (pkgs.darwin.apple_sdk.frameworks) Security; -# }; - -# etebase-server = callPackage ../servers/etebase { }; - -# eternalegypt = callPackage ./python-modules/eternalegypt { }; - -# etesync = callPackage ./python-modules/etesync { }; - -# eth-abi = callPackage ./python-modules/eth-abi { }; - -# eth-account = callPackage ./python-modules/eth-account { }; - -# eth-hash = callPackage ./python-modules/eth-hash { }; - -# eth-keyfile = callPackage ./python-modules/eth-keyfile { }; - -# eth-keys = callPackage ./python-modules/eth-keys { }; - -# eth-rlp = callPackage ./python-modules/eth-rlp { }; - -# eth-typing = callPackage ./python-modules/eth-typing { }; - -# eth-utils = callPackage ./python-modules/eth-utils { }; - -# etils = callPackage ./python-modules/etils { }; - -# etuples = callPackage ./python-modules/etuples { }; - -# et-xmlfile = callPackage ./python-modules/et-xmlfile { }; - -# euclid3 = callPackage ./python-modules/euclid3 { }; - -# eufylife-ble-client = callPackage ./python-modules/eufylife-ble-client { }; - -# eval-type-backport = callPackage ./python-modules/eval-type-backport { }; - -# evaluate = callPackage ./python-modules/evaluate { }; - -# evdev = callPackage ./python-modules/evdev { }; - -# eve = callPackage ./python-modules/eve { }; - -# eventkit = callPackage ./python-modules/eventkit { }; - -# eventlet = callPackage ./python-modules/eventlet { }; - -# events = callPackage ./python-modules/events { }; - -# evernote = callPackage ./python-modules/evernote { }; - -# evohome-async = callPackage ./python-modules/evohome-async { }; - -# evtx = callPackage ./python-modules/evtx { }; - -# ewmh = callPackage ./python-modules/ewmh { }; - -# example-robot-data = toPythonModule (pkgs.example-robot-data.override { -# pythonSupport = true; -# python3Packages = self; -# }); - -# exdown = callPackage ./python-modules/exdown { }; - - exceptiongroup = callPackage ./python-modules/exceptiongroup { }; - -# exchangelib = callPackage ./python-modules/exchangelib { }; - -# execnb = callPackage ./python-modules/execnb { }; - - execnet = callPackage ./python-modules/execnet { }; - -# executing = callPackage ./python-modules/executing { }; - -# executor = callPackage ./python-modules/executor { }; - -# exif = callPackage ./python-modules/exif { }; - -# exifread = callPackage ./python-modules/exifread { }; - -# expandvars = callPackage ./python-modules/expandvars { }; - -# expects = callPackage ./python-modules/expects { }; - -# expecttest = callPackage ./python-modules/expecttest { }; - -# experiment-utilities = callPackage ./python-modules/experiment-utilities { }; - -# expiring-dict = callPackage ./python-modules/expiring-dict { }; - -# expiringdict = callPackage ./python-modules/expiringdict { }; - -# explorerscript = callPackage ./python-modules/explorerscript { }; - -# exrex = callPackage ./python-modules/exrex { }; - -# exitcode = callPackage ./python-modules/exitcode { }; - -# extract-msg = callPackage ./python-modules/extract-msg { }; - -# extractcode = callPackage ./python-modules/extractcode { }; - -# 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; -# }; - -# extras = callPackage ./python-modules/extras { }; - -# extruct = callPackage ./python-modules/extruct { }; - -# eyed3 = callPackage ./python-modules/eyed3 { }; - -# ezdxf = callPackage ./python-modules/ezdxf { }; - -# ezyrb = callPackage ./python-modules/ezyrb { }; - -# f5-icontrol-rest = callPackage ./python-modules/f5-icontrol-rest { }; - -# f5-sdk = callPackage ./python-modules/f5-sdk { }; - -# f90nml = callPackage ./python-modules/f90nml { }; - -# fabric = callPackage ./python-modules/fabric { }; - -# faadelays = callPackage ./python-modules/faadelays { }; - -# fabulous = callPackage ./python-modules/fabulous { }; - -# facebook-sdk = callPackage ./python-modules/facebook-sdk { }; - -# face = callPackage ./python-modules/face { }; - -# facedancer = callPackage ./python-modules/facedancer { }; - -# face-recognition = callPackage ./python-modules/face-recognition { }; - -# facenet-pytorch = callPackage ./python-modules/facenet-pytorch { }; - -# face-recognition-models = callPackage ./python-modules/face-recognition/models.nix { }; - -# factory-boy = callPackage ./python-modules/factory-boy { }; - -# fairscale = callPackage ./python-modules/fairscale { }; - -# fairseq = callPackage ./python-modules/fairseq { }; - -# faiss = toPythonModule (pkgs.faiss.override { -# pythonSupport = true; -# pythonPackages = self; -# }); - -# fake-useragent = callPackage ./python-modules/fake-useragent { }; - -# faker = callPackage ./python-modules/faker { }; - -# fakeredis = callPackage ./python-modules/fakeredis { }; - -# falcon = callPackage ./python-modules/falcon { }; - -# faraday-agent-parameters-types = callPackage ./python-modules/faraday-agent-parameters-types { }; - -# faraday-plugins = callPackage ./python-modules/faraday-plugins { }; - -# farama-notifications = callPackage ./python-modules/farama-notifications { }; - -# farm-haystack = callPackage ./python-modules/farm-haystack { }; - -# fastai = callPackage ./python-modules/fastai { }; - -# fastapi = callPackage ./python-modules/fastapi { }; - -# fastapi-mail = callPackage ./python-modules/fastapi-mail { }; - -# fastapi-sso = callPackage ./python-modules/fastapi-sso { }; - -# fast-histogram = callPackage ./python-modules/fast-histogram { }; - -# fastavro = callPackage ./python-modules/fastavro { }; - -# fastbencode = callPackage ./python-modules/fastbencode { }; - -# fastcache = callPackage ./python-modules/fastcache { }; - -# fastcore = callPackage ./python-modules/fastcore { }; - -# fastdiff = callPackage ./python-modules/fastdiff { }; - -# fastdownload = callPackage ./python-modules/fastdownload { }; - -# fastdtw = callPackage ./python-modules/fastdtw { }; - -# fastecdsa = callPackage ./python-modules/fastecdsa { }; - -# fastembed = callPackage ./python-modules/fastembed { }; - -# fasteners = callPackage ./python-modules/fasteners { }; - -# fastentrypoints = callPackage ./python-modules/fastentrypoints { }; - -# faster-fifo = callPackage ./python-modules/faster-fifo { }; - -# faster-whisper = callPackage ./python-modules/faster-whisper { }; - -# fastimport = callPackage ./python-modules/fastimport { }; - -# fastjet = toPythonModule (pkgs.fastjet.override { -# withPython = true; -# inherit (self) python; -# }); - -# fastjsonschema = callPackage ./python-modules/fastjsonschema { }; - -# fastnlo-toolkit = toPythonModule (pkgs.fastnlo-toolkit.override { -# withPython = true; -# inherit (self) python; -# }); - -# fastnumbers = callPackage ./python-modules/fastnumbers { }; - -# fastpair = callPackage ./python-modules/fastpair { }; - -# fastparquet = callPackage ./python-modules/fastparquet { }; - -# fastpbkdf2 = callPackage ./python-modules/fastpbkdf2 { }; - -# fastprogress = callPackage ./python-modules/fastprogress { }; - -# fastrlock = callPackage ./python-modules/fastrlock { }; - -# fasttext = callPackage ./python-modules/fasttext { }; - -# fasttext-predict = callPackage ./python-modules/fasttext-predict { }; - -# faust-cchardet = callPackage ./python-modules/faust-cchardet { }; - -# favicon = callPackage ./python-modules/favicon { }; - - fb-re2 = callPackage ./python-modules/fb-re2 { }; - -# fe25519 = callPackage ./python-modules/fe25519 { }; - -# feedfinder2 = callPackage ./python-modules/feedfinder2 { }; - -# feedgen = callPackage ./python-modules/feedgen { }; - -# feedgenerator = callPackage ./python-modules/feedgenerator { -# inherit (pkgs) glibcLocales; -# }; - -# feedparser = callPackage ./python-modules/feedparser { }; - -# fenics = callPackage ./python-modules/fenics { -# hdf5 = pkgs.hdf5_1_10; -# }; - -# ffcv = callPackage ./python-modules/ffcv { }; - -# ffmpeg-python = callPackage ./python-modules/ffmpeg-python { }; - -# ffmpeg-progress-yield = callPackage ./python-modules/ffmpeg-progress-yield { }; - -# ffmpy = callPackage ./python-modules/ffmpy { }; - -# fhir-py = callPackage ./python-modules/fhir-py { }; - -# fiblary3-fork = callPackage ./python-modules/fiblary3-fork { }; - -# fido2 = callPackage ./python-modules/fido2 { }; - -# fields = callPackage ./python-modules/fields { }; - -# file-read-backwards = callPackage ./python-modules/file-read-backwards { }; - -# filebrowser-safe = callPackage ./python-modules/filebrowser-safe { }; - -# filebytes = callPackage ./python-modules/filebytes { }; - -# filecheck = callPackage ./python-modules/filecheck { }; - -# filedepot = callPackage ./python-modules/filedepot { }; - - filelock = callPackage ./python-modules/filelock { }; - -# filetype = callPackage ./python-modules/filetype { }; - -# filterpy = callPackage ./python-modules/filterpy { }; - -# finalfusion = callPackage ./python-modules/finalfusion { }; - -# findimports = callPackage ./python-modules/findimports { }; - -# find-libpython = callPackage ./python-modules/find-libpython { }; - -# findpython = callPackage ./python-modules/findpython { }; - -# fingerprints = callPackage ./python-modules/fingerprints { }; - -# finitude = callPackage ./python-modules/finitude { }; - -# fints = callPackage ./python-modules/fints { }; - -# finvizfinance = callPackage ./python-modules/finvizfinance { }; - -# fiona = callPackage ./python-modules/fiona { }; - -# fipy = callPackage ./python-modules/fipy { }; - -# fire = callPackage ./python-modules/fire { }; - -# firebase-messaging = callPackage ./python-modules/firebase-messaging { }; - -# fireflyalgorithm = callPackage ./python-modules/fireflyalgorithm { }; - -# firetv = callPackage ./python-modules/firetv { }; - -# first = callPackage ./python-modules/first { }; - -# fitbit = callPackage ./python-modules/fitbit { }; - -# fivem-api = callPackage ./python-modules/fivem-api { }; - -# fixerio = callPackage ./python-modules/fixerio { }; - -# fixtures = callPackage ./python-modules/fixtures { }; - -# fjaraskupan = callPackage ./python-modules/fjaraskupan { }; - -# flake8-blind-except = callPackage ./python-modules/flake8-blind-except { }; - -# flake8-bugbear = callPackage ./python-modules/flake8-bugbear { }; - -# flake8 = callPackage ./python-modules/flake8 { }; - -# flake8-length = callPackage ./python-modules/flake8-length { }; - -# flake8-debugger = callPackage ./python-modules/flake8-debugger { }; - -# flake8-docstrings = callPackage ./python-modules/flake8-docstrings { }; - -# flake8-future-import = callPackage ./python-modules/flake8-future-import { }; - -# flake8-import-order = callPackage ./python-modules/flake8-import-order { }; - -# flake8-polyfill = callPackage ./python-modules/flake8-polyfill { }; - -# flaky = callPackage ./python-modules/flaky { }; - -# flametree = callPackage ./python-modules/flametree { }; - -# flammkuchen = callPackage ./python-modules/flammkuchen { }; - -# flasgger = callPackage ./python-modules/flasgger { }; - -# flashtext = callPackage ./python-modules/flashtext { }; - -# flask-admin = callPackage ./python-modules/flask-admin { }; - -# flask-api = callPackage ./python-modules/flask-api { }; - -# flask-appbuilder = callPackage ./python-modules/flask-appbuilder { }; - -# flask-assets = callPackage ./python-modules/flask-assets { }; - -# flask-babel = callPackage ./python-modules/flask-babel { }; - -# flask-babelex = callPackage ./python-modules/flask-babelex { }; - -# flask-bcrypt = callPackage ./python-modules/flask-bcrypt { }; - -# flask-bootstrap = callPackage ./python-modules/flask-bootstrap { }; - -# flask-caching = callPackage ./python-modules/flask-caching { }; - -# flask = callPackage ./python-modules/flask { }; - -# flask-common = callPackage ./python-modules/flask-common { }; - -# flask-compress = callPackage ./python-modules/flask-compress { }; - -# flask-cors = callPackage ./python-modules/flask-cors { }; - -# flask-dramatiq = callPackage ./python-modules/flask-dramatiq { }; - -# flask-elastic = callPackage ./python-modules/flask-elastic { }; - -# flask-expects-json = callPackage ./python-modules/flask-expects-json { }; - -# flask-gravatar = callPackage ./python-modules/flask-gravatar { }; - -# flask-httpauth = callPackage ./python-modules/flask-httpauth { }; - -# flask-jwt-extended = callPackage ./python-modules/flask-jwt-extended { }; - -# flask-limiter = callPackage ./python-modules/flask-limiter { }; - -# flask-login = callPackage ./python-modules/flask-login { }; - -# flask-mail = callPackage ./python-modules/flask-mail { }; - -# flask-mailman = callPackage ./python-modules/flask-mailman { }; - -# flask-marshmallow = callPackage ./python-modules/flask-marshmallow { }; - -# flask-migrate = callPackage ./python-modules/flask-migrate { }; - -# flask-mongoengine = callPackage ./python-modules/flask-mongoengine { }; - -# flask-mysqldb = callPackage ./python-modules/flask-mysqldb { }; - -# flask-openid = callPackage ./python-modules/flask-openid { }; - -# flask-paginate = callPackage ./python-modules/flask-paginate { }; - -# flask-paranoid = callPackage ./python-modules/flask-paranoid { }; - -# flask-principal = callPackage ./python-modules/flask-principal { }; - -# flask-pymongo = callPackage ./python-modules/flask-pymongo { }; - -# flask-restful = callPackage ./python-modules/flask-restful { }; - -# flask-restx = callPackage ./python-modules/flask-restx { }; - -# flask-reverse-proxy-fix = callPackage ./python-modules/flask-reverse-proxy-fix { }; - -# flask-script = callPackage ./python-modules/flask-script { }; - -# flask-seasurf = callPackage ./python-modules/flask-seasurf { }; - -# flask-session = callPackage ./python-modules/flask-session { }; - -# flask-session-captcha = callPackage ./python-modules/flask-session-captcha { }; - -# flask-security-too = callPackage ./python-modules/flask-security-too { }; - -# flask-silk = callPackage ./python-modules/flask-silk { }; - -# flask-sock = callPackage ./python-modules/flask-sock { }; - -# flask-socketio = callPackage ./python-modules/flask-socketio { }; - -# flask-sockets = callPackage ./python-modules/flask-sockets { }; - -# flask-sqlalchemy = callPackage ./python-modules/flask-sqlalchemy { }; - -# flask-sslify = callPackage ./python-modules/flask-sslify { }; - -# flask-swagger = callPackage ./python-modules/flask-swagger { }; - -# flask-swagger-ui = callPackage ./python-modules/flask-swagger-ui { }; - -# flask-talisman = callPackage ./python-modules/flask-talisman { }; - -# flask-testing = callPackage ./python-modules/flask-testing { }; - -# flask-themes2 = callPackage ./python-modules/flask-themes2 { }; - -# flask-versioned = callPackage ./python-modules/flask-versioned { }; - -# flask-wtf = callPackage ./python-modules/flask-wtf { }; - -# flatbuffers = callPackage ./python-modules/flatbuffers { -# inherit (pkgs) flatbuffers; -# }; - -# flatdict = callPackage ./python-modules/flatdict { }; - -# flatten-dict = callPackage ./python-modules/flatten-dict { }; - -# flax = callPackage ./python-modules/flax { }; - -# fleep = callPackage ./python-modules/fleep { }; - -# flet = callPackage ./python-modules/flet { }; - -# flet-core = callPackage ./python-modules/flet-core { }; - -# flet-runtime = callPackage ./python-modules/flet-runtime { }; - -# flexmock = callPackage ./python-modules/flexmock { }; - -# flickrapi = callPackage ./python-modules/flickrapi { }; - -# 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 { }; - -# floret = callPackage ./python-modules/floret { }; - -# flow-record = callPackage ./python-modules/flow-record { }; - -# flower = callPackage ./python-modules/flower { }; - -# flowlogs-reader = callPackage ./python-modules/flowlogs-reader { }; - -# fluent-logger = callPackage ./python-modules/fluent-logger { }; - -# flufl-bounce = callPackage ./python-modules/flufl/bounce.nix { }; - -# flufl-i18n = callPackage ./python-modules/flufl/i18n.nix { }; - -# flufl-lock = callPackage ./python-modules/flufl/lock.nix { }; - -# flux-led = callPackage ./python-modules/flux-led { }; - -# flyingsquid = callPackage ./python-modules/flyingsquid { }; - -# flynt = callPackage ./python-modules/flynt { }; - -# fn = callPackage ./python-modules/fn { }; - -# fnv-hash-fast = callPackage ./python-modules/fnv-hash-fast { }; - -# fnvhash = callPackage ./python-modules/fnvhash { }; - -# folium = callPackage ./python-modules/folium { }; - -# fontawesomefree = callPackage ./python-modules/fontawesomefree { }; - -# fontbakery = callPackage ./python-modules/fontbakery { }; - -# fontfeatures = callPackage ./python-modules/fontfeatures { }; - -# fontforge = toPythonModule (pkgs.fontforge.override { -# withPython = true; -# inherit python; -# }); - -# fontmath = callPackage ./python-modules/fontmath { }; - -# fontparts = callPackage ./python-modules/fontparts { }; - -# fontpens = callPackage ./python-modules/fontpens { }; - -# fonttools = callPackage ./python-modules/fonttools { }; - -# fontmake = callPackage ./python-modules/fontmake { }; - -# font-v = callPackage ./python-modules/font-v { }; - -# skia-pathops = callPackage ./python-modules/skia-pathops { -# inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices OpenGL; -# }; - -# oelint-parser = callPackage ./python-modules/oelint-parser { }; - -# openllm = callPackage ./python-modules/openllm { -# openai-triton = self.openai-triton-cuda; -# }; - -# openllm-client = callPackage ./python-modules/openllm-client { }; - -# openllm-core = callPackage ./python-modules/openllm-core { }; - -# openstep-plist = callPackage ./python-modules/openstep-plist { }; - -# glyphsets = callPackage ./python-modules/glyphsets { }; - -# glyphslib = callPackage ./python-modules/glyphslib { }; - -# glyphtools = callPackage ./python-modules/glyphtools { }; - -# foobot-async = callPackage ./python-modules/foobot-async { }; - -# foolscap = callPackage ./python-modules/foolscap { }; - -# forbiddenfruit = callPackage ./python-modules/forbiddenfruit { }; - -# fordpass = callPackage ./python-modules/fordpass { }; - -# forecast-solar = callPackage ./python-modules/forecast-solar { }; - -# formbox = callPackage ./python-modules/formbox { }; - -# formulae = callPackage ./python-modules/formulae { }; - -# fortiosapi = callPackage ./python-modules/fortiosapi { }; - -# formencode = callPackage ./python-modules/formencode { }; - -# formulaic = callPackage ./python-modules/formulaic { }; - -# foundationdb71 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb71; }; - -# fountains = callPackage ./python-modules/fountains { }; - -# foxdot = callPackage ./python-modules/foxdot { }; - -# fpdf = callPackage ./python-modules/fpdf { }; - -# fpdf2 = callPackage ./python-modules/fpdf2 { }; - -# fpylll = callPackage ./python-modules/fpylll { }; - -# fpyutils = callPackage ./python-modules/fpyutils { }; - -# fqdn = callPackage ./python-modules/fqdn { }; - -# freebox-api = callPackage ./python-modules/freebox-api { }; - -# freetype-py = callPackage ./python-modules/freetype-py { }; - - freezegun = callPackage ./python-modules/freezegun { }; - -# frelatage = callPackage ./python-modules/frelatage { }; - -# frida-python = callPackage ./python-modules/frida-python { }; - -# frigidaire = callPackage ./python-modules/frigidaire { }; - -# frilouz = callPackage ./python-modules/frilouz { }; - -# fritzconnection = callPackage ./python-modules/fritzconnection { }; - -# frozendict = callPackage ./python-modules/frozendict { }; - -# frozenlist = callPackage ./python-modules/frozenlist { }; - -# frozenlist2 = callPackage ./python-modules/frozenlist2 { }; - -# fs = callPackage ./python-modules/fs { }; - -# fs-s3fs = callPackage ./python-modules/fs-s3fs { }; - -# fschat = callPackage ./python-modules/fschat { }; - -# fsspec-xrootd = callPackage ./python-modules/fsspec-xrootd { }; - -# fsspec = callPackage ./python-modules/fsspec { }; - -# fst-pso = callPackage ./python-modules/fst-pso { }; - -# ftfy = callPackage ./python-modules/ftfy { }; - -# ftputil = callPackage ./python-modules/ftputil { }; - -# fugashi = callPackage ./python-modules/fugashi { }; - - func-timeout = callPackage ./python-modules/func-timeout { }; - -# funcparserlib = callPackage ./python-modules/funcparserlib { }; - -# funcsigs = callPackage ./python-modules/funcsigs { }; - -# functiontrace = callPackage ./python-modules/functiontrace { }; - -# functools32 = callPackage ./python-modules/functools32 { }; - -# funcy = callPackage ./python-modules/funcy { }; - -# funsor = callPackage ./python-modules/funsor { }; - -# furl = callPackage ./python-modules/furl { }; - -# furo = callPackage ./python-modules/furo { }; - -# fuse = callPackage ./python-modules/fuse-python { -# inherit (pkgs) fuse; -# }; - -# fusepy = callPackage ./python-modules/fusepy { }; - -# future = callPackage ./python-modules/future { }; - -# future-fstrings = callPackage ./python-modules/future-fstrings { }; - -# future-typing = callPackage ./python-modules/future-typing { }; - -# fuzzyfinder = callPackage ./python-modules/fuzzyfinder { }; - -# fuzzytm = callPackage ./python-modules/fuzzytm { }; - -# fuzzywuzzy = callPackage ./python-modules/fuzzywuzzy { }; - -# fvcore = callPackage ./python-modules/fvcore { }; - -# fvs = callPackage ./python-modules/fvs { }; - -# fx2 = callPackage ./python-modules/fx2 { }; - -# fyta-cli = callPackage ./python-modules/fyta-cli { }; - -# g2pkk = callPackage ./python-modules/g2pkk { }; - -# galario = toPythonModule (pkgs.galario.override { -# enablePython = true; -# pythonPackages = self; -# }); - -# galois = callPackage ./python-modules/galois { }; - -# gamble = callPackage ./python-modules/gamble { }; - -# gaphas = callPackage ./python-modules/gaphas { }; - -# gardena-bluetooth = callPackage ./python-modules/gardena-bluetooth { }; - -# garminconnect-aio = callPackage ./python-modules/garminconnect-aio { }; - -# garminconnect = callPackage ./python-modules/garminconnect { }; - -# garth = callPackage ./python-modules/garth { }; - -# gassist-text = callPackage ./python-modules/gassist-text { }; - -# gast = callPackage ./python-modules/gast { }; - -# gatt = callPackage ./python-modules/gatt { }; - -# gattlib = callPackage ./python-modules/gattlib { -# inherit (pkgs) bluez glib pkg-config; -# }; - -# gawd = callPackage ./python-modules/gawd { }; - -# gb-io = callPackage ./python-modules/gb-io { }; - -# gbinder-python = callPackage ./python-modules/gbinder-python { }; - -# gbulb = callPackage ./python-modules/gbulb { }; - -# gcal-sync = callPackage ./python-modules/gcal-sync { }; - -# gcodepy = callPackage ./python-modules/gcodepy { }; - -# gcovr = callPackage ./python-modules/gcovr { }; - -# gcs-oauth2-boto-plugin = callPackage ./python-modules/gcs-oauth2-boto-plugin { }; - -# gcsa = callPackage ./python-modules/gcsa { }; - -# gcsfs = callPackage ./python-modules/gcsfs { }; - -# gdal = toPythonModule (pkgs.gdal.override { python3 = python; }); - -# gdata = callPackage ./python-modules/gdata { }; - -# gdb-pt-dump = callPackage ./python-modules/gdb-pt-dump { }; - -# gdcm = toPythonModule (pkgs.gdcm.override { -# inherit (self) python; -# enablePython = true; -# }); - -# gdown = callPackage ./python-modules/gdown { }; - -# ge25519 = callPackage ./python-modules/ge25519 { }; - -# geant4 = toPythonModule (pkgs.geant4.override { -# enablePython = true; -# python3 = python; -# }); - -# geeknote = callPackage ./python-modules/geeknote { }; - -# gehomesdk = callPackage ./python-modules/gehomesdk { }; - -# gekitchen = callPackage ./python-modules/gekitchen { }; - -# gekko = callPackage ./python-modules/gekko { }; - -# gemfileparser = callPackage ./python-modules/gemfileparser { }; - -# gemfileparser2 = callPackage ./python-modules/gemfileparser2 { }; - -# genanki = callPackage ./python-modules/genanki { }; - -# generic = callPackage ./python-modules/generic { }; - -# geniushub-client = callPackage ./python-modules/geniushub-client { }; - -# genome-collector = callPackage ./python-modules/genome-collector { }; - -# genpy = callPackage ./python-modules/genpy { }; - -# genshi = callPackage ./python-modules/genshi { }; - -# gensim = callPackage ./python-modules/gensim { }; - -# gentools = callPackage ./python-modules/gentools { }; - -# genzshcomp = callPackage ./python-modules/genzshcomp { }; - -# geoalchemy2 = callPackage ./python-modules/geoalchemy2 { }; - -# geocachingapi = callPackage ./python-modules/geocachingapi { }; - -# geocoder = callPackage ./python-modules/geocoder { }; - -# geographiclib = callPackage ./python-modules/geographiclib { }; - -# geoip2 = callPackage ./python-modules/geoip2 { }; - -# geoip = callPackage ./python-modules/geoip { -# libgeoip = pkgs.geoip; -# }; - -# geojson = callPackage ./python-modules/geojson { }; - -# geojson-client = callPackage ./python-modules/geojson-client { }; - -# geomet = callPackage ./python-modules/geomet { }; - -# geometric = callPackage ./python-modules/geometric { }; - -# geopandas = callPackage ./python-modules/geopandas { }; - -# geopy = callPackage ./python-modules/geopy { }; - -# georss-client = callPackage ./python-modules/georss-client { }; - -# georss-generic-client = callPackage ./python-modules/georss-generic-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-nrcan-earthquakes-client = callPackage ./python-modules/georss-nrcan-earthquakes-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-wa-dfes-client = callPackage ./python-modules/georss-wa-dfes-client { }; - -# gerbonara = callPackage ./python-modules/gerbonara { }; - -# getjump = callPackage ./python-modules/getjump { }; - -# getmac = callPackage ./python-modules/getmac { }; - -# getkey = callPackage ./python-modules/getkey { }; - -# get-video-properties = callPackage ./python-modules/get-video-properties { }; - - gevent = callPackage ./python-modules/gevent { }; - -# geventhttpclient = callPackage ./python-modules/geventhttpclient { }; - -# gevent-socketio = callPackage ./python-modules/gevent-socketio { }; - -# gevent-websocket = callPackage ./python-modules/gevent-websocket { }; - -# gfal2-python = callPackage ./python-modules/gfal2-python { }; - -# gfal2-util = callPackage ./python-modules/gfal2-util { -# inherit (pkgs) xrootd; -# }; - -# gflags = callPackage ./python-modules/gflags { }; - -# gflanguages = callPackage ./python-modules/gflanguages { }; - -# gfsubsets = callPackage ./python-modules/gfsubsets { }; - -# ghapi = callPackage ./python-modules/ghapi { }; - -# ghdiff = callPackage ./python-modules/ghdiff { }; - -# ghp-import = callPackage ./python-modules/ghp-import { }; - -# ghrepo-stats = callPackage ./python-modules/ghrepo-stats { }; - -# gibberish-detector = callPackage ./python-modules/gibberish-detector { }; - -# gidgethub = callPackage ./python-modules/gidgethub { }; - -# gin-config = callPackage ./python-modules/gin-config { }; - -# gios = callPackage ./python-modules/gios { }; - -# gipc = callPackage ./python-modules/gipc { }; - -# gistyc = callPackage ./python-modules/gistyc { }; - -# git-annex-adapter = -# callPackage ./python-modules/git-annex-adapter { }; - -# git-filter-repo = callPackage ./python-modules/git-filter-repo { }; - -# git-revise = callPackage ./python-modules/git-revise { }; - -# git-sweep = callPackage ./python-modules/git-sweep { }; - -# git-url-parse = callPackage ./python-modules/git-url-parse { }; - -# gitdb = callPackage ./python-modules/gitdb { }; - -# githubkit = callPackage ./python-modules/githubkit { }; - -# github-to-sqlite = callPackage ./python-modules/github-to-sqlite { }; - -# github-webhook = callPackage ./python-modules/github-webhook { }; - -# github3-py = callPackage ./python-modules/github3-py { }; - -# gitignore-parser = callPackage ./python-modules/gitignore-parser { }; - -# gitlike-commands = callPackage ./python-modules/gitlike-commands { }; - -# gitpython = callPackage ./python-modules/gitpython { }; - -# git-versioner = callPackage ./python-modules/git-versioner { }; - -# glad = callPackage ./python-modules/glad { }; - -# glad2 = callPackage ./python-modules/glad2 { }; - -# glances-api = callPackage ./python-modules/glances-api { }; - -# glcontext = callPackage ./python-modules/glcontext { }; - -# glean-parser = callPackage ./python-modules/glean-parser { }; - -# glean-sdk = callPackage ./python-modules/glean-sdk { -# inherit (pkgs) lmdb; -# }; - -# glfw = callPackage ./python-modules/glfw { }; - -# glob2 = callPackage ./python-modules/glob2 { }; - -# globre = callPackage ./python-modules/globre { }; - -# globus-sdk = callPackage ./python-modules/globus-sdk { }; - -# glom = callPackage ./python-modules/glom { }; - -# glueviz = callPackage ./python-modules/glueviz { }; - -# glymur = callPackage ./python-modules/glymur { }; - -# gmpy2 = callPackage ./python-modules/gmpy2 { }; - -# gmpy = callPackage ./python-modules/gmpy { }; - -# gmsh = toPythonModule (callPackage ../applications/science/math/gmsh { -# enablePython = true; -# }); - -# gntp = callPackage ./python-modules/gntp { }; - -# gnureadline = callPackage ./python-modules/gnureadline { }; - -# goalzero = callPackage ./python-modules/goalzero { }; - -# gocardless-pro = callPackage ./python-modules/gocardless-pro { }; - -# goobook = callPackage ./python-modules/goobook { }; - -# goocalendar = callPackage ./python-modules/goocalendar { }; - -# goodwe = callPackage ./python-modules/goodwe { }; - -# google = callPackage ./python-modules/google { }; - -# google-ai-generativelanguage = callPackage ./python-modules/google-ai-generativelanguage { }; - -# google-api-core = callPackage ./python-modules/google-api-core { }; - -# google-api-python-client = callPackage ./python-modules/google-api-python-client { }; - -# googleapis-common-protos = callPackage ./python-modules/googleapis-common-protos { }; - -# google-auth = callPackage ./python-modules/google-auth { }; - -# google-auth-httplib2 = callPackage ./python-modules/google-auth-httplib2 { }; - -# google-auth-oauthlib = callPackage ./python-modules/google-auth-oauthlib { }; - -# 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-artifact-registry = callPackage ./python-modules/google-cloud-artifact-registry { }; - -# google-cloud-asset = callPackage ./python-modules/google-cloud-asset { }; - -# google-cloud-audit-log = callPackage ./python-modules/google-cloud-audit-log { }; - -# google-cloud-automl = callPackage ./python-modules/google-cloud-automl { }; - -# google-cloud-bigquery = callPackage ./python-modules/google-cloud-bigquery { }; - -# 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-storage = callPackage ./python-modules/google-cloud-bigquery-storage { }; - -# google-cloud-bigtable = callPackage ./python-modules/google-cloud-bigtable { }; - -# google-cloud-compute = callPackage ./python-modules/google-cloud-compute { }; - -# google-cloud-container = callPackage ./python-modules/google-cloud-container { }; - -# google-cloud-core = callPackage ./python-modules/google-cloud-core { }; - -# google-cloud-datacatalog = callPackage ./python-modules/google-cloud-datacatalog { }; - -# google-cloud-dataproc = callPackage ./python-modules/google-cloud-dataproc { }; - -# google-cloud-datastore = callPackage ./python-modules/google-cloud-datastore { }; - -# google-cloud-dlp = callPackage ./python-modules/google-cloud-dlp { }; - -# google-cloud-dns = callPackage ./python-modules/google-cloud-dns { }; - -# google-cloud-error-reporting = callPackage ./python-modules/google-cloud-error-reporting { }; - -# google-cloud-firestore = callPackage ./python-modules/google-cloud-firestore { }; - -# google-cloud-iam = callPackage ./python-modules/google-cloud-iam { }; - -# google-cloud-iam-logging = callPackage ./python-modules/google-cloud-iam-logging { }; - -# google-cloud-iot = callPackage ./python-modules/google-cloud-iot { }; - -# google-cloud-kms = callPackage ./python-modules/google-cloud-kms { }; - -# google-cloud-language = callPackage ./python-modules/google-cloud-language { }; - -# google-cloud-logging = callPackage ./python-modules/google-cloud-logging { }; - -# google-cloud-monitoring = callPackage ./python-modules/google-cloud-monitoring { }; - -# google-cloud-netapp = callPackage ./python-modules/google-cloud-netapp { }; - -# google-cloud-org-policy = callPackage ./python-modules/google-cloud-org-policy { }; - -# google-cloud-os-config = callPackage ./python-modules/google-cloud-os-config { }; - -# google-cloud-pubsub = callPackage ./python-modules/google-cloud-pubsub { }; - -# google-cloud-redis = callPackage ./python-modules/google-cloud-redis { }; - -# google-cloud-resource-manager = callPackage ./python-modules/google-cloud-resource-manager { }; - -# google-cloud-runtimeconfig = callPackage ./python-modules/google-cloud-runtimeconfig { }; - -# google-cloud-secret-manager = callPackage ./python-modules/google-cloud-secret-manager { }; - -# google-cloud-securitycenter = callPackage ./python-modules/google-cloud-securitycenter { }; - -# google-cloud-shell = callPackage ./python-modules/google-cloud-shell { }; - -# google-cloud-spanner = callPackage ./python-modules/google-cloud-spanner { }; - -# google-cloud-speech = callPackage ./python-modules/google-cloud-speech { }; - -# google-cloud-storage = callPackage ./python-modules/google-cloud-storage { }; - -# google-cloud-tasks = callPackage ./python-modules/google-cloud-tasks { }; - -# google-cloud-testutils = callPackage ./python-modules/google-cloud-testutils { }; - -# google-cloud-texttospeech = callPackage ./python-modules/google-cloud-texttospeech { }; - -# google-cloud-trace = callPackage ./python-modules/google-cloud-trace { }; - -# google-cloud-translate = callPackage ./python-modules/google-cloud-translate { }; - -# google-cloud-videointelligence = callPackage ./python-modules/google-cloud-videointelligence { }; - -# google-cloud-vision = callPackage ./python-modules/google-cloud-vision { }; - -# google-cloud-vpc-access = callPackage ./python-modules/google-cloud-vpc-access { }; - -# google-cloud-webrisk = callPackage ./python-modules/google-cloud-webrisk { }; - -# google-cloud-websecurityscanner = callPackage ./python-modules/google-cloud-websecurityscanner { }; - -# google-cloud-workflows = callPackage ./python-modules/google-cloud-workflows { }; - -# google-cloud-workstations = callPackage ./python-modules/google-cloud-workstations { }; - -# google-compute-engine = callPackage ../tools/virtualization/google-compute-engine { }; - -# google-crc32c = callPackage ./python-modules/google-crc32c { -# inherit (pkgs) crc32c; -# }; - -# google-generativeai = callPackage ./python-modules/google-generativeai { }; - -# google-i18n-address = callPackage ./python-modules/google-i18n-address { }; - -# google-nest-sdm = callPackage ./python-modules/google-nest-sdm { }; - -# googlemaps = callPackage ./python-modules/googlemaps { }; - -# google-pasta = callPackage ./python-modules/google-pasta { }; - -# google-re2 = callPackage ./python-modules/google-re2 { }; - -# google-reauth = callPackage ./python-modules/google-reauth { }; - -# google-resumable-media = callPackage ./python-modules/google-resumable-media { }; - -# google-search-results = callPackage ./python-modules/google-search-results { }; - -# googletrans = callPackage ./python-modules/googletrans { }; - -# gotailwind = callPackage ./python-modules/gotailwind { }; - -# gotenberg-client = callPackage ./python-modules/gotenberg-client { }; - -# gorilla = callPackage ./python-modules/gorilla { }; - -# govee-ble = callPackage ./python-modules/govee-ble { }; - -# govee-led-wez = callPackage ./python-modules/govee-led-wez { }; - -# govee-local-api = callPackage ./python-modules/govee-local-api { }; - -# goveelights = callPackage ./python-modules/goveelights { }; - -# gpapi = callPackage ./python-modules/gpapi { }; - -# gpaw = callPackage ./python-modules/gpaw { }; - -# gpib-ctypes = callPackage ./python-modules/gpib-ctypes { }; - -# gpiozero = callPackage ./python-modules/gpiozero { }; - -# gplaycli = callPackage ./python-modules/gplaycli { }; - -# gpgme = toPythonModule (pkgs.gpgme.override { -# pythonSupport = true; -# python3 = python; -# }); - -# gphoto2 = callPackage ./python-modules/gphoto2 { }; - -# gprof2dot = callPackage ./python-modules/gprof2dot { -# inherit (pkgs) graphviz; -# }; - -# gps3 = callPackage ./python-modules/gps3 { }; - -# gpsoauth = callPackage ./python-modules/gpsoauth { }; - -# gpuctypes = callPackage ./python-modules/gpuctypes { }; - -# gpustat = callPackage ./python-modules/gpustat { }; - -# gpxpy = callPackage ./python-modules/gpxpy { }; - -# gpy = callPackage ./python-modules/gpy { }; - -# gpytorch = callPackage ./python-modules/gpytorch { }; - -# gpt-2-simple = callPackage ./python-modules/gpt-2-simple { }; - -# gptcache = callPackage ./python-modules/gptcache { }; - -# gql = callPackage ./python-modules/gql { }; - -# grad-cam = callPackage ./python-modules/grad-cam { }; - -# gradient = callPackage ./python-modules/gradient { }; - -# gradient-utils = callPackage ./python-modules/gradient-utils { }; - -# gradient-statsd = callPackage ./python-modules/gradient-statsd { }; - -# gradio = callPackage ./python-modules/gradio { }; - -# gradio-client = callPackage ./python-modules/gradio/client.nix { }; - -# gradio-pdf = callPackage ./python-modules/gradio-pdf { }; - -# grafanalib = callPackage ./python-modules/grafanalib/default.nix { }; - -# grammalecte = callPackage ./python-modules/grammalecte { }; - -# grandalf = callPackage ./python-modules/grandalf { }; - -# grapheme = callPackage ./python-modules/grapheme { }; - -# graphite-web = callPackage ./python-modules/graphite-web { }; - -# graphene = callPackage ./python-modules/graphene { }; - -# graphene-django = callPackage ./python-modules/graphene-django { }; - -# graphlib-backport = callPackage ./python-modules/graphlib-backport { }; - -# graphqlclient= callPackage ./python-modules/graphqlclient { }; - -# graphql-core = callPackage ./python-modules/graphql-core { }; - -# graphql-relay = callPackage ./python-modules/graphql-relay { }; - -# graphql-server-core = callPackage ./python-modules/graphql-server-core { }; - -# graphql-subscription-manager = callPackage ./python-modules/graphql-subscription-manager { }; - -# graph-tool = callPackage ./python-modules/graph-tool { }; - -# graphtage = callPackage ./python-modules/graphtage { }; - -# graphviz = callPackage ./python-modules/graphviz { }; - -# grappelli-safe = callPackage ./python-modules/grappelli-safe { }; - -# graspologic = callPackage ./python-modules/graspologic { }; - -# greatfet = callPackage ./python-modules/greatfet { }; - -# greeclimate = callPackage ./python-modules/greeclimate { }; - -# green = callPackage ./python-modules/green { }; - -# greeneye-monitor = callPackage ./python-modules/greeneye-monitor { }; - -# # built-in for pypi - greenlet = if isPyPy then null else callPackage ./python-modules/greenlet { }; - -# grequests = callPackage ./python-modules/grequests { }; - -# gremlinpython = callPackage ./python-modules/gremlinpython { }; - -# greynoise = callPackage ./python-modules/greynoise { }; - -# growattserver = callPackage ./python-modules/growattserver { }; - -# gridnet = callPackage ./python-modules/gridnet { }; - -# griffe = callPackage ./python-modules/griffe { }; - -# grip = callPackage ./python-modules/grip { }; - -# groestlcoin-hash = callPackage ./python-modules/groestlcoin-hash { }; - -# grpc-google-iam-v1 = callPackage ./python-modules/grpc-google-iam-v1 { }; - -# grpc-interceptor = callPackage ./python-modules/grpc-interceptor { }; - -# grpcio = callPackage ./python-modules/grpcio { }; - -# grpcio-channelz = callPackage ./python-modules/grpcio-channelz { }; - -# grpcio-gcp = callPackage ./python-modules/grpcio-gcp { }; - -# grpcio-health-checking = callPackage ./python-modules/grpcio-health-checking { }; - -# grpcio-reflection = callPackage ./python-modules/grpcio-reflection { }; - -# grpcio-status = callPackage ./python-modules/grpcio-status { }; - -# grpcio-tools = callPackage ./python-modules/grpcio-tools { }; - -# grpcio-testing = callPackage ./python-modules/grpcio-testing { }; - -# grpclib = callPackage ./python-modules/grpclib { }; - -# gruut = callPackage ./python-modules/gruut { }; - -# gruut-ipa = callPackage ./python-modules/gruut-ipa { -# inherit (pkgs) espeak; -# }; - -# gsd = callPackage ./python-modules/gsd { }; - -# gsm0338 = callPackage ./python-modules/gsm0338 { }; - -# gspread = callPackage ./python-modules/gspread { }; - -# 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; -# }; - -# gtfs-realtime-bindings = callPackage ./python-modules/gtfs-realtime-bindings { }; - -# gto = callPackage ./python-modules/gto { }; - -# gtts = callPackage ./python-modules/gtts { }; - -# gtts-token = callPackage ./python-modules/gtts-token { }; - -# guessit = callPackage ./python-modules/guessit { }; - -# guestfs = callPackage ./python-modules/guestfs { -# qemu = pkgs.qemu; -# }; - -# gudhi = callPackage ./python-modules/gudhi { }; - -# guidance = callPackage ./python-modules/guidance { }; - -# gumath = callPackage ./python-modules/gumath { }; - -# gunicorn = callPackage ./python-modules/gunicorn { }; - -# guppy3 = callPackage ./python-modules/guppy3 { }; - -# gurobipy = callPackage ./python-modules/gurobipy { }; - -# guzzle-sphinx-theme = callPackage ./python-modules/guzzle-sphinx-theme { }; - -# gvm-tools = callPackage ./python-modules/gvm-tools { }; - -# gviz-api = callPackage ./python-modules/gviz-api { }; - -# gym = callPackage ./python-modules/gym { }; - -# gym-notices = callPackage ./python-modules/gym-notices { }; - -# gymnasium = callPackage ./python-modules/gymnasium { }; - -# gyp = callPackage ./python-modules/gyp { }; - -# h11 = callPackage ./python-modules/h11 { }; - -# h2 = callPackage ./python-modules/h2 { }; - -# h3 = callPackage ./python-modules/h3 { -# inherit (pkgs) h3; -# }; - -# h5io = callPackage ./python-modules/h5io { }; - -# h5netcdf = callPackage ./python-modules/h5netcdf { }; - -# h5py = callPackage ./python-modules/h5py { }; - -# h5py-mpi = self.h5py.override { -# hdf5 = pkgs.hdf5-mpi; -# }; - -# habanero = callPackage ./python-modules/habanero { }; - -# habluetooth = callPackage ./python-modules/habluetooth { }; - -# habitipy = callPackage ./python-modules/habitipy { }; - -# hachoir = callPackage ./python-modules/hachoir { }; - -# hacking = callPackage ./python-modules/hacking { }; - -# hdate = callPackage ./python-modules/hdate { }; - -# hdf5plugin = callPackage ./python-modules/hdf5plugin { }; - -# ha-ffmpeg = callPackage ./python-modules/ha-ffmpeg { }; - -# ha-mqtt-discoverable = callPackage ./python-modules/ha-mqtt-discoverable { }; - -# ha-philipsjs = callPackage ./python-modules/ha-philipsjs{ }; - -# hahomematic = callPackage ./python-modules/hahomematic { }; - -# halo = callPackage ./python-modules/halo { }; - -# halohome = callPackage ./python-modules/halohome { }; - -# handout = callPackage ./python-modules/handout { }; - -# hap-python = callPackage ./python-modules/hap-python { }; - -# hass-nabucasa = callPackage ./python-modules/hass-nabucasa { }; - -# hassil = callPackage ./python-modules/hassil { }; - -# hatasmota = callPackage ./python-modules/hatasmota { }; - - hatchling = callPackage ./python-modules/hatchling { }; - -# hatch-fancy-pypi-readme = callPackage ./python-modules/hatch-fancy-pypi-readme { }; - -# 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-requirements-txt = callPackage ./python-modules/hatch-requirements-txt { }; - -# haversine = callPackage ./python-modules/haversine { }; - -# hawkauthlib = callPackage ./python-modules/hawkauthlib { }; - -# hcloud = callPackage ./python-modules/hcloud { }; - -# hcs-utils = callPackage ./python-modules/hcs-utils { }; - -# hdbscan = callPackage ./python-modules/hdbscan { }; - -# hdfs = callPackage ./python-modules/hdfs { }; - -# hdmedians = callPackage ./python-modules/hdmedians { }; - -# headerparser = callPackage ./python-modules/headerparser { }; - -# heapdict = callPackage ./python-modules/heapdict { }; - -# heatshrink2 = callPackage ./python-modules/heatshrink2 { }; - -# heatzypy = callPackage ./python-modules/heatzypy { }; - -# help2man = callPackage ./python-modules/help2man { }; - -# helpdev = callPackage ./python-modules/helpdev { }; - -# helper = callPackage ./python-modules/helper { }; - -# hepmc3 = toPythonModule (pkgs.hepmc3.override { -# inherit python; -# }); - -# hepunits = callPackage ./python-modules/hepunits { }; - -# here-routing = callPackage ./python-modules/here-routing { }; - -# here-transit = callPackage ./python-modules/here-transit { }; - -# herepy = callPackage ./python-modules/herepy { }; - -# hetzner = callPackage ./python-modules/hetzner { }; - -# heudiconv = callPackage ./python-modules/heudiconv { }; - -# hexbytes = callPackage ./python-modules/hexbytes { }; - -# hexdump = callPackage ./python-modules/hexdump { }; - -# hfst = callPackage ./python-modules/hfst { }; - -# hg-commitsigs = callPackage ./python-modules/hg-commitsigs { }; - -# hg-evolve = callPackage ./python-modules/hg-evolve { }; - -# hg-git = callPackage ./python-modules/hg-git { }; - -# hickle = callPackage ./python-modules/hickle { }; - -# highdicom = callPackage ./python-modules/highdicom { }; - -# hid = callPackage ./python-modules/hid { -# inherit (pkgs) hidapi; -# }; - -# hidapi = callPackage ./python-modules/hidapi { -# inherit (pkgs) udev libusb1; -# }; - -# hid-parser = callPackage ./python-modules/hid-parser { }; - -# hieroglyph = callPackage ./python-modules/hieroglyph { }; - -# hijri-converter = callPackage ./python-modules/hijri-converter { }; - -# hikari = callPackage ./python-modules/hikari { }; - -# hikvision = callPackage ./python-modules/hikvision { }; - -# hiredis = callPackage ./python-modules/hiredis { }; - -# hiro = callPackage ./python-modules/hiro { }; - -# hishel = callPackage ./python-modules/hishel { }; - -# hist = callPackage ./python-modules/hist { }; - -# histoprint = callPackage ./python-modules/histoprint { }; - -# hiyapyco = callPackage ./python-modules/hiyapyco { }; - -# hjson = callPackage ./python-modules/hjson { }; - -# hkavr = callPackage ./python-modules/hkavr { }; - -# hkdf = callPackage ./python-modules/hkdf { }; - -# hledger-utils = callPackage ./python-modules/hledger-utils { }; - -# hlk-sw16 = callPackage ./python-modules/hlk-sw16 { }; - -# hnswlib = callPackage ./python-modules/hnswlib { -# inherit (pkgs) hnswlib; -# }; - -# hmmlearn = callPackage ./python-modules/hmmlearn { }; - -# hocr-tools = callPackage ./python-modules/hocr-tools { }; - -# hole = callPackage ./python-modules/hole { }; - -# holidays = callPackage ./python-modules/holidays { }; - -# hologram = callPackage ./python-modules/hologram { }; - -# holoviews = callPackage ./python-modules/holoviews { }; - -# home-assistant-bluetooth = callPackage ./python-modules/home-assistant-bluetooth { }; - -# home-assistant-chip-clusters = callPackage ./python-modules/home-assistant-chip-clusters { }; - -# home-assistant-chip-core = callPackage ./python-modules/home-assistant-chip-core { }; - -# homeassistant-stubs = callPackage ../servers/home-assistant/stubs.nix { }; - -# homeconnect = callPackage ./python-modules/homeconnect { }; - -# homematicip = callPackage ./python-modules/homematicip { }; - -# homepluscontrol = callPackage ./python-modules/homepluscontrol { }; - -# hoomd-blue = toPythonModule (callPackage ./python-modules/hoomd-blue { -# inherit python; -# }); - -# hopcroftkarp = callPackage ./python-modules/hopcroftkarp { }; - -# horizon-eda = callPackage ./python-modules/horizon-eda { -# inherit (pkgs) horizon-eda mesa; -# }; - -# howdoi = callPackage ./python-modules/howdoi { }; - -# hpack = callPackage ./python-modules/hpack { }; - -# hpccm = callPackage ./python-modules/hpccm { }; - -# hpp-fcl = toPythonModule (pkgs.hpp-fcl.override { -# pythonSupport = true; -# python3Packages = self; -# }); - -# hs-dbus-signature = callPackage ./python-modules/hs-dbus-signature { }; - -# hsaudiotag3k = callPackage ./python-modules/hsaudiotag3k { }; - -# hsh = callPackage ./python-modules/hsh { }; - -# hsluv = callPackage ./python-modules/hsluv { }; - -# hstspreload = callPackage ./python-modules/hstspreload { }; - -# html2image = callPackage ./python-modules/html2image { }; - -# html2text = callPackage ./python-modules/html2text { }; - - html5lib = callPackage ./python-modules/html5lib { }; - -# html5tagger = callPackage ./python-modules/html5tagger { }; - -# html5-parser = callPackage ./python-modules/html5-parser { }; - -# htmldate = callPackage ./python-modules/htmldate { }; - -# htmllaundry = callPackage ./python-modules/htmllaundry { }; - -# htmllistparse = callPackage ./python-modules/htmllistparse { }; - -# htmlmin = callPackage ./python-modules/htmlmin { }; - -# html-sanitizer = callPackage ./python-modules/html-sanitizer { }; - -# html-tag-names = callPackage ./python-modules/html-tag-names { }; - -# html-text = callPackage ./python-modules/html-text { }; - -# html-void-elements = callPackage ./python-modules/html-void-elements { }; - -# htseq = callPackage ./python-modules/htseq { }; - -# httmock = callPackage ./python-modules/httmock { }; - -# httpagentparser = callPackage ./python-modules/httpagentparser { }; - -# httpauth = callPackage ./python-modules/httpauth { }; - -# httpbin = callPackage ./python-modules/httpbin { }; - -# httpcore = callPackage ./python-modules/httpcore { }; - -# httpie = callPackage ./python-modules/httpie { }; - -# http-ece = callPackage ./python-modules/http-ece { }; - -# httpie-ntlm = callPackage ./python-modules/httpie-ntlm { }; - -# httplib2 = callPackage ./python-modules/httplib2 { }; - -# http-message-signatures = callPackage ./python-modules/http-message-signatures { }; - -# http-parser = callPackage ./python-modules/http-parser { }; - -# http-sf = callPackage ./python-modules/http-sf { }; - -# http-sfv = callPackage ./python-modules/http-sfv { }; - -# httpretty = callPackage ./python-modules/httpretty { }; - -# httpserver = callPackage ./python-modules/httpserver { }; - -# httpsig = callPackage ./python-modules/httpsig { }; - -# httptools = callPackage ./python-modules/httptools { }; - -# httpx = callPackage ./python-modules/httpx { }; - -# httpx-auth = callPackage ./python-modules/httpx-auth { }; - -# httpx-ntlm = callPackage ./python-modules/httpx-ntlm { }; - -# httpx-socks = callPackage ./python-modules/httpx-socks { }; - -# httpx-sse = callPackage ./python-modules/httpx-sse { }; - -# huawei-lte-api = callPackage ./python-modules/huawei-lte-api { }; - -# huey = callPackage ./python-modules/huey { }; - -# hug = callPackage ./python-modules/hug { }; - -# huggingface-hub = callPackage ./python-modules/huggingface-hub { }; - -# huisbaasje-client = callPackage ./python-modules/huisbaasje-client { }; - -# humanfriendly = callPackage ./python-modules/humanfriendly { }; - -# humanize = callPackage ./python-modules/humanize { }; - -# human-readable = callPackage ./python-modules/human-readable { }; - -# humblewx = callPackage ./python-modules/humblewx { }; - -# hupper = callPackage ./python-modules/hupper { }; - -# hurry-filesize = callPackage ./python-modules/hurry-filesize { }; - -# huum = callPackage ./python-modules/huum { }; - -# hvac = callPackage ./python-modules/hvac { }; - -# hvplot = callPackage ./python-modules/hvplot { }; - -# hwdata = callPackage ./python-modules/hwdata { }; - -# hwi = callPackage ./python-modules/hwi { }; - -# hy = callPackage ./python-modules/hy { }; - -# hydra-core = callPackage ./python-modules/hydra-core { }; - -# hydra-check = callPackage ./python-modules/hydra-check { }; - -# hydrawiser = callPackage ./python-modules/hydrawiser { }; - -# hydrus-api = callPackage ./python-modules/hydrus-api { }; - -# hypchat = callPackage ./python-modules/hypchat { }; - -# hypercorn = callPackage ./python-modules/hypercorn { }; - -# hyperframe = callPackage ./python-modules/hyperframe { }; - -# hyperscan = callPackage ./python-modules/hyperscan { }; - -# hyperion-py = callPackage ./python-modules/hyperion-py { }; - -# hyperlink = callPackage ./python-modules/hyperlink { }; - -# hyperopt = callPackage ./python-modules/hyperopt { }; - -# hyperpyyaml = callPackage ./python-modules/hyperpyyaml { }; - -# hypothesis-auto = callPackage ./python-modules/hypothesis-auto { }; - - hypothesis = callPackage ./python-modules/hypothesis { }; - -# hypothesmith = callPackage ./python-modules/hypothesmith { }; - -# hyppo = callPackage ./python-modules/hyppo { }; - -# hyrule = callPackage ./python-modules/hyrule { }; - -# i2c-tools = callPackage ./python-modules/i2c-tools { -# inherit (pkgs) i2c-tools; -# }; - -# i2csense = callPackage ./python-modules/i2csense { }; - -# i3ipc = callPackage ./python-modules/i3ipc { }; - -# i3-py = callPackage ./python-modules/i3-py { }; - -# iammeter = callPackage ./python-modules/iammeter { }; - -# iapws = callPackage ./python-modules/iapws { }; - -# iaqualink = callPackage ./python-modules/iaqualink { }; - -# ibeacon-ble = callPackage ./python-modules/ibeacon-ble { }; - -# ibis = callPackage ./python-modules/ibis { }; - -# ibis-framework = callPackage ./python-modules/ibis-framework { }; - -# ibm-cloud-sdk-core = callPackage ./python-modules/ibm-cloud-sdk-core { }; - -# ibm-watson = callPackage ./python-modules/ibm-watson { }; - -# ical = callPackage ./python-modules/ical { }; - -# icalendar = callPackage ./python-modules/icalendar { }; - -# icalevents = callPackage ./python-modules/icalevents { }; - -# icecream = callPackage ./python-modules/icecream { }; - -# iceportal = callPackage ./python-modules/iceportal { }; - -# icmplib = callPackage ./python-modules/icmplib { }; - -# icnsutil = callPackage ./python-modules/icnsutil { }; - -# ics = callPackage ./python-modules/ics { }; - -# idasen = callPackage ./python-modules/idasen { }; - -# icoextract = callPackage ./python-modules/icoextract { }; - -# icontract = callPackage ./python-modules/icontract { }; - -# id = callPackage ./python-modules/id { }; - -# identify = callPackage ./python-modules/identify { }; - - idna = callPackage ./python-modules/idna { }; - -# idna-ssl = callPackage ./python-modules/idna-ssl { }; - -# ifaddr = callPackage ./python-modules/ifaddr { }; - -# ifconfig-parser = callPackage ./python-modules/ifconfig-parser { }; - -# ifcopenshell = callPackage ./python-modules/ifcopenshell { }; - -# ignite = callPackage ./python-modules/ignite { }; - -# igraph = callPackage ./python-modules/igraph { -# inherit (pkgs) igraph; -# }; - -# ihm = callPackage ./python-modules/ihm { }; - -# iisignature = callPackage ./python-modules/iisignature { }; - -# ijson = callPackage ./python-modules/ijson { }; - -# ilua = callPackage ./python-modules/ilua { }; - -# imagecodecs-lite = callPackage ./python-modules/imagecodecs-lite { }; - -# imagecorruptions = callPackage ./python-modules/imagecorruptions { }; - -# imagededup = callPackage ./python-modules/imagededup { }; - -# imagehash = callPackage ./python-modules/imagehash { }; - -# imageio = callPackage ./python-modules/imageio { }; - -# imageio-ffmpeg = callPackage ./python-modules/imageio-ffmpeg { }; - -# image-diff = callPackage ./python-modules/image-diff { }; - -# image-go-nord = callPackage ./python-modules/image-go-nord { }; - - imagesize = callPackage ./python-modules/imagesize { }; - -# imantics = callPackage ./python-modules/imantics { }; - -# imapclient = callPackage ./python-modules/imapclient { }; - -# imaplib2 = callPackage ./python-modules/imaplib2 { }; - -# imap-tools = callPackage ./python-modules/imap-tools { }; - -# imbalanced-learn = callPackage ./python-modules/imbalanced-learn { }; - -# img2pdf = callPackage ./python-modules/img2pdf { }; - -# imgcat = callPackage ./python-modules/imgcat { }; - -# imgdiff = callPackage ./python-modules/imgdiff { }; - -# imgsize = callPackage ./python-modules/imgsize { }; - -# imgtool = callPackage ./python-modules/imgtool { }; - -# imia = callPackage ./python-modules/imia { }; - -# iminuit = callPackage ./python-modules/iminuit { }; - -# immutabledict = callPackage ./python-modules/immutabledict { }; - -# immutables = callPackage ./python-modules/immutables { }; - -# impacket = callPackage ./python-modules/impacket { }; - -# import-expression = callPackage ./python-modules/import-expression { }; - -# importlab = callPackage ./python-modules/importlab { }; - - importlib-metadata = callPackage ./python-modules/importlib-metadata { }; - -# importlib-resources = callPackage ./python-modules/importlib-resources { }; - -# importmagic = callPackage ./python-modules/importmagic { }; - -# imread = callPackage ./python-modules/imread { -# inherit (pkgs) libjpeg libpng libtiff libwebp; -# }; - -# imutils = callPackage ./python-modules/imutils { }; - -# in-n-out = callPackage ./python-modules/in-n-out { }; - -# in-place = callPackage ./python-modules/in-place { }; - -# incomfort-client = callPackage ./python-modules/incomfort-client { }; - -# incremental = callPackage ./python-modules/incremental { }; - -# indexed-bzip2 = callPackage ./python-modules/indexed-bzip2 { }; - -# indexed-gzip = callPackage ./python-modules/indexed-gzip { inherit (pkgs) zlib; }; - -# indexed-zstd = callPackage ./python-modules/indexed-zstd { inherit (pkgs) zstd; }; - -# infinity = callPackage ./python-modules/infinity { }; - -# inflect = callPackage ./python-modules/inflect { }; - -# inflection = callPackage ./python-modules/inflection { }; - -# influxdb = callPackage ./python-modules/influxdb { }; - -# influxdb-client = callPackage ./python-modules/influxdb-client { }; - -# influxdb3-python = callPackage ./python-modules/influxdb3-python { }; - -# inform = callPackage ./python-modules/inform { }; - - iniconfig = callPackage ./python-modules/iniconfig { }; - -# inifile = callPackage ./python-modules/inifile { }; - -# iniparse = callPackage ./python-modules/iniparse { }; - -# injector = callPackage ./python-modules/injector { }; - -# inkbird-ble = callPackage ./python-modules/inkbird-ble { }; - -# inkex = callPackage ./python-modules/inkex { }; - -# inlinestyler = callPackage ./python-modules/inlinestyler { }; - -# inotify = callPackage ./python-modules/inotify { }; - -# inotify-simple = callPackage ./python-modules/inotify-simple { }; - -# inotifyrecursive = callPackage ./python-modules/inotifyrecursive { }; - -# inquirer = callPackage ./python-modules/inquirer { }; - -# inquirerpy = callPackage ./python-modules/inquirerpy { }; - -# inscriptis = callPackage ./python-modules/inscriptis { }; - -# insegel = callPackage ./python-modules/insegel { }; - -# insightface = callPackage ./python-modules/insightface { }; - - installer = callPackage ./python-modules/installer { }; - -# insteon-frontend-home-assistant = callPackage ./python-modules/insteon-frontend-home-assistant { }; - -# instructor = callPackage ./python-modules/instructor { }; - -# intake = callPackage ./python-modules/intake { }; - -# intake-parquet = callPackage ./python-modules/intake-parquet { }; - -# intbitset = callPackage ./python-modules/intbitset { }; - -# intelhex = callPackage ./python-modules/intelhex { }; - -# intellifire4py = callPackage ./python-modules/intellifire4py { }; - -# intensity-normalization = callPackage ./python-modules/intensity-normalization { }; - -# interegular = callPackage ./python-modules/interegular { }; - -# interface-meta = callPackage ./python-modules/interface-meta { }; - -# internetarchive = callPackage ./python-modules/internetarchive { }; - -# interruptingcow = callPackage ./python-modules/interruptingcow { }; - -# intervaltree = callPackage ./python-modules/intervaltree { }; - -# into-dbus-python = callPackage ./python-modules/into-dbus-python { }; - -# invisible-watermark = callPackage ./python-modules/invisible-watermark { }; - -# invocations = callPackage ./python-modules/invocations { }; - -# invoke = callPackage ./python-modules/invoke { }; - -# iocsearcher = callPackage ./python-modules/iocsearcher { }; - -# iodata = callPackage ./python-modules/iodata { }; - -# iocapture = callPackage ./python-modules/iocapture { }; - -# iocextract = callPackage ./python-modules/iocextract { }; - -# ionhash = callPackage ./python-modules/ionhash { }; - -# ionoscloud = callPackage ./python-modules/ionoscloud { }; - -# iopath = callPackage ./python-modules/iopath { }; - -# iotawattpy = callPackage ./python-modules/iotawattpy { }; - -# iowait = callPackage ./python-modules/iowait { }; - -# ipadic = callPackage ./python-modules/ipadic { }; - -# ipaddr = callPackage ./python-modules/ipaddr { }; - -# ipdb = callPackage ./python-modules/ipdb { }; - -# ipdbplugin = callPackage ./python-modules/ipdbplugin { }; - -# ipfshttpclient = callPackage ./python-modules/ipfshttpclient { }; - -# i-pi = callPackage ./python-modules/i-pi { }; - -# iptools = callPackage ./python-modules/iptools { }; - -# ipwhl = callPackage ./python-modules/ipwhl { }; - -# ipwhois = callPackage ./python-modules/ipwhois { }; - -# ipy = callPackage ./python-modules/ipy { }; - -# ipycanvas = callPackage ./python-modules/ipycanvas { }; - -# ipydatawidgets = callPackage ./python-modules/ipydatawidgets { }; - -# ipynbname = callPackage ./python-modules/ipynbname { }; - -# ipyniivue = callPackage ./python-modules/ipyniivue { }; - -# ipykernel = callPackage ./python-modules/ipykernel { }; - -# ipymarkup = callPackage ./python-modules/ipymarkup { }; - -# ipympl = callPackage ./python-modules/ipympl { }; - -# ipyparallel = callPackage ./python-modules/ipyparallel { }; - -# ipytablewidgets = callPackage ./python-modules/ipytablewidgets { }; - -# ipython-genutils = callPackage ./python-modules/ipython-genutils { }; - -# ipython = callPackage ./python-modules/ipython { }; - -# ipython-sql = callPackage ./python-modules/ipython-sql { }; - -# ipyvue = callPackage ./python-modules/ipyvue { }; - -# ipyvuetify = callPackage ./python-modules/ipyvuetify { }; - -# ipywidgets = callPackage ./python-modules/ipywidgets { }; - -# ipyxact = callPackage ./python-modules/ipyxact { }; - -# irc = callPackage ./python-modules/irc { }; - -# ircrobots = callPackage ./python-modules/ircrobots { }; - -# ircstates = callPackage ./python-modules/ircstates { }; - -# irctokens = callPackage ./python-modules/irctokens { }; - -# isbnlib = callPackage ./python-modules/isbnlib { }; - -# islpy = callPackage ./python-modules/islpy { }; - -# iso3166 = callPackage ./python-modules/iso3166 { }; - -# ismartgate = callPackage ./python-modules/ismartgate { }; - -# iso-639 = callPackage ./python-modules/iso-639 { }; - -# iso4217 = callPackage ./python-modules/iso4217 { }; - -# iso8601 = callPackage ./python-modules/iso8601 { }; - -# isodate = callPackage ./python-modules/isodate { }; - -# isoduration = callPackage ./python-modules/isoduration { }; - -# isort = callPackage ./python-modules/isort { }; - -# isosurfaces = callPackage ./python-modules/isosurfaces { }; - -# isounidecode = callPackage ./python-modules/isounidecode { }; - -# isoweek = callPackage ./python-modules/isoweek { }; - -# itanium-demangler = callPackage ./python-modules/itanium-demangler { }; - -# item-synchronizer = callPackage ./python-modules/item-synchronizer { }; - -# itemadapter = callPackage ./python-modules/itemadapter { }; - -# itemdb = callPackage ./python-modules/itemdb { }; - -# itemloaders = callPackage ./python-modules/itemloaders { }; - -# iteration-utilities = callPackage ./python-modules/iteration-utilities { }; - -# iterative-telemetry = callPackage ./python-modules/iterative-telemetry { }; - -# iterm2 = callPackage ./python-modules/iterm2 { }; - -# itsdangerous = callPackage ./python-modules/itsdangerous { }; - -# itunespy = callPackage ./python-modules/itunespy { }; - -# itypes = callPackage ./python-modules/itypes { }; - -# iwlib = callPackage ./python-modules/iwlib { }; - -# j2cli = callPackage ./python-modules/j2cli { }; - -# jaconv = callPackage ./python-modules/jaconv { }; - -# jaeger-client = callPackage ./python-modules/jaeger-client { }; - -# jamo = callPackage ./python-modules/jamo { }; - -# janus = callPackage ./python-modules/janus { }; - -# jaraco-abode = callPackage ./python-modules/jaraco-abode { }; - -# jaraco-classes = callPackage ./python-modules/jaraco-classes { }; - -# jaraco-collections = callPackage ./python-modules/jaraco-collections { }; - -# jaraco-email = callPackage ./python-modules/jaraco-email { }; - -# jaraco-context = callPackage ./python-modules/jaraco-context { }; - -# jaraco-functools = callPackage ./python-modules/jaraco-functools { }; - - jaraco-itertools = callPackage ./python-modules/jaraco-itertools { }; - -# jaraco-logging = callPackage ./python-modules/jaraco-logging { }; - -# jaraco-net = callPackage ./python-modules/jaraco-net { }; - -# jaraco-stream = callPackage ./python-modules/jaraco-stream { }; - -# jaraco-test = callPackage ./python-modules/jaraco-test { }; - -# jaraco-text = callPackage ./python-modules/jaraco-text { }; - -# jarowinkler = callPackage ./python-modules/jarowinkler { }; - -# javaobj-py3 = callPackage ./python-modules/javaobj-py3 { }; - -# javaproperties = callPackage ./python-modules/javaproperties { }; - -# jax = callPackage ./python-modules/jax { }; - -# jax-jumpy = callPackage ./python-modules/jax-jumpy { }; - -# 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 = self.jaxlib-build; - -# jaxlibWithCuda = self.jaxlib-build.override { -# cudaSupport = true; -# }; - -# jaxlibWithoutCuda = self.jaxlib-build.override { -# cudaSupport = false; -# }; - -# jaxopt = callPackage ./python-modules/jaxopt { }; - -# jaxtyping = callPackage ./python-modules/jaxtyping { }; - -# jaydebeapi = callPackage ./python-modules/jaydebeapi { }; - -# jc = callPackage ./python-modules/jc { }; - -# jdatetime = callPackage ./python-modules/jdatetime { }; - -# jdcal = callPackage ./python-modules/jdcal { }; - -# jedi = callPackage ./python-modules/jedi { }; - -# jedi-language-server = callPackage ./python-modules/jedi-language-server { }; - -# jeepney = callPackage ./python-modules/jeepney { }; - -# jello = callPackage ./python-modules/jello { }; - -# jellyfin-apiclient-python = callPackage ./python-modules/jellyfin-apiclient-python { }; - -# jellyfish = callPackage ./python-modules/jellyfish { }; - -# jenkinsapi = callPackage ./python-modules/jenkinsapi { }; - -# jenkins-job-builder = callPackage ./python-modules/jenkins-job-builder { }; - -# jieba = callPackage ./python-modules/jieba { }; - - jinja2 = callPackage ./python-modules/jinja2 { }; - -# jinja2-ansible-filters = callPackage ./python-modules/jinja2-ansible-filters { }; - -# jinja2-git = callPackage ./python-modules/jinja2-git { }; - -# jinja2-pluralize = callPackage ./python-modules/jinja2-pluralize { }; - -# jinja2-time = callPackage ./python-modules/jinja2-time { }; - -# jira = callPackage ./python-modules/jira { }; - -# jishaku = callPackage ./python-modules/jishaku { }; - -# jiwer = callPackage ./python-modules/jiwer { }; - -# jmespath = callPackage ./python-modules/jmespath { }; - -# jmp = callPackage ./python-modules/jmp { }; - -# joblib = callPackage ./python-modules/joblib { }; - -# johnnycanencrypt = callPackage ./python-modules/johnnycanencrypt { -# inherit (pkgs.darwin.apple_sdk.frameworks) PCSC; -# }; - -# josepy = callPackage ./python-modules/josepy { }; - -# joserfc = callPackage ./python-modules/joserfc { }; - -# journalwatch = callPackage ../tools/system/journalwatch { -# inherit (self) systemd pytest; -# }; - -# jplephem = callPackage ./python-modules/jplephem { }; - -# jproperties = callPackage ./python-modules/jproperties { }; - -# jpylyzer = callPackage ./python-modules/jpylyzer { }; - -# jpype1 = callPackage ./python-modules/jpype1 { }; - -# jq = callPackage ./python-modules/jq { -# inherit (pkgs) jq; -# }; - -# js2py = callPackage ./python-modules/js2py { }; - -# jsbeautifier = callPackage ./python-modules/jsbeautifier { }; - -# jschema-to-python = callPackage ./python-modules/jschema-to-python { }; - -# jsmin = callPackage ./python-modules/jsmin { }; - -# json5 = callPackage ./python-modules/json5 { }; - -# jsonargparse = callPackage ./python-modules/jsonargparse { }; - -# jsonconversion = callPackage ./python-modules/jsonconversion { }; - -# jsondate = callPackage ./python-modules/jsondate { }; - -# jsondiff = callPackage ./python-modules/jsondiff { }; - -# jsonfeed = callPackage ./python-modules/jsonfeed { }; - -# jsonfield = callPackage ./python-modules/jsonfield { }; - -# jsonlines = callPackage ./python-modules/jsonlines { }; - -# json-logging = callPackage ./python-modules/json-logging { }; - -# jsonmerge = callPackage ./python-modules/jsonmerge { }; - -# json-home-client = callPackage ./python-modules/json-home-client { }; - -# json-merge-patch = callPackage ./python-modules/json-merge-patch { }; - -# json-schema-for-humans = callPackage ./python-modules/json-schema-for-humans { }; - -# json-stream = callPackage ./python-modules/json-stream { }; - -# json-stream-rs-tokenizer = callPackage ./python-modules/json-stream-rs-tokenizer { }; - -# jsonable = callPackage ./python-modules/jsonable { }; - -# jsonformatter = callPackage ./python-modules/jsonformatter { }; - -# jsonnet = buildPythonPackage { inherit (pkgs.jsonnet) name src; }; - -# jsonpatch = callPackage ./python-modules/jsonpatch { }; - -# jsonpath = callPackage ./python-modules/jsonpath { }; - -# jsonpath-rw = callPackage ./python-modules/jsonpath-rw { }; - -# jsonpath-ng = callPackage ./python-modules/jsonpath-ng { }; - -# jsonpickle = callPackage ./python-modules/jsonpickle { }; - -# jsonpointer = callPackage ./python-modules/jsonpointer { }; - -# jsonref = callPackage ./python-modules/jsonref { }; - -# json-rpc = callPackage ./python-modules/json-rpc { }; - -# jsonrpc-async = callPackage ./python-modules/jsonrpc-async { }; - -# jsonrpc-base = callPackage ./python-modules/jsonrpc-base { }; - -# jsonrpclib-pelix = callPackage ./python-modules/jsonrpclib-pelix { }; - -# jsonrpc-websocket = callPackage ./python-modules/jsonrpc-websocket { }; - -# jsons = callPackage ./python-modules/jsons { }; - -# jsonschema = callPackage ./python-modules/jsonschema { }; - -# jsonschema-path = callPackage ./python-modules/jsonschema-path { }; - -# jsonschema-spec = callPackage ./python-modules/jsonschema-spec { }; - -# jsonschema-specifications = callPackage ./python-modules/jsonschema-specifications { }; - -# jsonslicer = callPackage ./python-modules/jsonslicer { }; - -# jsonstreams = callPackage ./python-modules/jsonstreams { }; - -# json-tricks = callPackage ./python-modules/json-tricks { }; - -# jstyleson = callPackage ./python-modules/jstyleson { }; - -# jug = callPackage ./python-modules/jug { }; - -# julius = callPackage ./python-modules/julius { }; - -# junitparser = callPackage ./python-modules/junitparser { }; - -# junit2html = callPackage ./python-modules/junit2html { }; - -# junit-xml = callPackage ./python-modules/junit-xml { }; - -# junos-eznc = callPackage ./python-modules/junos-eznc { }; - -# jupyter = callPackage ./python-modules/jupyter { }; - -# jupyter-book = callPackage ./python-modules/jupyter-book { }; - -# jupyter-c-kernel = callPackage ./python-modules/jupyter-c-kernel { }; - -# jupyter-cache = callPackage ./python-modules/jupyter-cache { }; - -# jupyter-client = callPackage ./python-modules/jupyter-client { }; - -# jupyter-collaboration = callPackage ./python-modules/jupyter-collaboration { }; - -# jupyter-contrib-core = callPackage ./python-modules/jupyter-contrib-core { }; - -# jupyter-contrib-nbextensions = callPackage ./python-modules/jupyter-contrib-nbextensions { }; - -# jupyter-console = callPackage ./python-modules/jupyter-console { }; - -# jupyter-core = callPackage ./python-modules/jupyter-core { }; - -# jupyter-events = callPackage ./python-modules/jupyter-events { }; - -# jupyter-highlight-selected-word = callPackage ./python-modules/jupyter-highlight-selected-word { }; - -# jupyter-lsp = callPackage ./python-modules/jupyter-lsp { }; - -# jupyter-nbextensions-configurator = callPackage ./python-modules/jupyter-nbextensions-configurator { }; - -# jupyter-server = callPackage ./python-modules/jupyter-server { }; - -# jupyter-server-fileid = callPackage ./python-modules/jupyter-server-fileid { }; - -# jupyter-server-terminals = callPackage ./python-modules/jupyter-server-terminals { }; - -# jupyter-ui-poll = callPackage ./python-modules/jupyter-ui-poll { }; - -# jupyter-ydoc = callPackage ./python-modules/jupyter-ydoc { }; - -# jupyterhub = callPackage ./python-modules/jupyterhub { }; - -# jupyterhub-ldapauthenticator = callPackage ./python-modules/jupyterhub-ldapauthenticator { }; - -# jupyterhub-systemdspawner = callPackage ./python-modules/jupyterhub-systemdspawner { }; - -# jupyterhub-tmpauthenticator = callPackage ./python-modules/jupyterhub-tmpauthenticator { }; - -# jupyterlab = callPackage ./python-modules/jupyterlab { }; - -# jupyterlab-git = callPackage ./python-modules/jupyterlab-git { }; - -# jupyterlab-pygments = callPackage ./python-modules/jupyterlab-pygments { }; - -# jupyterlab-server = callPackage ./python-modules/jupyterlab-server { }; - -# jupyterlab-widgets = callPackage ./python-modules/jupyterlab-widgets { }; - -# jupyterlab-lsp = callPackage ./python-modules/jupyterlab-lsp { }; - -# jupyter-packaging = callPackage ./python-modules/jupyter-packaging { }; - -# jupyter-repo2docker = callPackage ./python-modules/jupyter-repo2docker { -# pkgs-docker = pkgs.docker; -# }; - -# jupyter-server-mathjax = callPackage ./python-modules/jupyter-server-mathjax { }; - -# jupyter-sphinx = callPackage ./python-modules/jupyter-sphinx { }; - -# jupyter-telemetry = callPackage ./python-modules/jupyter-telemetry { }; - -# jupytext = callPackage ./python-modules/jupytext { }; - -# justbackoff = callPackage ./python-modules/justbackoff { }; - -# justbases = callPackage ./python-modules/justbases { }; - -# justbytes = callPackage ./python-modules/justbytes { }; - -# justext = callPackage ./python-modules/justext { }; - -# justnimbus = callPackage ./python-modules/justnimbus { }; - -# jwcrypto = callPackage ./python-modules/jwcrypto { }; - -# jwt = callPackage ./python-modules/jwt { }; - -# jxmlease = callPackage ./python-modules/jxmlease { }; - -# k-diffusion = callPackage ./python-modules/k-diffusion { }; - -# k5test = callPackage ./python-modules/k5test { -# inherit (pkgs) krb5 findutils; -# }; - -# kaa-base = callPackage ./python-modules/kaa-base { }; - -# kaa-metadata = callPackage ./python-modules/kaa-metadata { }; - -# kafka-python = callPackage ./python-modules/kafka-python { }; - -# kaggle = callPackage ./python-modules/kaggle { }; - -# kaitaistruct = callPackage ./python-modules/kaitaistruct { }; - -# kajiki = callPackage ./python-modules/kajiki { }; - -# kaldi-active-grammar = callPackage ./python-modules/kaldi-active-grammar { }; - -# kanidm = callPackage ./python-modules/kanidm { }; - -# kaptan = callPackage ./python-modules/kaptan { }; - -# karton-asciimagic = callPackage ./python-modules/karton-asciimagic { }; - -# karton-autoit-ripper = callPackage ./python-modules/karton-autoit-ripper { }; - -# karton-classifier = callPackage ./python-modules/karton-classifier { }; - -# karton-config-extractor = callPackage ./python-modules/karton-config-extractor { }; - -# karton-core = callPackage ./python-modules/karton-core { }; - -# karton-dashboard = callPackage ./python-modules/karton-dashboard { }; - -# karton-mwdb-reporter = callPackage ./python-modules/karton-mwdb-reporter { }; - -# karton-yaramatcher = callPackage ./python-modules/karton-yaramatcher { }; - -# kasa-crypt = callPackage ./python-modules/kasa-crypt { }; - -# kazoo = callPackage ./python-modules/kazoo { }; - -# kbcstorage = callPackage ./python-modules/kbcstorage { }; - -# kconfiglib = callPackage ./python-modules/kconfiglib { }; - -# keba-kecontact = callPackage ./python-modules/keba-kecontact { }; - -# keep = callPackage ./python-modules/keep { }; - -# keepalive = callPackage ./python-modules/keepalive { }; - -# keepkey-agent = callPackage ./python-modules/keepkey-agent { }; - -# keepkey = callPackage ./python-modules/keepkey { }; - -# kegtron-ble = callPackage ./python-modules/kegtron-ble { }; - -# keras-applications = callPackage ./python-modules/keras-applications { }; - -# keras = callPackage ./python-modules/keras { }; - -# keras-preprocessing = callPackage ./python-modules/keras-preprocessing { }; - -# kerberos = callPackage ./python-modules/kerberos { }; - -# keyboard = callPackage ./python-modules/keyboard { }; - -# keyring = callPackage ./python-modules/keyring { }; - -# keyring-pass = callPackage ./python-modules/keyring-pass { }; - -# keyrings-cryptfile = callPackage ./python-modules/keyrings-cryptfile { }; - -# keyrings-google-artifactregistry-auth = callPackage ./python-modules/keyrings-google-artifactregistry-auth { }; - -# keyrings-alt = callPackage ./python-modules/keyrings-alt { }; - -# keystone-engine = callPackage ./python-modules/keystone-engine { }; - -# keyrings-passwordstore = callPackage ./python-modules/keyrings-passwordstore { }; - -# keystoneauth1 = callPackage ./python-modules/keystoneauth1 { }; - -# keyutils = callPackage ./python-modules/keyutils { -# inherit (pkgs) keyutils; -# }; - -# khanaa = callPackage ./python-modules/khanaa {}; - -# kicad = toPythonModule (pkgs.kicad.override { -# python3 = python; -# }).src; - -# kinparse = callPackage ./python-modules/kinparse { }; - -# kiss-headers = callPackage ./python-modules/kiss-headers { }; - -# kitchen = callPackage ./python-modules/kitchen { }; - -# kivy = callPackage ./python-modules/kivy { -# inherit (pkgs) mesa; -# inherit (pkgs.darwin.apple_sdk.frameworks) Accelerate ApplicationServices AVFoundation; -# }; - -# kivy-garden = callPackage ./python-modules/kivy-garden { }; - -# kiwiki-client = callPackage ./python-modules/kiwiki-client { }; - -# kiwisolver = callPackage ./python-modules/kiwisolver { }; - -# klaus = callPackage ./python-modules/klaus { }; - -# klein = callPackage ./python-modules/klein { }; - -# kmapper = callPackage ./python-modules/kmapper { }; - -# kml2geojson = callPackage ./python-modules/kml2geojson { }; - -# kmsxx = toPythonModule (pkgs.kmsxx.override { -# withPython = true; -# }); - -# knack = callPackage ./python-modules/knack { }; - -# kneed = callPackage ./python-modules/kneed { }; - -# knx-frontend = callPackage ./python-modules/knx-frontend { }; - -# kombu = callPackage ./python-modules/kombu { }; - -# konnected = callPackage ./python-modules/konnected { }; - -# kotsu = callPackage ./python-modules/kotsu { }; - -# korean-lunar-calendar = callPackage ./python-modules/korean-lunar-calendar { }; - -# kornia = callPackage ./python-modules/kornia { }; - -# kornia-rs = callPackage ./python-modules/kornia-rs { }; - -# krakenex = callPackage ./python-modules/krakenex { }; - -# krfzf-py = callPackage ./python-modules/krfzf-py { }; - -# kserve = callPackage ./python-modules/kserve { }; - -# kubernetes = callPackage ./python-modules/kubernetes { }; - -# kurbopy = callPackage ./python-modules/kurbopy { }; - -# l18n = callPackage ./python-modules/l18n { }; - -# labelbox = callPackage ./python-modules/labelbox { }; - -# labgrid = callPackage ./python-modules/labgrid { }; - -# labmath = callPackage ./python-modules/labmath { }; - -# laces = callPackage ./python-modules/laces { }; - -# lacuscore = callPackage ./python-modules/lacuscore { }; - -# lakeside = callPackage ./python-modules/lakeside { }; - -# langchain = callPackage ./python-modules/langchain { }; - -# langchain-community = callPackage ./python-modules/langchain-community { }; - -# langchain-core = callPackage ./python-modules/langchain-core { }; - -# langchain-text-splitters = callPackage ./python-modules/langchain-text-splitters { }; - -# langcodes = callPackage ./python-modules/langcodes { }; - -# langdetect = callPackage ./python-modules/langdetect { }; - -# langid = callPackage ./python-modules/langid { }; - -# langsmith = callPackage ./python-modules/langsmith { }; - -# language-data = callPackage ./python-modules/language-data { }; - -# language-tags = callPackage ./python-modules/language-tags { }; - -# lanms-neo = callPackage ./python-modules/lanms-neo { }; - -# lark = callPackage ./python-modules/lark { }; - -# laspy = callPackage ./python-modules/laspy { }; - -# laszip = callPackage ./python-modules/laszip { -# inherit (pkgs) cmake ninja; -# }; - -# latex2mathml = callPackage ./python-modules/latex2mathml { }; - -# latexcodec = callPackage ./python-modules/latexcodec { }; - -# latexify-py = callPackage ./python-modules/latexify-py { }; - -# launchpadlib = callPackage ./python-modules/launchpadlib { }; - -# laundrify-aio = callPackage ./python-modules/laundrify-aio { }; - -# layoutparser = callPackage ./python-modules/layoutparser { }; - -# lazr-config = callPackage ./python-modules/lazr/config.nix { }; - -# lazr-delegates = callPackage ./python-modules/lazr/delegates.nix { }; - -# lazr-restfulclient = callPackage ./python-modules/lazr-restfulclient { }; - -# lazr-uri = callPackage ./python-modules/lazr-uri { }; - -# lazy = callPackage ./python-modules/lazy { }; - -# lazy-import = callPackage ./python-modules/lazy-import { }; - -# lazy-imports = callPackage ./python-modules/lazy-imports { }; - -# lazy-loader = callPackage ./python-modules/lazy-loader { }; - -# lazy-object-proxy = callPackage ./python-modules/lazy-object-proxy { }; - -# lc7001 = callPackage ./python-modules/lc7001 { }; - -# lcd-i2c = callPackage ./python-modules/lcd-i2c { }; - -# lcgit = callPackage ./python-modules/lcgit { }; - -# lcov-cobertura = callPackage ./python-modules/lcov-cobertura { }; - -# ld2410-ble = callPackage ./python-modules/ld2410-ble { }; - -# ldap3 = callPackage ./python-modules/ldap3 { }; - -# ldapdomaindump = callPackage ./python-modules/ldapdomaindump { }; - -# ldappool = callPackage ./python-modules/ldappool { }; - -# ldaptor = callPackage ./python-modules/ldaptor { }; - -# ldfparser = callPackage ./python-modules/ldfparser { }; - -# leather = callPackage ./python-modules/leather { }; - -# leb128 = callPackage ./python-modules/leb128 { }; - -# led-ble = callPackage ./python-modules/led-ble { }; - -# ledger = (toPythonModule (pkgs.ledger.override { -# usePython = true; -# python3 = python; -# })).py; - -# ledger-agent = callPackage ./python-modules/ledger-agent { }; - -# ledger-bitcoin = callPackage ./python-modules/ledger-bitcoin { }; - -# ledgerblue = callPackage ./python-modules/ledgerblue { }; - -# ledgercomm = callPackage ./python-modules/ledgercomm { }; - -# ledgerwallet = callPackage ./python-modules/ledgerwallet { -# inherit (pkgs.darwin.apple_sdk.frameworks) AppKit; -# }; - -# leidenalg = callPackage ./python-modules/leidenalg { -# igraph-c = pkgs.igraph; -# }; - -# leveldb = callPackage ./python-modules/leveldb { }; - -# levenshtein = callPackage ./python-modules/levenshtein { }; - -# lexid = callPackage ./python-modules/lexid { }; - -# lexilang = callPackage ./python-modules/lexilang { }; - -# lhapdf = toPythonModule (pkgs.lhapdf.override { -# inherit python; -# }); - -# libagent = callPackage ./python-modules/libagent { }; - -# pa-ringbuffer = callPackage ./python-modules/pa-ringbuffer { }; - -# libais = callPackage ./python-modules/libais { }; - -# libarchive-c = callPackage ./python-modules/libarchive-c { -# inherit (pkgs) libarchive; -# }; - -# libarcus = callPackage ./python-modules/libarcus { -# protobuf = pkgs.protobuf_21; -# }; - -# libasyncns = callPackage ./python-modules/libasyncns { -# inherit (pkgs) libasyncns; -# }; - -# libclang = callPackage ./python-modules/libclang { }; - -# 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) -# ]; - -# 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) -# ]; - -# libevdev = callPackage ./python-modules/libevdev { }; - -# libfdt = toPythonModule (pkgs.dtc.override { -# inherit python; -# pythonSupport = true; -# }); - -# libfive = toPythonModule (pkgs.libfive.override { -# inherit python; -# }); - -# libgpiod = callPackage ./python-modules/libgpiod { -# inherit (pkgs) libgpiod; -# }; - -# 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; - -# libkeepass = callPackage ./python-modules/libkeepass { }; - -# libknot = callPackage ./python-modules/libknot { }; - -# liblarch = callPackage ./python-modules/liblarch { }; - -# liblzfse = callPackage ./python-modules/liblzfse { -# inherit (pkgs) lzfse; -# }; - -# 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) -# ]; - -# libmr = callPackage ./python-modules/libmr { }; - -# libnacl = callPackage ./python-modules/libnacl { -# inherit (pkgs) libsodium; -# }; - -# libpcap = callPackage ./python-modules/libpcap { -# pkgsLibpcap = pkgs.libpcap; # Needs the C library -# }; - -# libpurecool = callPackage ./python-modules/libpurecool { }; - -# libpyfoscam = callPackage ./python-modules/libpyfoscam { }; - -# 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) -# ]; - -# 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) -# ]; - -# librespot = callPackage ./python-modules/librespot { }; - -# libretranslate = callPackage ./python-modules/libretranslate { }; - -# librosa = callPackage ./python-modules/librosa { }; - -# librouteros = callPackage ./python-modules/librouteros { }; - -# libsass = callPackage ./python-modules/libsass { -# inherit (pkgs) libsass; -# }; - -# libsavitar = callPackage ./python-modules/libsavitar { }; - - -# 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) -# ]; - -# libsoundtouch = callPackage ./python-modules/libsoundtouch { }; - -# libthumbor = callPackage ./python-modules/libthumbor { }; - -# libtmux = callPackage ./python-modules/libtmux { }; - -# libtorrent-rasterbar = (toPythonModule (pkgs.libtorrent-rasterbar.override { inherit python; })).python; - -# libusb1 = callPackage ./python-modules/libusb1 { -# inherit (pkgs) libusb1; -# }; - -# libusbsio = callPackage ./python-modules/libusbsio { -# inherit (pkgs) libusbsio; -# }; - -# libversion = callPackage ./python-modules/libversion { -# inherit (pkgs) libversion; -# }; - -# libvirt = callPackage ./python-modules/libvirt { -# inherit (pkgs) libvirt; -# }; - - libxml2 = (toPythonModule (pkgs.libxml2.override { - pythonSupport = true; - inherit python; - })).py; - -# libxslt = (toPythonModule (pkgs.libxslt.override { -# pythonSupport = true; -# inherit (self) python libxml2; -# })).py; - -# liccheck = callPackage ./python-modules/liccheck { }; - -# license-expression = callPackage ./python-modules/license-expression { }; - -# lief = (toPythonModule (pkgs.lief.override { -# inherit python; -# })).py; - -# life360 = callPackage ./python-modules/life360 { }; - -# lifelines = callPackage ./python-modules/lifelines { }; - -# lightgbm = callPackage ./python-modules/lightgbm { }; - -# lightning-utilities = callPackage ./python-modules/lightning-utilities { }; - -# lightparam = callPackage ./python-modules/lightparam { }; - -# lightwave = callPackage ./python-modules/lightwave { }; - -# lightwave2 = callPackage ./python-modules/lightwave2 { }; - -# lima = callPackage ./python-modules/lima { }; - -# lime = callPackage ./python-modules/lime { }; - -# limiter= callPackage ./python-modules/limiter { }; - -# limitlessled = callPackage ./python-modules/limitlessled { }; - -# limits = callPackage ./python-modules/limits { }; - -# limnoria = callPackage ./python-modules/limnoria { }; - -# linear-garage-door = callPackage ./python-modules/linear-garage-door { }; - -# linear-operator = callPackage ./python-modules/linear-operator { }; - -# linecache2 = callPackage ./python-modules/linecache2 { }; - -# lineedit = callPackage ./python-modules/lineedit { }; - -# line-profiler = callPackage ./python-modules/line-profiler { }; - -# linetable = callPackage ./python-modules/linetable { }; - -# lingua = callPackage ./python-modules/lingua { }; - -# lingva = callPackage ./python-modules/lingva { }; - -# linien-client = callPackage ./python-modules/linien-client { }; - -# linien-common = callPackage ./python-modules/linien-common { }; - -# linkify-it-py = callPackage ./python-modules/linkify-it-py { }; - -# linknlink = callPackage ./python-modules/linknlink { }; - -# linode-api = callPackage ./python-modules/linode-api { }; - -# linode = callPackage ./python-modules/linode { }; - -# linuxfd = callPackage ./python-modules/linuxfd { }; - -# lion-pytorch = callPackage ./python-modules/lion-pytorch { }; - -# liquidctl = callPackage ./python-modules/liquidctl { }; - -# lirc = toPythonModule (pkgs.lirc.override { -# python3 = python; -# }); - -# lit = callPackage ./python-modules/lit { }; - -# litellm = callPackage ./python-modules/litellm { }; - -# litemapy = callPackage ./python-modules/litemapy { }; - -# littleutils = callPackage ./python-modules/littleutils { }; - -# livelossplot = callPackage ./python-modules/livelossplot { }; - -# livereload = callPackage ./python-modules/livereload { }; - -# lizard = callPackage ./python-modules/lizard { }; - -# llama-index = callPackage ./python-modules/llama-index { }; - -# llama-index-agent-openai = callPackage ./python-modules/llama-index-agent-openai { }; - -# llama-index-cli = callPackage ./python-modules/llama-index-cli { }; - -# llama-index-core = callPackage ./python-modules/llama-index-core { }; - -# 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-huggingface = callPackage ./python-modules/llama-index-embeddings-huggingface { }; - -# llama-index-embeddings-ollama = callPackage ./python-modules/llama-index-embeddings-ollama { }; - -# 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-neo4j = callPackage ./python-modules/llama-index-graph-stores-neo4j { }; - -# 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-legacy = callPackage ./python-modules/llama-index-legacy { }; - -# 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-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-program-openai = callPackage ./python-modules/llama-index-program-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-file = callPackage ./python-modules/llama-index-readers-file { }; - -# 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-s3 = callPackage ./python-modules/llama-index-readers-s3 { }; - -# 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-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-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-qdrant = callPackage ./python-modules/llama-index-vector-stores-qdrant { }; - -# llama-parse = callPackage ./python-modules/llama-parse { }; - -# llamaindex-py-client = callPackage ./python-modules/llamaindex-py-client { }; - -# llfuse = callPackage ./python-modules/llfuse { -# inherit (pkgs) fuse; -# }; - -# llm = callPackage ./python-modules/llm { }; - -# llvmlite = callPackage ./python-modules/llvmlite { -# # llvmlite always requires a specific version of llvm. -# llvm = pkgs.llvm_14; -# }; - -# lmcloud = callPackage ./python-modules/lmcloud { }; - -# lmdb = callPackage ./python-modules/lmdb { -# inherit (pkgs) lmdb; -# }; - -# lmfit = callPackage ./python-modules/lmfit { }; - -# lml = callPackage ./python-modules/lml { }; - -# lmnotify = callPackage ./python-modules/lmnotify { }; - -# lmtpd = callPackage ./python-modules/lmtpd { }; - -# lnkparse3 = callPackage ./python-modules/lnkparse3 { }; - -# loca = callPackage ./python-modules/loca { }; - -# localimport = callPackage ./python-modules/localimport { }; - -# localstack = callPackage ./python-modules/localstack { }; - -# localstack-client = callPackage ./python-modules/localstack-client { }; - -# localstack-ext = callPackage ./python-modules/localstack-ext { }; - -# localzone = callPackage ./python-modules/localzone { }; - -# locationsharinglib = callPackage ./python-modules/locationsharinglib { }; - -# locket = callPackage ./python-modules/locket { }; - -# lockfile = callPackage ./python-modules/lockfile { }; - -# log-symbols = callPackage ./python-modules/log-symbols { }; - -# logbook = callPackage ./python-modules/logbook { }; - -# logfury = callPackage ./python-modules/logfury { }; - -# logging-journald = callPackage ./python-modules/logging-journald { }; - -# logi-circle = callPackage ./python-modules/logi-circle { }; - -# logical-unification = callPackage ./python-modules/logical-unification { }; - -# logilab-common = callPackage ./python-modules/logilab/common.nix { }; - -# logilab-constraint = callPackage ./python-modules/logilab/constraint.nix { }; - -# logmatic-python = callPackage ./python-modules/logmatic-python { }; - -# logster = callPackage ./python-modules/logster { }; - -# loguru = callPackage ./python-modules/loguru { }; - -# logutils = callPackage ./python-modules/logutils { -# redis-server = pkgs.redis; -# }; - -# logzero = callPackage ./python-modules/logzero { }; - -# lomond = callPackage ./python-modules/lomond { }; - -# loopy = callPackage ./python-modules/loopy { }; - -# looseversion = callPackage ./python-modules/looseversion { }; - -# loqedapi = callPackage ./python-modules/loqedapi { }; - -# losant-rest = callPackage ./python-modules/losant-rest { }; - -# lpc-checksum = callPackage ./python-modules/lpc-checksum { }; - -# lrcalc-python = callPackage ./python-modules/lrcalc-python { }; - -# lru-dict = callPackage ./python-modules/lru-dict { }; - -# lsassy = callPackage ./python-modules/lsassy { }; - -# lsprotocol = callPackage ./python-modules/lsprotocol { }; - -# ltpycld2 = callPackage ./python-modules/ltpycld2 { }; - -# lttng = callPackage ./python-modules/lttng { }; - -# luddite = callPackage ./python-modules/luddite { }; - -# luftdaten = callPackage ./python-modules/luftdaten { }; - -# luhn = callPackage ./python-modules/luhn { }; - -# lunarcalendar = callPackage ./python-modules/lunarcalendar { }; - -# luqum = callPackage ./python-modules/luqum { }; - -# luxor = callPackage ./python-modules/luxor { }; - -# luxtronik = callPackage ./python-modules/luxtronik { }; - -# lupa = callPackage ./python-modules/lupa { }; - -# lupupy = callPackage ./python-modules/lupupy { }; - -# lxmf= callPackage ./python-modules/lxmf { }; - - lxml = callPackage ./python-modules/lxml { - inherit (pkgs) libxml2 libxslt zlib; - }; - -# lxml-html-clean = callPackage ./python-modules/lxml-html-clean { }; - -# lxml-stubs = callPackage ./python-modules/lxml-stubs { }; - -# lyricwikia = callPackage ./python-modules/lyricwikia { }; - -# lz4 = callPackage ./python-modules/lz4 { }; - -# lzallright = callPackage ./python-modules/lzallright { }; - -# lzstring = callPackage ./python-modules/lzstring { }; - -# m2crypto = callPackage ./python-modules/m2crypto { }; - -# m2r = callPackage ./python-modules/m2r { }; - -# m3u8 = callPackage ./python-modules/m3u8 { }; - -# mac-alias = callPackage ./python-modules/mac-alias { }; - -# mac-vendor-lookup = callPackage ./python-modules/mac-vendor-lookup { }; - -# macaddress = callPackage ./python-modules/macaddress{ }; - -# macfsevents = callPackage ./python-modules/macfsevents { -# inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation CoreServices; -# }; - -# macropy = callPackage ./python-modules/macropy { }; - -# maestral = callPackage ./python-modules/maestral { }; - -# magic = callPackage ./python-modules/magic { }; - -# magicgui = callPackage ./python-modules/magicgui { }; - -# magic-filter = callPackage ./python-modules/magic-filter { }; - -# magic-wormhole = callPackage ./python-modules/magic-wormhole { }; - -# magic-wormhole-mailbox-server = callPackage ./python-modules/magic-wormhole-mailbox-server { }; - -# magic-wormhole-transit-relay = callPackage ./python-modules/magic-wormhole-transit-relay { }; - -# magika = callPackage ./python-modules/magika { }; - -# mahotas = callPackage ./python-modules/mahotas { }; - -# mailcap-fix = callPackage ./python-modules/mailcap-fix { }; - -# mailchecker = callPackage ./python-modules/mailchecker { }; - -# mailchimp = callPackage ./python-modules/mailchimp { }; - -# mailmanclient = callPackage ./python-modules/mailmanclient { }; - -# rtfde = callPackage ./python-modules/rtfde { }; - -# rtfunicode = callPackage ./python-modules/rtfunicode { }; - -# rtmixer = callPackage ./python-modules/rtmixer { }; - -# regress = callPackage ./python-modules/regress { }; - -# macaroonbakery = callPackage ./python-modules/macaroonbakery { }; - -# mail-parser = callPackage ./python-modules/mail-parser { }; - -# makefun = callPackage ./python-modules/makefun { }; - -# mailsuite = callPackage ./python-modules/mailsuite { }; - -# maison = callPackage ./python-modules/maison { }; - -# mako = callPackage ./python-modules/mako { }; - -# malduck = callPackage ./python-modules/malduck { }; - -# managesieve = callPackage ./python-modules/managesieve { }; - -# mando = callPackage ./python-modules/mando { }; - -# mandown = callPackage ./python-modules/mandown { }; - -# manga-ocr = callPackage ./python-modules/manga-ocr { }; - -# manhole = callPackage ./python-modules/manhole { }; - -# manim = callPackage ./python-modules/manim { }; - -# manimpango = callPackage ./python-modules/manimpango { -# inherit (pkgs.darwin.apple_sdk.frameworks) AppKit; -# }; - -# manim-slides = callPackage ./python-modules/manim-slides { }; - -# manifest-ml = callPackage ./python-modules/manifest-ml { }; - -# manifestoo = callPackage ./python-modules/manifestoo { }; - -# manifestoo-core = callPackage ./python-modules/manifestoo-core { }; - -# manifestparser = callPackage ./python-modules/marionette-harness/manifestparser.nix { }; - -# manuel = callPackage ./python-modules/manuel { }; - -# manuf = callPackage ./python-modules/manuf { }; - -# mapbox = callPackage ./python-modules/mapbox { }; - -# mapbox-earcut = callPackage ./python-modules/mapbox-earcut { }; - -# mariadb = callPackage ./python-modules/mariadb { }; - -# marimo = callPackage ./python-modules/marimo { }; - -# marisa = callPackage ./python-modules/marisa { -# inherit (pkgs) marisa; -# }; - -# marisa-trie = callPackage ./python-modules/marisa-trie { }; - -# markdown2 = callPackage ./python-modules/markdown2 { }; - -# markdown = callPackage ./python-modules/markdown { }; - -# markdown-include = callPackage ./python-modules/markdown-include { }; - -# markdown-it-py = callPackage ./python-modules/markdown-it-py { }; - -# markdown-macros = callPackage ./python-modules/markdown-macros { }; - -# markdownify = callPackage ./python-modules/markdownify { }; - - markupsafe = callPackage ./python-modules/markupsafe { }; - -# markuppy = callPackage ./python-modules/markuppy { }; - -# markups = callPackage ./python-modules/markups { }; - -# marshmallow = callPackage ./python-modules/marshmallow { }; - -# marshmallow-dataclass = callPackage ./python-modules/marshmallow-dataclass { }; - -# marshmallow-enum = callPackage ./python-modules/marshmallow-enum { }; - -# marshmallow-oneofschema = callPackage ./python-modules/marshmallow-oneofschema { }; - -# marshmallow-polyfield = callPackage ./python-modules/marshmallow-polyfield { }; - -# marshmallow-sqlalchemy = callPackage ./python-modules/marshmallow-sqlalchemy { }; - -# mashumaro = callPackage ./python-modules/mashumaro { }; - -# masky = callPackage ./python-modules/masky { }; - -# mastodon-py = callPackage ./python-modules/mastodon-py { }; - -# mat2 = callPackage ./python-modules/mat2 { }; - -# material-color-utilities = callPackage ./python-modules/material-color-utilities { }; - -# matchpy = callPackage ./python-modules/matchpy { }; - -# mathlibtools = callPackage ./python-modules/mathlibtools { }; - -# 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-inline = callPackage ./python-modules/matplotlib-inline { }; - -# matplotlib-sixel = callPackage ./python-modules/matplotlib-sixel { }; - -# matplotx = callPackage ./python-modules/matplotx { }; - -# matrix-api-async = callPackage ./python-modules/matrix-api-async { }; - -# matrix-client = callPackage ./python-modules/matrix-client { }; - -# matrix-common = callPackage ./python-modules/matrix-common { }; - -# matrix-nio = callPackage ./python-modules/matrix-nio { }; - -# mattermostdriver = callPackage ./python-modules/mattermostdriver { }; - -# maubot = callPackage ../tools/networking/maubot { }; - -# mautrix = callPackage ./python-modules/mautrix { }; - -# mautrix-appservice = self.mautrix; # alias 2019-12-28 - -# maxcube-api = callPackage ./python-modules/maxcube-api { }; - -# maxminddb = callPackage ./python-modules/maxminddb { }; - -# 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; -# }; - -# mayim = callPackage ./python-modules/mayim { }; - -# mbddns = callPackage ./python-modules/mbddns { }; - -# mbstrdecoder = callPackage ./python-modules/mbstrdecoder { }; - -# mccabe = callPackage ./python-modules/mccabe { }; - -# mcstatus = callPackage ./python-modules/mcstatus { }; - -# mcuuid = callPackage ./python-modules/mcuuid { }; - -# md-toc = callPackage ./python-modules/md-toc { }; - -# mdx-truly-sane-lists = callPackage ./python-modules/mdx-truly-sane-lists { }; - -# 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 { }; - -# mdit-py-plugins = callPackage ./python-modules/mdit-py-plugins { }; - -# mdtraj = callPackage ./python-modules/mdtraj { }; - -# mdurl = callPackage ./python-modules/mdurl { }; - -# mdutils = callPackage ./python-modules/mdutils { }; - -# mdp = callPackage ./python-modules/mdp { }; - -# measurement = callPackage ./python-modules/measurement { }; - -# meater-python = callPackage ./python-modules/meater-python { }; - -# mecab-python3 = callPackage ./python-modules/mecab-python3 { }; - -# mechanicalsoup = callPackage ./python-modules/mechanicalsoup { }; - -# mechanize = callPackage ./python-modules/mechanize { }; - -# mediafile = callPackage ./python-modules/mediafile { }; - -# mediafire-dl = callPackage ./python-modules/mediafire-dl { }; - -# mediapy = callPackage ./python-modules/mediapy { }; - -# medpy = callPackage ./python-modules/medpy { }; - -# meeko = callPackage ./python-modules/meeko { }; - -# meep = callPackage ./python-modules/meep { }; - -# meilisearch = callPackage ./python-modules/meilisearch { }; - -# meinheld = callPackage ./python-modules/meinheld { }; - -# meld3 = callPackage ./python-modules/meld3 { }; - -# memestra = callPackage ./python-modules/memestra { }; - -# memory-allocator = callPackage ./python-modules/memory-allocator { }; - -# memory-profiler = callPackage ./python-modules/memory-profiler { }; - -# meraki = callPackage ./python-modules/meraki { }; - -# mercadopago = callPackage ./python-modules/mercadopago { }; - -# mercantile = callPackage ./python-modules/mercantile { }; - -# mercurial = toPythonModule (pkgs.mercurial.override { -# python3Packages = self; -# }); - -# merge3 = callPackage ./python-modules/merge3 { }; - -# mergedb = callPackage ./python-modules/mergedb { }; - -# mergedeep = callPackage ./python-modules/mergedeep { }; - -# mergedict = callPackage ./python-modules/mergedict { }; - -# merkletools = callPackage ./python-modules/merkletools { }; - -# meross-iot = callPackage ./python-modules/meross-iot { }; - -# mesa = callPackage ./python-modules/mesa { }; - -# meshcat = callPackage ./python-modules/meshcat { }; - -# meshio = callPackage ./python-modules/meshio { }; - -# meshlabxml = callPackage ./python-modules/meshlabxml { }; - -# 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; -# })); - -# mesonpep517 = callPackage ./python-modules/mesonpep517 { }; - -# meson-python = callPackage ./python-modules/meson-python { -# inherit (pkgs) ninja; -# }; - -# messagebird = callPackage ./python-modules/messagebird { }; - -# metakernel = callPackage ./python-modules/metakernel { }; - -# metar = callPackage ./python-modules/metar { }; - -# metawear = callPackage ./python-modules/metawear { }; - -# meteoalertapi = callPackage ./python-modules/meteoalertapi { }; - -# meteocalc = callPackage ./python-modules/meteocalc { }; - -# meteofrance-api = callPackage ./python-modules/meteofrance-api { }; - -# mezzanine = callPackage ./python-modules/mezzanine { }; - -# mf2py = callPackage ./python-modules/mf2py { }; - -# mhcflurry = callPackage ./python-modules/mhcflurry { }; - -# mhcgnomes = callPackage ./python-modules/mhcgnomes { }; - -# miauth = callPackage ./python-modules/miauth { }; - -# micawber = callPackage ./python-modules/micawber { }; - -# microdata = callPackage ./python-modules/microdata { }; - -# microsoft-kiota-abstractions = callPackage ./python-modules/microsoft-kiota-abstractions { }; - -# microsoft-kiota-authentication-azure = callPackage ./python-modules/microsoft-kiota-authentication-azure { }; - -# microsoft-kiota-http = callPackage ./python-modules/microsoft-kiota-http { }; - -# 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-multipart = callPackage ./python-modules/microsoft-kiota-serialization-multipart { }; - -# microsoft-kiota-serialization-text = callPackage ./python-modules/microsoft-kiota-serialization-text { }; - -# midea-beautiful-air = callPackage ./python-modules/midea-beautiful-air { }; - -# midiutil = callPackage ./python-modules/midiutil { }; - -# mido = callPackage ./python-modules/mido { }; - -# migen = callPackage ./python-modules/migen { }; - -# mike = callPackage ./python-modules/mike { }; - -# milc = callPackage ./python-modules/milc { }; - -# milksnake = callPackage ./python-modules/milksnake { }; - -# mill-local = callPackage ./python-modules/mill-local { }; - -# millheater = callPackage ./python-modules/millheater { }; - -# mindsdb-evaluator = callPackage ./python-modules/mindsdb-evaluator { }; - -# minexr = callPackage ./python-modules/minexr { }; - -# miniaudio = callPackage ./python-modules/miniaudio { -# inherit (pkgs) miniaudio; -# inherit (pkgs.darwin.apple_sdk.frameworks) AudioToolbox CoreAudio; -# }; - -# minichain = callPackage ./python-modules/minichain { }; - -# minidb = callPackage ./python-modules/minidb { }; - -# minidump = callPackage ./python-modules/minidump { }; - -# miniful = callPackage ./python-modules/miniful { }; - -# minikanren = callPackage ./python-modules/minikanren { }; - -# minikerberos = callPackage ./python-modules/minikerberos { }; - -# minimal-snowplow-tracker = callPackage ./python-modules/minimal-snowplow-tracker { }; - -# minimock = callPackage ./python-modules/minimock { }; - -# mininet-python = (toPythonModule (pkgs.mininet.override { -# python3 = python; -# })).py; - -# minio = callPackage ./python-modules/minio { }; - -# miniupnpc = callPackage ./python-modules/miniupnpc { -# inherit (pkgs.darwin) cctools; -# }; - -# mip = callPackage ./python-modules/mip { }; - -# mir-eval = callPackage ./python-modules/mir-eval { }; - -# mirakuru = callPackage ./python-modules/mirakuru { }; - -# misaka = callPackage ./python-modules/misaka { }; - -# misoc = callPackage ./python-modules/misoc { }; - -# mistletoe = callPackage ./python-modules/mistletoe { }; - -# mistune = callPackage ./python-modules/mistune { }; - -# mitmproxy = callPackage ./python-modules/mitmproxy { }; - -# mitmproxy-macos = callPackage ./python-modules/mitmproxy-macos { }; - -# mitmproxy-rs = callPackage ./python-modules/mitmproxy-rs { }; - -# mitogen = callPackage ./python-modules/mitogen { }; - -# mixins = callPackage ./python-modules/mixins { }; - -# mixpanel = callPackage ./python-modules/mixpanel { }; - -# mizani = callPackage ./python-modules/mizani { }; - - mkdocs = callPackage ./python-modules/mkdocs { }; - -# mkdocs-autolinks-plugin = callPackage ./python-modules/mkdocs-autolinks-plugin { }; - -# mkdocs-autorefs = callPackage ./python-modules/mkdocs-autorefs { }; - -# mkdocs-drawio-exporter = callPackage ./python-modules/mkdocs-drawio-exporter { }; - -# mkdocs-exclude = callPackage ./python-modules/mkdocs-exclude { }; - -# 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-gitlab = callPackage ./python-modules/mkdocs-gitlab-plugin { }; - -# mkdocs-jupyter = callPackage ./python-modules/mkdocs-jupyter { }; - -# mkdocs-linkcheck = callPackage ./python-modules/mkdocs-linkcheck { }; - -# mkdocs-macros = callPackage ./python-modules/mkdocs-macros { }; - -# mkdocs-material = callPackage ./python-modules/mkdocs-material { }; - -# mkdocs-material-extensions = callPackage ./python-modules/mkdocs-material/mkdocs-material-extensions.nix { }; - -# mkdocs-mermaid2-plugin = callPackage ./python-modules/mkdocs-mermaid2-plugin { }; - -# mkdocs-minify-plugin = callPackage ./python-modules/mkdocs-minify-plugin { }; - -# mkdocs-redirects = callPackage ./python-modules/mkdocs-redirects { }; - -# mkdocs-redoc-tag = callPackage ./python-modules/mkdocs-redoc-tag { }; - -# mkdocs-rss-plugin = callPackage ./python-modules/mkdocs-rss-plugin { }; - -# mkdocs-swagger-ui-tag = callPackage ./python-modules/mkdocs-swagger-ui-tag { }; - -# mkdocstrings = callPackage ./python-modules/mkdocstrings { }; - -# mkdocstrings-python = callPackage ./python-modules/mkdocstrings-python { }; - -# mkl-service = callPackage ./python-modules/mkl-service { }; - -# ml-collections = callPackage ./python-modules/ml-collections { }; - -# ml-dtypes = callPackage ./python-modules/ml-dtypes { }; - -# mlflow = callPackage ./python-modules/mlflow { }; - -# mlrose = callPackage ./python-modules/mlrose { }; - -# mlx = callPackage ./python-modules/mlx { }; - -# mlxtend = callPackage ./python-modules/mlxtend { }; - -# mlt = toPythonModule (pkgs.mlt.override { -# python3 = python; -# enablePython = true; -# }); - -# mmcif-pdbx = callPackage ./python-modules/mmcif-pdbx { }; - -# mmcv = callPackage ./python-modules/mmcv { }; - -# mmengine = callPackage ./python-modules/mmengine { }; - -# mmh3 = callPackage ./python-modules/mmh3 { }; - -# mmpython = callPackage ./python-modules/mmpython { }; - -# mmtf-python = callPackage ./python-modules/mmtf-python { }; - -# mnemonic = callPackage ./python-modules/mnemonic { }; - -# mne-python = callPackage ./python-modules/mne-python { }; - -# mnist = callPackage ./python-modules/mnist { }; - -# moat-ble = callPackage ./python-modules/moat-ble { }; - -# mobi = callPackage ./python-modules/mobi { }; - -# mobly = callPackage ./python-modules/mobly { }; - -# mocket = callPackage ./python-modules/mocket { -# redis-server = pkgs.redis; -# }; - - mock = callPackage ./python-modules/mock { }; - -# mockfs = callPackage ./python-modules/mockfs { }; - -# mockito = callPackage ./python-modules/mockito { }; - -# mock-open = callPackage ./python-modules/mock-open { }; - -# mock-services = callPackage ./python-modules/mock-services { }; - -# mock-ssh-server = callPackage ./python-modules/mock-ssh-server { }; - -# mockupdb = callPackage ./python-modules/mockupdb { }; - -# moddb = callPackage ./python-modules/moddb { }; - -# model-bakery = callPackage ./python-modules/model-bakery { }; - -# modelcif = callPackage ./python-modules/modelcif { }; - -# modeled = callPackage ./python-modules/modeled { }; - -# moderngl = callPackage ./python-modules/moderngl { }; - -# moderngl-window = callPackage ./python-modules/moderngl-window { }; - -# modestmaps = callPackage ./python-modules/modestmaps { }; - -# mohawk = callPackage ./python-modules/mohawk { }; - -# molecule = callPackage ./python-modules/molecule { }; - -# molecule-plugins = callPackage ./python-modules/molecule/plugins.nix { }; - -# monai = callPackage ./python-modules/monai { }; - -# monai-deploy = callPackage ./python-modules/monai-deploy { }; - -# monero = callPackage ./python-modules/monero { }; - -# mongomock = callPackage ./python-modules/mongomock { }; - -# mongodict = callPackage ./python-modules/mongodict { }; - -# mongoengine = callPackage ./python-modules/mongoengine { }; - -# mongoquery = callPackage ./python-modules/mongoquery { }; - -# monitorcontrol = callPackage ./python-modules/monitorcontrol { }; - -# monkeyhex = callPackage ./python-modules/monkeyhex { }; - -# monosat = pkgs.monosat.python { -# inherit buildPythonPackage; -# inherit (self) cython pytestCheckHook; -# }; - -# monotonic = callPackage ./python-modules/monotonic { }; - -# monty = callPackage ./python-modules/monty { }; - -# moonraker-api = callPackage ./python-modules/moonraker-api { }; - -# mopeka-iot-ble = callPackage ./python-modules/mopeka-iot-ble { }; - -# more-itertools = callPackage ./python-modules/more-itertools { }; - -# more-properties = callPackage ./python-modules/more-properties { }; - -# moreorless = callPackage ./python-modules/moreorless { }; - -# moretools = callPackage ./python-modules/moretools { }; - -# morfessor = callPackage ./python-modules/morfessor { }; - -# morphys = callPackage ./python-modules/morphys { }; - -# mortgage = callPackage ./python-modules/mortgage { }; - -# motmetrics = callPackage ./python-modules/motmetrics { }; - -# motionblinds = callPackage ./python-modules/motionblinds { }; - -# motioneye-client = callPackage ./python-modules/motioneye-client { }; - -# moto = callPackage ./python-modules/moto { }; - -# motor = callPackage ./python-modules/motor { }; - -# mouseinfo = callPackage ./python-modules/mouseinfo { }; - -# moviepy = callPackage ./python-modules/moviepy { }; - -# mox3 = callPackage ./python-modules/mox3 { }; - -# mpd2 = callPackage ./python-modules/mpd2 { }; - -# mpi4py = callPackage ./python-modules/mpi4py { }; - -# mpldatacursor = callPackage ./python-modules/mpldatacursor { }; - -# mplfinance = callPackage ./python-modules/mplfinance { }; - -# mplhep = callPackage ./python-modules/mplhep { }; - -# mplhep-data = callPackage ./python-modules/mplhep-data { }; - -# mplleaflet = callPackage ./python-modules/mplleaflet { }; - -# mpl-scatter-density = callPackage ./python-modules/mpl-scatter-density { }; - -# mpmath = callPackage ./python-modules/mpmath { }; - -# mpris-server = callPackage ./python-modules/mpris-server { }; - -# mpv = callPackage ./python-modules/mpv { -# inherit (pkgs) mpv; -# }; - -# mpyq = callPackage ./python-modules/mpyq { }; - -# mrjob = callPackage ./python-modules/mrjob { }; - -# mrsqm = callPackage ./python-modules/mrsqm { }; - -# ms-active-directory = callPackage ./python-modules/ms-active-directory { }; - -# ms-cv = callPackage ./python-modules/ms-cv { }; - -# msal = callPackage ./python-modules/msal { }; - -# msal-extensions = callPackage ./python-modules/msal-extensions { }; - -# mscerts = callPackage ./python-modules/mscerts { }; - -# msgpack = callPackage ./python-modules/msgpack { }; - -# msgpack-numpy = callPackage ./python-modules/msgpack-numpy { }; - -# msg-parser = callPackage ./python-modules/msg-parser { }; - -# msgspec = callPackage ./python-modules/msgspec { }; - -# msldap = callPackage ./python-modules/msldap { }; - -# msoffcrypto-tool = callPackage ./python-modules/msoffcrypto-tool { }; - -# msprime = callPackage ./python-modules/msprime { }; - -# mss = callPackage ./python-modules/mss { }; - -# msrestazure = callPackage ./python-modules/msrestazure { }; - -# msrest = callPackage ./python-modules/msrest { }; - -# mt-940 = callPackage ./python-modules/mt-940 { }; - -# mullvad-api = callPackage ./python-modules/mullvad-api { }; - -# mullvad-closest = callPackage ./python-modules/mullvad-closest { }; - -# mulpyplexer = callPackage ./python-modules/mulpyplexer { }; - -# multidict = callPackage ./python-modules/multidict { }; - -# multi-key-dict = callPackage ./python-modules/multi-key-dict { }; - -# multimethod = callPackage ./python-modules/multimethod { }; - -# multipledispatch = callPackage ./python-modules/multipledispatch { }; - -# multiprocess = callPackage ./python-modules/multiprocess { }; - -# multiset = callPackage ./python-modules/multiset { }; - -# multitasking = callPackage ./python-modules/multitasking { }; - -# munch = callPackage ./python-modules/munch { }; - -# mung = callPackage ./python-modules/mung { }; - -# munkres = callPackage ./python-modules/munkres { }; - -# murmurhash = callPackage ./python-modules/murmurhash { }; - -# muscima = callPackage ./python-modules/muscima { }; - -# musicbrainzngs = callPackage ./python-modules/musicbrainzngs { }; - -# music-tag = callPackage ./python-modules/music-tag { }; - -# mutag = callPackage ./python-modules/mutag { }; - -# mutagen = callPackage ./python-modules/mutagen { }; - -# mutatormath = callPackage ./python-modules/mutatormath { }; - -# mutesync = callPackage ./python-modules/mutesync { }; - -# mutf8 = callPackage ./python-modules/mutf8 { }; - -# mujoco = callPackage ./python-modules/mujoco { -# inherit (pkgs) mujoco; -# }; - -# mujson = callPackage ./python-modules/mujson { }; - -# mwcli = callPackage ./python-modules/mwcli { }; - -# mwclient = callPackage ./python-modules/mwclient { }; - -# mwdblib = callPackage ./python-modules/mwdblib { }; - -# mwoauth = callPackage ./python-modules/mwoauth { }; - -# mwparserfromhell = callPackage ./python-modules/mwparserfromhell { }; - -# mwtypes = callPackage ./python-modules/mwtypes { }; - -# mwxml = callPackage ./python-modules/mwxml { }; - -# mxnet = callPackage ./python-modules/mxnet { }; - -# myfitnesspal = callPackage ./python-modules/myfitnesspal { }; - -# mygpoclient = callPackage ./python-modules/mygpoclient { }; - -# myhdl = callPackage ./python-modules/myhdl { -# inherit (pkgs) ghdl verilog; -# }; - -# myhome = callPackage ./python-modules/myhome { }; - -# myjwt = callPackage ./python-modules/myjwt { }; - -# mypy = callPackage ./python-modules/mypy { }; - -# mypy-boto3-builder = callPackage ./python-modules/mypy-boto3-builder { }; - -# inherit (callPackage ./python-modules/mypy-boto3 { }) - -# mypy-boto3-accessanalyzer - -# mypy-boto3-account - -# mypy-boto3-acm - -# mypy-boto3-acm-pca - -# mypy-boto3-alexaforbusiness - -# mypy-boto3-amp - -# mypy-boto3-amplify - -# mypy-boto3-amplifybackend - -# mypy-boto3-amplifyuibuilder - -# mypy-boto3-apigateway - -# mypy-boto3-apigatewaymanagementapi - -# mypy-boto3-apigatewayv2 - -# mypy-boto3-appconfig - -# mypy-boto3-appconfigdata - -# mypy-boto3-appfabric - -# mypy-boto3-appflow - -# mypy-boto3-appintegrations - -# mypy-boto3-application-autoscaling - -# mypy-boto3-application-insights - -# mypy-boto3-applicationcostprofiler - -# mypy-boto3-appmesh - -# mypy-boto3-apprunner - -# mypy-boto3-appstream - -# mypy-boto3-appsync - -# mypy-boto3-arc-zonal-shift - -# mypy-boto3-athena - -# mypy-boto3-auditmanager - -# mypy-boto3-autoscaling - -# mypy-boto3-autoscaling-plans - -# mypy-boto3-backup - -# mypy-boto3-backup-gateway - -# mypy-boto3-backupstorage - -# mypy-boto3-batch - -# mypy-boto3-billingconductor - -# mypy-boto3-braket - -# mypy-boto3-budgets - -# mypy-boto3-ce - -# mypy-boto3-chime - -# mypy-boto3-chime-sdk-identity - -# mypy-boto3-chime-sdk-media-pipelines - -# mypy-boto3-chime-sdk-meetings - -# mypy-boto3-chime-sdk-messaging - -# mypy-boto3-chime-sdk-voice - -# mypy-boto3-cleanrooms - -# mypy-boto3-cloud9 - -# mypy-boto3-cloudcontrol - -# mypy-boto3-clouddirectory - -# mypy-boto3-cloudformation - -# mypy-boto3-cloudfront - -# mypy-boto3-cloudhsm - -# mypy-boto3-cloudhsmv2 - -# mypy-boto3-cloudsearch - -# mypy-boto3-cloudsearchdomain - -# mypy-boto3-cloudtrail - -# mypy-boto3-cloudtrail-data - -# mypy-boto3-cloudwatch - -# mypy-boto3-codeartifact - -# mypy-boto3-codebuild - -# mypy-boto3-codecatalyst - -# mypy-boto3-codecommit - -# mypy-boto3-codedeploy - -# mypy-boto3-codeguru-reviewer - -# mypy-boto3-codeguru-security - -# mypy-boto3-codeguruprofiler - -# mypy-boto3-codepipeline - -# mypy-boto3-codestar - -# mypy-boto3-codestar-connections - -# mypy-boto3-codestar-notifications - -# mypy-boto3-cognito-identity - -# mypy-boto3-cognito-idp - -# mypy-boto3-cognito-sync - -# mypy-boto3-comprehend - -# mypy-boto3-comprehendmedical - -# mypy-boto3-compute-optimizer - -# mypy-boto3-config - -# mypy-boto3-connect - -# mypy-boto3-connect-contact-lens - -# mypy-boto3-connectcampaigns - -# mypy-boto3-connectcases - -# mypy-boto3-connectparticipant - -# mypy-boto3-controltower - -# mypy-boto3-cur - -# mypy-boto3-customer-profiles - -# mypy-boto3-databrew - -# mypy-boto3-dataexchange - -# mypy-boto3-datapipeline - -# mypy-boto3-datasync - -# mypy-boto3-dax - -# mypy-boto3-detective - -# mypy-boto3-devicefarm - -# mypy-boto3-devops-guru - -# mypy-boto3-directconnect - -# mypy-boto3-discovery - -# mypy-boto3-dlm - -# mypy-boto3-dms - -# mypy-boto3-docdb - -# mypy-boto3-docdb-elastic - -# mypy-boto3-drs - -# mypy-boto3-ds - -# mypy-boto3-dynamodb - -# mypy-boto3-dynamodbstreams - -# mypy-boto3-ebs - -# mypy-boto3-ec2 - -# mypy-boto3-ec2-instance-connect - -# mypy-boto3-ecr - -# mypy-boto3-ecr-public - -# mypy-boto3-ecs - -# mypy-boto3-efs - -# mypy-boto3-eks - -# mypy-boto3-elastic-inference - -# mypy-boto3-elasticache - -# mypy-boto3-elasticbeanstalk - -# mypy-boto3-elastictranscoder - -# mypy-boto3-elb - -# mypy-boto3-elbv2 - -# mypy-boto3-emr - -# mypy-boto3-emr-containers - -# mypy-boto3-emr-serverless - -# mypy-boto3-entityresolution - -# mypy-boto3-es - -# mypy-boto3-events - -# mypy-boto3-evidently - -# mypy-boto3-finspace - -# mypy-boto3-finspace-data - -# mypy-boto3-firehose - -# mypy-boto3-fis - -# mypy-boto3-fms - -# mypy-boto3-forecast - -# mypy-boto3-forecastquery - -# mypy-boto3-frauddetector - -# mypy-boto3-fsx - -# mypy-boto3-gamelift - -# mypy-boto3-gamesparks - -# mypy-boto3-glacier - -# mypy-boto3-globalaccelerator - -# mypy-boto3-glue - -# mypy-boto3-grafana - -# mypy-boto3-greengrass - -# mypy-boto3-greengrassv2 - -# mypy-boto3-groundstation - -# mypy-boto3-guardduty - -# mypy-boto3-health - -# mypy-boto3-healthlake - -# mypy-boto3-honeycode - -# mypy-boto3-iam - -# mypy-boto3-identitystore - -# mypy-boto3-imagebuilder - -# mypy-boto3-importexport - -# mypy-boto3-inspector - -# mypy-boto3-inspector2 - -# mypy-boto3-internetmonitor - -# mypy-boto3-iot - -# mypy-boto3-iot-data - -# mypy-boto3-iot-jobs-data - -# mypy-boto3-iot-roborunner - -# mypy-boto3-iot1click-devices - -# mypy-boto3-iot1click-projects - -# mypy-boto3-iotanalytics - -# mypy-boto3-iotdeviceadvisor - -# mypy-boto3-iotevents - -# mypy-boto3-iotevents-data - -# mypy-boto3-iotfleethub - -# mypy-boto3-iotfleetwise - -# mypy-boto3-iotsecuretunneling - -# mypy-boto3-iotsitewise - -# mypy-boto3-iotthingsgraph - -# mypy-boto3-iottwinmaker - -# mypy-boto3-iotwireless - -# mypy-boto3-ivs - -# mypy-boto3-ivs-realtime - -# mypy-boto3-ivschat - -# mypy-boto3-kafka - -# mypy-boto3-kafkaconnect - -# mypy-boto3-kendra - -# mypy-boto3-kendra-ranking - -# mypy-boto3-keyspaces - -# mypy-boto3-kinesis - -# mypy-boto3-kinesis-video-archived-media - -# mypy-boto3-kinesis-video-media - -# mypy-boto3-kinesis-video-signaling - -# mypy-boto3-kinesis-video-webrtc-storage - -# mypy-boto3-kinesisanalytics - -# mypy-boto3-kinesisanalyticsv2 - -# mypy-boto3-kinesisvideo - -# mypy-boto3-kms - -# mypy-boto3-lakeformation - -# mypy-boto3-lambda - -# mypy-boto3-lex-models - -# mypy-boto3-lex-runtime - -# mypy-boto3-lexv2-models - -# mypy-boto3-lexv2-runtime - -# mypy-boto3-license-manager - -# mypy-boto3-license-manager-linux-subscriptions - -# mypy-boto3-license-manager-user-subscriptions - -# mypy-boto3-lightsail - -# mypy-boto3-location - -# mypy-boto3-logs - -# mypy-boto3-lookoutequipment - -# mypy-boto3-lookoutmetrics - -# mypy-boto3-lookoutvision - -# mypy-boto3-m2 - -# mypy-boto3-machinelearning - -# mypy-boto3-macie - -# mypy-boto3-macie2 - -# mypy-boto3-managedblockchain - -# mypy-boto3-managedblockchain-query - -# mypy-boto3-marketplace-catalog - -# mypy-boto3-marketplace-entitlement - -# mypy-boto3-marketplacecommerceanalytics - -# mypy-boto3-mediaconnect - -# mypy-boto3-mediaconvert - -# mypy-boto3-medialive - -# mypy-boto3-mediapackage - -# mypy-boto3-mediapackage-vod - -# mypy-boto3-mediapackagev2 - -# mypy-boto3-mediastore - -# mypy-boto3-mediastore-data - -# mypy-boto3-mediatailor - -# mypy-boto3-medical-imaging - -# mypy-boto3-memorydb - -# mypy-boto3-meteringmarketplace - -# mypy-boto3-mgh - -# mypy-boto3-mgn - -# mypy-boto3-migration-hub-refactor-spaces - -# mypy-boto3-migrationhub-config - -# mypy-boto3-migrationhuborchestrator - -# mypy-boto3-migrationhubstrategy - -# mypy-boto3-mobile - -# mypy-boto3-mq - -# mypy-boto3-mturk - -# mypy-boto3-mwaa - -# mypy-boto3-neptune - -# mypy-boto3-neptunedata - -# mypy-boto3-network-firewall - -# mypy-boto3-networkmanager - -# mypy-boto3-nimble - -# mypy-boto3-oam - -# mypy-boto3-omics - -# mypy-boto3-opensearch - -# mypy-boto3-opensearchserverless - -# mypy-boto3-opsworks - -# mypy-boto3-opsworkscm - -# mypy-boto3-organizations - -# mypy-boto3-osis - -# mypy-boto3-outposts - -# mypy-boto3-panorama - -# mypy-boto3-payment-cryptography - -# mypy-boto3-payment-cryptography-data - -# mypy-boto3-pca-connector-ad - -# mypy-boto3-personalize - -# mypy-boto3-personalize-events - -# mypy-boto3-personalize-runtime - -# mypy-boto3-pi - -# mypy-boto3-pinpoint - -# mypy-boto3-pinpoint-email - -# mypy-boto3-pinpoint-sms-voice - -# mypy-boto3-pinpoint-sms-voice-v2 - -# mypy-boto3-pipes - -# mypy-boto3-polly - -# mypy-boto3-pricing - -# mypy-boto3-privatenetworks - -# mypy-boto3-proton - -# mypy-boto3-qldb - -# mypy-boto3-qldb-session - -# mypy-boto3-quicksight - -# mypy-boto3-ram - -# mypy-boto3-rbin - -# mypy-boto3-rds - -# mypy-boto3-rds-data - -# mypy-boto3-redshift - -# mypy-boto3-redshift-data - -# mypy-boto3-redshift-serverless - -# mypy-boto3-rekognition - -# mypy-boto3-resiliencehub - -# mypy-boto3-resource-explorer-2 - -# mypy-boto3-resource-groups - -# mypy-boto3-resourcegroupstaggingapi - -# mypy-boto3-robomaker - -# mypy-boto3-rolesanywhere - -# mypy-boto3-route53 - -# mypy-boto3-route53-recovery-cluster - -# mypy-boto3-route53-recovery-control-config - -# mypy-boto3-route53-recovery-readiness - -# mypy-boto3-route53domains - -# mypy-boto3-route53resolver - -# mypy-boto3-rum - -# mypy-boto3-s3 - -# mypy-boto3-s3control - -# mypy-boto3-s3outposts - -# mypy-boto3-sagemaker - -# mypy-boto3-sagemaker-a2i-runtime - -# mypy-boto3-sagemaker-edge - -# mypy-boto3-sagemaker-featurestore-runtime - -# mypy-boto3-sagemaker-geospatial - -# mypy-boto3-sagemaker-metrics - -# mypy-boto3-sagemaker-runtime - -# mypy-boto3-savingsplans - -# mypy-boto3-scheduler - -# mypy-boto3-schemas - -# mypy-boto3-sdb - -# mypy-boto3-secretsmanager - -# mypy-boto3-securityhub - -# mypy-boto3-securitylake - -# mypy-boto3-serverlessrepo - -# mypy-boto3-service-quotas - -# mypy-boto3-servicecatalog - -# mypy-boto3-servicecatalog-appregistry - -# mypy-boto3-servicediscovery - -# mypy-boto3-ses - -# mypy-boto3-sesv2 - -# mypy-boto3-shield - -# mypy-boto3-signer - -# mypy-boto3-simspaceweaver - -# mypy-boto3-sms - -# mypy-boto3-sms-voice - -# mypy-boto3-snow-device-management - -# mypy-boto3-snowball - -# mypy-boto3-sns - -# mypy-boto3-sqs - -# mypy-boto3-ssm - -# mypy-boto3-ssm-contacts - -# mypy-boto3-ssm-incidents - -# mypy-boto3-ssm-sap - -# mypy-boto3-sso - -# mypy-boto3-sso-admin - -# mypy-boto3-sso-oidc - -# mypy-boto3-stepfunctions - -# mypy-boto3-storagegateway - -# mypy-boto3-sts - -# mypy-boto3-support - -# mypy-boto3-support-app - -# mypy-boto3-swf - -# mypy-boto3-synthetics - -# mypy-boto3-textract - -# mypy-boto3-timestream-query - -# mypy-boto3-timestream-write - -# mypy-boto3-tnb - -# mypy-boto3-transcribe - -# mypy-boto3-transfer - -# mypy-boto3-translate - -# mypy-boto3-verifiedpermissions - -# mypy-boto3-voice-id - -# mypy-boto3-vpc-lattice - -# mypy-boto3-waf - -# mypy-boto3-waf-regional - -# mypy-boto3-wafv2 - -# mypy-boto3-wellarchitected - -# mypy-boto3-wisdom - -# mypy-boto3-workdocs - -# mypy-boto3-worklink - -# mypy-boto3-workmail - -# mypy-boto3-workmailmessageflow - -# mypy-boto3-workspaces - -# mypy-boto3-workspaces-web - -# mypy-boto3-xray - -# ; - -# mypy-extensions = callPackage ./python-modules/mypy/extensions.nix { }; - -# mypy-protobuf = callPackage ./python-modules/mypy-protobuf { }; - -# mysqlclient = callPackage ./python-modules/mysqlclient { }; - -# mysql-connector = callPackage ./python-modules/mysql-connector { }; - -# myst-docutils = callPackage ./python-modules/myst-docutils { }; - -# myst-nb = callPackage ./python-modules/myst-nb { }; - -# myst-parser = callPackage ./python-modules/myst-parser { }; - -# myuplink = callPackage ./python-modules/myuplink { }; - -# n3fit = callPackage ./python-modules/n3fit { }; - -# nad-receiver = callPackage ./python-modules/nad-receiver { }; - -# nagiosplugin = callPackage ./python-modules/nagiosplugin { }; - -# naked = callPackage ./python-modules/naked { }; - -# namedlist = callPackage ./python-modules/namedlist { }; - -# nameparser = callPackage ./python-modules/nameparser { }; - -# names = callPackage ./python-modules/names { }; - -# name-that-hash = callPackage ./python-modules/name-that-hash { }; - -# nameko = callPackage ./python-modules/nameko { }; - -# nampa = callPackage ./python-modules/nampa { }; - -# nanobind = callPackage ./python-modules/nanobind { }; - -# nanoid = callPackage ./python-modules/nanoid { }; - -# nanoleaf = callPackage ./python-modules/nanoleaf { }; - -# navec = callPackage ./python-modules/navec { }; - -# natasha = callPackage ./python-modules/natasha { }; - -# nomadnet = callPackage ./python-modules/nomadnet { }; - -# nox = callPackage ./python-modules/nox { }; - -# nanomsg-python = callPackage ./python-modules/nanomsg-python { -# inherit (pkgs) nanomsg; -# }; - -# nanotime = callPackage ./python-modules/nanotime { }; - -# napalm = callPackage ./python-modules/napalm { }; - -# napalm-hp-procurve = callPackage ./python-modules/napalm/hp-procurve.nix { }; - -# napari = callPackage ./python-modules/napari { -# inherit (pkgs.libsForQt5) mkDerivationWith wrapQtAppsHook; -# }; - -# napari-console = callPackage ./python-modules/napari-console { }; - -# napari-npe2 = callPackage ./python-modules/napari-npe2 { }; - -# napari-plugin-engine = callPackage ./python-modules/napari-plugin-engine { }; - -# napari-svg = callPackage ./python-modules/napari-svg { }; - -# nasdaq-data-link = callPackage ./python-modules/nasdaq-data-link { }; - -# nats-py = callPackage ./python-modules/nats-py { }; - -# nats-python = callPackage ./python-modules/nats-python { }; - -# natsort = callPackage ./python-modules/natsort { }; - -# naturalsort = callPackage ./python-modules/naturalsort { }; - -# nbclassic = callPackage ./python-modules/nbclassic { }; - -# nbclient = callPackage ./python-modules/nbclient { }; - -# nbconflux = callPackage ./python-modules/nbconflux { }; - -# nbconvert = callPackage ./python-modules/nbconvert { }; - -# nbdev = callPackage ./python-modules/nbdev { }; - -# nbdime = callPackage ./python-modules/nbdime { }; - -# nbexec = callPackage ./python-modules/nbexec { }; - -# nbformat = callPackage ./python-modules/nbformat { }; - -# nbmerge = callPackage ./python-modules/nbmerge { }; - -# nbsmoke = callPackage ./python-modules/nbsmoke { }; - -# nbsphinx = callPackage ./python-modules/nbsphinx { }; - -# nbtlib = callPackage ./python-modules/nbtlib { }; - -# nbval = callPackage ./python-modules/nbval { }; - -# nbxmpp = callPackage ./python-modules/nbxmpp { }; - -# nc-dnsapi = callPackage ./python-modules/nc-dnsapi { }; - -# ncclient = callPackage ./python-modules/ncclient { }; - -# nclib = callPackage ./python-modules/nclib { }; - -# ndeflib = callPackage ./python-modules/ndeflib { }; - -# ndg-httpsclient = callPackage ./python-modules/ndg-httpsclient { }; - -# ndindex = callPackage ./python-modules/ndindex { }; - -# ndjson = callPackage ./python-modules/ndjson { }; - -# ndms2-client = callPackage ./python-modules/ndms2-client { }; - -# ndspy = callPackage ./python-modules/ndspy { }; - -# ndtypes = callPackage ./python-modules/ndtypes { }; - -# nebula3-python = callPackage ./python-modules/nebula3-python { }; - -# nengo = callPackage ./python-modules/nengo { }; - -# neo = callPackage ./python-modules/neo { }; - -# neo4j = callPackage ./python-modules/neo4j { }; - -# neoteroi-mkdocs = callPackage ./python-modules/neoteroi-mkdocs { }; - -# nessclient = callPackage ./python-modules/nessclient { }; - -# nest = toPythonModule(pkgs.nest-mpi.override { withPython = true; python3 = python; }); - -# nest-asyncio = callPackage ./python-modules/nest-asyncio { }; - -# nested-lookup = callPackage ./python-modules/nested-lookup { }; - -# nestedtext = callPackage ./python-modules/nestedtext { }; - -# netaddr = callPackage ./python-modules/netaddr { }; - -# netapp-lib = callPackage ./python-modules/netapp-lib { }; - -# netapp-ontap = callPackage ./python-modules/netapp-ontap { }; - -# netcdf4 = callPackage ./python-modules/netcdf4 { }; - -# netdata = callPackage ./python-modules/netdata { }; - -# netdisco = callPackage ./python-modules/netdisco { }; - -# nethsm = callPackage ./python-modules/nethsm { }; - -# netifaces = callPackage ./python-modules/netifaces { }; - -# netmiko = callPackage ./python-modules/netmiko { }; - -# netio = callPackage ./python-modules/netio { }; - -# nettigo-air-monitor = callPackage ./python-modules/nettigo-air-monitor { }; - -# netutils = callPackage ./python-modules/netutils { }; - -# networkx = callPackage ./python-modules/networkx { }; - -# neuron-full = pkgs.neuron-full.override { python3 = python; }; - -# neuronpy = python.pkgs.toPythonModule neuron-full; - -# nevow = callPackage ./python-modules/nevow { }; - -# newversion = callPackage ./python-modules/newversion { }; - -# newick = callPackage ./python-modules/newick { }; - -# nexia = callPackage ./python-modules/nexia { }; - -# nextcloudmonitor = callPackage ./python-modules/nextcloudmonitor { }; - -# nextcord = callPackage ./python-modules/nextcord { }; - -# nextdns = callPackage ./python-modules/nextdns { }; - -# nfcpy = callPackage ./python-modules/nfcpy { }; - -# nftables = toPythonModule (pkgs.nftables.override { -# python3 = python; -# withPython = true; -# }); - -# nh3 = callPackage ./python-modules/nh3 { }; - -# niaaml = callPackage ./python-modules/niaaml { }; - -# nianet = callPackage ./python-modules/nianet { }; - -# niaarm = callPackage ./python-modules/niaarm { }; - -# niaclass = callPackage ./python-modules/niaclass { }; - -# niapy = callPackage ./python-modules/niapy { }; - -# nibabel = callPackage ./python-modules/nibabel { }; - -# nibe = callPackage ./python-modules/nibe { }; - -# nidaqmx = callPackage ./python-modules/nidaqmx { }; - -# nikola = callPackage ./python-modules/nikola { }; - -# niko-home-control = callPackage ./python-modules/niko-home-control { }; - -# nilearn = callPackage ./python-modules/nilearn { }; - -# niluclient = callPackage ./python-modules/niluclient { }; - -# nimfa = callPackage ./python-modules/nimfa { }; - -# nine = callPackage ./python-modules/nine { }; - -# ninebot-ble = callPackage ./python-modules/ninebot-ble { }; - -# ninja = callPackage ./python-modules/ninja { inherit (pkgs) ninja; }; - -# nipreps-versions = callPackage ./python-modules/nipreps-versions { }; - -# nipy = callPackage ./python-modules/nipy { }; - -# nipype = callPackage ./python-modules/nipype { -# inherit (pkgs) which; -# }; - -# nitime = callPackage ./python-modules/nitime { }; - -# nitpick = callPackage ../applications/version-management/nitpick { }; - -# nitransforms = callPackage ./python-modules/nitransforms { }; - -# niworkflows = callPackage ./python-modules/niworkflows { }; - -# nix-kernel = callPackage ./python-modules/nix-kernel { -# inherit (pkgs) nix; -# }; - -# nixpkgs = callPackage ./python-modules/nixpkgs { }; - -# nixpkgs-pytools = callPackage ./python-modules/nixpkgs-pytools { }; - -# nix-prefetch-github = callPackage ./python-modules/nix-prefetch-github { }; - -# nkdfu = callPackage ./python-modules/nkdfu { }; - -# nlpcloud = callPackage ./python-modules/nlpcloud { }; - -# nltk = callPackage ./python-modules/nltk { }; - -# nnpdf = toPythonModule (pkgs.nnpdf.override { -# python3 = python; -# }); - -# nmapthon2 = callPackage ./python-modules/nmapthon2 { }; - -# amaranth-boards = callPackage ./python-modules/amaranth-boards { }; - -# amaranth = callPackage ./python-modules/amaranth { }; - -# amaranth-soc = callPackage ./python-modules/amaranth-soc { }; - -# nocasedict = callPackage ./python-modules/nocasedict { }; - -# nocaselist = callPackage ./python-modules/nocaselist { }; - -# nocturne = callPackage ./python-modules/nocturne { }; - -# nodeenv = callPackage ./python-modules/nodeenv { }; - -# nodepy-runtime = callPackage ./python-modules/nodepy-runtime { }; - -# node-semver = callPackage ./python-modules/node-semver { }; - -# noise = callPackage ./python-modules/noise { }; - -# noiseprotocol = callPackage ./python-modules/noiseprotocol { }; - -# norfair = callPackage ./python-modules/norfair { }; - -# normality = callPackage ./python-modules/normality { }; - - nose = callPackage ./python-modules/nose { }; - -# nose2 = callPackage ./python-modules/nose2 { }; - -# nose3 = callPackage ./python-modules/nose3 { }; - -# nose-cov = callPackage ./python-modules/nose-cov { }; - -# nose-cprof = callPackage ./python-modules/nose-cprof { }; - -# nose-exclude = callPackage ./python-modules/nose-exclude { }; - -# nose-timer = callPackage ./python-modules/nose-timer { }; - -# nosejs = callPackage ./python-modules/nosejs { }; - -# nose-pattern-exclude = callPackage ./python-modules/nose-pattern-exclude { }; - -# nose-randomly = callPackage ./python-modules/nose-randomly { }; - -# nose-warnings-filters = callPackage ./python-modules/nose-warnings-filters { }; - -# nosexcover = callPackage ./python-modules/nosexcover { }; - -# notebook = callPackage ./python-modules/notebook { }; - -# notebook-shim = callPackage ./python-modules/notebook-shim { }; - -# notedown = callPackage ./python-modules/notedown { }; - -# notifications-android-tv = callPackage ./python-modules/notifications-android-tv { }; - -# notifications-python-client = callPackage ./python-modules/notifications-python-client { }; - -# notify-events = callPackage ./python-modules/notify-events { }; - -# notify-py = callPackage ./python-modules/notify-py { }; - -# notify2 = callPackage ./python-modules/notify2 { }; - -# notion-client = callPackage ./python-modules/notion-client { }; - -# notmuch = callPackage ./python-modules/notmuch { -# inherit (pkgs) notmuch; -# }; - -# notmuch2 = callPackage ./python-modules/notmuch2 { -# inherit (pkgs) notmuch; -# }; - -# nototools = callPackage ./python-modules/nototools { }; - -# notus-scanner = callPackage ./python-modules/notus-scanner { }; - -# nplusone = callPackage ./python-modules/nplusone { }; - -# nptyping = callPackage ./python-modules/nptyping { }; - -# npyscreen = callPackage ./python-modules/npyscreen { }; - -# nsapi = callPackage ./python-modules/nsapi { }; - -# ntc-templates = callPackage ./python-modules/ntc-templates { }; - -# ntplib = callPackage ./python-modules/ntplib { }; - -# nuitka = callPackage ./python-modules/nuitka { }; - -# nuheat = callPackage ./python-modules/nuheat { }; - -# nulltype = callPackage ./python-modules/nulltype { }; - -# num2words = callPackage ./python-modules/num2words { }; - -# numba = callPackage ./python-modules/numba { -# inherit (pkgs.config) cudaSupport; -# }; - -# numbaWithCuda = self.numba.override { -# cudaSupport = true; -# }; - -# numba-scipy = callPackage ./python-modules/numba-scipy { }; - -# numcodecs = callPackage ./python-modules/numcodecs { }; - -# numdifftools = callPackage ./python-modules/numdifftools { }; - -# numericalunits = callPackage ./python-modules/numericalunits { }; - -# numexpr = callPackage ./python-modules/numexpr { }; - -# numpydoc = callPackage ./python-modules/numpydoc { }; - - numpy = callPackage ./python-modules/numpy { }; - -# numpy-stl = callPackage ./python-modules/numpy-stl { }; - -# numpyro = callPackage ./python-modules/numpyro { }; - -# nunavut = callPackage ./python-modules/nunavut { }; - -# nutils = callPackage ./python-modules/nutils { }; - -# nvchecker = callPackage ./python-modules/nvchecker { }; - -# nvdlib = callPackage ./python-modules/nvdlib { }; - -# nvidia-ml-py = callPackage ./python-modules/nvidia-ml-py { }; - -# nsz = callPackage ./python-modules/nsz { }; - -# nxt-python = callPackage ./python-modules/nxt-python { }; - -# python-ndn = callPackage ./python-modules/python-ndn { }; - -# python-nvd3 = callPackage ./python-modules/python-nvd3 { }; - -# python-secp256k1-cardano = callPackage ./python-modules/python-secp256k1-cardano { }; - -# python-tds = callPackage ./python-modules/python-tds { }; - -# python-yate = callPackage ./python-modules/python-yate { }; - -# python-youtube = callPackage ./python-modules/python-youtube { }; - -# py-aosmith = callPackage ./python-modules/py-aosmith { }; - -# py-deprecate = callPackage ./python-modules/py-deprecate { }; - -# py-ecc = callPackage ./python-modules/py-ecc { }; - -# py-eth-sig-utils = callPackage ./python-modules/py-eth-sig-utils { }; - -# py-expression-eval = callPackage ./python-modules/py-expression-eval { }; - -# py-radix-sr = callPackage ./python-modules/py-radix-sr { }; - -# nwdiag = callPackage ./python-modules/nwdiag { }; - -# oasatelematics = callPackage ./python-modules/oasatelematics { }; - -# oath = callPackage ./python-modules/oath { }; - -# oauth2 = callPackage ./python-modules/oauth2 { }; - -# oauth2client = callPackage ./python-modules/oauth2client { }; - -# oauth = callPackage ./python-modules/oauth { }; - -# oauthenticator = callPackage ./python-modules/oauthenticator { }; - -# oauthlib = callPackage ./python-modules/oauthlib { }; - -# obfsproxy = callPackage ./python-modules/obfsproxy { }; - -# objax = callPackage ./python-modules/objax { }; - -# 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 { }; - -# oca-port = callPackage ./python-modules/oca-port { }; - -# ochre = callPackage ./python-modules/ochre { }; - -# oci = callPackage ./python-modules/oci { }; - -# ocifs = callPackage ./python-modules/ocifs { }; - -# ocrmypdf = callPackage ./python-modules/ocrmypdf { -# tesseract = pkgs.tesseract5; -# }; - -# od = callPackage ./python-modules/od { }; - -# odfpy = callPackage ./python-modules/odfpy { }; - -# odp-amsterdam = callPackage ./python-modules/odp-amsterdam { }; - -# offtrac = callPackage ./python-modules/offtrac { }; - -# ofxclient = callPackage ./python-modules/ofxclient { }; - -# ofxhome = callPackage ./python-modules/ofxhome { }; - -# ofxparse = callPackage ./python-modules/ofxparse { }; - -# ofxtools = callPackage ./python-modules/ofxtools { }; - -# oemthermostat = callPackage ./python-modules/oemthermostat { }; - -# okonomiyaki = callPackage ./python-modules/okonomiyaki { }; - -# okta = callPackage ./python-modules/okta { }; - -# oldest-supported-numpy = callPackage ./python-modules/oldest-supported-numpy { }; - -# olefile = callPackage ./python-modules/olefile { }; - -# oletools = callPackage ./python-modules/oletools { }; - -# ollama = callPackage ./python-modules/ollama { }; - -# omegaconf = callPackage ./python-modules/omegaconf { }; - -# omemo-dr = callPackage ./python-modules/omemo-dr { }; - -# ome-zarr = callPackage ./python-modules/ome-zarr { }; - -# omnikinverter = callPackage ./python-modules/omnikinverter { }; - -# omnilogic = callPackage ./python-modules/omnilogic { }; - -# omorfi = callPackage ./python-modules/omorfi { }; - -# omrdatasettools = callPackage ./python-modules/omrdatasettools { }; - -# oncalendar = callPackage ./python-modules/oncalendar { }; - -# ondilo = callPackage ./python-modules/ondilo { }; - -# onetimepass = callPackage ./python-modules/onetimepass { }; - -# onigurumacffi = callPackage ./python-modules/onigurumacffi { }; - -# onkyo-eiscp = callPackage ./python-modules/onkyo-eiscp { }; - -# online-judge-api-client = callPackage ./python-modules/online-judge-api-client { }; - -# online-judge-tools = callPackage ./python-modules/online-judge-tools { }; - -# onlykey-solo-python = callPackage ./python-modules/onlykey-solo-python { }; - -# onnx = callPackage ./python-modules/onnx { -# abseil-cpp = pkgs.abseil-cpp_202301; -# }; - -# onnxconverter-common = callPackage ./python-modules/onnxconverter-common { -# inherit (pkgs) protobuf; -# }; - -# onnxmltools = callPackage ./python-modules/onnxmltools { }; - -# onnxruntime = callPackage ./python-modules/onnxruntime { -# onnxruntime = pkgs.onnxruntime.override { -# python3Packages = self; -# pythonSupport = true; -# }; -# }; - -# onnxruntime-tools = callPackage ./python-modules/onnxruntime-tools { }; - -# onvif-zeep = callPackage ./python-modules/onvif-zeep { }; - -# onvif-zeep-async = callPackage ./python-modules/onvif-zeep-async { }; - -# oocsi = callPackage ./python-modules/oocsi { }; - -# opcua-widgets = callPackage ./python-modules/opcua-widgets { }; - -# open-clip-torch = callPackage ./python-modules/open-clip-torch { }; - -# open-garage = callPackage ./python-modules/open-garage { }; - -# open-interpreter = callPackage ./python-modules/open-interpreter { }; - -# 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-cuda = self.openai-triton.override { -# cudaSupport = true; -# }; - -# openai-triton-no-cuda = self.openai-triton.override { -# cudaSupport = false; -# }; - -# openai-triton-bin = callPackage ./python-modules/openai-triton/bin.nix { }; - -# openai-whisper = callPackage ./python-modules/openai-whisper { }; - -# openant = callPackage ./python-modules/openant { }; - -# openapi-schema-validator = callPackage ./python-modules/openapi-schema-validator { }; - -# openapi-spec-validator = callPackage ./python-modules/openapi-spec-validator { }; - -# openapi3 = callPackage ./python-modules/openapi3 { }; - -# openbabel-bindings = callPackage ./python-modules/openbabel-bindings { -# openbabel = callPackage ../development/libraries/openbabel { inherit (self) python; }; -# }; - -# opencensus = callPackage ./python-modules/opencensus { }; - -# opencensus-context = callPackage ./python-modules/opencensus-context { }; - -# opencensus-ext-azure = callPackage ./python-modules/opencensus-ext-azure { }; - -# opencontainers = callPackage ./python-modules/opencontainers { }; - -# opencv4 = toPythonModule (pkgs.opencv4.override { -# enablePython = true; -# pythonPackages = self; -# }); - -# openerz-api = callPackage ./python-modules/openerz-api { }; - -# openevsewifi = callPackage ./python-modules/openevsewifi { }; - -# openhomedevice = callPackage ./python-modules/openhomedevice { }; - -# openidc-client = callPackage ./python-modules/openidc-client { }; - -# openmm = toPythonModule (pkgs.openmm.override { -# python3Packages = self; -# enablePython = true; -# }); - -# openpyxl = callPackage ./python-modules/openpyxl { }; - -# openrazer = callPackage ./python-modules/openrazer/pylib.nix { }; - -# openrazer-daemon = callPackage ./python-modules/openrazer/daemon.nix { }; - -# openrgb-python = callPackage ./python-modules/openrgb-python { }; - -# openrouteservice = callPackage ./python-modules/openrouteservice { }; - -# opensearch-py = callPackage ./python-modules/opensearch-py { }; - -# opensensemap-api = callPackage ./python-modules/opensensemap-api { }; - -# opensfm = callPackage ./python-modules/opensfm { }; - -# openshift = callPackage ./python-modules/openshift { }; - -# opensimplex = callPackage ./python-modules/opensimplex { }; - -# openstackdocstheme = callPackage ./python-modules/openstackdocstheme { }; - -# openstacksdk = callPackage ./python-modules/openstacksdk { }; - -# opentimestamps = callPackage ./python-modules/opentimestamps { }; - -# opentelemetry-api = callPackage ./python-modules/opentelemetry-api { }; - -# 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-grpc = callPackage ./python-modules/opentelemetry-exporter-otlp-proto-grpc { }; - -# opentelemetry-exporter-otlp-proto-http = callPackage ./python-modules/opentelemetry-exporter-otlp-proto-http { }; - -# opentelemetry-exporter-prometheus = callPackage ./python-modules/opentelemetry-exporter-prometheus { }; - -# opentelemetry-instrumentation = callPackage ./python-modules/opentelemetry-instrumentation { }; - -# opentelemetry-instrumentation-aiohttp-client = callPackage ./python-modules/opentelemetry-instrumentation-aiohttp-client { }; - -# opentelemetry-instrumentation-asgi = callPackage ./python-modules/opentelemetry-instrumentation-asgi { }; - -# opentelemetry-instrumentation-django = callPackage ./python-modules/opentelemetry-instrumentation-django { }; - -# opentelemetry-instrumentation-fastapi = callPackage ./python-modules/opentelemetry-instrumentation-fastapi { }; - -# opentelemetry-instrumentation-flask = callPackage ./python-modules/opentelemetry-instrumentation-flask { }; - -# opentelemetry-instrumentation-grpc = callPackage ./python-modules/opentelemetry-instrumentation-grpc { }; - -# opentelemetry-instrumentation-wsgi = callPackage ./python-modules/opentelemetry-instrumentation-wsgi { }; - -# opentelemetry-proto = callPackage ./python-modules/opentelemetry-proto { }; - -# opentelemetry-semantic-conventions = callPackage ./python-modules/opentelemetry-semantic-conventions { }; - -# opentelemetry-sdk = callPackage ./python-modules/opentelemetry-sdk { }; - -# opentelemetry-test-utils = callPackage ./python-modules/opentelemetry-test-utils { }; - -# opentelemetry-util-http = callPackage ./python-modules/opentelemetry-util-http { }; - -# openturns = toPythonModule (pkgs.openturns.override { -# python3Packages = self; -# enablePython = true; -# }); - -# opentracing = callPackage ./python-modules/opentracing { }; - -# opentsne = callPackage ./python-modules/opentsne { }; - -# opentypespec = callPackage ./python-modules/opentypespec { }; - -# openvino = callPackage ./python-modules/openvino { -# openvino-native = pkgs.openvino.override { -# python3Packages = self; -# }; -# }; - -# openwebifpy = callPackage ./python-modules/openwebifpy { }; - -# openwrt-luci-rpc = callPackage ./python-modules/openwrt-luci-rpc { }; - -# openwrt-ubus-rpc = callPackage ./python-modules/openwrt-ubus-rpc { }; - -# opower = callPackage ./python-modules/opower { }; - -# opsdroid-get-image-size = callPackage ./python-modules/opsdroid-get-image-size { }; - -# opt-einsum = callPackage ./python-modules/opt-einsum { }; - -# optax = callPackage ./python-modules/optax { }; - -# optimum = callPackage ./python-modules/optimum { }; - -# optuna = callPackage ./python-modules/optuna { }; - -# opuslib = callPackage ./python-modules/opuslib { }; - -# opytimark = callPackage ./python-modules/opytimark { }; - -# oracledb = callPackage ./python-modules/oracledb { }; - -# oralb-ble = callPackage ./python-modules/oralb-ble { }; - -# orange3 = callPackage ./python-modules/orange3 { }; - -# orange-canvas-core = callPackage ./python-modules/orange-canvas-core { }; - -# orange-widget-base = callPackage ./python-modules/orange-widget-base { }; - -# oras = callPackage ./python-modules/oras { }; - -# orbax-checkpoint = callPackage ./python-modules/orbax-checkpoint { }; - -# orderedmultidict = callPackage ./python-modules/orderedmultidict { }; - -# ordered-set = callPackage ./python-modules/ordered-set { }; - -# orderedset = callPackage ./python-modules/orderedset { }; - -# orgparse = callPackage ./python-modules/orgparse { }; - -# orjson = callPackage ./python-modules/orjson { }; - -# orm = callPackage ./python-modules/orm { }; - -# ormar = callPackage ./python-modules/ormar { }; - -# ortools = (toPythonModule (pkgs.or-tools.override { inherit (self) python; })).python; - -# orvibo = callPackage ./python-modules/orvibo { }; - -# os-service-types = callPackage ./python-modules/os-service-types { }; - -# osc = callPackage ./python-modules/osc { }; - -# osc-diagram = callPackage ./python-modules/osc-diagram { }; - -# osc-lib = callPackage ./python-modules/osc-lib { }; - -# osc-sdk-python = callPackage ./python-modules/osc-sdk-python { }; - -# oscpy = callPackage ./python-modules/oscpy { }; - -# oscrypto = callPackage ./python-modules/oscrypto { }; - -# oscscreen = callPackage ./python-modules/oscscreen { }; - -# oset = callPackage ./python-modules/oset { }; - -# osmnx = callPackage ./python-modules/osmnx { }; - -# osmpythontools = callPackage ./python-modules/osmpythontools { }; - -# oslo-concurrency = callPackage ./python-modules/oslo-concurrency { }; - -# oslo-config = callPackage ./python-modules/oslo-config { }; - -# oslo-context = callPackage ./python-modules/oslo-context { }; - -# oslo-db = callPackage ./python-modules/oslo-db { }; - -# oslo-i18n = callPackage ./python-modules/oslo-i18n { }; - -# oslo-log = callPackage ./python-modules/oslo-log { }; - -# oslo-serialization = callPackage ./python-modules/oslo-serialization { }; - -# oslo-utils = callPackage ./python-modules/oslo-utils { }; - -# oslotest = callPackage ./python-modules/oslotest { }; - -# ospd = callPackage ./python-modules/ospd { }; - -# osqp = callPackage ./python-modules/osqp { }; - -# oss2 = callPackage ./python-modules/oss2 { }; - -# ossfs = callPackage ./python-modules/ossfs { }; - -# ots-python = callPackage ./python-modules/ots-python { }; - -# outcome = callPackage ./python-modules/outcome { }; - -# ovh = callPackage ./python-modules/ovh { }; - -# ovmfvartool = callPackage ./python-modules/ovmfvartool { }; - -# ovoenergy = callPackage ./python-modules/ovoenergy { }; - -# owslib = callPackage ./python-modules/owslib { }; - -# oyaml = callPackage ./python-modules/oyaml { }; - -# p1monitor = callPackage ./python-modules/p1monitor { }; - -# packageurl-python = callPackage ./python-modules/packageurl-python { }; - - packaging = callPackage ./python-modules/packaging { }; - -# packbits = callPackage ./python-modules/packbits { }; - -# packet-python = callPackage ./python-modules/packet-python { }; - -# packvers = callPackage ./python-modules/packvers { }; - -# pagelabels = callPackage ./python-modules/pagelabels { }; - -# paginate = callPackage ./python-modules/paginate { }; - -# paho-mqtt = callPackage ./python-modules/paho-mqtt { }; - -# palace = callPackage ./python-modules/palace { }; - -# palettable = callPackage ./python-modules/palettable { }; - - pallets-sphinx-themes = callPackage ./python-modules/pallets-sphinx-themes { }; - -# python-docs-theme = callPackage ./python-modules/python-docs-theme { }; - -# pamela = callPackage ./python-modules/pamela { }; - -# pamqp = callPackage ./python-modules/pamqp { }; - -# panacotta = callPackage ./python-modules/panacotta { }; - -# panasonic-viera = callPackage ./python-modules/panasonic-viera { }; - -# pandas = callPackage ./python-modules/pandas { -# inherit (pkgs.darwin) adv_cmds; -# }; - -# pandas-datareader = callPackage ./python-modules/pandas-datareader { }; - -# pandoc-attributes = callPackage ./python-modules/pandoc-attributes { }; - -# pandoc-xnos = callPackage ./python-modules/pandoc-xnos { }; - -# pandocfilters = callPackage ./python-modules/pandocfilters { }; - -# panel = callPackage ./python-modules/panel { }; - -# panflute = callPackage ./python-modules/panflute { }; - -# panphon = callPackage ./python-modules/panphon { }; - -# 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 { }; - -# papis = callPackage ./python-modules/papis { }; - -# papis-python-rofi = callPackage ./python-modules/papis-python-rofi { }; - -# para = callPackage ./python-modules/para { }; - -# param = callPackage ./python-modules/param { }; - -# parameter-expansion-patched = callPackage ./python-modules/parameter-expansion-patched { }; - -# parameterized = callPackage ./python-modules/parameterized { }; - -# parametrize-from-file = callPackage ./python-modules/parametrize-from-file { }; - -# paramiko = callPackage ./python-modules/paramiko { }; - -# paramz = callPackage ./python-modules/paramz { }; - -# paranoid-crypto = callPackage ./python-modules/paranoid-crypto { }; - -# parfive = callPackage ./python-modules/parfive { }; - -# parquet = callPackage ./python-modules/parquet { }; - -# parse = callPackage ./python-modules/parse { }; - -# parsedatetime = callPackage ./python-modules/parsedatetime { }; - -# parsedmarc = callPackage ./python-modules/parsedmarc { }; - -# parsel = callPackage ./python-modules/parsel { }; - -# parse-type = callPackage ./python-modules/parse-type { }; - -# parsimonious = callPackage ./python-modules/parsimonious { }; - -# parsley = callPackage ./python-modules/parsley { }; - -# parso = callPackage ./python-modules/parso { }; - -# parsy = callPackage ./python-modules/parsy { }; - -# partd = callPackage ./python-modules/partd { }; - -# parts = callPackage ./python-modules/parts { }; - -# particle = callPackage ./python-modules/particle { }; - -# parver = callPackage ./python-modules/parver { }; -# arpeggio = callPackage ./python-modules/arpeggio { }; - -# pasimple = callPackage ./python-modules/pasimple { }; - -# passlib = callPackage ./python-modules/passlib { }; - -# paste = callPackage ./python-modules/paste { }; - -# pastedeploy = callPackage ./python-modules/pastedeploy { }; - -# pastel = callPackage ./python-modules/pastel { }; - -# pastescript = callPackage ./python-modules/pastescript { }; - -# patator = callPackage ./python-modules/patator { }; - -# patch = callPackage ./python-modules/patch { }; - -# patch-ng = callPackage ./python-modules/patch-ng { }; - -# path = callPackage ./python-modules/path { }; - -# path-and-address = callPackage ./python-modules/path-and-address { }; - -# pathable = callPackage ./python-modules/pathable { }; - -# pathlib2 = callPackage ./python-modules/pathlib2 { }; - -# pathlib = callPackage ./python-modules/pathlib { }; - -# pathlib-abc = callPackage ./python-modules/pathlib-abc { }; - -# pathos = callPackage ./python-modules/pathos { }; - - pathspec = callPackage ./python-modules/pathspec { }; - -# pathtools = callPackage ./python-modules/pathtools { }; - -# pathvalidate = callPackage ./python-modules/pathvalidate { }; - -# pathy = callPackage ./python-modules/pathy { }; - -# patiencediff = callPackage ./python-modules/patiencediff { }; - -# patool = callPackage ./python-modules/patool { }; - -# patsy = callPackage ./python-modules/patsy { }; - -# patrowl4py = callPackage ./python-modules/patrowl4py { }; - -# paver = callPackage ./python-modules/paver { }; - -# paypal-checkout-serversdk = callPackage ./python-modules/paypal-checkout-serversdk { }; - -# paypalhttp = callPackage ./python-modules/paypalhttp { }; - -# paypalrestsdk = callPackage ./python-modules/paypalrestsdk { }; - -# pbkdf2 = callPackage ./python-modules/pbkdf2 { }; - -# pbr = callPackage ./python-modules/pbr { }; - -# pbs-installer = callPackage ./python-modules/pbs-installer { }; - -# 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 -# }; - -# pcbnewtransition = callPackage ./python-modules/pcbnewtransition { }; - -# pcodedmp = callPackage ./python-modules/pcodedmp { }; - -# pcpp = callPackage ./python-modules/pcpp { }; - -# pdb2pqr = callPackage ./python-modules/pdb2pqr { }; - -# pdbfixer = callPackage ./python-modules/pdbfixer { }; - -# pdf2docx = callPackage ./python-modules/pdf2docx { }; - -# pdf2image = callPackage ./python-modules/pdf2image { }; - -# pdfkit = callPackage ./python-modules/pdfkit { }; - -# pdfminer-six = callPackage ./python-modules/pdfminer-six { }; - -# pdfplumber = callPackage ./python-modules/pdfplumber { }; - -# pdfrw = callPackage ./python-modules/pdfrw { }; - -# pdfrw2 = callPackage ./python-modules/pdfrw2 { }; - -# pdftotext = callPackage ./python-modules/pdftotext { }; - -# pdfx = callPackage ./python-modules/pdfx { }; - -# pdm-backend = callPackage ./python-modules/pdm-backend { }; - -# pdm-pep517 = callPackage ./python-modules/pdm-pep517 { }; - -# pdoc = callPackage ./python-modules/pdoc { }; - -# pdoc-pyo3-sample-library = callPackage ./python-modules/pdoc-pyo3-sample-library { }; - -# pdoc3 = callPackage ./python-modules/pdoc3 { }; - -# peaqevcore = callPackage ./python-modules/peaqevcore { }; - -# pegen = callPackage ./python-modules/pegen { }; - -# pebble = callPackage ./python-modules/pebble { }; - -# pecan = callPackage ./python-modules/pecan { }; - -# peco = callPackage ./python-modules/peco { }; - -# peewee = callPackage ./python-modules/peewee { }; - -# peewee-migrate = callPackage ./python-modules/peewee-migrate { }; - -# pefile = callPackage ./python-modules/pefile { }; - -# peft = callPackage ./python-modules/peft { }; - -# pelican = callPackage ./python-modules/pelican { -# inherit (pkgs) glibcLocales git; -# }; - -# pem = callPackage ./python-modules/pem { }; - -# pendulum = callPackage ./python-modules/pendulum { }; - -# pep440 = callPackage ./python-modules/pep440 { }; - -# pep517 = callPackage ./python-modules/pep517 { }; - -# pep8 = callPackage ./python-modules/pep8 { }; - -# pep8-naming = callPackage ./python-modules/pep8-naming { }; - -# peppercorn = callPackage ./python-modules/peppercorn { }; - -# percol = callPackage ./python-modules/percol { }; - -# perfplot = callPackage ./python-modules/perfplot { }; - -# periodictable = callPackage ./python-modules/periodictable { }; - -# periodiq = callPackage ./python-modules/periodiq { }; - -# permissionedforms = callPackage ./python-modules/permissionedforms { }; - -# persim = callPackage ./python-modules/persim { }; - -# persist-queue = callPackage ./python-modules/persist-queue { }; - -# persistent = callPackage ./python-modules/persistent { }; - -# persisting-theory = callPackage ./python-modules/persisting-theory { }; - -# pescea = callPackage ./python-modules/pescea { }; - -# pex = callPackage ./python-modules/pex { }; - -# pexif = callPackage ./python-modules/pexif { }; - -# pexpect = callPackage ./python-modules/pexpect { }; - -# pfzy = callPackage ./python-modules/pfzy { }; - -# ping3 = callPackage ./python-modules/ping3 { }; - -# pins = callPackage ./python-modules/pins { }; - -# pg8000 = callPackage ./python-modules/pg8000 { }; - -# pgcli = callPackage ./python-modules/pgcli { }; - -# pglast = callPackage ./python-modules/pglast { }; - -# pgpdump = callPackage ./python-modules/pgpdump { }; - -# pgpy = callPackage ./python-modules/pgpy { }; - -# pgsanity = callPackage ./python-modules/pgsanity { }; - -# pgspecial = callPackage ./python-modules/pgspecial { }; - -# pgvector = callPackage ./python-modules/pgvector { }; - -# phe = callPackage ./python-modules/phe { }; - -# phik = callPackage ./python-modules/phik { }; - -# phone-modem = callPackage ./python-modules/phone-modem { }; - -# phonenumbers = callPackage ./python-modules/phonenumbers { }; - -# pkgutil-resolve-name = callPackage ./python-modules/pkgutil-resolve-name { }; - -# pkg-about = callPackage ./python-modules/pkg-about { }; - -# micloud = callPackage ./python-modules/micloud { }; - -# mqtt2influxdb = callPackage ./python-modules/mqtt2influxdb { }; - -# msgraph-core = callPackage ./python-modules/msgraph-core { }; - -# msgraph-sdk = callPackage ./python-modules/msgraph-sdk { }; - -# multipart = callPackage ./python-modules/multipart { }; - -# netmap = callPackage ./python-modules/netmap { }; - -# onetimepad = callPackage ./python-modules/onetimepad { }; - -# openai = callPackage ./python-modules/openai { }; - -# openaiauth = callPackage ./python-modules/openaiauth { }; - -# openapi-core = callPackage ./python-modules/openapi-core { }; - -# openusd = callPackage ./python-modules/openusd { -# alembic = pkgs.alembic; -# }; - -# outlines = callPackage ./python-modules/outlines { }; - -# overly = callPackage ./python-modules/overly { }; - -# overpy = callPackage ./python-modules/overpy { }; - -# overrides = callPackage ./python-modules/overrides { }; - -# pandas-stubs = callPackage ./python-modules/pandas-stubs { }; - -# pdunehd = callPackage ./python-modules/pdunehd { }; - -# pencompy = callPackage ./python-modules/pencompy { }; - -# pgmpy = callPackage ./python-modules/pgmpy { }; - -# phonopy = callPackage ./python-modules/phonopy { }; - -# pixcat = callPackage ./python-modules/pixcat { }; - -# pinecone-client = callPackage ./python-modules/pinecone-client { }; - -# psrpcore = callPackage ./python-modules/psrpcore { }; - -# pybars3 = callPackage ./python-modules/pybars3 { }; - -# pymeta3 = callPackage ./python-modules/pymeta3 { }; - -# pypemicro = callPackage ./python-modules/pypemicro { }; - -# pymeshlab = toPythonModule (pkgs.libsForQt5.callPackage ../applications/graphics/pymeshlab { }); - -# pyprecice = callPackage ./python-modules/pyprecice { }; - -# pyprobables = callPackage ./python-modules/pyprobables { }; - -# pyproject-api = callPackage ./python-modules/pyproject-api { }; - - pyproject-hooks = callPackage ./python-modules/pyproject-hooks { }; - -# pypsrp = callPackage ./python-modules/pypsrp { }; - -# phpserialize = callPackage ./python-modules/phpserialize { }; - -# phx-class-registry = callPackage ./python-modules/phx-class-registry { }; - -# pi1wire = callPackage ./python-modules/pi1wire { }; - -# piano-transcription-inference = callPackage ./python-modules/piano-transcription-inference { }; - -# piccata = callPackage ./python-modules/piccata { }; - -# pick = callPackage ./python-modules/pick { }; - -# pickleshare = callPackage ./python-modules/pickleshare { }; - -# picobox = callPackage ./python-modules/picobox { }; - -# picos = callPackage ./python-modules/picos { }; - -# picosvg = callPackage ./python-modules/picosvg { }; - -# piccolo-theme = callPackage ./python-modules/piccolo-theme { }; - -# pid = callPackage ./python-modules/pid { }; - -# piep = callPackage ./python-modules/piep { }; - -# piexif = callPackage ./python-modules/piexif { }; - -# pijuice = callPackage ./python-modules/pijuice { }; - -# pika = callPackage ./python-modules/pika { }; - -# pika-pool = callPackage ./python-modules/pika-pool { }; - -# pikepdf = callPackage ./python-modules/pikepdf { }; - -# pilkit = callPackage ./python-modules/pilkit { }; - -# 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-heif = callPackage ./python-modules/pillow-heif { }; - -# 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; -# }; - -# pims = callPackage ./python-modules/pims { }; - -# pinboard = callPackage ./python-modules/pinboard { }; - -# pinocchio = toPythonModule (pkgs.pinocchio.override { -# pythonSupport = true; -# python3Packages = self; -# }); - -# pint = callPackage ./python-modules/pint { }; - -# pint-pandas = callPackage ./python-modules/pint-pandas { }; - -# pip = callPackage ./python-modules/pip { }; - -# pipdate = callPackage ./python-modules/pipdate { }; - -# pipdeptree = callPackage ./python-modules/pipdeptree { }; - -# pipe = callPackage ./python-modules/pipe { }; - -# 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; -# }; - -# pip-api = callPackage ./python-modules/pip-api { }; - -# pip-tools = callPackage ./python-modules/pip-tools { }; - -# pip-requirements-parser = callPackage ./python-modules/pip-requirements-parser { }; - -# pip-system-certs = callPackage ./python-modules/pip-system-certs { }; - -# pipx = callPackage ./python-modules/pipx { }; - -# pivy = callPackage ./python-modules/pivy { -# inherit (pkgs.qt5) qtbase qmake; -# inherit (pkgs.libsForQt5) soqt; -# }; - -# pixelmatch = callPackage ./python-modules/pixelmatch { }; - -# pixel-font-builder = callPackage ./python-modules/pixel-font-builder { }; - -# pixel-ring = callPackage ./python-modules/pixel-ring { }; - -# pjsua2 = (toPythonModule (pkgs.pjsip.override { -# pythonSupport = true; -# python3 = self.python; -# })).py; - -# pkce = callPackage ./python-modules/pkce { }; - -# pkgconfig = callPackage ./python-modules/pkgconfig { }; - -# pkginfo = callPackage ./python-modules/pkginfo { }; - -# pkginfo2 = callPackage ./python-modules/pkginfo2 { }; - -# pkuseg = callPackage ./python-modules/pkuseg { }; - -# playwright = callPackage ./python-modules/playwright { }; - -# playwright-stealth = callPackage ./python-modules/playwright-stealth { }; - -# playwrightcapture = callPackage ./python-modules/playwrightcapture { }; - -# pmsensor = callPackage ./python-modules/pmsensor { }; - -# ppdeep = callPackage ./python-modules/ppdeep { }; - -# prodict = callPackage ./python-modules/prodict { }; - -# prometheus-pandas = callPackage ./python-modules/prometheus-pandas { }; - -# prophet = callPackage ./python-modules/prophet { }; - -# propka = callPackage ./python-modules/propka { }; - -# proxy-tools = callPackage ./python-modules/proxy-tools { }; - -# proxy-db = callPackage ./python-modules/proxy-db { }; - -# py-nextbusnext = callPackage ./python-modules/py-nextbusnext { }; - -# py65 = callPackage ./python-modules/py65 { }; - -# pyaehw4a1 = callPackage ./python-modules/pyaehw4a1 { }; - -# pyatag = callPackage ./python-modules/pyatag { }; - -# pyatem = callPackage ./python-modules/pyatem { }; - -# pyatome = callPackage ./python-modules/pyatome { }; - -# pycketcasts = callPackage ./python-modules/pycketcasts { }; - -# pycomposefile = callPackage ./python-modules/pycomposefile { }; -# pycontrol4 = callPackage ./python-modules/pycontrol4 { }; - -# pycookiecheat = callPackage ./python-modules/pycookiecheat { }; - -# pycoolmasternet-async = callPackage ./python-modules/pycoolmasternet-async { }; - -# pycrdt = callPackage ./python-modules/pycrdt { }; - -# pycrdt-websocket = callPackage ./python-modules/pycrdt-websocket { }; - -# pyfibaro = callPackage ./python-modules/pyfibaro { }; - -# pyfireservicerota = callPackage ./python-modules/pyfireservicerota { }; - -# pyflexit = callPackage ./python-modules/pyflexit { }; - -# pyflick = callPackage ./python-modules/pyflick { }; - -# pyfluidsynth = callPackage ./python-modules/pyfluidsynth { }; - -# pyformlang = callPackage ./python-modules/pyformlang { }; - -# pyfreedompro = callPackage ./python-modules/pyfreedompro { }; - -# pygments-style-github = callPackage ./python-modules/pygments-style-github { }; - -# pygnmi = callPackage ./python-modules/pygnmi { }; - -# pygount = callPackage ./python-modules/pygount { }; - -# pygti = callPackage ./python-modules/pygti { }; - -# pyheck = callPackage ./python-modules/pyheck { }; - -# pyheos = callPackage ./python-modules/pyheos { }; - -# pyhepmc = callPackage ./python-modules/pyhepmc { }; - -# pyhiveapi = callPackage ./python-modules/pyhiveapi { }; - -# pyhumps = callPackage ./python-modules/pyhumps { }; - -# pyindego = callPackage ./python-modules/pyindego { }; - -# pyinstaller-versionfile = callPackage ./python-modules/pyinstaller-versionfile { }; - -# pyisemail = callPackage ./python-modules/pyisemail { }; - -# pyisy = callPackage ./python-modules/pyisy { }; - -# pyixapi = callPackage ./python-modules/pyixapi { }; - -# pykrakenapi = callPackage ./python-modules/pykrakenapi { }; - -# pylddwrap = callPackage ./python-modules/pylddwrap { }; - -# pyngo = callPackage ./python-modules/pyngo { }; - -# pyngrok = callPackage ./python-modules/pyngrok { }; - -# pynitrokey = callPackage ./python-modules/pynitrokey { }; - -# pynndescent = callPackage ./python-modules/pynndescent { }; - -# pynobo = callPackage ./python-modules/pynobo { }; - -# pynose = callPackage ./python-modules/pynose { }; - -# pynotifier = callPackage ./python-modules/pynotifier { }; - -# pynuki = callPackage ./python-modules/pynuki { }; - -# pynut2 = callPackage ./python-modules/pynut2 { }; - -# pynws = callPackage ./python-modules/pynws { }; - -# pynx584 = callPackage ./python-modules/pynx584 { }; - -# pyorthanc = callPackage ./python-modules/pyorthanc { }; - -# pyoutbreaksnearme = callPackage ./python-modules/pyoutbreaksnearme { }; - -# pyoverkiz = callPackage ./python-modules/pyoverkiz { }; - -# pyownet = callPackage ./python-modules/pyownet { }; - -# pypoint = callPackage ./python-modules/pypoint { }; - -# pypoolstation = callPackage ./python-modules/pypoolstation { }; - -# pyrdfa3 = callPackage ./python-modules/pyrdfa3 { }; - -# pyre-extensions = callPackage ./python-modules/pyre-extensions { }; - -# pyrender = callPackage ./python-modules/pyrender { }; - -# pyrevolve = callPackage ./python-modules/pyrevolve { }; - -# pyrfxtrx = callPackage ./python-modules/pyrfxtrx { }; - -# pyrogram = callPackage ./python-modules/pyrogram { }; - -# pysabnzbd = callPackage ./python-modules/pysabnzbd { }; - -# pysbd = callPackage ./python-modules/pysbd { }; - -# pysequoia = callPackage ./python-modules/pysequoia { }; - -# pyschemes = callPackage ./python-modules/pyschemes { }; - -# pyschlage = callPackage ./python-modules/pyschlage { }; - -# pyshark = callPackage ./python-modules/pyshark { }; - -# pysiaalarm = callPackage ./python-modules/pysiaalarm { }; - -# pysilero-vad = callPackage ./python-modules/pysilero-vad { }; - -# pysimplesoap = callPackage ./python-modules/pysimplesoap { }; - -# pyskyqhub = callPackage ./python-modules/pyskyqhub { }; - -# pyskyqremote = callPackage ./python-modules/pyskyqremote { }; - -# pysolcast = callPackage ./python-modules/pysolcast { }; - -# pysubs2 = callPackage ./python-modules/pysubs2 { }; - -# pysuez = callPackage ./python-modules/pysuez { }; - -# pysqlitecipher = callPackage ./python-modules/pysqlitecipher { }; - -# pysyncthru = callPackage ./python-modules/pysyncthru { }; - -# pytest-mockito = callPackage ./python-modules/pytest-mockito { }; - -# pytest-pudb = callPackage ./python-modules/pytest-pudb { }; - -# pytlv = callPackage ./python-modules/pytlv { }; - -# python-codon-tables = callPackage ./python-modules/python-codon-tables { }; - -# python-creole = callPackage ./python-modules/python-creole { }; - -# python-crfsuite = callPackage ./python-modules/python-crfsuite { }; - -# python-csxcad = callPackage ./python-modules/python-csxcad { }; - -# python-djvulibre = callPackage ./python-modules/python-djvulibre { }; - -# python-ecobee-api = callPackage ./python-modules/python-ecobee-api { }; - -# python-flirt = callPackage ./python-modules/python-flirt { }; - -# python-fullykiosk = callPackage ./python-modules/python-fullykiosk { }; - -# python-fx = callPackage ./python-modules/python-fx { }; - -# python-glanceclient = callPackage ./python-modules/python-glanceclient { }; - -# python-google-nest = callPackage ./python-modules/python-google-nest { }; - -# python-heatclient = callPackage ./python-modules/python-heatclient { }; - -# python-hl7 = callPackage ./python-modules/python-hl7 { }; - -# python-ipmi = callPackage ./python-modules/python-ipmi { }; - -# python-ipware = callPackage ./python-modules/python-ipware { }; - -# python-ironicclient = callPackage ./python-modules/python-ironicclient { }; - -# python-izone = callPackage ./python-modules/python-izone { }; - -# python-juicenet = callPackage ./python-modules/python-juicenet { }; - -# python-kasa = callPackage ./python-modules/python-kasa { }; - -# python-keycloak = callPackage ./python-modules/python-keycloak { }; - -# python-keystoneclient = callPackage ./python-modules/python-keystoneclient { }; - -# python-lsp-black = callPackage ./python-modules/python-lsp-black { }; - -# python-mbedtls = callPackage ./python-modules/python-mbedtls { }; - -# python-memcached = callPackage ./python-modules/python-memcached { -# inherit (pkgs) memcached; -# }; - -# python-motionmount = callPackage ./python-modules/python-motionmount { }; - -# python-otbr-api = callPackage ./python-modules/python-otbr-api { }; - -# python-openems = callPackage ./python-modules/python-openems { }; - -# python-opensky = callPackage ./python-modules/python-opensky { }; - -# python-owasp-zap-v2-4 = callPackage ./python-modules/python-owasp-zap-v2-4 { }; - -# python-pptx = callPackage ./python-modules/python-pptx { }; - -# python-songpal = callPackage ./python-modules/python-songpal { }; - -# python-swiftclient = callPackage ./python-modules/python-swiftclient { }; - -# python-tado = callPackage ./python-modules/python-tado { }; - -# python-idzip = callPackage ./python-modules/python-idzip { }; - -# pythonfinder = callPackage ./python-modules/pythonfinder { }; - -# pytomorrowio = callPackage ./python-modules/pytomorrowio { }; - -# pyuca = callPackage ./python-modules/pyuca { }; - -# pyunpack = callPackage ./python-modules/pyunpack { }; - -# pyutil = callPackage ./python-modules/pyutil { }; - -# pyzbar = callPackage ./python-modules/pyzbar { }; - -# pyzipper = callPackage ./python-modules/pyzipper { }; - -# pkutils = callPackage ./python-modules/pkutils { }; - -# plac = callPackage ./python-modules/plac { }; - -# plaid-python = callPackage ./python-modules/plaid-python { }; - -# plantuml = callPackage ./python-modules/plantuml { }; - -# plantuml-markdown = callPackage ./python-modules/plantuml-markdown { -# inherit (pkgs) plantuml; -# }; - -# plaster = callPackage ./python-modules/plaster { }; - -# plaster-pastedeploy = callPackage ./python-modules/plaster-pastedeploy { }; - -# platformdirs = callPackage ./python-modules/platformdirs { }; - -# playsound = callPackage ./python-modules/playsound { }; - -# plexapi = callPackage ./python-modules/plexapi { }; - -# plexauth = callPackage ./python-modules/plexauth { }; - -# plexwebsocket = callPackage ./python-modules/plexwebsocket { }; - -# plfit = toPythonModule (pkgs.plfit.override { -# inherit (self) python; -# }); - -# plone-testing = callPackage ./python-modules/plone-testing { }; - -# plotext = callPackage ./python-modules/plotext { }; - -# plotly = callPackage ./python-modules/plotly { }; - -# plotnine = callPackage ./python-modules/plotnine { }; - - pluggy = callPackage ./python-modules/pluggy { }; - -# plugincode = callPackage ./python-modules/plugincode { }; - -# pluginbase = callPackage ./python-modules/pluginbase { }; - -# plugnplay = callPackage ./python-modules/plugnplay { }; - -# plugwise = callPackage ./python-modules/plugwise { }; - -# plum-py = callPackage ./python-modules/plum-py { }; - -# plumbum = callPackage ./python-modules/plumbum { }; - -# pluthon = callPackage ./python-modules/pluthon { }; - -# plux = callPackage ./python-modules/plux { }; - -# ply = callPackage ./python-modules/ply { }; - -# plyer = callPackage ./python-modules/plyer { }; - -# plyfile = callPackage ./python-modules/plyfile { }; - -# plyplus = callPackage ./python-modules/plyplus { }; - -# plyvel = callPackage ./python-modules/plyvel { }; - -# pmw = callPackage ./python-modules/pmw { }; - -# pmdarima = callPackage ./python-modules/pmdarima { }; - -# pmdsky-debug-py = callPackage ./python-modules/pmdsky-debug-py { }; - -# pnglatex = callPackage ./python-modules/pnglatex { }; - -# pocket = callPackage ./python-modules/pocket { }; - -# podcastparser = callPackage ./python-modules/podcastparser { }; - -# podcats = callPackage ./python-modules/podcats { }; - -# podman = callPackage ./python-modules/podman { }; - -# poetry-core = callPackage ./python-modules/poetry-core { }; - -# poetry-dynamic-versioning = callPackage ./python-modules/poetry-dynamic-versioning { }; - -# poetry-semver = callPackage ./python-modules/poetry-semver { }; - -# polars = callPackage ./python-modules/polars { }; - -# polarizationsolver = callPackage ./python-modules/polarizationsolver { }; - -# polling = callPackage ./python-modules/polling { }; - -# polib = callPackage ./python-modules/polib { }; - -# policy-sentry = callPackage ./python-modules/policy-sentry { }; - -# policyuniverse = callPackage ./python-modules/policyuniverse { }; - -# polyline = callPackage ./python-modules/polyline { }; - -# polygon3 = callPackage ./python-modules/polygon3 { }; - -# polyswarm-api = callPackage ./python-modules/polyswarm-api { }; - -# pomegranate = callPackage ./python-modules/pomegranate { }; - -# pontos = callPackage ./python-modules/pontos { }; - -# pony = callPackage ./python-modules/pony { }; - -# ponywhoosh = callPackage ./python-modules/ponywhoosh { }; - -# pooch = callPackage ./python-modules/pooch { }; - -# pook = callPackage ./python-modules/pook { }; - -# poolsense = callPackage ./python-modules/poolsense { }; - -# poppler-qt5 = callPackage ./python-modules/poppler-qt5 { -# inherit (pkgs.qt5) qtbase qmake; -# inherit (pkgs.libsForQt5) poppler; -# }; - -# portalocker = callPackage ./python-modules/portalocker { }; - -# portend = callPackage ./python-modules/portend { }; - -# port-for = callPackage ./python-modules/port-for { }; - -# portpicker = callPackage ./python-modules/portpicker { }; - -# posix-ipc = callPackage ./python-modules/posix-ipc { }; - -# posthog = callPackage ./python-modules/posthog { }; - -# pot = callPackage ./python-modules/pot { }; - -# potentials = callPackage ./python-modules/potentials { }; - -# potr = callPackage ./python-modules/potr { }; - -# power = callPackage ./python-modules/power { }; - -# powerline = callPackage ./python-modules/powerline { }; - -# powerline-mem-segment = callPackage ./python-modules/powerline-mem-segment { }; - -# pox = callPackage ./python-modules/pox { }; - -# poyo = callPackage ./python-modules/poyo { }; - -# ppft = callPackage ./python-modules/ppft { }; - -# pplpy = callPackage ./python-modules/pplpy { }; - -# pprintpp = callPackage ./python-modules/pprintpp { }; - -# pproxy = callPackage ./python-modules/pproxy { }; - -# ppscore = callPackage ./python-modules/ppscore { }; - -# pq = callPackage ./python-modules/pq { }; - -# prance = callPackage ./python-modules/prance { }; - -# prawcore = callPackage ./python-modules/prawcore { }; - -# praw = callPackage ./python-modules/praw { }; - -# prayer-times-calculator = callPackage ./python-modules/prayer-times-calculator { }; - -# precis-i18n = callPackage ./python-modules/precis-i18n { }; - -# prefixed = callPackage ./python-modules/prefixed { }; - -# pre-commit-hooks = callPackage ./python-modules/pre-commit-hooks { }; - -# preggy = callPackage ./python-modules/preggy { }; - -# premailer = callPackage ./python-modules/premailer { }; - -# preprocess-cancellation = callPackage ./python-modules/preprocess-cancellation { }; - -# preshed = callPackage ./python-modules/preshed { }; - - pretend = callPackage ./python-modules/pretend { }; - -# prettytable = callPackage ./python-modules/prettytable { }; - -# primecountpy = callPackage ./python-modules/primecountpy { }; - -# primepy = callPackage ./python-modules/primepy { }; - -# primer3 = callPackage ./python-modules/primer3 { }; - -# priority = callPackage ./python-modules/priority { }; - -# prisma = callPackage ./python-modules/prisma { }; - -# prison = callPackage ./python-modules/prison { }; - -# proboscis = callPackage ./python-modules/proboscis { }; - -# process-tests = callPackage ./python-modules/process-tests { }; - -# procmon-parser = callPackage ./python-modules/procmon-parser { }; - -# proglog = callPackage ./python-modules/proglog { }; - -# progressbar2 = callPackage ./python-modules/progressbar2 { }; - -# progressbar33 = callPackage ./python-modules/progressbar33 { }; - -# progressbar = callPackage ./python-modules/progressbar { }; - -# progress = callPackage ./python-modules/progress { }; - -# prometheus-api-client = callPackage ./python-modules/prometheus-api-client { }; - -# prometheus-client = callPackage ./python-modules/prometheus-client { }; - -# prometheus-flask-exporter = callPackage ./python-modules/prometheus-flask-exporter { }; - -# prometrix = callPackage ./python-modules/prometrix { }; - -# promise = callPackage ./python-modules/promise { }; - -# prompt-toolkit = callPackage ./python-modules/prompt-toolkit { }; - -# prompthub-py = callPackage ./python-modules/prompthub-py { }; - -# property-manager = callPackage ./python-modules/property-manager { }; - -# protego = callPackage ./python-modules/protego { }; - -# 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 3.x -# protobuf3 = callPackage ./python-modules/protobuf/3.nix { -# protobuf = pkgs.protobuf3_20; -# }; - -# protobuf3-to-dict = callPackage ./python-modules/protobuf3-to-dict { }; - -# proton-client = callPackage ./python-modules/proton-client { }; - -# proton-core = callPackage ./python-modules/proton-core { }; - -# proton-keyring-linux = callPackage ./python-modules/proton-keyring-linux { }; - -# proton-keyring-linux-secretservice = callPackage ./python-modules/proton-keyring-linux-secretservice { }; - -# proton-vpn-api-core = callPackage ./python-modules/proton-vpn-api-core { }; - -# proton-vpn-connection = callPackage ./python-modules/proton-vpn-connection { }; - -# proton-vpn-killswitch = callPackage ./python-modules/proton-vpn-killswitch { }; - -# proton-vpn-killswitch-network-manager = callPackage ./python-modules/proton-vpn-killswitch-network-manager { }; - -# proton-vpn-logger = callPackage ./python-modules/proton-vpn-logger { }; - -# 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-session = callPackage ./python-modules/proton-vpn-session { }; - -# protonup-ng = callPackage ./python-modules/protonup-ng { }; - -# protonvpn-nm-lib = callPackage ./python-modules/protonvpn-nm-lib { -# pkgs-systemd = pkgs.systemd; -# }; - -# prov = callPackage ./python-modules/prov { }; - -# prox-tv = callPackage ./python-modules/prox-tv { }; - -# proxmoxer = callPackage ./python-modules/proxmoxer { }; - -# proxy-py = callPackage ./python-modules/proxy-py { }; - -# psautohint = callPackage ./python-modules/psautohint { }; - -# pscript = callPackage ./python-modules/pscript { }; - -# 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 { }; - -# psychrolib = callPackage ./python-modules/psychrolib { }; - -# psycopg = callPackage ./python-modules/psycopg { }; - -# psycopg2 = callPackage ./python-modules/psycopg2 { }; - -# psycopg2cffi = callPackage ./python-modules/psycopg2cffi { }; - -# psygnal = callPackage ./python-modules/psygnal { }; - -# ptable = callPackage ./python-modules/ptable { }; - -# ptest = callPackage ./python-modules/ptest { }; - -# ptpython = callPackage ./python-modules/ptpython { }; - -# ptyprocess = callPackage ./python-modules/ptyprocess { }; - -# publicsuffix2 = callPackage ./python-modules/publicsuffix2 { }; - -# publicsuffix = callPackage ./python-modules/publicsuffix { }; - -# publicsuffixlist = callPackage ./python-modules/publicsuffixlist { }; - -# pubnub = callPackage ./python-modules/pubnub { }; - -# pubnubsub-handler = callPackage ./python-modules/pubnubsub-handler { }; - -# pudb = callPackage ./python-modules/pudb { }; - -# pulp = callPackage ./python-modules/pulp { }; - -# pulsar-client = callPackage ./python-modules/pulsar-client { }; - -# pulsectl-asyncio = callPackage ./python-modules/pulsectl-asyncio { }; - -# pulsar = callPackage ./python-modules/pulsar { }; - -# pulsectl = callPackage ./python-modules/pulsectl { }; - -# pure-cdb = callPackage ./python-modules/pure-cdb { }; - -# pure-eval = callPackage ./python-modules/pure-eval { }; - -# pure-pcapy3 = callPackage ./python-modules/pure-pcapy3 { }; - -# purepng = callPackage ./python-modules/purepng { }; - -# pure-protobuf = callPackage ./python-modules/pure-protobuf { }; - -# pure-python-adb = callPackage ./python-modules/pure-python-adb { }; - -# pure-python-adb-homeassistant = callPackage ./python-modules/pure-python-adb-homeassistant { }; - -# puremagic = callPackage ./python-modules/puremagic { }; - -# purl = callPackage ./python-modules/purl { }; - -# push-receiver = callPackage ./python-modules/push-receiver { }; - -# pushbullet-py = callPackage ./python-modules/pushbullet-py { }; - -# pushover-complete = callPackage ./python-modules/pushover-complete { }; - -# pvextractor = callPackage ./python-modules/pvextractor { }; - -# pvlib = callPackage ./python-modules/pvlib { }; - -# pvo = callPackage ./python-modules/pvo { }; - -# pweave = callPackage ./python-modules/pweave { }; - -# pwlf = callPackage ./python-modules/pwlf { }; - -# pwndbg = callPackage ./python-modules/pwndbg { }; - -# pwntools = callPackage ./python-modules/pwntools { -# debugger = pkgs.gdb; -# }; - -# pxml = callPackage ./python-modules/pxml { }; - -# py-air-control = callPackage ./python-modules/py-air-control { }; - -# py-air-control-exporter = callPackage ./python-modules/py-air-control-exporter { }; - -# py-bip39-bindings = callPackage ./python-modules/py-bip39-bindings { }; - -# py-dmidecode = callPackage ./python-modules/py-dmidecode { }; - -# py-dormakaba-dkey = callPackage ./python-modules/py-dormakaba-dkey { }; - -# py-nightscout = callPackage ./python-modules/py-nightscout { }; - -# py-partiql-parser = callPackage ./python-modules/py-partiql-parser { }; - -# py-pdf-parser = callPackage ./python-modules/py-pdf-parser { }; - -# py-serializable = callPackage ./python-modules/py-serializable { }; - -# py-synologydsm-api = callPackage ./python-modules/py-synologydsm-api { }; - -# py-sneakers = callPackage ./python-modules/py-sneakers { }; - -# py-sr25519-bindings = callPackage ./python-modules/py-sr25519-bindings { }; - -# py-tes = callPackage ./python-modules/py-tes { }; - -# py-ubjson = callPackage ./python-modules/py-ubjson { }; - -# py-zabbix = callPackage ./python-modules/py-zabbix { }; - -# py17track = callPackage ./python-modules/py17track { }; - -# py2bit = callPackage ./python-modules/py2bit { }; - -# py3buddy = toPythonModule (callPackage ./python-modules/py3buddy { }); - -# py3exiv2 = callPackage ./python-modules/py3exiv2 { }; - -# py3langid = callPackage ./python-modules/py3langid { }; - -# py3nvml = callPackage ./python-modules/py3nvml { }; - -# py3rijndael = callPackage ./python-modules/py3rijndael { }; - -# py3status = callPackage ./python-modules/py3status { }; - -# py3to2 = callPackage ./python-modules/3to2 { }; - -# py4j = callPackage ./python-modules/py4j { }; - -# pyacaia-async = callPackage ./python-modules/pyacaia-async { }; - -# pyacoustid = callPackage ./python-modules/pyacoustid { }; - -# pyads = callPackage ./python-modules/pyads { }; - -# pyaes = callPackage ./python-modules/pyaes { }; - -# pyaftership = callPackage ./python-modules/pyaftership { }; - -# pyahocorasick = callPackage ./python-modules/pyahocorasick { }; - -# pyairnow = callPackage ./python-modules/pyairnow { }; - -# pyairvisual = callPackage ./python-modules/pyairvisual { }; - -# pyalgotrade = callPackage ./python-modules/pyalgotrade { }; - -# pyamg = callPackage ./python-modules/pyamg { }; - -# pyaml = callPackage ./python-modules/pyaml { }; - -# pyannotate = callPackage ./python-modules/pyannotate { }; - -# pyannote-audio = callPackage ./python-modules/pyannote-audio { }; - -# pyannote-pipeline = callPackage ./python-modules/pyannote-pipeline { }; - -# pyannote-metrics = callPackage ./python-modules/pyannote-metrics { }; - -# pyannote-database = callPackage ./python-modules/pyannote-database { }; - -# pyannote-core = callPackage ./python-modules/pyannote-core { }; - -# pyarlo = callPackage ./python-modules/pyarlo { }; - -# pyarr = callPackage ./python-modules/pyarr { }; - -# pyarrow = callPackage ./python-modules/pyarrow { -# inherit (pkgs) arrow-cpp cmake; -# }; - -# pyarrow-hotfix = callPackage ./python-modules/pyarrow-hotfix { }; - -# pyasn = callPackage ./python-modules/pyasn { }; - -# pyasn1 = callPackage ./python-modules/pyasn1 { }; - -# pyasn1-modules = callPackage ./python-modules/pyasn1-modules { }; - -# pyasuswrt = callPackage ./python-modules/pyasuswrt { }; - -# pyasyncore = callPackage ./python-modules/pyasyncore { }; - -# pyathena = callPackage ./python-modules/pyathena { }; - -# pyatmo = callPackage ./python-modules/pyatmo { }; - -# pyatspi = callPackage ./python-modules/pyatspi { }; - -# pyatv = callPackage ./python-modules/pyatv { }; - -# pyaudio = callPackage ./python-modules/pyaudio { }; - -# pyaussiebb = callPackage ./python-modules/pyaussiebb { }; - -# pyautogui = callPackage ./python-modules/pyautogui { }; - -# pyavm = callPackage ./python-modules/pyavm { }; - -# pyaxmlparser = callPackage ./python-modules/pyaxmlparser { }; - -# pybalboa = callPackage ./python-modules/pybalboa { }; - -# pybase64 = callPackage ./python-modules/pybase64 { }; - -# pybids = callPackage ./python-modules/pybids { }; - -# pybigwig = callPackage ./python-modules/pybigwig { }; - -# pybind11 = callPackage ./python-modules/pybind11 { }; - -# pybindgen = callPackage ./python-modules/pybindgen { }; - -# pyblackbird = callPackage ./python-modules/pyblackbird { }; - -# pybloom-live = callPackage ./python-modules/pybloom-live { }; - -# pybluez = callPackage ./python-modules/pybluez { -# inherit (pkgs) bluez; -# }; - -# pybotvac = callPackage ./python-modules/pybotvac { }; - -# pybox2d = callPackage ./python-modules/pybox2d { }; - -# pybravia = callPackage ./python-modules/pybravia { }; - -# pybrowsers = callPackage ./python-modules/pybrowsers { }; - -# pybrowserid = callPackage ./python-modules/pybrowserid { }; - -# pybtex = callPackage ./python-modules/pybtex { }; - -# pybtex-docutils = callPackage ./python-modules/pybtex-docutils { }; - -# pybullet = callPackage ./python-modules/pybullet { }; - -# pycairo = callPackage ./python-modules/pycairo { -# inherit (pkgs.buildPackages) meson; -# }; - -# py = callPackage ./python-modules/py { }; - -# pycangjie = callPackage ./python-modules/pycangjie { }; - -# pycapnp = callPackage ./python-modules/pycapnp { }; - -# pycaption = callPackage ./python-modules/pycaption { }; - -# pycares = callPackage ./python-modules/pycares { }; - -# pycarwings2 = callPackage ./python-modules/pycarwings2 { }; - -# pycatch22 = callPackage ./python-modules/pycatch22 { }; - -# pycategories = callPackage ./python-modules/pycategories { }; - -# pycddl = callPackage ./python-modules/pycddl { }; - -# pycdio = callPackage ./python-modules/pycdio { }; - -# pycec = callPackage ./python-modules/pycec { }; - -# pycep-parser = callPackage ./python-modules/pycep-parser { }; - -# pycfdns = callPackage ./python-modules/pycfdns { }; - -# pycflow2dot = callPackage ./python-modules/pycflow2dot { -# inherit (pkgs) graphviz; -# }; - -# pycfmodel = callPackage ./python-modules/pycfmodel { }; - -# pychannels = callPackage ./python-modules/pychannels { }; - -# pychart = callPackage ./python-modules/pychart { }; - -# pychm = callPackage ./python-modules/pychm { }; - -# pychromecast = callPackage ./python-modules/pychromecast { }; - -# pyclimacell = callPackage ./python-modules/pyclimacell { }; - -# pyclip = callPackage ./python-modules/pyclip { }; - -# pyclipper = callPackage ./python-modules/pyclipper { }; - -# pycm = callPackage ./python-modules/pycm { }; - -# pycmarkgfm = callPackage ./python-modules/pycmarkgfm { }; - -# pycocotools = callPackage ./python-modules/pycocotools { }; - -# pycodestyle = callPackage ./python-modules/pycodestyle { }; - -# pycognito = callPackage ./python-modules/pycognito { }; - -# pycoin = callPackage ./python-modules/pycoin { }; - -# pycollada = callPackage ./python-modules/pycollada { }; - -# pycomfoconnect = callPackage ./python-modules/pycomfoconnect { }; - -# pycontracts = callPackage ./python-modules/pycontracts { }; - -# pycosat = callPackage ./python-modules/pycosat { }; - -# pycotap = callPackage ./python-modules/pycotap { }; - -# pycountry = callPackage ./python-modules/pycountry { }; - - pycparser = callPackage ./python-modules/pycparser { }; - -# py-canary = callPackage ./python-modules/py-canary { }; - -# py-cid = callPackage ./python-modules/py-cid { }; - -# py-cpuinfo = callPackage ./python-modules/py-cpuinfo { }; - -# pycardano = callPackage ./python-modules/pycardano { }; - -# pycrc = callPackage ./python-modules/pycrc { }; - -# pycritty = callPackage ./python-modules/pycritty { }; - -# pycron = callPackage ./python-modules/pycron { }; - -# pycrypto = callPackage ./python-modules/pycrypto { }; - -# pycryptodome = callPackage ./python-modules/pycryptodome { }; - -# pycryptodomex = callPackage ./python-modules/pycryptodomex { }; - -# pycsdr = callPackage ./python-modules/pycsdr { }; - -# pyct = callPackage ./python-modules/pyct { }; - -# pyctr = callPackage ./python-modules/pyctr { }; - -# pycuda = callPackage ./python-modules/pycuda { -# inherit (pkgs.stdenv) mkDerivation; -# }; - -# pycups = callPackage ./python-modules/pycups { }; - -# pycurl = callPackage ./python-modules/pycurl { }; - -# pycxx = callPackage ./python-modules/pycxx { }; - -# pycyphal = callPackage ./python-modules/pycyphal { }; - -# pydaikin = callPackage ./python-modules/pydaikin { }; - -# pydal = callPackage ./python-modules/pydal { }; - -# pydanfossair = callPackage ./python-modules/pydanfossair { }; - -# pydantic = callPackage ./python-modules/pydantic { }; - -# pydantic_1 = callPackage ./python-modules/pydantic/1.nix { }; - -# pydantic-compat = callPackage ./python-modules/pydantic-compat { }; - -# pydantic-core = callPackage ./python-modules/pydantic-core { }; - -# pydantic-extra-types = callPackage ./python-modules/pydantic-extra-types { }; - -# pydantic-scim = callPackage ./python-modules/pydantic-scim { }; - -# pydantic-settings = callPackage ./python-modules/pydantic-settings { }; - -# pydantic-yaml-0 = callPackage ./python-modules/pydantic-yaml-0 { }; - -# pydash = callPackage ./python-modules/pydash { }; - -# pydata-google-auth = callPackage ./python-modules/pydata-google-auth { }; - -# pydata-sphinx-theme = callPackage ./python-modules/pydata-sphinx-theme { }; - -# pydateinfer = callPackage ./python-modules/pydateinfer { }; - -# pydbus = callPackage ./python-modules/pydbus { }; - -# pydeck = callPackage ./python-modules/pydeck { }; - -# pydeconz = callPackage ./python-modules/pydeconz { }; - -# pydelijn = callPackage ./python-modules/pydelijn { }; - -# pydenticon = callPackage ./python-modules/pydenticon { }; - -# pydeps = callPackage ./python-modules/pydeps { -# inherit (pkgs) graphviz; -# }; - -# pydes = callPackage ./python-modules/pydes { }; - -# py-desmume = callPackage ./python-modules/py-desmume { -# inherit (pkgs) libpcap; # Avoid confusion with python package of the same name -# }; - -# pydevccu = callPackage ./python-modules/pydevccu { }; - -# pydevd = callPackage ./python-modules/pydevd { }; - -# pydevtool = callPackage ./python-modules/pydevtool { }; - -# pydexcom = callPackage ./python-modules/pydexcom { }; - -# pydicom = callPackage ./python-modules/pydicom { }; - -# pydicom-seg = callPackage ./python-modules/pydicom-seg { }; - -# pydigiham = callPackage ./python-modules/pydigiham { }; - -# pydiscourse = callPackage ./python-modules/pydiscourse { }; - -# pydiscovergy = callPackage ./python-modules/pydiscovergy { }; - -# pydispatcher = callPackage ./python-modules/pydispatcher { }; - -# pydmd = callPackage ./python-modules/pydmd { }; - -# pydns = callPackage ./python-modules/py3dns { }; - -# pydocstyle = callPackage ./python-modules/pydocstyle { }; - -# pydocumentdb = callPackage ./python-modules/pydocumentdb { }; - -# pydoods = callPackage ./python-modules/pydoods { }; - -# pydoe = callPackage ./python-modules/pydoe { }; - -# pydot = callPackage ./python-modules/pydot { -# inherit (pkgs) graphviz; -# }; - -# pydrawise = callPackage ./python-modules/pydrawise { }; - -# pydrive2 = callPackage ./python-modules/pydrive2 { }; - -# pydroid-ipcam = callPackage ./python-modules/pydroid-ipcam { }; - -# pydruid = callPackage ./python-modules/pydruid { }; - -# pydsdl = callPackage ./python-modules/pydsdl { }; - -# pydub = callPackage ./python-modules/pydub { }; - -# pyduke-energy = callPackage ./python-modules/pyduke-energy { }; - -# pyduotecno = callPackage ./python-modules/pyduotecno { }; - -# pydy = callPackage ./python-modules/pydy { }; - -# pydyf = callPackage ./python-modules/pydyf { }; - -# pyebus = callPackage ./python-modules/pyebus { }; - -# pyechonest = callPackage ./python-modules/pyechonest { }; - -# pyeclib = callPackage ./python-modules/pyeclib { }; - -# pyecoforest = callPackage ./python-modules/pyecoforest { }; - -# pyeconet = callPackage ./python-modules/pyeconet { }; - -# pyecowitt = callPackage ./python-modules/pyecowitt { }; - -# pyedimax = callPackage ./python-modules/pyedimax { }; - -# pyee = callPackage ./python-modules/pyee { }; - -# pyefergy = callPackage ./python-modules/pyefergy { }; - -# pyeight = callPackage ./python-modules/pyeight { }; - - pyelftools = callPackage ./python-modules/pyelftools { }; - -# pyemby = callPackage ./python-modules/pyemby { }; - -# pyemd = callPackage ./python-modules/pyemd { }; - -# pyemvue = callPackage ./python-modules/pyemvue { }; - -# pyenchant = callPackage ./python-modules/pyenchant { -# inherit (pkgs) enchant2; -# }; - -# pyenphase = callPackage ./python-modules/pyenphase { }; - -# pyenvisalink = callPackage ./python-modules/pyenvisalink { }; - -# pyephember = callPackage ./python-modules/pyephember { }; - -# pyepsg = callPackage ./python-modules/pyepsg { }; - -# pyerfa = callPackage ./python-modules/pyerfa { }; - -# pyevmasm = callPackage ./python-modules/pyevmasm { }; - -# pyevilgenius = callPackage ./python-modules/pyevilgenius { }; - -# pyexcel = callPackage ./python-modules/pyexcel { }; - -# pyexcel-io = callPackage ./python-modules/pyexcel-io { }; - -# pyexcel-ods = callPackage ./python-modules/pyexcel-ods { }; - -# pyexcel-xls = callPackage ./python-modules/pyexcel-xls { }; - -# pyexiftool = callPackage ./python-modules/pyexiftool { }; - -# pyexploitdb = callPackage ./python-modules/pyexploitdb { }; - -# pyezviz = callPackage ./python-modules/pyezviz { }; - -# pyface = callPackage ./python-modules/pyface { }; - -# pyfaidx = callPackage ./python-modules/pyfaidx { }; - -# pyfakefs = callPackage ./python-modules/pyfakefs { }; - -# pyfakewebcam = callPackage ./python-modules/pyfakewebcam { }; - -# pyfantom = callPackage ./python-modules/pyfantom { }; - -# pyfcm = callPackage ./python-modules/pyfcm { }; - -# pyfftw = callPackage ./python-modules/pyfftw { }; - -# pyfido = callPackage ./python-modules/pyfido { }; - -# pyfiglet = callPackage ./python-modules/pyfiglet { }; - -# pyfnip = callPackage ./python-modules/pyfnip { }; - -# pyflakes = callPackage ./python-modules/pyflakes { }; - -# pyflic = callPackage ./python-modules/pyflic { }; - -# pyflume = callPackage ./python-modules/pyflume { }; - -# pyfma = callPackage ./python-modules/pyfma { }; - -# pyfribidi = callPackage ./python-modules/pyfribidi { }; - -# pyfritzhome = callPackage ./python-modules/pyfritzhome { }; - -# pyfronius = callPackage ./python-modules/pyfronius { }; - -# pyftdi = callPackage ./python-modules/pyftdi { }; - -# pyftgl = callPackage ./python-modules/pyftgl { }; - -# pyftpdlib = callPackage ./python-modules/pyftpdlib { }; - -# pyfttt = callPackage ./python-modules/pyfttt { }; - -# pyfume = callPackage ./python-modules/pyfume { }; - -# pyfuse3 = callPackage ./python-modules/pyfuse3 { }; - -# pyfxa = callPackage ./python-modules/pyfxa { }; - -# pyfzf = callPackage ./python-modules/pyfzf { -# inherit (pkgs) fzf; -# }; - -# 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-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-gui = callPackage ./python-modules/pygame-gui { }; - -# pygatt = callPackage ./python-modules/pygatt { }; - -# pygccxml = callPackage ./python-modules/pygccxml { }; - -# pygdbmi = callPackage ./python-modules/pygdbmi { }; - -# pygeoip = callPackage ./python-modules/pygeoip { }; - -# pygeos = callPackage ./python-modules/pygeos { }; - -# pygetwindow = callPackage ./python-modules/pygetwindow { }; - - pygit2 = callPackage ./python-modules/pygit2 { }; - -# pygitguardian = callPackage ./python-modules/pygitguardian { }; - -# pygithub = callPackage ./python-modules/pygithub { }; - -# pyglet = callPackage ./python-modules/pyglet { }; - -# pyglm = callPackage ./python-modules/pyglm { }; - -# pygls = callPackage ./python-modules/pygls { }; - -# pygltflib = callPackage ./python-modules/pygltflib { }; - -# pygmars = callPackage ./python-modules/pygmars { }; - -# pygments-better-html = callPackage ./python-modules/pygments-better-html { }; - - pygments = callPackage ./python-modules/pygments { }; - -# pygments-markdown-lexer = callPackage ./python-modules/pygments-markdown-lexer { }; - -# pygmo = callPackage ./python-modules/pygmo { }; - -# 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; -# }; - -# pygobject-stubs = callPackage ./python-modules/pygobject-stubs { }; - -# pygogo = callPackage ./python-modules/pygogo { }; - -# pygpgme = callPackage ./python-modules/pygpgme { }; - -# pygraphviz = callPackage ./python-modules/pygraphviz { -# inherit (pkgs) graphviz; -# }; - -# pygreat = callPackage ./python-modules/pygreat { }; - -# pygrok = callPackage ./python-modules/pygrok { }; - -# pygsl = callPackage ./python-modules/pygsl { -# inherit (pkgs) gsl swig; -# }; - -# pygtfs = callPackage ./python-modules/pygtfs { }; - -# pygtail = callPackage ./python-modules/pygtail { }; - -# pygtkspellcheck = callPackage ./python-modules/pygtkspellcheck { }; - -# pygtrie = callPackage ./python-modules/pygtrie { }; - -# pyhamcrest = callPackage ./python-modules/pyhamcrest { }; - -# pyhanko = callPackage ./python-modules/pyhanko { }; - -# pyhanko-certvalidator = callPackage ./python-modules/pyhanko-certvalidator { }; - -# pyhaversion = callPackage ./python-modules/pyhaversion { }; - -# pyhcl = callPackage ./python-modules/pyhcl { }; - -# pyhocon = callPackage ./python-modules/pyhocon { }; - -# pyhomematic = callPackage ./python-modules/pyhomematic { }; - -# pyhomepilot = callPackage ./python-modules/pyhomepilot { }; - -# pyhomeworks = callPackage ./python-modules/pyhomeworks { }; - -# pyheif = callPackage ./python-modules/pyheif { }; - -# pyi2cflash = callPackage ./python-modules/pyi2cflash { }; - -# pyialarm = callPackage ./python-modules/pyialarm { }; - -# pyicloud = callPackage ./python-modules/pyicloud { }; - -# pyicu = callPackage ./python-modules/pyicu { }; - -# pyimpfuzzy = callPackage ./python-modules/pyimpfuzzy { -# inherit (pkgs) ssdeep; -# }; - -# pyinotify = callPackage ./python-modules/pyinotify { }; - -# pyinputevent = callPackage ./python-modules/pyinputevent { }; - -# pyinsteon = callPackage ./python-modules/pyinsteon { }; - -# pyinstrument = callPackage ./python-modules/pyinstrument { }; - -# pyintesishome = callPackage ./python-modules/pyintesishome { }; - -# pyipma = callPackage ./python-modules/pyipma { }; - -# pyipp = callPackage ./python-modules/pyipp { }; - -# pyipv8 = callPackage ./python-modules/pyipv8 { }; - -# pyiqvia = callPackage ./python-modules/pyiqvia { }; - -# pyisbn = callPackage ./python-modules/pyisbn { }; - -# pyjet = callPackage ./python-modules/pyjet { }; - -# pyjks = callPackage ./python-modules/pyjks { }; - -# pyjnius = callPackage ./python-modules/pyjnius { }; - -# pyjsparser = callPackage ./python-modules/pyjsparser { }; - -# pyjwkest = callPackage ./python-modules/pyjwkest { }; - -# pyjwt = callPackage ./python-modules/pyjwt { }; - -# pykakasi = callPackage ./python-modules/pykakasi { }; - -# pykaleidescape = callPackage ./python-modules/pykaleidescape { }; - -# pykalman = callPackage ./python-modules/pykalman { }; - -# pykdl = callPackage ./python-modules/pykdl { }; - -# pykdtree = callPackage ./python-modules/pykdtree { -# inherit (pkgs.llvmPackages) openmp; -# }; - -# pykeepass = callPackage ./python-modules/pykeepass { }; - -# pykerberos = callPackage ./python-modules/pykerberos { }; - -# pykeyatome = callPackage ./python-modules/pykeyatome { }; - -# pykira = callPackage ./python-modules/pykira { }; - -# pykka = callPackage ./python-modules/pykka { }; - -# pykmtronic = callPackage ./python-modules/pykmtronic { }; - -# pykodi = callPackage ./python-modules/pykodi { }; - -# pykoplenti = callPackage ./python-modules/pykoplenti { }; - -# pykostalpiko = callPackage ./python-modules/pykostalpiko { }; - -# pykulersky = callPackage ./python-modules/pykulersky { }; - -# pykwalify = callPackage ./python-modules/pykwalify { }; - -# pykwb = callPackage ./python-modules/pykwb { }; - -# pylacrosse = callPackage ./python-modules/pylacrosse { }; - -# pylacus = callPackage ./python-modules/pylacus { }; - -# pylama = callPackage ./python-modules/pylama { }; - -# pylast = callPackage ./python-modules/pylast { }; - -# pylatex = callPackage ./python-modules/pylatex { }; - -# pylatexenc = callPackage ./python-modules/pylatexenc { }; - -# pylaunches = callPackage ./python-modules/pylaunches { }; - -# pyld = callPackage ./python-modules/pyld { }; - -# pyleri = callPackage ./python-modules/pyleri { }; - -# pylev = callPackage ./python-modules/pylev { }; - -# pylgnetcast = callPackage ./python-modules/pylgnetcast { }; - -# pylibacl = callPackage ./python-modules/pylibacl { }; - -# pylibconfig2 = callPackage ./python-modules/pylibconfig2 { }; - -# pylibdmtx = callPackage ./python-modules/pylibdmtx { }; - -# pylibftdi = callPackage ./python-modules/pylibftdi { -# inherit (pkgs) libusb1; -# }; - -# pylibjpeg = callPackage ./python-modules/pylibjpeg { }; - -# pylibjpeg-libjpeg = callPackage ./python-modules/pylibjpeg-libjpeg { }; - -# pyliblo = callPackage ./python-modules/pyliblo { }; - -# pylibmc = callPackage ./python-modules/pylibmc { }; - -# pylink-square = callPackage ./python-modules/pylink-square { }; - -# pylint = callPackage ./python-modules/pylint { }; - -# pylint-celery = callPackage ./python-modules/pylint-celery { }; - -# pylint-django = callPackage ./python-modules/pylint-django { }; - -# pylint-flask = callPackage ./python-modules/pylint-flask { }; - -# pylint-plugin-utils = callPackage ./python-modules/pylint-plugin-utils { }; - -# pylint-venv = callPackage ./python-modules/pylint-venv { }; - -# pylion = callPackage ./python-modules/pylion { }; - -# pylitterbot = callPackage ./python-modules/pylitterbot { }; - -# py-libzfs = callPackage ./python-modules/py-libzfs { }; - -# py-lru-cache = callPackage ./python-modules/py-lru-cache { }; - -# pylnk3 = callPackage ./python-modules/pylnk3 { }; - -# pylru = callPackage ./python-modules/pylru { }; - -# pylsqpack = callPackage ./python-modules/pylsqpack { }; - -# pyls-flake8 = callPackage ./python-modules/pyls-flake8 { }; - -# pyls-isort = callPackage ./python-modules/pyls-isort { }; - -# pyls-memestra = callPackage ./python-modules/pyls-memestra { }; - -# pyls-spyder = callPackage ./python-modules/pyls-spyder { }; - -# pylsp-mypy = callPackage ./python-modules/pylsp-mypy { }; - -# pylsp-rope = callPackage ./python-modules/pylsp-rope { }; - -# pylpsd = callPackage ./python-modules/pylpsd { }; - -# pylti = callPackage ./python-modules/pylti { }; - -# pylutron = callPackage ./python-modules/pylutron { }; - -# pylutron-caseta = callPackage ./python-modules/pylutron-caseta { }; - -# pylyrics = callPackage ./python-modules/pylyrics { }; - -# pylxd = callPackage ./python-modules/pylxd { }; - -# pylzma = callPackage ./python-modules/pylzma { }; - -# pymacaroons = callPackage ./python-modules/pymacaroons { }; - -# pymailgunner = callPackage ./python-modules/pymailgunner { }; - -# pymanopt = callPackage ./python-modules/pymanopt { }; - -# pymarshal = callPackage ./python-modules/pymarshal { }; - -# pymata-express = callPackage ./python-modules/pymata-express { }; - -# pymatgen = callPackage ./python-modules/pymatgen { }; - -# pymatreader = callPackage ./python-modules/pymatreader { }; - -# pymatting = callPackage ./python-modules/pymatting { }; - -# pymaven-patch = callPackage ./python-modules/pymaven-patch { }; - -# pymavlink = callPackage ./python-modules/pymavlink { }; - -# pymbolic = callPackage ./python-modules/pymbolic { }; - -# pymc = callPackage ./python-modules/pymc { }; - -# pymdstat = callPackage ./python-modules/pymdstat { }; - -# pymdown-extensions = callPackage ./python-modules/pymdown-extensions { }; - -# pymediainfo = callPackage ./python-modules/pymediainfo { }; - -# pymediaroom = callPackage ./python-modules/pymediaroom { }; - -# pymedio = callPackage ./python-modules/pymedio { }; - -# pymeeus = callPackage ./python-modules/pymeeus { }; - -# pymelcloud = callPackage ./python-modules/pymelcloud { }; - -# pymemcache = callPackage ./python-modules/pymemcache { }; - -# pymemoize = callPackage ./python-modules/pymemoize { }; - -# pyment = callPackage ./python-modules/pyment { }; - -# pymetar = callPackage ./python-modules/pymetar { }; - -# pymeteireann = callPackage ./python-modules/pymeteireann { }; - -# pymeteoclimatic = callPackage ./python-modules/pymeteoclimatic { }; - -# pymetno = callPackage ./python-modules/pymetno { }; - -# pymicrobot = callPackage ./python-modules/pymicrobot { }; - -# pymiele = callPackage ./python-modules/pymiele { }; - -# pymilter = callPackage ./python-modules/pymilter { }; - -# pymilvus = callPackage ./python-modules/pymilvus { }; - -# pymitv = callPackage ./python-modules/pymitv { }; - -# pymfy = callPackage ./python-modules/pymfy { }; - -# pymodbus = callPackage ./python-modules/pymodbus { }; - -# pymongo = callPackage ./python-modules/pymongo { }; - -# pymongo-inmemory = callPackage ./python-modules/pymongo-inmemory { }; - -# pymoo = callPackage ./python-modules/pymoo { }; - -# pymorphy2 = callPackage ./python-modules/pymorphy2 { }; - -# pymorphy2-dicts-ru = callPackage ./python-modules/pymorphy2/dicts-ru.nix { }; - -# pymorphy3 = callPackage ./python-modules/pymorphy3 { }; - -# pymorphy3-dicts-ru = callPackage ./python-modules/pymorphy3/dicts-ru.nix { }; - -# pymorphy3-dicts-uk = callPackage ./python-modules/pymorphy3/dicts-uk.nix { }; - -# pympler = callPackage ./python-modules/pympler { }; - -# pymsgbox = callPackage ./python-modules/pymsgbox { }; - -# pymsteams = callPackage ./python-modules/pymsteams { }; - -# py-multiaddr = callPackage ./python-modules/py-multiaddr { }; - -# py-multibase = callPackage ./python-modules/py-multibase { }; - -# py-multicodec = callPackage ./python-modules/py-multicodec { }; - -# py-multihash = callPackage ./python-modules/py-multihash { }; - -# pymumble = callPackage ./python-modules/pymumble { }; - -# pymunk = callPackage ./python-modules/pymunk { -# inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices; -# }; - -# pymupdf = callPackage ./python-modules/pymupdf { }; - -# pymvglive = callPackage ./python-modules/pymvglive { }; - -# pymysensors = callPackage ./python-modules/pymysensors { }; - -# pymysql = callPackage ./python-modules/pymysql { }; - -# pymysqlsa = callPackage ./python-modules/pymysqlsa { }; - -# pymystem3 = callPackage ./python-modules/pymystem3 { }; - -# pynac = callPackage ./python-modules/pynac { }; - -# pynacl = callPackage ./python-modules/pynacl { }; - -# pynamecheap = callPackage ./python-modules/pynamecheap { }; - -# pynamodb = callPackage ./python-modules/pynamodb { }; - -# pynanoleaf = callPackage ./python-modules/pynanoleaf { }; - -# pync = callPackage ./python-modules/pync { -# inherit (pkgs) which; -# }; - -# pynello = callPackage ./python-modules/pynello { }; - -# pynest2d = callPackage ./python-modules/pynest2d { }; - -# pynetbox = callPackage ./python-modules/pynetbox { }; - -# pynetdicom = callPackage ./python-modules/pynetdicom { }; - -# pynetgear = callPackage ./python-modules/pynetgear { }; - -# pynina = callPackage ./python-modules/pynina { }; - -# pynisher = callPackage ./python-modules/pynisher { }; - -# pynmea2 = callPackage ./python-modules/pynmea2 { }; - -# pynmeagps = callPackage ./python-modules/pynmeagps { }; - -# pynput = callPackage ./python-modules/pynput { }; - -# pynrrd = callPackage ./python-modules/pynrrd { }; - -# pynvim = callPackage ./python-modules/pynvim { }; - -# pynvim-pp = callPackage ./python-modules/pynvim-pp { }; - -# pynvml = callPackage ./python-modules/pynvml { }; - -# pynzb = callPackage ./python-modules/pynzb { }; - -# pyobihai = callPackage ./python-modules/pyobihai { }; - -# pyocd = callPackage ./python-modules/pyocd { }; - -# pyocd-pemicro = callPackage ./python-modules/pyocd-pemicro { }; - -# pyocr = callPackage ./python-modules/pyocr { -# tesseract = pkgs.tesseract4; -# }; - -# pyoctoprintapi = callPackage ./python-modules/pyoctoprintapi { }; - -# pyodbc = callPackage ./python-modules/pyodbc { }; - -# pyogg = callPackage ./python-modules/pyogg { }; - -# pyombi = callPackage ./python-modules/pyombi { }; - -# pyomo = callPackage ./python-modules/pyomo { }; - -# pypng = callPackage ./python-modules/pypng { }; - -# phonemizer = callPackage ./python-modules/phonemizer { }; - -# pyopencl = callPackage ./python-modules/pyopencl { -# mesa_drivers = pkgs.mesa.drivers; -# }; - -# pyopengl = callPackage ./python-modules/pyopengl { }; - -# pyopengl-accelerate = callPackage ./python-modules/pyopengl-accelerate { }; - -# pyopenssl = callPackage ./python-modules/pyopenssl { }; - -# pyopenuv = callPackage ./python-modules/pyopenuv { }; - -# pyopnsense = callPackage ./python-modules/pyopnsense { }; - -# pyoppleio = callPackage ./python-modules/pyoppleio { }; - -# pyosf = callPackage ./python-modules/pyosf { }; - -# pyosmium = callPackage ./python-modules/pyosmium { -# inherit (pkgs) lz4; -# }; - -# pyosohotwaterapi = callPackage ./python-modules/pyosohotwaterapi { }; - -# pyotgw = callPackage ./python-modules/pyotgw { }; - -# pyotp = callPackage ./python-modules/pyotp { }; - -# pyowm = callPackage ./python-modules/pyowm { }; - -# pypamtest = toPythonModule (pkgs.libpam-wrapper.override { -# enablePython = true; -# inherit python; -# }); - -# pypandoc = callPackage ./python-modules/pypandoc { }; - -# pyparser = callPackage ./python-modules/pyparser { }; - -# pyparsing = callPackage ./python-modules/pyparsing { }; - -# pyparted = callPackage ./python-modules/pyparted { }; - -# pypass = callPackage ./python-modules/pypass { }; - -# pypblib = callPackage ./python-modules/pypblib { }; - -# pypca = callPackage ./python-modules/pypca { }; - -# pypcap = callPackage ./python-modules/pypcap { -# inherit (pkgs) libpcap; # Avoid confusion with python package of the same name -# }; - -# pypck = callPackage ./python-modules/pypck { }; - -# pypdf = callPackage ./python-modules/pypdf { }; - -# pypdf2 = callPackage ./python-modules/pypdf2 { }; - -# pypdf3 = callPackage ./python-modules/pypdf3 { }; - -# pypeg2 = callPackage ./python-modules/pypeg2 { }; - -# pyperclip = callPackage ./python-modules/pyperclip { }; - -# pyperscan = callPackage ./python-modules/pyperscan { }; - -# pyperf = callPackage ./python-modules/pyperf { }; - -# pyphen = callPackage ./python-modules/pyphen { }; - -# pyphotonfile = callPackage ./python-modules/pyphotonfile { }; - -# pypika = callPackage ./python-modules/pypika { }; - -# pypillowfight = callPackage ./python-modules/pypillowfight { }; - -# pypinyin = callPackage ./python-modules/pypinyin { }; - -# pypiserver = callPackage ./python-modules/pypiserver { }; - -# pypitoken = callPackage ./python-modules/pypitoken { }; - -# pyplaato = callPackage ./python-modules/pyplaato { }; - -# pyplatec = callPackage ./python-modules/pyplatec { }; - -# pyppeteer = callPackage ./python-modules/pyppeteer { }; - -# pypresence = callPackage ./python-modules/pypresence { }; - -# pyprind = callPackage ./python-modules/pyprind { }; - -# pyprof2calltree = callPackage ./python-modules/pyprof2calltree { }; - -# pyproj = callPackage ./python-modules/pyproj { }; - -# pyproject-metadata = callPackage ./python-modules/pyproject-metadata { }; - -# pyprosegur = callPackage ./python-modules/pyprosegur { }; - -# pyprusalink = callPackage ./python-modules/pyprusalink { }; - -# pyptlib = callPackage ./python-modules/pyptlib { }; - -# pypubsub = callPackage ./python-modules/pypubsub { }; - -# pypugjs = callPackage ./python-modules/pypugjs { }; - -# pypykatz = callPackage ./python-modules/pypykatz { }; - -# pypytools = callPackage ./python-modules/pypytools { }; - -# pyqldb = callPackage ./python-modules/pyqldb { }; - -# pyqrcode = callPackage ./python-modules/pyqrcode { }; - -# pyqt-builder = callPackage ./python-modules/pyqt-builder { }; - -# pyqt5 = callPackage ./python-modules/pyqt/5.x.nix { }; - -# pyqt5-stubs = callPackage ./python-modules/pyqt5-stubs { }; - -# pyqt5-sip = callPackage ./python-modules/pyqt/sip.nix { }; - -# 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; -# }; - -# pyqt6 = callPackage ./python-modules/pyqt/6.x.nix { }; - -# pyqt6-charts = callPackage ./python-modules/pyqt6-charts { }; - -# pyqt6-sip = callPackage ./python-modules/pyqt/pyqt6-sip.nix { }; - -# pyqt6-webengine = callPackage ./python-modules/pyqt6-webengine { }; - -# 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; -# }; - -# pyqtdarktheme = callPackage ./python-modules/pyqtdarktheme { }; - -# pyqtdatavisualization = pkgs.libsForQt5.callPackage ./python-modules/pyqtdatavisualization { -# inherit (self) buildPythonPackage pyqt5 pyqt-builder python pythonOlder -# setuptools sip; -# }; - -# pyqtgraph = callPackage ./python-modules/pyqtgraph { }; - -# pyqtwebengine = pkgs.libsForQt5.callPackage ./python-modules/pyqtwebengine { -# pythonPackages = self; -# }; - -# pyquery = callPackage ./python-modules/pyquery { }; - -# pyquaternion = callPackage ./python-modules/pyquaternion { }; - -# pyquil = callPackage ./python-modules/pyquil { }; - -# pyqvrpro = callPackage ./python-modules/pyqvrpro { }; - -# pyqwikswitch = callPackage ./python-modules/pyqwikswitch { }; - -# pyrabbit2 = callPackage ./python-modules/pyrabbit2 { }; - -# pyrad = callPackage ./python-modules/pyrad { }; - -# pyradiomics = callPackage ./python-modules/pyradiomics { }; - -# pyradios = callPackage ./python-modules/pyradios { }; - -# pyrainbird = callPackage ./python-modules/pyrainbird { }; - -# pyramid-beaker = callPackage ./python-modules/pyramid-beaker { }; - -# pyramid = callPackage ./python-modules/pyramid { }; - -# pyramid-chameleon = callPackage ./python-modules/pyramid-chameleon { }; - -# pyramid-exclog = callPackage ./python-modules/pyramid-exclog { }; - -# pyramid-jinja2 = callPackage ./python-modules/pyramid-jinja2 { }; - -# pyramid-mako = callPackage ./python-modules/pyramid-mako { }; - -# pyramid-multiauth = callPackage ./python-modules/pyramid-multiauth { }; - -# pyrate-limiter = callPackage ./python-modules/pyrate-limiter { }; - -# pyreaderwriterlock = callPackage ./python-modules/pyreaderwriterlock { }; - -# pyreadstat = callPackage ./python-modules/pyreadstat { -# inherit (pkgs.darwin) libiconv; -# }; - -# pyrealsense2 = toPythonModule (pkgs.librealsense.override { -# enablePython = true; -# pythonPackages = self; -# }); - -# pyrealsense2WithCuda = toPythonModule (pkgs.librealsenseWithCuda.override { -# cudaSupport = true; -# enablePython = true; -# pythonPackages = self; -# }); - -# pyrealsense2WithoutCuda = toPythonModule (pkgs.librealsenseWithoutCuda.override { -# enablePython = true; -# pythonPackages = self; -# }); - -# pyrect = callPackage ./python-modules/pyrect { }; - -# pyregion = callPackage ./python-modules/pyregion { }; - -# pyric = callPackage ./python-modules/pyric { }; - -# pyring-buffer = callPackage ./python-modules/pyring-buffer { }; - -# pyrisco = callPackage ./python-modules/pyrisco { }; - -# pyrituals = callPackage ./python-modules/pyrituals { }; - -# pyrfc3339 = callPackage ./python-modules/pyrfc3339 { }; - -# pyrmvtransport = callPackage ./python-modules/pyrmvtransport { }; - -# pyro4 = callPackage ./python-modules/pyro4 { }; - -# pyro5 = callPackage ./python-modules/pyro5 { }; - -# pyroma = callPackage ./python-modules/pyroma { }; - -# pyro-api = callPackage ./python-modules/pyro-api { }; - -# pyro-ppl = callPackage ./python-modules/pyro-ppl { }; - -# pyroute2 = callPackage ./python-modules/pyroute2 { }; - -# pyrr = callPackage ./python-modules/pyrr { }; - -# pyrsistent = callPackage ./python-modules/pyrsistent { }; - -# pyrss2gen = callPackage ./python-modules/pyrss2gen { }; - -# pyrtlsdr = callPackage ./python-modules/pyrtlsdr { }; - -# pysaj = callPackage ./python-modules/pysaj { }; - -# pysam = callPackage ./python-modules/pysam { }; - -# pysaml2 = callPackage ./python-modules/pysaml2 { -# inherit (pkgs) xmlsec; -# }; - -# pysatochip = callPackage ./python-modules/pysatochip { }; - -# pysc2 = callPackage ./python-modules/pysc2 { }; - -# pyscard = callPackage ./python-modules/pyscard { -# inherit (pkgs.darwin.apple_sdk.frameworks) PCSC; -# }; - -# pyscaffold = callPackage ./python-modules/pyscaffold { }; - -# pyscaffoldext-cookiecutter = callPackage ./python-modules/pyscaffoldext-cookiecutter { }; - -# pyscaffoldext-custom-extension = callPackage ./python-modules/pyscaffoldext-custom-extension { }; - -# pyscaffoldext-django = callPackage ./python-modules/pyscaffoldext-django { }; - -# pyscaffoldext-dsproject = callPackage ./python-modules/pyscaffoldext-dsproject { }; - -# pyscaffoldext-markdown = callPackage ./python-modules/pyscaffoldext-markdown { }; - -# pyscaffoldext-travis = callPackage ./python-modules/pyscaffoldext-travis { }; - -# pyscf = callPackage ./python-modules/pyscf { }; - -# pyschedule = callPackage ./python-modules/pyschedule { }; - -# pyscreenshot = callPackage ./python-modules/pyscreenshot { }; - -# pyscreeze = callPackage ./python-modules/pyscreeze { }; - -# py-scrypt = callPackage ./python-modules/py-scrypt { }; - -# pyscrypt = callPackage ./python-modules/pyscrypt { }; - -# pyscss = callPackage ./python-modules/pyscss { }; - -# pysdcp = callPackage ./python-modules/pysdcp { }; - -# pysdl2 = callPackage ./python-modules/pysdl2 { }; - -# pysearpc = toPythonModule (pkgs.libsearpc.override { -# python3 = self.python; -# }); - -# pysecuritas = callPackage ./python-modules/pysecuritas { }; - -# pysendfile = callPackage ./python-modules/pysendfile { }; - -# pysensibo = callPackage ./python-modules/pysensibo { }; - -# pysensors = callPackage ./python-modules/pysensors { }; - -# pyserial-asyncio = callPackage ./python-modules/pyserial-asyncio { }; - -# pyserial-asyncio-fast = callPackage ./python-modules/pyserial-asyncio-fast { }; - -# pyserial = callPackage ./python-modules/pyserial { }; - -# pysftp = callPackage ./python-modules/pysftp { }; - -# pyshp = callPackage ./python-modules/pyshp { }; - -# pyside2-tools = toPythonModule (callPackage ./python-modules/pyside2-tools { -# inherit (pkgs) cmake qt5; -# }); - -# pyside2 = toPythonModule (callPackage ./python-modules/pyside2 { -# inherit (pkgs) cmake ninja qt5; -# }); - -# pyside6 = toPythonModule (callPackage ./python-modules/pyside6 { -# inherit (pkgs) cmake ninja; -# }); - -# pysigma = callPackage ./python-modules/pysigma { }; - -# pysigma-backend-elasticsearch = callPackage ./python-modules/pysigma-backend-elasticsearch { }; - -# pysigma-backend-opensearch = callPackage ./python-modules/pysigma-backend-opensearch { }; - -# pysigma-backend-qradar = callPackage ./python-modules/pysigma-backend-qradar { }; - -# pysigma-backend-splunk = callPackage ./python-modules/pysigma-backend-splunk { }; - -# pysigma-backend-sqlite = callPackage ./python-modules/pysigma-backend-sqlite { }; - -# pysigma-backend-insightidr = callPackage ./python-modules/pysigma-backend-insightidr { }; - -# pysigma-pipeline-crowdstrike = callPackage ./python-modules/pysigma-pipeline-crowdstrike { }; - -# pysigma-pipeline-sysmon = callPackage ./python-modules/pysigma-pipeline-sysmon { }; - -# pysigma-pipeline-windows = callPackage ./python-modules/pysigma-pipeline-windows { }; - -# pysignalclirestapi = callPackage ./python-modules/pysignalclirestapi { }; - -# pysigset = callPackage ./python-modules/pysigset { }; - -# pysim = callPackage ./python-modules/pysim { }; - -# pysimplegui = callPackage ./python-modules/pysimplegui { }; - -# pysingleton = callPackage ./python-modules/pysingleton { }; - -# pyslim = callPackage ./python-modules/pyslim { }; - -# pyslurm = callPackage ./python-modules/pyslurm { -# inherit (pkgs) slurm; -# }; - -# pysma = callPackage ./python-modules/pysma { }; - -# pysmappee = callPackage ./python-modules/pysmappee { }; - -# pysmart = callPackage ./python-modules/pysmart { }; - -# pysmartapp = callPackage ./python-modules/pysmartapp { }; - -# pysmartdl = callPackage ./python-modules/pysmartdl { }; - -# pysmartthings = callPackage ./python-modules/pysmartthings { }; - -# pysmb = callPackage ./python-modules/pysmb { }; - -# pysmbc = callPackage ./python-modules/pysmbc { }; - -# pysmf = callPackage ./python-modules/pysmf { }; - -# pysmi = callPackage ./python-modules/pysmi { }; - -# pysmi-lextudio = callPackage ./python-modules/pysmi-lextudio { }; - -# pysml = callPackage ./python-modules/pysml { }; - -# pysmt = callPackage ./python-modules/pysmt { }; - -# pysnmp = callPackage ./python-modules/pysnmp { }; - -# pysnmpcrypto = callPackage ./python-modules/pysnmpcrypto { }; - -# pysnmp-lextudio = callPackage ./python-modules/pysnmp-lextudio { }; - -# pysnmp-pyasn1 = callPackage ./python-modules/pysnmp-pyasn1 { }; - -# pysnmp-pysmi = callPackage ./python-modules/pysnmp-pysmi { }; - -# pysnmplib = callPackage ./python-modules/pysnmplib { }; - -# pysnooper = callPackage ./python-modules/pysnooper { }; - -# pysnooz = callPackage ./python-modules/pysnooz { }; - -# pysnow = callPackage ./python-modules/pysnow { }; - - pysocks = callPackage ./python-modules/pysocks { }; - -# pysol-cards = callPackage ./python-modules/pysol-cards { }; - -# pysolr = callPackage ./python-modules/pysolr { }; - -# pysoma = callPackage ./python-modules/pysoma { }; - -# py-sonic = callPackage ./python-modules/py-sonic { }; - -# pysonos = callPackage ./python-modules/pysonos { }; - -# pysoundfile = self.soundfile; # Alias added 23-06-2019 - -# pyspark = callPackage ./python-modules/pyspark { }; - -# pyspcwebgw = callPackage ./python-modules/pyspcwebgw { }; - -# pyspellchecker = callPackage ./python-modules/pyspellchecker { }; - -# pyspf = callPackage ./python-modules/pyspf { }; - -# pyspice = callPackage ./python-modules/pyspice { }; - -# pyspiflash = callPackage ./python-modules/pyspiflash { }; - -# pyspinel = callPackage ./python-modules/pyspinel { }; - -# pyspnego = callPackage ./python-modules/pyspnego { }; - -# pysptk = callPackage ./python-modules/pysptk { }; - -# pyspx = callPackage ./python-modules/pyspx { }; - -# pysqlcipher3 = callPackage ./python-modules/pysqlcipher3 { -# inherit (pkgs) sqlcipher; -# }; - -# pysqueezebox = callPackage ./python-modules/pysqueezebox { }; - -# pysrim = callPackage ./python-modules/pysrim { }; - -# pysrt = callPackage ./python-modules/pysrt { }; - -# pyssim = callPackage ./python-modules/pyssim { }; - -# pystache = callPackage ./python-modules/pystache { }; - -# pystardict = callPackage ./python-modules/pystardict { }; - -# pystatgrab = callPackage ./python-modules/pystatgrab { }; - -# pystemd = callPackage ./python-modules/pystemd { -# inherit (pkgs) systemd; -# }; - - pystemmer = callPackage ./python-modules/pystemmer { }; - -# pystray = callPackage ./python-modules/pystray { }; - -# py-stringmatching = callPackage ./python-modules/py-stringmatching { }; - -# pysvg-py3 = callPackage ./python-modules/pysvg-py3 { }; - -# pysvn = callPackage ./python-modules/pysvn { -# inherit (pkgs) bash subversion apr aprutil expat neon openssl; -# }; - -# pyswitchbee = callPackage ./python-modules/pyswitchbee { }; - -# pyswitchbot = callPackage ./python-modules/pyswitchbot { }; - -# pysychonaut = callPackage ./python-modules/pysychonaut { }; - -# pysyncobj = callPackage ./python-modules/pysyncobj { }; - -# pytabix = callPackage ./python-modules/pytabix { }; - -# pytablewriter = callPackage ./python-modules/pytablewriter { }; - -# pytado = callPackage ./python-modules/pytado { }; - -# pytaglib = callPackage ./python-modules/pytaglib { }; - -# pytankerkoenig = callPackage ./python-modules/pytankerkoenig { }; - -# pytap2 = callPackage ./python-modules/pytap2 { }; - -# pytapo = callPackage ./python-modules/pytapo { }; - -# pytautulli = callPackage ./python-modules/pytautulli { }; - -# pyte = callPackage ./python-modules/pyte { }; - -# pytedee-async = callPackage ./python-modules/pytedee-async { }; - -# pytenable = callPackage ./python-modules/pytenable { }; - -# pytensor = callPackage ./python-modules/pytensor { }; - -# pytelegrambotapi = callPackage ./python-modules/pyTelegramBotAPI { }; - -# pytesseract = callPackage ./python-modules/pytesseract { }; - - pytest = callPackage ./python-modules/pytest { }; - -# pytest_7 = callPackage ./python-modules/pytest/7.nix { }; - -# pytest7CheckHook = pytestCheckHook.override { pytest = pytest_7; }; - -# pytest-aio = callPackage ./python-modules/pytest-aio { }; - -# pytest-aiohttp = callPackage ./python-modules/pytest-aiohttp { }; - -# pytest-annotate = callPackage ./python-modules/pytest-annotate { }; - -# pytest-ansible = callPackage ./python-modules/pytest-ansible { }; - -# pytest-arraydiff = callPackage ./python-modules/pytest-arraydiff { }; - -# pytest-astropy = callPackage ./python-modules/pytest-astropy { }; - -# 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-bdd = callPackage ./python-modules/pytest-bdd { }; - -# pytest-benchmark = callPackage ./python-modules/pytest-benchmark { }; - -# pytest-black = callPackage ./python-modules/pytest-black { }; - -# pytest-cache = self.pytestcache; # added 2021-01-04 -# pytestcache = callPackage ./python-modules/pytestcache { }; - -# pytest-base-url = callPackage ./python-modules/pytest-base-url { }; - -# pytest-cases = callPackage ./python-modules/pytest-cases{ }; - -# pytest-catchlog = callPackage ./python-modules/pytest-catchlog { }; - -# pytest-celery = callPackage ./python-modules/pytest-celery { }; - -# pytest-check = callPackage ./python-modules/pytest-check { }; - -# pytest-cid = callPackage ./python-modules/pytest-cid { }; - -# pytest-click = callPackage ./python-modules/pytest-click { }; - -# pytest-console-scripts = callPackage ./python-modules/pytest-console-scripts { }; - -# pytest-cov = callPackage ./python-modules/pytest-cov { }; - -# pytest-cram = callPackage ./python-modules/pytest-cram { }; - -# pytest-datadir = callPackage ./python-modules/pytest-datadir { }; - -# pytest-datafiles = callPackage ./python-modules/pytest-datafiles { }; - -# pytest-dependency = callPackage ./python-modules/pytest-dependency { }; - -# pytest-describe = callPackage ./python-modules/pytest-describe { }; - -# pytest-django = callPackage ./python-modules/pytest-django { }; - -# pytest-doctestplus = callPackage ./python-modules/pytest-doctestplus { }; - -# pytest-dotenv = callPackage ./python-modules/pytest-dotenv { }; - -# pytest-emoji = callPackage ./python-modules/pytest-emoji { }; - -# pytest-env = callPackage ./python-modules/pytest-env { }; - -# pytest-error-for-skips = callPackage ./python-modules/pytest-error-for-skips { }; - -# pytest-examples = callPackage ./python-modules/pytest-examples { }; - - pytest-expect = callPackage ./python-modules/pytest-expect { }; - -# pytest-factoryboy = callPackage ./python-modules/pytest-factoryboy { }; - -# pytest-filter-subpackage = callPackage ./python-modules/pytest-filter-subpackage { }; - -# pytest-fixture-config = callPackage ./python-modules/pytest-fixture-config { }; - -# pytest-flake8 = callPackage ./python-modules/pytest-flake8 { }; - -# pytest-flakes = callPackage ./python-modules/pytest-flakes { }; - -# pytest-flask = callPackage ./python-modules/pytest-flask { }; - -# pytest-forked = callPackage ./python-modules/pytest-forked { }; - -# pytest-freezegun = callPackage ./python-modules/pytest-freezegun { }; - -# pytest-freezer = callPackage ./python-modules/pytest-freezer { }; - -# pytest-golden = callPackage ./python-modules/pytest-golden { }; - -# pytest-grpc = callPackage ./python-modules/pytest-grpc { }; - -# pytest-harvest = callPackage ./python-modules/pytest-harvest { }; - -# pytest-helpers-namespace = callPackage ./python-modules/pytest-helpers-namespace { }; - -# pytest-html = callPackage ./python-modules/pytest-html { }; - -# pytest-httpbin = callPackage ./python-modules/pytest-httpbin { }; - -# pytest-httpserver = callPackage ./python-modules/pytest-httpserver { }; - -# pytest-httpx = callPackage ./python-modules/pytest-httpx { }; - -# pytest-image-diff = callPackage ./python-modules/pytest-image-diff { }; - -# pytest-instafail = callPackage ./python-modules/pytest-instafail { }; - -# pytest-isort = callPackage ./python-modules/pytest-isort { }; - -# pytest-json-report = callPackage ./python-modules/pytest-json-report { }; - -# pytest-jupyter = callPackage ./python-modules/pytest-jupyter { }; - -# pytest-lazy-fixture = callPackage ./python-modules/pytest-lazy-fixture { }; - -# pytest-localserver = callPackage ./python-modules/pytest-localserver { }; - -# pytest-logdog = callPackage ./python-modules/pytest-logdog { }; - -# pytest-md-report = callPackage ./python-modules/pytest-md-report { }; - -# pytest-metadata = callPackage ./python-modules/pytest-metadata { }; - - pytest-mock = callPackage ./python-modules/pytest-mock { }; - -# pytest-mockservers = callPackage ./python-modules/pytest-mockservers { }; - -# pytest-mpl = callPackage ./python-modules/pytest-mpl { }; - -# pytest-mypy = callPackage ./python-modules/pytest-mypy { }; - -# pytest-mypy-plugins = callPackage ./python-modules/pytest-mypy-plugins { }; - -# pytest-notebook = callPackage ./python-modules/pytest-notebook { }; - -# pytest-openfiles = callPackage ./python-modules/pytest-openfiles { }; - -# pytest-order = callPackage ./python-modules/pytest-order { }; - -# pytest-param-files = callPackage ./python-modules/pytest-param-files { }; - -# pytest-parallel = callPackage ./python-modules/pytest-parallel { }; - -# pytest-playwright = callPackage ./python-modules/pytest-playwright {}; - -# pytest-plt = callPackage ./python-modules/pytest-plt { }; - -# pytest-postgresql = callPackage ./python-modules/pytest-postgresql { }; - -# pytest-pylint = callPackage ./python-modules/pytest-pylint { }; - -# pytest-pytestrail = callPackage ./python-modules/pytest-pytestrail { }; - -# pytest-qt = callPackage ./python-modules/pytest-qt { }; - -# pytest-quickcheck = callPackage ./python-modules/pytest-quickcheck { }; - -# pytest-raises = callPackage ./python-modules/pytest-raises { }; - -# pytest-raisesregexp = callPackage ./python-modules/pytest-raisesregexp { }; - -# pytest-raisin = callPackage ./python-modules/pytest-raisin { }; - -# pytest-randomly = callPackage ./python-modules/pytest-randomly { }; - -# pytest-reverse = callPackage ./python-modules/pytest-reverse { }; - -# pytest-random-order = callPackage ./python-modules/pytest-random-order { }; - -# pytest-recording = callPackage ./python-modules/pytest-recording { }; - -# pytest-regressions = callPackage ./python-modules/pytest-regressions { }; - -# pytest-relaxed = callPackage ./python-modules/pytest-relaxed { }; - -# pytest-remotedata = callPackage ./python-modules/pytest-remotedata { }; - -# pytest-repeat = callPackage ./python-modules/pytest-repeat { }; - - pytest-rerunfailures = callPackage ./python-modules/pytest-rerunfailures { }; - -# pytest-resource-path = callPackage ./python-modules/pytest-resource-path { }; - -# pytest-runner = callPackage ./python-modules/pytest-runner { }; - -# pytest-server-fixtures = callPackage ./python-modules/pytest-server-fixtures { }; - -# pytest-services = callPackage ./python-modules/pytest-services { }; - -# pytest-snapshot = callPackage ./python-modules/pytest-snapshot { }; - -# pytest-shutil = callPackage ./python-modules/pytest-shutil { }; - -# pytest-spec = callPackage ./python-modules/pytest-spec { }; - -# python-status = callPackage ./python-modules/python-status { }; - -# python-string-utils = callPackage ./python-modules/python-string-utils { }; - -# pytest-socket = callPackage ./python-modules/pytest-socket { }; - -# pytest-subprocess = callPackage ./python-modules/pytest-subprocess { }; - -# pytest-subtesthack = callPackage ./python-modules/pytest-subtesthack { }; - -# pytest-subtests = callPackage ./python-modules/pytest-subtests { }; - -# pytest-sugar = callPackage ./python-modules/pytest-sugar { }; - -# pytest-tap = callPackage ./python-modules/pytest-tap { }; - -# pytest-test-utils = callPackage ./python-modules/pytest-test-utils { }; - -# pytest-testinfra = callPackage ./python-modules/pytest-testinfra { }; - -# pytest-testmon = callPackage ./python-modules/pytest-testmon { }; - -# pytest-textual-snapshot = callPackage ./python-modules/pytest-textual-snapshot { }; - - pytest-timeout = callPackage ./python-modules/pytest-timeout { }; - -# pytest-tornado = callPackage ./python-modules/pytest-tornado { }; - -# pytest-tornasync = callPackage ./python-modules/pytest-tornasync { }; - -# pytest-trio = callPackage ./python-modules/pytest-trio { }; - -# pytest-twisted = callPackage ./python-modules/pytest-twisted { }; - -# pytest-unordered = callPackage ./python-modules/pytest-unordered { }; - -# pytest-vcr = callPackage ./python-modules/pytest-vcr { }; - -# pytest-virtualenv = callPackage ./python-modules/pytest-virtualenv { }; - -# pytest-voluptuous = callPackage ./python-modules/pytest-voluptuous { }; - -# pytest-warnings = callPackage ./python-modules/pytest-warnings { }; - -# pytest-watch = callPackage ./python-modules/pytest-watch { }; - - pytest-xdist = callPackage ./python-modules/pytest-xdist { }; - -# pytest-xprocess = callPackage ./python-modules/pytest-xprocess { }; - -# pytest-xvfb = callPackage ./python-modules/pytest-xvfb { }; - -# python3-application = callPackage ./python-modules/python3-application { }; - -# python3-eventlib = callPackage ./python-modules/python3-eventlib { }; - -# python3-gnutls = callPackage ./python-modules/python3-gnutls { }; - -# python3-openid = callPackage ./python-modules/python3-openid { }; - -# python-apt = callPackage ./python-modules/python-apt { }; - -# python-arango = callPackage ./python-modules/python-arango { }; - -# python-awair = callPackage ./python-modules/python-awair { }; - -# python3-saml = callPackage ./python-modules/python3-saml { }; - -# python-axolotl = callPackage ./python-modules/python-axolotl { }; - -# python-axolotl-curve25519 = callPackage ./python-modules/python-axolotl-curve25519 { }; - -# python-barcode = callPackage ./python-modules/python-barcode { }; - -# python-baseconv = callPackage ./python-modules/python-baseconv { }; - -# python-benedict = callPackage ./python-modules/python-benedict { }; - -# python-bidi = callPackage ./python-modules/python-bidi { }; - -# python-binance = callPackage ./python-modules/python-binance { }; - -# python-box = callPackage ./python-modules/python-box { }; - -# python-bring-api = callPackage ./python-modules/python-bring-api { }; - -# python-bsblan = callPackage ./python-modules/python-bsblan { }; - -# python-cinderclient = callPackage ./python-modules/python-cinderclient { }; - -# python-constraint = callPackage ./python-modules/python-constraint { }; - -# python-crontab = callPackage ./python-modules/python-crontab { }; - -# python-ctags3 = callPackage ./python-modules/python-ctags3 { }; - -# python-daemon = callPackage ./python-modules/python-daemon { }; - -# python-datemath = callPackage ./python-modules/python-datemath { }; - - python-dateutil = callPackage ./python-modules/python-dateutil { }; - -# python-dbusmock = callPackage ./python-modules/python-dbusmock { }; - -# python-decouple = callPackage ./python-modules/python-decouple { }; - -# pythondialog = callPackage ./python-modules/pythondialog { }; - -# python-didl-lite = callPackage ./python-modules/python-didl-lite { }; - -# python-digitalocean = callPackage ./python-modules/python-digitalocean { }; - -# python-docx = callPackage ./python-modules/python-docx { }; - -# python-doi = callPackage ./python-modules/python-doi { }; - -# python-dotenv = callPackage ./python-modules/python-dotenv { }; - -# python-editor = callPackage ./python-modules/python-editor { }; - -# python-family-hub-local = callPackage ./python-modules/python-family-hub-local { }; - -# python-fsutil = callPackage ./python-modules/python-fsutil { }; - -# pythonefl = callPackage ./python-modules/python-efl { }; - -# pythonegardia = callPackage ./python-modules/pythonegardia { }; - -# python-engineio = callPackage ./python-modules/python-engineio { }; - -# python-etcd = callPackage ./python-modules/python-etcd { }; - -# python-ethtool = callPackage ./python-modules/python-ethtool { }; - -# python-ev3dev2 = callPackage ./python-modules/python-ev3dev2 { }; - -# python-fedora = callPackage ./python-modules/python-fedora { }; - -# python-fontconfig = callPackage ./python-modules/python-fontconfig { }; - -# python-frontmatter = callPackage ./python-modules/python-frontmatter { }; - -# python-gammu = callPackage ./python-modules/python-gammu { }; - -# python-gitlab = callPackage ./python-modules/python-gitlab { }; - -# python-gnupg = callPackage ./python-modules/python-gnupg { }; - -# python-gvm = callPackage ./python-modules/python-gvm { }; - -# python-hglib = callPackage ./python-modules/python-hglib { }; - -# python-homeassistant-analytics = callPackage ./python-modules/python-homeassistant-analytics { }; - -# python-homewizard-energy = callPackage ./python-modules/python-homewizard-energy { }; - -# python-hosts = callPackage ./python-modules/python-hosts { }; - -# python-hpilo = callPackage ./python-modules/python-hpilo { }; - -# python-http-client = callPackage ./python-modules/python-http-client { }; - -# 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; }; -# }; - -# python-jenkins = callPackage ./python-modules/python-jenkins { }; - -# python-jose = callPackage ./python-modules/python-jose { }; - -# python-json-logger = callPackage ./python-modules/python-json-logger { }; - -# python-jsonrpc-server = callPackage ./python-modules/python-jsonrpc-server { }; - -# python-ldap = callPackage ./python-modules/python-ldap { -# inherit (pkgs) openldap cyrus_sasl; -# }; - -# python-ldap-test = callPackage ./python-modules/python-ldap-test { }; - -# python-libnmap = callPackage ./python-modules/python-libnmap { }; - -# python-linux-procfs = callPackage ./python-modules/python-linux-procfs { }; - -# python-logstash = callPackage ./python-modules/python-logstash { }; - -# python-louvain = callPackage ./python-modules/python-louvain { }; - -# python-lsp-jsonrpc = callPackage ./python-modules/python-lsp-jsonrpc { }; - -# python-lsp-ruff = callPackage ./python-modules/python-lsp-ruff { }; - -# python-lsp-server = callPackage ./python-modules/python-lsp-server { }; - -# python-ly = callPackage ./python-modules/python-ly { }; - -# python-lzf = callPackage ./python-modules/python-lzf { }; - -# python-lzo = callPackage ./python-modules/python-lzo { -# inherit (pkgs) lzo; -# }; - -# python-magic = callPackage ./python-modules/python-magic { }; - -# 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-markdown-math = callPackage ./python-modules/python-markdown-math { }; - -# python-matter-server = callPackage ./python-modules/python-matter-server { }; - -# python-miio = callPackage ./python-modules/python-miio { }; - -# python-mimeparse = callPackage ./python-modules/python-mimeparse { }; - -# python-mnist = callPackage ./python-modules/python-mnist { }; - -# python-mpv-jsonipc = callPackage ./python-modules/python-mpv-jsonipc { }; - -# python-multipart = callPackage ./python-modules/python-multipart { }; - -# python-musicpd = callPackage ./python-modules/python-musicpd { }; - -# python-mystrom = callPackage ./python-modules/python-mystrom { }; - -# python-nest = callPackage ./python-modules/python-nest { }; - -# pythonnet = callPackage ./python-modules/pythonnet { }; - -# python-nmap = callPackage ./python-modules/python-nmap { }; - -# python-nomad = callPackage ./python-modules/python-nomad { }; - -# python-novaclient = callPackage ./python-modules/python-novaclient { }; - -# 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; -# }); - -# python-olm = callPackage ./python-modules/python-olm { }; - -# python-on-whales = callPackage ./python-modules/python-on-whales { }; - -# python-opendata-transport = callPackage ./python-modules/python-opendata-transport { }; - -# python-openstackclient = callPackage ./python-modules/python-openstackclient { }; - -# python-openzwave = callPackage ./python-modules/python-openzwave { }; - -# python-osc = callPackage ./python-modules/python-osc { }; - -# python-packer = callPackage ./python-modules/python-packer { }; - -# python-pae = callPackage ./python-modules/python-pae { }; - -# python-pam = callPackage ./python-modules/python-pam { -# inherit (pkgs) pam; -# }; - -# python-periphery = callPackage ./python-modules/python-periphery { }; - -# python-picnic-api = callPackage ./python-modules/python-picnic-api { }; - -# python-pidfile = callPackage ./python-modules/python-pidfile { }; - -# python-pipedrive = callPackage ./python-modules/python-pipedrive { }; - -# python-pkcs11 = callPackage ./python-modules/python-pkcs11 { }; - -# python-prctl = callPackage ./python-modules/python-prctl { }; - -# python-ptrace = callPackage ./python-modules/python-ptrace { }; - -# python-rapidjson = callPackage ./python-modules/python-rapidjson { }; - -# python-rabbitair = callPackage ./python-modules/python-rabbitair { }; - -# python-redis-lock = callPackage ./python-modules/python-redis-lock { }; - -# python-registry = callPackage ./python-modules/python-registry { }; - -# 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-sat = callPackage ./python-modules/python-sat { }; - -# python-simple-hipchat = callPackage ./python-modules/python-simple-hipchat { }; - -# python-slugify = callPackage ./python-modules/python-slugify { }; - -# python-smarttub = callPackage ./python-modules/python-smarttub { }; - -# python-snap7 = callPackage ./python-modules/python-snap7 { -# inherit (pkgs) snap7; -# }; - -# python-snappy = callPackage ./python-modules/python-snappy { -# inherit (pkgs) snappy; -# }; - -# python-socketio = callPackage ./python-modules/python-socketio { }; - -# python-socks = callPackage ./python-modules/python-socks { }; - -# python-sql = callPackage ./python-modules/python-sql { }; - -# python-stdnum = callPackage ./python-modules/python-stdnum { }; - -# python-technove = callPackage ./python-modules/python-technove { }; - -# python-telegram = callPackage ./python-modules/python-telegram { }; - -# python-telegram-bot = callPackage ./python-modules/python-telegram-bot { }; - -# python-toolbox = callPackage ./python-modules/python-toolbox { }; - -# python-trovo = callPackage ./python-modules/python-trovo { }; - -# python-twitch-client = callPackage ./python-modules/python-twitch-client { }; - -# python-twitter = callPackage ./python-modules/python-twitter { }; - -# python-u2flib-host = callPackage ./python-modules/python-u2flib-host { }; - -# python-u2flib-server = callPackage ./python-modules/python-u2flib-server { }; - -# python-uinput = callPackage ./python-modules/python-uinput { }; - -# python-ulid = callPackage ./python-modules/python-ulid { }; - -# python-unshare = callPackage ./python-modules/python-unshare { }; - -# python-utils = callPackage ./python-modules/python-utils { }; - -# python-vagrant = callPackage ./python-modules/python-vagrant { }; - -# python-velbus = callPackage ./python-modules/python-velbus { }; - -# python-vipaccess = callPackage ./python-modules/python-vipaccess { }; - -# python-vlc = callPackage ./python-modules/python-vlc { }; - -# python-whois = callPackage ./python-modules/python-whois { }; - -# python-wifi = callPackage ./python-modules/python-wifi { }; - -# python-wink = callPackage ./python-modules/python-wink { }; - -# python-xmp-toolkit = callPackage ./python-modules/python-xmp-toolkit { }; - -# python-xz = callPackage ./python-modules/python-xz { }; - -# python-zbar = callPackage ./python-modules/python-zbar { }; - -# pythran = callPackage ./python-modules/pythran { -# inherit (pkgs.llvmPackages) openmp; -# }; - -# pyeapi = callPackage ./python-modules/pyeapi { }; - -# pyeverlights = callPackage ./python-modules/pyeverlights { }; - -# pyinfra = callPackage ./python-modules/pyinfra { }; - -# pytibber = callPackage ./python-modules/pytibber { }; - -# pytile = callPackage ./python-modules/pytile { }; - -# pytimeparse = callPackage ./python-modules/pytimeparse { }; - -# pytimeparse2 = callPackage ./python-modules/pytimeparse2 { }; - -# pytikz-allefeld = callPackage ./python-modules/pytikz-allefeld { }; - -# pytm = callPackage ./python-modules/pytm { }; - -# pytmx = callPackage ./python-modules/pytmx { }; - -# pytomlpp = callPackage ./python-modules/pytomlpp { }; - -# pytoolconfig = callPackage ./python-modules/pytoolconfig { }; - -# pytools = callPackage ./python-modules/pytools { }; - -# pytorch-lightning = callPackage ./python-modules/pytorch-lightning { }; - -# pytorch-metric-learning = callPackage ./python-modules/pytorch-metric-learning { }; - -# pytorch-msssim = callPackage ./python-modules/pytorch-msssim { }; - -# pytorch-pfn-extras = callPackage ./python-modules/pytorch-pfn-extras { }; - -# pytraccar = callPackage ./python-modules/pytraccar { }; - -# pytradfri = callPackage ./python-modules/pytradfri { }; - -# pytrafikverket = callPackage ./python-modules/pytrafikverket { }; - -# pytransportnsw = callPackage ./python-modules/pytransportnsw { }; - -# pytransportnswv2 = callPackage ./python-modules/pytransportnswv2 { }; - -# pytrends = callPackage ./python-modules/pytrends { }; - -# pytricia = callPackage ./python-modules/pytricia { }; - -# pytrydan = callPackage ./python-modules/pytrydan { }; - -# pyttsx3 = callPackage ./python-modules/pyttsx3 { }; - -# pytube = callPackage ./python-modules/pytube { }; - -# pytun = callPackage ./python-modules/pytun { }; - -# pyturbojpeg = callPackage ./python-modules/pyturbojpeg { }; - -# pytweening = callPackage ./python-modules/pytweening { }; - - pytz = callPackage ./python-modules/pytz { }; - -# pytz-deprecation-shim = callPackage ./python-modules/pytz-deprecation-shim { }; - -# pytzdata = callPackage ./python-modules/pytzdata { }; - -# pyu2f = callPackage ./python-modules/pyu2f { }; - -# pyudev = callPackage ./python-modules/pyudev { -# inherit (pkgs) udev; -# }; - -# pyunbound = toPythonModule (callPackage ../tools/networking/unbound/python.nix { }); - -# pyunifi = callPackage ./python-modules/pyunifi { }; - -# pyunifiprotect = callPackage ./python-modules/pyunifiprotect { }; - -# pyupdate = callPackage ./python-modules/pyupdate { }; - -# pyupgrade = callPackage ./python-modules/pyupgrade { }; - -# pyuptimerobot = callPackage ./python-modules/pyuptimerobot { }; - -# pyusb = callPackage ./python-modules/pyusb { -# inherit (pkgs) libusb1; -# }; - -# pyuseragents = callPackage ./python-modules/pyuseragents { }; - -# pyutilib = callPackage ./python-modules/pyutilib { }; - -# pyuv = callPackage ./python-modules/pyuv { }; - -# py-vapid = callPackage ./python-modules/py-vapid { }; - -# pyvcd = callPackage ./python-modules/pyvcd { }; - -# pyvera = callPackage ./python-modules/pyvera { }; - -# pyverilog = callPackage ./python-modules/pyverilog { }; - -# pyversasense = callPackage ./python-modules/pyversasense { }; - -# pyvesync = callPackage ./python-modules/pyvesync { }; - -# pyvex = callPackage ./python-modules/pyvex { }; - -# pyvicare = callPackage ./python-modules/pyvicare { }; - -# pyvirtualdisplay = callPackage ./python-modules/pyvirtualdisplay { }; - -# pyvis = callPackage ./python-modules/pyvis { }; - -# pyvisa = callPackage ./python-modules/pyvisa { }; - -# pyvisa-py = callPackage ./python-modules/pyvisa-py { }; - -# pyvisa-sim = callPackage ./python-modules/pyvisa-sim { }; - -# pyvista = callPackage ./python-modules/pyvista { }; - -# pyviz-comms = callPackage ./python-modules/pyviz-comms { }; - -# pyvizio = callPackage ./python-modules/pyvizio { }; - -# pyvips = callPackage ./python-modules/pyvips { -# inherit (pkgs) vips glib; -# }; - -# pyvlx = callPackage ./python-modules/pyvlx { }; - -# pyvmomi = callPackage ./python-modules/pyvmomi { }; - -# pyvo = callPackage ./python-modules/pyvo { }; - -# pyvolumio = callPackage ./python-modules/pyvolumio { }; - -# pyvoro = callPackage ./python-modules/pyvoro { }; - -# pywal = callPackage ./python-modules/pywal { }; - -# pywatchman = callPackage ./python-modules/pywatchman { }; - -# pywaterkotte = callPackage ./python-modules/pywaterkotte { }; - -# pywavefront = callPackage ./python-modules/pywavefront { }; - -# pywavelets = callPackage ./python-modules/pywavelets { }; - -# pywayland = callPackage ./python-modules/pywayland { }; - -# pywaze = callPackage ./python-modules/pywaze { }; - -# pywbem = callPackage ./python-modules/pywbem { -# inherit (pkgs) libxml2; -# }; - -# pyweatherflowrest = callPackage ./python-modules/pyweatherflowrest { }; - -# pyweatherflowudp = callPackage ./python-modules/pyweatherflowudp { }; - -# pywebpush = callPackage ./python-modules/pywebpush { }; - -# pywebview = callPackage ./python-modules/pywebview { }; - -# pywemo = callPackage ./python-modules/pywemo { }; - -# pywerview = callPackage ./python-modules/pywerview { }; - -# pywfa = callPackage ./python-modules/pywfa { }; - -# pywilight = callPackage ./python-modules/pywilight { }; - -# pywinrm = callPackage ./python-modules/pywinrm { }; - -# pywizlight = callPackage ./python-modules/pywizlight { }; - -# pywlroots = callPackage ./python-modules/pywlroots { -# wlroots = pkgs.wlroots_0_16; -# }; - -# pyws66i = callPackage ./python-modules/pyws66i { }; - -# pyxattr = callPackage ./python-modules/pyxattr { }; - -# pyxlsb = callPackage ./python-modules/pyxlsb { }; - -# pyworld = callPackage ./python-modules/pyworld { }; - -# pyx = callPackage ./python-modules/pyx { }; - -# pyxbe = callPackage ./python-modules/pyxbe { }; - -# pyxdg = callPackage ./python-modules/pyxdg { }; - -# pyxeoma = callPackage ./python-modules/pyxeoma { }; - -# pyxiaomigateway = callPackage ./python-modules/pyxiaomigateway { }; - -# pyxl3 = callPackage ./python-modules/pyxl3 { }; - -# pyxnat = callPackage ./python-modules/pyxnat { }; - -# pyyaml = callPackage ./python-modules/pyyaml { }; - -# pyyaml-env-tag = callPackage ./python-modules/pyyaml-env-tag { }; - -# pyyaml-include = callPackage ./python-modules/pyyaml-include { }; - -# pyyardian = callPackage ./python-modules/pyyardian { }; - -# pyzabbix = callPackage ./python-modules/pyzabbix { }; - -# pyzerproc = callPackage ./python-modules/pyzerproc { }; - -# pyzmq = callPackage ./python-modules/pyzmq { }; - -# pyzufall = callPackage ./python-modules/pyzufall { }; - -# qbittorrent-api = callPackage ./python-modules/qbittorrent-api { }; - -# qasync = callPackage ./python-modules/qasync { }; - -# qcelemental = callPackage ./python-modules/qcelemental { }; - -# qcengine = callPackage ./python-modules/qcengine { }; - -# qcodes = callPackage ./python-modules/qcodes { }; - -# qcodes-contrib-drivers = callPackage ./python-modules/qcodes-contrib-drivers { }; - -# qcs-api-client = callPackage ./python-modules/qcs-api-client { }; - -# qcs-sdk-python = callPackage ./python-modules/qcs-sdk-python { }; - -# qdarkstyle = callPackage ./python-modules/qdarkstyle { }; - -# qdldl = callPackage ./python-modules/qdldl { }; - -# qdrant-client = callPackage ./python-modules/qdrant-client { }; - -# qds-sdk = callPackage ./python-modules/qds-sdk { }; - -# qgrid = callPackage ./python-modules/qgrid { }; - -# qemu = callPackage ./python-modules/qemu { -# qemu = pkgs.qemu; -# }; - -# qiling = callPackage ./python-modules/qiling { }; - -# qimage2ndarray = callPackage ./python-modules/qimage2ndarray { }; - -# qingping-ble = callPackage ./python-modules/qingping-ble { }; - -# qiskit = callPackage ./python-modules/qiskit { }; - -# qiskit-aer = callPackage ./python-modules/qiskit-aer { }; - -# qiskit-finance = callPackage ./python-modules/qiskit-finance { }; - -# qiskit-ibmq-provider = callPackage ./python-modules/qiskit-ibmq-provider { }; - -# qiskit-ignis = callPackage ./python-modules/qiskit-ignis { }; - -# qiskit-machine-learning = callPackage ./python-modules/qiskit-machine-learning { }; - -# qiskit-nature = callPackage ./python-modules/qiskit-nature { }; - -# qiskit-optimization = callPackage ./python-modules/qiskit-optimization { }; - -# qiskit-terra = callPackage ./python-modules/qiskit-terra { }; - -# qnap-qsw = callPackage ./python-modules/qnap-qsw{ }; - -# qnapstats = callPackage ./python-modules/qnapstats { }; - -# qpageview = callPackage ./python-modules/qpageview { }; - -# qpsolvers = callPackage ./python-modules/qpsolvers { }; - -# qrcode = callPackage ./python-modules/qrcode { }; - -# qreactor = callPackage ./python-modules/qreactor { }; - -# qscintilla-qt5 = pkgs.libsForQt5.callPackage ./python-modules/qscintilla-qt5 { -# pythonPackages = self; -# }; - -# qscintilla = self.qscintilla-qt5; - -# qstylizer = callPackage ./python-modules/qstylizer { }; - -# qt-material = callPackage ./python-modules/qt-material { }; - -# qt5reactor = callPackage ./python-modules/qt5reactor { }; - -# qt6 = pkgs.qt6.override { -# python3 = self.python; -# }; - -# qtawesome = callPackage ./python-modules/qtawesome { }; - -# qtconsole = callPackage ./python-modules/qtconsole { }; - -# qtile = callPackage ./python-modules/qtile { -# wlroots = pkgs.wlroots_0_16; -# }; -# qtile-extras = callPackage ./python-modules/qtile-extras { }; - -# qtpy = callPackage ./python-modules/qtpy { }; - -# quadprog = callPackage ./python-modules/quadprog { }; - -# qualysclient = callPackage ./python-modules/qualysclient { }; - -# quamash = callPackage ./python-modules/quamash { }; - -# quandl = callPackage ./python-modules/quandl { }; - -# quantile-forest = callPackage ./python-modules/quantile-forest { }; - -# quantities = callPackage ./python-modules/quantities { }; - -# quantiphy = callPackage ./python-modules/quantiphy { }; - -# quantile-python = callPackage ./python-modules/quantile-python { }; - -# quantiphy-eval = callPackage ./python-modules/quantiphy-eval { }; - -# quantum-gateway = callPackage ./python-modules/quantum-gateway { }; - -# quantulum3 = callPackage ./python-modules/quantulum3 { }; - -# quart = callPackage ./python-modules/quart { }; - -# quart-cors = callPackage ./python-modules/quart-cors { }; - -# quaternion = callPackage ./python-modules/quaternion { }; - -# qudida = callPackage ./python-modules/qudida { }; - -# querystring-parser = callPackage ./python-modules/querystring-parser { }; - -# questionary = callPackage ./python-modules/questionary { }; - -# queuelib = callPackage ./python-modules/queuelib { }; - -# quil = callPackage ./python-modules/quil { }; - -# quixote = callPackage ./python-modules/quixote { }; - -# qutip = callPackage ./python-modules/qutip { }; - -# qmk-dotty-dict = callPackage ./python-modules/qmk-dotty-dict { }; - -# r2pipe = callPackage ./python-modules/r2pipe { }; - -# rachiopy = callPackage ./python-modules/rachiopy { }; - -# radicale-infcloud = callPackage ./python-modules/radicale-infcloud { -# radicale = pkgs.radicale.override { python3 = python; }; -# }; - -# radian = callPackage ./python-modules/radian { }; - -# radio-beam = callPackage ./python-modules/radio-beam { }; - -# radios = callPackage ./python-modules/radios { }; - -# radiotherm = callPackage ./python-modules/radiotherm { }; - -# radish-bdd = callPackage ./python-modules/radish-bdd { }; - -# radon = callPackage ./python-modules/radon { }; - -# railroad-diagrams = callPackage ./python-modules/railroad-diagrams { }; - -# rainbowstream = callPackage ./python-modules/rainbowstream { }; - -# raincloudy = callPackage ./python-modules/raincloudy { }; - -# ramlfications = callPackage ./python-modules/ramlfications { }; - -# random2 = callPackage ./python-modules/random2 { }; - -# randomfiletree = callPackage ./python-modules/randomfiletree { }; - -# range-typed-integers = callPackage ./python-modules/range-typed-integers { }; - -# rangehttpserver = callPackage ./python-modules/rangehttpserver { }; - -# rangeparser = callPackage ./python-modules/rangeparser { }; - -# rank-bm25 = callPackage ./python-modules/rank-bm25 { }; - -# rapidfuzz = callPackage ./python-modules/rapidfuzz { }; - -# rapidfuzz-capi = callPackage ./python-modules/rapidfuzz-capi { }; - -# rapidgzip = callPackage ./python-modules/rapidgzip { inherit (pkgs) nasm; }; - -# rapt-ble = callPackage ./python-modules/rapt-ble { }; - -# rarfile = callPackage ./python-modules/rarfile { -# inherit (pkgs) libarchive; -# }; - -# rasterio = callPackage ./python-modules/rasterio { }; - -# ratarmountcore = callPackage ./python-modules/ratarmountcore { inherit (pkgs) zstd; }; - -# ratarmount = callPackage ./python-modules/ratarmount { }; - -# ratelim = callPackage ./python-modules/ratelim { }; - -# ratelimit = callPackage ./python-modules/ratelimit { }; - -# rauth = callPackage ./python-modules/rauth { }; - -# raven = callPackage ./python-modules/raven { }; - -# rawkit = callPackage ./python-modules/rawkit { }; - -# ray = callPackage ./python-modules/ray { }; - -# razdel = callPackage ./python-modules/razdel { }; - -# rbtools = callPackage ./python-modules/rbtools { }; - -# rchitect = callPackage ./python-modules/rchitect { }; - -# rcssmin = callPackage ./python-modules/rcssmin { }; - -# rdflib = callPackage ./python-modules/rdflib { }; - -# rdkit = callPackage ./python-modules/rdkit { -# boost = pkgs.boost182.override { -# enablePython = true; -# inherit python; -# }; -# }; - -# re-assert = callPackage ./python-modules/re-assert { }; - -# readability-lxml = callPackage ./python-modules/readability-lxml { }; - -# readabilipy = callPackage ./python-modules/readabilipy { }; - -# readchar = callPackage ./python-modules/readchar { }; - -# readlike = callPackage ./python-modules/readlike { }; - -# readmdict = callPackage ./python-modules/readmdict { }; - -# readme = callPackage ./python-modules/readme { }; - -# readme-renderer = callPackage ./python-modules/readme-renderer { }; - -# readthedocs-sphinx-ext = callPackage ./python-modules/readthedocs-sphinx-ext { }; - -# reactivex = callPackage ./python-modules/reactivex { }; - -# rebulk = callPackage ./python-modules/rebulk { }; - -# recipe-scrapers = callPackage ./python-modules/recipe-scrapers { }; - -# recline = callPackage ./python-modules/recline { }; - -# recoll = toPythonModule (pkgs.recoll.override { -# python3Packages = self; -# }); - -# recommonmark = callPackage ./python-modules/recommonmark { }; - -# reconplogger = callPackage ./python-modules/reconplogger { }; - -# recordlinkage = callPackage ./python-modules/recordlinkage { }; - -# recurring-ical-events = callPackage ./python-modules/recurring-ical-events { }; - -# recursive-pth-loader = toPythonModule (callPackage ./python-modules/recursive-pth-loader { }); - -# red-black-tree-mod = callPackage ./python-modules/red-black-tree-mod { }; - -# redbaron = callPackage ./python-modules/redbaron { }; - -# redis = callPackage ./python-modules/redis { }; - -# redis-om = callPackage ./python-modules/redis-om { }; - -# redshift-connector = callPackage ./python-modules/redshift-connector { }; - -# reedsolo = callPackage ./python-modules/reedsolo { }; - -# referencing = callPackage ./python-modules/referencing { }; - -# refery = callPackage ./python-modules/refery { }; - -# reflink = callPackage ./python-modules/reflink { }; - -# regenmaschine = callPackage ./python-modules/regenmaschine { }; - -# regex = callPackage ./python-modules/regex { }; - -# regional = callPackage ./python-modules/regional { }; - -# reikna = callPackage ./python-modules/reikna { }; - -# related = callPackage ./python-modules/related { }; - -# relatorio = callPackage ./python-modules/relatorio { }; - -# releases = callPackage ./python-modules/releases { }; - -# remarshal = callPackage ./python-modules/remarshal { }; - -# remi = callPackage ./python-modules/remi { }; - -# remote-pdb = callPackage ./python-modules/remote-pdb { }; - -# remotezip = callPackage ./python-modules/remotezip { }; - -# renault-api = callPackage ./python-modules/renault-api { }; - -# rencode = callPackage ./python-modules/rencode { }; - -# renson-endura-delta = callPackage ./python-modules/renson-endura-delta { }; - -# reorder-python-imports = callPackage ./python-modules/reorder-python-imports { }; - -# reolink = callPackage ./python-modules/reolink { }; - -# reolink-aio = callPackage ./python-modules/reolink-aio { }; - -# reparser = callPackage ./python-modules/reparser { }; - -# repath = callPackage ./python-modules/repath { }; - -# repeated-test = callPackage ./python-modules/repeated-test { }; - -# repocheck = callPackage ./python-modules/repocheck { }; - -# reportengine = callPackage ./python-modules/reportengine { }; - -# reportlab = callPackage ./python-modules/reportlab { }; - -# repoze-lru = callPackage ./python-modules/repoze-lru { }; - -# repoze-sphinx-autointerface = callPackage ./python-modules/repoze-sphinx-autointerface { }; - -# repoze-who = callPackage ./python-modules/repoze-who { }; - -# reproject = callPackage ./python-modules/reproject { }; - -# reprshed = callPackage ./python-modules/reprshed { }; - -# reptor = callPackage ./python-modules/reptor { }; - -# reqif = callPackage ./python-modules/reqif { }; - -# requests-aws4auth = callPackage ./python-modules/requests-aws4auth { }; - -# requests-cache = callPackage ./python-modules/requests-cache { }; - -# requests-credssp = callPackage ./python-modules/requests-credssp { }; - -# requests-gssapi = callPackage ./python-modules/requests-gssapi { }; - -# requests-hawk = callPackage ./python-modules/requests-hawk { }; - - requests = callPackage ./python-modules/requests { }; - -# requests-download = callPackage ./python-modules/requests-download { }; - -# requestsexceptions = callPackage ./python-modules/requestsexceptions { }; - -# requests-file = callPackage ./python-modules/requests-file { }; - -# requests-futures = callPackage ./python-modules/requests-futures { }; - -# requests-http-signature = callPackage ./python-modules/requests-http-signature { }; - -# requests-kerberos = callPackage ./python-modules/requests-kerberos { }; - -# requests-mock = callPackage ./python-modules/requests-mock { }; - -# requests-ntlm = callPackage ./python-modules/requests-ntlm { }; - -# requests-oauthlib = callPackage ./python-modules/requests-oauthlib { }; - -# requests-pkcs12 = callPackage ./python-modules/requests-pkcs12 { }; - -# requests-ratelimiter = callPackage ./python-modules/requests-ratelimiter { }; - -# requests-toolbelt = callPackage ./python-modules/requests-toolbelt { }; - -# requests-unixsocket = callPackage ./python-modules/requests-unixsocket { }; - -# requests-wsgi-adapter = callPackage ./python-modules/requests-wsgi-adapter { }; - -# requirements-detector = callPackage ./python-modules/requirements-detector { }; - -# requirements-parser = callPackage ./python-modules/requirements-parser { }; - -# reretry = callPackage ./python-modules/reretry { }; - -# rerun-sdk = callPackage ./python-modules/rerun-sdk { }; - -# resampy = callPackage ./python-modules/resampy { }; - -# resend = callPackage ./python-modules/resend { }; - -# resize-right = callPackage ./python-modules/resize-right { }; - -# resolvelib = callPackage ./python-modules/resolvelib { }; - - responses = callPackage ./python-modules/responses { }; - -# respx = callPackage ./python-modules/respx { }; - -# restfly = callPackage ./python-modules/restfly { }; - -# restrictedpython = callPackage ./python-modules/restrictedpython { }; - -# restructuredtext-lint = callPackage ./python-modules/restructuredtext-lint { }; - -# restview = callPackage ./python-modules/restview { }; - -# result = callPackage ./python-modules/result { }; - -# rethinkdb = callPackage ./python-modules/rethinkdb { }; - -# retry = callPackage ./python-modules/retry { }; - -# retry-decorator = callPackage ./python-modules/retry-decorator { }; - -# retrying = callPackage ./python-modules/retrying { }; - -# returns = callPackage ./python-modules/returns { }; - -# reuse = callPackage ./python-modules/reuse { }; - -# rfc3339 = callPackage ./python-modules/rfc3339 { }; - -# rfc3339-validator = callPackage ./python-modules/rfc3339-validator { }; - -# rfc3986 = callPackage ./python-modules/rfc3986 { }; - -# rfc3986-validator = callPackage ./python-modules/rfc3986-validator { }; - -# rfc3987 = callPackage ./python-modules/rfc3987 { }; - -# rfc6555 = callPackage ./python-modules/rfc6555 { }; - -# rfc7464 = callPackage ./python-modules/rfc7464 { }; - -# rfcat = callPackage ./python-modules/rfcat { }; - -# rflink = callPackage ./python-modules/rflink { }; - -# rich = callPackage ./python-modules/rich { }; - -# rich-argparse = callPackage ./python-modules/rich-argparse { }; - -# rich-argparse-plus = callPackage ./python-modules/rich-argparse-plus { }; - -# rich-click = callPackage ./python-modules/rich-click { }; - -# rich-pixels = callPackage ./python-modules/rich-pixels { }; - -# rich-rst = callPackage ./python-modules/rich-rst { }; - -# ring-doorbell = callPackage ./python-modules/ring-doorbell { }; - -# ripe-atlas-cousteau = callPackage ./python-modules/ripe-atlas-cousteau { }; - -# ripe-atlas-sagan = callPackage ./python-modules/ripe-atlas-sagan { }; - -# riprova = callPackage ./python-modules/riprova { }; - -# ripser = callPackage ./python-modules/ripser { }; - -# riscof = callPackage ./python-modules/riscof { }; - -# riscv-config = callPackage ./python-modules/riscv-config { }; - -# riscv-isac = callPackage ./python-modules/riscv-isac { }; - -# rising = callPackage ./python-modules/rising { }; - -# ritassist = callPackage ./python-modules/ritassist { }; - -# rivet = toPythonModule (pkgs.rivet.override { -# python3 = python; -# }); - -# rjpl = callPackage ./python-modules/rjpl { }; - -# rjsmin = callPackage ./python-modules/rjsmin { }; - -# rki-covid-parser = callPackage ./python-modules/rki-covid-parser { }; - -# rkm-codes = callPackage ./python-modules/rkm-codes { }; - -# rlax = callPackage ./python-modules/rlax { }; - -# rlp = callPackage ./python-modules/rlp { }; - -# rmcl = callPackage ./python-modules/rmcl { }; - -# rmrl = callPackage ./python-modules/rmrl { }; - -# rmscene = callPackage ./python-modules/rmscene { }; - -# rmsd = callPackage ./python-modules/rmsd { }; - -# rnc2rng = callPackage ./python-modules/rnc2rng { }; - -# rnginline = callPackage ./python-modules/rnginline { }; - -# rns = callPackage ./python-modules/rns { }; - -# roadlib = callPackage ./python-modules/roadlib { }; - -# roadrecon = callPackage ./python-modules/roadrecon { }; - -# roadtools = callPackage ./python-modules/roadtools { }; - -# roadtx = callPackage ./python-modules/roadtx { }; - -# robomachine = callPackage ./python-modules/robomachine { }; - -# robot-detection = callPackage ./python-modules/robot-detection { }; - -# robotframework = callPackage ./python-modules/robotframework { }; - -# robotframework-databaselibrary = callPackage ./python-modules/robotframework-databaselibrary { }; - -# robotframework-excellib = callPackage ./python-modules/robotframework-excellib { }; - -# robotframework-pythonlibcore = callPackage ./python-modules/robotframework-pythonlibcore { }; - -# robotframework-requests = callPackage ./python-modules/robotframework-requests { }; - -# robotframework-selenium2library = callPackage ./python-modules/robotframework-selenium2library { }; - -# robotframework-seleniumlibrary = callPackage ./python-modules/robotframework-seleniumlibrary { }; - -# robotframework-sshlibrary = callPackage ./python-modules/robotframework-sshlibrary { }; - -# robotframework-tools = callPackage ./python-modules/robotframework-tools { }; - -# robotstatuschecker = callPackage ./python-modules/robotstatuschecker { }; - -# robotsuite = callPackage ./python-modules/robotsuite { }; - -# rocket-errbot = callPackage ./python-modules/rocket-errbot { }; - -# roku = callPackage ./python-modules/roku { }; - -# rokuecp = callPackage ./python-modules/rokuecp { }; - -# rollbar = callPackage ./python-modules/rollbar { }; - -# roman = callPackage ./python-modules/roman { }; - -# romy = callPackage ./python-modules/romy { }; - -# roombapy = callPackage ./python-modules/roombapy { }; - -# roonapi = callPackage ./python-modules/roonapi { }; - -# ronin = callPackage ./python-modules/ronin { }; - -# rope = callPackage ./python-modules/rope { }; - -# ropgadget = callPackage ./python-modules/ropgadget { }; - -# ropper = callPackage ./python-modules/ropper { }; - -# rotary-embedding-torch = callPackage ./python-modules/rotary-embedding-torch { }; - -# rouge-score = callPackage ./python-modules/rouge-score { }; - -# routeros-api = callPackage ./python-modules/routeros-api { }; - -# routes = callPackage ./python-modules/routes { }; - -# rova = callPackage ./python-modules/rova { }; - -# rpcq = callPackage ./python-modules/rpcq { }; - -# rpdb = callPackage ./python-modules/rpdb { }; - -# rpds-py = callPackage ./python-modules/rpds-py { }; - -# rpi-bad-power = callPackage ./python-modules/rpi-bad-power { }; - -# rpi-gpio = callPackage ./python-modules/rpi-gpio { }; - -# rpi-gpio2 = callPackage ./python-modules/rpi-gpio2 { }; - -# rplcd = callPackage ./python-modules/rplcd { }; - -# rply = callPackage ./python-modules/rply { }; - -# rpm = toPythonModule (pkgs.rpm.override { -# inherit python; -# }); - -# rpmfile = callPackage ./python-modules/rpmfile { }; - -# rpmfluff = callPackage ./python-modules/rpmfluff { }; - -# rpy2 = callPackage ./python-modules/rpy2 { }; - -# rpyc = callPackage ./python-modules/rpyc { }; - -# rpyc4 = callPackage ./python-modules/rpyc4 { }; - -# rq = callPackage ./python-modules/rq { -# redis-server = pkgs.redis; -# }; - -# rsa = callPackage ./python-modules/rsa { }; - -# rsskey = callPackage ./python-modules/rsskey { }; - -# rst2ansi = callPackage ./python-modules/rst2ansi { }; - -# rst2pdf = callPackage ./python-modules/rst2pdf { }; - -# rstcheck = callPackage ./python-modules/rstcheck { }; - -# rstcheck-core = callPackage ./python-modules/rstcheck-core { }; - -# rstr = callPackage ./python-modules/rstr { }; - -# rtmidi-python = callPackage ./python-modules/rtmidi-python { -# inherit (pkgs.darwin.apple_sdk.frameworks) CoreAudio CoreMIDI CoreServices; -# }; - -# rtoml = callPackage ./python-modules/rtoml { }; - -# rtp = callPackage ./python-modules/rtp { }; - -# rtree = callPackage ./python-modules/rtree { -# inherit (pkgs) libspatialindex; -# }; - -# rtslib = callPackage ./python-modules/rtslib { }; - -# rtsp-to-webrtc = callPackage ./python-modules/rtsp-to-webrtc { }; - -# ruamel-base = callPackage ./python-modules/ruamel-base { }; - -# ruamel-yaml = callPackage ./python-modules/ruamel-yaml { }; - -# ruamel-yaml-clib = callPackage ./python-modules/ruamel-yaml-clib { }; - -# rubicon-objc = callPackage ./python-modules/rubicon-objc { }; - -# rubymarshal = callPackage ./python-modules/rubymarshal { }; - -# ruffus = callPackage ./python-modules/ruffus { }; - -# rules = callPackage ./python-modules/rules { }; - -# runs = callPackage ./python-modules/runs { }; - -# ruuvitag-ble = callPackage ./python-modules/ruuvitag-ble { }; - -# ruyaml = callPackage ./python-modules/ruyaml { }; - -# rx = callPackage ./python-modules/rx { }; - -# rxv = callPackage ./python-modules/rxv { }; - -# rzpipe = callPackage ./python-modules/rzpipe { }; - -# s2clientprotocol = callPackage ./python-modules/s2clientprotocol { }; - -# s3fs = callPackage ./python-modules/s3fs { }; - -# s3transfer = callPackage ./python-modules/s3transfer { }; - -# s3-credentials = callPackage ./python-modules/s3-credentials { }; - -# sabctools = callPackage ./python-modules/sabctools { }; - -# sabyenc3 = callPackage ./python-modules/sabyenc3 { }; - -# sabyenc = callPackage ./python-modules/sabyenc { }; - -# sacn = callPackage ./python-modules/sacn { }; - -# sacrebleu = callPackage ./python-modules/sacrebleu { }; - -# sacremoses = callPackage ./python-modules/sacremoses { }; - -# safe = callPackage ./python-modules/safe { }; - -# safe-pysha3 = callPackage ./python-modules/safe-pysha3 { }; - -# safeio = callPackage ./python-modules/safeio { }; - -# safetensors = callPackage ./python-modules/safetensors { }; - -# safety = callPackage ./python-modules/safety { }; - -# safety-schemas = callPackage ./python-modules/safety-schemas { }; - -# sagemaker = callPackage ./python-modules/sagemaker { }; - -# salmon-mail = callPackage ./python-modules/salmon-mail { }; - -# sane = callPackage ./python-modules/sane { -# inherit (pkgs) sane-backends; -# }; - -# saneyaml = callPackage ./python-modules/saneyaml { }; - -# sampledata = callPackage ./python-modules/sampledata { }; - -# samplerate = callPackage ./python-modules/samplerate { -# inherit (pkgs) libsamplerate; -# }; - -# samsungctl = callPackage ./python-modules/samsungctl { }; - -# 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-auth = callPackage ./python-modules/sanic-auth { }; - -# sanic-routing = callPackage ./python-modules/sanic-routing { }; - -# sanic-testing = callPackage ./python-modules/sanic-testing { }; - -# sanix = callPackage ./python-modules/sanix { }; - -# sansio-multipart = callPackage ./python-modules/sansio-multipart { }; - -# sarif-om = callPackage ./python-modules/sarif-om { }; - -# sarge = callPackage ./python-modules/sarge { }; - -# sasmodels = callPackage ./python-modules/sasmodels { }; - -# scalene = callPackage ./python-modules/scalene { }; - -# scales = callPackage ./python-modules/scales { }; - -# scancode-toolkit = callPackage ./python-modules/scancode-toolkit { }; - -# scapy = callPackage ./python-modules/scapy { -# inherit (pkgs) libpcap; # Avoid confusion with python package of the same name -# }; - -# schedule = callPackage ./python-modules/schedule { }; - -# schema = callPackage ./python-modules/schema { }; - -# schemainspect = callPackage ./python-modules/schemainspect { }; - -# schema-salad = callPackage ./python-modules/schema-salad { }; - -# schemdraw = callPackage ./python-modules/schemdraw { }; - -# schiene = callPackage ./python-modules/schiene { }; - -# schwifty = callPackage ./python-modules/schwifty { }; - -# scim2-filter-parser = callPackage ./python-modules/scim2-filter-parser { }; - -# scikit-bio = callPackage ./python-modules/scikit-bio { }; - -# scikit-build = callPackage ./python-modules/scikit-build { }; - -# scikit-build-core = callPackage ./python-modules/scikit-build-core { }; - -# scikit-fmm = callPackage ./python-modules/scikit-fmm { }; - -# scikit-fuzzy = callPackage ./python-modules/scikit-fuzzy { }; - -# scikit-hep-testdata = callPackage ./python-modules/scikit-hep-testdata { }; - -# scikit-image = callPackage ./python-modules/scikit-image { }; - -# scikit-learn = callPackage ./python-modules/scikit-learn { -# inherit (pkgs) gfortran glibcLocales; -# }; - -# scikit-learn-extra = callPackage ./python-modules/scikit-learn-extra { }; - -# scikit-misc = callPackage ./python-modules/scikit-misc { }; - -# scikit-optimize = callPackage ./python-modules/scikit-optimize { }; - -# scikit-posthocs = callPackage ./python-modules/scikit-posthocs { }; - -# scikit-rf = callPackage ./python-modules/scikit-rf { }; - -# scikits-odes = callPackage ./python-modules/scikits-odes { }; - -# scikits-samplerate = callPackage ./python-modules/scikits-samplerate { -# inherit (pkgs) libsamplerate; -# }; - -# scikit-tda = callPackage ./python-modules/scikit-tda { }; - -# scipy = callPackage ./python-modules/scipy { }; - -# scmrepo = callPackage ./python-modules/scmrepo { }; - -# scour = callPackage ./python-modules/scour { }; - -# scooby = callPackage ./python-modules/scooby { }; - -# scp = callPackage ./python-modules/scp { }; - -# scramp = callPackage ./python-modules/scramp { }; - -# scrap-engine = callPackage ./python-modules/scrap-engine { }; - -# scrapy = callPackage ./python-modules/scrapy { }; - -# scrapy-deltafetch = callPackage ./python-modules/scrapy-deltafetch { }; - -# scrapy-fake-useragent = callPackage ./python-modules/scrapy-fake-useragent { }; - -# scrapy-splash = callPackage ./python-modules/scrapy-splash { }; - -# screed = callPackage ./python-modules/screed { }; - -# screeninfo = callPackage ./python-modules/screeninfo { }; - -# screenlogicpy = callPackage ./python-modules/screenlogicpy { }; - -# scripttest = callPackage ./python-modules/scripttest { }; - -# scikit-survival = callPackage ./python-modules/scikit-survival { }; - -# scs = callPackage ./python-modules/scs { -# inherit (pkgs.darwin.apple_sdk.frameworks) Accelerate; -# }; - -# sdds = callPackage ./python-modules/sdds { }; - -# sdkmanager = callPackage ./python-modules/sdkmanager { }; - -# sdnotify = callPackage ./python-modules/sdnotify { }; - -# seaborn = callPackage ./python-modules/seaborn { }; - -# seabreeze = callPackage ./python-modules/seabreeze { }; - -# seaserv = toPythonModule (pkgs.seafile-server.override { -# python3 = self.python; -# }); - -# seasonal = callPackage ./python-modules/seasonal { }; - -# seatconnect = callPackage ./python-modules/seatconnect { }; - -# seccomp = callPackage ./python-modules/seccomp { }; - -# secp256k1 = callPackage ./python-modules/secp256k1 { -# inherit (pkgs) secp256k1; -# }; - -# secretstorage = callPackage ./python-modules/secretstorage { }; - -# secure = callPackage ./python-modules/secure { }; - -# securesystemslib = callPackage ./python-modules/securesystemslib { }; - -# securetar = callPackage ./python-modules/securetar { }; - -# securityreporter = callPackage ./python-modules/securityreporter { }; - -# sectools = callPackage ./python-modules/sectools { }; - -# seedir = callPackage ./python-modules/seedir { }; - -# seekpath = callPackage ./python-modules/seekpath { }; - -# segments = callPackage ./python-modules/segments { }; - -# segno = callPackage ./python-modules/segno { }; - -# segyio = toPythonModule (callPackage ./python-modules/segyio { -# inherit (pkgs) cmake ninja; -# }); - -# selectors2 = callPackage ./python-modules/selectors2 { }; - -# selenium = callPackage ./python-modules/selenium { }; - -# selenium-wire = callPackage ./python-modules/selenium-wire { }; - -# semantic-version = callPackage ./python-modules/semantic-version { }; - -# semaphore-bot = callPackage ./python-modules/semaphore-bot { }; - -# semver = callPackage ./python-modules/semver { }; - -# send2trash = callPackage ./python-modules/send2trash { }; - -# sendgrid = callPackage ./python-modules/sendgrid { }; - -# sense-energy = callPackage ./python-modules/sense-energy { }; - -# sensirion-ble = callPackage ./python-modules/sensirion-ble { }; - -# sensor-state-data = callPackage ./python-modules/sensor-state-data { }; - -# sensorpro-ble = callPackage ./python-modules/sensorpro-ble { }; - -# sensorpush-ble = callPackage ./python-modules/sensorpush-ble { }; - -# sentencepiece = callPackage ./python-modules/sentencepiece { -# inherit (pkgs) sentencepiece; -# }; - -# sentence-splitter = callPackage ./python-modules/sentence-splitter { }; - -# sentence-transformers = callPackage ./python-modules/sentence-transformers { }; - -# sentinel = callPackage ./python-modules/sentinel { }; - -# sentinels = callPackage ./python-modules/sentinels { }; - -# sentry-sdk = callPackage ./python-modules/sentry-sdk { }; - -# sepaxml = callPackage ./python-modules/sepaxml { }; - -# seqdiag = callPackage ./python-modules/seqdiag { }; - -# seqeval = callPackage ./python-modules/seqeval { }; - -# serialio = callPackage ./python-modules/serialio { }; - -# serializable = callPackage ./python-modules/serializable { }; - -# serpent = callPackage ./python-modules/serpent { }; - -# serpy = callPackage ./python-modules/serpy { }; - -# servefile = callPackage ./python-modules/servefile { }; - -# serverfiles = callPackage ./python-modules/serverfiles { }; - -# serverlessrepo = callPackage ./python-modules/serverlessrepo { }; - -# service-identity = callPackage ./python-modules/service-identity { }; - - setproctitle = callPackage ./python-modules/setproctitle { }; - -# setupmeta = callPackage ./python-modules/setupmeta { }; - -# setuptools-changelog-shortener = callPackage ./python-modules/setuptools-changelog-shortener { }; - -# setuptools-declarative-requirements = callPackage ./python-modules/setuptools-declarative-requirements { }; - -# setuptools-dso = callPackage ./python-modules/setuptools-dso { }; - -# setuptools-generate = callPackage ./python-modules/setuptools-generate { }; - -# setuptools-gettext = callPackage ./python-modules/setuptools-gettext { }; - -# setuptools-git = callPackage ./python-modules/setuptools-git { }; - -# setuptools-git-versioning = callPackage ./python-modules/setuptools-git-versioning { }; - -# setuptools-lint = callPackage ./python-modules/setuptools-lint { }; - -# setuptools-odoo = callPackage ./python-modules/setuptools-odoo { }; - -# 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-trial = callPackage ./python-modules/setuptools-trial { }; - -# seventeentrack = callPackage ./python-modules/seventeentrack { }; - -# sev-snp-measure = callPackage ./python-modules/sev-snp-measure { }; - -# sexpdata = callPackage ./python-modules/sexpdata { }; - -# sfepy = callPackage ./python-modules/sfepy { }; - -# sfrbox-api = callPackage ./python-modules/sfrbox-api { }; - -# sgmllib3k = callPackage ./python-modules/sgmllib3k { }; - -# sgp4 = callPackage ./python-modules/sgp4 { }; - -# shamir-mnemonic = callPackage ./python-modules/shamir-mnemonic { }; - -# shap = callPackage ./python-modules/shap { }; - -# shapely = callPackage ./python-modules/shapely { }; - -# shapely_1_8 = callPackage ./python-modules/shapely/1.8.nix { }; - -# shaperglot = callPackage ./python-modules/shaperglot { }; - -# sharedmem = callPackage ./python-modules/sharedmem { }; - -# sharkiq = callPackage ./python-modules/sharkiq { }; - -# sharp-aquos-rc = callPackage ./python-modules/sharp-aquos-rc { }; - -# shazamio = callPackage ./python-modules/shazamio { }; - -# sh = callPackage ./python-modules/sh { }; - -# shlib = callPackage ./python-modules/shlib { }; - -# shellescape = callPackage ./python-modules/shellescape { }; - -# shellingham = callPackage ./python-modules/shellingham { }; - -# shiboken2 = toPythonModule (callPackage ./python-modules/shiboken2 { -# inherit (pkgs) cmake llvmPackages_15 qt5; -# }); - -# shiboken6 = toPythonModule (callPackage ./python-modules/shiboken6 { -# inherit (pkgs) cmake llvmPackages; -# }); - -# shippai = callPackage ./python-modules/shippai { }; - -# shiv = callPackage ./python-modules/shiv { }; - -# shodan = callPackage ./python-modules/shodan { }; - -# shortuuid = callPackage ./python-modules/shortuuid { }; - -# shouldbe = callPackage ./python-modules/shouldbe { }; - -# should-dsl = callPackage ./python-modules/should-dsl { }; - -# show-in-file-manager = callPackage ./python-modules/show-in-file-manager { }; - -# showit = callPackage ./python-modules/showit { }; - -# shtab = callPackage ./python-modules/shtab { }; - -# shutilwhich = callPackage ./python-modules/shutilwhich { }; - -# sievelib = callPackage ./python-modules/sievelib { }; - -# signalslot = callPackage ./python-modules/signalslot { }; - -# signedjson = callPackage ./python-modules/signedjson { }; - -# signxml = callPackage ./python-modules/signxml { }; - -# sigrok = callPackage ./python-modules/sigrok { }; - -# sigstore = callPackage ./python-modules/sigstore { }; - -# sigstore-protobuf-specs = callPackage ./python-modules/sigstore-protobuf-specs { }; - -# sigstore-rekor-types = callPackage ./python-modules/sigstore-rekor-types { }; - -# sigtools = callPackage ./python-modules/sigtools { }; - -# simanneal = callPackage ./python-modules/simanneal { }; - -# simber = callPackage ./python-modules/simber { }; - -# simple-term-menu = callPackage ./python-modules/simple-term-menu { }; - -# simpleaudio = callPackage ./python-modules/simpleaudio { }; - -# simplebayes = callPackage ./python-modules/simplebayes { }; - -# simpleeval = callPackage ./python-modules/simpleeval { }; - -# simplefix = callPackage ./python-modules/simplefix { }; - -# simplegeneric = callPackage ./python-modules/simplegeneric { }; - -# simplehound = callPackage ./python-modules/simplehound { }; - -# simpleitk = callPackage ./python-modules/simpleitk { -# inherit (pkgs) simpleitk; -# }; - -# simplejson = callPackage ./python-modules/simplejson { }; - -# simplekml = callPackage ./python-modules/simplekml { }; - -# simplekv = callPackage ./python-modules/simplekv { }; - -# simplemma = callPackage ./python-modules/simplemma { }; - -# simplenote = callPackage ./python-modules/simplenote { }; - -# simplepush = callPackage ./python-modules/simplepush { }; - -# simplesat = callPackage ./python-modules/simplesat { }; - -# simplesqlite = callPackage ./python-modules/simplesqlite { }; - -# simple-dftd3 = callPackage ../development/libraries/science/chemistry/simple-dftd3/python.nix { -# inherit (pkgs) simple-dftd3; -# }; - -# simple-di = callPackage ./python-modules/simple-di { }; - -# simple-rest-client = callPackage ./python-modules/simple-rest-client { }; - -# simple-rlp = callPackage ./python-modules/simple-rlp { }; - -# simple-salesforce = callPackage ./python-modules/simple-salesforce { }; - -# simple-websocket = callPackage ./python-modules/simple-websocket { }; - -# simple-websocket-server = callPackage ./python-modules/simple-websocket-server { }; - -# simplisafe-python = callPackage ./python-modules/simplisafe-python { }; - -# simpful = callPackage ./python-modules/simpful { }; - -# simpy = callPackage ./python-modules/simpy { }; - -# single-source = callPackage ./python-modules/single-source { }; - -# single-version = callPackage ./python-modules/single-version { }; - -# signify = callPackage ./python-modules/signify { }; - -# siobrultech-protocols = callPackage ./python-modules/siobrultech-protocols { }; - -# siosocks = callPackage ./python-modules/siosocks { }; - -# sip = callPackage ./python-modules/sip { }; - -# sip4 = callPackage ./python-modules/sip/4.x.nix { }; - -# sipyco = callPackage ./python-modules/sipyco { }; - -# sisyphus-control = callPackage ./python-modules/sisyphus-control { }; - -# siuba = callPackage ./python-modules/siuba { }; - - six = callPackage ./python-modules/six { }; - -# sjcl = callPackage ./python-modules/sjcl { }; - -# skein = callPackage ./python-modules/skein { }; - -# skidl = callPackage ./python-modules/skidl { }; - -# skl2onnx = callPackage ./python-modules/skl2onnx { }; - -# sklearn-deap = callPackage ./python-modules/sklearn-deap { }; - -# skodaconnect = callPackage ./python-modules/skodaconnect { }; - -# skorch = callPackage ./python-modules/skorch { }; - -# skrl = callPackage ./python-modules/skrl { }; - -# skybellpy = callPackage ./python-modules/skybellpy { }; - -# skyfield = callPackage ./python-modules/skyfield { }; - -# skytemple-dtef = callPackage ./python-modules/skytemple-dtef { }; - -# skytemple-eventserver = callPackage ./python-modules/skytemple-eventserver { }; - -# skytemple-files = callPackage ./python-modules/skytemple-files { }; - -# skytemple-icons = callPackage ./python-modules/skytemple-icons { }; - -# 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-emulator = callPackage ./python-modules/skytemple-ssb-emulator { }; - -# slack-bolt = callPackage ./python-modules/slack-bolt { }; - -# slack-sdk = callPackage ./python-modules/slack-sdk { }; - -# slackclient = callPackage ./python-modules/slackclient { }; - -# sleekxmpp = callPackage ./python-modules/sleekxmpp { }; - -# sleepyq = callPackage ./python-modules/sleepyq { }; - -# slicedimage = callPackage ./python-modules/slicedimage { }; - -# slicer = callPackage ./python-modules/slicer { }; - -# slicerator = callPackage ./python-modules/slicerator { }; - -# slither-analyzer = callPackage ./python-modules/slither-analyzer { }; - -# slimit = callPackage ./python-modules/slimit { }; - -# slixmpp = callPackage ./python-modules/slixmpp { -# inherit (pkgs) gnupg; -# }; - -# slob = callPackage ./python-modules/slob { }; - -# slovnet = callPackage ./python-modules/slovnet { }; - -# slowapi = callPackage ./python-modules/slowapi { }; - -# slpp = callPackage ./python-modules/slpp { }; - -# slugid = callPackage ./python-modules/slugid { }; - -# sly = callPackage ./python-modules/sly { }; - -# smart-meter-texas = callPackage ./python-modules/smart-meter-texas { }; - -# smart-open = callPackage ./python-modules/smart-open { }; - -# smarthab = callPackage ./python-modules/smarthab { }; - -# smartypants = callPackage ./python-modules/smartypants { }; - -# smbprotocol = callPackage ./python-modules/smbprotocol { }; - -# smbus-cffi = callPackage ./python-modules/smbus-cffi { }; - -# smbus2 = callPackage ./python-modules/smbus2 { }; - -# smdebug-rulesconfig = callPackage ./python-modules/smdebug-rulesconfig { }; - -# smhi-pkg = callPackage ./python-modules/smhi-pkg { }; - -# smmap = callPackage ./python-modules/smmap { }; - -# smpplib = callPackage ./python-modules/smpplib { }; - -# smpp-pdu = callPackage ./python-modules/smpp-pdu { }; - -# smtpdfix = callPackage ./python-modules/smtpdfix { }; - -# snack = toPythonModule (pkgs.newt.override { -# inherit (self) python; -# }); - -# snakemake = toPythonModule (pkgs.snakemake.override { -# python3 = python; -# }); - -# snakemake-executor-plugin-cluster-generic = callPackage ./python-modules/snakemake-executor-plugin-cluster-generic { }; - -# snakemake-interface-common = callPackage ./python-modules/snakemake-interface-common { }; - -# snakemake-interface-executor-plugins = callPackage ./python-modules/snakemake-interface-executor-plugins { }; - -# snakemake-interface-report-plugins = callPackage ./python-modules/snakemake-interface-report-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-xrootd = callPackage ./python-modules/snakemake-storage-plugin-xrootd { }; - -# snakebite = callPackage ./python-modules/snakebite { }; - -# snakeviz = callPackage ./python-modules/snakeviz { }; - -# snap-helpers = callPackage ./python-modules/snap-helpers { }; - -# snapcast = callPackage ./python-modules/snapcast { }; - -# snapshottest = callPackage ./python-modules/snapshottest { }; - -# snaptime = callPackage ./python-modules/snaptime { }; - -# sniffio = callPackage ./python-modules/sniffio { }; - -# snitun = callPackage ./python-modules/snitun { }; - -# snorkel = callPackage ./python-modules/snorkel { }; - - snowballstemmer = callPackage ./python-modules/snowballstemmer { }; - -# snowflake-connector-python = callPackage ./python-modules/snowflake-connector-python { }; - -# snowflake-sqlalchemy = callPackage ./python-modules/snowflake-sqlalchemy { }; - -# snscrape = callPackage ./python-modules/snscrape { }; - -# snuggs = callPackage ./python-modules/snuggs { }; - -# soapysdr = toPythonModule (pkgs.soapysdr.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 { }; - -# social-auth-app-django = callPackage ./python-modules/social-auth-app-django { }; - -# social-auth-core = callPackage ./python-modules/social-auth-core { }; - -# socialscan = callPackage ./python-modules/socialscan { }; - -# socid-extractor = callPackage ./python-modules/socid-extractor { }; - -# sockio = callPackage ./python-modules/sockio { }; - -# sockjs = callPackage ./python-modules/sockjs { }; - -# sockjs-tornado = callPackage ./python-modules/sockjs-tornado { }; - -# socksio = callPackage ./python-modules/socksio { }; - -# socksipy-branch = callPackage ./python-modules/socksipy-branch { }; - -# soco = callPackage ./python-modules/soco { }; - -# softlayer = callPackage ./python-modules/softlayer { }; - -# solaredge = callPackage ./python-modules/solaredge { }; - -# solax = callPackage ./python-modules/solax { }; - -# solc-select = callPackage ./python-modules/solc-select { }; - -# solo-python = disabledIf (!pythonAtLeast "3.6") (callPackage ./python-modules/solo-python { }); - -# somajo = callPackage ./python-modules/somajo { }; - -# somfy-mylink-synergy = callPackage ./python-modules/somfy-mylink-synergy { }; - -# sonarr = callPackage ./python-modules/sonarr { }; - -# sonos-websocket = callPackage ./python-modules/sonos-websocket { }; - -# sopel = callPackage ./python-modules/sopel { }; - -# sorl-thumbnail = callPackage ./python-modules/sorl-thumbnail { }; - -# sortedcollections = callPackage ./python-modules/sortedcollections { }; - -# sortedcontainers = callPackage ./python-modules/sortedcontainers { }; - -# soundcloud-v2 = callPackage ./python-modules/soundcloud-v2 { }; - -# sounddevice = callPackage ./python-modules/sounddevice { }; - -# soundfile = callPackage ./python-modules/soundfile { }; - -# soupsieve = callPackage ./python-modules/soupsieve { }; - -# sourmash = callPackage ./python-modules/sourmash { }; - -# soxr = callPackage ./python-modules/soxr { -# libsoxr = pkgs.soxr; -# }; - -# spacy = callPackage ./python-modules/spacy { }; - -# spacy-alignments = callPackage ./python-modules/spacy-alignments { }; - -# spacy-legacy = callPackage ./python-modules/spacy/legacy.nix { }; - -# spacy-loggers = callPackage ./python-modules/spacy-loggers { }; - -# spacy-lookups-data = callPackage ./python-modules/spacy/lookups-data.nix { }; - -# spacy-models = callPackage ./python-modules/spacy/models.nix { -# inherit (pkgs) jq; -# }; - -# spacy-pkuseg = callPackage ./python-modules/spacy-pkuseg { }; - -# spacy-transformers = callPackage ./python-modules/spacy-transformers { }; - -# spake2 = callPackage ./python-modules/spake2 { }; - -# spark-parser = callPackage ./python-modules/spark-parser { }; - -# sparklines = callPackage ./python-modules/sparklines { }; - -# sparqlwrapper = callPackage ./python-modules/sparqlwrapper { }; - -# sparse = callPackage ./python-modules/sparse { }; - -# spatial-image = callPackage ./python-modules/spatial-image { }; - -# spdx = callPackage ./python-modules/spdx { }; - -# spdx-lookup = callPackage ./python-modules/spdx-lookup { }; - -# spdx-tools = callPackage ./python-modules/spdx-tools { }; - -# speaklater = callPackage ./python-modules/speaklater { }; - -# speaklater3 = callPackage ./python-modules/speaklater3 { }; - -# spectral-cube = callPackage ./python-modules/spectral-cube { }; - -# speechbrain = callPackage ./python-modules/speechbrain { }; - -# speechrecognition = callPackage ./python-modules/speechrecognition { }; - -# speedtest-cli = callPackage ./python-modules/speedtest-cli { }; - -# speg = callPackage ./python-modules/speg { }; - -# spglib = callPackage ./python-modules/spglib { }; - -# sphfile = callPackage ./python-modules/sphfile { }; - -# spiderpy = callPackage ./python-modules/spiderpy { }; - -# spinners = callPackage ./python-modules/spinners { }; - -# sphinx-automodapi = callPackage ./python-modules/sphinx-automodapi { -# graphviz = pkgs.graphviz; -# }; - -# sphinx-better-theme = callPackage ./python-modules/sphinx-better-theme { }; - -# sphinx-book-theme = callPackage ./python-modules/sphinx-book-theme { }; - -# sphinx-codeautolink = callPackage ./python-modules/sphinx-codeautolink { }; - -# sphinx-comments = callPackage ./python-modules/sphinx-comments { }; - -# sphinx-design = callPackage ./python-modules/sphinx-design { }; - -# sphinx-external-toc = callPackage ./python-modules/sphinx-external-toc { }; - -# sphinx-fortran = callPackage ./python-modules/sphinx-fortran { }; - -# sphinx-hoverxref = callPackage ./python-modules/sphinx-hoverxref { }; - -# sphinx-intl = callPackage ./python-modules/sphinx-intl { }; - -# sphinx-jupyterbook-latex = callPackage ./python-modules/sphinx-jupyterbook-latex { }; - -# sphinx-multitoc-numbering = callPackage ./python-modules/sphinx-multitoc-numbering { }; - -# sphinx-notfound-page = callPackage ./python-modules/sphinx-notfound-page { }; - -# sphinx-pytest = callPackage ./python-modules/sphinx-pytest { }; - -# sphinx-prompt = callPackage ./python-modules/sphinx-prompt { }; - -# sphinx-sitemap = callPackage ./python-modules/sphinx-sitemap { }; - -# sphinx-thebe = callPackage ./python-modules/sphinx-thebe { }; - -# sphinx-tabs = callPackage ./python-modules/sphinx-tabs { }; - -# sphinx-togglebutton = callPackage ./python-modules/sphinx-togglebutton { }; - -# sphinxcontrib-actdiag = callPackage ./python-modules/sphinxcontrib-actdiag { }; - -# sphinxcontrib-apidoc = callPackage ./python-modules/sphinxcontrib-apidoc { }; - - sphinxcontrib-applehelp = callPackage ./python-modules/sphinxcontrib-applehelp { }; - -# sphinxcontrib-asyncio = callPackage ./python-modules/sphinxcontrib-asyncio { }; - -# sphinx-autoapi = callPackage ./python-modules/sphinx-autoapi { }; - -# sphinxcontrib-bayesnet = callPackage ./python-modules/sphinxcontrib-bayesnet { }; - -# sphinxcontrib-bibtex = callPackage ./python-modules/sphinxcontrib-bibtex { }; - -# sphinxcontrib-blockdiag = callPackage ./python-modules/sphinxcontrib-blockdiag { }; - -# sphinxcontrib-confluencebuilder = callPackage ./python-modules/sphinxcontrib-confluencebuilder { }; - - sphinxcontrib-devhelp = callPackage ./python-modules/sphinxcontrib-devhelp { }; - -# sphinxcontrib-excel-table = callPackage ./python-modules/sphinxcontrib-excel-table { }; - -# sphinxcontrib-fulltoc = callPackage ./python-modules/sphinxcontrib-fulltoc { }; - - sphinxcontrib-htmlhelp = callPackage ./python-modules/sphinxcontrib-htmlhelp { }; - -# sphinxcontrib-httpdomain = callPackage ./python-modules/sphinxcontrib-httpdomain { }; - -# sphinxcontrib-jquery = callPackage ./python-modules/sphinxcontrib-jquery { }; - - sphinxcontrib-jsmath = callPackage ./python-modules/sphinxcontrib-jsmath { }; - -# sphinxcontrib-katex = callPackage ./python-modules/sphinxcontrib-katex { }; - -# 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-newsfeed = callPackage ./python-modules/sphinxcontrib-newsfeed { }; - -# sphinxcontrib-openapi = callPackage ./python-modules/sphinxcontrib-openapi { }; - -# sphinxcontrib-plantuml = callPackage ./python-modules/sphinxcontrib-plantuml { -# inherit (pkgs) plantuml; -# }; - -# 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-spelling = callPackage ./python-modules/sphinxcontrib-spelling { }; - -# sphinxcontrib-tikz = callPackage ./python-modules/sphinxcontrib-tikz { }; - -# sphinxcontrib-wavedrom = callPackage ./python-modules/sphinxcontrib-wavedrom { }; - - sphinxcontrib-websupport = callPackage ./python-modules/sphinxcontrib-websupport { }; - -# sphinxcontrib-youtube = callPackage ./python-modules/sphinxcontrib-youtube { }; - - sphinx = callPackage ./python-modules/sphinx { }; - -# sphinx-argparse = callPackage ./python-modules/sphinx-argparse { }; - -# sphinx-autobuild = callPackage ./python-modules/sphinx-autobuild { }; - -# sphinx-autodoc-typehints = callPackage ./python-modules/sphinx-autodoc-typehints { }; - -# sphinx-basic-ng = callPackage ./python-modules/sphinx-basic-ng { }; - -# sphinx-copybutton = callPackage ./python-modules/sphinx-copybutton { }; - -# sphinxemoji = callPackage ./python-modules/sphinxemoji { }; - -# sphinx-inline-tabs = callPackage ./python-modules/sphinx-inline-tabs { }; - - sphinx-issues = callPackage ./python-modules/sphinx-issues { }; - -# sphinx-jinja = callPackage ./python-modules/sphinx-jinja { }; - -# sphinx-markdown-parser = callPackage ./python-modules/sphinx-markdown-parser { }; - -# sphinx-markdown-tables = callPackage ./python-modules/sphinx-markdown-tables { }; - -# sphinx-material = callPackage ./python-modules/sphinx-material { }; - -# sphinx-mdinclude = callPackage ./python-modules/sphinx-mdinclude { }; - -# sphinx-rtd-dark-mode = callPackage ./python-modules/sphinx-rtd-dark-mode { }; - -# sphinx-rtd-theme = callPackage ./python-modules/sphinx-rtd-theme { }; - -# sphinx-serve = callPackage ./python-modules/sphinx-serve { }; - -# sphinx-testing = callPackage ./python-modules/sphinx-testing { }; - -# sphinx-version-warning = callPackage ./python-modules/sphinx-version-warning { }; - -# sphinxext-opengraph = callPackage ./python-modules/sphinxext-opengraph { }; - -# spidev = callPackage ./python-modules/spidev { }; - -# splinter = callPackage ./python-modules/splinter { }; - -# spotipy = callPackage ./python-modules/spotipy { }; - -# spsdk = callPackage ./python-modules/spsdk { }; - -# spur = callPackage ./python-modules/spur { }; - -# spyder = callPackage ./python-modules/spyder { }; - -# spyder-kernels = callPackage ./python-modules/spyder-kernels { }; - -# spylls = callPackage ./python-modules/spylls { }; - -# spyse-python = callPackage ./python-modules/spyse-python { }; - -# spython = callPackage ./python-modules/spython { }; - -# sqids = callPackage ./python-modules/sqids { }; - -# sqlalchemy = callPackage ./python-modules/sqlalchemy { }; - -# sqlalchemy_1_4 = callPackage ./python-modules/sqlalchemy/1_4.nix { }; - -# sqlalchemy-citext = callPackage ./python-modules/sqlalchemy-citext { }; - -# sqlalchemy-continuum = callPackage ./python-modules/sqlalchemy-continuum { }; - -# sqlalchemy-i18n = callPackage ./python-modules/sqlalchemy-i18n { }; - -# sqlalchemy-jsonfield = callPackage ./python-modules/sqlalchemy-jsonfield { }; - -# sqlalchemy-migrate = callPackage ./python-modules/sqlalchemy-migrate { }; - -# sqlalchemy-mixins = callPackage ./python-modules/sqlalchemy-mixins { }; - -# sqlalchemy-utils = callPackage ./python-modules/sqlalchemy-utils { }; - -# sqlalchemy-views = callPackage ./python-modules/sqlalchemy-views { }; - -# sqlbag = callPackage ./python-modules/sqlbag { }; - -# sqlglot = callPackage ./python-modules/sqlglot { }; - -# sqlitedict = callPackage ./python-modules/sqlitedict { }; - -# sqlite-migrate = callPackage ./python-modules/sqlite-migrate { }; - -# sqlite-fts4 = callPackage ./python-modules/sqlite-fts4 { }; - -# sqlite-utils = callPackage ./python-modules/sqlite-utils { }; - -# sqliteschema = callPackage ./python-modules/sqliteschema { }; - -# sqlmap = callPackage ./python-modules/sqlmap { }; - -# sqlmodel = callPackage ./python-modules/sqlmodel { }; - -# sqlobject = callPackage ./python-modules/sqlobject { }; - -# sqlparse = callPackage ./python-modules/sqlparse { }; - -# sqlsoup = callPackage ./python-modules/sqlsoup { }; - -# sqltrie = callPackage ./python-modules/sqltrie { }; - -# squarify = callPackage ./python-modules/squarify { }; - -# sre-yield = callPackage ./python-modules/sre-yield { }; - -# srp = callPackage ./python-modules/srp { }; - -# srpenergy = callPackage ./python-modules/srpenergy { }; - -# srptools = callPackage ./python-modules/srptools { }; - -# srsly = callPackage ./python-modules/srsly { }; - -# srt = callPackage ./python-modules/srt { }; - -# srvlookup = callPackage ./python-modules/srvlookup { }; - -# ssdeep = callPackage ./python-modules/ssdeep { -# inherit (pkgs) ssdeep; -# }; - -# ssdp = callPackage ./python-modules/ssdp { }; - -# ssdpy = callPackage ./python-modules/ssdpy { }; - -# sseclient = callPackage ./python-modules/sseclient { }; - -# sseclient-py = callPackage ./python-modules/sseclient-py { }; - -# sse-starlette = callPackage ./python-modules/sse-starlette { }; - -# sshfs = callPackage ./python-modules/sshfs { }; - -# sshpubkeys = callPackage ./python-modules/sshpubkeys { }; - -# sshtunnel = callPackage ./python-modules/sshtunnel { }; - -# sslib = callPackage ./python-modules/sslib { }; - -# ssg = callPackage ./python-modules/ssg { }; - -# stack-data = callPackage ./python-modules/stack-data { }; - -# stanio = callPackage ./python-modules/stanio { }; - -# stanza = callPackage ./python-modules/stanza { }; - -# starlette = callPackage ./python-modules/starlette { }; - -# starlette-context = callPackage ./python-modules/starlette-context { }; - -# starlette-wtf = callPackage ./python-modules/starlette-wtf { }; - -# starkbank-ecdsa = callPackage ./python-modules/starkbank-ecdsa { }; - -# starline = callPackage ./python-modules/starline { }; - -# stashy = callPackage ./python-modules/stashy { }; - -# static3 = callPackage ./python-modules/static3 { }; - -# staticmap = callPackage ./python-modules/staticmap { }; - -# staticjinja = callPackage ./python-modules/staticjinja { }; - -# statistics = callPackage ./python-modules/statistics { }; - -# statmake = callPackage ./python-modules/statmake { }; - -# statsd = callPackage ./python-modules/statsd { }; - -# statsmodels = callPackage ./python-modules/statsmodels { }; - -# std-uritemplate = callPackage ./python-modules/std-uritemplate { }; - -# std2 = callPackage ./python-modules/std2 { }; - -# stdiomask = callPackage ./python-modules/stdiomask { }; - -# stdlib-list = callPackage ./python-modules/stdlib-list { }; - -# stdlibs = callPackage ./python-modules/stdlibs { }; - -# steamodd = callPackage ./python-modules/steamodd { }; - -# steamship = callPackage ./python-modules/steamship { }; - -# stem = callPackage ./python-modules/stem { }; - -# stemming = callPackage ./python-modules/stemming { }; - -# stestr = callPackage ./python-modules/stestr { }; - -# stevedore = callPackage ./python-modules/stevedore { }; - -# stickytape = callPackage ./python-modules/stickytape { }; - -# stim = callPackage ./python-modules/stim { }; - -# stix2-patterns = callPackage ./python-modules/stix2-patterns { }; - -# stm32loader = callPackage ./python-modules/stm32loader { }; - -# stone = callPackage ./python-modules/stone { }; - -# stookalert = callPackage ./python-modules/stookalert { }; - -# stopit = callPackage ./python-modules/stopit { }; - -# stransi = callPackage ./python-modules/stransi { }; - -# strategies = callPackage ./python-modules/strategies { }; - -# stravalib = callPackage ./python-modules/stravalib { }; - -# strawberry-graphql = callPackage ./python-modules/strawberry-graphql { }; - -# strct = callPackage ./python-modules/strct { }; - -# streamdeck = callPackage ./python-modules/streamdeck { }; - -# streaming-form-data = callPackage ./python-modules/streaming-form-data { }; - -# streamlabswater = callPackage ./python-modules/streamlabswater { }; - -# streamlit = callPackage ./python-modules/streamlit { }; - -# streamz = callPackage ./python-modules/streamz { }; - -# strenum = callPackage ./python-modules/strenum { }; - -# strict-rfc3339 = callPackage ./python-modules/strict-rfc3339 { }; - -# strictyaml = callPackage ./python-modules/strictyaml { }; - -# stringbrewer = callPackage ./python-modules/stringbrewer { }; - -# stringcase = callPackage ./python-modules/stringcase { }; - -# stringly = callPackage ./python-modules/stringly { }; - -# stringparser = callPackage ./python-modules/stringparser { }; - -# stripe = callPackage ./python-modules/stripe { }; - -# striprtf = callPackage ./python-modules/striprtf { }; - -# structlog = callPackage ./python-modules/structlog { }; - -# stubserver = callPackage ./python-modules/stubserver { }; - -# stumpy = callPackage ./python-modules/stumpy { }; - -# stupidartnet = callPackage ./python-modules/stupidartnet { }; - -# stups-cli-support = callPackage ./python-modules/stups-cli-support { }; - -# stups-fullstop = callPackage ./python-modules/stups-fullstop { }; - -# stups-pierone = callPackage ./python-modules/stups-pierone { }; - -# stups-tokens = callPackage ./python-modules/stups-tokens { }; - -# stups-zign = callPackage ./python-modules/stups-zign { }; - -# stytra = callPackage ./python-modules/stytra { }; - -# subarulink = callPackage ./python-modules/subarulink { }; - -# subliminal = callPackage ./python-modules/subliminal { }; - -# subprocess-tee = callPackage ./python-modules/subprocess-tee { }; - -# subunit = callPackage ./python-modules/subunit { -# inherit (pkgs) subunit cppunit check; -# }; - -# subunit2sql = callPackage ./python-modules/subunit2sql { }; - -# subzerod = callPackage ./python-modules/subzerod { }; - -# succulent = callPackage ./python-modules/succulent { }; - -# sudachidict-core = callPackage ./python-modules/sudachidict { }; - -# 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"; }; -# }; - -# sudachipy = callPackage ./python-modules/sudachipy { }; - -# sumo = callPackage ./python-modules/sumo { }; - -# sumtypes = callPackage ./python-modules/sumtypes { }; - -# summarytools = callPackage ./python-modules/summarytools { }; - -# sunpy = callPackage ./python-modules/sunpy { }; - -# sunwatcher = callPackage ./python-modules/sunwatcher { }; - -# sunweg = callPackage ./python-modules/sunweg { }; - -# supervise-api = callPackage ./python-modules/supervise-api { }; - -# supervisor = callPackage ./python-modules/supervisor { }; - -# superqt = callPackage ./python-modules/superqt { }; - -# sure = callPackage ./python-modules/sure { }; - -# surepy = callPackage ./python-modules/surepy { }; - -# surt = callPackage ./python-modules/surt { }; - -# survey = callPackage ./python-modules/survey { }; - -# svg2tikz = callPackage ./python-modules/svg2tikz { }; - -# svglib = callPackage ./python-modules/svglib { }; - -# svg-path = callPackage ./python-modules/svg-path { }; - -# svg-py = callPackage ./python-modules/svg-py { }; - -# svgelements = callPackage ./python-modules/svgelements { }; - -# svgutils = callPackage ./python-modules/svgutils { }; - -# svgwrite = callPackage ./python-modules/svgwrite { }; - -# sv-ttk = callPackage ./python-modules/sv-ttk { }; - -# swagger-spec-validator = callPackage ./python-modules/swagger-spec-validator { }; - -# swagger-ui-bundle = callPackage ./python-modules/swagger-ui-bundle { }; - -# switchbot-api = callPackage ./python-modules/switchbot-api { }; - -# swift = callPackage ./python-modules/swift { }; - -# swisshydrodata = callPackage ./python-modules/swisshydrodata { }; - -# swspotify = callPackage ./python-modules/swspotify { }; - -# sybil = callPackage ./python-modules/sybil { }; - -# symengine = callPackage ./python-modules/symengine { -# inherit (pkgs) symengine; -# }; - -# sympy = callPackage ./python-modules/sympy { }; - -# symspellpy = callPackage ./python-modules/symspellpy { }; - -# syncedlyrics = callPackage ./python-modules/syncedlyrics { }; - -# syncer = callPackage ./python-modules/syncer { }; - -# synergy = callPackage ./python-modules/synergy { }; - -# synologydsm-api = callPackage ./python-modules/synologydsm-api { }; - -# syslog-rfc5424-formatter = callPackage ./python-modules/syslog-rfc5424-formatter { }; - -# systembridge = callPackage ./python-modules/systembridge { }; - -# systembridgeconnector = callPackage ./python-modules/systembridgeconnector { }; - -# systembridgemodels = callPackage ./python-modules/systembridgemodels { }; - -# systemd = callPackage ./python-modules/systemd { -# inherit (pkgs) systemd; -# }; - -# sysv-ipc = callPackage ./python-modules/sysv-ipc { }; - -# syrupy = callPackage ./python-modules/syrupy { }; - -# tabcmd = callPackage ./python-modules/tabcmd { }; - -# tableaudocumentapi = callPackage ./python-modules/tableaudocumentapi { }; - -# tableauserverclient = callPackage ./python-modules/tableauserverclient { }; - -# tabledata = callPackage ./python-modules/tabledata { }; - -# tables = callPackage ./python-modules/tables { }; - -# tablib = callPackage ./python-modules/tablib { }; - -# tabula-py = callPackage ./python-modules/tabula-py { }; - -# tabulate = callPackage ./python-modules/tabulate { }; - -# tabview = callPackage ./python-modules/tabview { }; - -# taco = toPythonModule (pkgs.taco.override { -# inherit (self) python; -# enablePython = true; -# }); - -# tadasets = callPackage ./python-modules/tadasets { }; - -# tag-expressions = callPackage ./python-modules/tag-expressions { }; - -# tago = callPackage ./python-modules/tago { }; - -# tagoio-sdk = callPackage ./python-modules/tagoio-sdk { }; - -# tahoma-api = callPackage ./python-modules/tahoma-api { }; - -# tailer = callPackage ./python-modules/tailer { }; - -# tailscale = callPackage ./python-modules/tailscale { }; - -# takethetime = callPackage ./python-modules/takethetime { }; - -# tank-utility = callPackage ./python-modules/tank-utility { }; - -# tappy = callPackage ./python-modules/tappy { }; - -# tasklib = callPackage ./python-modules/tasklib { }; - -# taskw = callPackage ./python-modules/taskw { }; - -# taskw-ng = callPackage ./python-modules/taskw-ng { }; - -# tatsu = callPackage ./python-modules/tatsu { }; - -# taxi = callPackage ./python-modules/taxi { }; - -# tbats = callPackage ./python-modules/tbats { }; - -# tblib = callPackage ./python-modules/tblib { }; - -# tblite = callPackage ../development/libraries/science/chemistry/tblite/python.nix { -# inherit (pkgs) tblite meson simple-dftd3; -# }; - -# tbm-utils = callPackage ./python-modules/tbm-utils { }; - -# tcolorpy = callPackage ./python-modules/tcolorpy { }; - -# tcxparser = callPackage ./python-modules/tcxparser { }; - -# tcxreader = callPackage ./python-modules/tcxreader { }; - -# tdir = callPackage ./python-modules/tdir { }; - -# teamcity-messages = callPackage ./python-modules/teamcity-messages { }; - -# telegram = callPackage ./python-modules/telegram { }; - -# telegraph = callPackage ./python-modules/telegraph { }; - -# telepath = callPackage ./python-modules/telepath { }; - -# telethon = callPackage ./python-modules/telethon { -# inherit (pkgs) openssl; -# }; - -# telethon-session-sqlalchemy = callPackage ./python-modules/telethon-session-sqlalchemy { }; - -# teletype = callPackage ./python-modules/teletype { }; - -# telfhash = callPackage ./python-modules/telfhash { }; - -# telegram-text = callPackage ./python-modules/telegram-text { }; - -# temescal = callPackage ./python-modules/temescal { }; - -# temperusb = callPackage ./python-modules/temperusb { }; - -# tempest = callPackage ./python-modules/tempest { }; - -# tempita = callPackage ./python-modules/tempita { }; - -# templateflow = callPackage ./python-modules/templateflow { }; - -# tempora = callPackage ./python-modules/tempora { }; - -# tenacity = callPackage ./python-modules/tenacity { }; - -# tencentcloud-sdk-python = callPackage ./python-modules/tencentcloud-sdk-python { }; - -# tendo = callPackage ./python-modules/tendo { }; - -# tensorboard-data-server = callPackage ./python-modules/tensorboard-data-server { }; - -# tensorboard-plugin-profile = callPackage ./python-modules/tensorboard-plugin-profile { }; - -# tensorboard-plugin-wit = callPackage ./python-modules/tensorboard-plugin-wit { }; - -# tensorboard = callPackage ./python-modules/tensorboard { }; - -# tensorboardx = callPackage ./python-modules/tensorboardx { }; - -# tensordict = callPackage ./python-modules/tensordict { }; - -# 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 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-estimator-bin = callPackage ./python-modules/tensorflow-estimator/bin.nix { }; - -# tensorflow-metadata = callPackage ./python-modules/tensorflow-metadata { }; - -# tensorflow-probability = callPackage ./python-modules/tensorflow-probability { -# inherit (pkgs.darwin) cctools; -# }; - -# tensorflow = self.tensorflow-build; - -# tensorflowWithCuda = self.tensorflow.override { -# cudaSupport = true; -# }; - -# tensorflowWithoutCuda = self.tensorflow.override { -# cudaSupport = false; -# }; - -# tensorly = callPackage ./python-modules/tensorly { }; - -# tensorrt = callPackage ./python-modules/tensorrt { cudaPackages = pkgs.cudaPackages_11; }; - -# tensorstore = callPackage ./python-modules/tensorstore { }; - -# tellduslive = callPackage ./python-modules/tellduslive { }; - -# termcolor = callPackage ./python-modules/termcolor { }; - -# termgraph = callPackage ./python-modules/termgraph { }; - -# terminado = callPackage ./python-modules/terminado { }; - -# terminaltables = callPackage ./python-modules/terminaltables { }; - -# termplotlib = callPackage ./python-modules/termplotlib { }; - -# termstyle = callPackage ./python-modules/termstyle { }; - -# tern = callPackage ./python-modules/tern { }; - -# tesla-fleet-api = callPackage ./python-modules/tesla-fleet-api { }; - -# tesla-powerwall = callPackage ./python-modules/tesla-powerwall { }; - -# tesla-wall-connector = callPackage ./python-modules/tesla-wall-connector { }; - -# teslajsonpy = callPackage ./python-modules/teslajsonpy { }; - -# tess = callPackage ./python-modules/tess { }; - -# tesserocr = callPackage ./python-modules/tesserocr { }; - -# testcontainers = callPackage ./python-modules/testcontainers { }; - -# testfixtures = callPackage ./python-modules/testfixtures { }; - -# texsoup = callPackage ./python-modules/texsoup { }; - -# textfsm = callPackage ./python-modules/textfsm { }; - -# textile = callPackage ./python-modules/textile { }; - -# textparser = callPackage ./python-modules/textparser { }; - -# textual = callPackage ./python-modules/textual { }; - -# textual-dev = callPackage ./python-modules/textual-dev { }; - -# textual-universal-directorytree = callPackage ./python-modules/textual-universal-directorytree { }; - -# testbook = callPackage ./python-modules/testbook { }; - -# testing-common-database = callPackage ./python-modules/testing-common-database { }; - -# testing-postgresql = callPackage ./python-modules/testing-postgresql { }; - - testpath = callPackage ./python-modules/testpath { }; - -# testrail-api = callPackage ./python-modules/testrail-api { }; - -# testrepository = callPackage ./python-modules/testrepository { }; - -# testresources = callPackage ./python-modules/testresources { }; - -# testscenarios = callPackage ./python-modules/testscenarios { }; - -# testtools = callPackage ./python-modules/testtools { }; - -# test-tube = callPackage ./python-modules/test-tube { }; - -# textdistance = callPackage ./python-modules/textdistance { }; - -# textacy = callPackage ./python-modules/textacy { }; - -# textnets = callPackage ./python-modules/textnets { -# en_core_web_sm = spacy-models.en_core_web_sm; -# }; - -# texttable = callPackage ./python-modules/texttable { }; - -# text-unidecode = callPackage ./python-modules/text-unidecode { }; - -# textwrap3 = callPackage ./python-modules/textwrap3 { }; - -# textx = callPackage ./python-modules/textx { }; - -# tf2onnx = callPackage ./python-modules/tf2onnx { }; - -# tflearn = callPackage ./python-modules/tflearn { }; - -# tftpy = callPackage ./python-modules/tftpy { }; - -# tgcrypto = callPackage ./python-modules/tgcrypto { }; - -# theano-pymc = callPackage ./python-modules/theano-pymc { }; - -# theano = callPackage ./python-modules/theano rec { -# inherit (pkgs.config) cudaSupport; -# cudnnSupport = cudaSupport; -# }; - -# theanoWithCuda = self.theano.override { -# cudaSupport = true; -# cudnnSupport = true; -# }; - -# theanoWithoutCuda = self.theano.override { -# cudaSupport = false; -# cudnnSupport = false; -# }; - -# thefuzz = callPackage ./python-modules/thefuzz { }; - -# thelogrus = callPackage ./python-modules/thelogrus { }; - -# thermobeacon-ble = callPackage ./python-modules/thermobeacon-ble { }; - -# thermopro-ble = callPackage ./python-modules/thermopro-ble { }; - -# thespian = callPackage ./python-modules/thespian { }; - -# thinc = callPackage ./python-modules/thinc { -# inherit (pkgs.darwin.apple_sdk.frameworks) Accelerate CoreFoundation CoreGraphics CoreVideo; -# }; - -# thorlabspm100 = callPackage ./python-modules/thorlabspm100 { }; - -# threadloop = callPackage ./python-modules/threadloop { }; - -# threadpool = callPackage ./python-modules/threadpool { }; - -# threadpoolctl = callPackage ./python-modules/threadpoolctl { }; - -# threat9-test-bed = callPackage ./python-modules/threat9-test-bed { }; - -# three-merge = callPackage ./python-modules/three-merge { }; - -# thrift = callPackage ./python-modules/thrift { }; - -# thriftpy2 = callPackage ./python-modules/thriftpy2 { }; - -# throttler = callPackage ./python-modules/throttler { }; - -# thttp = callPackage ./python-modules/thttp { }; - -# tkinter = callPackage ./python-modules/tkinter { -# py = python.override { x11Support=true; }; -# }; - -# tidalapi = callPackage ./python-modules/tidalapi { }; - -# tidyexc = callPackage ./python-modules/tidyexc { }; - -# tidylib = callPackage ./python-modules/pytidylib { }; - -# tifffile = callPackage ./python-modules/tifffile { }; - -# tika = callPackage ./python-modules/tika { }; - -# tika-client = callPackage ./python-modules/tika-client { }; - -# tiktoken = callPackage ./python-modules/tiktoken { }; - -# tikzplotlib = callPackage ./python-modules/tikzplotlib { }; - -# tiledb = callPackage ./python-modules/tiledb { -# inherit (pkgs) tiledb; -# }; - -# tilequant = callPackage ./python-modules/tilequant { }; - -# tiler = callPackage ./python-modules/tiler { }; - -# tilestache = callPackage ./python-modules/tilestache { }; - -# tilt-ble = callPackage ./python-modules/tilt-ble { }; - -# timeago = callPackage ./python-modules/timeago { }; - -# timecop = callPackage ./python-modules/timecop { }; - -# timelib = callPackage ./python-modules/timelib { }; - -# time-machine = callPackage ./python-modules/time-machine { }; - -# timeout-decorator = callPackage ./python-modules/timeout-decorator { }; - -# timeslot = callPackage ./python-modules/timeslot { }; - -# timetagger = callPackage ./python-modules/timetagger { }; - -# timezonefinder = callPackage ./python-modules/timezonefinder { }; - -# timing-asgi = callPackage ./python-modules/timing-asgi { }; - -# timm = callPackage ./python-modules/timm { }; - -# tiny-cuda-nn = toPythonModule (pkgs.tiny-cuda-nn.override { -# cudaPackages = self.torch.cudaPackages; -# python3Packages = self; -# pythonSupport = true; -# }); - -# tiny-proxy = callPackage ./python-modules/tiny-proxy { }; - -# tinycss2 = callPackage ./python-modules/tinycss2 { }; - -# tinycss = callPackage ./python-modules/tinycss { }; - -# tinydb = callPackage ./python-modules/tinydb { }; - -# tinygrad = callPackage ./python-modules/tinygrad { }; - -# tinyobjloader-py = callPackage ./python-modules/tinyobjloader-py { }; - -# tinyrecord = callPackage ./python-modules/tinyrecord { }; - -# tinysegmenter = callPackage ./python-modules/tinysegmenter { }; - -# tissue = callPackage ./python-modules/tissue { }; - -# titlecase = callPackage ./python-modules/titlecase { }; - -# tld = callPackage ./python-modules/tld { }; - -# tlds = callPackage ./python-modules/tlds { }; - -# tldextract = callPackage ./python-modules/tldextract { }; - -# tlsh = callPackage ./python-modules/tlsh { }; - -# tlslite-ng = callPackage ./python-modules/tlslite-ng { }; - -# tls-client = callPackage ./python-modules/tls-client { }; - -# tls-parser = callPackage ./python-modules/tls-parser { }; - -# tlv8 = callPackage ./python-modules/tlv8 { }; - -# tmb = callPackage ./python-modules/tmb { }; - -# todoist = callPackage ./python-modules/todoist { }; - -# todoist-api-python = callPackage ./python-modules/todoist-api-python { }; - -# toggl-cli = callPackage ./python-modules/toggl-cli { }; - -# token-bucket = callPackage ./python-modules/token-bucket { }; - -# tokenizers = callPackage ./python-modules/tokenizers { -# inherit (pkgs.darwin.apple_sdk.frameworks) Security; -# }; - -# tokenize-rt = toPythonModule (callPackage ./python-modules/tokenize-rt { }); - -# tokenlib = callPackage ./python-modules/tokenlib { }; - -# tokentrim = callPackage ./python-modules/tokentrim { }; - -# tololib = callPackage ./python-modules/tololib { }; - - toml = callPackage ./python-modules/toml { }; - -# toml-adapt = callPackage ./python-modules/toml-adapt { }; - - tomli = callPackage ./python-modules/tomli { }; - - tomli-w = callPackage ./python-modules/tomli-w { }; - -# tomlkit = callPackage ./python-modules/tomlkit { }; - -# toolz = callPackage ./python-modules/toolz { }; - -# toonapi = callPackage ./python-modules/toonapi { }; - -# toposort = callPackage ./python-modules/toposort { }; - -# 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-pitch-shift = callPackage ./python-modules/torch-pitch-shift { }; - -# 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; -# }; - -# torchWithoutCuda = self.torch.override { -# cudaSupport = false; -# }; - -# torchWithRocm = self.torch.override { -# openai-triton = self.openai-triton-no-cuda; -# rocmSupport = true; -# cudaSupport = false; -# }; - -# torchWithoutRocm = self.torch.override { -# rocmSupport = false; -# }; - -# torch-tb-profiler = callPackage ./python-modules/torch-tb-profiler/default.nix { }; - -# torchaudio = callPackage ./python-modules/torchaudio { }; - -# torchaudio-bin = callPackage ./python-modules/torchaudio/bin.nix { -# cudaPackages = pkgs.cudaPackages_12; -# }; - -# torchdiffeq = callPackage ./python-modules/torchdiffeq { }; - -# torchgpipe = callPackage ./python-modules/torchgpipe { }; - -# torchmetrics = callPackage ./python-modules/torchmetrics { }; - -# torchio = callPackage ./python-modules/torchio { }; - -# torchinfo = callPackage ./python-modules/torchinfo { }; - -# torchlibrosa = callPackage ./python-modules/torchlibrosa { }; - -# torchrl = callPackage ./python-modules/torchrl { }; - -# torchsde = callPackage ./python-modules/torchsde { }; - -# torchvision = callPackage ./python-modules/torchvision { }; - -# 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 streamlit, 2021-01-29 -# tornado_5 = callPackage ./python-modules/tornado/5.nix { }; - -# torpy = callPackage ./python-modules/torpy { }; - -# torrent-parser = callPackage ./python-modules/torrent-parser { }; - -# torrequest = callPackage ./python-modules/torrequest { }; - -# total-connect-client = callPackage ./python-modules/total-connect-client { }; - -# towncrier = callPackage ./python-modules/towncrier { -# inherit (pkgs) git; -# }; - -# tox = callPackage ./python-modules/tox { }; - -# tplink-omada-client = callPackage ./python-modules/tplink-omada-client { }; - -# tpm2-pytss = callPackage ./python-modules/tpm2-pytss { }; - -# tqdm = callPackage ./python-modules/tqdm { }; - -# traceback2 = callPackage ./python-modules/traceback2 { }; - -# tracerite = callPackage ./python-modules/tracerite { }; - -# tracing = callPackage ./python-modules/tracing { }; - -# trackpy = callPackage ./python-modules/trackpy { }; - -# trafilatura = callPackage ./python-modules/trafilatura { }; - -# trailrunner = callPackage ./python-modules/trailrunner {}; - -# trainer = callPackage ./python-modules/trainer {}; - -# traitlets = callPackage ./python-modules/traitlets { }; - -# traits = callPackage ./python-modules/traits { }; - -# traitsui = callPackage ./python-modules/traitsui { }; - -# traittypes = callPackage ./python-modules/traittypes { }; - -# trampoline = callPackage ./python-modules/trampoline { }; - -# transaction = callPackage ./python-modules/transaction { }; - -# transformers = callPackage ./python-modules/transformers { }; - -# transforms3d = callPackage ./python-modules/transforms3d { }; - -# transitions = callPackage ./python-modules/transitions { }; - -# translatehtml = callPackage ./python-modules/translatehtml { }; - -# translatepy = callPackage ./python-modules/translatepy { }; - -# translationstring = callPackage ./python-modules/translationstring { }; - -# translitcodec = callPackage ./python-modules/translitcodec { }; - -# transmission-rpc = callPackage ./python-modules/transmission-rpc { }; - -# transmissionrpc = callPackage ./python-modules/transmissionrpc { }; - -# trectools = callPackage ./python-modules/trectools { }; - -# tree-sitter = callPackage ./python-modules/tree-sitter { }; - -# treelib = callPackage ./python-modules/treelib { }; - -# treelog = callPackage ./python-modules/treelog { }; - -# treeo = callPackage ./python-modules/treeo { }; - -# treex = callPackage ./python-modules/treex { }; - -# treq = callPackage ./python-modules/treq { }; - -# trezor-agent = callPackage ./python-modules/trezor-agent { -# pinentry = pkgs.pinentry-curses; -# }; - -# trezor = callPackage ./python-modules/trezor { }; - -# trfl = callPackage ./python-modules/trfl { }; - -# trimesh = callPackage ./python-modules/trimesh { }; - -# trino-python-client = callPackage ./python-modules/trino-python-client { }; - -# trio = callPackage ./python-modules/trio { -# inherit (pkgs) coreutils; -# }; - -# trio-asyncio = callPackage ./python-modules/trio-asyncio { }; - -# trio-websocket = callPackage ./python-modules/trio-websocket { }; - -# tritonclient = callPackage ./python-modules/tritonclient { }; - -# troposphere = callPackage ./python-modules/troposphere { }; - - trove-classifiers = callPackage ./python-modules/trove-classifiers { }; - -# trueskill = callPackage ./python-modules/trueskill { }; - - trustme = callPackage ./python-modules/trustme { }; - -# truststore = callPackage ./python-modules/truststore { }; - -# trytond = callPackage ./python-modules/trytond { }; - -# tsfresh = callPackage ./python-modules/tsfresh { }; - -# tskit = callPackage ./python-modules/tskit { }; - -# ttach = callPackage ./python-modules/ttach { }; - -# ttls = callPackage ./python-modules/ttls { }; - -# ttn-client = callPackage ./python-modules/ttn-client { }; - -# ttp = callPackage ./python-modules/ttp { }; - -# ttp-templates = callPackage ./python-modules/ttp-templates { }; - -# ttstokenizer = callPackage ./python-modules/ttstokenizer { }; - -# tubes = callPackage ./python-modules/tubes { }; - -# tuf = callPackage ./python-modules/tuf { }; - -# tunigo = callPackage ./python-modules/tunigo { }; - -# tubeup = callPackage ./python-modules/tubeup { }; - -# turnt = callPackage ./python-modules/turnt { }; - -# tuya-device-sharing-sdk = callPackage ./python-modules/tuya-device-sharing-sdk { }; - -# tuya-iot-py-sdk = callPackage ./python-modules/tuya-iot-py-sdk { }; - -# tuyaha = callPackage ./python-modules/tuyaha { }; - -# tvdb-api = callPackage ./python-modules/tvdb-api { }; - -# tweedledum = callPackage ./python-modules/tweedledum { }; - -# tweepy = callPackage ./python-modules/tweepy { }; - -# twentemilieu = callPackage ./python-modules/twentemilieu { }; - -# twiggy = callPackage ./python-modules/twiggy { }; - -# twilio = callPackage ./python-modules/twilio { }; - -# twill = callPackage ./python-modules/twill { }; - -# twine = callPackage ./python-modules/twine { }; - -# twinkly-client = callPackage ./python-modules/twinkly-client { }; - -# twisted = callPackage ./python-modules/twisted { }; - -# twitch-python = callPackage ./python-modules/twitch-python { }; - -# twitchapi = callPackage ./python-modules/twitchapi { }; - -# twitter = callPackage ./python-modules/twitter { }; - -# twitter-common-collections = callPackage ./python-modules/twitter-common-collections { }; - -# twitter-common-confluence = callPackage ./python-modules/twitter-common-confluence { }; - -# twitter-common-dirutil = callPackage ./python-modules/twitter-common-dirutil { }; - -# twitter-common-lang = callPackage ./python-modules/twitter-common-lang { }; - -# twitter-common-log = callPackage ./python-modules/twitter-common-log { }; - -# twitter-common-options = callPackage ./python-modules/twitter-common-options { }; - -# twitterapi = callPackage ./python-modules/twitterapi { }; - -# twofish = callPackage ./python-modules/twofish { }; - -# txaio = callPackage ./python-modules/txaio { }; - -# txamqp = callPackage ./python-modules/txamqp { }; - -# txdbus = callPackage ./python-modules/txdbus { }; - -# txgithub = callPackage ./python-modules/txgithub { }; - -# txi2p-tahoe = callPackage ./python-modules/txi2p-tahoe { }; - -# txredisapi = callPackage ./python-modules/txredisapi { }; - -# txrequests = callPackage ./python-modules/txrequests { }; - -# txtai = callPackage ./python-modules/txtai { }; - -# txtorcon = callPackage ./python-modules/txtorcon { }; - -# txzmq = callPackage ./python-modules/txzmq { }; - -# typechecks = callPackage ./python-modules/typechecks { }; - -# typecode = callPackage ./python-modules/typecode { }; - -# typecode-libmagic = callPackage ./python-modules/typecode/libmagic.nix { -# inherit (pkgs) file zlib; -# }; - -# typed-ast = callPackage ./python-modules/typed-ast { }; - -# typed-settings = callPackage ./python-modules/typed-settings { }; - -# typeguard = callPackage ./python-modules/typeguard { }; - -# typepy = callPackage ./python-modules/typepy { }; - -# typer = callPackage ./python-modules/typer { }; - -# type-infer = callPackage ./python-modules/type-infer { }; - -# types-aiobotocore = callPackage ./python-modules/types-aiobotocore { }; - -# inherit (callPackage ./python-modules/types-aiobotocore-packages { }) - -# types-aiobotocore-accessanalyzer - -# types-aiobotocore-account - -# types-aiobotocore-acm - -# types-aiobotocore-acm-pca - -# types-aiobotocore-alexaforbusiness - -# types-aiobotocore-amp - -# types-aiobotocore-amplify - -# types-aiobotocore-amplifybackend - -# types-aiobotocore-amplifyuibuilder - -# types-aiobotocore-apigateway - -# types-aiobotocore-apigatewaymanagementapi - -# types-aiobotocore-apigatewayv2 - -# types-aiobotocore-appconfig - -# types-aiobotocore-appconfigdata - -# types-aiobotocore-appfabric - -# types-aiobotocore-appflow - -# types-aiobotocore-appintegrations - -# types-aiobotocore-application-autoscaling - -# types-aiobotocore-application-insights - -# types-aiobotocore-applicationcostprofiler - -# types-aiobotocore-appmesh - -# types-aiobotocore-apprunner - -# types-aiobotocore-appstream - -# types-aiobotocore-appsync - -# types-aiobotocore-arc-zonal-shift - -# types-aiobotocore-athena - -# types-aiobotocore-auditmanager - -# types-aiobotocore-autoscaling - -# types-aiobotocore-autoscaling-plans - -# types-aiobotocore-backup - -# types-aiobotocore-backup-gateway - -# types-aiobotocore-backupstorage - -# types-aiobotocore-batch - -# types-aiobotocore-billingconductor - -# types-aiobotocore-braket - -# types-aiobotocore-budgets - -# types-aiobotocore-ce - -# types-aiobotocore-chime - -# types-aiobotocore-chime-sdk-identity - -# types-aiobotocore-chime-sdk-media-pipelines - -# types-aiobotocore-chime-sdk-meetings - -# types-aiobotocore-chime-sdk-messaging - -# types-aiobotocore-chime-sdk-voice - -# types-aiobotocore-cleanrooms - -# types-aiobotocore-cloud9 - -# types-aiobotocore-cloudcontrol - -# types-aiobotocore-clouddirectory - -# types-aiobotocore-cloudformation - -# types-aiobotocore-cloudfront - -# types-aiobotocore-cloudhsm - -# types-aiobotocore-cloudhsmv2 - -# types-aiobotocore-cloudsearch - -# types-aiobotocore-cloudsearchdomain - -# types-aiobotocore-cloudtrail - -# types-aiobotocore-cloudtrail-data - -# types-aiobotocore-cloudwatch - -# types-aiobotocore-codeartifact - -# types-aiobotocore-codebuild - -# types-aiobotocore-codecatalyst - -# types-aiobotocore-codecommit - -# types-aiobotocore-codedeploy - -# types-aiobotocore-codeguru-reviewer - -# types-aiobotocore-codeguru-security - -# types-aiobotocore-codeguruprofiler - -# types-aiobotocore-codepipeline - -# types-aiobotocore-codestar - -# types-aiobotocore-codestar-connections - -# types-aiobotocore-codestar-notifications - -# types-aiobotocore-cognito-identity - -# types-aiobotocore-cognito-idp - -# types-aiobotocore-cognito-sync - -# types-aiobotocore-comprehend - -# types-aiobotocore-comprehendmedical - -# types-aiobotocore-compute-optimizer - -# types-aiobotocore-config - -# types-aiobotocore-connect - -# types-aiobotocore-connect-contact-lens - -# types-aiobotocore-connectcampaigns - -# types-aiobotocore-connectcases - -# types-aiobotocore-connectparticipant - -# types-aiobotocore-controltower - -# types-aiobotocore-cur - -# types-aiobotocore-customer-profiles - -# types-aiobotocore-databrew - -# types-aiobotocore-dataexchange - -# types-aiobotocore-datapipeline - -# types-aiobotocore-datasync - -# types-aiobotocore-dax - -# types-aiobotocore-detective - -# types-aiobotocore-devicefarm - -# types-aiobotocore-devops-guru - -# types-aiobotocore-directconnect - -# types-aiobotocore-discovery - -# types-aiobotocore-dlm - -# types-aiobotocore-dms - -# types-aiobotocore-docdb - -# types-aiobotocore-docdb-elastic - -# types-aiobotocore-drs - -# types-aiobotocore-ds - -# types-aiobotocore-dynamodb - -# types-aiobotocore-dynamodbstreams - -# types-aiobotocore-ebs - -# types-aiobotocore-ec2 - -# types-aiobotocore-ec2-instance-connect - -# types-aiobotocore-ecr - -# types-aiobotocore-ecr-public - -# types-aiobotocore-ecs - -# types-aiobotocore-efs - -# types-aiobotocore-eks - -# types-aiobotocore-elastic-inference - -# types-aiobotocore-elasticache - -# types-aiobotocore-elasticbeanstalk - -# types-aiobotocore-elastictranscoder - -# types-aiobotocore-elb - -# types-aiobotocore-elbv2 - -# types-aiobotocore-emr - -# types-aiobotocore-emr-containers - -# types-aiobotocore-emr-serverless - -# types-aiobotocore-entityresolution - -# types-aiobotocore-es - -# types-aiobotocore-events - -# types-aiobotocore-evidently - -# types-aiobotocore-finspace - -# types-aiobotocore-finspace-data - -# types-aiobotocore-firehose - -# types-aiobotocore-fis - -# types-aiobotocore-fms - -# types-aiobotocore-forecast - -# types-aiobotocore-forecastquery - -# types-aiobotocore-frauddetector - -# types-aiobotocore-fsx - -# types-aiobotocore-gamelift - -# types-aiobotocore-gamesparks - -# types-aiobotocore-glacier - -# types-aiobotocore-globalaccelerator - -# types-aiobotocore-glue - -# types-aiobotocore-grafana - -# types-aiobotocore-greengrass - -# types-aiobotocore-greengrassv2 - -# types-aiobotocore-groundstation - -# types-aiobotocore-guardduty - -# types-aiobotocore-health - -# types-aiobotocore-healthlake - -# types-aiobotocore-honeycode - -# types-aiobotocore-iam - -# types-aiobotocore-identitystore - -# types-aiobotocore-imagebuilder - -# types-aiobotocore-importexport - -# types-aiobotocore-inspector - -# types-aiobotocore-inspector2 - -# types-aiobotocore-internetmonitor - -# types-aiobotocore-iot - -# types-aiobotocore-iot-data - -# types-aiobotocore-iot-jobs-data - -# types-aiobotocore-iot-roborunner - -# types-aiobotocore-iot1click-devices - -# types-aiobotocore-iot1click-projects - -# types-aiobotocore-iotanalytics - -# types-aiobotocore-iotdeviceadvisor - -# types-aiobotocore-iotevents - -# types-aiobotocore-iotevents-data - -# types-aiobotocore-iotfleethub - -# types-aiobotocore-iotfleetwise - -# types-aiobotocore-iotsecuretunneling - -# types-aiobotocore-iotsitewise - -# types-aiobotocore-iotthingsgraph - -# types-aiobotocore-iottwinmaker - -# types-aiobotocore-iotwireless - -# types-aiobotocore-ivs - -# types-aiobotocore-ivs-realtime - -# types-aiobotocore-ivschat - -# types-aiobotocore-kafka - -# types-aiobotocore-kafkaconnect - -# types-aiobotocore-kendra - -# types-aiobotocore-kendra-ranking - -# types-aiobotocore-keyspaces - -# types-aiobotocore-kinesis - -# types-aiobotocore-kinesis-video-archived-media - -# types-aiobotocore-kinesis-video-media - -# types-aiobotocore-kinesis-video-signaling - -# types-aiobotocore-kinesis-video-webrtc-storage - -# types-aiobotocore-kinesisanalytics - -# types-aiobotocore-kinesisanalyticsv2 - -# types-aiobotocore-kinesisvideo - -# types-aiobotocore-kms - -# types-aiobotocore-lakeformation - -# types-aiobotocore-lambda - -# types-aiobotocore-lex-models - -# types-aiobotocore-lex-runtime - -# types-aiobotocore-lexv2-models - -# types-aiobotocore-lexv2-runtime - -# types-aiobotocore-license-manager - -# types-aiobotocore-license-manager-linux-subscriptions - -# types-aiobotocore-license-manager-user-subscriptions - -# types-aiobotocore-lightsail - -# types-aiobotocore-location - -# types-aiobotocore-logs - -# types-aiobotocore-lookoutequipment - -# types-aiobotocore-lookoutmetrics - -# types-aiobotocore-lookoutvision - -# types-aiobotocore-m2 - -# types-aiobotocore-machinelearning - -# types-aiobotocore-macie - -# types-aiobotocore-macie2 - -# types-aiobotocore-managedblockchain - -# types-aiobotocore-managedblockchain-query - -# types-aiobotocore-marketplace-catalog - -# types-aiobotocore-marketplace-entitlement - -# types-aiobotocore-marketplacecommerceanalytics - -# types-aiobotocore-mediaconnect - -# types-aiobotocore-mediaconvert - -# types-aiobotocore-medialive - -# types-aiobotocore-mediapackage - -# types-aiobotocore-mediapackage-vod - -# types-aiobotocore-mediapackagev2 - -# types-aiobotocore-mediastore - -# types-aiobotocore-mediastore-data - -# types-aiobotocore-mediatailor - -# types-aiobotocore-medical-imaging - -# types-aiobotocore-memorydb - -# types-aiobotocore-meteringmarketplace - -# types-aiobotocore-mgh - -# types-aiobotocore-mgn - -# types-aiobotocore-migration-hub-refactor-spaces - -# types-aiobotocore-migrationhub-config - -# types-aiobotocore-migrationhuborchestrator - -# types-aiobotocore-migrationhubstrategy - -# types-aiobotocore-mobile - -# types-aiobotocore-mq - -# types-aiobotocore-mturk - -# types-aiobotocore-mwaa - -# types-aiobotocore-neptune - -# types-aiobotocore-network-firewall - -# types-aiobotocore-networkmanager - -# types-aiobotocore-nimble - -# types-aiobotocore-oam - -# types-aiobotocore-omics - -# types-aiobotocore-opensearch - -# types-aiobotocore-opensearchserverless - -# types-aiobotocore-opsworks - -# types-aiobotocore-opsworkscm - -# types-aiobotocore-organizations - -# types-aiobotocore-osis - -# types-aiobotocore-outposts - -# types-aiobotocore-panorama - -# types-aiobotocore-payment-cryptography - -# types-aiobotocore-payment-cryptography-data - -# types-aiobotocore-personalize - -# types-aiobotocore-personalize-events - -# types-aiobotocore-personalize-runtime - -# types-aiobotocore-pi - -# types-aiobotocore-pinpoint - -# types-aiobotocore-pinpoint-email - -# types-aiobotocore-pinpoint-sms-voice - -# types-aiobotocore-pinpoint-sms-voice-v2 - -# types-aiobotocore-pipes - -# types-aiobotocore-polly - -# types-aiobotocore-pricing - -# types-aiobotocore-privatenetworks - -# types-aiobotocore-proton - -# types-aiobotocore-qldb - -# types-aiobotocore-qldb-session - -# types-aiobotocore-quicksight - -# types-aiobotocore-ram - -# types-aiobotocore-rbin - -# types-aiobotocore-rds - -# types-aiobotocore-rds-data - -# types-aiobotocore-redshift - -# types-aiobotocore-redshift-data - -# types-aiobotocore-redshift-serverless - -# types-aiobotocore-rekognition - -# types-aiobotocore-resiliencehub - -# types-aiobotocore-resource-explorer-2 - -# types-aiobotocore-resource-groups - -# types-aiobotocore-resourcegroupstaggingapi - -# types-aiobotocore-robomaker - -# types-aiobotocore-rolesanywhere - -# types-aiobotocore-route53 - -# types-aiobotocore-route53-recovery-cluster - -# types-aiobotocore-route53-recovery-control-config - -# types-aiobotocore-route53-recovery-readiness - -# types-aiobotocore-route53domains - -# types-aiobotocore-route53resolver - -# types-aiobotocore-rum - -# types-aiobotocore-s3 - -# types-aiobotocore-s3control - -# types-aiobotocore-s3outposts - -# types-aiobotocore-sagemaker - -# types-aiobotocore-sagemaker-a2i-runtime - -# types-aiobotocore-sagemaker-edge - -# types-aiobotocore-sagemaker-featurestore-runtime - -# types-aiobotocore-sagemaker-geospatial - -# types-aiobotocore-sagemaker-metrics - -# types-aiobotocore-sagemaker-runtime - -# types-aiobotocore-savingsplans - -# types-aiobotocore-scheduler - -# types-aiobotocore-schemas - -# types-aiobotocore-sdb - -# types-aiobotocore-secretsmanager - -# types-aiobotocore-securityhub - -# types-aiobotocore-securitylake - -# types-aiobotocore-serverlessrepo - -# types-aiobotocore-service-quotas - -# types-aiobotocore-servicecatalog - -# types-aiobotocore-servicecatalog-appregistry - -# types-aiobotocore-servicediscovery - -# types-aiobotocore-ses - -# types-aiobotocore-sesv2 - -# types-aiobotocore-shield - -# types-aiobotocore-signer - -# types-aiobotocore-simspaceweaver - -# types-aiobotocore-sms - -# types-aiobotocore-sms-voice - -# types-aiobotocore-snow-device-management - -# types-aiobotocore-snowball - -# types-aiobotocore-sns - -# types-aiobotocore-sqs - -# types-aiobotocore-ssm - -# types-aiobotocore-ssm-contacts - -# types-aiobotocore-ssm-incidents - -# types-aiobotocore-ssm-sap - -# types-aiobotocore-sso - -# types-aiobotocore-sso-admin - -# types-aiobotocore-sso-oidc - -# types-aiobotocore-stepfunctions - -# types-aiobotocore-storagegateway - -# types-aiobotocore-sts - -# types-aiobotocore-support - -# types-aiobotocore-support-app - -# types-aiobotocore-swf - -# types-aiobotocore-synthetics - -# types-aiobotocore-textract - -# types-aiobotocore-timestream-query - -# types-aiobotocore-timestream-write - -# types-aiobotocore-tnb - -# types-aiobotocore-transcribe - -# types-aiobotocore-transfer - -# types-aiobotocore-translate - -# types-aiobotocore-verifiedpermissions - -# types-aiobotocore-voice-id - -# types-aiobotocore-vpc-lattice - -# types-aiobotocore-waf - -# types-aiobotocore-waf-regional - -# types-aiobotocore-wafv2 - -# types-aiobotocore-wellarchitected - -# types-aiobotocore-wisdom - -# types-aiobotocore-workdocs - -# types-aiobotocore-worklink - -# types-aiobotocore-workmail - -# types-aiobotocore-workmailmessageflow - -# types-aiobotocore-workspaces - -# types-aiobotocore-workspaces-web - -# types-aiobotocore-xray - -# ; - -# types-appdirs = callPackage ./python-modules/types-appdirs { }; - -# types-awscrt = callPackage ./python-modules/types-awscrt { }; - -# types-beautifulsoup4 = callPackage ./python-modules/types-beautifulsoup4 { }; - -# types-click = callPackage ./python-modules/types-click { }; - -# types-colorama = callPackage ./python-modules/types-colorama { }; - -# types-dataclasses = callPackage ./python-modules/types-dataclasses { }; - -# types-dateutil = callPackage ./python-modules/types-dateutil { }; - -# types-decorator = callPackage ./python-modules/types-decorator { }; - -# types-deprecated = callPackage ./python-modules/types-deprecated { }; - -# types-docopt = callPackage ./python-modules/types-docopt { }; - -# types-docutils = callPackage ./python-modules/types-docutils { }; - -# types-enum34 = callPackage ./python-modules/types-enum34 { }; - -# types-freezegun = callPackage ./python-modules/types-freezegun { }; - -# types-futures = callPackage ./python-modules/types-futures { }; - -# types-html5lib = callPackage ./python-modules/types-html5lib { }; - -# types-ipaddress = callPackage ./python-modules/types-ipaddress { }; - -# types-lxml = callPackage ./python-modules/types-lxml { }; - -# types-markdown = callPackage ./python-modules/types-markdown { }; - -# types-mock = callPackage ./python-modules/types-mock { }; - -# types-pillow = callPackage ./python-modules/types-pillow { }; - -# types-protobuf = callPackage ./python-modules/types-protobuf { }; - -# types-psutil = callPackage ./python-modules/types-psutil { }; - -# types-psycopg2 = callPackage ./python-modules/types-psycopg2 { }; - -# types-pyopenssl = callPackage ./python-modules/types-pyopenssl { }; - -# types-python-dateutil = callPackage ./python-modules/types-python-dateutil { }; - -# types-pytz = callPackage ./python-modules/types-pytz { }; - -# types-pyyaml = callPackage ./python-modules/types-pyyaml { }; - -# types-redis = callPackage ./python-modules/types-redis { }; - -# types-retry = callPackage ./python-modules/types-retry { }; - -# types-requests = callPackage ./python-modules/types-requests { }; - -# types-s3transfer = callPackage ./python-modules/types-s3transfer { }; - -# types-setuptools = callPackage ./python-modules/types-setuptools { }; - -# types-tabulate = callPackage ./python-modules/types-tabulate { }; - -# types-toml = callPackage ./python-modules/types-toml { }; - -# types-tqdm = callPackage ./python-modules/types-tqdm { }; - -# types-typed-ast = callPackage ./python-modules/types-typed-ast { }; - -# types-ujson = callPackage ./python-modules/types-ujson { }; - -# types-urllib3 = callPackage ./python-modules/types-urllib3 { }; - -# typesentry = callPackage ./python-modules/typesentry { }; - -# typeshed-client = callPackage ./python-modules/typeshed-client { }; - -# typesystem = callPackage ./python-modules/typesystem { }; - -# typical = callPackage ./python-modules/typical { }; - -# typing = null; - - typing-extensions = callPackage ./python-modules/typing-extensions { }; - -# typing-inspect = callPackage ./python-modules/typing-inspect { }; - -# typing-validation = callPackage ./python-modules/typing-validation { }; - -# typish = callPackage ./python-modules/typish { }; - -# typogrify = callPackage ./python-modules/typogrify { }; - -# tzdata = callPackage ./python-modules/tzdata { }; - -# tzlocal = callPackage ./python-modules/tzlocal { }; - -# rustworkx = callPackage ./python-modules/rustworkx { }; - -# uamqp = callPackage ./python-modules/uamqp { -# inherit (pkgs.darwin.apple_sdk.frameworks) CFNetwork CoreFoundation Security; -# }; - -# ua-parser = callPackage ./python-modules/ua-parser { }; - -# uarray = callPackage ./python-modules/uarray { }; - -# uart-devices = callPackage ./python-modules/uart-devices { }; - -# uasiren = callPackage ./python-modules/uasiren { }; - -# ubelt = callPackage ./python-modules/ubelt { }; - -# uc-micro-py = callPackage ./python-modules/uc-micro-py { }; - -# ucsmsdk = callPackage ./python-modules/ucsmsdk { }; - -# udatetime = callPackage ./python-modules/udatetime { }; - -# ueberzug = callPackage ./python-modules/ueberzug { -# inherit (pkgs.xorg) libX11 libXext; -# }; - -# ufmt = callPackage ./python-modules/ufmt { }; - -# ufo2ft = callPackage ./python-modules/ufo2ft { }; - -# ufolib2 = callPackage ./python-modules/ufolib2 { }; - -# ufolint = callPackage ./python-modules/ufolint { }; - -# ufonormalizer = callPackage ./python-modules/ufonormalizer { }; - -# ufoprocessor = callPackage ./python-modules/ufoprocessor { }; - -# ueagle = callPackage ./python-modules/ueagle { }; - -# uharfbuzz = callPackage ./python-modules/uharfbuzz { -# inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices; -# }; - -# uhi = callPackage ./python-modules/uhi { }; - -# ujson = callPackage ./python-modules/ujson { }; - -# ukkonen = callPackage ./python-modules/ukkonen { }; - -# ukpostcodeparser = callPackage ./python-modules/ukpostcodeparser { }; - -# ulid-transform = callPackage ./python-modules/ulid-transform { }; - -# ultraheat-api = callPackage ./python-modules/ultraheat-api { }; - -# umalqurra = callPackage ./python-modules/umalqurra { }; - -# umap-learn = callPackage ./python-modules/umap-learn { }; - -# umodbus = callPackage ./python-modules/umodbus { }; - -# u-msgpack-python = callPackage ./python-modules/u-msgpack-python { }; - -# unasync = callPackage ./python-modules/unasync { }; - -# uncertainties = callPackage ./python-modules/uncertainties { }; - -# uncompyle6 = callPackage ./python-modules/uncompyle6 { }; - -# undefined = callPackage ./python-modules/undefined { }; - -# unearth = callPackage ./python-modules/unearth { }; - -# unicodecsv = callPackage ./python-modules/unicodecsv { }; - -# unicodedata2 = callPackage ./python-modules/unicodedata2 { }; - -# unicode-rbnf = callPackage ./python-modules/unicode-rbnf { }; - -# unicode-slugify = callPackage ./python-modules/unicode-slugify { }; - -# unicorn = callPackage ./python-modules/unicorn { -# unicorn-emu = pkgs.unicorn; -# }; - -# unicurses = callPackage ./python-modules/unicurses { }; - -# unicrypto = callPackage ./python-modules/unicrypto { }; - -# unidata-blocks = callPackage ./python-modules/unidata-blocks { }; - -# unidecode = callPackage ./python-modules/unidecode { }; - -# unidic = callPackage ./python-modules/unidic { }; - -# unidic-lite = callPackage ./python-modules/unidic-lite { }; - -# unidiff = callPackage ./python-modules/unidiff { }; - -# unifi = callPackage ./python-modules/unifi { }; - -# unifi-discovery = callPackage ./python-modules/unifi-discovery { }; - -# unify = callPackage ./python-modules/unify { }; - -# unifiled = callPackage ./python-modules/unifiled { }; - -# unique-log-filter = callPackage ./python-modules/unique-log-filter { }; - -# unittest-data-provider = callPackage ./python-modules/unittest-data-provider { }; - -# unittest-xml-reporting = callPackage ./python-modules/unittest-xml-reporting { }; - -# univers = callPackage ./python-modules/univers { }; - -# universal-pathlib = callPackage ./python-modules/universal-pathlib { }; - -# universal-silabs-flasher = callPackage ./python-modules/universal-silabs-flasher { }; - -# unix-ar = callPackage ./python-modules/unix-ar { }; - -# unpaddedbase64 = callPackage ./python-modules/unpaddedbase64 { }; - -# unrardll = callPackage ./python-modules/unrardll { }; - -# unrpa = callPackage ./python-modules/unrpa { }; - -# unstructured = callPackage ./python-modules/unstructured { }; - -# unstructured-api-tools = callPackage ./python-modules/unstructured-api-tools { }; - -# unstructured-inference = callPackage ./python-modules/unstructured-inference { }; - -# untangle = callPackage ./python-modules/untangle { }; - -# untokenize = callPackage ./python-modules/untokenize { }; - -# uonet-request-signer-hebe = callPackage ./python-modules/uonet-request-signer-hebe { }; - -# upass = callPackage ./python-modules/upass { }; - -# upb-lib = callPackage ./python-modules/upb-lib { }; - -# upcloud-api = callPackage ./python-modules/upcloud-api { }; - -# update-checker = callPackage ./python-modules/update-checker { }; - -# update-copyright = callPackage ./python-modules/update-copyright { }; - -# update-dotdee = callPackage ./python-modules/update-dotdee { }; - -# uplc = callPackage ./python-modules/uplc { }; - -# upnpy = callPackage ./python-modules/upnpy { }; - -# uproot = callPackage ./python-modules/uproot { }; - -# uptime = callPackage ./python-modules/uptime { }; - -# uptime-kuma-api = callPackage ./python-modules/uptime-kuma-api { }; - -# uptime-kuma-monitor = callPackage ./python-modules/uptime-kuma-monitor { }; - -# uqbar = callPackage ./python-modules/uqbar { }; - -# uranium = callPackage ./python-modules/uranium { }; - -# uritemplate = callPackage ./python-modules/uritemplate { }; - -# uri-template = callPackage ./python-modules/uri-template { }; - -# uritools = callPackage ./python-modules/uritools { }; - -# url-normalize = callPackage ./python-modules/url-normalize { }; - -# urlextract = callPackage ./python-modules/urlextract { }; - -# urlgrabber = callPackage ./python-modules/urlgrabber { }; - - urllib3 = callPackage ./python-modules/urllib3 { }; - -# urlman = callPackage ./python-modules/urlman { }; - -# urlpy = callPackage ./python-modules/urlpy { }; - -# urwid = callPackage ./python-modules/urwid { }; - -# urwidgets = callPackage ./python-modules/urwidgets { }; - -# urwidtrees = callPackage ./python-modules/urwidtrees { }; - -# urwid-readline = callPackage ./python-modules/urwid-readline { }; - -# urwid-mitmproxy = callPackage ./python-modules/urwid-mitmproxy { }; - -# usb-devices = callPackage ./python-modules/usb-devices { }; - -# usbrelay-py = callPackage ../os-specific/linux/usbrelay/python.nix { }; - -# usbtmc = callPackage ./python-modules/usbtmc { }; - -# us = callPackage ./python-modules/us { }; - -# user-agents = callPackage ./python-modules/user-agents { }; - -# userpath = callPackage ./python-modules/userpath { }; - -# ush = callPackage ./python-modules/ush { }; - -# usort = callPackage ./python-modules/usort { }; - -# utils = callPackage ./python-modules/utils { }; - -# uvcclient = callPackage ./python-modules/uvcclient { }; - -# uvicorn = callPackage ./python-modules/uvicorn { }; - -# uvloop = callPackage ./python-modules/uvloop { -# inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices CoreServices; -# }; - -# vaa = callPackage ./python-modules/vaa { }; - -# vacuum-map-parser-base = callPackage ./python-modules/vacuum-map-parser-base { }; - -# vacuum-map-parser-roborock = callPackage ./python-modules/vacuum-map-parser-roborock { }; - -# validate-email = callPackage ./python-modules/validate-email { }; - -# validator-collection = callPackage ./python-modules/validator-collection { }; - -# validators = callPackage ./python-modules/validators { }; - -# validobj = callPackage ./python-modules/validobj { }; - -# validphys2 = callPackage ./python-modules/validphys2 { }; - -# vallox-websocket-api = callPackage ./python-modules/vallox-websocket-api { }; - -# vapoursynth = callPackage ./python-modules/vapoursynth { -# inherit (pkgs) vapoursynth; -# }; - -# variants = callPackage ./python-modules/variants { }; - -# varint = callPackage ./python-modules/varint { }; - -# vat-moss = callPackage ./python-modules/vat-moss { }; - -# vcard = callPackage ./python-modules/vcard { }; - -# vcrpy = callPackage ./python-modules/vcrpy { }; - -# vcver = callPackage ./python-modules/vcver { }; - -# vcversioner = callPackage ./python-modules/vcversioner { }; - -# vdf = callPackage ./python-modules/vdf { }; - -# vdirsyncer = callPackage ./python-modules/vdirsyncer { }; - -# vector = callPackage ./python-modules/vector { }; - -# vehicle = callPackage ./python-modules/vehicle { }; - -# vega = callPackage ./python-modules/vega { }; - -# vega-datasets = callPackage ./python-modules/vega-datasets { }; - -# venstarcolortouch = callPackage ./python-modules/venstarcolortouch { }; - -# venusian = callPackage ./python-modules/venusian { }; - -# velbus-aio = callPackage ./python-modules/velbus-aio { }; - -# verboselogs = callPackage ./python-modules/verboselogs { }; - -# verlib2 = callPackage ./python-modules/verlib2 { }; - -# versioneer = callPackage ./python-modules/versioneer { }; - -# versionfinder = callPackage ./python-modules/versionfinder { }; - -# versioningit = callPackage ./python-modules/versioningit { }; - -# versiontag = callPackage ./python-modules/versiontag { }; - -# versiontools = callPackage ./python-modules/versiontools { }; - -# verspec = callPackage ./python-modules/verspec { }; - -# vertica-python = callPackage ./python-modules/vertica-python { }; - -# veryprettytable = callPackage ./python-modules/veryprettytable { }; - -# vg = callPackage ./python-modules/vg { }; - -# vharfbuzz = callPackage ./python-modules/vharfbuzz { }; - -# videocr = callPackage ./python-modules/videocr { }; - -# vidstab = callPackage ./python-modules/vidstab { }; - -# viennarna = toPythonModule pkgs.viennarna; - -# viewstate = callPackage ./python-modules/viewstate { }; - -# vilfo-api-client = callPackage ./python-modules/vilfo-api-client { }; - -# vina = callPackage ../applications/science/chemistry/autodock-vina/python-bindings.nix { }; - -# vincenty = callPackage ./python-modules/vincenty { }; - -# vine = callPackage ./python-modules/vine { }; - -# virt-firmware = callPackage ./python-modules/virt-firmware { }; - -# virtkey = callPackage ./python-modules/virtkey { }; - - virtualenv = callPackage ./python-modules/virtualenv { }; - -# virtualenv-clone = callPackage ./python-modules/virtualenv-clone { }; - -# virtualenvwrapper = callPackage ./python-modules/virtualenvwrapper { }; - -# visitor = callPackage ./python-modules/visitor { }; - -# vispy = callPackage ./python-modules/vispy { }; - -# vivisect = callPackage ./python-modules/vivisect { -# inherit (pkgs.libsForQt5) wrapQtAppsHook; -# }; - -# viv-utils = callPackage ./python-modules/viv-utils { }; - -# vllm = callPackage ./python-modules/vllm { }; - -# vmprof = callPackage ./python-modules/vmprof { }; - -# vncdo = callPackage ./python-modules/vncdo { }; - -# vobject = callPackage ./python-modules/vobject { }; - -# volatile = callPackage ./python-modules/volatile { }; - -# volkszaehler = callPackage ./python-modules/volkszaehler { }; - -# voluptuous = callPackage ./python-modules/voluptuous { }; - -# voluptuous-serialize = callPackage ./python-modules/voluptuous-serialize { }; - -# voluptuous-stubs = callPackage ./python-modules/voluptuous-stubs { }; - -# volvooncall = callPackage ./python-modules/volvooncall { }; - -# vowpalwabbit = callPackage ./python-modules/vowpalwabbit { }; - -# vpk = callPackage ./python-modules/vpk { }; - -# vprof = callPackage ./python-modules/vprof { }; - -# vqgan-jax = callPackage ./python-modules/vqgan-jax { }; - -# vsts = callPackage ./python-modules/vsts { }; - -# vsts-cd-manager = callPackage ./python-modules/vsts-cd-manager { }; - -# vsure = callPackage ./python-modules/vsure { }; - -# vt-py = callPackage ./python-modules/vt-py { }; - -# vtjp = callPackage ./python-modules/vtjp { }; - -# vtk = toPythonModule (pkgs.vtk_9.override { -# inherit python; -# enablePython = true; -# }); - -# vulcan-api = callPackage ./python-modules/vulcan-api { }; - -# vultr = callPackage ./python-modules/vultr { }; - -# vulture = callPackage ./python-modules/vulture { }; - -# vxi11 = callPackage ./python-modules/vxi11 { }; - -# vyper = callPackage ../development/compilers/vyper { }; - -# w1thermsensor = callPackage ./python-modules/w1thermsensor { }; - -# w3lib = callPackage ./python-modules/w3lib { }; - -# wadllib = callPackage ./python-modules/wadllib { }; - -# wagtail = callPackage ./python-modules/wagtail { }; - -# wagtail-factories = callPackage ./python-modules/wagtail-factories { }; - -# wagtail-localize = callPackage ./python-modules/wagtail-localize { }; - -# wagtail-modeladmin = callPackage ./python-modules/wagtail-modeladmin { }; - -# waitress = callPackage ./python-modules/waitress { }; - -# waitress-django = callPackage ./python-modules/waitress-django { }; - -# wakeonlan = callPackage ./python-modules/wakeonlan { }; - -# wallbox = callPackage ./python-modules/wallbox { }; - -# wallet-py3k = callPackage ./python-modules/wallet-py3k { }; - -# walrus = callPackage ./python-modules/walrus { }; - -# wand = callPackage ./python-modules/wand { }; - -# wandb = callPackage ./python-modules/wandb { }; - -# warble = callPackage ./python-modules/warble { }; - -# warcio = callPackage ./python-modules/warcio { }; - -# ward = callPackage ./python-modules/ward { }; - -# warlock = callPackage ./python-modules/warlock { }; - -# warrant = callPackage ./python-modules/warrant { }; - -# warrant-lite = callPackage ./python-modules/warrant-lite { }; - -# waqiasync = callPackage ./python-modules/waqiasync { }; - -# wasabi = callPackage ./python-modules/wasabi { }; - -# 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; - -# watchdog = callPackage ./python-modules/watchdog { -# inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices; -# }; - -# watchdog-gevent = callPackage ./python-modules/watchdog-gevent { }; - -# watchfiles = callPackage ./python-modules/watchfiles { -# inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices; -# }; - -# watchgod = callPackage ./python-modules/watchgod { }; - -# waterfurnace = callPackage ./python-modules/waterfurnace { }; - -# watermark = callPackage ./python-modules/watermark { }; - -# wavedrom = callPackage ./python-modules/wavedrom { }; - -# wavefile = callPackage ./python-modules/wavefile { }; - -# wavinsentio = callPackage ./python-modules/wavinsentio { }; - -# wazeroutecalculator = callPackage ./python-modules/wazeroutecalculator { }; - - wcag-contrast-ratio = callPackage ./python-modules/wcag-contrast-ratio { }; - -# wcmatch = callPackage ./python-modules/wcmatch { }; - -# wcwidth = callPackage ./python-modules/wcwidth { }; - -# weasel = callPackage ./python-modules/weasel { }; - -# weasyprint = callPackage ./python-modules/weasyprint { }; - -# weaviate-client = callPackage ./python-modules/weaviate-client { }; - -# web3 = callPackage ./python-modules/web3 { }; - -# webargs = callPackage ./python-modules/webargs { }; - -# webassets = callPackage ./python-modules/webassets { }; - -# webauthn = callPackage ./python-modules/webauthn { }; - -# web = callPackage ./python-modules/web { }; - -# web-cache = callPackage ./python-modules/web-cache { }; - -# webcolors = callPackage ./python-modules/webcolors { }; - -# webdataset = callPackage ./python-modules/webdataset { }; - -# webdav4 = callPackage ./python-modules/webdav4 { }; - -# webdavclient3 = callPackage ./python-modules/webdavclient3 { }; - -# webdriver-manager = callPackage ./python-modules/webdriver-manager { }; - - webencodings = callPackage ./python-modules/webencodings { }; - -# webexteamssdk = callPackage ./python-modules/webexteamssdk { }; - -# webhelpers = callPackage ./python-modules/webhelpers { }; - -# webob = callPackage ./python-modules/webob { }; - -# weboob = callPackage ./python-modules/weboob { }; - -# webrtc-noise-gain = callPackage ./python-modules/webrtc-noise-gain { }; - -# webrtcvad = callPackage ./python-modules/webrtcvad { }; - -# websocket-client = callPackage ./python-modules/websocket-client { }; - -# websockets = callPackage ./python-modules/websockets { }; - -# websockify = callPackage ./python-modules/websockify { }; - -# webssh = callPackage ./python-modules/webssh { }; - -# webtest = callPackage ./python-modules/webtest { }; - -# webtest-aiohttp = callPackage ./python-modules/webtest-aiohttp { }; - -# webthing = callPackage ./python-modules/webthing { }; - -# webthing-ws = callPackage ./python-modules/webthing-ws { }; - -# weconnect = callPackage ./python-modules/weconnect { }; - -# weconnect-mqtt = callPackage ./python-modules/weconnect-mqtt { }; - -# werkzeug = callPackage ./python-modules/werkzeug { }; - -# west = callPackage ./python-modules/west { }; - -# wfuzz = callPackage ./python-modules/wfuzz { }; - -# wget = callPackage ./python-modules/wget { }; - -# whatthepatch = callPackage ./python-modules/whatthepatch { }; - - wheel = callPackage ./python-modules/wheel { }; - -# wheel-filename = callPackage ./python-modules/wheel-filename { }; - -# wheel-inspect = callPackage ./python-modules/wheel-inspect { }; - -# wheezy-captcha = callPackage ./python-modules/wheezy-captcha { }; - -# wheezy-template = callPackage ./python-modules/wheezy-template { }; - -# whenever = callPackage ./python-modules/whenever { }; - -# whichcraft = callPackage ./python-modules/whichcraft { }; - -# whirlpool-sixth-sense = callPackage ./python-modules/whirlpool-sixth-sense { }; - -# whisper = callPackage ./python-modules/whisper { }; - -# whispers = callPackage ./python-modules/whispers { }; - -# whitenoise = callPackage ./python-modules/whitenoise { }; - -# whodap = callPackage ./python-modules/whodap { }; - -# whois = callPackage ./python-modules/whois { }; - -# whois-api = callPackage ./python-modules/whois-api { }; - -# whoisdomain = callPackage ./python-modules/whoisdomain { }; - -# whoosh = callPackage ./python-modules/whoosh { }; - -# widgetsnbextension = callPackage ./python-modules/widgetsnbextension { }; - -# widlparser = callPackage ./python-modules/widlparser { }; - -# wiffi = callPackage ./python-modules/wiffi { }; - -# wifi = callPackage ./python-modules/wifi { }; - -# wikipedia = callPackage ./python-modules/wikipedia { }; - -# wikipedia2vec = callPackage ./python-modules/wikipedia2vec { }; - -# wikipedia-api = callPackage ./python-modules/wikipedia-api { }; - -# wikitextparser = callPackage ./python-modules/wikitextparser { }; - -# willow = callPackage ./python-modules/willow { }; - -# winacl = callPackage ./python-modules/winacl { }; - -# winsspi = callPackage ./python-modules/winsspi { }; - -# withings-api = callPackage ./python-modules/withings-api { }; - -# withings-sync = callPackage ./python-modules/withings-sync { }; - -# wktutils = callPackage ./python-modules/wktutils { }; - -# wled = callPackage ./python-modules/wled { }; - -# wn = callPackage ./python-modules/wn { }; - -# woob = callPackage ./python-modules/woob { }; - -# woodblock = callPackage ./python-modules/woodblock { }; - -# wordcloud = callPackage ./python-modules/wordcloud { }; - -# wordfreq = callPackage ./python-modules/wordfreq { }; - -# worldengine = callPackage ./python-modules/worldengine { }; - -# wrapio = callPackage ./python-modules/wrapio { }; - -# wrapt = callPackage ./python-modules/wrapt { }; - -# wrf-python = callPackage ./python-modules/wrf-python { }; - -# ws4py = callPackage ./python-modules/ws4py { }; - -# wsdiscovery = callPackage ./python-modules/wsdiscovery { }; - -# wsgi-intercept = callPackage ./python-modules/wsgi-intercept { }; - -# wsgidav = callPackage ./python-modules/wsgidav { }; - -# wsgiprox = callPackage ./python-modules/wsgiprox { }; - -# wsgiproxy2 = callPackage ./python-modules/wsgiproxy2 { }; - -# wsgitools = callPackage ./python-modules/wsgitools { }; - -# wsme = callPackage ./python-modules/wsme { }; - -# wsnsimpy = callPackage ./python-modules/wsnsimpy { }; - -# wsproto = callPackage ./python-modules/wsproto { }; - -# wtforms = callPackage ./python-modules/wtforms { }; - -# wtforms-bootstrap5 = callPackage ./python-modules/wtforms-bootstrap5 { }; - -# wunsen = callPackage ./python-modules/wunsen { }; - -# wtf-peewee = callPackage ./python-modules/wtf-peewee { }; - -# wurlitzer = callPackage ./python-modules/wurlitzer { }; - -# wxpython = callPackage ./python-modules/wxpython/4.2.nix { -# wxGTK = pkgs.wxGTK32.override { -# withWebKit = true; -# }; -# inherit (pkgs) mesa; -# }; - -# wyoming = callPackage ./python-modules/wyoming { }; - -# x-wr-timezone = callPackage ./python-modules/x-wr-timezone { }; - -# x11-hash = callPackage ./python-modules/x11-hash { }; - -# x256 = callPackage ./python-modules/x256 { }; - -# 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; -# }; - -# xarray = callPackage ./python-modules/xarray { }; - -# xarray-dataclasses = callPackage ./python-modules/xarray-dataclasses { }; - -# xarray-einstats = callPackage ./python-modules/xarray-einstats { }; - -# xattr = callPackage ./python-modules/xattr { }; - -# xbox-webapi = callPackage ./python-modules/xbox-webapi { }; - -# xboxapi = callPackage ./python-modules/xboxapi { }; - -# xcffib = callPackage ./python-modules/xcffib { }; - -# xdg = callPackage ./python-modules/xdg { }; - -# xdg-base-dirs = callPackage ./python-modules/xdg-base-dirs { }; - -# xdis = callPackage ./python-modules/xdis { }; - -# xdoctest = callPackage ./python-modules/xdoctest { }; - -# xdot = callPackage ./python-modules/xdot { -# inherit (pkgs) graphviz; -# }; - -# xformers = callPackage ./python-modules/xformers { }; - -# xgboost = callPackage ./python-modules/xgboost { -# inherit (pkgs) xgboost; -# }; - -# xhtml2pdf = callPackage ./python-modules/xhtml2pdf { }; - -# xiaomi-ble = callPackage ./python-modules/xiaomi-ble { }; - -# xkbcommon = callPackage ./python-modules/xkbcommon { }; - -# xkcdpass = callPackage ./python-modules/xkcdpass { }; - -# xknx = callPackage ./python-modules/xknx { }; - -# xknxproject = callPackage ./python-modules/xknxproject { }; - -# xlib = callPackage ./python-modules/xlib { }; - -# xlrd = callPackage ./python-modules/xlrd { }; - -# xlsx2csv = callPackage ./python-modules/xlsx2csv { }; - -# xlsxwriter = callPackage ./python-modules/xlsxwriter { }; - -# xlwt = callPackage ./python-modules/xlwt { }; - -# xmind = callPackage ./python-modules/xmind { }; - -# xml2rfc = callPackage ./python-modules/xml2rfc { }; - -# xmldiff = callPackage ./python-modules/xmldiff { }; - -# xmljson = callPackage ./python-modules/xmljson { }; - - xmlschema = callPackage ./python-modules/xmlschema { }; - -# xmlsec = callPackage ./python-modules/xmlsec { -# inherit (pkgs) libxslt libxml2 libtool pkg-config xmlsec; -# }; - -# xmltodict = callPackage ./python-modules/xmltodict { }; - -# xml-marshaller = callPackage ./python-modules/xml-marshaller { }; - -# xmod = callPackage ./python-modules/xmod { }; - -# xmodem = callPackage ./python-modules/xmodem { }; - -# xnatpy = callPackage ./python-modules/xnatpy { }; - -# xnd = callPackage ./python-modules/xnd { }; - -# xpath-expressions = callPackage ./python-modules/xpath-expressions { }; - -# xpybutil = callPackage ./python-modules/xpybutil { }; - -# xrootd = callPackage ./python-modules/xrootd { -# inherit (pkgs) xrootd; -# }; - -# xsdata = callPackage ./python-modules/xsdata { }; - -# xstatic-asciinema-player = callPackage ./python-modules/xstatic-asciinema-player { }; - -# xstatic-bootbox = callPackage ./python-modules/xstatic-bootbox { }; - -# xstatic-bootstrap = callPackage ./python-modules/xstatic-bootstrap { }; - -# xstatic = callPackage ./python-modules/xstatic { }; - -# xstatic-font-awesome = callPackage ./python-modules/xstatic-font-awesome { }; - -# xstatic-jquery = callPackage ./python-modules/xstatic-jquery { }; - -# xstatic-jquery-file-upload = callPackage ./python-modules/xstatic-jquery-file-upload { }; - -# xstatic-jquery-ui = callPackage ./python-modules/xstatic-jquery-ui { }; - -# xstatic-pygments = callPackage ./python-modules/xstatic-pygments { }; - -# xtensor-python = callPackage ./python-modules/xtensor-python { }; - -# xvfbwrapper = callPackage ./python-modules/xvfbwrapper { -# inherit (pkgs.xorg) xorgserver; -# }; - -# xxhash = callPackage ./python-modules/xxhash { }; - -# xdxf2html = callPackage ./python-modules/xdxf2html { }; - -# xyzservices = callPackage ./python-modules/xyzservices { }; - -# y-py = callPackage ./python-modules/y-py { }; - -# yabadaba = callPackage ./python-modules/yabadaba { }; - -# yahooweather = callPackage ./python-modules/yahooweather { }; - -# yalesmartalarmclient = callPackage ./python-modules/yalesmartalarmclient { }; - -# yalexs = callPackage ./python-modules/yalexs { }; - -# yalexs-ble = callPackage ./python-modules/yalexs-ble { }; - -# yamale = callPackage ./python-modules/yamale { }; - -# yamlfix = callPackage ./python-modules/yamlfix { }; - -# yamllint = callPackage ./python-modules/yamllint { }; - -# yamlloader = callPackage ./python-modules/yamlloader { }; - -# yamlordereddictloader = callPackage ./python-modules/yamlordereddictloader { }; - -# yanc = callPackage ./python-modules/yanc { }; - -# yangson = callPackage ./python-modules/yangson { }; - -# yapf = callPackage ./python-modules/yapf { }; - -# yappi = callPackage ./python-modules/yappi { }; - -# yapsy = callPackage ./python-modules/yapsy { }; - -# yara-python = callPackage ./python-modules/yara-python { }; - -# yaramod = callPackage ./python-modules/yaramod { }; - -# yarg = callPackage ./python-modules/yarg { }; - -# yargy = callPackage ./python-modules/yargy { }; - -# yark = callPackage ./python-modules/yark { }; - -# yarl = callPackage ./python-modules/yarl { }; - -# yasi = callPackage ./python-modules/yasi { }; - -# yaspin = callPackage ./python-modules/yaspin { }; - -# yaswfp = callPackage ./python-modules/yaswfp { }; - -# yattag = callPackage ./python-modules/yattag { }; - -# yacs = callPackage ./python-modules/yacs { }; - -# ydiff = callPackage ./python-modules/ydiff { }; - -# yeelight = callPackage ./python-modules/yeelight { }; - -# yfinance = callPackage ./python-modules/yfinance { }; - -# yoda = toPythonModule (pkgs.yoda.override { inherit python; }); - -# yolink-api = callPackage ./python-modules/yolink-api { }; - -# yosys = toPythonModule (pkgs.yosys.override { -# python3 = python; -# }); - -# youless-api = callPackage ./python-modules/youless-api { }; - -# youseedee = callPackage ./python-modules/youseedee { }; - -# youtokentome = callPackage ./python-modules/youtokentome { }; - -# youtube-dl = callPackage ../tools/misc/youtube-dl { }; - -# youtube-dl-light = callPackage ../tools/misc/youtube-dl { -# ffmpegSupport = false; -# }; - -# youtubeaio = callPackage ./python-modules/youtubeaio { }; - -# yoyo-migrations = callPackage ./python-modules/yoyo-migrations { }; - -# 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; -# }; - -# youtube-search = callPackage ./python-modules/youtube-search { }; - -# youtube-search-python = callPackage ./python-modules/youtube-search-python { }; - -# youtube-transcript-api = callPackage ./python-modules/youtube-transcript-api { }; - -# yowsup = callPackage ./python-modules/yowsup { }; - -# ypy-websocket = callPackage ./python-modules/ypy-websocket { }; - -# yq = callPackage ./python-modules/yq { -# inherit (pkgs) jq; -# }; - -# yte = callPackage ./python-modules/yte { }; - -# ytmusicapi = callPackage ./python-modules/ytmusicapi { }; - -# yubico = callPackage ./python-modules/yubico { }; - -# yubico-client = callPackage ./python-modules/yubico-client { }; - -# z3c-checkversions = callPackage ./python-modules/z3c-checkversions { }; - -# z3-solver = (toPythonModule ((pkgs.z3.override { -# inherit python; -# }).overrideAttrs (_: { -# pname = "z3-solver"; -# }))).python; - -# zadnegoale = callPackage ./python-modules/zadnegoale { }; - -# zamg = callPackage ./python-modules/zamg { }; - -# zarr = callPackage ./python-modules/zarr { }; - -# zc-buildout = callPackage ./python-modules/buildout { }; - -# zc-lockfile = callPackage ./python-modules/zc-lockfile { }; - -# zcbor = callPackage ./python-modules/zcbor { }; - -# zconfig = callPackage ./python-modules/zconfig { }; - -# zcs = callPackage ./python-modules/zcs { }; - -# zdaemon = callPackage ./python-modules/zdaemon { }; - -# zeek = (toPythonModule (pkgs.zeek.broker.override { -# python3 = python; -# })).py; - -# zeep = callPackage ./python-modules/zeep { }; - -# zeitgeist = (toPythonModule (pkgs.zeitgeist.override { -# python3 = python; -# })).py; - -# zephyr-python-api = callPackage ./python-modules/zephyr-python-api { }; - -# zeroc-ice = callPackage ./python-modules/zeroc-ice { }; - -# zeroconf = callPackage ./python-modules/zeroconf { }; - -# zerorpc = callPackage ./python-modules/zerorpc { }; - -# zetup = callPackage ./python-modules/zetup { }; - -# zeversolarlocal = callPackage ./python-modules/zeversolarlocal { }; - -# zfec = callPackage ./python-modules/zfec { }; - -# zha = callPackage ./python-modules/zha { }; - -# zha-quirks = callPackage ./python-modules/zha-quirks { }; - -# ziafont = callPackage ./python-modules/ziafont { }; - -# ziamath = callPackage ./python-modules/ziamath { }; - -# zict = callPackage ./python-modules/zict { }; - -# zigpy = callPackage ./python-modules/zigpy { }; - -# zigpy-cc = callPackage ./python-modules/zigpy-cc { }; - -# zigpy-deconz = callPackage ./python-modules/zigpy-deconz { }; - -# zigpy-xbee = callPackage ./python-modules/zigpy-xbee { }; - -# zigpy-zigate = callPackage ./python-modules/zigpy-zigate { }; - -# zigpy-znp = callPackage ./python-modules/zigpy-znp { }; - -# zimports = callPackage ./python-modules/zimports { }; - -# zipfile2 = callPackage ./python-modules/zipfile2 { }; - - zipp = callPackage ./python-modules/zipp { }; - -# zipstream = callPackage ./python-modules/zipstream { }; - -# zipstream-ng = callPackage ./python-modules/zipstream-ng { }; - -# zlib-ng = callPackage ./python-modules/zlib-ng { -# inherit (pkgs) zlib-ng; -# }; - -# zm-py = callPackage ./python-modules/zm-py { }; - -# zodb = callPackage ./python-modules/zodb { }; - -# zodbpickle = callPackage ./python-modules/zodbpickle { }; - -# zope-cachedescriptors = callPackage ./python-modules/zope-cachedescriptors { }; - -# zope-component = callPackage ./python-modules/zope-component { }; - -# zope-configuration = callPackage ./python-modules/zope-configuration { }; - -# zope-contenttype = callPackage ./python-modules/zope-contenttype { }; - -# zope-copy = callPackage ./python-modules/zope-copy { }; - -# zope-deferredimport = callPackage ./python-modules/zope-deferredimport { }; - -# zope-deprecation = callPackage ./python-modules/zope-deprecation { }; - -# zope-dottedname = callPackage ./python-modules/zope-dottedname { }; - - zope-event = callPackage ./python-modules/zope-event { }; - -# zope-exceptions = callPackage ./python-modules/zope-exceptions { }; - -# zope-filerepresentation = callPackage ./python-modules/zope-filerepresentation { }; - -# zope-hookable = callPackage ./python-modules/zope-hookable { }; - -# zope-i18nmessageid = callPackage ./python-modules/zope-i18nmessageid { }; - - zope-interface = callPackage ./python-modules/zope-interface { }; - -# zope-lifecycleevent = callPackage ./python-modules/zope-lifecycleevent { }; - -# zope-location = callPackage ./python-modules/zope-location { }; - -# zope-proxy = callPackage ./python-modules/zope-proxy { }; - -# zope-schema = callPackage ./python-modules/zope-schema { }; - -# zope-size = callPackage ./python-modules/zope-size { }; - -# zope-testbrowser = callPackage ./python-modules/zope-testbrowser { }; - -# zope-testing = callPackage ./python-modules/zope-testing { }; - -# zope-testrunner = callPackage ./python-modules/zope-testrunner { }; - -# zopfli = callPackage ./python-modules/zopfli { -# inherit (pkgs) zopfli; -# }; - -# zstandard = callPackage ./python-modules/zstandard { }; - -# zstd = callPackage ./python-modules/zstd { -# inherit (pkgs) zstd; -# }; - -# zulip = callPackage ./python-modules/zulip { }; - -# zwave-me-ws = callPackage ./python-modules/zwave-me-ws { }; - -# zwave-js-server-python = callPackage ./python-modules/zwave-js-server-python { }; - -# zxcvbn = callPackage ./python-modules/zxcvbn { }; - -# 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 deleted file mode 100644 index fbf63a3..0000000 --- a/pkgs/by-name/py/python/python2-packages.nix +++ /dev/null @@ -1,99 +0,0 @@ -# Extension with Python 2 packages that is overlayed on top -# of the Python 3 packages set. This way, Python 2+3 compatible -# packages can still be used. - -self: super: - -with self; with super; { - # attrs = callPackage ./python2-modules/attrs { }; - - # backports-functools-lru-cache = callPackage ./python2-modules/backports-functools-lru-cache { }; - - # bootstrapped-pip = toPythonModule (callPackage ./python2-modules/bootstrapped-pip { }); - - # cffi = callPackage ./python2-modules/cffi { inherit cffi; }; - - # configparser = callPackage ./python2-modules/configparser { }; - - # contextlib2 = callPackage ./python2-modules/contextlib2 { }; - - # coverage = callPackage ./python2-modules/coverage { }; - - # enum = callPackage ./python2-modules/enum { }; - - # filelock = callPackage ./python2-modules/filelock { }; - - # futures = callPackage ./python2-modules/futures { }; - - # hypothesis = callPackage ./python2-modules/hypothesis { }; - - # importlib-metadata = callPackage ./python2-modules/importlib-metadata { }; - - # jinja2 = callPackage ./python2-modules/jinja2 { }; - - # markupsafe = callPackage ./python2-modules/markupsafe { }; - - # mock = callPackage ./python2-modules/mock { }; - - # more-itertools = callPackage ./python2-modules/more-itertools { }; - - # # ninja python stub was created to help simplify python builds using PyPA's - # # build tool in Python 3, but it does not yet support Python 2 - # ninja = pkgs.buildPackages.ninja; - - # packaging = callPackage ./python2-modules/packaging { }; - - # pip = callPackage ./python2-modules/pip { }; - - # pluggy = callPackage ./python2-modules/pluggy { }; - - # pycairo = callPackage ./python2-modules/pycairo { - # inherit (pkgs.buildPackages) meson; - # }; - - # pygobject2 = callPackage ./python2-modules/pygobject { }; - - # pygtk = callPackage ./python2-modules/pygtk { }; - - # pyparsing = callPackage ./python2-modules/pyparsing { }; - - # pytest = pytest_4; - - # pytest_4 = callPackage - # ./python2-modules/pytest { - # # hypothesis tests require pytest that causes dependency cycle - # hypothesis = self.hypothesis.override { - # doCheck = false; - # }; - # }; - - # pytest-xdist = callPackage ./python2-modules/pytest-xdist { }; - - # recoll = disabled super.recoll; - - # rivet = disabled super.rivet; - - # rpm = disabled super.rpm; - - # scandir = callPackage ./python2-modules/scandir { }; - - # setuptools = callPackage ./python2-modules/setuptools { }; - - # setuptools-scm = callPackage ./python2-modules/setuptools-scm { }; - - # typing = callPackage ./python2-modules/typing { }; - - # six = super.six.overridePythonAttrs (_: { - # doCheck = false; # circular dependency with pytest - # }); - - # wcwidth = callPackage ./python2-modules/wcwidth { - # inherit wcwidth; - # }; - - # wheel = callPackage ./python2-modules/wheel { }; - - # zeek = disabled super.zeek; - - # zipp = callPackage ./python2-modules/zipp { }; -} diff --git a/pkgs/by-name/py/python/python2/mk-python-derivation.nix b/pkgs/by-name/py/python/python2/mk-python-derivation.nix deleted file mode 100644 index 1a6f9c7..0000000 --- a/pkgs/by-name/py/python/python2/mk-python-derivation.nix +++ /dev/null @@ -1,250 +0,0 @@ -# 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 -}: - -{ name ? "${attrs.pname}-${attrs.version}" - -# Build-time dependencies for the package -, nativeBuildInputs ? [] - -# Run-time dependencies for the package -, buildInputs ? [] - -# 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 ? [] - -# DEPRECATED: use propagatedBuildInputs -, pythonPath ? [] - -# Enabled to detect some (native)BuildInputs mistakes -, strictDeps ? true - -, outputs ? [ "out" ] - -# 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) - -# Additional arguments to pass to the makeWrapper function, which wraps -# generated binaries. -, makeWrapperArgs ? [] - -# 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 - -# 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 - -# 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 ? {} - -, passthru ? {} - -, doCheck ? config.doCheckByDefault or false - -, disabledTestPaths ? [] - -, ... } @ attrs: - -let - inherit (python) stdenv; - - 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; - - 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; - - 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: - - ${leftPadName myName theirName} uses ${python} - ${leftPadName theirName myName} uses ${toString drv.pythonModule} - - 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 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: - - makeWrapperArgs = [ "--prefix PATH : ''${lib.makeBinPath [ ${lib.getName drv } ] }" ]; - - ${optionalLocation} - ''; - - checkDrv = drv: - if (isPythonModule drv) && (isMismatchedPython drv) - then throwMismatch drv - else drv; - - 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" - ]) // { - - 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; - - 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 - ]); - - inherit strictDeps; - - 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; - - 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 ]; - - 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; - })); - - 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 diff --git a/pkgs/by-name/py/python/run_setup.py b/pkgs/by-name/py/python/run_setup.py deleted file mode 100644 index e3a530e..0000000 --- a/pkgs/by-name/py/python/run_setup.py +++ /dev/null @@ -1,8 +0,0 @@ -# -*- coding: utf-8 -*- - -import setuptools -import tokenize - -__file__='setup.py'; - -exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\\r\\n', '\\n'), __file__, 'exec')) diff --git a/pkgs/by-name/py/python/rustpython/Cargo.lock b/pkgs/by-name/py/python/rustpython/Cargo.lock deleted file mode 100644 index 36335bb..0000000 --- a/pkgs/by-name/py/python/rustpython/Cargo.lock +++ /dev/null @@ -1,3467 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "adler32" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" - -[[package]] -name = "ahash" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" -dependencies = [ - "getrandom 0.2.8", - "once_cell", - "version_check", -] - -[[package]] -name = "aho-corasick" -version = "0.7.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" -dependencies = [ - "memchr", -] - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "ansi_term" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" -dependencies = [ - "winapi", -] - -[[package]] -name = "anyhow" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800" - -[[package]] -name = "approx" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" -dependencies = [ - "num-traits", -] - -[[package]] -name = "arrayvec" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" - -[[package]] -name = "ascii" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" - -[[package]] -name = "atomic" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b88d82667eca772c4aa12f0f1348b3ae643424c8876448f3f7bd5787032e234c" -dependencies = [ - "autocfg", -] - -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6776fc96284a0bb647b615056fc496d1fe1644a7ab01829818a6d91cae888b84" - -[[package]] -name = "blake2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest 0.10.6", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "block-padding", - "generic-array", -] - -[[package]] -name = "block-buffer" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" -dependencies = [ - "generic-array", -] - -[[package]] -name = "block-padding" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" - -[[package]] -name = "bstr" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" -dependencies = [ - "lazy_static 1.4.0", - "memchr", - "regex-automata", -] - -[[package]] -name = "bumpalo" -version = "3.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" - -[[package]] -name = "byteorder" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" - -[[package]] -name = "bzip2" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" -dependencies = [ - "bzip2-sys", - "libc", -] - -[[package]] -name = "bzip2-sys" -version = "0.1.11+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - -[[package]] -name = "caseless" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808dab3318747be122cb31d36de18d4d1c81277a76f8332a02b81a3d73463d7f" -dependencies = [ - "regex", - "unicode-normalization", -] - -[[package]] -name = "cast" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" - -[[package]] -name = "cc" -version = "1.0.79" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" -dependencies = [ - "iana-time-zone", - "js-sys", - "num-integer", - "num-traits", - "time", - "wasm-bindgen", - "winapi", -] - -[[package]] -name = "clap" -version = "2.34.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" -dependencies = [ - "ansi_term", - "atty", - "bitflags 1.3.2", - "strsim", - "textwrap 0.11.0", - "unicode-width", - "vec_map", -] - -[[package]] -name = "clipboard-win" -version = "4.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" -dependencies = [ - "error-code", - "str-buf", - "winapi", -] - -[[package]] -name = "codespan-reporting" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" -dependencies = [ - "termcolor", - "unicode-width", -] - -[[package]] -name = "console" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d79fbe8970a77e3e34151cc13d3b3e248aa0faaecb9f6091fa07ebefe5ad60" -dependencies = [ - "encode_unicode", - "lazy_static 1.4.0", - "libc", - "windows-sys 0.42.0", -] - -[[package]] -name = "console_error_panic_hook" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" -dependencies = [ - "cfg-if", - "wasm-bindgen", -] - -[[package]] -name = "convert_case" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" - -[[package]] -name = "core-foundation" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" - -[[package]] -name = "cpufeatures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" -dependencies = [ - "libc", -] - -[[package]] -name = "cpython" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3052106c29da7390237bc2310c1928335733b286287754ea85e6093d2495280e" -dependencies = [ - "libc", - "num-traits", - "paste", - "python3-sys", -] - -[[package]] -name = "cranelift" -version = "0.88.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea1b0c164043c16a8ece6813eef609ac2262a32a0bb0f5ed6eecf5d7bfb79ba8" -dependencies = [ - "cranelift-codegen", - "cranelift-frontend", -] - -[[package]] -name = "cranelift-bforest" -version = "0.88.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52056f6d0584484b57fa6c1a65c1fcb15f3780d8b6a758426d9e3084169b2ddd" -dependencies = [ - "cranelift-entity", -] - -[[package]] -name = "cranelift-codegen" -version = "0.88.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fed94c8770dc25d01154c3ffa64ed0b3ba9d583736f305fed7beebe5d9cf74" -dependencies = [ - "arrayvec", - "bumpalo", - "cranelift-bforest", - "cranelift-codegen-meta", - "cranelift-codegen-shared", - "cranelift-entity", - "cranelift-isle", - "log", - "regalloc2", - "smallvec", - "target-lexicon", -] - -[[package]] -name = "cranelift-codegen-meta" -version = "0.88.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c451b81faf237d11c7e4f3165eeb6bac61112762c5cfe7b4c0fb7241474358f" -dependencies = [ - "cranelift-codegen-shared", -] - -[[package]] -name = "cranelift-codegen-shared" -version = "0.88.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c940133198426d26128f08be2b40b0bd117b84771fd36798969c4d712d81fc" - -[[package]] -name = "cranelift-entity" -version = "0.88.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87a0f1b2fdc18776956370cf8d9b009ded3f855350c480c1c52142510961f352" - -[[package]] -name = "cranelift-frontend" -version = "0.88.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34897538b36b216cc8dd324e73263596d51b8cf610da6498322838b2546baf8a" -dependencies = [ - "cranelift-codegen", - "log", - "smallvec", - "target-lexicon", -] - -[[package]] -name = "cranelift-isle" -version = "0.88.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b2629a569fae540f16a76b70afcc87ad7decb38dc28fa6c648ac73b51e78470" - -[[package]] -name = "cranelift-jit" -version = "0.88.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "625be33ce54cf906c408f5ad9d08caa6e2a09e52d05fd0bd1bd95b132bfbba73" -dependencies = [ - "anyhow", - "cranelift-codegen", - "cranelift-entity", - "cranelift-module", - "cranelift-native", - "libc", - "log", - "region", - "target-lexicon", - "windows-sys 0.36.1", -] - -[[package]] -name = "cranelift-module" -version = "0.88.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "883f8d42e07fd6b283941688f6c41a9e3b97fbf2b4ddcfb2756e675b86dc5edb" -dependencies = [ - "anyhow", - "cranelift-codegen", -] - -[[package]] -name = "cranelift-native" -version = "0.88.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20937dab4e14d3e225c5adfc9c7106bafd4ac669bdb43027b911ff794c6fb318" -dependencies = [ - "cranelift-codegen", - "libc", - "target-lexicon", -] - -[[package]] -name = "crc32fast" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "criterion" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b01d6de93b2b6c65e17c634a26653a29d107b3c98c607c765bf38d041531cd8f" -dependencies = [ - "atty", - "cast", - "clap", - "criterion-plot", - "csv", - "itertools 0.10.5", - "lazy_static 1.4.0", - "num-traits", - "oorandom", - "plotters", - "rayon", - "regex", - "serde", - "serde_cbor", - "serde_derive", - "serde_json", - "tinytemplate", - "walkdir", -] - -[[package]] -name = "criterion-plot" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2673cc8207403546f45f5fd319a974b1e6983ad1a3ee7e6041650013be041876" -dependencies = [ - "cast", - "itertools 0.10.5", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" -dependencies = [ - "cfg-if", - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" -dependencies = [ - "autocfg", - "cfg-if", - "crossbeam-utils", - "memoffset 0.7.1", - "scopeguard", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "csv" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af91f40b7355f82b0a891f50e70399475945bb0b0da4f1700ce60761c9d3e359" -dependencies = [ - "csv-core", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "csv-core" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90" -dependencies = [ - "memchr", -] - -[[package]] -name = "cxx" -version = "1.0.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86d3488e7665a7a483b57e25bdd90d0aeb2bc7608c8d0346acf2ad3f1caf1d62" -dependencies = [ - "cc", - "cxxbridge-flags", - "cxxbridge-macro", - "link-cplusplus", -] - -[[package]] -name = "cxx-build" -version = "1.0.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48fcaf066a053a41a81dfb14d57d99738b767febb8b735c3016e469fac5da690" -dependencies = [ - "cc", - "codespan-reporting", - "once_cell", - "proc-macro2", - "quote", - "scratch", - "syn", -] - -[[package]] -name = "cxxbridge-flags" -version = "1.0.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2ef98b8b717a829ca5603af80e1f9e2e48013ab227b68ef37872ef84ee479bf" - -[[package]] -name = "cxxbridge-macro" -version = "1.0.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "086c685979a698443656e5cf7856c95c642295a38599f12fb1ff76fb28d19892" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "derive_more" -version = "0.99.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "rustc_version", - "syn", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "digest" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" -dependencies = [ - "block-buffer 0.10.3", - "crypto-common", - "subtle", -] - -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - -[[package]] -name = "dns-lookup" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53ecafc952c4528d9b51a458d1a8904b81783feff9fde08ab6ed2545ff396872" -dependencies = [ - "cfg-if", - "libc", - "socket2", - "winapi", -] - -[[package]] -name = "dyn-clone" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9b0705efd4599c15a38151f4721f7bc388306f61084d3bfd50bd07fbca5cb60" - -[[package]] -name = "either" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" - -[[package]] -name = "embed-doc-image" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af36f591236d9d822425cb6896595658fa558fcebf5ee8accac1d4b92c47166e" -dependencies = [ - "base64", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "encode_unicode" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" - -[[package]] -name = "endian-type" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" - -[[package]] -name = "env_logger" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" -dependencies = [ - "atty", - "log", - "termcolor", -] - -[[package]] -name = "errno" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" -dependencies = [ - "errno-dragonfly", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "error-code" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21" -dependencies = [ - "libc", - "str-buf", -] - -[[package]] -name = "exitcode" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de853764b47027c2e862a995c34978ffa63c1501f2e15f987ba11bd4f9bba193" - -[[package]] -name = "fd-lock" -version = "3.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ae6b3d9530211fb3b12a95374b8b0823be812f53d09e18c5675c0146b09642" -dependencies = [ - "cfg-if", - "rustix", - "windows-sys 0.48.0", -] - -[[package]] -name = "flame" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc2706461e1ee94f55cab2ed2e3d34ae9536cfa830358ef80acff1a3dacab30" -dependencies = [ - "lazy_static 0.2.11", - "serde", - "serde_derive", - "serde_json", - "thread-id", -] - -[[package]] -name = "flamer" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36b732da54fd4ea34452f2431cf464ac7be94ca4b339c9cd3d3d12eb06fe7aab" -dependencies = [ - "flame", - "quote", - "syn", -] - -[[package]] -name = "flamescope" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3cc29a6c0dfa26d3a0e80021edda5671eeed79381130897737cdd273ea18909" -dependencies = [ - "flame", - "indexmap", - "serde", - "serde_json", -] - -[[package]] -name = "flate2" -version = "1.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" -dependencies = [ - "crc32fast", - "libz-sys", - "miniz_oxide", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - -[[package]] -name = "generic-array" -version = "0.14.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "gethostname" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - -[[package]] -name = "getrandom" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "wasm-bindgen", -] - -[[package]] -name = "glob" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" - -[[package]] -name = "half" -version = "1.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hexf-parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" - -[[package]] -name = "iana-time-zone" -version = "0.1.53" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "winapi", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" -dependencies = [ - "cxx", - "cxx-build", -] - -[[package]] -name = "indexmap" -version = "1.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" -dependencies = [ - "autocfg", - "hashbrown", -] - -[[package]] -name = "insta" -version = "1.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea5b3894afe466b4bcf0388630fc15e11938a6074af0cd637c825ba2ec8a099" -dependencies = [ - "console", - "lazy_static 1.4.0", - "linked-hash-map", - "similar", - "yaml-rust", -] - -[[package]] -name = "io-lifetimes" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" -dependencies = [ - "hermit-abi 0.3.1", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "is-macro" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7d079e129b77477a49c5c4f1cfe9ce6c2c909ef52520693e8e811a714c7b20" -dependencies = [ - "Inflector", - "pmutil", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "itertools" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" - -[[package]] -name = "js-sys" -version = "0.3.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "keccak" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3afef3b6eff9ce9d8ff9b3601125eec7f0c8cbac7abd14f355d053fa56c98768" -dependencies = [ - "cpufeatures", -] - -[[package]] -name = "lalrpop-util" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f35c735096c0293d313e8f2a641627472b83d01b937177fe76e5e2708d31e0d" - -[[package]] -name = "lazy_static" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "lexical-parse-float" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f" -dependencies = [ - "lexical-parse-integer", - "lexical-util", - "static_assertions", -] - -[[package]] -name = "lexical-parse-integer" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9" -dependencies = [ - "lexical-util", - "static_assertions", -] - -[[package]] -name = "lexical-util" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc" -dependencies = [ - "static_assertions", -] - -[[package]] -name = "libc" -version = "0.2.141" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5" - -[[package]] -name = "libffi" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cb06d5b4c428f3cd682943741c39ed4157ae989fffe1094a08eaf7c4014cf60" -dependencies = [ - "libc", - "libffi-sys", -] - -[[package]] -name = "libffi-sys" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11c6f11e063a27ffe040a9d15f0b661bf41edc2383b7ae0e0ad5a7e7d53d9da3" -dependencies = [ - "cc", -] - -[[package]] -name = "libsqlite3-sys" -version = "0.25.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29f835d03d717946d28b1d1ed632eb6f0e24a299388ee623d0c23118d3e8a7fa" -dependencies = [ - "cc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "libz-sys" -version = "1.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "link-cplusplus" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" -dependencies = [ - "cc", -] - -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - -[[package]] -name = "linux-raw-sys" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59d8c75012853d2e872fb56bc8a2e53718e2cafe1a4c823143141c6d90c322f" - -[[package]] -name = "lock_api" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "lz4_flex" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a8cbbb2831780bc3b9c15a41f5b49222ef756b6730a95f3decfdd15903eb5a3" -dependencies = [ - "twox-hash", -] - -[[package]] -name = "mac_address" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b238e3235c8382b7653c6408ed1b08dd379bdb9fdf990fb0bbae3db2cc0ae963" -dependencies = [ - "nix 0.23.2", - "winapi", -] - -[[package]] -name = "mach" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" -dependencies = [ - "libc", -] - -[[package]] -name = "malachite" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6cf7f4730c30071ba374fac86ad35b1cb7a0716f774737768667ea3fa1828e3" -dependencies = [ - "malachite-base", - "malachite-nz", - "malachite-q", -] - -[[package]] -name = "malachite-base" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b06bfa98a4b4802af5a4263b4ad4660e28e51e8490f6354eb9336c70767e1c5" -dependencies = [ - "itertools 0.9.0", - "rand 0.7.3", - "rand_chacha 0.2.2", - "ryu", - "sha3 0.9.1", -] - -[[package]] -name = "malachite-bigint" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a5110aee54537b0cef214efbebdd7df79b7408db8eef4f6a4b6db9d0d8fc01b" -dependencies = [ - "derive_more", - "malachite", - "num-integer", - "num-traits", - "paste", -] - -[[package]] -name = "malachite-nz" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c89e21c64b7af5be3dc8cef16f786243faf59459fe4ba93b44efdeb264e5ade4" -dependencies = [ - "embed-doc-image", - "itertools 0.9.0", - "malachite-base", -] - -[[package]] -name = "malachite-q" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3755e541d5134b5016594c9043094172c4dda9259b3ce824a7b8101941850360" -dependencies = [ - "itertools 0.9.0", - "malachite-base", - "malachite-nz", -] - -[[package]] -name = "maplit" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" - -[[package]] -name = "matches" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" - -[[package]] -name = "md-5" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" -dependencies = [ - "digest 0.10.6", -] - -[[package]] -name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - -[[package]] -name = "memmap2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b182332558b18d807c4ce1ca8ca983b34c3ee32765e47b3f0f69b90355cc1dc" -dependencies = [ - "libc", -] - -[[package]] -name = "memoffset" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" -dependencies = [ - "autocfg", -] - -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - -[[package]] -name = "miniz_oxide" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" -dependencies = [ - "adler", -] - -[[package]] -name = "mt19937" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12ca7f22ed370d5991a9caec16a83187e865bc8a532f889670337d5a5689e3a1" -dependencies = [ - "rand_core 0.6.4", -] - -[[package]] -name = "nibble_vec" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" -dependencies = [ - "smallvec", -] - -[[package]] -name = "nix" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c" -dependencies = [ - "bitflags 1.3.2", - "cc", - "cfg-if", - "libc", - "memoffset 0.6.5", -] - -[[package]] -name = "nix" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" -dependencies = [ - "bitflags 1.3.2", - "cfg-if", - "libc", - "memoffset 0.7.1", - "pin-utils", - "static_assertions", -] - -[[package]] -name = "nom8" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae01545c9c7fc4486ab7debaf2aad7003ac19431791868fb2e8066df97fad2f8" -dependencies = [ - "memchr", -] - -[[package]] -name = "num-complex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" -dependencies = [ - "hermit-abi 0.2.6", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d829733185c1ca374f17e52b762f24f535ec625d2cc1f070e34c8a9068f341b" -dependencies = [ - "num_enum_derive", -] - -[[package]] -name = "num_enum_derive" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2be1598bf1c313dcdd12092e3f1920f463462525a21b7b4e11b4168353d0123e" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "once_cell" -version = "1.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" - -[[package]] -name = "oorandom" -version = "11.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" - -[[package]] -name = "opaque-debug" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" - -[[package]] -name = "openssl" -version = "0.10.55" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d" -dependencies = [ - "bitflags 1.3.2", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-src" -version = "111.25.0+1.1.1t" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3173cd3626c43e3854b1b727422a276e568d9ec5fe8cec197822cf52cfb743d6" -dependencies = [ - "cc", -] - -[[package]] -name = "openssl-sys" -version = "0.9.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6" -dependencies = [ - "cc", - "libc", - "openssl-src", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "optional" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978aa494585d3ca4ad74929863093e87cac9790d81fe7aba2b3dc2890643a0fc" - -[[package]] -name = "page_size" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eebde548fbbf1ea81a99b128872779c437752fb99f217c45245e1a61dcd9edcd" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "windows-sys 0.45.0", -] - -[[package]] -name = "paste" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" - -[[package]] -name = "phf" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928c6535de93548188ef63bb7c4036bd415cd8f36ad25af44b9789b2ee72a48c" -dependencies = [ - "phf_shared", -] - -[[package]] -name = "phf_codegen" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56ac890c5e3ca598bbdeaa99964edb5b0258a583a9eb6ef4e89fc85d9224770" -dependencies = [ - "phf_generator", - "phf_shared", -] - -[[package]] -name = "phf_generator" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1181c94580fa345f50f19d738aaa39c0ed30a600d95cb2d3e23f94266f14fbf" -dependencies = [ - "phf_shared", - "rand 0.8.5", -] - -[[package]] -name = "phf_shared" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1fb5f6f826b772a8d4c0394209441e7d37cbbb967ae9c7e0e8134365c9ee676" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" - -[[package]] -name = "plotters" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97" -dependencies = [ - "num-traits", - "plotters-backend", - "plotters-svg", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "plotters-backend" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142" - -[[package]] -name = "plotters-svg" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f" -dependencies = [ - "plotters-backend", -] - -[[package]] -name = "pmutil" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3894e5d549cccbe44afecf72922f277f603cd4bb0219c8342631ef18fffbe004" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "proc-macro-crate" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66618389e4ec1c7afe67d51a9bf34ff9236480f8d51e7489b7d5ab0303c13f34" -dependencies = [ - "once_cell", - "toml_edit", -] - -[[package]] -name = "proc-macro2" -version = "1.0.66" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "puruspe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b7e158a385023d209d6d5f2585c4b468f6dcb3dd5aca9b75c4f1678c05bb375" - -[[package]] -name = "python3-sys" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f8b50d72fb3015735aa403eebf19bbd72c093bfeeae24ee798be5f2f1aab52" -dependencies = [ - "libc", - "regex", -] - -[[package]] -name = "quote" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - -[[package]] -name = "radix_trie" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" -dependencies = [ - "endian-type", - "nibble_vec", -] - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.8", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rayon" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "356a0625f1954f730c0201cdab48611198dc6ce21f4acff55089b5a78e6e835b" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-utils", - "num_cpus", -] - -[[package]] -name = "redox_syscall" -version = "0.1.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_users" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" -dependencies = [ - "getrandom 0.2.8", - "redox_syscall 0.2.16", - "thiserror", -] - -[[package]] -name = "regalloc2" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d43a209257d978ef079f3d446331d0f1794f5e0fc19b306a199983857833a779" -dependencies = [ - "fxhash", - "log", - "slice-group-by", - "smallvec", -] - -[[package]] -name = "regex" -version = "1.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" - -[[package]] -name = "regex-syntax" -version = "0.6.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" - -[[package]] -name = "region" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877e54ea2adcd70d80e9179344c97f93ef0dffd6b03e1f4529e6e83ab2fa9ae0" -dependencies = [ - "bitflags 1.3.2", - "libc", - "mach", - "winapi", -] - -[[package]] -name = "result-like" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b80fe0296795a96913be20558326b797a187bb3986ce84ed82dee0fb7414428" -dependencies = [ - "result-like-derive", -] - -[[package]] -name = "result-like-derive" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a29c8a4ac7839f1dcb8b899263b501e0d6932f210300c8a0d271323727b35c1" -dependencies = [ - "pmutil", - "proc-macro2", - "quote", - "syn", - "syn-ext", -] - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver", -] - -[[package]] -name = "rustix" -version = "0.37.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85597d61f83914ddeba6a47b3b8ffe7365107221c2e557ed94426489fefb5f77" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustpython" -version = "0.3.0" -dependencies = [ - "atty", - "cfg-if", - "clap", - "cpython", - "criterion", - "dirs-next", - "env_logger", - "flame", - "flamescope", - "libc", - "log", - "python3-sys", - "rustpython-compiler", - "rustpython-parser", - "rustpython-pylib", - "rustpython-stdlib", - "rustpython-vm", - "rustyline", -] - -[[package]] -name = "rustpython-ast" -version = "0.3.0" -source = "git+https://github.com/RustPython/Parser.git?tag=0.3.0#a1e4336f7043807eda8a5ecb15d4115172cc4a7e" -dependencies = [ - "is-macro", - "malachite-bigint", - "rustpython-literal", - "rustpython-parser-core", - "static_assertions", -] - -[[package]] -name = "rustpython-codegen" -version = "0.3.0" -dependencies = [ - "ahash", - "bitflags 2.3.1", - "indexmap", - "insta", - "itertools 0.10.5", - "log", - "num-complex", - "num-traits", - "rustpython-ast", - "rustpython-compiler-core", - "rustpython-parser", - "rustpython-parser-core", -] - -[[package]] -name = "rustpython-common" -version = "0.3.0" -dependencies = [ - "ascii", - "bitflags 2.3.1", - "bstr", - "cfg-if", - "itertools 0.10.5", - "libc", - "lock_api", - "malachite-base", - "malachite-bigint", - "malachite-q", - "num-complex", - "num-traits", - "once_cell", - "parking_lot", - "radium", - "rand 0.8.5", - "rustpython-format", - "siphasher", - "volatile", - "widestring", -] - -[[package]] -name = "rustpython-compiler" -version = "0.3.0" -dependencies = [ - "rustpython-codegen", - "rustpython-compiler-core", - "rustpython-parser", -] - -[[package]] -name = "rustpython-compiler-core" -version = "0.3.0" -dependencies = [ - "bitflags 2.3.1", - "itertools 0.10.5", - "lz4_flex", - "malachite-bigint", - "num-complex", - "rustpython-parser-core", - "serde", -] - -[[package]] -name = "rustpython-derive" -version = "0.3.0" -dependencies = [ - "rustpython-compiler", - "rustpython-derive-impl", - "syn", -] - -[[package]] -name = "rustpython-derive-impl" -version = "0.3.0" -dependencies = [ - "itertools 0.10.5", - "maplit", - "once_cell", - "proc-macro2", - "quote", - "rustpython-compiler-core", - "rustpython-doc", - "rustpython-parser-core", - "syn", - "syn-ext", - "textwrap 0.15.2", -] - -[[package]] -name = "rustpython-doc" -version = "0.3.0" -source = "git+https://github.com/RustPython/__doc__?tag=0.3.0#8b62ce5d796d68a091969c9fa5406276cb483f79" -dependencies = [ - "once_cell", -] - -[[package]] -name = "rustpython-format" -version = "0.3.0" -source = "git+https://github.com/RustPython/Parser.git?tag=0.3.0#a1e4336f7043807eda8a5ecb15d4115172cc4a7e" -dependencies = [ - "bitflags 2.3.1", - "itertools 0.10.5", - "malachite-bigint", - "num-traits", - "rustpython-literal", -] - -[[package]] -name = "rustpython-jit" -version = "0.3.0" -dependencies = [ - "approx", - "cranelift", - "cranelift-jit", - "cranelift-module", - "libffi", - "num-traits", - "rustpython-compiler-core", - "rustpython-derive", - "thiserror", -] - -[[package]] -name = "rustpython-literal" -version = "0.3.0" -source = "git+https://github.com/RustPython/Parser.git?tag=0.3.0#a1e4336f7043807eda8a5ecb15d4115172cc4a7e" -dependencies = [ - "hexf-parse", - "is-macro", - "lexical-parse-float", - "num-traits", - "unic-ucd-category", -] - -[[package]] -name = "rustpython-parser" -version = "0.3.0" -source = "git+https://github.com/RustPython/Parser.git?tag=0.3.0#a1e4336f7043807eda8a5ecb15d4115172cc4a7e" -dependencies = [ - "anyhow", - "is-macro", - "itertools 0.10.5", - "lalrpop-util", - "log", - "malachite-bigint", - "num-traits", - "phf", - "phf_codegen", - "rustc-hash", - "rustpython-ast", - "rustpython-parser-core", - "tiny-keccak", - "unic-emoji-char", - "unic-ucd-ident", - "unicode_names2", -] - -[[package]] -name = "rustpython-parser-core" -version = "0.3.0" -source = "git+https://github.com/RustPython/Parser.git?tag=0.3.0#a1e4336f7043807eda8a5ecb15d4115172cc4a7e" -dependencies = [ - "is-macro", - "memchr", - "rustpython-parser-vendored", -] - -[[package]] -name = "rustpython-parser-vendored" -version = "0.3.0" -source = "git+https://github.com/RustPython/Parser.git?tag=0.3.0#a1e4336f7043807eda8a5ecb15d4115172cc4a7e" -dependencies = [ - "memchr", - "once_cell", -] - -[[package]] -name = "rustpython-pylib" -version = "0.3.0" -dependencies = [ - "glob", - "rustpython-compiler-core", - "rustpython-derive", -] - -[[package]] -name = "rustpython-stdlib" -version = "0.3.0" -dependencies = [ - "adler32", - "ahash", - "ascii", - "base64", - "blake2", - "bzip2", - "cfg-if", - "crc32fast", - "crossbeam-utils", - "csv-core", - "digest 0.10.6", - "dns-lookup", - "dyn-clone", - "flate2", - "foreign-types-shared", - "gethostname", - "hex", - "itertools 0.10.5", - "libc", - "libsqlite3-sys", - "libz-sys", - "mac_address", - "malachite-bigint", - "md-5", - "memchr", - "memmap2", - "mt19937", - "nix 0.26.2", - "num-complex", - "num-integer", - "num-traits", - "num_enum", - "once_cell", - "openssl", - "openssl-probe", - "openssl-sys", - "page_size", - "parking_lot", - "paste", - "puruspe", - "rand 0.8.5", - "rand_core 0.6.4", - "rustpython-common", - "rustpython-derive", - "rustpython-vm", - "schannel", - "sha-1", - "sha2", - "sha3 0.10.6", - "socket2", - "system-configuration", - "termios", - "ucd", - "unic-char-property", - "unic-normal", - "unic-ucd-age", - "unic-ucd-bidi", - "unic-ucd-category", - "unic-ucd-ident", - "unicode-casing", - "unicode_names2", - "uuid", - "widestring", - "winapi", - "xml-rs", -] - -[[package]] -name = "rustpython-vm" -version = "0.3.0" -dependencies = [ - "ahash", - "ascii", - "atty", - "bitflags 2.3.1", - "bstr", - "caseless", - "cfg-if", - "chrono", - "crossbeam-utils", - "exitcode", - "flame", - "flamer", - "getrandom 0.2.8", - "glob", - "half", - "hex", - "indexmap", - "is-macro", - "itertools 0.10.5", - "libc", - "log", - "malachite-bigint", - "memchr", - "memoffset 0.6.5", - "nix 0.26.2", - "num-complex", - "num-integer", - "num-traits", - "num_cpus", - "num_enum", - "once_cell", - "optional", - "parking_lot", - "paste", - "rand 0.8.5", - "result-like", - "rustc_version", - "rustpython-ast", - "rustpython-codegen", - "rustpython-common", - "rustpython-compiler", - "rustpython-compiler-core", - "rustpython-derive", - "rustpython-format", - "rustpython-jit", - "rustpython-literal", - "rustpython-parser", - "rustpython-parser-core", - "rustyline", - "schannel", - "serde", - "sre-engine", - "static_assertions", - "strum", - "strum_macros", - "thiserror", - "thread_local", - "timsort", - "uname", - "unic-ucd-bidi", - "unic-ucd-category", - "unic-ucd-ident", - "unicode-casing", - "unicode_names2", - "wasm-bindgen", - "which", - "widestring", - "winapi", - "windows", - "winreg", -] - -[[package]] -name = "rustpython_wasm" -version = "0.3.0" -dependencies = [ - "console_error_panic_hook", - "js-sys", - "rustpython-common", - "rustpython-parser", - "rustpython-pylib", - "rustpython-stdlib", - "rustpython-vm", - "serde", - "serde-wasm-bindgen", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "rustversion" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" - -[[package]] -name = "rustyline" -version = "11.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfc8644681285d1fb67a467fb3021bfea306b99b4146b166a1fe3ada965eece" -dependencies = [ - "bitflags 1.3.2", - "cfg-if", - "clipboard-win", - "dirs-next", - "fd-lock", - "libc", - "log", - "memchr", - "nix 0.26.2", - "radix_trie", - "scopeguard", - "unicode-segmentation", - "unicode-width", - "utf8parse", - "winapi", -] - -[[package]] -name = "ryu" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "schannel" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" -dependencies = [ - "windows-sys 0.42.0", -] - -[[package]] -name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "scratch" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2" - -[[package]] -name = "semver" -version = "1.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" - -[[package]] -name = "serde" -version = "1.0.152" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde-wasm-bindgen" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "618365e8e586c22123d692b72a7d791d5ee697817b65a218cdf12a98870af0f7" -dependencies = [ - "fnv", - "js-sys", - "serde", - "wasm-bindgen", -] - -[[package]] -name = "serde_cbor" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5" -dependencies = [ - "half", - "serde", -] - -[[package]] -name = "serde_derive" -version = "1.0.152" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "sha-1" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.6", -] - -[[package]] -name = "sha2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.6", -] - -[[package]] -name = "sha3" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" -dependencies = [ - "block-buffer 0.9.0", - "digest 0.9.0", - "keccak", - "opaque-debug", -] - -[[package]] -name = "sha3" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9" -dependencies = [ - "digest 0.10.6", - "keccak", -] - -[[package]] -name = "similar" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf" - -[[package]] -name = "siphasher" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" - -[[package]] -name = "slice-group-by" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec" - -[[package]] -name = "smallvec" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" - -[[package]] -name = "socket2" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "sre-engine" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a490c5c46c35dba9a6f5e7ee8e4d67e775eb2d2da0f115750b8d10e1c1ac2d28" -dependencies = [ - "bitflags 1.3.2", - "num_enum", - "optional", -] - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "str-buf" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" - -[[package]] -name = "strsim" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" - -[[package]] -name = "strum" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" - -[[package]] -name = "strum_macros" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn", -] - -[[package]] -name = "subtle" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" - -[[package]] -name = "syn" -version = "1.0.107" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn-ext" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b86cb2b68c5b3c078cac02588bc23f3c04bb828c5d3aedd17980876ec6a7be6" -dependencies = [ - "syn", -] - -[[package]] -name = "system-configuration" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75182f12f490e953596550b65ee31bda7c8e043d9386174b353bda50838c3fd" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "target-lexicon" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae9980cab1db3fceee2f6c6f643d5d8de2997c58ee8d25fb0cc8a9e9e7348e5" - -[[package]] -name = "termcolor" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "termios" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "411c5bf740737c7918b8b1fe232dca4dc9f8e754b8ad5e20966814001ed0ac6b" -dependencies = [ - "libc", -] - -[[package]] -name = "textwrap" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -dependencies = [ - "unicode-width", -] - -[[package]] -name = "textwrap" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7b3e525a49ec206798b40326a44121291b530c963cfb01018f63e135bac543d" - -[[package]] -name = "thiserror" -version = "1.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "thread-id" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1" -dependencies = [ - "libc", - "redox_syscall 0.1.57", - "winapi", -] - -[[package]] -name = "thread_local" -version = "1.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" -dependencies = [ - "cfg-if", - "once_cell", -] - -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", -] - -[[package]] -name = "timsort" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cb4fa83bb73adf1c7219f4fe4bf3c0ac5635e4e51e070fad5df745a41bedfb8" - -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - -[[package]] -name = "tinytemplate" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" -dependencies = [ - "serde", - "serde_json", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "toml_datetime" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4553f467ac8e3d374bc9a177a26801e5d0f9b211aa1673fb137a403afd1c9cf5" - -[[package]] -name = "toml_edit" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c59d8dd7d0dcbc6428bf7aa2f0e823e26e43b3c9aca15bbc9475d23e5fa12b" -dependencies = [ - "indexmap", - "nom8", - "toml_datetime", -] - -[[package]] -name = "twox-hash" -version = "1.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" -dependencies = [ - "cfg-if", - "static_assertions", -] - -[[package]] -name = "typenum" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" - -[[package]] -name = "ucd" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4fa6e588762366f1eb4991ce59ad1b93651d0b769dfb4e4d1c5c4b943d1159" - -[[package]] -name = "uname" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b72f89f0ca32e4db1c04e2a72f5345d59796d4866a1ee0609084569f73683dc8" -dependencies = [ - "libc", -] - -[[package]] -name = "unic-char-property" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" -dependencies = [ - "unic-char-range", -] - -[[package]] -name = "unic-char-range" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" - -[[package]] -name = "unic-common" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" - -[[package]] -name = "unic-emoji-char" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b07221e68897210270a38bde4babb655869637af0f69407f96053a34f76494d" -dependencies = [ - "unic-char-property", - "unic-char-range", - "unic-ucd-version", -] - -[[package]] -name = "unic-normal" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f09d64d33589a94628bc2aeb037f35c2e25f3f049c7348b5aa5580b48e6bba62" -dependencies = [ - "unic-ucd-normal", -] - -[[package]] -name = "unic-ucd-age" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8cfdfe71af46b871dc6af2c24fcd360e2f3392ee4c5111877f2947f311671c" -dependencies = [ - "unic-char-property", - "unic-char-range", - "unic-ucd-version", -] - -[[package]] -name = "unic-ucd-bidi" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1d568b51222484e1f8209ce48caa6b430bf352962b877d592c29ab31fb53d8c" -dependencies = [ - "unic-char-property", - "unic-char-range", - "unic-ucd-version", -] - -[[package]] -name = "unic-ucd-category" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8d4591f5fcfe1bd4453baaf803c40e1b1e69ff8455c47620440b46efef91c0" -dependencies = [ - "matches", - "unic-char-property", - "unic-char-range", - "unic-ucd-version", -] - -[[package]] -name = "unic-ucd-hangul" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1dc690e19010e1523edb9713224cba5ef55b54894fe33424439ec9a40c0054" -dependencies = [ - "unic-ucd-version", -] - -[[package]] -name = "unic-ucd-ident" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" -dependencies = [ - "unic-char-property", - "unic-char-range", - "unic-ucd-version", -] - -[[package]] -name = "unic-ucd-normal" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86aed873b8202d22b13859dda5fe7c001d271412c31d411fd9b827e030569410" -dependencies = [ - "unic-char-property", - "unic-char-range", - "unic-ucd-hangul", - "unic-ucd-version", -] - -[[package]] -name = "unic-ucd-version" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" -dependencies = [ - "unic-common", -] - -[[package]] -name = "unicode-casing" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "623f59e6af2a98bdafeb93fa277ac8e1e40440973001ca15cf4ae1541cd16d56" - -[[package]] -name = "unicode-ident" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" - -[[package]] -name = "unicode-normalization" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-segmentation" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" - -[[package]] -name = "unicode-width" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" - -[[package]] -name = "unicode_names2" -version = "0.6.0" -source = "git+https://github.com/youknowone/unicode_names2.git?rev=4ce16aa85cbcdd9cc830410f1a72ef9a235f2fde#4ce16aa85cbcdd9cc830410f1a72ef9a235f2fde" -dependencies = [ - "phf", -] - -[[package]] -name = "utf8parse" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936e4b492acfd135421d8dca4b1aa80a7bfc26e702ef3af710e0752684df5372" - -[[package]] -name = "uuid" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79" -dependencies = [ - "atomic", - "getrandom 0.2.8", - "rand 0.8.5", - "uuid-macro-internal", -] - -[[package]] -name = "uuid-macro-internal" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1b300a878652a387d2a0de915bdae8f1a548f0c6d45e072fe2688794b656cc9" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "vec_map" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "volatile" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8e76fae08f03f96e166d2dfda232190638c10e0383841252416f9cfe2ae60e6" - -[[package]] -name = "walkdir" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" -dependencies = [ - "same-file", - "winapi", - "winapi-util", -] - -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" - -[[package]] -name = "web-sys" -version = "0.3.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "which" -version = "4.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" -dependencies = [ - "either", - "libc", - "once_cell", -] - -[[package]] -name = "widestring" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a" -dependencies = [ - "windows_aarch64_msvc 0.39.0", - "windows_i686_gnu 0.39.0", - "windows_i686_msvc 0.39.0", - "windows_x86_64_gnu 0.39.0", - "windows_x86_64_msvc 0.39.0", -] - -[[package]] -name = "windows-sys" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" -dependencies = [ - "windows_aarch64_msvc 0.36.1", - "windows_i686_gnu 0.36.1", - "windows_i686_msvc 0.36.1", - "windows_x86_64_gnu 0.36.1", - "windows_x86_64_msvc 0.36.1", -] - -[[package]] -name = "windows-sys" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" -dependencies = [ - "windows_aarch64_gnullvm 0.42.1", - "windows_aarch64_msvc 0.42.1", - "windows_i686_gnu 0.42.1", - "windows_i686_msvc 0.42.1", - "windows_x86_64_gnu 0.42.1", - "windows_x86_64_gnullvm 0.42.1", - "windows_x86_64_msvc 0.42.1", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.1", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.0", -] - -[[package]] -name = "windows-targets" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" -dependencies = [ - "windows_aarch64_gnullvm 0.42.1", - "windows_aarch64_msvc 0.42.1", - "windows_i686_gnu 0.42.1", - "windows_i686_msvc 0.42.1", - "windows_x86_64_gnu 0.42.1", - "windows_x86_64_gnullvm 0.42.1", - "windows_x86_64_msvc 0.42.1", -] - -[[package]] -name = "windows-targets" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" -dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" - -[[package]] -name = "windows_i686_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" - -[[package]] -name = "windows_i686_gnu" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" - -[[package]] -name = "windows_i686_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" - -[[package]] -name = "windows_i686_msvc" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" - -[[package]] -name = "winreg" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" -dependencies = [ - "winapi", -] - -[[package]] -name = "xml-rs" -version = "0.8.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52839dc911083a8ef63efa4d039d1f58b5e409f923e44c80828f206f66e5541c" - -[[package]] -name = "yaml-rust" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" -dependencies = [ - "linked-hash-map", -] diff --git a/pkgs/by-name/py/python/rustpython/default.nix b/pkgs/by-name/py/python/rustpython/default.nix deleted file mode 100644 index 3d10ab3..0000000 --- a/pkgs/by-name/py/python/rustpython/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ lib -, stdenv -, rustPlatform -, fetchFromGitHub -, SystemConfiguration -, python3 -}: - -rustPlatform.buildRustPackage rec { - pname = "rustpython"; - version = "0.3.0"; - - src = fetchFromGitHub { - owner = "RustPython"; - repo = "RustPython"; - rev = "refs/tags/${version}"; - hash = "sha256-8tDzgsmKLjsfMT5j5HqrQ93LsGHxmC2DJu5KbR3FNXc="; - }; - - cargoLock = { - lockFile = ./Cargo.lock; - outputHashes = { - "rustpython-ast-0.3.0" = "sha256-5IR/G6Y9OE0+gTvU1iTob0TxfiV3O9elA/0BUy2GA8g="; - "rustpython-doc-0.3.0" = "sha256-34ERuLFKzUD9Xmf1zlafe42GLWZfUlw17ejf/NN6yH4="; - "unicode_names2-0.6.0" = "sha256-eWg9+ISm/vztB0KIdjhq5il2ZnwGJQCleCYfznCI3Wg="; - }; - }; - - # freeze the stdlib into the rustpython binary - cargoBuildFlags = [ "--features=freeze-stdlib" ]; - - buildInputs = lib.optionals stdenv.isDarwin [ SystemConfiguration ]; - - nativeCheckInputs = [ python3 ]; - - meta = with lib; { - description = "Python 3 interpreter in written Rust"; - homepage = "https://rustpython.github.io"; - license = licenses.mit; - maintainers = with maintainers; [ prusnak ]; - # = note: Undefined symbols for architecture x86_64: - # "_utimensat", referenced from: - # rustpython_vm::function::builtin::IntoPyNativeFn::into_func::... in - # rustpython-10386d81555652a7.rustpython_vm-f0b5bedfcf056d0b.rustpython_vm.7926b68e665728ca-cgu.08.rcgu.o.rcgu.o - broken = stdenv.isDarwin && stdenv.isx86_64; - }; -} diff --git a/pkgs/by-name/py/python/setup-hook.nix b/pkgs/by-name/py/python/setup-hook.nix deleted file mode 100644 index 8cfb9dd..0000000 --- a/pkgs/by-name/py/python/setup-hook.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ runCommand }: - -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 -'' diff --git a/pkgs/by-name/py/python/setup-hook.sh b/pkgs/by-name/py/python/setup-hook.sh deleted file mode 100644 index 523df57..0000000 --- a/pkgs/by-name/py/python/setup-hook.sh +++ /dev/null @@ -1,26 +0,0 @@ -addPythonPath() { - addToSearchPathWithCustomDelimiter : PYTHONPATH $1/@sitePackages@ -} - -toPythonPath() { - local paths="$1" - local result= - for i in $paths; do - p="$i/@sitePackages@" - result="${result}${result:+:}$p" - done - echo $result -} - -if [ -z "${dontAddPythonPath:-}" ]; then - addEnvHooks "$hostOffset" addPythonPath -fi - -# Determinism: The interpreter is patched to write null timestamps when compiling python files. -# This way python doesn't try to update them when we freeze timestamps in nix store. -export DETERMINISTIC_BUILD=1; -# Determinism: We fix the hashes of str, bytes and datetime objects. -export PYTHONHASHSEED=0; -# Determinism. Whenever Python is included, it should not check user site-packages. -# This option is only relevant when the sandbox is disabled. -export PYTHONNOUSERSITE=1; diff --git a/pkgs/by-name/py/python/sitecustomize.py b/pkgs/by-name/py/python/sitecustomize.py deleted file mode 100644 index c6924a8..0000000 --- a/pkgs/by-name/py/python/sitecustomize.py +++ /dev/null @@ -1,39 +0,0 @@ -""" -This is a Nix-specific module for discovering modules built with Nix. - -The module recursively adds paths that are on `NIX_PYTHONPATH` to `sys.path`. In -order to process possible `.pth` files `site.addsitedir` is used. - -The paths listed in `PYTHONPATH` are added to `sys.path` afterwards, but they -will be added before the entries we add here and thus take precedence. - -Note the `NIX_PYTHONPATH` environment variable is unset in order to prevent leakage. - -Similarly, this module listens to the environment variable `NIX_PYTHONEXECUTABLE` -and sets `sys.executable` to its value. -""" -import site -import sys -import os -import functools - -paths = os.environ.pop('NIX_PYTHONPATH', None) -if paths: - functools.reduce(lambda k, p: site.addsitedir(p, k), paths.split(':'), site._init_pathinfo()) - -# Check whether we are in a venv or virtualenv. -# For Python 3 we check whether our `base_prefix` is different from our current `prefix`. -# For Python 2 we check whether the non-standard `real_prefix` is set. -# https://stackoverflow.com/questions/1871549/determine-if-python-is-running-inside-virtualenv -in_venv = (sys.version_info.major == 3 and sys.prefix != sys.base_prefix) or (sys.version_info.major == 2 and hasattr(sys, "real_prefix")) - -if not in_venv: - executable = os.environ.pop('NIX_PYTHONEXECUTABLE', None) - prefix = os.environ.pop('NIX_PYTHONPREFIX', None) - - if 'PYTHONEXECUTABLE' not in os.environ and executable is not None: - sys.executable = executable - if prefix is not None: - # Sysconfig does not like it when sys.prefix is set to None - sys.prefix = sys.exec_prefix = prefix - site.PREFIXES.insert(0, prefix) diff --git a/pkgs/by-name/py/python/tests.nix b/pkgs/by-name/py/python/tests.nix deleted file mode 100644 index 2cd29ca..0000000 --- a/pkgs/by-name/py/python/tests.nix +++ /dev/null @@ -1,195 +0,0 @@ -# Tests for the Python interpreters, package sets and environments. -# -# Each Python interpreter has a `passthru.tests` which is the attribute set -# returned by this function. For example, for Python 3 the tests are run with -# -# $ nix-build -A python3.tests -# -{ 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; - }; - 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 - ''; - 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; - - # 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") { - # Before the addition of NIX_PYTHONPREFIX mypy was broken with typed packages - 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; - }; - } - ); - - # 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 - ]; - } - ) {}; - 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) 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 deleted file mode 100644 index 0254d84..0000000 --- a/pkgs/by-name/py/python/tests/test_cpython_gdb/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ interpreter, lib, gdb, writeText, runCommand }: - -let - crashme-py = writeText "crashme.py" '' - import ctypes - - def sentinel_foo_bar(): - ctypes.memset(0, 1, 1) - - sentinel_foo_bar() - ''; -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' \ - -ex r \ - -ex py-bt \ - --args ${interpreter}/bin/python ${crashme-py} | grep 'in sentinel_foo_bar' > /dev/null - - # success. - touch $out -'' diff --git a/pkgs/by-name/py/python/tests/test_environments/test_python.py b/pkgs/by-name/py/python/tests/test_environments/test_python.py deleted file mode 100644 index 0fc4b8a..0000000 --- a/pkgs/by-name/py/python/tests/test_environments/test_python.py +++ /dev/null @@ -1,55 +0,0 @@ -""" -Python interpreter and environment tests. - -These need to be executed with the standard library unittest. -Third party test runners such as pytest cannot be used because -that would interfere with the tests. -""" - -import platform -import sys -import unittest -import site - - -ENV = "@env@" -INTERPRETER = "@interpreter@" -PYTHON_VERSION = "@pythonVersion@" - -IS_VIRTUALENV = @is_virtualenv@ -IS_VENV = @is_venv@ -IS_NIXENV = @is_nixenv@ -IS_PYPY = platform.python_implementation() == "PyPy" - - -class TestCasePython(unittest.TestCase): - - @unittest.skipIf(IS_PYPY, "Executable is incorrect and needs to be fixed.") - def test_interpreter(self): - self.assertEqual(sys.executable, INTERPRETER) - - @unittest.skipIf(IS_PYPY, "Prefix is incorrect and needs to be fixed.") - def test_prefix(self): - self.assertEqual(sys.prefix, ENV) - self.assertEqual(sys.prefix, sys.exec_prefix) - - def test_site_prefix(self): - self.assertTrue(sys.prefix in site.PREFIXES) - - @unittest.skipIf(IS_PYPY or sys.version_info.major==2, "Python 2 does not have base_prefix") - def test_base_prefix(self): - if IS_VENV or IS_NIXENV or IS_VIRTUALENV: - self.assertNotEqual(sys.prefix, sys.base_prefix) - else: - self.assertEqual(sys.prefix, sys.base_prefix) - - @unittest.skipIf(sys.version_info.major==3, "sys.real_prefix is only set by virtualenv in case of Python 2.") - def test_real_prefix(self): - self.assertTrue(hasattr(sys, "real_prefix") == IS_VIRTUALENV) - - def test_python_version(self): - self.assertTrue(platform.python_version().startswith(PYTHON_VERSION)) - - -if __name__ == "__main__": - unittest.main() 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 deleted file mode 100644 index 2030fab..0000000 --- a/pkgs/by-name/py/python/tests/test_nix_pythonprefix/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ interpreter, writeText, runCommand }: - -let - - python = let - packageOverrides = self: super: { - typeddep = self.callPackage ./typeddep {}; - }; - in interpreter.override {inherit packageOverrides; self = python;}; - - pythonEnv = python.withPackages(ps: [ - ps.typeddep - ps.mypy - ]); - - pythonScript = writeText "myscript.py" '' - from typeddep import util - s: str = util.echo("hello") - print(s) - ''; - -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 deleted file mode 100644 index 8d330fc..0000000 --- a/pkgs/by-name/py/python/tests/test_nix_pythonprefix/typeddep/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ buildPythonPackage, pythonOlder }: - - -buildPythonPackage { - - pname = "typeddep"; - version = "1.3.3.7"; - - src = ./.; - - disabled = pythonOlder "3.7"; - -} diff --git a/pkgs/by-name/py/python/tests/test_nix_pythonprefix/typeddep/setup.py b/pkgs/by-name/py/python/tests/test_nix_pythonprefix/typeddep/setup.py deleted file mode 100644 index 25bac69..0000000 --- a/pkgs/by-name/py/python/tests/test_nix_pythonprefix/typeddep/setup.py +++ /dev/null @@ -1,18 +0,0 @@ -from setuptools import setup - -setup(**{ - 'name': 'typeddep', - 'version': '1.3.3.7', - 'description': 'Minimal repro to test mypy and site prefixes with Nix', - 'long_description': None, - 'author': 'adisbladis', - 'author_email': 'adisbladis@gmail.com', - 'maintainer': None, - 'maintainer_email': None, - 'url': None, - 'packages': ['typeddep'], - 'package_data': {'': ['*']}, - 'install_requires': [], - 'entry_points': {}, - 'python_requires': '>=3.7,<4.0', -}) diff --git a/pkgs/by-name/py/python/tests/test_nix_pythonprefix/typeddep/typeddep/__init__.py b/pkgs/by-name/py/python/tests/test_nix_pythonprefix/typeddep/typeddep/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/pkgs/by-name/py/python/tests/test_nix_pythonprefix/typeddep/typeddep/py.typed b/pkgs/by-name/py/python/tests/test_nix_pythonprefix/typeddep/typeddep/py.typed deleted file mode 100644 index e69de29..0000000 diff --git a/pkgs/by-name/py/python/tests/test_nix_pythonprefix/typeddep/typeddep/util.py b/pkgs/by-name/py/python/tests/test_nix_pythonprefix/typeddep/typeddep/util.py deleted file mode 100644 index c1c3ffe..0000000 --- a/pkgs/by-name/py/python/tests/test_nix_pythonprefix/typeddep/typeddep/util.py +++ /dev/null @@ -1,2 +0,0 @@ -def echo(s: str) -> str: - return s diff --git a/pkgs/by-name/py/python/tests/test_tkinter/default.nix b/pkgs/by-name/py/python/tests/test_tkinter/default.nix deleted file mode 100644 index 67e67d2..0000000 --- a/pkgs/by-name/py/python/tests/test_tkinter/default.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ interpreter, writeText, runCommand }: - -let - - pythonEnv = interpreter.withPackages(ps: [ - ps.tkinter - ]); - - pythonScript = writeText "myscript.py" '' - import tkinter - print(tkinter) - ''; - -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 deleted file mode 100644 index f7dfdf0..0000000 --- a/pkgs/by-name/py/python/update-python-libraries/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ 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"' -'' diff --git a/pkgs/by-name/py/python/update-python-libraries/update-python-libraries.py b/pkgs/by-name/py/python/update-python-libraries/update-python-libraries.py deleted file mode 100755 index 3430c58..0000000 --- a/pkgs/by-name/py/python/update-python-libraries/update-python-libraries.py +++ /dev/null @@ -1,600 +0,0 @@ -#!/usr/bin/env python3 - -""" -Update a Python package expression by passing in the `.nix` file, or the directory containing it. -You can pass in multiple files or paths. - -You'll likely want to use -`` - $ ./update-python-libraries ../../pkgs/development/python-modules/**/default.nix -`` -to update all non-pinned libraries in that folder. -""" - -import argparse -import collections -import json -import logging -import os -import re -import subprocess -from concurrent.futures import ThreadPoolExecutor as Pool -from typing import Any, Optional - -import requests -from packaging.specifiers import SpecifierSet -from packaging.version import InvalidVersion -from packaging.version import Version as _Version - -INDEX = "https://pypi.io/pypi" -"""url of PyPI""" - -EXTENSIONS = ["tar.gz", "tar.bz2", "tar", "zip", ".whl"] -"""Permitted file extensions. These are evaluated from left to right and the first occurance is returned.""" - -PRERELEASES = False - -BULK_UPDATE = False - -GIT = "git" - -NIXPKGS_ROOT = ( - subprocess.check_output(["git", "rev-parse", "--show-toplevel"]) - .decode("utf-8") - .strip() -) - -logging.basicConfig(level=logging.INFO) - - -class Version(_Version, collections.abc.Sequence): - def __init__(self, version): - super().__init__(version) - # We cannot use `str(Version(0.04.21))` because that becomes `0.4.21` - # https://github.com/avian2/unidecode/issues/13#issuecomment-354538882 - self.raw_version = version - - def __getitem__(self, i): - return self._version.release[i] - - def __len__(self): - return len(self._version.release) - - def __iter__(self): - yield from self._version.release - - -def _get_values(attribute, text): - """Match attribute in text and return all matches. - - :returns: List of matches. - """ - regex = rf'{re.escape(attribute)}\s+=\s+"(.*)";' - regex = re.compile(regex) - values = regex.findall(text) - return values - - -def _get_attr_value(attr_path: str) -> Optional[Any]: - try: - response = subprocess.check_output( - [ - "nix", - "--extra-experimental-features", - "nix-command", - "eval", - "-f", - f"{NIXPKGS_ROOT}/default.nix", - "--json", - f"{attr_path}", - ], - stderr=subprocess.DEVNULL, - ) - return json.loads(response.decode()) - except (subprocess.CalledProcessError, ValueError): - return None - - -def _get_unique_value(attribute, text): - """Match attribute in text and return unique match. - - :returns: Single match. - """ - values = _get_values(attribute, text) - n = len(values) - if n > 1: - raise ValueError("found too many values for {}".format(attribute)) - elif n == 1: - return values[0] - else: - raise ValueError("no value found for {}".format(attribute)) - - -def _get_line_and_value(attribute, text, value=None): - """Match attribute in text. Return the line and the value of the attribute.""" - if value is None: - regex = rf"({re.escape(attribute)}\s+=\s+\"(.*)\";)" - else: - regex = rf"({re.escape(attribute)}\s+=\s+\"({re.escape(value)})\";)" - regex = re.compile(regex) - results = regex.findall(text) - n = len(results) - if n > 1: - raise ValueError("found too many values for {}".format(attribute)) - elif n == 1: - return results[0] - else: - raise ValueError("no value found for {}".format(attribute)) - - -def _replace_value(attribute, value, text, oldvalue=None): - """Search and replace value of attribute in text.""" - if oldvalue is None: - old_line, old_value = _get_line_and_value(attribute, text) - else: - old_line, old_value = _get_line_and_value(attribute, text, oldvalue) - new_line = old_line.replace(old_value, value) - new_text = text.replace(old_line, new_line) - return new_text - - -def _fetch_page(url): - r = requests.get(url) - if r.status_code == requests.codes.ok: - return r.json() - else: - raise ValueError("request for {} failed".format(url)) - - -def _fetch_github(url): - headers = {} - token = os.environ.get("GITHUB_API_TOKEN") - if token: - headers["Authorization"] = f"token {token}" - r = requests.get(url, headers=headers) - - if r.status_code == requests.codes.ok: - return r.json() - else: - raise ValueError("request for {} failed".format(url)) - - -def _hash_to_sri(algorithm, value): - """Convert a hash to its SRI representation""" - return ( - subprocess.check_output(["nix", "hash", "to-sri", "--type", algorithm, value]) - .decode() - .strip() - ) - - -def _skip_bulk_update(attr_name: str) -> bool: - return bool(_get_attr_value(f"{attr_name}.skipBulkUpdate")) - - -SEMVER = { - "major": 0, - "minor": 1, - "patch": 2, -} - - -def _determine_latest_version(current_version, target, versions): - """Determine latest version, given `target`.""" - current_version = Version(current_version) - - def _parse_versions(versions): - for v in versions: - try: - yield Version(v) - except InvalidVersion: - pass - - versions = _parse_versions(versions) - - index = SEMVER[target] - - ceiling = list(current_version[0:index]) - if len(ceiling) == 0: - ceiling = None - else: - ceiling[-1] += 1 - ceiling = Version(".".join(map(str, ceiling))) - - # We do not want prereleases - versions = SpecifierSet(prereleases=PRERELEASES).filter(versions) - - if ceiling is not None: - versions = SpecifierSet(f"<{ceiling}").filter(versions) - - return (max(sorted(versions))).raw_version - - -def _get_latest_version_pypi(attr_path, package, extension, current_version, target): - """Get latest version and hash from PyPI.""" - url = "{}/{}/json".format(INDEX, package) - json = _fetch_page(url) - - versions = { - version - for version, releases in json["releases"].items() - if not all(release["yanked"] for release in releases) - } - version = _determine_latest_version(current_version, target, versions) - - try: - releases = json["releases"][version] - except KeyError as e: - raise KeyError( - "Could not find version {} for {}".format(version, package) - ) from e - for release in releases: - if release["filename"].endswith(extension): - # TODO: In case of wheel we need to do further checks! - sha256 = release["digests"]["sha256"] - break - else: - sha256 = None - return version, sha256, None - - -def _get_latest_version_github(attr_path, package, extension, current_version, target): - def strip_prefix(tag): - return re.sub("^[^0-9]*", "", tag) - - def get_prefix(string): - matches = re.findall(r"^([^0-9]*)", string) - return next(iter(matches), "") - - try: - homepage = subprocess.check_output( - [ - "nix", - "eval", - "-f", - f"{NIXPKGS_ROOT}/default.nix", - "--raw", - f"{attr_path}.src.meta.homepage", - ] - ).decode("utf-8") - except Exception as e: - raise ValueError(f"Unable to determine homepage: {e}") - owner_repo = homepage[len("https://github.com/") :] # remove prefix - owner, repo = owner_repo.split("/") - - url = f"https://api.github.com/repos/{owner}/{repo}/releases" - all_releases = _fetch_github(url) - releases = list(filter(lambda x: not x["prerelease"], all_releases)) - - if len(releases) == 0: - raise ValueError(f"{homepage} does not contain any stable releases") - - versions = map(lambda x: strip_prefix(x["tag_name"]), releases) - version = _determine_latest_version(current_version, target, versions) - - release = next(filter(lambda x: strip_prefix(x["tag_name"]) == version, releases)) - prefix = get_prefix(release["tag_name"]) - - # some attributes require using the fetchgit - git_fetcher_args = [] - if _get_attr_value(f"{attr_path}.src.fetchSubmodules"): - git_fetcher_args.append("--fetch-submodules") - if _get_attr_value(f"{attr_path}.src.fetchLFS"): - git_fetcher_args.append("--fetch-lfs") - if _get_attr_value(f"{attr_path}.src.leaveDotGit"): - git_fetcher_args.append("--leave-dotGit") - - if git_fetcher_args: - algorithm = "sha256" - cmd = [ - "nix-prefetch-git", - f"https://github.com/{owner}/{repo}.git", - "--hash", - algorithm, - "--rev", - f"refs/tags/{release['tag_name']}", - ] - cmd.extend(git_fetcher_args) - response = subprocess.check_output(cmd) - document = json.loads(response.decode()) - hash = _hash_to_sri(algorithm, document[algorithm]) - else: - try: - hash = ( - subprocess.check_output( - [ - "nix-prefetch-url", - "--type", - "sha256", - "--unpack", - f"{release['tarball_url']}", - ], - stderr=subprocess.DEVNULL, - ) - .decode("utf-8") - .strip() - ) - except (subprocess.CalledProcessError, UnicodeError): - # this may fail if they have both a branch and a tag of the same name, attempt tag name - tag_url = str(release["tarball_url"]).replace( - "tarball", "tarball/refs/tags" - ) - hash = ( - subprocess.check_output( - ["nix-prefetch-url", "--type", "sha256", "--unpack", tag_url], - stderr=subprocess.DEVNULL, - ) - .decode("utf-8") - .strip() - ) - - return version, hash, prefix - - -FETCHERS = { - "fetchFromGitHub": _get_latest_version_github, - "fetchPypi": _get_latest_version_pypi, - "fetchurl": _get_latest_version_pypi, -} - - -DEFAULT_SETUPTOOLS_EXTENSION = "tar.gz" - - -FORMATS = { - "setuptools": DEFAULT_SETUPTOOLS_EXTENSION, - "wheel": "whl", - "pyproject": "tar.gz", - "flit": "tar.gz", -} - - -def _determine_fetcher(text): - # Count occurrences of fetchers. - nfetchers = sum( - text.count("src = {}".format(fetcher)) for fetcher in FETCHERS.keys() - ) - if nfetchers == 0: - raise ValueError("no fetcher.") - elif nfetchers > 1: - raise ValueError("multiple fetchers.") - else: - # Then we check which fetcher to use. - for fetcher in FETCHERS.keys(): - if "src = {}".format(fetcher) in text: - return fetcher - - -def _determine_extension(text, fetcher): - """Determine what extension is used in the expression. - - If we use: - - fetchPypi, we check if format is specified. - - fetchurl, we determine the extension from the url. - - fetchFromGitHub we simply use `.tar.gz`. - """ - if fetcher == "fetchPypi": - try: - src_format = _get_unique_value("format", text) - except ValueError: - src_format = None # format was not given - - try: - extension = _get_unique_value("extension", text) - except ValueError: - extension = None # extension was not given - - if extension is None: - if src_format is None: - src_format = "setuptools" - elif src_format == "other": - raise ValueError("Don't know how to update a format='other' package.") - extension = FORMATS[src_format] - - elif fetcher == "fetchurl": - url = _get_unique_value("url", text) - extension = os.path.splitext(url)[1] - if "pypi" not in url: - raise ValueError("url does not point to PyPI.") - - elif fetcher == "fetchFromGitHub": - extension = "tar.gz" - - return extension - - -def _update_package(path, target): - # Read the expression - with open(path, "r") as f: - text = f.read() - - # Determine pname. Many files have more than one pname - pnames = _get_values("pname", text) - - # Determine version. - version = _get_unique_value("version", text) - - # First we check how many fetchers are mentioned. - fetcher = _determine_fetcher(text) - - extension = _determine_extension(text, fetcher) - - # Attempt a fetch using each pname, e.g. backports-zoneinfo vs backports.zoneinfo - successful_fetch = False - for pname in pnames: - # when invoked as an updateScript, UPDATE_NIX_ATTR_PATH will be set - # this allows us to work with packages which live outside of python-modules - attr_path = os.environ.get("UPDATE_NIX_ATTR_PATH", f"python3Packages.{pname}") - - if BULK_UPDATE and _skip_bulk_update(attr_path): - raise ValueError(f"Bulk update skipped for {pname}") - elif _get_attr_value(f"{attr_path}.cargoDeps") is not None: - raise ValueError(f"Cargo dependencies are unsupported, skipping {pname}") - try: - new_version, new_sha256, prefix = FETCHERS[fetcher]( - attr_path, pname, extension, version, target - ) - successful_fetch = True - break - except ValueError: - continue - - if not successful_fetch: - raise ValueError(f"Unable to find correct package using these pnames: {pnames}") - - if new_version == version: - logging.info("Path {}: no update available for {}.".format(path, pname)) - return False - elif Version(new_version) <= Version(version): - raise ValueError("downgrade for {}.".format(pname)) - if not new_sha256: - raise ValueError("no file available for {}.".format(pname)) - - text = _replace_value("version", new_version, text) - - # hashes from pypi are 16-bit encoded sha256's, normalize it to sri to avoid merge conflicts - # sri hashes have been the default format since nix 2.4+ - sri_hash = _hash_to_sri("sha256", new_sha256) - - # retrieve the old output hash for a more precise match - if old_hash := _get_attr_value(f"{attr_path}.src.outputHash"): - # fetchers can specify a sha256, or a sri hash - try: - text = _replace_value("hash", sri_hash, text, old_hash) - except ValueError: - text = _replace_value("sha256", sri_hash, text, old_hash) - else: - raise ValueError(f"Unable to retrieve old hash for {pname}") - - if fetcher == "fetchFromGitHub": - # in the case of fetchFromGitHub, it's common to see `rev = version;` or `rev = "v${version}";` - # in which no string value is meant to be substituted. However, we can just overwrite the previous value. - regex = r"(rev\s+=\s+[^;]*;)" - regex = re.compile(regex) - matches = regex.findall(text) - n = len(matches) - - if n == 0: - raise ValueError("Unable to find rev value for {}.".format(pname)) - else: - # forcefully rewrite rev, incase tagging conventions changed for a release - match = matches[0] - text = text.replace(match, f'rev = "refs/tags/{prefix}${{version}}";') - # incase there's no prefix, just rewrite without interpolation - text = text.replace('"${version}";', "version;") - - with open(path, "w") as f: - f.write(text) - - logging.info( - "Path {}: updated {} from {} to {}".format( - path, pname, version, new_version - ) - ) - - result = { - "path": path, - "target": target, - "pname": pname, - "old_version": version, - "new_version": new_version, - #'fetcher' : fetcher, - } - - return result - - -def _update(path, target): - # We need to read and modify a Nix expression. - if os.path.isdir(path): - path = os.path.join(path, "default.nix") - - # If a default.nix does not exist, we quit. - if not os.path.isfile(path): - logging.info("Path {}: does not exist.".format(path)) - return False - - # If file is not a Nix expression, we quit. - if not path.endswith(".nix"): - logging.info("Path {}: does not end with `.nix`.".format(path)) - return False - - try: - return _update_package(path, target) - except ValueError as e: - logging.warning("Path {}: {}".format(path, e)) - return False - - -def _commit(path, pname, old_version, new_version, pkgs_prefix="python: ", **kwargs): - """Commit result.""" - - msg = f"{pkgs_prefix}{pname}: {old_version} -> {new_version}" - - if changelog := _get_attr_value(f"{pkgs_prefix}{pname}.meta.changelog"): - msg += f"\n\n{changelog}" - - try: - subprocess.check_call([GIT, "add", path]) - subprocess.check_call([GIT, "commit", "-m", msg]) - except subprocess.CalledProcessError as e: - subprocess.check_call([GIT, "checkout", path]) - raise subprocess.CalledProcessError(f"Could not commit {path}") from e - - return True - - -def main(): - epilog = """ -environment variables: - GITHUB_API_TOKEN\tGitHub API token used when updating github packages - """ - parser = argparse.ArgumentParser( - formatter_class=argparse.RawDescriptionHelpFormatter, epilog=epilog - ) - parser.add_argument("package", type=str, nargs="+") - parser.add_argument("--target", type=str, choices=SEMVER.keys(), default="major") - parser.add_argument( - "--commit", action="store_true", help="Create a commit for each package update" - ) - parser.add_argument( - "--use-pkgs-prefix", - action="store_true", - help="Use python3Packages.${pname}: instead of python: ${pname}: when making commits", - ) - - args = parser.parse_args() - target = args.target - - packages = list(map(os.path.abspath, args.package)) - - if len(packages) > 1: - global BULK_UPDATE - BULK_UPDATE = True - - logging.info("Updating packages...") - - # Use threads to update packages concurrently - with Pool() as p: - results = list(filter(bool, p.map(lambda pkg: _update(pkg, target), packages))) - - logging.info("Finished updating packages.") - - commit_options = {} - if args.use_pkgs_prefix: - logging.info("Using python3Packages. prefix for commits") - commit_options["pkgs_prefix"] = "python3Packages." - - # Commits are created sequentially. - if args.commit: - logging.info("Committing updates...") - # list forces evaluation - list(map(lambda x: _commit(**x, **commit_options), results)) - logging.info("Finished committing updates") - - count = len(results) - logging.info("{} package(s) updated".format(count)) - - -if __name__ == "__main__": - main() diff --git a/pkgs/by-name/py/python/with-packages.nix b/pkgs/by-name/py/python/with-packages.nix deleted file mode 100644 index e1de0b2..0000000 --- a/pkgs/by-name/py/python/with-packages.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ buildEnv, pythonPackages }: - -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 deleted file mode 100644 index 8817d09..0000000 --- a/pkgs/by-name/py/python/wrap-python.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ 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: '' - - mkStringSkipper = labelNum: quote: let - label = "q${toString labelNum}"; - isSingle = lib.elem quote [ "\"" "'\"'\"'" ]; - endQuote = if isSingle then "[^\\\\]${quote}" else quote; - 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} - } - ''; -} ./wrap.sh diff --git a/pkgs/by-name/py/python/wrap.sh b/pkgs/by-name/py/python/wrap.sh deleted file mode 100644 index f10ba00..0000000 --- a/pkgs/by-name/py/python/wrap.sh +++ /dev/null @@ -1,139 +0,0 @@ -# Wrapper around wrapPythonProgramsIn, below. The $pythonPath -# variable is passed in from the buildPythonPackage function. -wrapPythonPrograms() { - wrapPythonProgramsIn "$out/bin" "$out $pythonPath" -} - -# Builds environment variables like PYTHONPATH and PATH walking through closure -# of dependencies. -buildPythonPath() { - local pythonPath="$1" - local path - - # Create an empty table of python paths (see doc on _addToPythonPath - # for how this is used). Build up the program_PATH and program_PYTHONPATH - # variables. - declare -A pythonPathsSeen=() - program_PYTHONPATH= - program_PATH= - pythonPathsSeen["@pythonHost@"]=1 - addToSearchPath program_PATH @pythonHost@/bin - for path in $pythonPath; do - _addToPythonPath $path - done -} - -# Patches a Python script so that it has correct libraries path and executable -# name. -patchPythonScript() { - local f="$1" - - # The magicalSedExpression will invoke a "$(basename "$f")", so - # if you change $f to something else, be sure to also change it - # in pkgs/top-level/python-packages.nix! - # It also uses $program_PYTHONPATH. - sed -i "$f" -re '@magicalSedExpression@' -} - -# Transforms any binaries generated by the setup.py script, replacing them -# with an executable shell script which will set some environment variables -# and then call into the original binary (which has been given a .wrapped -# suffix). -wrapPythonProgramsIn() { - local dir="$1" - local pythonPath="$2" - local f - - buildPythonPath "$pythonPath" - - # Find all regular files in the output directory that are executable. - if [ -d "$dir" ]; then - find "$dir" -type f -perm -0100 -print0 | while read -d "" f; do - # Rewrite "#! .../env python" to "#! /nix/store/.../python". - # Strip suffix, like "3" or "2.7m" -- we don't have any choice on which - # Python to use besides one with this hook anyway. - if head -n1 "$f" | grep -q '#!.*/env.*\(python\|pypy\)'; then - sed -i "$f" -e "1 s^.*/env[ ]*\(python\|pypy\)[^ ]*^#!@executable@^" - fi - - if head -n1 "$f" | grep -q '#!.*'; then - # Cross-compilation hack: ensure shebangs are for the host - echo "Rewriting $(head -n 1 $f) to #!@pythonHost@" - sed -i "$f" -e "1 s^#!@python@^#!@pythonHost@^" - fi - - # catch /python and /.python-wrapped - if head -n1 "$f" | grep -q '/\.\?\(python\|pypy\)'; then - # dont wrap EGG-INFO scripts since they are called from python - if echo "$f" | grep -qv EGG-INFO/scripts; then - echo "wrapping \`$f'..." - patchPythonScript "$f" - # wrapProgram creates the executable shell script described - # above. The script will set PYTHONPATH and PATH variables.! - # (see pkgs/build-support/setup-hooks/make-wrapper.sh) - local -a wrap_args=("$f" - --prefix PATH ':' "$program_PATH" - ) - - if [ -z "$permitUserSite" ]; then - wrap_args+=(--set PYTHONNOUSERSITE "true") - fi - - # Add any additional arguments provided by makeWrapperArgs - # argument to buildPythonPackage. - # We need to support both the case when makeWrapperArgs - # is an array and a IFS-separated string. - # TODO: remove the string branch when __structuredAttrs are used. - if [[ "${makeWrapperArgs+defined}" == "defined" && "$(declare -p makeWrapperArgs)" =~ ^'declare -a makeWrapperArgs=' ]]; then - local -a user_args=("${makeWrapperArgs[@]}") - else - local -a user_args="(${makeWrapperArgs:-})" - fi - - local -a wrapProgramArgs=("${wrap_args[@]}" "${user_args[@]}") - wrapProgram "${wrapProgramArgs[@]}" - fi - fi - done - fi -} - -# Adds the lib and bin directories to the PYTHONPATH and PATH variables, -# respectively. Recurses on any paths declared in -# `propagated-build-inputs`, while avoiding duplicating paths by -# flagging the directories it has visited in `pythonPathsSeen`. -_addToPythonPath() { - local dir="$1" - # Stop if we've already visited here. - if [ -n "${pythonPathsSeen[$dir]}" ]; then return; fi - pythonPathsSeen[$dir]=1 - # addToSearchPath is defined in stdenv/generic/setup.sh. It will have - # the effect of calling `export program_X=$dir/...:$program_X`. - addToSearchPath program_PYTHONPATH $dir/@sitePackages@ - addToSearchPath program_PATH $dir/bin - - # Inspect the propagated inputs (if they exist) and recur on them. - local prop="$dir/nix-support/propagated-build-inputs" - if [ -e $prop ]; then - local new_path - for new_path in $(cat $prop); do - _addToPythonPath $new_path - done - fi -} - -createBuildInputsPth() { - local category="$1" - local inputs="$2" - if [ foo"$inputs" != foo ]; then - for x in $inputs; do - if $(echo -n $x |grep -q python-recursive-pth-loader); then - continue - fi - if test -d "$x"/@sitePackages@; then - echo $x/@sitePackages@ \ - >> "$out"/@sitePackages@/${name}-nix-python-$category.pth - fi - done - fi -} diff --git a/pkgs/by-name/py/python/wrapper.nix b/pkgs/by-name/py/python/wrapper.nix deleted file mode 100644 index f5f9b03..0000000 --- a/pkgs/by-name/py/python/wrapper.nix +++ /dev/null @@ -1,71 +0,0 @@ -{ lib, stdenv, buildEnv, makeBinaryWrapper - -# manually pased -, python -, requiredPythonModules - -# 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"; - - inherit paths; - inherit ignoreCollisions; - extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall; - - nativeBuildInputs = [ makeBinaryWrapper ]; - - 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 - fi - done - fi - done - '' + postBuild; - - inherit (python) meta; - - 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 - ''; - }; - }; - }; -in env diff --git a/pkgs/by-name/qr/qrencode/default.nix b/pkgs/by-name/qr/qrencode/default.nix deleted file mode 100644 index 83c20fc..0000000 --- a/pkgs/by-name/qr/qrencode/default.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ lib, stdenv, fetchurl, pkg-config, SDL2, libpng, libiconv, libobjc }: - -stdenv.mkDerivation (finalAttrs: rec { - pname = "qrencode"; - version = "4.1.1"; - - outputs = [ "bin" "out" "man" "dev" ]; - - src = fetchurl { - url = "https://fukuchi.org/works/qrencode/qrencode-${version}.tar.gz"; - sha256 = "sha256-2kSO1PUqumvLDNSMrA3VG4aSvMxM0SdDFAL8pvgXHo4="; - }; - - nativeBuildInputs = [ pkg-config ]; - - buildInputs = [ libiconv libpng ] - ++ lib.optionals stdenv.isDarwin [ libobjc ]; - - nativeCheckInputs = [ SDL2 ]; - - doCheck = false; - - checkPhase = '' - runHook preCheck - - pushd tests - ./test_basic.sh - popd - - runHook postCheck - ''; - - passthru.tests = finalAttrs.finalPackage.overrideAttrs (_: { - configureFlags = [ "--with-tests" ]; - doCheck = true; - }); - - meta = with lib; { - homepage = "https://fukuchi.org/works/qrencode/"; - description = "C library for encoding data in a QR Code symbol"; - longDescription = '' - Libqrencode is a C library for encoding data in a QR Code symbol, - a kind of 2D symbology that can be scanned by handy terminals - such as a mobile phone with CCD. - ''; - license = licenses.lgpl21Plus; - 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 deleted file mode 100644 index d0483a6..0000000 --- a/pkgs/by-name/qr/qrencode/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index 49dfc94..0000000 --- a/pkgs/by-name/qu/quictls/default.nix +++ /dev/null @@ -1,186 +0,0 @@ -{ - buildPackages -, cryptodev -, enableSSL2 ? false -, enableSSL3 ? false -, fetchFromGitHub -, lib -, makeWrapper -, perl -, removeReferencesTo -, static ? stdenv.hostPlatform.isStatic -, stdenv -, withCryptodev ? false -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "quictls"; - version = "3.1.5-quic1"; - - src = fetchFromGitHub { - owner = "quictls"; - repo = "openssl"; - rev = "cb6841b741544bfd8868c1641ce96a934985509e"; - hash = "sha256-oR46jefarUGmBYjjpEvtKFzIOgSXSy58cLdX+P5ocA8="; - }; - - patches = [ - ../openssl/3.0/nix-ssl-cert-file.patch - - # openssl will only compile in KTLS if the current kernel supports it. - # 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) - ]; - - 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 - perl - removeReferencesTo - ]; - - buildInputs = lib.optionals withCryptodev [ - cryptodev - ]; - - outputs = [ "bin" "dev" "out" "man" "doc" ]; - - setOutputFlags = false; - - separateDebugInfo = - !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}" - ); - - # 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"; - - 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 - ${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" - - 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 - if grep -r '${buildPackages.perl}' $out; then - echo "Found an erroneous dependency on perl ^^^" >&2 - exit 1 - fi - ''; - - meta = { - changelog = "https://github.com/quictls/openssl/blob/${finalAttrs.src.rev}/CHANGES.md"; - description = "TLS/SSL and crypto library with QUIC APIs"; - homepage = "https://quictls.github.io"; - license = lib.licenses.openssl; - maintainers = with lib.maintainers; [ izorkin ]; - platforms = lib.platforms.all; - }; -}) diff --git a/pkgs/by-name/ra/rapidcheck/default.nix b/pkgs/by-name/ra/rapidcheck/default.nix deleted file mode 100644 index 68f2e5e..0000000 --- a/pkgs/by-name/ra/rapidcheck/default.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, unstableGitUpdater -, testers -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "rapidcheck"; - version = "unstable-2023-12-14"; - - src = fetchFromGitHub { - owner = "emil-e"; - repo = "rapidcheck"; - rev = "ff6af6fc683159deb51c543b065eba14dfcf329b"; - hash = "sha256-Ixz5RpY0n8Un/Pv4XoTfbs40+70iyMbkQUjDqoLaWOg="; - }; - - outputs = [ "out" "dev" ]; - - nativeBuildInputs = [ cmake ]; - - cmakeFlags = [ - (lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic)) - (lib.cmakeBool "RC_INSTALL_ALL_EXTRAS" true) - ]; - - passthru = { - updateScript = unstableGitUpdater { }; - tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - }; - - meta = with lib; { - description = "A C++ framework for property based testing inspired by QuickCheck"; - inherit (finalAttrs.src.meta) homepage; - maintainers = with maintainers; [ ]; - license = licenses.bsd2; - pkgConfigModules = [ - "rapidcheck" - # Extras - "rapidcheck_boost" - "rapidcheck_boost_test" - "rapidcheck_catch" - "rapidcheck_doctest" - "rapidcheck_gtest" - ]; - platforms = platforms.all; - }; -}) diff --git a/pkgs/by-name/re/re2/default.nix b/pkgs/by-name/re/re2/default.nix deleted file mode 100644 index bfed016..0000000 --- a/pkgs/by-name/re/re2/default.nix +++ /dev/null @@ -1,75 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, ninja -, abseil-cpp -# for passthru.tests -# , chromium -# , grpc -# , haskellPackages -# , mercurial -# , python3Packages -}: - -stdenv.mkDerivation rec { - pname = "re2"; - version = "2024-03-01"; - - src = fetchFromGitHub { - owner = "google"; - repo = "re2"; - rev = version; - hash = "sha256-VuI9OsfGTdVywdyVfBrSzXSjbSfevne+YQ2oOz4R3DM="; - }; - - outputs = [ "out" "dev" ]; - - nativeBuildInputs = [ cmake ninja ]; - - propagatedBuildInputs = [ abseil-cpp ]; - - postPatch = '' - substituteInPlace re2Config.cmake.in \ - --replace "\''${PACKAGE_PREFIX_DIR}/" "" - ''; - - # Needed for case-insensitive filesystems (i.e. MacOS) because a file named - # BUILD already exists. - cmakeBuildDir = "build_dir"; - - cmakeFlags = lib.optional (!stdenv.hostPlatform.isStatic) "-DBUILD_SHARED_LIBS:BOOL=ON"; - - # This installs a pkg-config definition. - postInstall = '' - pushd "$src" - make common-install prefix="$dev" SED_INPLACE="sed -i" - popd - ''; - - doCheck = true; - - # passthru.tests = { - # inherit - # chromium - # grpc - # mercurial; - # inherit (python3Packages) - # fb-re2 - # google-re2; - # haskell-re2 = haskellPackages.re2; - # }; - - meta = with lib; { - description = "A regular expression library"; - longDescription = '' - RE2 is a fast, safe, thread-friendly alternative to backtracking regular - expression engines like those used in PCRE, Perl, and Python. It is a C++ - library. - ''; - license = licenses.bsd3; - homepage = "https://github.com/google/re2"; - 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 deleted file mode 100644 index 759a734..0000000 --- a/pkgs/by-name/re/re2c/default.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, autoreconfHook -, nix-update-script -, python3 - -# for passthru.tests -# , ninja -# , php -# , spamassassin -}: - -stdenv.mkDerivation rec { - pname = "re2c"; - version = "3.1"; - - src = fetchFromGitHub { - owner = "skvadrik"; - repo = "re2c"; - rev = version; - sha256 = "sha256-7zZdLby7HdNoURgdkg+xnlp6VDCACcyGCTtjM43OLd4="; - }; - - nativeBuildInputs = [ - autoreconfHook - python3 - ]; - - doCheck = true; - enableParallelBuilding = true; - - preCheck = '' - patchShebangs run_tests.py - ''; - - # passthru = { - # updateScript = nix-update-script { }; - # tests = { - # inherit ninja php spamassassin; - # }; - # }; - - meta = with lib; { - description = "Tool for writing very fast and very flexible scanners"; - 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 deleted file mode 100644 index 3b643a9..0000000 --- a/pkgs/by-name/re/readline/7.0.nix +++ /dev/null @@ -1,63 +0,0 @@ -{ fetchurl, lib, stdenv, ncurses -}: - -stdenv.mkDerivation rec { - pname = "readline"; - version = "7.0p${toString (builtins.length upstreamPatches)}"; - - src = fetchurl { - url = "mirror://gnu/readline/readline-${meta.branch}.tar.gz"; - sha256 = "0d13sg9ksf982rrrmv5mb6a2p4ys9rvg9r71d6il0vr8hmql63bm"; - }; - - 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); - - patches = - [ ./link-against-ncurses.patch - ./no-arch_only-6.3.patch - ] - ++ upstreamPatches; - - meta = with lib; { - description = "Library for interactive line editing"; - - longDescription = '' - The GNU Readline library provides a set of functions for use by - applications that allow users to edit command lines as they are - typed in. Both Emacs and vi editing modes are available. The - Readline library includes additional functions to maintain a - list of previously-entered command lines, to recall and perhaps - reedit those lines, and perform csh-like history expansion on - previous commands. - - The history facilities are also placed into a separate library, - the History library, as part of the build process. The History - library may be used without Readline in applications which - desire its capabilities. - ''; - - homepage = "https://savannah.gnu.org/projects/readline/"; - - license = licenses.gpl3Plus; - - maintainers = [ ]; - - platforms = platforms.unix; - branch = "7.0"; - }; -} diff --git a/pkgs/by-name/re/readline/8.2.nix b/pkgs/by-name/re/readline/8.2.nix deleted file mode 100644 index 72e3370..0000000 --- a/pkgs/by-name/re/readline/8.2.nix +++ /dev/null @@ -1,96 +0,0 @@ -{ lib, stdenv -, fetchpatch, fetchurl -, ncurses, termcap -, curses-library ? - if stdenv.hostPlatform.isWindows - then termcap - else ncurses -}: - -stdenv.mkDerivation rec { - pname = "readline"; - version = "8.2p${toString (builtins.length upstreamPatches)}"; - - src = fetchurl { - url = "mirror://gnu/readline/readline-${meta.branch}.tar.gz"; - sha256 = "sha256-P+txcfFqhO6CyhijbXub4QmlLAT0kqBTMx19EJUAfDU="; - }; - - 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); - - 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"; - - longDescription = '' - The GNU Readline library provides a set of functions for use by - applications that allow users to edit command lines as they are - typed in. Both Emacs and vi editing modes are available. The - Readline library includes additional functions to maintain a - list of previously-entered command lines, to recall and perhaps - reedit those lines, and perform csh-like history expansion on - previous commands. - - The history facilities are also placed into a separate library, - the History library, as part of the build process. The History - library may be used without Readline in applications which - desire its capabilities. - ''; - - homepage = "https://savannah.gnu.org/projects/readline/"; - - license = licenses.gpl3Plus; - - maintainers = with maintainers; [ dtzWill ]; - - platforms = platforms.unix ++ platforms.windows; - branch = "8.2"; - }; -} diff --git a/pkgs/by-name/re/readline/link-against-ncurses.patch b/pkgs/by-name/re/readline/link-against-ncurses.patch deleted file mode 100644 index 0fd0598..0000000 --- a/pkgs/by-name/re/readline/link-against-ncurses.patch +++ /dev/null @@ -1,18 +0,0 @@ -This patch is to make sure that `libncurses' is among the `NEEDED' -dependencies of `libreadline.so' and `libhistory.so'. - -Failing to do that, applications linking against Readline are -forced to explicitly link against libncurses as well; in addition, -this trick doesn't work when using GNU ld's `--as-needed'. - ---- shlib/Makefile.in 2009-01-06 18:03:22.000000000 +0100 -+++ shlib/Makefile.in 2009-07-27 14:43:25.000000000 +0200 -@@ -84,7 +84,7 @@ SHOBJ_LDFLAGS = @SHOBJ_LDFLAGS@ - SHOBJ_XLDFLAGS = @SHOBJ_XLDFLAGS@ - SHOBJ_LIBS = @SHOBJ_LIBS@ - --SHLIB_XLDFLAGS = @LDFLAGS@ @SHLIB_XLDFLAGS@ -+SHLIB_XLDFLAGS = @LDFLAGS@ @SHLIB_XLDFLAGS@ -lncurses - SHLIB_LIBS = @SHLIB_LIBS@ - - SHLIB_DOT = @SHLIB_DOT@ diff --git a/pkgs/by-name/re/readline/no-arch_only-6.3.patch b/pkgs/by-name/re/readline/no-arch_only-6.3.patch deleted file mode 100644 index 7c46dba..0000000 --- a/pkgs/by-name/re/readline/no-arch_only-6.3.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -ru -x '*~' readline-6.3-orig/support/shobj-conf readline-6.3/support/shobj-conf ---- support/shobj-conf 2014-02-24 03:06:29.000000000 +0100 -+++ support/shobj-conf 2014-07-22 11:18:52.000000000 +0200 -@@ -194,9 +194,6 @@ - # Darwin 8 == Mac OS X 10.4; Mac OS X 10.N == Darwin N+4 - *) - case "${host_os}" in -- darwin[89]*|darwin1[012]*) -- SHOBJ_ARCHFLAGS='-arch_only `/usr/bin/arch`' -- ;; - *) # Mac OS X 10.9 (Mavericks) and later - SHOBJ_ARCHFLAGS= - # for 32 and 64bit universal library diff --git a/pkgs/by-name/re/readline/no-arch_only-8.2.patch b/pkgs/by-name/re/readline/no-arch_only-8.2.patch deleted file mode 100644 index 06f01ec..0000000 --- a/pkgs/by-name/re/readline/no-arch_only-8.2.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -ru -x '*~' readline-6.3-orig/support/shobj-conf readline-6.3/support/shobj-conf ---- support/shobj-conf 2014-02-24 03:06:29.000000000 +0100 -+++ support/shobj-conf 2014-07-22 11:18:52.000000000 +0200 -@@ -159,9 +159,6 @@ - # Darwin 8 == Mac OS X 10.4; Mac OS X 10.N == Darwin N+4 - *) - case "${host_os}" in -- darwin[89]*|darwin1[012]*) -- SHOBJ_ARCHFLAGS= -- ;; - *) # Mac OS X 10.9 (Mavericks) and later - SHOBJ_ARCHFLAGS= - # for 32 and 64bit universal library diff --git a/pkgs/by-name/re/readline/packages.nix b/pkgs/by-name/re/readline/packages.nix deleted file mode 100644 index df19280..0000000 --- a/pkgs/by-name/re/readline/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index c34ef2b..0000000 --- a/pkgs/by-name/re/readline/readline-7.0-patches.nix +++ /dev/null @@ -1,9 +0,0 @@ -# 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") -] diff --git a/pkgs/by-name/re/readline/readline-8.2-patches.nix b/pkgs/by-name/re/readline/readline-8.2-patches.nix deleted file mode 100644 index 77d5c49..0000000 --- a/pkgs/by-name/re/readline/readline-8.2-patches.nix +++ /dev/null @@ -1,14 +0,0 @@ -# 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") -] diff --git a/pkgs/by-name/re/readline/update-patch-set.sh b/pkgs/by-name/re/readline/update-patch-set.sh deleted file mode 120000 index d4f5cd2..0000000 --- a/pkgs/by-name/re/readline/update-patch-set.sh +++ /dev/null @@ -1 +0,0 @@ -../../../shells/bash/update-patch-set.sh \ No newline at end of file diff --git a/pkgs/by-name/rh/rhash/default.nix b/pkgs/by-name/rh/rhash/default.nix deleted file mode 100644 index e789eeb..0000000 --- a/pkgs/by-name/rh/rhash/default.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, which -, enableStatic ? stdenv.hostPlatform.isStatic -}: - -stdenv.mkDerivation rec { - version = "1.4.4"; - pname = "rhash"; - - src = fetchFromGitHub { - owner = "rhash"; - repo = "RHash"; - rev = "v${version}"; - sha256 = "sha256-3CW41ULdXoID4cOgrcG2j85tgIJ/sz5hU7A83qpuxf4="; - }; - - nativeBuildInputs = [ which ]; - - # configure script is not autotools-based, doesn't support these options - dontAddStaticConfigureFlags = true; - - configurePlatforms = [ ]; - - configureFlags = [ - "--ar=${stdenv.cc.targetPrefix}ar" - "--target=${stdenv.hostPlatform.config}" - (lib.enableFeature enableStatic "static") - (lib.enableFeature enableStatic "lib-static") - ]; - - doCheck = true; - - checkTarget = "test-full"; - - installTargets = [ - "install" - "install-lib-headers" - ] ++ lib.optionals (!enableStatic) [ - "install-lib-so-link" - ]; - - meta = with lib; { - homepage = "https://rhash.sourceforge.net/"; - description = "Console utility and library for computing and verifying hash sums of files"; - license = licenses.bsd0; - platforms = platforms.all; - maintainers = with maintainers; [ andrewrk ]; - }; -} diff --git a/pkgs/by-name/rs/rsync/configure.ac-fix-failing-IPv6-check.patch b/pkgs/by-name/rs/rsync/configure.ac-fix-failing-IPv6-check.patch deleted file mode 100644 index 3305653..0000000 --- a/pkgs/by-name/rs/rsync/configure.ac-fix-failing-IPv6-check.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -rup rsync-3.2.7/configure.sh rsync-3.2.7-fixed/configure.sh ---- rsync-3.2.7/configure.sh 2022-10-20 17:57:22 -+++ rsync-3.2.7-fixed/configure.sh 2024-01-01 19:51:58 -@@ -7706,7 +7706,7 @@ else $as_nop - #include - #include - #include --main() -+int main() - { - if (socket(AF_INET6, SOCK_STREAM, 0) < 0) - exit(1); diff --git a/pkgs/by-name/rs/rsync/default.nix b/pkgs/by-name/rs/rsync/default.nix deleted file mode 100644 index f2d59c9..0000000 --- a/pkgs/by-name/rs/rsync/default.nix +++ /dev/null @@ -1,76 +0,0 @@ -{ 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 -}: - -stdenv.mkDerivation rec { - pname = "rsync"; - version = "3.2.7"; - - src = fetchurl { - # signed with key 0048 C8B0 26D4 C96F 0E58 9C2F 6C85 9FB1 4B96 A8C5 - url = "mirror://samba/rsync/src/rsync-${version}.tar.gz"; - sha256 = "sha256-Tn2dP27RCHjFjF+3JKZ9rPS2qsc0CxPkiPstxBNG8rs="; - }; - - nativeBuildInputs = [ perl ]; - - patches = [ - # https://github.com/WayneD/rsync/issues/511#issuecomment-1774612577 - # original source: https://build.opensuse.org/package/view_file/network/rsync/rsync-fortified-strlcpy-fix.patch?expand=1&rev=3f8dd2f4a404c96c0f69176e60893714 - ./rsync-fortified-strlcpy-fix.patch - # https://github.com/WayneD/rsync/pull/558 - ./configure.ac-fix-failing-IPv6-check.patch - ]; - - 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" - - # 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; - - # passthru.tests = { inherit (nixosTests) rsyncd; }; - - meta = with lib; { - description = "Fast incremental file transfer utility"; - homepage = "https://rsync.samba.org/"; - license = licenses.gpl3Plus; - mainProgram = "rsync"; - 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 deleted file mode 100644 index 895efbe..0000000 --- a/pkgs/by-name/rs/rsync/packages.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index 09f9ab2..0000000 --- a/pkgs/by-name/rs/rsync/rrsync.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ stdenv, python3, rsync }: - -stdenv.mkDerivation { - pname = "rrsync"; - inherit (rsync) version src; - - buildInputs = [ - rsync - (python3.withPackages (pythonPackages: with pythonPackages; [ braceexpand ])) - ]; - # Skip configure and build phases. - # We just want something from the support directory - dontConfigure = true; - dontBuild = true; - - inherit (rsync) patches; - - postPatch = '' - substituteInPlace support/rrsync --replace /usr/bin/rsync ${rsync}/bin/rsync - ''; - - installPhase = '' - mkdir -p $out/bin - cp support/rrsync $out/bin - chmod a+x $out/bin/rrsync - ''; - - meta = rsync.meta // { - description = "A helper to run rsync-only environments from ssh-logins"; - }; -} diff --git a/pkgs/by-name/rs/rsync/rsync-fortified-strlcpy-fix.patch b/pkgs/by-name/rs/rsync/rsync-fortified-strlcpy-fix.patch deleted file mode 100644 index 296445b..0000000 --- a/pkgs/by-name/rs/rsync/rsync-fortified-strlcpy-fix.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 1f83963f59960150e8c46112daa8411324c1f209 Mon Sep 17 00:00:00 2001 -From: Jiri Slaby -Date: Fri, 18 Aug 2023 08:26:20 +0200 -Subject: [PATCH] exclude: fix crashes with fortified strlcpy() - -Fortified (-D_FORTIFY_SOURCE=2 for gcc) builds make strlcpy() crash when -its third parameter (size) is larger than the buffer: - $ rsync -FFXHav '--filter=merge global-rsync-filter' Align-37-43/ xxx - sending incremental file list - *** buffer overflow detected ***: terminated - -It's in the exclude code in setup_merge_file(): - strlcpy(y, save, MAXPATHLEN); - -Note the 'y' pointer was incremented, so it no longer points to memory -with MAXPATHLEN "owned" bytes. - -Fix it by remembering the number of copied bytes into the 'save' buffer -and use that instead of MAXPATHLEN which is clearly incorrect. - -Fixes #511. ---- - exclude.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/exclude.c b/exclude.c -index ffe55b167..1a5de3b9e 100644 ---- a/exclude.c -+++ b/exclude.c -@@ -720,7 +720,8 @@ static BOOL setup_merge_file(int mergelist_num, filter_rule *ex, - parent_dirscan = True; - while (*y) { - char save[MAXPATHLEN]; -- strlcpy(save, y, MAXPATHLEN); -+ /* copylen is strlen(y) which is < MAXPATHLEN. +1 for \0 */ -+ size_t copylen = strlcpy(save, y, MAXPATHLEN) + 1; - *y = '\0'; - dirbuf_len = y - dirbuf; - strlcpy(x, ex->pattern, MAXPATHLEN - (x - buf)); -@@ -734,7 +735,7 @@ static BOOL setup_merge_file(int mergelist_num, filter_rule *ex, - lp->head = NULL; - } - lp->tail = NULL; -- strlcpy(y, save, MAXPATHLEN); -+ strlcpy(y, save, copylen); - while ((*x++ = *y++) != '/') {} - } - parent_dirscan = False; - diff --git a/pkgs/by-name/rt/rtmpdump/default.nix b/pkgs/by-name/rt/rtmpdump/default.nix deleted file mode 100644 index b6293ff..0000000 --- a/pkgs/by-name/rt/rtmpdump/default.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ lib -, stdenv -, fetchgit -, fetchpatch -, zlib -, gnutlsSupport ? false -, gnutls -, nettle -, opensslSupport ? true -, openssl -}: - -assert (gnutlsSupport || opensslSupport); - -stdenv.mkDerivation { - pname = "rtmpdump"; - version = "unstable-2021-02-19"; - - src = fetchgit { - url = "git://git.ffmpeg.org/rtmpdump"; - # Currently the latest commit is used (a release has not been made since 2011, i.e. '2.4') - rev = "f1b83c10d8beb43fcc70a6e88cf4325499f25857"; - sha256 = "0vchr0f0d5fi0zaa16jywva5db3x9dyws7clqaq32gwh5drbkvs0"; - }; - - patches = [ - # Fix build with OpenSSL 1.1 - (fetchpatch { - url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-video/rtmpdump/files/rtmpdump-openssl-1.1.patch?id=1e7bef484f96e7647f5f0911d3c8caa48131c33b"; - sha256 = "1wds98pk8qr7shkfl8k49iirxiwd972h18w84bamiqln29wv6ql1"; - }) - ]; - - 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 ] - ++ lib.optional opensslSupport openssl; - - outputs = [ "out" "dev" ]; - - separateDebugInfo = true; - - meta = with lib; { - description = "Toolkit for RTMP streams"; - homepage = "https://rtmpdump.mplayerhq.hu/"; - license = licenses.gpl2; - platforms = platforms.unix; - maintainers = with maintainers; [ codyopel ]; - }; -} diff --git a/pkgs/by-name/rt/rtmpdump/packages.nix b/pkgs/by-name/rt/rtmpdump/packages.nix deleted file mode 100644 index 4a568bc..0000000 --- a/pkgs/by-name/rt/rtmpdump/packages.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - rtmpdump = callPackage ./. { }; - 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 deleted file mode 100644 index afd53df..0000000 --- a/pkgs/by-name/ru/rust-audit-info/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ lib, rustPlatform, fetchCrate }: - -rustPlatform.buildRustPackage rec { - pname = "rust-audit-info"; - version = "0.5.2"; - - src = fetchCrate { - inherit pname version; - sha256 = "sha256-g7ElNehBAVSRRlqsxkNm20C0KOMkf310bXNs3EN+/NQ="; - }; - - cargoSha256 = "sha256-bKrdgz6dyv/PF5JXMq7uvsh7SsK/qEd2W7tm6+YYlxg="; - - meta = with lib; { - 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 ]; - maintainers = with maintainers; [ figsoda ]; - }; -} diff --git a/pkgs/by-name/ru/rust/1_77.nix b/pkgs/by-name/ru/rust/1_77.nix deleted file mode 100644 index ec65c85..0000000 --- a/pkgs/by-name/ru/rust/1_77.nix +++ /dev/null @@ -1,60 +0,0 @@ -# New rust versions should first go to staging. -# Things to check after updating: -# 1. Rustc should produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin: -# i.e. nix-shell -p fd or @GrahamcOfBorg build fd on github -# This testing can be also done by other volunteers as part of the pull -# request review, in case platforms cannot be covered. -# 2. The LLVM version used for building should match with rust upstream. -# Check the version number in the src/llvm-project git submodule in: -# 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: - -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; }; - - # 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; - - # 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"; - }; - - selectRustPackage = pkgs: pkgs.rust_1_77; - - rustcPatches = [ ]; -} - -(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 deleted file mode 100644 index c546e27..0000000 --- a/pkgs/by-name/ru/rust/binary.nix +++ /dev/null @@ -1,100 +0,0 @@ -{ lib, stdenv, makeWrapper, wrapRustc, bash, curl, darwin, zlib -, autoPatchelfHook, gcc -, version -, src -, platform -, versionType -}: - -let - inherit (lib) optionalString; - inherit (darwin.apple_sdk.frameworks) Security; - - bootstrapping = versionType == "bootstrap"; - - installComponents - = "rustc,rust-std-${platform}" - + (optionalString bootstrapping ",cargo") - ; -in - -rec { - rustc-unwrapped = stdenv.mkDerivation { - pname = "rustc-${versionType}"; - - inherit version; - inherit src; - - meta = with lib; { - homepage = "https://www.rust-lang.org/"; - sourceProvenance = with sourceTypes; [ binaryNativeCode ]; - description = "A safe, concurrent, practical language"; - maintainers = with maintainers; [ qknight ]; - license = [ licenses.mit licenses.asl20 ]; - }; - - nativeBuildInputs = lib.optional (!stdenv.isDarwin) autoPatchelfHook; - buildInputs = [ bash ] - ++ lib.optionals (!stdenv.isDarwin) [ gcc.cc.lib zlib ] - ++ lib.optional stdenv.isDarwin Security; - - postPatch = '' - patchShebangs . - ''; - - installPhase = '' - ./install.sh --prefix=$out \ - --components=${installComponents} - - # Do NOT, I repeat, DO NOT use `wrapProgram` on $out/bin/rustc - # (or similar) here. It causes strange effects where rustc loads - # the wrong libraries in a bootstrap-build causing failures that - # are very hard to track down. For details, see - # https://github.com/rust-lang/rust/issues/34722#issuecomment-232164943 - ''; - - # The strip tool in cctools 973.0.1 and up appears to break rlibs in the - # binaries. The lib.rmeta object inside the ar archive should contain an - # .rmeta section, but it is removed. Luckily, this doesn't appear to be an - # issue for Rust builds produced by Nix. - dontStrip = true; - - setupHooks = ./setup-hook.sh; - }; - - rustc = wrapRustc rustc-unwrapped; - - cargo = stdenv.mkDerivation { - pname = "cargo-${versionType}"; - - inherit version; - inherit src; - - meta = with lib; { - homepage = "https://doc.rust-lang.org/cargo/"; - sourceProvenance = with sourceTypes; [ binaryNativeCode ]; - description = "The Rust package manager"; - maintainers = with maintainers; [ qknight ]; - 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; - - postPatch = '' - patchShebangs . - ''; - - installPhase = '' - patchShebangs ./install.sh - ./install.sh --prefix=$out \ - --components=cargo - - wrapProgram "$out/bin/cargo" \ - --suffix PATH : "${rustc}/bin" - ''; - }; -} diff --git a/pkgs/by-name/ru/rust/bootstrap.nix b/pkgs/by-name/ru/rust/bootstrap.nix deleted file mode 100644 index 97ac692..0000000 --- a/pkgs/by-name/ru/rust/bootstrap.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ 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}"); - }; - -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 deleted file mode 100644 index 6e982ae..0000000 --- a/pkgs/by-name/ru/rust/cargo-auditable-cargo-wrapper.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib, runCommand, makeBinaryWrapper, rust-audit-info, cargo, cargo-auditable }: - -if cargo-auditable.meta.broken then - cargo -else -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 - ''; - - 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 deleted file mode 100644 index 1cf765b..0000000 --- a/pkgs/by-name/ru/rust/cargo-auditable.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ lib, buildPackages, fetchFromGitHub, fetchpatch, makeRustPlatform, installShellFiles, stdenv }: - -let - args = rec { - pname = "cargo-auditable"; - version = "0.6.2"; - - src = fetchFromGitHub { - owner = "rust-secure-code"; - repo = pname; - rev = "v${version}"; - sha256 = "sha256-ERIzx9Fveanq7/aWcB2sviTxIahvSu0sTwgpGf/aYE8="; - }; - - patches = [ - (fetchpatch { - name = "rust-1.77-tests.patch"; - url = "https://github.com/rust-secure-code/cargo-auditable/commit/5317a27244fc428335c4e7a1d066ae0f65f0d496.patch"; - hash = "sha256-UblGseiSC/2eE4rcnTgYzxAMrutHFSdxKTHqKj1mX5o="; - }) - ]; - - cargoHash = "sha256-4o3ctun/8VcBRuj+j0Yaawdkyn6Z6LPp+FTyhPxQWU8="; - - # Cargo.lock is outdated - preConfigure = '' - cargo update --offline - ''; - - meta = with lib; { - description = "A tool to make production Rust binaries auditable"; - 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 ]; - maintainers = with maintainers; [ figsoda ]; - broken = stdenv.hostPlatform != stdenv.buildPlatform; - }; - }; - - rustPlatform = makeRustPlatform { - inherit (buildPackages) rustc; - cargo = buildPackages.cargo.override { - auditable = false; - }; - }; - - bootstrap = rustPlatform.buildRustPackage (args // { - auditable = false; - }); -in - -rustPlatform.buildRustPackage.override { cargo-auditable = bootstrap; } (args // { - nativeBuildInputs = [ - installShellFiles - ]; - - postInstall = '' - installManPage cargo-auditable/cargo-auditable.1 - ''; - - passthru = { - inherit bootstrap; - }; -}) diff --git a/pkgs/by-name/ru/rust/cargo.nix b/pkgs/by-name/ru/rust/cargo.nix deleted file mode 100644 index b0c40c5..0000000 --- a/pkgs/by-name/ru/rust/cargo.nix +++ /dev/null @@ -1,85 +0,0 @@ -{ 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; - - # the rust source tarball already has all the dependencies vendored, no need to fetch them again - cargoVendorDir = "vendor"; - buildAndTestSubdir = "src/tools/cargo"; - - inherit auditable; - - passthru = { - rustc = rustc; - inherit (rustc.unwrapped) tests; - }; - - # 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 ]; - - # 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; - - postInstall = '' - wrapProgram "$out/bin/cargo" --suffix PATH : "${rustc}/bin" - - installManPage src/tools/cargo/src/etc/man/* - - installShellCompletion --bash --name cargo \ - src/tools/cargo/src/etc/cargo.bashcomp.sh - - installShellCompletion --zsh src/tools/cargo/src/etc/_cargo - ''; - - 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; - - 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"; -}) diff --git a/pkgs/by-name/ru/rust/cargo_cross.nix b/pkgs/by-name/ru/rust/cargo_cross.nix deleted file mode 100644 index ba7651e..0000000 --- a/pkgs/by-name/ru/rust/cargo_cross.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ 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 ]; - - 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" - '' diff --git a/pkgs/by-name/ru/rust/clippy.nix b/pkgs/by-name/ru/rust/clippy.nix deleted file mode 100644 index d9506a4..0000000 --- a/pkgs/by-name/ru/rust/clippy.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ stdenv, lib, rustPlatform, rustc, Security, patchelf }: - -rustPlatform.buildRustPackage { - pname = "clippy"; - inherit (rustc) version src; - - separateDebugInfo = true; - - # the rust source tarball already has all the dependencies vendored, no need to fetch them again - cargoVendorDir = "vendor"; - buildAndTestSubdir = "src/tools/clippy"; - - # changes hash of vendor directory otherwise - dontUpdateAutotoolsGnuConfigScripts = true; - - buildInputs = [ rustc.llvm ] - ++ lib.optionals stdenv.isDarwin [ Security ]; - - # fixes: error: the option `Z` is only accepted on the nightly compiler - RUSTC_BOOTSTRAP = 1; - - # Without disabling the test the build fails with: - # error: failed to run custom build command for `rustc_llvm v0.0.0 - # (/private/tmp/nix-build-clippy-1.36.0.drv-0/rustc-1.36.0-src/src/librustc_llvm) - doCheck = false; - - # Clippy 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 - # to itself. - # - # [0]: https://github.com/rust-lang/rust/blob/f77f4d55bdf9d8955d3292f709bd9830c2fdeca5/src/bootstrap/builder.rs#L1543 - # [1]: https://github.com/rust-lang/rust/blob/f77f4d55bdf9d8955d3292f709bd9830c2fdeca5/compiler/rustc_codegen_ssa/src/back/linker.rs#L323-L331 - preFixup = lib.optionalString stdenv.isDarwin '' - install_name_tool -add_rpath "${rustc.unwrapped}/lib" "$out/bin/clippy-driver" - install_name_tool -add_rpath "${rustc.unwrapped}/lib" "$out/bin/cargo-clippy" - ''; - - meta = with lib; { - homepage = "https://rust-lang.github.io/rust-clippy/"; - 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 ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/by-name/ru/rust/default.nix b/pkgs/by-name/ru/rust/default.nix deleted file mode 100644 index 77f1cd9..0000000 --- a/pkgs/by-name/ru/rust/default.nix +++ /dev/null @@ -1,107 +0,0 @@ -{ 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 -}: - -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; - }; - # Allow faster cross compiler generation by reusing Build artifacts - 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; - - # This just contains tools for now. But it would conceivably contain - # libraries too, say if we picked some default/recommended versions to build - # by Hydra. - # - # In the end game, rustc, the rust standard library (`core`, `std`, etc.), - # and cargo would themselves be built with `buildRustCreate` like - # everything else. Tools and `build.rs` and procedural macro dependencies - # would be taken from `buildRustPackages` (and `bootstrapRustPackages` for - # anything provided prebuilt or their build-time dependencies to break - # cycles / purify builds). In this way, nixpkgs would be in control of all - # bootstrapping. - packages = { - prebuilt = callPackage ./bootstrap.nix { - 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; - - 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; - }; - }); - }; -} diff --git a/pkgs/by-name/ru/rust/make-rust-platform.nix b/pkgs/by-name/ru/rust/make-rust-platform.nix deleted file mode 100644 index 3e5dfbd..0000000 --- a/pkgs/by-name/ru/rust/make-rust-platform.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ lib, buildPackages, callPackage, callPackages, cargo-auditable, stdenv, runCommand, path }@prev: - -{ rustc -, cargo -, cargo-auditable ? prev.cargo-auditable -, stdenv ? prev.stdenv -, ... -}: - -rec { - rust = { - rustc = lib.warn "rustPlatform.rust.rustc is deprecated. Use rustc instead." rustc; - 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; - }; - - buildRustPackage = callPackage (path + "/pkgs/build-support/rust/build-rust-package") { - 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; }; - - rustcSrc = callPackage ./rust-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; -} diff --git a/pkgs/by-name/ru/rust/packages.nix b/pkgs/by-name/ru/rust/packages.nix deleted file mode 100644 index 1f27823..0000000 --- a/pkgs/by-name/ru/rust/packages.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - rust_1_77 = callPackage ./1_77.nix { - inherit (darwin.apple_sdk.frameworks) CoreFoundation Security SystemConfiguration; - llvm_17 = llvmPackages_17.libllvm; - }; - rust = rust_1_77; - - rustPackages_1_77 = rust_1_77.packages.stable; - rustPackages = rustPackages_1_77; - - 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/print-hashes.sh b/pkgs/by-name/ru/rust/print-hashes.sh deleted file mode 100755 index ebf8d90..0000000 --- a/pkgs/by-name/ru/rust/print-hashes.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -# All rust-related downloads can be found at -# https://static.rust-lang.org/dist/index.html. To find the date on -# which a particular thing was last updated, look for the *-date.txt -# file, e.g. -# https://static.rust-lang.org/dist/channel-rust-beta-date.txt - -PLATFORMS=( - i686-unknown-linux-gnu - x86_64-unknown-linux-gnu - x86_64-unknown-linux-musl - arm-unknown-linux-gnueabihf - armv7-unknown-linux-gnueabihf - aarch64-unknown-linux-gnu - aarch64-unknown-linux-musl - x86_64-apple-darwin - aarch64-apple-darwin - powerpc64le-unknown-linux-gnu - riscv64gc-unknown-linux-gnu -) -BASEURL=https://static.rust-lang.org/dist -VERSION=${1:-} -DATE=${2:-} - -if [[ -z $VERSION ]] -then - echo "No version supplied" - exit -1 -fi - -if [[ -n $DATE ]] -then - BASEURL=$BASEURL/$DATE -fi - -for PLATFORM in "${PLATFORMS[@]}" -do - URL="$BASEURL/rust-$VERSION-$PLATFORM.tar.gz.sha256" - SHA256=$(curl -sSfL $URL | cut -d ' ' -f 1) - echo "$PLATFORM = \"$SHA256\";" -done diff --git a/pkgs/by-name/ru/rust/rust-lib-src.nix b/pkgs/by-name/ru/rust/rust-lib-src.nix deleted file mode 100644 index aa91433..0000000 --- a/pkgs/by-name/ru/rust/rust-lib-src.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ runCommand, rustc }: - -runCommand "rust-lib-src" { } '' - tar --strip-components=1 -xzf ${rustc.src} - mv library $out -'' diff --git a/pkgs/by-name/ru/rust/rust-src.nix b/pkgs/by-name/ru/rust/rust-src.nix deleted file mode 100644 index 69bdb37..0000000 --- a/pkgs/by-name/ru/rust/rust-src.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ 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" - ])}} -'' diff --git a/pkgs/by-name/ru/rust/rustc.nix b/pkgs/by-name/ru/rust/rustc.nix deleted file mode 100644 index 6c84dde..0000000 --- a/pkgs/by-name/ru/rust/rustc.nix +++ /dev/null @@ -1,288 +0,0 @@ -{ 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 (darwin.apple_sdk.frameworks) Security; -in stdenv.mkDerivation (finalAttrs: { - pname = "${targetPackages.stdenv.cc.targetPrefix}rustc"; - inherit version; - - src = fetchurl { - url = "https://static.rust-lang.org/dist/rustc-${version}-src.tar.gz"; - inherit sha256; - # See https://nixos.org/manual/nixpkgs/stable/#using-git-bisect-on-the-rust-compiler - passthru.isReleaseTarball = true; - }; - - __darwinAllowLocalNetworking = true; - - # rustc complains about modified source files otherwise - dontUpdateAutotoolsGnuConfigScripts = true; - - # Running the default `strip -S` command on Darwin corrupts the - # .rlib files in "lib/". - # - # See https://github.com/NixOS/nixpkgs/pull/34227 - # - # Running `strip -S` when cross compiling can harm the cross rlibs. - # See: https://github.com/NixOS/nixpkgs/pull/56540#issuecomment-471624656 - stripDebugList = [ "bin" ]; - - # The Rust pkg-config crate does not support prefixed pkg-config executables[1], - # 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"; - - 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" - ++ optional (stdenv.isDarwin && !withBundledLLVM) "-lc++ -lc++abi" - ++ optional stdenv.isDarwin "-rpath ${llvmSharedForHost}/lib"); - - # Increase codegen units to introduce parallelism within the compiler. - RUSTFLAGS = "-Ccodegen-units=10"; - - RUSTDOCFLAGS = "-A rustdoc::broken-intra-doc-links"; - - # 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 - - # 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 - - # (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}.linker=${ccForBuild}" - "${setHost}.linker=${ccForHost}" - "${setTarget}.linker=${ccForTarget}" - - "${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" - ]; - - # if we already have a rust compiler for build just compile the target std - # library and reuse compiler - buildPhase = if fastCross then " - runHook preBuild - - mkdir -p build/${stdenv.hostPlatform.rust.rustcTargetSpec}/stage0-{std,rustc}/${stdenv.hostPlatform.rust.rustcTargetSpec}/release/ - ln -s ${rustc.unwrapped}/lib/rustlib/${stdenv.hostPlatform.rust.rustcTargetSpec}/libstd-*.so build/${stdenv.hostPlatform.rust.rustcTargetSpec}/stage0-std/${stdenv.hostPlatform.rust.rustcTargetSpec}/release/libstd.so - ln -s ${rustc.unwrapped}/lib/rustlib/${stdenv.hostPlatform.rust.rustcTargetSpec}/librustc_driver-*.so build/${stdenv.hostPlatform.rust.rustcTargetSpec}/stage0-rustc/${stdenv.hostPlatform.rust.rustcTargetSpec}/release/librustc.so - ln -s ${rustc.unwrapped}/bin/rustc build/${stdenv.hostPlatform.rust.rustcTargetSpec}/stage0-rustc/${stdenv.hostPlatform.rust.rustcTargetSpec}/release/rustc-main - touch build/${stdenv.hostPlatform.rust.rustcTargetSpec}/stage0-std/${stdenv.hostPlatform.rust.rustcTargetSpec}/release/.libstd.stamp - touch build/${stdenv.hostPlatform.rust.rustcTargetSpec}/stage0-rustc/${stdenv.hostPlatform.rust.rustcTargetSpec}/release/.librustc.stamp - python ./x.py --keep-stage=0 --stage=1 build library - - runHook postBuild - " else null; - - 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 - - runHook postInstall - '' else null; - - # the rust build system complains that nix alters the checksums - dontFixLibtool = true; - - inherit patches; - - postPatch = '' - patchShebangs src/etc - - ${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 - ''; - - # 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 ]; - - nativeBuildInputs = [ - file python3 rustc cmake - which libffi removeReferencesTo pkg-config xz - ] - ++ optionals fastCross [ lndir makeWrapper ]; - - buildInputs = [ openssl ] - ++ optionals stdenv.isDarwin [ libiconv Security ] - ++ optional (!withBundledLLVM) llvmShared; - - 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 - - '' + '' - # 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 - ''; - - configurePlatforms = []; - - enableParallelBuilding = true; - - setupHooks = ./setup-hook.sh; - - requiredSystemFeatures = [ "big-parallel" ]; - - passthru = { - llvm = llvmShared; - inherit llvmPackages; - # tests = { - # inherit fd ripgrep wezterm; - # } // lib.optionalAttrs stdenv.hostPlatform.isLinux { inherit firefox thunderbird; }; - }; - - meta = with lib; { - homepage = "https://www.rust-lang.org/"; - description = "A safe, concurrent, practical language"; - maintainers = with maintainers; [ havvy ] ++ teams.rust.members; - 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-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" - "x86_64-netbsd" - "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 deleted file mode 100644 index 9cc8df5..0000000 --- a/pkgs/by-name/ru/rust/rustfmt.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ lib, stdenv, rustPlatform, rustc, Security, asNightly ? false }: - -rustPlatform.buildRustPackage rec { - pname = "rustfmt" + lib.optionalString asNightly "-nightly"; - inherit (rustc) version src; - - # the rust source tarball already has all the dependencies vendored, no need to fetch them again - cargoVendorDir = "vendor"; - buildAndTestSubdir = "src/tools/rustfmt"; - - # changes hash of vendor directory otherwise - dontUpdateAutotoolsGnuConfigScripts = true; - - 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 - # to itself. - # - # [0]: https://github.com/rust-lang/rust/blob/f77f4d55bdf9d8955d3292f709bd9830c2fdeca5/src/bootstrap/builder.rs#L1543 - # [1]: https://github.com/rust-lang/rust/blob/f77f4d55bdf9d8955d3292f709bd9830c2fdeca5/compiler/rustc_codegen_ssa/src/back/linker.rs#L323-L331 - preFixup = lib.optionalString stdenv.isDarwin '' - install_name_tool -add_rpath "${rustc.unwrapped}/lib" "$out/bin/rustfmt" - install_name_tool -add_rpath "${rustc.unwrapped}/lib" "$out/bin/git-rustfmt" - ''; - - # As of 1.0.0 and rustc 1.30 rustfmt requires a nightly compiler - RUSTC_BOOTSTRAP = 1; - - # As of rustc 1.45.0, these env vars are required to build rustfmt (due to - # https://github.com/rust-lang/rust/pull/72001) - CFG_RELEASE = rustc.version; - CFG_RELEASE_CHANNEL = if asNightly then "nightly" else "stable"; - - 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 ]; - mainProgram = "rustfmt"; - maintainers = with maintainers; [ globin basvandijk ]; - }; -} diff --git a/pkgs/by-name/ru/rust/setup-hook.sh b/pkgs/by-name/ru/rust/setup-hook.sh deleted file mode 100644 index 5d4eb64..0000000 --- a/pkgs/by-name/ru/rust/setup-hook.sh +++ /dev/null @@ -1,4 +0,0 @@ -# Fix 'failed to open: /homeless-shelter/.cargo/.package-cache' in rust 1.36. -if [[ -z ${IN_NIX_SHELL-} && -z ${CARGO_HOME-} ]]; then - export CARGO_HOME=$TMPDIR -fi diff --git a/pkgs/by-name/ru/rustls-ffi/Cargo.lock b/pkgs/by-name/ru/rustls-ffi/Cargo.lock deleted file mode 100644 index 6cf2c53..0000000 --- a/pkgs/by-name/ru/rustls-ffi/Cargo.lock +++ /dev/null @@ -1,369 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "bumpalo" -version = "3.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" - -[[package]] -name = "cc" -version = "1.0.79" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "hashbrown" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" - -[[package]] -name = "indexmap" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "js-sys" -version = "0.3.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "libc" -version = "0.2.147" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" - -[[package]] -name = "log" -version = "0.4.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" - -[[package]] -name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - -[[package]] -name = "num_enum" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" -dependencies = [ - "num_enum_derive", -] - -[[package]] -name = "num_enum_derive" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "once_cell" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" - -[[package]] -name = "proc-macro-crate" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" -dependencies = [ - "once_cell", - "toml_edit", -] - -[[package]] -name = "proc-macro2" -version = "1.0.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78803b62cbf1f46fde80d7c0e803111524b9877184cfe7c3033659490ac7a7da" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin", - "untrusted", - "web-sys", - "winapi", -] - -[[package]] -name = "rustls" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07180898a28ed6a7f7ba2311594308f595e3dd2e3c3812fa0a80a47b45f17e5d" -dependencies = [ - "log", - "ring", - "rustls-webpki", - "rustversion", - "sct", -] - -[[package]] -name = "rustls-ffi" -version = "0.10.0" -dependencies = [ - "libc", - "log", - "num_enum", - "rustls", - "rustls-pemfile", - "sct", - "webpki", -] - -[[package]] -name = "rustls-pemfile" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9" -dependencies = [ - "base64", -] - -[[package]] -name = "rustls-webpki" -version = "0.100.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "rustversion" -version = "1.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc31bd9b61a32c31f9650d18add92aa83a49ba979c143eefd27fe7177b05bd5f" - -[[package]] -name = "sct" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e3fc8c0c74267e2df136e5e5fb656a464158aa57624053375eb9c8c6e25ae2" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "toml_datetime" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" - -[[package]] -name = "toml_edit" -version = "0.19.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c500344a19072298cd05a7224b3c0c629348b78692bf48466c5238656e315a78" -dependencies = [ - "indexmap", - "toml_datetime", - "winnow", -] - -[[package]] -name = "unicode-ident" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22049a19f4a68748a168c0fc439f9516686aa045927ff767eca0a85101fb6e73" - -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - -[[package]] -name = "wasm-bindgen" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.25", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.25", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" - -[[package]] -name = "web-sys" -version = "0.3.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "winnow" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81a2094c43cc94775293eaa0e499fbc30048a6d824ac82c0351a8c0bf9112529" -dependencies = [ - "memchr", -] diff --git a/pkgs/by-name/ru/rustls-ffi/default.nix b/pkgs/by-name/ru/rustls-ffi/default.nix deleted file mode 100644 index 9949620..0000000 --- a/pkgs/by-name/ru/rustls-ffi/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, rustPlatform -, Security -# for passthru.tests -, apacheHttpd -, curl -}: - -rustPlatform.buildRustPackage rec { - pname = "rustls-ffi"; - version = "0.10.0"; - - src = fetchFromGitHub { - owner = "rustls"; - repo = pname; - rev = "v${version}"; - hash = "sha256-IDIWN5g1aaE6SDdXSm4WYK6n+BpuypPYQITuDj1WJEc="; - }; - - propagatedBuildInputs = lib.optionals stdenv.isDarwin [ Security ]; - - cargoLock.lockFile = ./Cargo.lock; - postPatch = '' - cp ${./Cargo.lock} Cargo.lock - ''; - - installPhase = '' - runHook preInstall - - make install DESTDIR=${placeholder "out"} - - runHook postInstall - ''; - - # passthru.tests = { - # apacheHttpd = apacheHttpd.override { modTlsSupport = true; }; - # # Currently broken notably because of https://github.com/curl/curl/issues/13248 - # # curl = curl.override { opensslSupport = false; rustlsSupport = true; }; - # }; - - meta = with lib; { - description = "C-to-rustls bindings"; - homepage = "https://github.com/rustls/rustls-ffi/"; - 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 deleted file mode 100644 index c0ef5c5..0000000 --- a/pkgs/by-name/ru/rustls-ffi/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 deleted file mode 100644 index 8ef3df4..0000000 --- a/pkgs/by-name/s2/s2n-tls/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, openssl -, nix -}: - -stdenv.mkDerivation rec { - pname = "s2n-tls"; - version = "1.4.9"; - - src = fetchFromGitHub { - owner = "aws"; - repo = pname; - rev = "v${version}"; - hash = "sha256-YH35+kCvPjeBYMMJi7YdAGk/ds3YPm5SSKpoWfbCI3M="; - }; - - nativeBuildInputs = [ cmake ]; - - 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" - ]; - - propagatedBuildInputs = [ openssl ]; # s2n-config has find_dependency(LibCrypto). - - postInstall = '' - # Glob for 'shared' or 'static' subdir - for f in $out/lib/s2n/cmake/*/s2n-targets.cmake; do - substituteInPlace "$f" \ - --replace 'INTERFACE_INCLUDE_DIRECTORIES "''${_IMPORT_PREFIX}/include"' 'INTERFACE_INCLUDE_DIRECTORIES ""' - done - ''; - - passthru.tests = { - inherit nix; - }; - - meta = with lib; { - description = "C99 implementation of the TLS/SSL protocols"; - homepage = "https://github.com/aws/s2n-tls"; - license = licenses.asl20; - platforms = platforms.unix; - maintainers = with maintainers; [ orivej ]; - }; -} diff --git a/pkgs/by-name/sc/scons/3.1.2.nix b/pkgs/by-name/sc/scons/3.1.2.nix deleted file mode 100644 index 0bac068..0000000 --- a/pkgs/by-name/sc/scons/3.1.2.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ lib, fetchFromGitHub, python3 }: - -let - pname = "scons"; - version = "3.1.2"; - src = fetchFromGitHub { - owner = "Scons"; - repo = "scons"; - rev = version; - hash = "sha256-C3U4N7+9vplzoJoevQe5Zeuz0TDmB6/miMwBJLzA3WA="; - }; -in -python3.pkgs.buildPythonApplication { - inherit pname version src; - - outputs = [ "out" "man" ]; - - preConfigure = '' - python bootstrap.py - cd build/scons - ''; - - setupHook = ./setup-hook.sh; - - doCheck = true; - - passthru = { - # expose the used python version so tools using this (and extensing scos - # with other python modules) can use the exact same python version. - inherit python3; - python = python3; - }; - - meta = { - description = "An improved, cross-platform substitute for Make"; - longDescription = '' - SCons is an Open Source software construction tool. Think of SCons as an - improved, cross-platform substitute for the classic Make utility with - integrated functionality similar to autoconf/automake and compiler caches - such as ccache. In short, SCons is an easier, more reliable and faster way - to build software. - ''; - homepage = "https://scons.org/"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ AndersonTorres ]; - }; -} -# TODO: patch to get rid of distutils and other deprecations diff --git a/pkgs/by-name/sc/scons/4.1.0.nix b/pkgs/by-name/sc/scons/4.1.0.nix deleted file mode 100644 index f2edf51..0000000 --- a/pkgs/by-name/sc/scons/4.1.0.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ lib, fetchFromGitHub, python3 }: - -let - pname = "scons"; - version = "4.1.0"; - src = fetchFromGitHub { - owner = "Scons"; - repo = "scons"; - rev = version; - hash = "sha256-ldus/9ghqAMB7A+NrHiCQm7saCdIpqzufGCLxWRhYKU="; - }; -in -python3.pkgs.buildPythonApplication { - inherit pname version src; - - outputs = [ "out" "man" ]; - - postPatch = '' - substituteInPlace setup.cfg \ - --replace "build/dist" "dist" - ''; - - preConfigure = '' - python scripts/scons.py - ''; - - postInstall = '' - mkdir -pv "$man/share/man/man1" - mv -v "$out/"*.1 "$man/share/man/man1/" - ''; - - setupHook = ./setup-hook.sh; - - # The release tarballs don't contain any tests (runtest.py and test/*): - doCheck = false; - - passthru = { - # expose the used python version so tools using this (and extensing scos - # with other python modules) can use the exact same python version. - inherit python3; - python = python3; - }; - - meta = { - description = "An improved, cross-platform substitute for Make"; - longDescription = '' - SCons is an Open Source software construction tool. Think of SCons as an - improved, cross-platform substitute for the classic Make utility with - integrated functionality similar to autoconf/automake and compiler caches - such as ccache. In short, SCons is an easier, more reliable and faster way - to build software. - ''; - homepage = "https://scons.org/"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ AndersonTorres ]; - }; -} diff --git a/pkgs/by-name/sc/scons/4.5.2.nix b/pkgs/by-name/sc/scons/4.5.2.nix deleted file mode 100644 index f63702c..0000000 --- a/pkgs/by-name/sc/scons/4.5.2.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ lib, fetchFromGitHub, python3 }: - -let - pname = "scons"; - version = "4.5.2"; - src = fetchFromGitHub { - owner = "Scons"; - repo = "scons"; - rev = version; - hash = "sha256-vxJsz24jDsPcttwPXq9+ztc/N7W4Gkydgykk/FLgZLo="; - }; -in -python3.pkgs.buildPythonApplication { - inherit pname version src; - - outputs = [ "out" "man" ]; - - patches = [ - ./env.patch - ]; - - postPatch = '' - substituteInPlace setup.cfg \ - --replace "build/dist" "dist" \ - --replace "build/doc/man/" "" - ''; - - preConfigure = '' - python scripts/scons.py - ''; - - postInstall = '' - mkdir -p "$man/share/man/man1" - mv "$out/"*.1 "$man/share/man/man1/" - ''; - - setupHook = ./setup-hook.sh; - - # The release tarballs don't contain any tests (runtest.py and test/*): - doCheck = false; - - passthru = { - # expose the used python version so tools using this (and extensing scos - # with other python modules) can use the exact same python version. - inherit python3; - python = python3; - }; - - meta = { - description = "An improved, cross-platform substitute for Make"; - longDescription = '' - SCons is an Open Source software construction tool. Think of SCons as an - improved, cross-platform substitute for the classic Make utility with - integrated functionality similar to autoconf/automake and compiler caches - such as ccache. In short, SCons is an easier, more reliable and faster way - to build software. - ''; - homepage = "https://scons.org/"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ AndersonTorres ]; - }; -} diff --git a/pkgs/by-name/sc/scons/env.patch b/pkgs/by-name/sc/scons/env.patch deleted file mode 100644 index 9561501..0000000 --- a/pkgs/by-name/sc/scons/env.patch +++ /dev/null @@ -1,9 +0,0 @@ -diff --git a/SCons/Platform/posix.py b/SCons/Platform/posix.py -index 4c9f8f9ba..d68da1b08 100644 ---- a/SCons/Platform/posix.py -+++ b/SCons/Platform/posix.py -@@ -30,0 +31 @@ selection method. -+import os -@@ -87 +88 @@ def generate(env): -- env['ENV']['PATH'] = '/usr/local/bin:/opt/bin:/bin:/usr/bin:/snap/bin' -+ env['ENV']['PATH'] = os.environ["PATH"] diff --git a/pkgs/by-name/sc/scons/packages.nix b/pkgs/by-name/sc/scons/packages.nix deleted file mode 100644 index 76cf482..0000000 --- a/pkgs/by-name/sc/scons/packages.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: -res: pkgs: super: - -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 { }; - scons_4_5_2 = callPackage ./4.5.2.nix { }; -} diff --git a/pkgs/by-name/sc/scons/setup-hook.sh b/pkgs/by-name/sc/scons/setup-hook.sh deleted file mode 100644 index bfd8f3c..0000000 --- a/pkgs/by-name/sc/scons/setup-hook.sh +++ /dev/null @@ -1,87 +0,0 @@ -# shellcheck shell=bash disable=SC2206 - -sconsBuildPhase() { - runHook preBuild - - if [ -n "$prefix" ]; then - mkdir -p "$prefix" - fi - - if [ -z "${dontAddPrefix:-}" ] && [ -n "$prefix" ]; then - buildFlags="${prefixKey:-prefix=}$prefix $buildFlags" - fi - - local flagsArray=( - ${enableParallelBuilding:+-j${NIX_BUILD_CORES}} - $sconsFlags ${sconsFlagsArray[@]} - $buildFlags ${buildFlagsArray[@]} - ) - - echoCmd 'scons build flags' "${flagsArray[@]}" - scons "${flagsArray[@]}" - - runHook postBuild -} - -sconsInstallPhase() { - runHook preInstall - - if [ -n "$prefix" ]; then - mkdir -p "$prefix" - fi - - if [ -z "${dontAddPrefix:-}" ] && [ -n "$prefix" ]; then - installFlags="${prefixKey:-prefix=}$prefix $installFlags" - fi - - local flagsArray=( - ${enableParallelInstalling:+-j${NIX_BUILD_CORES}} - $sconsFlags ${sconsFlagsArray[@]} - $installFlags ${installFlagsArray[@]} - ${installTargets:-install} - ) - - echoCmd 'scons install flags' "${flagsArray[@]}" - scons "${flagsArray[@]}" - - runHook postInstall -} - -sconsCheckPhase() { - runHook preCheck - - if [ -z "${checkTarget:-}" ]; then - if scons -n check >/dev/null 2>&1; then - checkTarget="check" - elif scons -n test >/dev/null 2>&1; then - checkTarget="test" - fi - fi - - if [ -z "${checkTarget:-}" ]; then - echo "no check/test target found, doing nothing" - else - local flagsArray=( - ${enableParallelChecking:+-j${NIX_BUILD_CORES}} - $sconsFlags ${sconsFlagsArray[@]} - ${checkFlagsArray[@]} - ) - - echoCmd 'scons check flags' "${flagsArray[@]}" - scons "${flagsArray[@]}" - fi - - runHook postCheck -} - -if [ -z "${dontUseSconsBuild-}" ] && [ -z "${buildPhase-}" ]; then - buildPhase=sconsBuildPhase -fi - -if [ -z "${dontUseSconsCheck-}" ] && [ -z "${checkPhase-}" ]; then - checkPhase=sconsCheckPhase -fi - -if [ -z "${dontUseSconsInstall-}" ] && [ -z "${installPhase-}" ]; then - installPhase=sconsInstallPhase -fi diff --git a/pkgs/by-name/se/serf/default.nix b/pkgs/by-name/se/serf/default.nix deleted file mode 100644 index 1a2f407..0000000 --- a/pkgs/by-name/se/serf/default.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ lib -, stdenv -, fetchurl -, apr -, scons -, openssl -, aprutil -, zlib -, libkrb5 -, pkg-config -, libiconv -, fetchpatch -}: - -stdenv.mkDerivation rec { - pname = "serf"; - version = "1.3.10"; - - src = fetchurl { - url = "mirror://apache/serf/${pname}-${version}.tar.bz2"; - hash = "sha256-voHvCLqiUW7Np2p3rffe97wyJ+61eLmjO0X3tB3AZOY="; - }; - - nativeBuildInputs = [ pkg-config scons ]; - buildInputs = [ apr openssl aprutil zlib libiconv ] - ++ lib.optional (!stdenv.isCygwin) libkrb5; - - patches = [ - ./scons.patch - - (fetchpatch { - url = "https://src.fedoraproject.org/rpms/libserf/raw/rawhide/f/libserf-1.3.9-errgetfunc.patch"; - hash = "sha256-FQJvXOIZ0iItvbbcu4kR88j74M7fOi7C/0NN3o1/ub4="; - }) - ]; - - 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}" - ''; - - enableParallelBuilding = true; - - meta = with lib; { - description = "HTTP client library based on APR"; - homepage = "https://serf.apache.org/"; - license = licenses.asl20; - maintainers = with maintainers; [ orivej raskin ]; - platforms = platforms.linux ++ platforms.darwin; - }; -} diff --git a/pkgs/by-name/se/serf/scons.patch b/pkgs/by-name/se/serf/scons.patch deleted file mode 100644 index 7be5e4d..0000000 --- a/pkgs/by-name/se/serf/scons.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/SConstruct b/SConstruct -index 4358a23..6ce7776 100644 ---- a/SConstruct -+++ b/SConstruct -@@ -155,6 +155,8 @@ if sys.platform == 'win32': - env = Environment(variables=opts, - tools=('default', 'textfile',), - CPPPATH=['.', ], -+ AR=os.environ['AR'], -+ ENV=os.environ, - ) - - env.Append(BUILDERS = { diff --git a/pkgs/by-name/sh/shadow/default.nix b/pkgs/by-name/sh/shadow/default.nix deleted file mode 100644 index 604f4fb..0000000 --- a/pkgs/by-name/sh/shadow/default.nix +++ /dev/null @@ -1,110 +0,0 @@ -{ 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; - -in - -stdenv.mkDerivation rec { - pname = "shadow"; - version = "4.14.6"; - - src = fetchFromGitHub { - owner = "shadow-maint"; - repo = pname; - rev = version; - hash = "sha256-+klU1a0cSgHPwZkDnbCSjKnBUKIm2Z3OGUvR/zrqQxo="; - }; - - outputs = [ "out" "su" "dev" "man" ]; - - RUNTIME_SHELL = runtimeShell; - - nativeBuildInputs = [ - 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; - - patches = [ - ./keep-path.patch - # Obtain XML resources from XML catalog (patch adapted from gtk-doc) - ./respect-xml-catalog-files-var.patch - ./runtime-shell.patch - ./fix-install-with-tcb.patch - # Fix build against `clang-16` and upcoming `gcc-14`: - # https://github.com/shadow-maint/shadow/pull/857 - (fetchpatch { - name = "fix-implicit-getdef_bool.patch"; - url = "https://github.com/shadow-maint/shadow/commit/5abe0811b880208600f646356549b7e5cad89060.patch"; - hash = "sha256-XqvVv8mYY58uXJBKRwncHQRSI45PUkp3dQNn44gzezU="; - }) - ]; - - # The nix daemon often forbids even creating set[ug]id files. - postPatch = '' - sed 's/^\(s[ug]idperms\) = [0-9]755/\1 = 0755/' -i src/Makefile.am - ''; - - # Assume System V `setpgrp (void)', which is the default on GNU variants - # (`AC_FUNC_SETPGRP' is not cross-compilation capable.) - preConfigure = '' - export ac_cv_func_setpgrp_void=yes - 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" - ++ lib.optional withTcb "--with-tcb"; - - preBuild = lib.optionalString (stdenv.hostPlatform.libc == "glibc") '' - substituteInPlace lib/nscd.c --replace /usr/sbin/nscd ${glibc.bin}/bin/nscd - ''; - - postInstall = '' - # Don't install ‘groups’, since coreutils already provides it. - rm $out/bin/groups - rm $man/share/man/man1/groups.* - - # Move the su binary into the su package - mkdir -p $su/bin - mv $out/bin/su $su/bin - ''; - - enableParallelBuilding = true; - - disallowedReferences = lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) stdenv.shellPackage; - - meta = with lib; { - homepage = "https://github.com/shadow-maint"; - description = "Suite containing authentication-related tools such as passwd and su"; - license = licenses.bsd3; - platforms = platforms.linux; - }; - - passthru = { - shellPath = "/bin/nologin"; - # tests = { inherit (nixosTests) shadow; }; - }; -} diff --git a/pkgs/by-name/sh/shadow/fix-install-with-tcb.patch b/pkgs/by-name/sh/shadow/fix-install-with-tcb.patch deleted file mode 100644 index ff6166b..0000000 --- a/pkgs/by-name/sh/shadow/fix-install-with-tcb.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff --git a/src/Makefile.am b/src/Makefile.am -index a1a2e4e..fa17f9d 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -74,10 +74,6 @@ suidubins += newgidmap newuidmap - endif - endif - --if WITH_TCB --shadowsgidubins = passwd --endif -- - LDADD = $(INTLLIBS) \ - $(top_builddir)/libmisc/libmisc.la \ - $(top_builddir)/lib/libshadow.la \ -@@ -146,12 +142,6 @@ install-am: all-am - set -e; for i in $(suidusbins); do \ - chmod $(suidperms) $(DESTDIR)$(usbindir)/$$i; \ - done --if WITH_TCB -- set -e; for i in $(shadowsgidubins); do \ -- chown root:shadow $(DESTDIR)$(ubindir)/$$i; \ -- chmod $(sgidperms) $(DESTDIR)$(ubindir)/$$i; \ -- done --endif - if ENABLE_SUBIDS - if FCAPS - setcap cap_setuid+ep $(DESTDIR)$(ubindir)/newuidmap diff --git a/pkgs/by-name/sh/shadow/keep-path.patch b/pkgs/by-name/sh/shadow/keep-path.patch deleted file mode 100644 index 99fd17c..0000000 --- a/pkgs/by-name/sh/shadow/keep-path.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff -ru shadow-4.1.5.1-orig/src/su.c shadow-4.1.5.1/src/su.c ---- shadow-4.1.5.1-orig/src/su.c 2012-05-25 07:51:55.000000000 -0400 -+++ shadow-4.1.5.1/src/su.c 2012-07-25 17:22:57.013547930 -0400 -@@ -879,6 +879,7 @@ - } - } - -+#if 0 - cp = getdef_str ((pw->pw_uid == 0) ? "ENV_SUPATH" : "ENV_PATH"); - if (NULL == cp) { - addenv ((pw->pw_uid == 0) ? "PATH=/sbin:/bin:/usr/sbin:/usr/bin" : "PATH=/bin:/usr/bin", NULL); -@@ -887,6 +888,7 @@ - } else { - addenv ("PATH", cp); - } -+#endif - - if (getenv ("IFS") != NULL) { /* don't export user IFS ... */ - addenv ("IFS= \t\n", NULL); /* ... instead, set a safe IFS */ diff --git a/pkgs/by-name/sh/shadow/respect-xml-catalog-files-var.patch b/pkgs/by-name/sh/shadow/respect-xml-catalog-files-var.patch deleted file mode 100644 index 7d922ea..0000000 --- a/pkgs/by-name/sh/shadow/respect-xml-catalog-files-var.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git a/acinclude.m4 b/acinclude.m4 -index dd01f165..e23160ee 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -46,9 +46,21 @@ AC_DEFUN([JH_CHECK_XML_CATALOG], - ifelse([$3],,,[$3 - ])dnl - else -- AC_MSG_RESULT([not found]) -- ifelse([$4],, -- [AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])], -- [$4]) -+ jh_check_xml_catalog_saved_ifs="$IFS" -+ IFS=' ' -+ for f in $XML_CATALOG_FILES; do -+ if [[ -f "$f" ]] && \ -+ AC_RUN_LOG([$XMLCATALOG --noout "$f" "$1" >&2]); then -+ jh_found_xmlcatalog=true -+ AC_MSG_RESULT([found]) -+ ifelse([$3],,,[$3]) -+ break -+ fi -+ done -+ IFS="$jh_check_xml_catalog_saved_ifs" -+ if ! $jh_found_xmlcatalog; then -+ AC_MSG_RESULT([not found]) -+ ifelse([$4],,[AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])],[$4]) -+ fi - fi - ]) diff --git a/pkgs/by-name/sh/shadow/runtime-shell.patch b/pkgs/by-name/sh/shadow/runtime-shell.patch deleted file mode 100644 index 0b2e68e..0000000 --- a/pkgs/by-name/sh/shadow/runtime-shell.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index e4c6aaec..03883ad7 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -682,7 +682,7 @@ if test "$enable_utmpx" = "yes"; then - [Define if utmpx should be used]) - fi - --AC_DEFINE_UNQUOTED(SHELL, ["$SHELL"], [The default shell.]) -+AC_DEFINE_UNQUOTED(SHELL, ["$RUNTIME_SHELL"], [The runtime shell.]) - - AM_GNU_GETTEXT_VERSION(0.16) - AM_GNU_GETTEXT([external], [need-ngettext]) diff --git a/pkgs/by-name/sh/sharutils/default.nix b/pkgs/by-name/sh/sharutils/default.nix deleted file mode 100644 index 5c84e59..0000000 --- a/pkgs/by-name/sh/sharutils/default.nix +++ /dev/null @@ -1,89 +0,0 @@ -{ lib, stdenv, fetchurl, fetchpatch, gettext, coreutils }: - -stdenv.mkDerivation rec { - pname = "sharutils"; - version = "4.15.2"; - - src = fetchurl { - url = "mirror://gnu/sharutils/sharutils-${version}.tar.xz"; - sha256 = "16isapn8f39lnffc3dp4dan05b7x6mnc76v6q5nn8ysxvvvwy19b"; - }; - - hardeningDisable = [ "format" ]; - - # GNU Gettext is needed on non-GNU platforms. - 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 - # that cause shar to just segfault. It isn't a problem on Linux because their sandbox - # remaps /etc/passwd to a trivial file, but we can't do that on Darwin so I do this - # instead. In this case, I pass in the very imaginative "submitter" as the submitter name - - patches = [ - # CVE-2018-1000097 - (fetchurl { - url = "https://sources.debian.org/data/main/s/sharutils/1:4.15.2-2+deb9u1/debian/patches/01-fix-heap-buffer-overflow-cve-2018-1000097.patch"; - sha256 = "19g0sxc8g79aj5gd5idz5409311253jf2q8wqkasf0handdvsbxx"; - }) - (fetchurl { - url = "https://sources.debian.org/data/main/s/sharutils/1:4.15.2-4/debian/patches/02-fix-ftbfs-with-glibc-2.28.patch"; - sha256 = "15kpjqnfs98n6irmkh8pw7masr08xala7gx024agv7zv14722vkc"; - }) - - # pending upstream build fix against -fno-common compilers like >=gcc-10 - # Taken from https://lists.gnu.org/archive/html/bug-gnu-utils/2020-01/msg00002.html - (fetchpatch { - name = "sharutils-4.15.2-Fix-building-with-GCC-10.patch"; - url = "https://lists.gnu.org/archive/html/bug-gnu-utils/2020-01/txtDL8i6V6mUU.txt"; - sha256 = "0kfch1vm45lg237hr6fdv4b2lh5b1933k0fn8yj91gqm58svskvl"; - }) - (fetchpatch { - name = "sharutils-4.15.2-Do-not-include-lib-md5.c-into-src-shar.c.patch"; - url = "https://lists.gnu.org/archive/html/bug-gnu-utils/2020-01/txt5Z_KZup0yN.txt"; - sha256 = "0an8vfy3qj6sss9w0i4j8ilf7g5mbc7y13l644jy5bcm9przcjbd"; - }) - ]; - - 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 '' - substituteInPlace tests/shar-1 --replace '${shar_sub}' '${shar_sub} -s submitter' - substituteInPlace tests/shar-2 --replace '${shar_sub}' '${shar_sub} -s submitter' - - substituteInPlace intl/Makefile.in --replace "AR = ar" "" - ''; - - # Workaround to fix the static build on macOS. - env.NIX_CFLAGS_COMPILE = "-Wno-implicit-function-declaration"; - - doCheck = true; - - 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. - - 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 = []; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/so/sourceHighlight/default.nix b/pkgs/by-name/so/sourceHighlight/default.nix deleted file mode 100644 index d20b369..0000000 --- a/pkgs/by-name/so/sourceHighlight/default.nix +++ /dev/null @@ -1,71 +0,0 @@ -{ lib, stdenv, fetchpatch, fetchurl, boost }: - -stdenv.mkDerivation rec { - pname = "source-highlight"; - version = "3.1.9"; - - 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" ]; - }) - - # 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 - # platform architecture, so it can't run on the build host. - postPatch = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' - substituteInPlace Makefile.in --replace "src doc tests" "src tests" - ''; - - strictDeps = true; - buildInputs = [ boost ]; - - configureFlags = [ - "--with-boost=${boost.out}" - "--with-bash-completion=${placeholder "out"}/share/bash-completion/completions" - ]; - - doCheck = true; - - enableParallelBuilding = true; - # Upstream uses the same intermediate files in multiple tests, running - # them in parallel by make will eventually break one or more tests. - enableParallelChecking = false; - - meta = with lib; { - description = "Source code renderer with syntax highlighting"; - longDescription = '' - GNU Source-highlight, given a source file, produces a document - with syntax highlighting. - ''; - homepage = "https://www.gnu.org/software/src-highlite/"; - license = licenses.gpl3Plus; - platforms = platforms.unix; - maintainers = with maintainers; [ SuperSandro2000 ]; - }; -} diff --git a/pkgs/by-name/sp/spdlog/default.nix b/pkgs/by-name/sp/spdlog/default.nix deleted file mode 100644 index 51691a7..0000000 --- a/pkgs/by-name/sp/spdlog/default.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, fmt -, catch2_3 -, staticBuild ? stdenv.hostPlatform.isStatic - -# for passthru.tests -# , bear -# , tiledb -}: - -stdenv.mkDerivation rec { - pname = "spdlog"; - version = "1.13.0"; - - src = fetchFromGitHub { - owner = "gabime"; - repo = "spdlog"; - rev = "v${version}"; - hash = "sha256-3n8BnjZ7uMH8quoiT60yTU7poyOtoEmzNMOLa1+r7X0="; - }; - - nativeBuildInputs = [ cmake ]; - # Required to build tests, even if they aren't executed - buildInputs = [ catch2_3 ]; - propagatedBuildInputs = [ fmt ]; - - cmakeFlags = [ - "-DSPDLOG_BUILD_SHARED=${if staticBuild then "OFF" else "ON"}" - "-DSPDLOG_BUILD_STATIC=${if staticBuild then "ON" else "OFF"}" - "-DSPDLOG_BUILD_EXAMPLE=OFF" - "-DSPDLOG_BUILD_BENCH=OFF" - "-DSPDLOG_BUILD_TESTS=ON" - "-DSPDLOG_FMT_EXTERNAL=ON" - ]; - - outputs = [ "out" "doc" "dev" ] ; - - postInstall = '' - mkdir -p $out/share/doc/spdlog - cp -rv ../example $out/share/doc/spdlog - ''; - - doCheck = true; - - # passthru.tests = { - # inherit bear tiledb; - # }; - - 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; - }; -} diff --git a/pkgs/by-name/sp/sphinx/packages.nix b/pkgs/by-name/sp/sphinx/packages.nix deleted file mode 100644 index 795d4c0..0000000 --- a/pkgs/by-name/sp/sphinx/packages.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - sphinx = with python3Packages; toPythonApplication sphinx; - - sphinx-autobuild = with python3Packages; toPythonApplication sphinx-autobuild; - - sphinx-serve = with python3Packages; toPythonApplication sphinx-serve; - - inherit (python3Packages) sphinxHook; -} diff --git a/pkgs/by-name/sp/spice-protocol/default.nix b/pkgs/by-name/sp/spice-protocol/default.nix deleted file mode 100644 index d780085..0000000 --- a/pkgs/by-name/sp/spice-protocol/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, stdenv, fetchurl, meson, ninja }: - -stdenv.mkDerivation rec { - pname = "spice-protocol"; - version = "0.14.4"; - - src = fetchurl { - url = "https://www.spice-space.org/download/releases/${pname}-${version}.tar.xz"; - sha256 = "sha256-BP+6YQ2f1EHPxH36oTXXAJbmCxBG0hGdjbL46g0X2RI="; - }; - - nativeBuildInputs = [ meson ninja ]; - - postInstall = '' - mkdir -p $out/lib - ln -sv ../share/pkgconfig $out/lib/pkgconfig - ''; - - meta = with lib; { - description = "Protocol headers for the SPICE protocol"; - homepage = "https://www.spice-space.org/"; - license = licenses.bsd3; - maintainers = with maintainers; [ bluescreen303 ]; - platforms = platforms.all; - }; -} diff --git a/pkgs/by-name/sq/sqlite/archive-version.nix b/pkgs/by-name/sq/sqlite/archive-version.nix deleted file mode 100644 index 601bb6a..0000000 --- a/pkgs/by-name/sq/sqlite/archive-version.nix +++ /dev/null @@ -1,9 +0,0 @@ -lib: version: - -let - fragments = lib.splitVersion version; - major = lib.head fragments; - minor = lib.concatMapStrings (lib.fixedWidthNumber 2) (lib.tail fragments); -in - -major + minor + "00" diff --git a/pkgs/by-name/sq/sqlite/default.nix b/pkgs/by-name/sq/sqlite/default.nix deleted file mode 100644 index d172d75..0000000 --- a/pkgs/by-name/sq/sqlite/default.nix +++ /dev/null @@ -1,112 +0,0 @@ -{ lib, stdenv, fetchurl, zlib, readline, ncurses - -# for tests -, python3Packages, sqldiff, sqlite-analyzer, tracker - -# uses readline & ncurses for a better interactive experience if set to true -, interactive ? false - -, gitUpdater -}: - -let - archiveVersion = import ./archive-version.nix lib; -in - -stdenv.mkDerivation rec { - pname = "sqlite${lib.optionalString interactive "-interactive"}"; - version = "3.45.2"; - - # nixpkgs-update: no auto update - # NB! Make sure to update ./tools.nix src (in the same directory). - src = fetchurl { - url = "https://sqlite.org/2024/sqlite-autoconf-${archiveVersion version}.tar.gz"; - hash = "sha256-vJBnRC7t8905mJtcXPv/83rmbMnJknTgwwUtxNSo9q4="; - }; - - outputs = [ "bin" "dev" "out" ]; - separateDebugInfo = stdenv.isLinux; - - buildInputs = [ zlib ] ++ lib.optionals interactive [ readline ncurses ]; - - # required for aarch64 but applied for all arches for simplicity - preConfigure = '' - patchShebangs configure - ''; - - configureFlags = [ "--enable-threadsafe" ] ++ lib.optional interactive "--enable-readline"; - - env.NIX_CFLAGS_COMPILE = toString ([ - "-DSQLITE_ENABLE_COLUMN_METADATA" - "-DSQLITE_ENABLE_DBSTAT_VTAB" - "-DSQLITE_ENABLE_JSON1" - "-DSQLITE_ENABLE_FTS3" - "-DSQLITE_ENABLE_FTS3_PARENTHESIS" - "-DSQLITE_ENABLE_FTS3_TOKENIZER" - "-DSQLITE_ENABLE_FTS4" - "-DSQLITE_ENABLE_FTS5" - "-DSQLITE_ENABLE_RTREE" - "-DSQLITE_ENABLE_STMT_SCANSTATUS" - "-DSQLITE_ENABLE_UNLOCK_NOTIFY" - "-DSQLITE_SOUNDEX" - "-DSQLITE_SECURE_DELETE" - "-DSQLITE_MAX_VARIABLE_NUMBER=250000" - "-DSQLITE_MAX_EXPR_DEPTH=10000" - ]); - - # Test for features which may not be available at compile time - preBuild = '' - # Use pread(), pread64(), pwrite(), pwrite64() functions for better performance if they are available. - if cc -Werror=implicit-function-declaration -x c - -o "$TMPDIR/pread_pwrite_test" <<< \ - ''$'#include \nint main()\n{\n pread(0, NULL, 0, 0);\n pwrite(0, NULL, 0, 0);\n return 0;\n}'; then - export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DUSE_PREAD" - fi - if cc -Werror=implicit-function-declaration -x c - -o "$TMPDIR/pread64_pwrite64_test" <<< \ - ''$'#include \nint main()\n{\n pread64(0, NULL, 0, 0);\n pwrite64(0, NULL, 0, 0);\n return 0;\n}'; then - export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DUSE_PREAD64" - elif cc -D_LARGEFILE64_SOURCE -Werror=implicit-function-declaration -x c - -o "$TMPDIR/pread64_pwrite64_test" <<< \ - ''$'#include \nint main()\n{\n pread64(0, NULL, 0, 0);\n pwrite64(0, NULL, 0, 0);\n return 0;\n}'; then - export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DUSE_PREAD64 -D_LARGEFILE64_SOURCE" - fi - - # Necessary for FTS5 on Linux - export NIX_LDFLAGS="$NIX_LDFLAGS -lm" - - echo "" - echo "NIX_CFLAGS_COMPILE = $NIX_CFLAGS_COMPILE" - echo "" - ''; - - postInstall = '' - # Do not contaminate dependent libtool-based projects with sqlite dependencies. - sed -i $out/lib/libsqlite3.la -e "s/dependency_libs=.*/dependency_libs='''/" - ''; - - doCheck = false; # fails to link against tcl - - passthru = { - tests = { - inherit (python3Packages) sqlalchemy; - inherit sqldiff sqlite-analyzer tracker; - }; - - updateScript = gitUpdater { - # No nicer place to look for patest version. - url = "https://github.com/sqlite/sqlite.git"; - # Expect tags like "version-3.43.0". - rev-prefix = "version-"; - }; - }; - - meta = with lib; { - changelog = "https://www.sqlite.org/releaselog/${lib.replaceStrings [ "." ] [ "_" ] version}.html"; - description = "A self-contained, serverless, zero-configuration, transactional SQL database engine"; - downloadPage = "https://sqlite.org/download.html"; - homepage = "https://www.sqlite.org/"; - license = licenses.publicDomain; - mainProgram = "sqlite3"; - 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 deleted file mode 100644 index e6b8877..0000000 --- a/pkgs/by-name/sq/sqlite/packages.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - sqlite = lowPrio (callPackage ./. { }); - - inherit (callPackage ./tools.nix { - inherit (darwin.apple_sdk.frameworks) Foundation; - }) sqlite-analyzer sqldiff; - - sqlar = callPackage ./sqlar.nix { }; - - sqlite-interactive = (sqlite.override { interactive = true; }).bin; -} diff --git a/pkgs/by-name/sq/sqlite/sqlar.nix b/pkgs/by-name/sq/sqlite/sqlar.nix deleted file mode 100644 index 9063879..0000000 --- a/pkgs/by-name/sq/sqlite/sqlar.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchurl, fuse, zlib -, withFuse ? true }: - -stdenv.mkDerivation { - pname = "sqlar"; - version = "2018-01-07"; - - src = fetchurl { - url = "https://www.sqlite.org/sqlar/tarball/4824e73896/sqlar-src-4824e73896.tar.gz"; - sha256 = "09pikkbp93gqypn3da9zi0dzc47jyypkwc9vnmfzhmw7kpyv8nm9"; - }; - - postPatch = '' - substituteInPlace Makefile \ - --replace 'gcc' '${stdenv.cc.targetPrefix}cc' - ''; - - buildInputs = [ zlib ] - ++ lib.optional withFuse fuse; - - 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 - ''; - - meta = with lib; { - homepage = "https://sqlite.org/sqlar"; - description = "SQLite Archive utilities"; - license = licenses.bsd2; - platforms = platforms.all; - maintainers = with maintainers; [ dtzWill ]; - }; -} diff --git a/pkgs/by-name/sq/sqlite/tools.nix b/pkgs/by-name/sq/sqlite/tools.nix deleted file mode 100644 index 94ac07d..0000000 --- a/pkgs/by-name/sq/sqlite/tools.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ 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"; - - # 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; - }; - }; -in -{ - sqldiff = mkTool { - pname = "sqldiff"; - makeTarget = "sqldiff"; - description = "A tool that displays the differences between SQLite databases"; - homepage = "https://www.sqlite.org/sqldiff.html"; - mainProgram = "sqldiff"; - }; - sqlite-analyzer = mkTool { - pname = "sqlite-analyzer"; - makeTarget = "sqlite3_analyzer"; - description = "A tool that shows statistics about SQLite databases"; - homepage = "https://www.sqlite.org/sqlanalyze.html"; - mainProgram = "sqlite3_analyzer"; - }; -} diff --git a/pkgs/by-name/su/subversion/apr-1.patch b/pkgs/by-name/su/subversion/apr-1.patch deleted file mode 100644 index 240d94f..0000000 --- a/pkgs/by-name/su/subversion/apr-1.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/subversion/bindings/swig/perl/native/Makefile.PL.in -+++ b/subversion/bindings/swig/perl/native/Makefile.PL.in -@@ -72,7 +72,7 @@ - # According to the log of r7937, the flags guarded by the conditional break - # the build on FreeBSD if not conditionalized. - my $apr_ldflags = '@SVN_APR_LIBS@' -- if $^O eq 'darwin' or $^O eq 'cygwin'; -+ if $^O eq 'darwin' or $^O eq 'cygwin' or $^O eq 'linux'; - - chomp $apr_shlib_path_var; - diff --git a/pkgs/by-name/su/subversion/default.nix b/pkgs/by-name/su/subversion/default.nix deleted file mode 100644 index 0c83d08..0000000 --- a/pkgs/by-name/su/subversion/default.nix +++ /dev/null @@ -1,134 +0,0 @@ -{ 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; -assert httpServer -> apacheHttpd != null; -assert pythonBindings -> swig != null && python3 != null && py3c != null; -assert javahlBindings -> jdk != null && perl != null; - -let - # Update libtool for macOS 11 support - 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"}"; - - 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" ]; - - 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 ]; - - 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" ]; - - 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}" - ]; - - 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 - - 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 - - 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; - - 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 - - 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"; - }); - -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 deleted file mode 100644 index 5c7df2f..0000000 --- a/pkgs/by-name/su/subversion/packages.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - inherit (callPackages ./. { - sasl = cyrus_sasl; - inherit (darwin.apple_sdk.frameworks) CoreServices Security; - }) subversion; - - subversionClient = subversion.override { - bdbSupport = false; - perlBindings = true; - pythonBindings = true; - }; -} diff --git a/pkgs/by-name/sw/swig/2.x.nix b/pkgs/by-name/sw/swig/2.x.nix deleted file mode 100644 index ac03372..0000000 --- a/pkgs/by-name/sw/swig/2.x.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, bison, pcre }: - -stdenv.mkDerivation rec { - pname = "swig"; - version = "2.0.12"; - - src = fetchFromGitHub { - owner = "swig"; - repo = "swig"; - rev = "rel-${version}"; - sha256 = "0khm9gh5pczfcihr0pbicaicc4v9kjm5ip2alvkhmbb3ga6njkcm"; - }; - - nativeBuildInputs = [ autoconf automake libtool bison ]; - buildInputs = [ pcre ]; - - configureFlags = [ "--without-tcl" ]; - - # Disable ccache documentation as it needs yodl - postPatch = '' - sed -i '/man1/d' CCache/Makefile.in - ''; - - preConfigure = '' - ./autogen.sh - ''; - - meta = with lib; { - description = "SWIG, an interface compiler that connects C/C++ code to higher-level languages"; - homepage = "https://swig.org/"; - # Different types of licenses available: http://www.swig.org/Release/LICENSE . - license = licenses.gpl3Plus; - platforms = with platforms; linux ++ darwin; - }; -} diff --git a/pkgs/by-name/sw/swig/3.x.nix b/pkgs/by-name/sw/swig/3.x.nix deleted file mode 100644 index f50c02d..0000000 --- a/pkgs/by-name/sw/swig/3.x.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, bison, pcre }: - -stdenv.mkDerivation rec { - pname = "swig"; - version = "3.0.12"; - - src = fetchFromGitHub { - owner = "swig"; - repo = "swig"; - rev = "rel-${version}"; - sha256 = "1wyffskbkzj5zyhjnnpip80xzsjcr3p0q5486z3wdwabnysnhn8n"; - }; - - PCRE_CONFIG = "${pcre.dev}/bin/pcre-config"; - nativeBuildInputs = [ autoconf automake libtool bison ]; - buildInputs = [ pcre ]; - - configureFlags = [ "--without-tcl" ]; - - # Disable ccache documentation as it needs yodl - postPatch = '' - sed -i '/man1/d' CCache/Makefile.in - ''; - - preConfigure = '' - ./autogen.sh - ''; - - meta = with lib; { - description = "An interface compiler that connects C/C++ code to higher-level languages"; - homepage = "https://swig.org/"; - # Different types of licenses available: http://www.swig.org/Release/LICENSE . - license = licenses.gpl3Plus; - platforms = with platforms; linux ++ darwin; - }; -} diff --git a/pkgs/by-name/sw/swig/4.nix b/pkgs/by-name/sw/swig/4.nix deleted file mode 100644 index 6b6d1bc..0000000 --- a/pkgs/by-name/sw/swig/4.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, bison, pcre }: - -stdenv.mkDerivation rec { - pname = "swig"; - version = "4.0.2"; - - src = fetchFromGitHub { - owner = "swig"; - repo = "swig"; - rev = "rel-${version}"; - sha256 = "12vlps766xvwck8q0i280s8yx21qm2dxl34710ybpmz3c1cfdjsc"; - }; - - PCRE_CONFIG = "${pcre.dev}/bin/pcre-config"; - nativeBuildInputs = [ autoconf automake libtool bison ]; - buildInputs = [ pcre ]; - - configureFlags = [ "--without-tcl" ]; - - # Disable ccache documentation as it needs yodl - postPatch = '' - sed -i '/man1/d' CCache/Makefile.in - ''; - - preConfigure = '' - ./autogen.sh - ''; - - meta = with lib; { - description = "SWIG, an interface compiler that connects C/C++ code to higher-level languages"; - homepage = "https://swig.org/"; - # Different types of licenses available: http://www.swig.org/Release/LICENSE . - license = licenses.gpl3Plus; - maintainers = with maintainers; [ orivej ]; - platforms = with platforms; linux ++ darwin; - }; -} diff --git a/pkgs/by-name/sw/swig/default.nix b/pkgs/by-name/sw/swig/default.nix deleted file mode 100644 index ad7b64c..0000000 --- a/pkgs/by-name/sw/swig/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, stdenv, fetchurl, boost, tcl }: - -stdenv.mkDerivation rec { - pname = "swig"; - version = "1.3.40"; - - src = fetchurl { - url = "mirror://sourceforge/swig/${pname}-${version}.tar.gz"; - sha256 = "02dc8g8wy75nd2is1974rl24c6mdl0ai1vszs1xpg9nd7dlv6i8r"; - }; - - doCheck = !stdenv.isCygwin; - # 'make check' uses boost and 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"; - homepage = "https://swig.org/"; - # Different types of licenses available: http://www.swig.org/Release/LICENSE . - license = licenses.gpl3Plus; - platforms = with platforms; linux ++ darwin; - }; -} diff --git a/pkgs/by-name/sw/swig/packages.nix b/pkgs/by-name/sw/swig/packages.nix deleted file mode 100644 index 4467e7c..0000000 --- a/pkgs/by-name/sw/swig/packages.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - swig1 = callPackage ./. { }; - swig2 = callPackage ./2.x.nix { }; - swig3 = callPackage ./3.x.nix { }; - swig4 = callPackage ./4.nix { }; - swig = swig3; - swigWithJava = swig; -} diff --git a/pkgs/by-name/sy/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch b/pkgs/by-name/sy/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch deleted file mode 100644 index b080262..0000000 --- a/pkgs/by-name/sy/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Eelco Dolstra -Date: Tue, 8 Jan 2013 15:46:30 +0100 -Subject: [PATCH] Start device units for uninitialised encrypted devices - -This is necessary because the NixOS service that initialises the -filesystem depends on the appearance of the device unit. Also, this -makes more sense to me: the device is ready; it's the filesystem -that's not, but taking care of that is the responsibility of the mount -unit. (However, this ignores the fsck unit, so it's not perfect...) ---- - rules.d/99-systemd.rules.in | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/rules.d/99-systemd.rules.in b/rules.d/99-systemd.rules.in -index 0d68f31d36..6b52f7ed4b 100644 ---- a/rules.d/99-systemd.rules.in -+++ b/rules.d/99-systemd.rules.in -@@ -22,10 +22,6 @@ SUBSYSTEM=="block", TAG+="systemd" - SUBSYSTEM=="block", ENV{DM_SUSPENDED}=="1", IMPORT{db}="SYSTEMD_READY", GOTO="systemd_end" - SUBSYSTEM=="block", ACTION=="add", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", ENV{SYSTEMD_READY}="0" - --# Ignore encrypted devices with no identified superblock on it, since --# we are probably still calling mke2fs or mkswap on it. --SUBSYSTEM=="block", ENV{DM_UUID}=="CRYPT-*", ENV{ID_PART_TABLE_TYPE}=="", ENV{ID_FS_USAGE}=="", ENV{SYSTEMD_READY}="0" -- - # Explicitly set SYSTEMD_READY=1 for DM devices that don't have it set yet, so that we always have something to import above - SUBSYSTEM=="block", ENV{DM_UUID}=="?*", ENV{SYSTEMD_READY}=="", ENV{SYSTEMD_READY}="1" - diff --git a/pkgs/by-name/sy/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch b/pkgs/by-name/sy/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch deleted file mode 100644 index 8507bb5..0000000 --- a/pkgs/by-name/sy/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Raito Bezarius -Date: Mon, 19 Jun 2023 02:11:35 +0200 -Subject: [PATCH] Don't try to unmount /nix or /nix/store - -They'll still be remounted read-only. - -https://github.com/NixOS/nixos/issues/126 - -Original-Author: Eelco Dolstra ---- - src/shared/fstab-util.c | 2 ++ - src/shutdown/umount.c | 6 ++++-- - 2 files changed, 6 insertions(+), 2 deletions(-) - -diff --git a/src/shared/fstab-util.c b/src/shared/fstab-util.c -index 55e76b6e16..015a608035 100644 ---- a/src/shared/fstab-util.c -+++ b/src/shared/fstab-util.c -@@ -66,6 +66,8 @@ bool fstab_is_extrinsic(const char *mount, const char *opts) { - /* Don't bother with the OS data itself */ - if (PATH_IN_SET(mount, - "/", -+ "/nix", -+ "/nix/store", - "/usr", - "/etc")) - return true; -diff --git a/src/shutdown/umount.c b/src/shutdown/umount.c -index 1a9b99d761..04ef9af1ea 100644 ---- a/src/shutdown/umount.c -+++ b/src/shutdown/umount.c -@@ -170,8 +170,10 @@ int mount_points_list_get(const char *mountinfo, MountPoint **head) { - static bool nonunmountable_path(const char *path) { - assert(path); - -- return PATH_IN_SET(path, "/", "/usr") || -- path_startswith(path, "/run/initramfs"); -+ return PATH_IN_SET(path, "/", "/usr") -+ || path_equal(path, "/nix") -+ || path_equal(path, "/nix/store") -+ || path_startswith(path, "/run/initramfs"); - } - - static void log_umount_blockers(const char *mnt) { diff --git a/pkgs/by-name/sy/systemd/0003-Fix-NixOS-containers.patch b/pkgs/by-name/sy/systemd/0003-Fix-NixOS-containers.patch deleted file mode 100644 index 535ca3d..0000000 --- a/pkgs/by-name/sy/systemd/0003-Fix-NixOS-containers.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Eelco Dolstra -Date: Wed, 16 Apr 2014 10:59:28 +0200 -Subject: [PATCH] Fix NixOS containers - -In NixOS containers, the init script is bind-mounted into the -container, so checking early whether it exists will fail. ---- - src/nspawn/nspawn.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c -index 38196ef3d6..57d1750b00 100644 ---- a/src/nspawn/nspawn.c -+++ b/src/nspawn/nspawn.c -@@ -5602,6 +5602,7 @@ static int run(int argc, char *argv[]) { - goto finish; - } - } else { -+#if 0 - _cleanup_free_ char *p = NULL; - - if (arg_pivot_root_new) -@@ -5618,6 +5619,7 @@ static int run(int argc, char *argv[]) { - "Directory %s doesn't look like it has an OS tree (/usr/ directory is missing). Refusing.", arg_directory); - goto finish; - } -+#endif - } - - } else { diff --git a/pkgs/by-name/sy/systemd/0004-Add-some-NixOS-specific-unit-directories.patch b/pkgs/by-name/sy/systemd/0004-Add-some-NixOS-specific-unit-directories.patch deleted file mode 100644 index d223276..0000000 --- a/pkgs/by-name/sy/systemd/0004-Add-some-NixOS-specific-unit-directories.patch +++ /dev/null @@ -1,128 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Raito Bezarius -Date: Mon, 19 Jun 2023 02:13:42 +0200 -Subject: [PATCH] Add some NixOS-specific unit directories - -Look in `/nix/var/nix/profiles/default/lib/systemd/{system,user}` for -units provided by packages installed into the default profile via -`nix-env -iA nixos.$package`. - -Also, remove /usr and /lib as these don't exist on NixOS. - -Original-Author: Eelco Dolstra ---- - src/basic/path-lookup.c | 18 ++---------------- - src/core/systemd.pc.in | 8 ++++---- - 2 files changed, 6 insertions(+), 20 deletions(-) - -diff --git a/src/basic/path-lookup.c b/src/basic/path-lookup.c -index 4e3d59fc56..0d18b9a2d0 100644 ---- a/src/basic/path-lookup.c -+++ b/src/basic/path-lookup.c -@@ -92,11 +92,7 @@ int xdg_user_data_dir(char **ret, const char *suffix) { - } - - static const char* const user_data_unit_paths[] = { -- "/usr/local/lib/systemd/user", -- "/usr/local/share/systemd/user", - USER_DATA_UNIT_DIR, -- "/usr/lib/systemd/user", -- "/usr/share/systemd/user", - NULL - }; - -@@ -613,16 +609,13 @@ int lookup_paths_init( - persistent_config, - SYSTEM_CONFIG_UNIT_DIR, - "/etc/systemd/system", -+ "/nix/var/nix/profiles/default/lib/systemd/system", - STRV_IFNOTNULL(persistent_attached), - runtime_config, - "/run/systemd/system", - STRV_IFNOTNULL(runtime_attached), - STRV_IFNOTNULL(generator), -- "/usr/local/lib/systemd/system", - SYSTEM_DATA_UNIT_DIR, -- "/usr/lib/systemd/system", -- /* To be used ONLY for images which might be legacy split-usr */ -- STRV_IFNOTNULL(flags & LOOKUP_PATHS_SPLIT_USR ? "/lib/systemd/system" : NULL), - STRV_IFNOTNULL(generator_late)); - break; - -@@ -638,14 +631,11 @@ int lookup_paths_init( - persistent_config, - USER_CONFIG_UNIT_DIR, - "/etc/systemd/user", -+ "/nix/var/nix/profiles/default/lib/systemd/user", - runtime_config, - "/run/systemd/user", - STRV_IFNOTNULL(generator), -- "/usr/local/share/systemd/user", -- "/usr/share/systemd/user", -- "/usr/local/lib/systemd/user", - USER_DATA_UNIT_DIR, -- "/usr/lib/systemd/user", - STRV_IFNOTNULL(generator_late)); - break; - -@@ -805,7 +795,6 @@ char **generator_binary_paths(RuntimeScope scope) { - case RUNTIME_SCOPE_SYSTEM: - add = strv_new("/run/systemd/system-generators", - "/etc/systemd/system-generators", -- "/usr/local/lib/systemd/system-generators", - SYSTEM_GENERATOR_DIR); - break; - -@@ -813,7 +802,6 @@ char **generator_binary_paths(RuntimeScope scope) { - case RUNTIME_SCOPE_USER: - add = strv_new("/run/systemd/user-generators", - "/etc/systemd/user-generators", -- "/usr/local/lib/systemd/user-generators", - USER_GENERATOR_DIR); - break; - -@@ -852,14 +840,12 @@ char **env_generator_binary_paths(RuntimeScope runtime_scope) { - case RUNTIME_SCOPE_SYSTEM: - add = strv_new("/run/systemd/system-environment-generators", - "/etc/systemd/system-environment-generators", -- "/usr/local/lib/systemd/system-environment-generators", - SYSTEM_ENV_GENERATOR_DIR); - break; - - case RUNTIME_SCOPE_USER: - add = strv_new("/run/systemd/user-environment-generators", - "/etc/systemd/user-environment-generators", -- "/usr/local/lib/systemd/user-environment-generators", - USER_ENV_GENERATOR_DIR); - break; - -diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in -index f3b85b0190..8ae544b495 100644 ---- a/src/core/systemd.pc.in -+++ b/src/core/systemd.pc.in -@@ -43,10 +43,10 @@ systemdsystemconfdir=${systemd_system_conf_dir} - systemd_user_conf_dir=${sysconfdir}/systemd/user - systemduserconfdir=${systemd_user_conf_dir} - --systemd_system_unit_path=${systemd_system_conf_dir}:/etc/systemd/system:/run/systemd/system:/usr/local/lib/systemd/system:${systemd_system_unit_dir}:/usr/lib/systemd/system:/lib/systemd/system -+systemd_system_unit_path=${systemd_system_conf_dir}:/etc/systemd/system:/nix/var/nix/profiles/default/lib/systemd/system:/run/systemd/system:${systemdsystemunitdir} - systemdsystemunitpath=${systemd_system_unit_path} - --systemd_user_unit_path=${systemd_user_conf_dir}:/etc/systemd/user:/run/systemd/user:/usr/local/lib/systemd/user:/usr/local/share/systemd/user:${systemd_user_unit_dir}:/usr/lib/systemd/user:/usr/share/systemd/user -+systemd_user_unit_path=${systemd_user_conf_dir}:/etc/systemd/user:/nix/var/nix/profiles/default/lib/systemd/user:/run/systemd/user:${systemduserunitdir} - systemduserunitpath=${systemd_user_unit_path} - - systemd_system_generator_dir=${prefix}/lib/systemd/system-generators -@@ -55,10 +55,10 @@ systemdsystemgeneratordir=${systemd_system_generator_dir} - systemd_user_generator_dir=${prefix}/lib/systemd/user-generators - systemdusergeneratordir=${systemd_user_generator_dir} - --systemd_system_generator_path=/run/systemd/system-generators:/etc/systemd/system-generators:/usr/local/lib/systemd/system-generators:${systemd_system_generator_dir} -+systemd_system_generator_path=/run/systemd/system-generators:/etc/systemd/system-generators:${systemd_system_generator_dir} - systemdsystemgeneratorpath=${systemd_system_generator_path} - --systemd_user_generator_path=/run/systemd/user-generators:/etc/systemd/user-generators:/usr/local/lib/systemd/user-generators:${systemd_user_generator_dir} -+systemd_user_generator_path=/run/systemd/user-generators:/etc/systemd/user-generators:${systemd_user_generator_dir} - systemdusergeneratorpath=${systemd_user_generator_path} - - systemd_sleep_dir=${prefix}/lib/systemd/system-sleep diff --git a/pkgs/by-name/sy/systemd/0005-Get-rid-of-a-useless-message-in-user-sessions.patch b/pkgs/by-name/sy/systemd/0005-Get-rid-of-a-useless-message-in-user-sessions.patch deleted file mode 100644 index a0bcc6a..0000000 --- a/pkgs/by-name/sy/systemd/0005-Get-rid-of-a-useless-message-in-user-sessions.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Eelco Dolstra -Date: Mon, 11 May 2015 15:39:38 +0200 -Subject: [PATCH] Get rid of a useless message in user sessions - -Namely lots of variants of - - Unit nix-var-nix-db.mount is bound to inactive unit dev-disk-by\x2dlabel-nixos.device. Stopping, too. - -in containers. ---- - src/core/manager.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/core/manager.c b/src/core/manager.c -index e61ebee253..22cc5cc843 100644 ---- a/src/core/manager.c -+++ b/src/core/manager.c -@@ -1562,7 +1562,8 @@ static unsigned manager_dispatch_stop_when_bound_queue(Manager *m) { - if (!unit_is_bound_by_inactive(u, &culprit)) - continue; - -- log_unit_debug(u, "Unit is stopped because bound to inactive unit %s.", culprit->id); -+ if (u->type != UNIT_MOUNT || detect_container() <= 0) -+ log_unit_debug(u, "Unit is stopped because bound to inactive unit %s.", culprit->id); - - /* If stopping a unit fails continuously we might enter a stop loop here, hence stop acting on the - * service being unnecessary after a while. */ diff --git a/pkgs/by-name/sy/systemd/0006-hostnamed-localed-timedated-disable-methods-that-cha.patch b/pkgs/by-name/sy/systemd/0006-hostnamed-localed-timedated-disable-methods-that-cha.patch deleted file mode 100644 index b350e36..0000000 --- a/pkgs/by-name/sy/systemd/0006-hostnamed-localed-timedated-disable-methods-that-cha.patch +++ /dev/null @@ -1,105 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Gabriel Ebner -Date: Sun, 6 Dec 2015 14:26:36 +0100 -Subject: [PATCH] hostnamed, localed, timedated: disable methods that change - system settings. - ---- - src/hostname/hostnamed.c | 6 ++++++ - src/locale/localed.c | 9 +++++++++ - src/timedate/timedated.c | 10 ++++++++++ - 3 files changed, 25 insertions(+) - -diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c -index e1d53f2395..a224e6dadc 100644 ---- a/src/hostname/hostnamed.c -+++ b/src/hostname/hostnamed.c -@@ -1053,6 +1053,9 @@ static int method_set_static_hostname(sd_bus_message *m, void *userdata, sd_bus_ - if (r < 0) - return r; - -+ return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, -+ "Changing system settings via systemd is not supported on NixOS."); -+ - name = empty_to_null(name); - - context_read_etc_hostname(c); -@@ -1116,6 +1119,9 @@ static int set_machine_info(Context *c, sd_bus_message *m, int prop, sd_bus_mess - if (r < 0) - return r; - -+ return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, -+ "Changing system settings via systemd is not supported on NixOS."); -+ - name = empty_to_null(name); - - context_read_machine_info(c); -diff --git a/src/locale/localed.c b/src/locale/localed.c -index 5d96237fae..9af35cd29c 100644 ---- a/src/locale/localed.c -+++ b/src/locale/localed.c -@@ -229,6 +229,9 @@ static int method_set_locale(sd_bus_message *m, void *userdata, sd_bus_error *er - - use_localegen = locale_gen_check_available(); - -+ return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, -+ "Changing system settings via systemd is not supported on NixOS."); -+ - /* If single locale without variable name is provided, then we assume it is LANG=. */ - if (strv_length(l) == 1 && !strchr(l[0], '=')) { - if (!locale_is_valid(l[0])) -@@ -347,6 +350,9 @@ static int method_set_vc_keyboard(sd_bus_message *m, void *userdata, sd_bus_erro - if (r < 0) - return bus_log_parse_error(r); - -+ return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, -+ "Changing system settings via systemd is not supported on NixOS."); -+ - vc_context_empty_to_null(&in); - - r = vc_context_verify_and_warn(&in, LOG_ERR, error); -@@ -465,6 +471,9 @@ static int method_set_x11_keyboard(sd_bus_message *m, void *userdata, sd_bus_err - if (r < 0) - return bus_log_parse_error(r); - -+ return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, -+ "Changing system settings via systemd is not supported on NixOS."); -+ - x11_context_empty_to_null(&in); - - r = x11_context_verify_and_warn(&in, LOG_ERR, error); -diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c -index c7be30f563..50f8aa8675 100644 ---- a/src/timedate/timedated.c -+++ b/src/timedate/timedated.c -@@ -659,6 +659,10 @@ static int method_set_timezone(sd_bus_message *m, void *userdata, sd_bus_error * - if (r < 0) - return r; - -+ if (getenv("NIXOS_STATIC_TIMEZONE")) -+ return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, -+ "Changing timezone via systemd is not supported when it is set in NixOS configuration."); -+ - if (!timezone_is_valid(z, LOG_DEBUG)) - return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid or not installed time zone '%s'", z); - -@@ -737,6 +741,9 @@ static int method_set_local_rtc(sd_bus_message *m, void *userdata, sd_bus_error - if (r < 0) - return r; - -+ return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, -+ "Changing system settings via systemd is not supported on NixOS."); -+ - if (lrtc == c->local_rtc && !fix_system) - return sd_bus_reply_method_return(m, NULL); - -@@ -917,6 +924,9 @@ static int method_set_ntp(sd_bus_message *m, void *userdata, sd_bus_error *error - if (r < 0) - return r; - -+ return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, -+ "Changing system settings via systemd is not supported on NixOS."); -+ - r = context_update_ntp_status(c, bus, m); - if (r < 0) - return r; diff --git a/pkgs/by-name/sy/systemd/0007-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch b/pkgs/by-name/sy/systemd/0007-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch deleted file mode 100644 index 3017867..0000000 --- a/pkgs/by-name/sy/systemd/0007-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch +++ /dev/null @@ -1,138 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Nikolay Amiantov -Date: Tue, 11 Oct 2016 13:12:08 +0300 -Subject: [PATCH] Change /usr/share/zoneinfo to /etc/zoneinfo - -NixOS uses this path. ---- - man/localtime.xml | 4 ++-- - src/basic/time-util.c | 8 ++++---- - src/firstboot/firstboot.c | 2 +- - src/nspawn/nspawn.c | 4 ++-- - src/timedate/timedated.c | 8 ++++---- - 5 files changed, 13 insertions(+), 13 deletions(-) - -diff --git a/man/localtime.xml b/man/localtime.xml -index e486474c44..5f373d0723 100644 ---- a/man/localtime.xml -+++ b/man/localtime.xml -@@ -20,7 +20,7 @@ - - - -- /etc/localtime -> ../usr/share/zoneinfo/… -+ /etc/localtime -> zoneinfo/… - - - -@@ -30,7 +30,7 @@ - system-wide timezone of the local system that is used by - applications for presentation to the user. It should be an - absolute or relative symbolic link pointing to -- /usr/share/zoneinfo/, followed by a timezone -+ /etc/zoneinfo/, followed by a timezone - identifier such as Europe/Berlin or - Etc/UTC. The resulting link should lead to the - corresponding binary -diff --git a/src/basic/time-util.c b/src/basic/time-util.c -index f9014dc560..3ee0363369 100644 ---- a/src/basic/time-util.c -+++ b/src/basic/time-util.c -@@ -1412,7 +1412,7 @@ static int get_timezones_from_zone1970_tab(char ***ret) { - - assert(ret); - -- f = fopen("/usr/share/zoneinfo/zone1970.tab", "re"); -+ f = fopen("/etc/zoneinfo/zone1970.tab", "re"); - if (!f) - return -errno; - -@@ -1453,7 +1453,7 @@ static int get_timezones_from_tzdata_zi(char ***ret) { - - assert(ret); - -- f = fopen("/usr/share/zoneinfo/tzdata.zi", "re"); -+ f = fopen("/etc/zoneinfo/tzdata.zi", "re"); - if (!f) - return -errno; - -@@ -1565,7 +1565,7 @@ int verify_timezone(const char *name, int log_level) { - if (p - name >= PATH_MAX) - return -ENAMETOOLONG; - -- t = strjoina("/usr/share/zoneinfo/", name); -+ t = strjoina("/etc/zoneinfo/", name); - - fd = open(t, O_RDONLY|O_CLOEXEC); - if (fd < 0) -@@ -1625,7 +1625,7 @@ int get_timezone(char **ret) { - if (r < 0) - return r; /* returns EINVAL if not a symlink */ - -- e = PATH_STARTSWITH_SET(t, "/usr/share/zoneinfo/", "../usr/share/zoneinfo/"); -+ e = PATH_STARTSWITH_SET(t, "/etc/zoneinfo/", "../etc/zoneinfo/"); - if (!e) - return -EINVAL; - -diff --git a/src/firstboot/firstboot.c b/src/firstboot/firstboot.c -index f77a5f6266..63bac85b29 100644 ---- a/src/firstboot/firstboot.c -+++ b/src/firstboot/firstboot.c -@@ -632,7 +632,7 @@ static int process_timezone(int rfd) { - if (isempty(arg_timezone)) - return 0; - -- e = strjoina("../usr/share/zoneinfo/", arg_timezone); -+ e = strjoina("zoneinfo/", arg_timezone); - - r = symlinkat_atomic_full(e, pfd, f, /* make_relative= */ false); - if (r < 0) -diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c -index e48ebe8342..41796f3358 100644 ---- a/src/nspawn/nspawn.c -+++ b/src/nspawn/nspawn.c -@@ -1845,8 +1845,8 @@ int userns_mkdir(const char *root, const char *path, mode_t mode, uid_t uid, gid - static const char *timezone_from_path(const char *path) { - return PATH_STARTSWITH_SET( - path, -- "../usr/share/zoneinfo/", -- "/usr/share/zoneinfo/"); -+ "../etc/zoneinfo/", -+ "/etc/zoneinfo/"); - } - - static bool etc_writable(void) { -diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c -index 50f8aa8675..aff156ab42 100644 ---- a/src/timedate/timedated.c -+++ b/src/timedate/timedated.c -@@ -276,7 +276,7 @@ static int context_read_data(Context *c) { - - r = get_timezone(&t); - if (r == -EINVAL) -- log_warning_errno(r, "/etc/localtime should be a symbolic link to a time zone data file in /usr/share/zoneinfo/."); -+ log_warning_errno(r, "/etc/localtime should be a symbolic link to a time zone data file in /etc/zoneinfo/."); - else if (r < 0) - log_warning_errno(r, "Failed to get target of /etc/localtime: %m"); - -@@ -300,7 +300,7 @@ static int context_write_data_timezone(Context *c) { - - if (isempty(c->zone) || streq(c->zone, "UTC")) { - -- if (access("/usr/share/zoneinfo/UTC", F_OK) < 0) { -+ if (access("/etc/zoneinfo/UTC", F_OK) < 0) { - - if (unlink("/etc/localtime") < 0 && errno != ENOENT) - return -errno; -@@ -308,9 +308,9 @@ static int context_write_data_timezone(Context *c) { - return 0; - } - -- source = "../usr/share/zoneinfo/UTC"; -+ source = "../etc/zoneinfo/UTC"; - } else { -- p = path_join("../usr/share/zoneinfo", c->zone); -+ p = path_join("../etc/zoneinfo", c->zone); - if (!p) - return -ENOMEM; - diff --git a/pkgs/by-name/sy/systemd/0008-localectl-use-etc-X11-xkb-for-list-x11.patch b/pkgs/by-name/sy/systemd/0008-localectl-use-etc-X11-xkb-for-list-x11.patch deleted file mode 100644 index fe0dca1..0000000 --- a/pkgs/by-name/sy/systemd/0008-localectl-use-etc-X11-xkb-for-list-x11.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Imuli -Date: Wed, 19 Oct 2016 08:46:47 -0400 -Subject: [PATCH] localectl: use /etc/X11/xkb for list-x11-* - -NixOS has an option to link the xkb data files to /etc/X11, but not to -/usr/share/X11. ---- - src/locale/localectl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/locale/localectl.c b/src/locale/localectl.c -index 32354027f1..1d231f1afc 100644 ---- a/src/locale/localectl.c -+++ b/src/locale/localectl.c -@@ -297,7 +297,7 @@ static int list_x11_keymaps(int argc, char **argv, void *userdata) { - } state = NONE, look_for; - int r; - -- f = fopen("/usr/share/X11/xkb/rules/base.lst", "re"); -+ f = fopen("/etc/X11/xkb/rules/base.lst", "re"); - if (!f) - return log_error_errno(errno, "Failed to open keyboard mapping list. %m"); - diff --git a/pkgs/by-name/sy/systemd/0009-add-rootprefix-to-lookup-dir-paths.patch b/pkgs/by-name/sy/systemd/0009-add-rootprefix-to-lookup-dir-paths.patch deleted file mode 100644 index 15fe403..0000000 --- a/pkgs/by-name/sy/systemd/0009-add-rootprefix-to-lookup-dir-paths.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Andreas Rammhold -Date: Thu, 9 May 2019 11:15:22 +0200 -Subject: [PATCH] add rootprefix to lookup dir paths - -systemd does not longer use the UDEVLIBEXEC directory as root for -discovery default udev rules. By adding `$out/lib` to the lookup paths -we should again be able to discover the udev rules amongst other default -files that I might have missed. ---- - src/basic/constants.h | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/src/basic/constants.h b/src/basic/constants.h -index 6bb5f3c281..678d13737d 100644 ---- a/src/basic/constants.h -+++ b/src/basic/constants.h -@@ -65,13 +65,15 @@ - "/etc/" n "\0" \ - "/run/" n "\0" \ - "/usr/local/lib/" n "\0" \ -- "/usr/lib/" n "\0" -+ "/usr/lib/" n "\0" \ -+ PREFIX "/lib/" n "\0" - - #define CONF_PATHS_USR(n) \ - "/etc/" n, \ - "/run/" n, \ - "/usr/local/lib/" n, \ -- "/usr/lib/" n -+ "/usr/lib/" n, \ -+ PREFIX "/lib/" n - - #define CONF_PATHS(n) \ - CONF_PATHS_USR(n) diff --git a/pkgs/by-name/sy/systemd/0010-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch b/pkgs/by-name/sy/systemd/0010-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch deleted file mode 100644 index 6f0b81a..0000000 --- a/pkgs/by-name/sy/systemd/0010-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Nikolay Amiantov -Date: Thu, 25 Jul 2019 20:45:55 +0300 -Subject: [PATCH] systemd-shutdown: execute scripts in - /etc/systemd/system-shutdown - -This is needed for NixOS to use such scripts as systemd directory is immutable. ---- - src/shutdown/shutdown.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/shutdown/shutdown.c b/src/shutdown/shutdown.c -index b976b7d8cf..b1c02df6fd 100644 ---- a/src/shutdown/shutdown.c -+++ b/src/shutdown/shutdown.c -@@ -336,6 +336,7 @@ static void init_watchdog(void) { - int main(int argc, char *argv[]) { - static const char* const dirs[] = { - SYSTEM_SHUTDOWN_PATH, -+ "/etc/systemd/system-shutdown", - NULL - }; - _cleanup_free_ char *cgroup = NULL; diff --git a/pkgs/by-name/sy/systemd/0011-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch b/pkgs/by-name/sy/systemd/0011-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch deleted file mode 100644 index a5ed574..0000000 --- a/pkgs/by-name/sy/systemd/0011-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Nikolay Amiantov -Date: Thu, 25 Jul 2019 20:46:58 +0300 -Subject: [PATCH] systemd-sleep: execute scripts in /etc/systemd/system-sleep - -This is needed for NixOS to use such scripts as systemd directory is immutable. ---- - src/sleep/sleep.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c -index 21af3e9e52..6d096e3c78 100644 ---- a/src/sleep/sleep.c -+++ b/src/sleep/sleep.c -@@ -215,6 +215,7 @@ static int execute( - }; - static const char* const dirs[] = { - SYSTEM_SLEEP_PATH, -+ "/etc/systemd/system-sleep", - NULL - }; - diff --git a/pkgs/by-name/sy/systemd/0012-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch b/pkgs/by-name/sy/systemd/0012-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch deleted file mode 100644 index 55e5562..0000000 --- a/pkgs/by-name/sy/systemd/0012-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Florian Klink -Date: Sun, 8 Mar 2020 01:05:54 +0100 -Subject: [PATCH] path-util.h: add placeholder for DEFAULT_PATH_NORMAL - -This will be the $PATH used to lookup ExecStart= etc. options, which -systemd itself uses extensively. ---- - src/basic/path-util.h | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/basic/path-util.h b/src/basic/path-util.h -index 6d943e967f..d4380aa7e3 100644 ---- a/src/basic/path-util.h -+++ b/src/basic/path-util.h -@@ -25,9 +25,9 @@ - # define PATH_SBIN_BIN_NULSTR(x) PATH_NORMAL_SBIN_BIN_NULSTR(x) - #endif - --#define DEFAULT_PATH PATH_SBIN_BIN("/usr/local/") ":" PATH_SBIN_BIN("/usr/") --#define DEFAULT_PATH_NULSTR PATH_SBIN_BIN_NULSTR("/usr/local/") PATH_SBIN_BIN_NULSTR("/usr/") --#define DEFAULT_PATH_COMPAT PATH_SPLIT_SBIN_BIN("/usr/local/") ":" PATH_SPLIT_SBIN_BIN("/usr/") ":" PATH_SPLIT_SBIN_BIN("/") -+#define DEFAULT_PATH "@defaultPathNormal@" -+#define DEFAULT_PATH_NULSTR "@defaultPathNormal@\0" -+#define DEFAULT_PATH_COMPAT DEFAULT_PATH - - #ifndef DEFAULT_USER_PATH - # define DEFAULT_USER_PATH DEFAULT_PATH diff --git a/pkgs/by-name/sy/systemd/0013-inherit-systemd-environment-when-calling-generators.patch b/pkgs/by-name/sy/systemd/0013-inherit-systemd-environment-when-calling-generators.patch deleted file mode 100644 index 8bccf55..0000000 --- a/pkgs/by-name/sy/systemd/0013-inherit-systemd-environment-when-calling-generators.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Yuriy Taraday -Date: Fri, 17 Jun 2022 12:45:10 +0000 -Subject: [PATCH] inherit systemd environment when calling generators. - -Systemd generators need access to the environment configured in -stage-2-init.sh since it schedules fsck and mkfs executions based on -being able to find an appropriate binary for the target filesystem. - -With this commit I am altering the systemd behaviour since upstream -tries to gather environments with that they call -"environment-generators" and then seems to pass that on to all the other -executables that are being called from managers. ---- - src/core/manager.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/src/core/manager.c b/src/core/manager.c -index 22cc5cc843..5dc7d4504f 100644 ---- a/src/core/manager.c -+++ b/src/core/manager.c -@@ -3914,9 +3914,17 @@ static int build_generator_environment(Manager *m, char ***ret) { - * adjust generated units to that. Let's pass down some bits of information that are easy for us to - * determine (but a bit harder for generator scripts to determine), as environment variables. */ - -+ // On NixOS we must propagate PATH to generators so they are -+ // able to find binaries such as `fsck.${fstype}` and -+ // `mkfs.${fstype}`. That is why we ignore transient_environment that -+ // overrides the PATH variable. This propagates systemd's -+ // environment (e.g. PATH) that was setup -+ // before calling systemd from stage-2-init.sh. -+#if 0 - nl = strv_copy(m->transient_environment); - if (!nl) - return -ENOMEM; -+#endif - - r = strv_env_assign(&nl, "SYSTEMD_SCOPE", runtime_scope_to_string(m->runtime_scope)); - if (r < 0) diff --git a/pkgs/by-name/sy/systemd/0014-core-don-t-taint-on-unmerged-usr.patch b/pkgs/by-name/sy/systemd/0014-core-don-t-taint-on-unmerged-usr.patch deleted file mode 100644 index 8b86291..0000000 --- a/pkgs/by-name/sy/systemd/0014-core-don-t-taint-on-unmerged-usr.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: oxalica -Date: Tue, 4 Oct 2022 09:18:07 +0800 -Subject: [PATCH] core: don't taint on unmerged /usr - -NixOS has very different approach towards /bin and /sbin - they don't -really exist (except for /bin/sh and /usr/bin/env, because these are used -heavily in shebangs around the world). The concept of merged or unmerged -usr doesn't really apply here at all, it's neither of the two. -Users don't execute things from /bin or /sbin, there's nothing else in -there. In all cases, systemd doesn't look things up from /usr/bin or /bin, -so showing the taint isn't really helpful. - -See also: https://github.com/systemd/systemd/issues/24191 ---- - src/core/manager.c | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/src/core/manager.c b/src/core/manager.c -index 5dc7d4504f..6208c9aa31 100644 ---- a/src/core/manager.c -+++ b/src/core/manager.c -@@ -4800,9 +4800,6 @@ char* manager_taint_string(const Manager *m) { - const char* stage[12] = {}; - size_t n = 0; - -- _cleanup_free_ char *usrbin = NULL; -- if (readlink_malloc("/bin", &usrbin) < 0 || !PATH_IN_SET(usrbin, "usr/bin", "/usr/bin")) -- stage[n++] = "unmerged-usr"; - - if (access("/proc/cgroups", F_OK) < 0) - stage[n++] = "cgroups-missing"; diff --git a/pkgs/by-name/sy/systemd/0015-tpm2_context_init-fix-driver-name-checking.patch b/pkgs/by-name/sy/systemd/0015-tpm2_context_init-fix-driver-name-checking.patch deleted file mode 100644 index 768f57e..0000000 --- a/pkgs/by-name/sy/systemd/0015-tpm2_context_init-fix-driver-name-checking.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Nick Cao -Date: Sun, 15 Jan 2023 20:15:55 +0800 -Subject: [PATCH] tpm2_context_init: fix driver name checking - -https://github.com/systemd/systemd/commit/542dbc623e introduced -additional checks for tpm2 driver names, namely ensuring the driver -name, when concated with "libtss2-tcti-" and ".so.0", generates a valid -filename (with no '/' inside). - -For example, if the driver is name "device", the line - fn = strjoina("libtss2-tcti-", driver, ".so.0") -would yield "libtss2-tcti-device.so.0", passing the check. And the -filename is then passed to dlopen for loading the driver. - -Our current approach for systemd to correctly locate these dynamically -loaded libraries is to patch the filenames to include their absolute -path. Thus the line mentioned above is patched into - fn = strjoina("/nix/store/xxxxxxx-tpm2-tss-3.2.0/lib/libtss2-tcti-", driver, ".so.0") -yielding "/nix/store/xxxxxxx-tpm2-tss-3.2.0/lib/libtss2-tcti-device.so.0", -tripping the check. - -This patch relaxes the check to also accept absolute paths, by replacing -filename_is_valid with path_is_valid. ---- - src/shared/tpm2-util.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/shared/tpm2-util.c b/src/shared/tpm2-util.c -index 5e07b88a89..8dd7315009 100644 ---- a/src/shared/tpm2-util.c -+++ b/src/shared/tpm2-util.c -@@ -654,7 +654,7 @@ int tpm2_context_new(const char *device, Tpm2Context **ret_context) { - fn = strjoina("libtss2-tcti-", driver, ".so.0"); - - /* Better safe than sorry, let's refuse strings that cannot possibly be valid driver early, before going to disk. */ -- if (!filename_is_valid(fn)) -+ if (!path_is_valid(fn)) - return log_debug_errno(SYNTHETIC_ERRNO(EINVAL), "TPM2 driver name '%s' not valid, refusing.", driver); - - context->tcti_dl = dlopen(fn, RTLD_NOW); diff --git a/pkgs/by-name/sy/systemd/0016-systemctl-edit-suggest-systemdctl-edit-runtime-on-sy.patch b/pkgs/by-name/sy/systemd/0016-systemctl-edit-suggest-systemdctl-edit-runtime-on-sy.patch deleted file mode 100644 index 96cd420..0000000 --- a/pkgs/by-name/sy/systemd/0016-systemctl-edit-suggest-systemdctl-edit-runtime-on-sy.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Maximilian Bosch -Date: Fri, 1 Sep 2023 09:57:02 +0200 -Subject: [PATCH] systemctl-edit: suggest `systemdctl edit --runtime` on system - scope - -This is a NixOS-specific change. When trying to modify a unit with -`systemctl edit` on NixOS, it'll fail with "Read-only file system": - - $ systemctl edit libvirtd - Failed to open "/etc/systemd/system/libvirtd.service.d/.#override.conffa9825a0c9a249eb": Read-only file system - -This is because `/etc/systemd/system` is a symlink into the store. In -fact, I'd consider this a feature rather than a bug since this ensures I -don't introduce state imperatively. - -However, people wrongly assume that it's not possible to edit units -ad-hoc and re-deploy their system for quick&dirty debugging where this -would be absolutely fine (and doable with `--runtime` which adds a -transient and non-persistent unit override in `/run`). - -To make sure that people learn about it quicker, this patch -throws an error which suggests using `--runtime` when running -`systemctl edit` on the system scope. - -For the user scope this isn't needed because user-level unit overrides -are written into `$XDG_CONFIG_HOME/systemd/user`. ---- - src/systemctl/systemctl-edit.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/systemctl/systemctl-edit.c b/src/systemctl/systemctl-edit.c -index 367afa20f7..5777154d01 100644 ---- a/src/systemctl/systemctl-edit.c -+++ b/src/systemctl/systemctl-edit.c -@@ -322,6 +322,9 @@ int verb_edit(int argc, char *argv[], void *userdata) { - sd_bus *bus; - int r; - -+ if (!arg_runtime && arg_runtime_scope == RUNTIME_SCOPE_SYSTEM) -+ return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "The unit-directory '/etc/systemd/system' is read-only on NixOS, so it's not possible to edit system-units directly. Use 'systemctl edit --runtime' instead."); -+ - if (!on_tty()) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Cannot edit units if not on a tty."); - diff --git a/pkgs/by-name/sy/systemd/0017-meson.build-do-not-create-systemdstatedir.patch b/pkgs/by-name/sy/systemd/0017-meson.build-do-not-create-systemdstatedir.patch deleted file mode 100644 index fd38aa9..0000000 --- a/pkgs/by-name/sy/systemd/0017-meson.build-do-not-create-systemdstatedir.patch +++ /dev/null @@ -1,21 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: nikstur -Date: Mon, 6 Nov 2023 22:51:38 +0100 -Subject: [PATCH] meson.build: do not create systemdstatedir - ---- - meson.build | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/meson.build b/meson.build -index 7419e2b0b0..c82a527976 100644 ---- a/meson.build -+++ b/meson.build -@@ -2497,7 +2497,6 @@ install_data('LICENSE.GPL2', - install_subdir('LICENSES', - install_dir : docdir) - --install_emptydir(systemdstatedir) - - ############################################################ - diff --git a/pkgs/by-name/sy/systemd/0018-timesyncd-disable-NSCD-when-DNSSEC-validation-is-dis.patch b/pkgs/by-name/sy/systemd/0018-timesyncd-disable-NSCD-when-DNSSEC-validation-is-dis.patch deleted file mode 100644 index 68ae226..0000000 --- a/pkgs/by-name/sy/systemd/0018-timesyncd-disable-NSCD-when-DNSSEC-validation-is-dis.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 7a27556920fe1feefd17096841c8f3ca1294a1b3 Mon Sep 17 00:00:00 2001 -From: Yuri Nesterov -Date: Wed, 21 Jun 2023 17:17:38 +0300 -Subject: [PATCH] timesyncd: disable NSCD when DNSSEC validation is disabled - -Systemd-timesyncd sets SYSTEMD_NSS_RESOLVE_VALIDATE=0 in the unit file -to disable DNSSEC validation but it doesn't work when NSCD is used in -the system. This patch disabes NSCD in systemd-timesyncd when -SYSTEMD_NSS_RESOLVE_VALIDATE is set to 0 so that it uses NSS libraries -directly. ---- - src/timesync/timesyncd.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/src/timesync/timesyncd.c b/src/timesync/timesyncd.c -index 1d8ebecc91..2b0ae361ff 100644 ---- a/src/timesync/timesyncd.c -+++ b/src/timesync/timesyncd.c -@@ -21,6 +21,11 @@ - #include "timesyncd-conf.h" - #include "timesyncd-manager.h" - #include "user-util.h" -+#include "env-util.h" -+ -+struct traced_file; -+extern void __nss_disable_nscd(void (*)(size_t, struct traced_file *)); -+static void register_traced_file(size_t dbidx, struct traced_file *finfo) {} - - static int advance_tstamp(int fd, const struct stat *st) { - assert_se(fd >= 0); -@@ -198,6 +203,12 @@ static int run(int argc, char *argv[]) { - if (r < 0) - return log_error_errno(r, "Failed to parse fallback server strings: %m"); - -+ r = getenv_bool_secure("SYSTEMD_NSS_RESOLVE_VALIDATE"); -+ if (r == 0) { -+ log_info("Disabling NSCD because DNSSEC validation is turned off"); -+ __nss_disable_nscd(register_traced_file); -+ } -+ - log_debug("systemd-timesyncd running as pid " PID_FMT, getpid_cached()); - - notify_message = notify_start("READY=1\n" --- -2.34.1 - diff --git a/pkgs/by-name/sy/systemd/default.nix b/pkgs/by-name/sy/systemd/default.nix deleted file mode 100644 index 9cdc5dc..0000000 --- a/pkgs/by-name/sy/systemd/default.nix +++ /dev/null @@ -1,932 +0,0 @@ -# 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 - - # glib is only used during tests (test-bus-gvariant, test-bus-marshal) -, glib -, gettext -, python3Packages - - # Mandatory dependencies -, 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 - - # the (optional) BPF feature requires bpftool, libbpf, clang and llvm-strip to - # be available during build time. - # Only libbpf should be a runtime dependency. - # Note: llvmPackages is explicitly taken from buildPackages instead of relying - # on splicing. Splicing will evaluate the adjacent (pkgsHostTarget) llvmPackages - # which is sometimes problematic: llvmPackages.clang looks at targetPackages.stdenv.cc - # which, in the unfortunate case of pkgsCross.ghcjs, `throw`s. If we - # explicitly take buildPackages.llvmPackages, this is no problem because - # `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 - - # Needed to produce a ukify that works for cross compiling UKIs. -, targetPackages - -, withAcl ? true -, withAnalyze ? true -, withApparmor ? true -, withAudit ? true - # compiles systemd-boot, assumes EFI is available. -, withBootloader ? withEfi - && !stdenv.hostPlatform.isMusl - # "Unknown 64-bit data model" - && !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 - # 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" - # assumes hard floats - && (stdenv.hostPlatform.isAarch -> lib.versionAtLeast stdenv.hostPlatform.parsed.cpu.version "6") - # see https://github.com/NixOS/nixpkgs/pull/194149#issuecomment-1266642211 - && !stdenv.hostPlatform.isMips64 - # can't find gnu/stubs-32.h - && (stdenv.hostPlatform.isPower64 -> stdenv.hostPlatform.isBigEndian) - # https://reviews.llvm.org/D43106#1019077 - && (stdenv.hostPlatform.isRiscV32 -> stdenv.cc.isClang) - # 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 - # adds python to closure which is too much by default -, 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 - # tests assume too much system access for them to be feasible for us right now -, withTests ? false - # build only libudev and libsystemd -, buildLibsOnly ? false - - # yes, pname is an argument here -, pname ? "systemd" - -, libxslt -, docbook_xsl -, docbook_xml_dtd_42 -, docbook_xml_dtd_45 -, withLogTrace ? false -}: - -assert withImportd -> withCompression; -assert withCoredump -> withCompression; -assert withHomed -> withCryptsetup; -assert withHomed -> withPam; -assert withUkify -> (withEfi && withBootloader); -assert withRepart -> withCryptsetup; -assert withBootloader -> withEfi; - -let - wantCurl = withRemote || withImportd; - wantGcrypt = withResolved || withImportd; - version = "255.4"; - - # Use the command below to update `releaseTimestamp` on every (major) version - # change. More details in the commentary at mesonFlags. - # command: - # $ curl -s https://api.github.com/repos/systemd/systemd/releases/latest | \ - # jq '.created_at|strptime("%Y-%m-%dT%H:%M:%SZ")|mktime' - releaseTimestamp = "1701895110"; -in -stdenv.mkDerivation (finalAttrs: { - inherit pname version; - - # We use systemd/systemd-stable for src, and ship NixOS-specific patches inside nixpkgs directly - # This has proven to be less error-prone than the previous systemd fork. - src = fetchFromGitHub { - owner = "systemd"; - repo = "systemd-stable"; - rev = "v${version}"; - hash = "sha256-P1mKq+ythrv8MU7y2CuNtEx6qCDacugzfsPRZL+NPys="; - }; - - # On major changes, or when otherwise required, you *must* : - # 1. reformat the patches, - # 2. `git am path/to/00*.patch` them into a systemd worktree, - # 3. rebase to the more recent systemd version, - # 4. and export the patches again via - # `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 - [ - (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") - ] - ); - - 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; } - - # We did never provide support for libxkbcommon - { name = "libxkbcommon.so.0"; pkg = null; } - - # qrencode - { name = "libqrencode.so.4"; pkg = opt withQrencode qrencode; } - { name = "libqrencode.so.3"; 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; } - - # 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; } - - # 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; } - - # journalctl --grep requires libpcre so let's provide it - { name = "libpcre2-8.so.0"; pkg = pcre2; } - - # 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; } - - # inspect-elf support - { name = "libelf.so.1"; pkg = opt withCoredump elfutils; } - { name = "libdw.so.1"; pkg = opt withCoredump elfutils; } - - # Support for PKCS#11 in systemd-cryptsetup, systemd-cryptenroll and systemd-homed - { name = "libp11-kit.so.0"; pkg = opt (withHomed || withCryptsetup) p11-kit; } - - { name = "libip4tc.so.2"; pkg = opt withIptables iptables; } - ]; - - 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 - - ''; - 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 - "trivialautovarinit" - ]; - - nativeBuildInputs = - [ - pkg-config - makeBinaryWrapper - gperf - ninja - meson - glibcLocales - getent - m4 - - intltool - gettext - - libxslt - docbook_xsl - docbook_xml_dtd_42 - docbook_xml_dtd_45 - bash - (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 = - [ - libxcrypt - libcap - libuuid - linuxHeaders - bashInteractive # for patch shebangs - ] - - ++ 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.optional withCoredump elfutils - ++ lib.optional withCryptsetup (lib.getDev cryptsetup.dev) - ++ lib.optional withKexectools kexec-tools - ++ lib.optional withKmod kmod - ++ lib.optional withLibidn2 libidn2 - ++ lib.optional withLibseccomp libseccomp - ++ lib.optional withIptables iptables - ++ lib.optional withPam pam - ++ lib.optional withPCRE2 pcre2 - ++ lib.optional withSelinux libselinux - ++ 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 ] - ; - - mesonBuildType = "release"; - - 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) - - (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") - - # 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") - - # 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") - - # 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") - - # Mount - (lib.mesonOption "mount-path" "${lib.getOutput "mount" util-linux}/bin/mount") - (lib.mesonOption "umount-path" "${lib.getOutput "mount" util-linux}/bin/umount") - - - # Features - - # 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) - - # 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)) - - # FIDO2 - (lib.mesonEnable "libfido2" withFido2) - (lib.mesonEnable "openssl" withFido2) - - # Password Quality - (lib.mesonEnable "pwquality" withPasswordQuality) - (lib.mesonEnable "passwdqc" false) - - # 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.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) - ]; - preConfigure = - let - # A list of all the runtime binaries referenced by the source code (plus - # scripts and unit files) of systemd executables, tests and libraries. - # As soon as a dependency is lo longer required we should remove it from - # the list. - # 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" ]; - } - ]; - - # { replacement, search, where, ignore } -> List[str] - mkSubstitute = { replacement, search, where, ignore ? [ ] }: - map (path: "substituteInPlace ${path} --replace '${search}' \"${replacement}\"") where; - mkEnsureSubstituted = { replacement, search, where, ignore ? [ ] }: - let - ignore' = lib.concatStringsSep "|" (ignore ++ [ "^test" "NEWS" ]); - in - '' - set +e - search=$(grep '${search}' -r | grep -v "${replacement}" | grep -Ev "${ignore'}") - set -e - if [[ -n "$search" ]]; then - echo "Not all references to '${search}' have been replaced. Found the following matches:" - echo "$search" - exit 1 - fi - ''; - in - '' - mesonFlagsArray+=(-Dntp-servers="0.nixos.pool.ntp.org 1.nixos.pool.ntp.org 2.nixos.pool.ntp.org 3.nixos.pool.ntp.org") - export LC_ALL="en_US.UTF-8"; - - ${lib.concatStringsSep "\n" (lib.flatten (map mkSubstitute binaryReplacements))} - ${lib.concatMapStringsSep "\n" mkEnsureSubstituted binaryReplacements} - - substituteInPlace src/libsystemd/sd-journal/catalog.c \ - --replace /usr/lib/systemd/catalog/ $out/lib/systemd/catalog/ - - substituteInPlace src/import/pull-tar.c \ - --replace 'wait_for_terminate_and_check("tar"' 'wait_for_terminate_and_check("${gnutar}/bin/tar"' - ''; - - # These defines are overridden by CFLAGS and would trigger annoying - # warning messages - postConfigure = '' - substituteInPlace config.h \ - --replace "POLKIT_AGENT_BINARY_PATH" "_POLKIT_AGENT_BINARY_PATH" \ - --replace "SYSTEMD_BINARY_PATH" "_SYSTEMD_BINARY_PATH" \ - --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\"" - - # 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\"" - - ] ++ lib.optionals stdenv.hostPlatform.isMusl [ - "-D__UAPI_DEF_ETHHDR=0" - ]); - - doCheck = false; # fails a bunch of tests - - # trigger the test -n "$DESTDIR" || mutate in upstreams build system - preInstall = '' - export DESTDIR=/ - ''; - - 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 - - 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 - - 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: - # https://github.com/NixOS/nixpkgs/issues/169693 - # The hack is to move EFI file out of lib/ before doStrip run and return it - # after doStrip run. - preFixup = lib.optionalString withBootloader '' - mv $out/lib/systemd/boot/efi $out/dont-strip-me - ''; - - # 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 - ''; - - 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 - # between systemd versions. When the new systemd build is - # backwards-compatible with the previous one, then they can be switched at - # runtime (the reboot being optional in this case); otherwise, a reboot is - # 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; - - tests = { - inherit (nixosTests) - switchTest - systemd-journal - systemd-journal-gateway - systemd-journal-upload; - cross = - let - systemString = - if stdenv.buildPlatform.isAarch64 - then "gnu64" - else "aarch64-multiplatform"; - in - pkgsCross.${systemString}.systemd; - }; - }; - - meta = { - homepage = "https://www.freedesktop.org/wiki/Software/systemd/"; - description = "A system and service manager for Linux"; - longDescription = '' - systemd is a suite of basic building blocks for a Linux system. It - provides a system and service manager that runs as PID 1 and starts the - rest of the system. systemd provides aggressive parallelization - capabilities, uses socket and D-Bus activation for starting services, - offers on-demand starting of daemons, keeps track of processes using Linux - control groups, maintains mount and automount points, and implements an - elaborate transactional dependency-based service control logic. systemd - supports SysV and LSB init scripts and works as a replacement for - sysvinit. Other parts include a logging daemon, utilities to control basic - system configuration like the hostname, date, locale, maintain a list of - logged-in users and running containers and virtual machines, system - accounts, runtime directories and settings, and daemons to manage simple - network configuration, network time synchronization, log forwarding, and - name resolution. - ''; - license = with lib.licenses; [ - # Taken from https://raw.githubusercontent.com/systemd/systemd-stable/${finalAttrs.src.rev}/LICENSES/README.md - bsd2 - bsd3 - cc0 - lgpl21Plus - lgpl2Plus - mit - mit0 - ofl - publicDomain - ]; - maintainers = with lib.maintainers; [ flokli kloenk ]; - platforms = lib.platforms.linux; - priority = 10; - badPlatforms = [ lib.systems.inspect.platformPatterns.isStatic ]; - # https://github.com/systemd/systemd/issues/20600#issuecomment-912338965 - broken = stdenv.hostPlatform.isStatic; - }; -}) diff --git a/pkgs/by-name/sy/systemd/packages.nix b/pkgs/by-name/sy/systemd/packages.nix deleted file mode 100644 index a8fc6ca..0000000 --- a/pkgs/by-name/sy/systemd/packages.nix +++ /dev/null @@ -1,73 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - systemd = callPackage ./. { - # break some cyclic dependencies - util-linux = util-linuxMinimal; - # provide a super minimal gnupg used for systemd-machined - gnupg = gnupg.override { - enableMinimal = true; - guiSupport = false; - }; - }; - systemdMinimal = systemd.override { - pname = "systemd-minimal"; - withAcl = false; - withAnalyze = false; - withApparmor = false; - withAudit = false; - withCompression = false; - withCoredump = false; - withCryptsetup = false; - withRepart = false; - withDocumentation = false; - withEfi = false; - withFido2 = false; - withHostnamed = false; - withHomed = false; - withHwdb = false; - withImportd = false; - withIptables = false; - withLibBPF = false; - withLibidn2 = false; - withLocaled = false; - withLogind = false; - withMachined = false; - withNetworkd = false; - withNss = false; - withOomd = false; - withPCRE2 = false; - withPam = false; - withPolkit = false; - withPortabled = false; - withRemote = false; - withResolved = false; - withShellCompletions = false; - withSysupdate = false; - withSysusers = false; - withTimedated = false; - withTimesyncd = false; - withTpm2Tss = false; - withUserDb = false; - withUkify = false; - withBootloader = false; - withPasswordQuality = false; - withVmspawn = false; - withQrencode = false; - }; - systemdLibs = systemdMinimal.override { - pname = "systemd-minimal-libs"; - buildLibsOnly = true; - }; - # We do not want to include ukify in the normal systemd attribute as it - # relies on Python at runtime. - systemdUkify = systemd.override { - withUkify = true; - }; - - 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 deleted file mode 100644 index 6a1f5b5..0000000 --- a/pkgs/by-name/tc/tcb/default.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, pkg-config -, linux-pam, libxcrypt -}: - -stdenv.mkDerivation rec { - pname = "tcb"; - version = "1.2"; - - src = fetchFromGitHub { - owner = "openwall"; - repo = pname; - rev = "070cf4aa784de13c52788ac22ff611d7cbca0854"; - sha256 = "sha256-Sp5u7iTEZZnAqKQXoPO8eWpSkZeBzQqZI82wRQmgU9A="; - }; - - outputs = [ "out" "bin" "dev" "man" ]; - - nativeBuildInputs = [ pkg-config ]; - - buildInputs = [ linux-pam libxcrypt ]; - - patches = [ ./fix-makefiles.patch ]; - - postPatch = '' - substituteInPlace Make.defs \ - --replace "PREFIX = /usr" "PREFIX = $out" \ - --replace "SBINDIR = /sbin" "SBINDIR = $bin/bin" \ - --replace "INCLUDEDIR = \$(PREFIX)/include" "INCLUDEDIR = $dev/include" - - # Override default 'CC=gcc' - makeFlagsArray+=("CC=$CC") - ''; - - meta = with lib; { - description = "Alternative password shadowing scheme"; - longDescription = '' - The tcb package contains core components of our tcb suite implementing the alternative - password shadowing scheme on Openwall GNU Linux (Owl). It is being made available - separately from Owl primarily for use by other distributions. - - The package consists of three components: pam_tcb, libnss_tcb, and libtcb. - - pam_tcb is a PAM module which supersedes pam_unix. It also implements the tcb password - shadowing scheme. The tcb scheme allows many core system utilities (passwd(1) being - the primary example) to operate with little privilege. libnss_tcb is the accompanying - NSS module. libtcb contains code shared by the PAM and NSS modules and is also used - by user management tools on Owl due to our shadow suite patches. - ''; - homepage = "https://www.openwall.com/tcb/"; - license = licenses.bsd3; - platforms = systems.inspect.patterns.isGnu; - maintainers = with maintainers; [ izorkin ]; - }; -} diff --git a/pkgs/by-name/tc/tcb/fix-makefiles.patch b/pkgs/by-name/tc/tcb/fix-makefiles.patch deleted file mode 100644 index 9ea8260..0000000 --- a/pkgs/by-name/tc/tcb/fix-makefiles.patch +++ /dev/null @@ -1,52 +0,0 @@ -diff --git a/Make.defs b/Make.defs -index a961f7d..9e8d59b 100644 ---- a/Make.defs -+++ b/Make.defs -@@ -19,7 +19,7 @@ LDFLAGS += $(DBGFLAG) -L../libs - - PREFIX = /usr - SBINDIR = /sbin --SLIBDIR = /lib -+SLIBDIR = $(PREFIX)/lib - INCLUDEDIR = $(PREFIX)/include - LIBDIR = $(PREFIX)/lib - LIBEXECDIR = $(PREFIX)/libexec -diff --git a/libs/Makefile b/libs/Makefile -index 0083b13..27238f6 100644 ---- a/libs/Makefile -+++ b/libs/Makefile -@@ -7,7 +7,7 @@ LIBTCB_A = libtcb.a - LIB_MAP = libtcb.map - NSS_MAP = libnss_tcb.map - --all: $(LIBTCB_LONG) $(LIBNSS) $(LIBTCB_A) -+all: $(LIBTCB_LONG) $(LIBNSS) - - $(LIBTCB_A): libtcb_a.o - ar -cr $@ $< -@@ -36,9 +36,8 @@ install: - $(MKDIR) -p -m 755 $(DESTDIR)$(LIBDIR) - $(INSTALL) -m $(SHLIBMODE) $(LIBTCB_LONG) $(DESTDIR)$(SLIBDIR)/ - ln -sf $(LIBTCB_LONG) $(DESTDIR)$(SLIBDIR)/$(LIBTCB) -- ln -sf ../..$(SLIBDIR)/$(LIBTCB) $(DESTDIR)$(LIBDIR)/libtcb.so -+ ln -sf $(LIBTCB) $(DESTDIR)$(LIBDIR)/libtcb.so - $(INSTALL) -m $(SHLIBMODE) $(LIBNSS) $(DESTDIR)$(SLIBDIR)/ -- $(INSTALL) -m 644 $(LIBTCB_A) $(DESTDIR)$(LIBDIR)/ - - clean: - rm -f *.o *~ $(LIBTCB)* libtcb.so $(LIBNSS) *.a -diff --git a/progs/Makefile b/progs/Makefile -index c3a6879..e24f74b 100644 ---- a/progs/Makefile -+++ b/progs/Makefile -@@ -23,8 +23,8 @@ install-non-root: install-common - $(INSTALL) -m 700 $(CHKPWD) $(DESTDIR)$(LIBEXECDIR)/chkpwd/ - - install: install-common -- $(INSTALL) -d -o root -g chkpwd -m 710 $(DESTDIR)$(LIBEXECDIR)/chkpwd -- $(INSTALL) -m 2711 -o root -g shadow $(CHKPWD) \ -+ $(INSTALL) -d $(DESTDIR)$(LIBEXECDIR)/chkpwd -+ $(INSTALL) $(CHKPWD) \ - $(DESTDIR)$(LIBEXECDIR)/chkpwd/ - - install-common: diff --git a/pkgs/by-name/tc/tcl/8.5.nix b/pkgs/by-name/tc/tcl/8.5.nix deleted file mode 100644 index 7676fbf..0000000 --- a/pkgs/by-name/tc/tcl/8.5.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ callPackage, fetchurl, ... } @ args: - -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! - - 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 deleted file mode 100644 index 0edd47e..0000000 --- a/pkgs/by-name/tc/tcl/8.6.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ callPackage, fetchurl, ... } @ args: - -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! - - 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 deleted file mode 100644 index 5ee9671..0000000 --- a/pkgs/by-name/tc/tcl/generic.nix +++ /dev/null @@ -1,85 +0,0 @@ -{ lib, stdenv, callPackage, makeSetupHook, runCommand -, tzdata - -# Version specific stuff -, release, version, src -, ... -}: - -let - baseInterp = - stdenv.mkDerivation rec { - pname = "tcl"; - inherit version src; - - outputs = [ "out" "man" ]; - - 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" "" - ''; - - 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"; - - enableParallelBuilding = true; - - postInstall = let - dllExtension = stdenv.hostPlatform.extensions.sharedLibrary; - 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 ]; - }; - - 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 - ''; - }; - }; - - mkTclDerivation = callPackage ./mk-tcl-derivation.nix { tcl = baseInterp; }; - -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 deleted file mode 100644 index 57d60f0..0000000 --- a/pkgs/by-name/tc/tcl/mk-tcl-derivation.nix +++ /dev/null @@ -1,71 +0,0 @@ -# Generic builder for tcl packages/applications, generally based on mk-python-derivation.nix -{ tcl -, lib -, makeWrapper -, runCommand -, writeScript -}: - -{ buildInputs ? [] -, nativeBuildInputs ? [] -, propagatedBuildInputs ? [] -, checkInputs ? [] -, nativeCheckInputs ? [] - -# true if we should skip the configuration phase altogether -, dontConfigure ? false - -# Extra flags passed to configure step -, configureFlags ? [] - -# Whether or not we should add common Tcl-related configure flags -, addTclConfigureFlags ? true - -, meta ? {} -, passthru ? {} -, doCheck ? true -, ... } @ attrs: - -let - inherit (tcl) stdenv; - inherit (lib) getBin optionalAttrs; - - defaultTclPkgConfigureFlags = [ - "--with-tcl=${tcl}/lib" - "--with-tclinclude=${tcl}/include" - "--exec-prefix=${placeholder "out"}" - ]; - - self = (stdenv.mkDerivation ((builtins.removeAttrs attrs [ - "addTclConfigureFlags" "checkPhase" "checkInputs" "nativeCheckInputs" "doCheck" - ]) // { - - buildInputs = buildInputs ++ [ tcl.tclPackageHook ]; - nativeBuildInputs = nativeBuildInputs ++ [ makeWrapper tcl ]; - propagatedBuildInputs = propagatedBuildInputs ++ [ tcl ]; - - 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 []); - - # Add typical values expected by TEA for configureFlags - configureFlags = - if (!dontConfigure && addTclConfigureFlags) - then (configureFlags ++ defaultTclPkgConfigureFlags) - else configureFlags; - - meta = { - platforms = tcl.meta.platforms; - } // meta; - - - } // optionalAttrs (attrs?checkPhase) { - installCheckPhase = attrs.checkPhase; - } - )); - -in lib.extendDerivation true passthru self diff --git a/pkgs/by-name/tc/tcl/packages.nix b/pkgs/by-name/tc/tcl/packages.nix deleted file mode 100644 index 58598c7..0000000 --- a/pkgs/by-name/tc/tcl/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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/tc/tcl/tcl-package-hook.sh b/pkgs/by-name/tc/tcl/tcl-package-hook.sh deleted file mode 100644 index 8548ac6..0000000 --- a/pkgs/by-name/tc/tcl/tcl-package-hook.sh +++ /dev/null @@ -1,80 +0,0 @@ -# This hook ensures that we do the following in post-fixup: -# * wrap any installed executables with a wrapper that configures TCLLIBPATH -# * write a setup hook that extends the TCLLIBPATH of any anti-dependencies - -tclWrapperArgs=( ${tclWrapperArgs-} ) - -# Add a directory to TCLLIBPATH, provided that it exists -_addToTclLibPath() { - local tclPkg="$1" - if [[ -z "$tclPkg" ]]; then - return - fi - - if [[ ! -d "$tclPkg" ]]; then - >&2 echo "can't add $tclPkg to TCLLIBPATH; that directory doesn't exist" - exit 1 - fi - - if [[ "$tclPkg" == *" "* ]]; then - tclPkg="{$tclPkg}" - fi - - if [[ -z "${TCLLIBPATH-}" ]]; then - export TCLLIBPATH="$tclPkg" - else - if [[ "$TCLLIBPATH" != *"$tclPkg "* && "$TCLLIBPATH" != *"$tclPkg" ]]; then - export TCLLIBPATH="${TCLLIBPATH} $tclPkg" - fi - fi -} - -# Locate any directory containing an installed pkgIndex file -findInstalledTclPkgs() { - local -r newLibDir="${!outputLib}/lib" - if [[ ! -d "$newLibDir" ]]; then - >&2 echo "Assuming no loadable tcl packages installed ($newLibDir does not exist)" - return - fi - echo "$(find "$newLibDir" -name pkgIndex.tcl -exec dirname {} \;)" -} - -# Wrap any freshly-installed binaries and set up their TCLLIBPATH -wrapTclBins() { - if [ "$dontWrapTclBinaries" ]; then return; fi - - if [[ -z "${TCLLIBPATH-}" ]]; then - echo "skipping automatic Tcl binary wrapping (nothing to do)" - return - fi - - local -r tclBinsDir="${!outputBin}/bin" - if [[ ! -d "$tclBinsDir" ]]; then - echo "No outputBin found, not using any TCLLIBPATH wrapper" - return - fi - - tclWrapperArgs+=(--prefix TCLLIBPATH ' ' "$TCLLIBPATH") - - find "$tclBinsDir" -type f -executable -print | - while read -r someBin; do - echo "Adding TCLLIBPATH wrapper for $someBin" - wrapProgram "$someBin" "${tclWrapperArgs[@]}" - done -} - -# Generate hook to adjust TCLLIBPATH in anti-dependencies -writeTclLibPathHook() { - local -r hookPath="${!outputLib}/nix-support/setup-hook" - mkdir -p "$(dirname "$hookPath")" - - typeset -f _addToTclLibPath >> "$hookPath" - local -r tclPkgs=$(findInstalledTclPkgs) - while IFS= read -r tclPkg; do - echo "_addToTclLibPath \"$tclPkg\"" >> "$hookPath" - _addToTclLibPath "$tclPkg" true - done <<< "$tclPkgs" -} - -postFixupHooks+=(writeTclLibPathHook) -postFixupHooks+=(wrapTclBins) diff --git a/pkgs/by-name/te/termcap/default.nix b/pkgs/by-name/te/termcap/default.nix deleted file mode 100644 index 6382ade..0000000 --- a/pkgs/by-name/te/termcap/default.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ lib -, stdenv -, fetchurl -, fetchpatch -, autoreconfHook -, enableStatic ? stdenv.hostPlatform.isStatic -, enableShared ? !stdenv.hostPlatform.isStatic -}: - -stdenv.mkDerivation rec { - pname = "termcap"; - version = "1.3.1"; - - src = fetchurl { - url = "mirror://gnu/termcap/termcap-${version}.tar.gz"; - hash = "sha256-kaDiLlOHykRntbyxjt8cUbkwJi/UZtX9o5bdnSZxkQA="; - }; - - patches = [ - (fetchpatch { - name = "0001-tparam-replace-write-with-fprintf.patch"; - url = "https://github.com/msys2/MINGW-packages/raw/c6691ad1bd9d4c6823a18068ca0683c3e32ea005/mingw-w64-termcap/0001-tparam-replace-write-with-fprintf.patch"; - hash = "sha256-R9XaLfa8fzQBt+M+uA1AFTvKYCeOWLUD/7GViazXwto="; - }) - ]; - - outputs = [ "out" "dev" ]; - - enableParallelBuilding = true; - - strictDeps = true; - - nativeBuildInputs = [ autoreconfHook ]; - - makeFlags = [ - "AR=${stdenv.cc.targetPrefix}ar" - ]; - - 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 - ''); - - meta = { - description = "Terminal feature database"; - homepage = "https://www.gnu.org/software/termutils/"; - license = lib.licenses.gpl2Plus; - maintainers = with lib.maintainers; [ wegank ]; - platforms = lib.platforms.all; - }; -} diff --git a/pkgs/by-name/te/texinfo/4.13a.nix b/pkgs/by-name/te/texinfo/4.13a.nix deleted file mode 100644 index b8da38a..0000000 --- a/pkgs/by-name/te/texinfo/4.13a.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ stdenv, fetchurl, texinfo, ncurses, xz }: - -stdenv.mkDerivation rec { - pname = "texinfo"; - version = "4.13a"; - - src = fetchurl { - url = "mirror://gnu/texinfo/${pname}-${version}.tar.lzma"; - sha256 = "1rf9ckpqwixj65bw469i634897xwlgkm5i9g2hv3avl6mv7b0a3d"; - }; - - buildInputs = [ ncurses ]; - nativeBuildInputs = [ xz ]; - - # Disabled because we don't have zdiff in the stdenv bootstrap. - #doCheck = true; - - meta = texinfo.meta // { branch = version; }; -} diff --git a/pkgs/by-name/te/texinfo/5.2.nix b/pkgs/by-name/te/texinfo/5.2.nix deleted file mode 100644 index d395494..0000000 --- a/pkgs/by-name/te/texinfo/5.2.nix +++ /dev/null @@ -1,4 +0,0 @@ -import ./common.nix { - version = "5.2"; - sha256 = "1njfwh2z34r2c4r0iqa7v24wmjzvsfyz4vplzry8ln3479lfywal"; -} diff --git a/pkgs/by-name/te/texinfo/6.5.nix b/pkgs/by-name/te/texinfo/6.5.nix deleted file mode 100644 index 34596f3..0000000 --- a/pkgs/by-name/te/texinfo/6.5.nix +++ /dev/null @@ -1,4 +0,0 @@ -import ./common.nix { - version = "6.5"; - sha256 = "0qjzvbvnv9003xdrcpi3jp7y68j4hq2ciw9frh2hghh698zlnxvp"; -} diff --git a/pkgs/by-name/te/texinfo/6.7.nix b/pkgs/by-name/te/texinfo/6.7.nix deleted file mode 100644 index 7915d6e..0000000 --- a/pkgs/by-name/te/texinfo/6.7.nix +++ /dev/null @@ -1,4 +0,0 @@ -import ./common.nix { - version = "6.7"; - sha256 = "1aicn1v3czqii08wc91jw089n1x3gfchkf808q2as59dak0h714q"; -} diff --git a/pkgs/by-name/te/texinfo/6.8.nix b/pkgs/by-name/te/texinfo/6.8.nix deleted file mode 100644 index 992f695..0000000 --- a/pkgs/by-name/te/texinfo/6.8.nix +++ /dev/null @@ -1,8 +0,0 @@ -import ./common.nix { - version = "6.8"; - sha256 = "1i7yb7mrp3inz25zbzv2pllr4y7d58v818f1as7iz8mw53nm7dwf"; - patches = [ - # glibc 2.34 compat - ./fix-glibc-2.34.patch - ]; -} diff --git a/pkgs/by-name/te/texinfo/7.0.nix b/pkgs/by-name/te/texinfo/7.0.nix deleted file mode 100644 index 01788f4..0000000 --- a/pkgs/by-name/te/texinfo/7.0.nix +++ /dev/null @@ -1,4 +0,0 @@ -import ./common.nix { - version = "7.0.3"; - sha256 = "sha256-dLQg0J1/Uo6E+XqjMPDdaamKYFPnpOAXZ+7RFQOIB78="; -} diff --git a/pkgs/by-name/te/texinfo/common.nix b/pkgs/by-name/te/texinfo/common.nix deleted file mode 100644 index d8d6308..0000000 --- a/pkgs/by-name/te/texinfo/common.nix +++ /dev/null @@ -1,113 +0,0 @@ -{ version, sha256, patches ? [] }: - -{ lib, stdenv, buildPackages, fetchurl, perl, xz, libintl, bash -, gnulib, gawk - -# we are a dependency of gcc, this simplifies bootstraping -, interactive ? false, ncurses, procps -}: - -# 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 - crossBuildTools = stdenv.hostPlatform != stdenv.buildPlatform; -in - -with lib; - -stdenv.mkDerivation { - pname = "texinfo${optionalString interactive "-interactive"}"; - inherit version; - - src = fetchurl { - url = "mirror://gnu/texinfo/texinfo-${version}.tar.xz"; - inherit sha256; - }; - - 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} - ''; - - # ncurses is required to build `makedoc' - # this feature is introduced by the ./cross-tools-flags.patch - NATIVE_TOOLS_CFLAGS = if crossBuildTools then "-I${getDev buildPackages.ncurses}/include" else null; - NATIVE_TOOLS_LDFLAGS = if crossBuildTools then "-L${getLib buildPackages.ncurses}/lib" else null; - - strictDeps = true; - enableParallelBuilding = true; - - # A native compiler is needed to build tools needed at build time - depsBuildBuild = [ buildPackages.stdenv.cc perl ]; - - buildInputs = [ xz.bin bash libintl ] - ++ optionals stdenv.isSunOS [ libiconv gawk ] - ++ optional interactive ncurses; - - 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" ] - ++ lib.optional stdenv.isSunOS "AWK=${gawk}/bin/awk"; - - installFlags = [ "TEXMF=$(out)/texmf-dist" ]; - installTargets = [ "install" "install-tex" ]; - - nativeCheckInputs = [ procps ]; - - 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: - # https://lists.gnu.org/r/bug-texinfo/2021-07/msg00012.html - "XFAIL_TESTS=test_scripts/layout_formatting_fr_icons.sh" - ]; - - postFixup = optionalString crossBuildTools '' - for f in "$out"/bin/{pod2texi,texi2any}; do - substituteInPlace "$f" \ - --replace ${buildPackages.perl}/bin/perl ${perl}/bin/perl - done - ''; - - meta = { - description = "The GNU documentation system"; - homepage = "https://www.gnu.org/software/texinfo/"; - changelog = "https://git.savannah.gnu.org/cgit/texinfo.git/plain/NEWS"; - license = licenses.gpl3Plus; - platforms = platforms.all; - maintainers = with maintainers; [ vrthra oxij ]; - # see comment above in patches section - broken = stdenv.hostPlatform.isPower64 && lib.strings.versionOlder version "6.0"; - - longDescription = '' - Texinfo is the official documentation format of the GNU project. - It was invented by Richard Stallman and Bob Chassell many years - ago, loosely based on Brian Reid's Scribe and other formatting - languages of the time. It is used by many non-GNU projects as - well. - - Texinfo uses a single source file to produce output in a number - of formats, both online and printed (dvi, html, info, pdf, xml, - etc.). This means that instead of writing different documents - for online information and another for a printed manual, you - need write only one document. And when the work is revised, you - need revise only that one document. The Texinfo system is - well-integrated with GNU Emacs. - ''; - branch = version; - }; -} diff --git a/pkgs/by-name/te/texinfo/cross-tools-flags.patch b/pkgs/by-name/te/texinfo/cross-tools-flags.patch deleted file mode 100644 index f0a8c4d..0000000 --- a/pkgs/by-name/te/texinfo/cross-tools-flags.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -ur texinfo-6.5/configure texinfo-6.5-patched/configure ---- texinfo-6.5/configure 2017-09-13 03:50:18.000000000 +0900 -+++ texinfo-6.5-patched/configure 2019-12-28 17:39:06.692818866 +0900 -@@ -23281,7 +23281,7 @@ - # env -i gives this build host configure a clean environment; - # consequently, we have to re-initialize $PATH. -- env -i CC="$BUILD_CC" AR="$BUILD_AR" RANLIB="$BUILD_RANLIB" \ -- PATH="$PATH" \ -+ env -i CC="$CC_FOR_BUILD" AR="$AR_FOR_BUILD" RANLIB="$RANLIB_FOR_BUILD" \ -+ PATH="$PATH" CFLAGS="$NATIVE_TOOLS_CFLAGS" LDFLAGS="$NATIVE_TOOLS_LDFLAGS" \ - tools_only=1 \ - ${confdir}/configure --build=${build} --host=${build} \ - --disable-rpath --disable-nls diff --git a/pkgs/by-name/te/texinfo/fix-glibc-2.34.patch b/pkgs/by-name/te/texinfo/fix-glibc-2.34.patch deleted file mode 100644 index 60f2e63..0000000 --- a/pkgs/by-name/te/texinfo/fix-glibc-2.34.patch +++ /dev/null @@ -1,186 +0,0 @@ - -Patch by Vitezslav Crhonek -Source: https://src.fedoraproject.org/rpms/texinfo/c/9b2cca4817fa4bd8d520fed05e9560fc7183dcdf?branch=rawhide - -diff -up texinfo-6.8/gnulib/lib/cdefs.h.orig texinfo-6.8/gnulib/lib/cdefs.h ---- texinfo-6.8/gnulib/lib/cdefs.h.orig 2021-03-11 19:57:53.000000000 +0100 -+++ texinfo-6.8/gnulib/lib/cdefs.h 2021-07-19 12:26:46.985176475 +0200 -@@ -321,15 +321,15 @@ - - /* The nonnull function attribute marks pointer parameters that - must not be NULL. */ --#ifndef __attribute_nonnull__ -+#ifndef __nonnull - # if __GNUC_PREREQ (3,3) || __glibc_has_attribute (__nonnull__) --# define __attribute_nonnull__(params) __attribute__ ((__nonnull__ params)) -+# define __nonnull(params) __attribute__ ((__nonnull__ params)) - # else --# define __attribute_nonnull__(params) -+# define __nonnull(params) - # endif --#endif --#ifndef __nonnull --# define __nonnull(params) __attribute_nonnull__ (params) -+#elif !defined __GLIBC__ -+# undef __nonnull -+# define __nonnull(params) _GL_ATTRIBUTE_NONNULL (params) - #endif - - /* If fortification mode, we warn about unused results of certain -diff -up texinfo-6.8/gnulib/lib/libc-config.h.orig texinfo-6.8/gnulib/lib/libc-config.h ---- texinfo-6.8/gnulib/lib/libc-config.h.orig 2021-03-11 19:57:54.000000000 +0100 -+++ texinfo-6.8/gnulib/lib/libc-config.h 2021-07-19 12:27:58.810590975 +0200 -@@ -33,9 +33,9 @@ - #include - - /* On glibc this includes and and #defines -- _FEATURES_H, __WORDSIZE, and __set_errno. On FreeBSD 11 and -- DragonFlyBSD 5.9 it includes which defines __nonnull. -- Elsewhere it is harmless. */ -+ _FEATURES_H, __WORDSIZE, and __set_errno. On FreeBSD 11 it -+ includes which defines __nonnull. Elsewhere it -+ is harmless. */ - #include - - /* From glibc . */ -diff -up texinfo-6.8/gnulib/lib/malloc/dynarray-skeleton.c.orig texinfo-6.8/gnulib/lib/malloc/dynarray-skeleton.c ---- texinfo-6.8/gnulib/lib/malloc/dynarray-skeleton.c.orig 2021-03-11 19:57:54.000000000 +0100 -+++ texinfo-6.8/gnulib/lib/malloc/dynarray-skeleton.c 2021-07-19 12:24:46.878419397 +0200 -@@ -192,7 +192,7 @@ DYNARRAY_NAME (free__array__) (struct DY - - /* Initialize a dynamic array object. This must be called before any - use of the object. */ --__attribute_nonnull__ ((1)) -+__nonnull ((1)) - static void - DYNARRAY_NAME (init) (struct DYNARRAY_STRUCT *list) - { -@@ -202,7 +202,7 @@ DYNARRAY_NAME (init) (struct DYNARRAY_ST - } - - /* Deallocate the dynamic array and its elements. */ --__attribute_maybe_unused__ __attribute_nonnull__ ((1)) -+__attribute_maybe_unused__ __nonnull ((1)) - static void - DYNARRAY_FREE (struct DYNARRAY_STRUCT *list) - { -@@ -213,7 +213,7 @@ DYNARRAY_FREE (struct DYNARRAY_STRUCT *l - } - - /* Return true if the dynamic array is in an error state. */ --__attribute_nonnull__ ((1)) -+__nonnull ((1)) - static inline bool - DYNARRAY_NAME (has_failed) (const struct DYNARRAY_STRUCT *list) - { -@@ -222,7 +222,7 @@ DYNARRAY_NAME (has_failed) (const struct - - /* Mark the dynamic array as failed. All elements are deallocated as - a side effect. */ --__attribute_nonnull__ ((1)) -+__nonnull ((1)) - static void - DYNARRAY_NAME (mark_failed) (struct DYNARRAY_STRUCT *list) - { -@@ -236,7 +236,7 @@ DYNARRAY_NAME (mark_failed) (struct DYNA - - /* Return the number of elements which have been added to the dynamic - array. */ --__attribute_nonnull__ ((1)) -+__nonnull ((1)) - static inline size_t - DYNARRAY_NAME (size) (const struct DYNARRAY_STRUCT *list) - { -@@ -245,7 +245,7 @@ DYNARRAY_NAME (size) (const struct DYNAR - - /* Return a pointer to the array element at INDEX. Terminate the - process if INDEX is out of bounds. */ --__attribute_nonnull__ ((1)) -+__nonnull ((1)) - static inline DYNARRAY_ELEMENT * - DYNARRAY_NAME (at) (struct DYNARRAY_STRUCT *list, size_t index) - { -@@ -257,7 +257,7 @@ DYNARRAY_NAME (at) (struct DYNARRAY_STRU - /* Return a pointer to the first array element, if any. For a - zero-length array, the pointer can be NULL even though the dynamic - array has not entered the failure state. */ --__attribute_nonnull__ ((1)) -+__nonnull ((1)) - static inline DYNARRAY_ELEMENT * - DYNARRAY_NAME (begin) (struct DYNARRAY_STRUCT *list) - { -@@ -267,7 +267,7 @@ DYNARRAY_NAME (begin) (struct DYNARRAY_S - /* Return a pointer one element past the last array element. For a - zero-length array, the pointer can be NULL even though the dynamic - array has not entered the failure state. */ --__attribute_nonnull__ ((1)) -+__nonnull ((1)) - static inline DYNARRAY_ELEMENT * - DYNARRAY_NAME (end) (struct DYNARRAY_STRUCT *list) - { -@@ -294,7 +294,7 @@ DYNARRAY_NAME (add__) (struct DYNARRAY_S - /* Add ITEM at the end of the array, enlarging it by one element. - Mark *LIST as failed if the dynamic array allocation size cannot be - increased. */ --__attribute_nonnull__ ((1)) -+__nonnull ((1)) - static inline void - DYNARRAY_NAME (add) (struct DYNARRAY_STRUCT *list, DYNARRAY_ELEMENT item) - { -@@ -348,8 +348,7 @@ DYNARRAY_NAME (emplace__) (struct DYNARR - /* Allocate a place for a new element in *LIST and return a pointer to - it. The pointer can be NULL if the dynamic array cannot be - enlarged due to a memory allocation failure. */ --__attribute_maybe_unused__ __attribute_warn_unused_result__ --__attribute_nonnull__ ((1)) -+__attribute_maybe_unused__ __attribute_warn_unused_result__ __nonnull ((1)) - static - /* Avoid inlining with the larger initialization code. */ - #if !(defined (DYNARRAY_ELEMENT_INIT) || defined (DYNARRAY_ELEMENT_FREE)) -@@ -373,7 +372,7 @@ DYNARRAY_NAME (emplace) (struct DYNARRAY - existing size, new elements are added (which can be initialized). - Otherwise, the list is truncated, and elements are freed. Return - false on memory allocation failure (and mark *LIST as failed). */ --__attribute_maybe_unused__ __attribute_nonnull__ ((1)) -+__attribute_maybe_unused__ __nonnull ((1)) - static bool - DYNARRAY_NAME (resize) (struct DYNARRAY_STRUCT *list, size_t size) - { -@@ -418,7 +417,7 @@ DYNARRAY_NAME (resize) (struct DYNARRAY_ - } - - /* Remove the last element of LIST if it is present. */ --__attribute_maybe_unused__ __attribute_nonnull__ ((1)) -+__attribute_maybe_unused__ __nonnull ((1)) - static void - DYNARRAY_NAME (remove_last) (struct DYNARRAY_STRUCT *list) - { -@@ -435,7 +434,7 @@ DYNARRAY_NAME (remove_last) (struct DYNA - - /* Remove all elements from the list. The elements are freed, but the - list itself is not. */ --__attribute_maybe_unused__ __attribute_nonnull__ ((1)) -+__attribute_maybe_unused__ __nonnull ((1)) - static void - DYNARRAY_NAME (clear) (struct DYNARRAY_STRUCT *list) - { -@@ -453,8 +452,7 @@ DYNARRAY_NAME (clear) (struct DYNARRAY_S - stored in *RESULT if LIST refers to an empty list. On success, the - pointer in *RESULT is heap-allocated and must be deallocated using - free. */ --__attribute_maybe_unused__ __attribute_warn_unused_result__ --__attribute_nonnull__ ((1, 2)) -+__attribute_maybe_unused__ __attribute_warn_unused_result__ __nonnull ((1, 2)) - static bool - DYNARRAY_NAME (finalize) (struct DYNARRAY_STRUCT *list, - DYNARRAY_FINAL_TYPE *result) -@@ -485,8 +483,7 @@ DYNARRAY_NAME (finalize) (struct DYNARRA - have a sentinel at the end). If LENGTHP is not NULL, the array - length is written to *LENGTHP. *LIST is re-initialized and can be - reused. */ --__attribute_maybe_unused__ __attribute_warn_unused_result__ --__attribute_nonnull__ ((1)) -+__attribute_maybe_unused__ __attribute_warn_unused_result__ __nonnull ((1)) - static DYNARRAY_ELEMENT * - DYNARRAY_NAME (finalize) (struct DYNARRAY_STRUCT *list, size_t *lengthp) - { diff --git a/pkgs/by-name/te/texinfo/packages.nix b/pkgs/by-name/te/texinfo/packages.nix deleted file mode 100644 index 2017044..0000000 --- a/pkgs/by-name/te/texinfo/packages.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - texinfo413 = callPackage ./4.13a.nix { }; - texinfo4 = texinfo413; - texinfo5 = callPackage ./5.2.nix { }; - texinfo6_5 = callPackage ./6.5.nix { }; # needed for allegro - texinfo6_7 = callPackage ./6.7.nix { }; # needed for gpm, iksemel and fwknop - texinfo6 = callPackage ./6.8.nix { }; - texinfo7 = callPackage ./7.0.nix { }; - texinfo = texinfo7; - texinfoInteractive = texinfo.override { interactive = true; }; -} diff --git a/pkgs/by-name/te/texlive/UPGRADING.md b/pkgs/by-name/te/texlive/UPGRADING.md deleted file mode 100644 index 91bc1c6..0000000 --- a/pkgs/by-name/te/texlive/UPGRADING.md +++ /dev/null @@ -1,138 +0,0 @@ -# Notes on maintaining/upgrading - -## Upgrading `texlive.bin` - -`texlive` contains a few binaries, defined in `bin.nix` and released once a year. - -In order to reduce closure size for users who just need a few of them, we split it into -packages such as `core`, `core-big`, `xdvi`, etc. This requires making assumptions -about dependencies between the projects that may change between releases; if -you upgrade you may have to do some work here. - -## Updating the package set - -`texlive` contains several thousand packages from CTAN, defined in `tlpdb.nix`. - -The CTAN mirrors are not version-controlled and continuously moving, -with more than 100 updates per month. - -To create a consistent and reproducible package set in nixpkgs, we generate nix -expressions for all packages in TeX Live at a certain day. - -To upgrade the package snapshot, follow this process. - -### Upgrade package information from texlive package database - -Update `version` in `default.nix` with the day of the new snapshot, the new TeX -Live year, and the final status of the snapshot. Then update -`texlive.tlpdbxz.hash` to match the new hash of `texlive.tlpdb.xz` and run - -```bash -nix-build ../../../../.. -A texlive.tlpdb.nix --no-out-link -``` - -This will download either the daily or the final snapshot of the TeX Live -package database `texlive.tlpdb.xz` and extract the relevant package info -(including version numbers and sha512 hashes) for the selected upstream -distribution. - -Finally, replace `tlpdb.nix` with the generated file. Note that if the -`version` info does not match the metadata of `tlpdb.nix` (as found in the -`00texlive.config` package), TeX Live packages will not evaluate. - -The test `pkgs.tests.texlive.tlpdbNix` verifies that the file `tlpdb.nix` -in Nixpkgs matches the one that generated from `texlive.tlpdb.xz`. - -### Build packages locally and generate fix hashes - -To prevent unnecessary rebuilds, texlive packages are built as fixed-output -derivations whose hashes are contained in `fixed-hashes.nix`. - -Updating the list of fixed hashes requires a local build of all new packages, -which is a resource-intensive process. First build the hashes for the new -packages. Consider tweaking the `-j` option to maximise core usage. - -```bash -nix-build generate-fixed-hashes.nix -A newHashes -j 8 -``` - -Then build the Nix expression containing all the hashes, old and new. This step -cannot be parallelized because it relies on 'import from derivation'. - -```bash -nix-build generate-fixed-hashes.nix -A fixedHashesNix -``` - -Finally, copy the result to `fixed-hashes.nix`. - -**Warning.** The expression `fixedHashesNix` reuses the *previous* fixed hashes -when possible. This is based on two assumptions: that `.tar.xz` archives with -the same names remain identical in time (which is the intended behaviour of -CTAN and the various mirrors) and that the build recipe continues to produce -the same output. Should those assumptions not hold, remove the previous fixed -hashes for the relevant package, or for all packages. - -### Upgrading the ConTeXt binaries - -The LuaMetaTeX sources required for ConTeXt are distributed separately from the -TeX Live tarballs and must be updated manually (see `texlive.bin.context`). You -must use the latest tarball at https://tug.org/svn/texlive/trunk/Master/source/ -whose revision number is less than or equal to that of the package `context`. - -### Updating the licensing information - -The license of each package in texlive is automatically extracted from texlive's -texlive.tlpdb into tlpdb.nix. The combined licenses of the schemes is stored -separately in `default.nix` and must be kept in sync with the licenses of the -actual contents of these schemes. Whether this is the case can be verified with the -`pkgs.tests.texlive.licenses` test. In case of a mismatch, copy the “correct” -license lists reported by the test into `default.nix`. - -### Running the testsuite - -There are a some other useful tests that haven't been mentioned before. Build them with -``` -nix-build ../../../../.. -A tests.texlive --no-out-link -``` - - -### Commit changes - -Commit the updated `tlpdb.nix` and `fixed-hashes.nix` to the repository with -a message like - -> texlive: 2022-final -> 2023.20230401 - -Please make sure to follow the [CONTRIBUTING](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md) -guidelines. - -## Reviewing the bin containers - -Most `tlType == "bin"` containers consist of links to scripts distributed in -`$TEXMFDIST/scripts` with a number of patches applied within `default.nix`. - -At each upgrade, please run the tests `tests.texlive.shebangs` to verify that -all shebangs have been patched and in case add the relevant interpreters, and -use `tests.texlive.binaries` to check if basic execution of all binaries works. - -Please review manually all binaries in the `broken` and `ignored` lists of -`tests.texlive.binaries` at least once for major TeX Live release. - -Since the tests cannot catch all runtime dependencies, you should grep the -`$TEXMFDIST/scripts` folder for common cases, for instance (where `$scripts` -points to the relevant folder of `scheme-full`): -- Calls to `exec $interpreter` - ``` - grep -IRS 'exec ' "$TEXMFDIST/scripts" | cut -d: -f2 | sort -u | less -S - ``` -- Calls to Ghostscripts (see `needsGhostscript` in `combine.nix`) - ``` - grep -IR '\([^a-zA-Z]\|^\)gs\( \|$\|"\)' "$TEXMFDIST"/scripts - grep -IR 'rungs' "$TEXMFDIST" - ``` - -As a general rule, if a runtime dependency as above is essential for the core -functionality of the package, then it should be made available in the bin -containers (by patching `PATH`), or in `texlive.combine` (as we do for -Ghostscript). Non-essential runtime dependencies should be ignored if they -increase the closure substantially. diff --git a/pkgs/by-name/te/texlive/bin.nix b/pkgs/by-name/te/texlive/bin.nix deleted file mode 100644 index ece8a36..0000000 --- a/pkgs/by-name/te/texlive/bin.nix +++ /dev/null @@ -1,543 +0,0 @@ -{ 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: -# http://tug.org/texlive/doc/tlbuild.html - -let - withSystemLibs = map (libname: "--with-system-${libname}"); - - year = toString ((import ./tlpdb.nix)."00texlive.config").year; - 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}'."; - - # 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"; - 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" - ]; - hash = "sha256-OHiqDh7QMBwFOw4u5OmtmZxEE0X0iC55vdHI9M6eebk="; - }; - - 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 - '' -; - - 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"; - - # 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)); - - moveBins = '' - for bin in "$out/bin"/* ; do - bin="''${bin##*/}" - package="''${binToOutput[$bin]}" - if [[ -n "$package" ]] ; then - if [[ -z "''${!package}" ]] ; then - echo "WARNING: missing output '$package' for binary '$bin', leaving in 'out'" - else - mkdir -p "''${!package}"/bin - mv "$out/bin/$bin" "''${!package}"/bin/ - fi - else - echo "WARNING: no output known for binary '$bin', leaving in 'out'" - fi - done - ''; - }; - - # RISC-V: https://github.com/LuaJIT/LuaJIT/issues/628 - withLuaJIT = !(stdenv.hostPlatform.isPower && stdenv.hostPlatform.is64bit) && !stdenv.hostPlatform.isRiscV; -in rec { # un-indented - -texliveYear = year; - - -core = stdenv.mkDerivation rec { - pname = "texlive-bin"; - inherit version; - - __structuredAttrs = true; - - 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 - ]; - - 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; - }; -}; - - -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. - ''; - 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) -{ - -xindy = stdenv.mkDerivation { - pname = "xindy"; - inherit (texlive.pkgs.xindy) version; - - inherit (common) src; - - # 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;' - ''; - - nativeBuildInputs = [ - pkg-config perl - ]; - buildInputs = [ clisp libiconv perl ]; - - 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/} - ''; -}; - -} diff --git a/pkgs/by-name/te/texlive/build-tex-env.nix b/pkgs/by-name/te/texlive/build-tex-env.nix deleted file mode 100644 index 5497e6b..0000000 --- a/pkgs/by-name/te/texlive/build-tex-env.nix +++ /dev/null @@ -1,309 +0,0 @@ -{ - # texlive package set - tl -, bin - -, lib -, buildEnv -, libfaketime -, makeFontsConf -, makeWrapper -, runCommand -, writeShellScript -, writeText -, toTLPkgSets -, bash -, perl - - # common runtime dependencies -, coreutils -, gawk -, gnugrep -, gnused -, ghostscript -}: - -lib.fix (self: { - withDocs ? false -, withSources ? false -, requiredTeXPackages ? ps: [ ps.scheme-infraonly ] - -### texlive.combine backward compatibility -, __extraName ? "combined" -, __extraVersion ? "" -# emulate the old texlive.combine (e.g. add man pages to main output) -, __combine ? false -# adjust behavior further if called from the texlive.combine wrapper -, __fromCombineWrapper ? false -}@args: - -let - ### 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; - - 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 = _: [ ]; - }); - - # 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 [ ]; - - # 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; - }; - - # 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"; - - texmfdist = buildEnv' { - name = "${name}-texmfdist"; - - # remove fake derivations (without 'outPath') to avoid undesired build dependencies - paths = builtins.catAttrs "outPath" pkgList.nonbin; - - # mktexlsr - nativeBuildInputs = [ tl."texlive.infra" ]; - - 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 - ''; - - # texlive.combine: expose info and man pages in usual /share/{info,man} location - doc = buildEnv { - name = "${name}-doc"; - - paths = [ (texmfdist.outPath + "/doc") ]; - extraPrefix = "/share"; - - 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 - self (args // { __fromCombineWrapper = false; } // appliedArgs); - 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::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_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); - - updmapLines = { pname, fontMaps, ...}: - [ "# from ${pname}:" ] ++ fontMaps; - - out = -# no indent for git diff purposes -buildEnv' { - - 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); - - # 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 - ]; - - buildInputs = [ coreutils gawk gnugrep gnused ] ++ lib.optional needsGhostscript ghostscript; - - inherit meta passthru; - - inherit texmfdist texmfroot; - - fontconfigFile = makeFontsConf { fontDirectories = [ "${texmfroot}/texmf-dist/fonts" ]; }; - - 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; - - postactionScripts = builtins.catAttrs "postactionScript" pkgList.tlpkg; - - postBuild = '' - . "${./build-tex-env.sh}" - ''; -}; - # 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) diff --git a/pkgs/by-name/te/texlive/build-tex-env.sh b/pkgs/by-name/te/texlive/build-tex-env.sh deleted file mode 100644 index 834b2e0..0000000 --- a/pkgs/by-name/te/texlive/build-tex-env.sh +++ /dev/null @@ -1,328 +0,0 @@ -# shellcheck shell=bash - -# Replicate the post install phase of the upstream TeX Live installer. -# -# This script is based on the install-tl script and the TeXLive::TLUtils perl -# module, down to using the same (prefixed) function names and log messages. -# -# When updating to the next TeX Live release, review install-tl for changes and -# update this script accordingly. - -### install-tl - -# adjust texmf.cnf and texmfcnf.lua -installtl_do_texmf_cnf () { - # unlike install-tl, we make a copy of the entire texmf.cnf - # and point the binaries at $TEXMFCNF/texmf.cnf via wrappers - - mkdir -p "$TEXMFCNF" - if [[ -e $texmfdist/web2c/texmfcnf.lua ]]; then - tlutils_info "writing texmfcnf.lua to $TEXMFCNF/texmfcnf.lua" - sed -e "s,\(TEXMFOS[ ]*=[ ]*\)[^\,]*,\1\"$texmfroot\",g" \ - -e "s,\(TEXMFDIST[ ]*=[ ]*\)[^\,]*,\1\"$texmfdist\",g" \ - -e "s,\(TEXMFSYSVAR[ ]*=[ ]*\)[^\,]*,\1\"$TEXMFSYSVAR\",g" \ - -e "s,\(TEXMFSYSCONFIG[ ]*=[ ]*\)[^\,]*,\1\"$TEXMFSYSCONFIG\",g" \ - -e "s,\(TEXMFLOCAL[ ]*=[ ]*\)[^\,]*,\1\"$out/share/texmf-local\",g" \ - -e "s,\$SELFAUTOLOC,$out,g" \ - -e "s,selfautodir:/,$out/share/,g" \ - -e "s,selfautodir:,$out/share/,g" \ - -e "s,selfautoparent:/,$out/share/,g" \ - -e "s,selfautoparent:,$out/share/,g" \ - "$texmfdist/web2c/texmfcnf.lua" > "$TEXMFCNF/texmfcnf.lua" - fi - - tlutils_info "writing texmf.cnf to $TEXMFCNF/texmf.cnf" - sed -e "s,\(TEXMFROOT[ ]*=[ ]*\)[^\,]*,\1$texmfroot,g" \ - -e "s,\(TEXMFDIST[ ]*=[ ]*\)[^\,]*,\1$texmfdist,g" \ - -e "s,\(TEXMFSYSVAR[ ]*=[ ]*\)[^\,]*,\1$TEXMFSYSVAR,g" \ - -e "s,\(TEXMFSYSCONFIG[ ]*=[ ]*\)[^\,]*,\1$TEXMFSYSCONFIG,g" \ - -e "s,\$SELFAUTOLOC,$out,g" \ - -e "s,\$SELFAUTODIR,$out/share,g" \ - -e "s,\$SELFAUTOPARENT,$out/share,g" \ - -e "s,\$SELFAUTOGRANDPARENT,$out/share,g" \ - "$texmfdist/web2c/texmf.cnf" > "$TEXMFCNF/texmf.cnf" -} - -# run postaction scripts from texlive.tlpdb -# note that the other postactions (fileassoc, ...) are Windows only -installtl_do_tlpdb_postactions () { - local postaction postInterp - if [[ -n $postactionScripts ]] ; then - tlutils_info "running package-specific postactions" - for postaction in $postactionScripts ; do - # see TeXLive::TLUtils::_installtl_do_postaction_script - case "$postaction" in - *.pl) - postInterp=perl ;; - *.texlua) - postInterp=texlua ;; - *) - postInterp= ;; - esac - tlutils_info "${postInterp:+$postInterp }$postaction install $texmfroot" - FORCE_SOURCE_DATE=1 $postInterp "$texmfroot/$postaction" install "$texmfroot" >>"$TEXMFSYSVAR/postaction-${postaction##*/}.log" - done - tlutils_info "finished with package-specific postactions" - fi -} - -installtl_do_path_adjustments () { - # here install-tl would add a system symlink to the man pages - # instead we run other nixpkgs related adjustments - - # generate wrappers - tlutils_info "wrapping binaries" - - local bash cmd extraPaths link path target wrapCount - bash="$(command -v bash)" - enable -f "${bash%/bin/bash}"/lib/bash/realpath realpath - - # common runtime dependencies - for cmd in cat awk sed grep gs ; do - # do not fail if gs is absent - path="$(PATH="$HOST_PATH" command -v "$cmd" || :)" - if [[ -n $path ]] ; then - extraPaths="${extraPaths:+$extraPaths:}${path%/"$cmd"}" - fi - done - - declare -i wrapCount=0 - for link in "$out"/bin/* ; do - target="$(realpath "$link")" - - # skip non-executable files (such as context.lua) - if [[ ! -x $target ]] ; then - continue - fi - - if [[ ${target##*/} != "${link##*/}" ]] ; then - # detected alias with different basename, use immediate target of $link to preserve $0 - # relevant for mktexfmt, repstopdf, ... - target="$(readlink "$link")" - fi - - rm "$link" - makeWrapper "$target" "$link" \ - --inherit-argv0 \ - --prefix PATH : "$extraPaths:$out/bin" \ - --set-default TEXMFCNF "$TEXMFCNF" \ - --set-default FONTCONFIG_FILE "$fontconfigFile" - wrapCount=$((wrapCount + 1)) - done - - tlutils_info "wrapped $wrapCount binaries and scripts" - - # generate format symlinks (using fmtutil.cnf) - tlutils_info "generating format symlinks" - texlinks --quiet "$out/bin" - - # remove *-sys scripts since /nix/store is readonly - rm "$out"/bin/*-sys - - # link TEXMFDIST in $out/share for backward compatibility - ln -s "$texmfdist" "$out"/share/texmf - - # generate other outputs - local otherOutput otherOutputName - local otherOutputs="$otherOutputs" - for otherOutputName in $outputs ; do - if [[ $otherOutputName == out ]] ; then - continue - fi - otherOutput="${otherOutputs%% *}" - otherOutputs="${otherOutputs#* }" - ln -s "$otherOutput" "${!otherOutputName}" - done -} - -# run all post install parts -installtl_do_postinst_stuff () { - installtl_do_texmf_cnf - - # create various config files - # in principle, we could use writeText and share them across different - # environments, but the eval & build overhead is not worth the savings - tlutils_create_fmtutil - tlutils_create_updmap - tlutils_create_language_dat - tlutils_create_language_def - tlutils_create_language_lua - - # make new files available - tlutils_info "running mktexlsr $TEXMFSYSVAR $TEXMFSYSCONFIG" - mktexlsr "$TEXMFSYSVAR" "$TEXMFSYSCONFIG" - - # update font maps - tlutils_info "generating font maps" - updmap-sys --quiet --force --nohash 2>&1 - # configure the paper size - # tlmgr --no-execute-actions paper letter - # install-tl: "rerun mktexlsr for updmap-sys and tlmgr paper updates" - tlutils_info "re-running mktexlsr $TEXMFSYSVAR $TEXMFSYSCONFIG" - mktexlsr "$TEXMFSYSVAR" "$TEXMFSYSCONFIG" - - tlutils_update_context_cache - - # generate formats - # install-tl would run fmtutil-sys $common_fmtutil_args --no-strict --all - # instead, we want fmtutil to exit with error on failure - if [[ -n $fmtutilCnf ]] ; then - tlutils_info "pre-generating all format files, be patient..." - # many formats still ignore SOURCE_DATE_EPOCH even when FORCE_SOURCE_DATE=1 - # libfaketime fixes non-determinism related to timestamps ignoring FORCE_SOURCE_DATE - # we cannot fix further randomness caused by luatex; for further details, see - # https://salsa.debian.org/live-team/live-build/-/blob/master/examples/hooks/reproducible/2006-reproducible-texlive-binaries-fmt-files.hook.chroot#L52 - # note that calling faketime and fmtutil is fragile (faketime uses LD_PRELOAD, fmtutil calls /bin/sh, causing potential glibc issues on non-NixOS) - # so we patch fmtutil to use faketime, rather than calling faketime fmtutil - substitute "$texmfdist"/scripts/texlive/fmtutil.pl fmtutil \ - --replace-fail "my \$cmdline = \"\$eng -ini " "my \$cmdline = \"faketime -f '\@$(date +'%F %T' --date=@"$SOURCE_DATE_EPOCH") x0.001' \$eng -ini " - FORCE_SOURCE_DATE=1 perl fmtutil --quiet --strict --sys --all 2>&1 | grep '^fmtutil' # too verbose - fi - - installtl_do_path_adjustments - - installtl_do_tlpdb_postactions - - # remove log files to improve reproducibility - find "$TEXMFSYSVAR" -name '*.log' -delete -} - -### TeXLive::TLUtils - -tlutils_info () { - printf '%s\n' "texlive: $*" -} - -tlutils_create_fmtutil () { - # fmtutil.cnf created by install-tl already exists readonly in $texmfdist - # so here we need to *disable* the entries that are not in $fmtutilCnf - # and write the output in the writeable $TEXMFSYSVAR - - local engine fmt line outFile sedExpr - outFile="$TEXMFSYSVAR"/web2c/fmtutil.cnf - - tlutils_info "writing fmtutil.cnf to $outFile" - - while IFS= read -r line ; do - # a line is 'fmt engine ...' or '#! fmt engine ...' - # (see fmtutil.pl::read_fmtutil_file) - line="${line#\#! }" - read -r fmt engine _ <<<"$line" - # if a line for the ($fmt,$engine) pair exists, remove it to avoid - # pointless warnings from fmtutil - sedExpr="$sedExpr /^(#! )?$fmt $engine /d;" - done <<<"$fmtutilCnf" - - # disable all the remaining formats - sedExpr="$sedExpr /^[^#]/{ s/^/#! /p };" - - { - echo "# Generated by nixpkgs" - sed -E -n -e "$sedExpr" "$texmfdist"/web2c/fmtutil.cnf - [[ -z $fmtutilCnf ]] || printf '%s' "$fmtutilCnf" - } >"$outFile" -} - -tlutils_create_updmap () { - # updmap.cfg created by install-tl already exists readonly in $texmfdist - # so here we need to *disable* the entries that are not in $updmapCfg - # and write the output in the writeable $TEXMFSYSVAR - - local line map outFile sedExpr - outFile="$TEXMFSYSVAR"/web2c/updmap.cfg - - tlutils_info "writing updmap.cfg to $outFile" - - while IFS= read -r line ; do - # a line is 'type map' or '#! type map' - # (see fmtutil.pl::read_updmap_file) - read -r _ map <<<"$line" - # if a line for $map exists, remove it to avoid - # pointless warnings from updmap - sedExpr="$sedExpr /^(#! )?[^ ]*Map $map$/d;" - done <<<"$updmapCfg" - - # disable all the remaining font maps - sedExpr="$sedExpr /^[^ ]*Map/{ s/^/#! /p };" - - { - echo "# Generated by nixpkgs" - sed -E -n -e "$sedExpr" "$texmfdist"/web2c/updmap.cfg - [[ -z $updmapCfg ]] || printf '%s' "$updmapCfg" - } >"$outFile" -} - -tlutils__create_config_files () { - # simplified arguments - local header="$1" - local dest="$2" - local prefix="$3" - local lines="$4" - local suffix="$5" - if [[ -z "$header" || -e "$header" ]] ; then - tlutils_info "writing ${dest##*/} to $dest" - { - [[ -z $prefix ]] || printf '%s\n' "$prefix" - [[ ! -e $header ]] || cat "$header" - [[ -z $lines ]] || printf '%s\n' "$lines" - [[ -z $suffix ]] || printf '%s\n' "$suffix" - } >"$dest" - fi -} - -tlutils_create_language_dat () { - tlutils__create_config_files \ - "$texmfdist"/tex/generic/config/language.us \ - "$TEXMFSYSVAR"/tex/generic/config/language.dat \ - '% Generated by nixpkgs' \ - "$languageDat" \ - '' -} - -tlutils_create_language_def () { - tlutils__create_config_files \ - "$texmfdist"/tex/generic/config/language.us.def \ - "$TEXMFSYSVAR"/tex/generic/config/language.def \ - '' \ - "$languageDef" \ - '%%% No changes may be made beyond this point. - -\uselanguage {USenglish} %%% This MUST be the last line of the file.' -} - -tlutils_create_language_lua () { - tlutils__create_config_files \ - "$texmfdist"/tex/generic/config/language.us.lua \ - "$TEXMFSYSVAR"/tex/generic/config/language.dat.lua \ - '-- Generated by nixpkgs' \ - "$languageLua" \ - '}' -} - -tlutils_update_context_cache () { - if [[ -x $out/bin/mtxrun ]] ; then - tlutils_info "setting up ConTeXt cache" - - # temporarily patch mtxrun.lua to generate uuid's deterministically from SOURCE_DATE_EPOCH - mv "$out"/bin/mtxrun.lua{,.orig} - substitute "$out"/bin/mtxrun.lua.orig "$out"/bin/mtxrun.lua \ - --replace-fail 'randomseed(math.initialseed)' "randomseed($SOURCE_DATE_EPOCH)" - - # this is very verbose, save the output for debugging purposes - { - mtxrun --generate - context --luatex --generate - [[ ! -x $out/bin/luajittex ]] || context --luajittex --generate - } >"$TEXMFSYSVAR"/context-cache.log - - mv "$out"/bin/mtxrun.lua{.orig,} - fi -} - -# init variables (export only the ones that are used in the wrappers) -export PATH="$out/bin:$PATH" -TEXMFSYSCONFIG="$out/share/texmf-config" -TEXMFSYSVAR="$out/share/texmf-var" -export TEXMFCNF="$TEXMFSYSVAR/web2c" - -installtl_do_postinst_stuff diff --git a/pkgs/by-name/te/texlive/build-texlive-package.nix b/pkgs/by-name/te/texlive/build-texlive-package.nix deleted file mode 100644 index c5a55cf..0000000 --- a/pkgs/by-name/te/texlive/build-texlive-package.nix +++ /dev/null @@ -1,235 +0,0 @@ -{ lib -, fetchurl -, runCommand -, writeShellScript - - # script interpreters -, bash -, jdk -, perl -, python3 -, ruby -, snobol4 -, tk - - # TeX Live prerequisites -, texliveBinaries -}: - -/* Convert an attribute set extracted from tlpdb.nix (with the deps attribute - already processed) to a fake multi-output derivation with possible outputs - [ "tex" "texdoc" "texsource" "tlpkg" "out" "man" "info" ] - - The multi-output is emulated as follows: - - the main derivation is a multi-output derivation that builds links to the - containers (tex, texdoc, ...) - - the output attributes are replaced with the actual containers with the - outputSpecified attribute set to true - - In this way, when texlive.withPackages picks an output such as drv.tex, it - receives the actual container, avoiding superfluous dependencies on the other - containers (for instance doc containers). -*/ - -# 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 ? [ ] -, ... -}@args: - -let - # common metadata - name = "${pname}-${version}${extraVersion}"; - meta = { - license = map (x: lib.licenses.${x}) license; - # TeX Live packages should not be installed directly into the user profile - outputsToInstall = [ ]; - longDescription = '' - This package cannot be installed directly. Please use `texlive.withPackages`. - ''; - # discourage nix-env from matching this package - priority = 10; - } // 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"; - 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; }; - - # build run, doc, source, tlpkg containers - 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); - in - # remove drv.out to avoid confusing texlive.withPackages - removeAttrs container [ "out" ] - // outputDrvs; - - # find interpreters for the script extensions found in tlpdb - extToInput = { - jar = jdk; - lua = texliveBinaries.luatex; - py = python3; - rb = ruby; - sno = snobol4; - tcl = tk; - texlua = texliveBinaries.luatex; - tlu = texliveBinaries.luatex; - }; - - # fake derivation for resolving dependencies in the absence of a "tex" containers - fakeTeX = passthru - // { inherit meta; tlOutputName = "tex"; } - // outputDrvs; - - containers = rec { - tex = mkContainer "run" "tex" sha512.run; - texdoc = mkContainer "doc" "texdoc" sha512.doc; - texsource = mkContainer "source" "texsource" sha512.source; - 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; - - # build man, info containers - man = removeAttrs - (runCommand "${name}-man" - { - inherit meta texdoc; - passthru = passthru // { tlOutputName = "man"; }; - } - '' - mkdir -p "$out"/share - ln -s {"$texdoc"/doc,"$out"/share}/man - '') [ "out" ] // outputDrvs; - - info = removeAttrs - (runCommand "${name}-info" - { - inherit meta texdoc; - passthru = passthru // { tlOutputName = "info"; }; - } - '' - mkdir -p "$out"/share - ln -s {"$texdoc"/doc,"$out"/share}/info - '') [ "out" ] // outputDrvs; - }; -in -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 diff --git a/pkgs/by-name/te/texlive/combine-wrapper.nix b/pkgs/by-name/te/texlive/combine-wrapper.nix deleted file mode 100644 index 165e7a2..0000000 --- a/pkgs/by-name/te/texlive/combine-wrapper.nix +++ /dev/null @@ -1,42 +0,0 @@ -# legacy texlive.combine wrapper -{ lib, toTLPkgList, toTLPkgSets, buildTeXEnv }: -args@{ - pkgFilter ? (pkg: pkg.tlType == "run" || pkg.tlType == "bin" || pkg.pname == "core" - || pkg.hasManpages or false) -, extraName ? "combined" -, extraVersion ? "" -, ... -}: -let - pkgSet = removeAttrs args [ "pkgFilter" "extraName" "extraVersion" ]; - - # combine a set of TL packages into a single TL meta-package - combinePkgs = pkgList: lib.catAttrs "pkg" ( - let - # a TeX package used to be an attribute set { pkgs = [ ... ]; ... } where pkgs is a list of derivations - # the derivations make up the TeX package and optionally (for backward compatibility) its dependencies - tlPkgToSets = drv: map ({ tlType, version ? "", outputName ? "", ... }@pkg: { - # outputName required to distinguish among bin.core-big outputs - key = "${pkg.pname or pkg.name}.${tlType}-${version}-${outputName}"; - inherit pkg; - }) (drv.pkgs or (toTLPkgList drv)); - pkgListToSets = lib.concatMap tlPkgToSets; in - builtins.genericClosure { - startSet = pkgListToSets pkgList; - operator = { pkg, ... }: pkgListToSets (pkg.tlDeps or []); - }); - combined = combinePkgs (lib.attrValues pkgSet); - - # convert to specified outputs - tlTypeToOut = { run = "tex"; doc = "texdoc"; source = "texsource"; bin = "out"; tlpkg = "tlpkg"; }; - toSpecified = { tlType, ... }@drv: drv // { outputSpecified = true; tlOutputName = tlTypeToOut.${tlType}; }; - all = lib.filter pkgFilter combined ++ lib.filter (pkg: pkg.tlType == "tlpkg") combined; - converted = builtins.map toSpecified all; -in -buildTeXEnv { - __extraName = extraName; - __extraVersion = extraVersion; - requiredTeXPackages = _: converted; - __combine = true; - __fromCombineWrapper = true; -} diff --git a/pkgs/by-name/te/texlive/default.nix b/pkgs/by-name/te/texlive/default.nix deleted file mode 100644 index e84f89c..0000000 --- a/pkgs/by-name/te/texlive/default.nix +++ /dev/null @@ -1,235 +0,0 @@ -/* 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 -}: -let stdenv = gcc12Stdenv; in -let - # various binaries (compiled) - bin = callPackage ./bin.nix { - ghostscript = ghostscript_headless; - harfbuzz = harfbuzz.override { - withIcu = true; withGraphite2 = true; - }; - inherit useFixedHashes; - tlpdb = overriddenTlpdb; - }; - - tlpdb = import ./tlpdb.nix; - - 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; - - version = { - # day of the snapshot being taken - year = "2024"; - month = "03"; - day = "16"; - # TeX Live version - texliveYear = 2023; - # final (historic) release or snapshot - final = true; - }; - - # The tarballs on CTAN mirrors for the current release are constantly - # receiving updates, so we can't use those directly. Stable snapshots - # 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" - ]; - - 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) ]); - hash = "sha256-w+04GBFDk/P/XvW7T9PotGD0nQslMkV9codca2urNK4="; - }; - - 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; - texliveBinaries = bin; - }; - - 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 [ ]); }) - ) overriddenTlpdb; - - # function for creating a working environment - buildTeXEnv = import ./build-tex-env.nix { - inherit bin tl; - ghostscript = ghostscript_headless; - inherit lib buildEnv libfaketime makeFontsConf makeWrapper runCommand - writeShellScript writeText toTLPkgSets bash perl coreutils gawk gnugrep gnused; - }; - - ### texlive.combine compatibility layer: - # convert TeX packages to { pkgs = [ ... ]; } lists - # respecting specified outputs - toTLPkgList = drv: if drv.outputSpecified or false - then let tlType = drv.tlType or tlOutToType.${drv.tlOutputName or drv.outputName} or null; in - lib.optional (tlType != null) (drv // { inherit tlType; }) - else [ (drv.tex // { tlType = "run"; }) ] ++ - lib.optional (drv ? texdoc) (drv.texdoc // { tlType = "doc"; } // lib.optionalAttrs (drv ? man) { hasManpages = true; }) ++ - lib.optional (drv ? texsource) (drv.texsource // { tlType = "source"; }) ++ - lib.optional (drv ? tlpkg) (drv.tlpkg // { tlType = "tlpkg"; }) ++ - lib.optional (drv ? out) (drv.out // { tlType = "bin"; }); - tlOutToType = { out = "bin"; tex = "run"; texsource = "source"; texdoc = "doc"; tlpkg = "tlpkg"; }; - - # convert { pkgs = [ ... ]; } lists to TeX packages - # possibly more than one, if pkgs is also used to specify dependencies - tlTypeToOut = { run = "tex"; doc = "texdoc"; source = "texsource"; bin = "out"; tlpkg = "tlpkg"; }; - toSpecifiedNV = p: rec { - name = value.tlOutputName; - value = builtins.removeAttrs p [ "pkgs" ] - // { outputSpecified = true; tlOutputName = tlTypeToOut.${p.tlType}; }; - }; - toTLPkgSet = pname: drvs: - let set = lib.listToAttrs (builtins.map toSpecifiedNV drvs); - mainDrv = set.out or set.tex or set.tlpkg or set.texdoc or set.texsource; in - builtins.removeAttrs mainDrv [ "outputSpecified" ]; - toTLPkgSets = { pkgs, ... }: lib.mapAttrsToList toTLPkgSet - (builtins.groupBy (p: p.pname) pkgs); - - # export TeX packages as { pkgs = [ ... ]; } in the top attribute set - allPkgLists = lib.mapAttrs (n: drv: { pkgs = toTLPkgList drv; }) tl; - - # function for creating a working environment from a set of TL packages - # now a legacy wrapper around buildTeXEnv - combine = import ./combine-wrapper.nix { inherit buildTeXEnv lib toTLPkgList toTLPkgSets; }; - - assertions = with lib; - 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. - - # 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 ]; - }; - - meta = { - description = "TeX Live environment"; - platforms = lib.platforms.all; - maintainers = with lib.maintainers; [ veprbl ]; - license = licenses.scheme-infraonly; - }; - - combined = recurseIntoAttrs ( - lib.genAttrs [ "scheme-basic" "scheme-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}; - }; - } - ) - ); - - 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; - - tlpdb = { - # nested in an attribute set to prevent them from appearing in search - nix = tlpdbNix; - xz = tlpdbxz; - }; - - bin = assert assertions; bin // { - # for backward compatibility - latexindent = tl.latexindent; - }; - - combine = assert assertions; combine; - - combined = assert assertions; combined; - - inherit schemes; - - # 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 deleted file mode 100644 index 33f4bf9..0000000 --- a/pkgs/by-name/te/texlive/fixed-hashes.nix +++ /dev/null @@ -1,4395 +0,0 @@ -{ -"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 deleted file mode 100644 index 0cff459..0000000 --- a/pkgs/by-name/te/texlive/generate-fixed-hashes.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ pkgs ? (import ../../../../.. { }) }: - -let - inherit (pkgs) runCommand writeText texlive nix; - inherit (pkgs.lib) - attrValues - concatMap - concatMapStrings - isDerivation - filter - optional - optionalString - sort - strings - ; - - 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"; }); - - 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"''; - - hash = fod: fod.outputHash or (builtins.readFile (computeHash fod)); - - hashes = fods: - concatMapStrings ({ tlType, ... }@p: ''${tlType}="${hash p}";'') fods; - - hashLine = { pname, revision, extraRevision ? "", ... }@drv: - let - fods = getFods drv; - # NOTE: the fixed naming scheme must match default.nix - fixedName = "${pname}-${toString revision}${extraRevision}"; - in - optionalString (fods != [ ]) '' - ${strings.escapeNixIdentifier fixedName}={${hashes fods}}; - ''; -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); - - fixedHashesNix = writeText "fixed-hashes.nix" - '' - { - ${concatMapStrings hashLine sorted}} - ''; -} diff --git a/pkgs/by-name/te/texlive/make-bin-containers.sh b/pkgs/by-name/te/texlive/make-bin-containers.sh deleted file mode 100644 index 1d8cbbd..0000000 --- a/pkgs/by-name/te/texlive/make-bin-containers.sh +++ /dev/null @@ -1,60 +0,0 @@ -# load realpath -loadables="$(command -v bash)" -loadables="${loadables%/bin/bash}/lib/bash" -enable -f "$loadables/realpath" realpath -mkdir -p "$out/bin" - -# find interpreters -export interpPerl="$(PATH="$HOST_PATH" command -v perl)" -export interpJava="$(PATH="$HOST_PATH" command -v java || :)" -export interpWish="$(PATH="$HOST_PATH" command -v wish || :)" - -# prepare sed script -substituteAll "$patchScripts" patch-scripts.sed - -for binname in $binfiles ; do - # binlinks to be created last, after the other binaries are in place - if [[ " $binlinks " == *" $binname "* ]] ; then - continue - fi - - output="$out/bin/$binname" - - # look for existing binary from bin.* - target="$(PATH="$HOST_PATH" command -v "$binname" || :)" - if [[ -n "$target" && -x "$target" ]] ; then - ln -s "$(realpath "$target")" "$output" - continue - fi - - # look for scripts - # the explicit list of extensions avoid non-scripts such as $binname.cmd, $binname.jar, $binname.pm - # the order is relevant: $binname.sh is preferred to other $binname.* - for folder in $scriptsFolder ; do - for script in "$folder/$binname"{,.sh,.lua,.pl,.py,.rb,.sno,.tcl,.texlua,.tlu}; do - if [[ -f "$script" ]] ; then - sed -f patch-scripts.sed \ - -e 's/^scriptname=`basename "\$0"`$/'"scriptname='$(basename "$binname")'/" \ - -e 's/^scriptname=`basename "\$0" .sh`$'"/scriptname='$(basename "$binname" .sh)'/" \ - "$script" > "$output" - chmod +x "$output" - continue 3 - fi - done - done - - echo "error: could not find source for 'bin/$binname'" >&2 - exit 1 -done - -# patch shebangs -patchShebangs "$out/bin" - -# generate links -# we canonicalise the source to avoid symlink chains, and to check that it exists -cd "$out"/bin -for alias in $binlinks ; do - target="${bintargets%% *}" - bintargets="${bintargets#* }" - ln -s "$(realpath "$target")" "$out/bin/$alias" -done diff --git a/pkgs/by-name/te/texlive/packages.nix b/pkgs/by-name/te/texlive/packages.nix deleted file mode 100644 index 2e93418..0000000 --- a/pkgs/by-name/te/texlive/packages.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: -res: pkgs: super: - -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; - texlivePackages = recurseIntoAttrs (lib.filterAttrs (_: lib.isDerivation) texlive.pkgs); -} diff --git a/pkgs/by-name/te/texlive/patch-scripts.sed b/pkgs/by-name/te/texlive/patch-scripts.sed deleted file mode 100644 index c08d765..0000000 --- a/pkgs/by-name/te/texlive/patch-scripts.sed +++ /dev/null @@ -1,57 +0,0 @@ -1{ - /python/{ - N; - # add script folder to path, unless we interfere with a docstring - /\nr"""/b skip-python-path-patch - s!\n!\nimport sys; sys.path.insert(0,'@scriptsFolder@')\n! - :skip-python-path-patch - } - - /^#!.*perl/{ - # add script folder to @INC - s!$! -I@scriptsFolder@! - } - - /^eval/{ - # most likely the weird perl shebang - N - /^eval '(exit \$?0)' && eval 'exec perl -S \$0 \${1+"\$@"}' && eval 'exec perl -S \$0 \$argv:q'\n *if 0;$/{ - x; s/.*/patching weird perl shebang/; w /dev/stderr - x; s|^.*$|#!@interpPerl@ -I@scriptsFolder@| - } - } -} - -# patch 'exec interpreter' -/exec java /{ - x; s/.*/patching exec java/; w /dev/stderr - x; s|exec java |exec '@interpJava@' |g - /exec ''/{ - x; s/^.*$/error: java missing from PATH/; w /dev/stderr - q 1 - } -} - -/exec perl /{ - x; s/.*/patching exec perl/; w /dev/stderr - x; s|exec perl |exec @interpPerl@ -I@scriptsFolder@ |g - /exec ''/{ - x; s/^.*$/error: perl missing from PATH/; w /dev/stderr - q 1 - } -} - -/exec wish /{ - x; s/.*/patching exec wish/; w /dev/stderr - x; s|exec wish |exec '@interpWish@' |g - /exec ''/{ - x; s/^.*$/error: wish missing from PATH/; w /dev/stderr - q 1 - } -} - -# make jar wrappers work without kpsewhich -s!^jarpath=`kpsewhich --progname=[^ ]* --format=texmfscripts \([^ ]*\)`$!jarpath=@scriptsFolder@/\1!g - -# replace CYGWIN grep test with bash builtin -s!echo "$kernel" | grep CYGWIN >/dev/null;![[ "$kernel" == *CYGWIN* ]]!g diff --git a/pkgs/by-name/te/texlive/texlinks.diff b/pkgs/by-name/te/texlive/texlinks.diff deleted file mode 100644 index 97770cc..0000000 --- a/pkgs/by-name/te/texlive/texlinks.diff +++ /dev/null @@ -1,9 +0,0 @@ -@@ -157,7 +157,7 @@ - verbose_echo "skipped ConTeXtish symlink $src -> $dest (special case)" - ;; - *) -- test ! -f "$src" && -+ test "x$src" != "x`(ls -ld $src | awk '{print $NF}') 2>/dev/null`" && - rm -f "$src" - - if test -f "$src"; then diff --git a/pkgs/by-name/te/texlive/tl2nix.sed b/pkgs/by-name/te/texlive/tl2nix.sed deleted file mode 100644 index 6848c40..0000000 --- a/pkgs/by-name/te/texlive/tl2nix.sed +++ /dev/null @@ -1,231 +0,0 @@ -# wrap whole file into an attrset -1i{ # no indentation -$a} - -# extract repository metadata -/^name 00texlive\.config$/,/^$/{ - s/^name (.*)$/"\1" = {/p - /^$/,1i}; - - s!^depend frozen/0$! frozen = false;!p - s!^depend frozen/1$! frozen = true;!p - s!^depend release/(.*)$! year = \1;!p - s!^depend revision/(.*)$! revision = \1;!p -} - -# form an attrmap per package -# ignore packages whose name contains "." (such as binaries) except for texlive.infra -/^name ([^.]+|texlive\.infra)$/,/^$/{ - # quote invalid names - s/^name ([0-9].*|texlive\.infra)$/"\1" = {/p - s/^name (.*)$/\1 = {/p - - # extract revision - s/^revision ([0-9]*)$/ revision = \1;/p - - # extract short description - /^shortdesc (.+)$/{ - s/"/\\"/g # escape quotes - s/^shortdesc (.+)/ shortdesc = "\1";/p - } - - # extract hashes of *.tar.xz - s/^containerchecksum (.*)/ sha512.run = "\1";/p - s/^doccontainerchecksum (.*)/ sha512.doc = "\1";/p - s/^srccontainerchecksum (.*)/ sha512.source = "\1";/p - - # number of path components to strip, defaulting to 1 ("texmf-dist/") - /^relocated 1/i\ stripPrefix = 0; - - # extract version and clean unwanted chars from it - /^catalogue-version/y/ \/~/_--/ - /^catalogue-version/s/[\#,:\(\)]//g - s/^catalogue-version_(.*)/ version = "\1";/p - - /^catalogue-license/{ - # wrap licenses in quotes - s/ ([^ ]+)/ "\1"/g - # adjust naming as in nixpkgs, the full texts of the licenses are available at https://www.ctan.org/license/${licenseName} - s/"(cc-by(-sa)?-[1-4])"/"\10"/g - s/"apache2"/"asl20"/g - s/"artistic"/"artistic1-cl8"/g - s/"bsd"/"bsd3"/g # license text does not match exactly, but is pretty close - s/"bsd4"/"bsdOriginal"/g - s/"collection"/"free"/g # used for collections of individual packages with distinct licenses. As TeXlive only contains free software, we can use "free" as a catchall - s/"fdl"/"fdl13Only"/g - s/"gpl"/"gpl1Only"/g - s/"gpl([1-3])"/"gpl\1Only"/g - s/"gpl2\+"/"gpl2Plus"/g - s/"gpl3\+"/"gpl3Plus"/g - s/"lgpl"/"lgpl2"/g - s/"lgpl2\.1"/"lgpl21"/g - s/"lppl"/"lppl13c"/g # not used consistently, sometimes "lppl" refers to an older version of the license - s/"lppl1\.2"/"lppl12"/g - s/"lppl1\.3"/"lppl13c"/g # If a work refers to LPPL 1.3 as its license, this is interpreted as the latest version of the 1.3 license (https://www.latex-project.org/lppl/) - s/"lppl1\.3a"/"lppl13a"/g - s/"lppl1\.3c"/"lppl13c"/g - s/"other-free"/"free"/g - s/"opl"/"opubl"/g - s/"pd"/"publicDomain"/g - - s/^catalogue-license (.*)/ license = [ \1 ];/p - } - - # extract deps - /^depend ([^.]+|texlive\.infra)$/{ - # open a list - i\ deps = [ - - # loop through following depend lines - :next-dep - s/^\n?depend ([^.]+|texlive\.infra)$/ "\1"/p # print dep - s/^.*$// # clear pattern space - N; /^\ndepend /b next-dep - - # close the list - i\ ]; - D # restart cycle from the current line - } - - # extract font maps - /^execute add.*Map /{ - # open a list - i\ fontMaps = [ - - # loop through following map lines - :next-map - s/^\n?execute add(.*Map .*)$/ "\1"/p # print map - s/^.*$// # clear pattern space - N; /^\nexecute add.*Map /b next-map - - # close the string - i\ ]; - D # restart cycle from the current line - } - - # detect presence of notable files - /^docfiles /{ - s/^.*$// # ignore the first line - - # read all files - :next-doc - N - s/\n / / # remove newline - t next-doc # loop if the previous lines matched - - / (texmf-dist|RELOC)\/doc\/man\//i\ hasManpages = true; - / (texmf-dist|RELOC)\/doc\/info\//i\ hasInfo = true; - - D # restart cycle - } - - /^runfiles /{ - s/^.*$// # ignore the first line - - # read all files - :next-file - N - s/\n / / # remove newline - t next-file # loop if previous line matched - s/\n/ \n/ # add space before last newline for accurate matching below - - / (RELOC|texmf-dist)\//i\ hasRunfiles = true; - / tlpkg\//i\ hasTlpkg = true; - - # extract script extensions - / texmf-dist\/scripts\/.*\.(jar|lua|py|rb|sno|tcl|texlua|tlu) /{ - i\ scriptExts = [ - / texmf-dist\/scripts\/.*\.jar /i\ "jar" - / texmf-dist\/scripts\/.*\.lua /i\ "lua" - / texmf-dist\/scripts\/.*\.py /i\ "py" - / texmf-dist\/scripts\/.*\.rb /i\ "rb" - / texmf-dist\/scripts\/.*\.sno /i\ "sno" - / texmf-dist\/scripts\/.*\.tcl /i\ "tcl" - / texmf-dist\/scripts\/.*\.texlua /i\ "texlua" - / texmf-dist\/scripts\/.*\.tlu /i\ "tlu" - i\ ]; - } - - D # restart cycle from the current line - } - - # extract postaction scripts (right now, at most one per package, so a string suffices) - s/^postaction script file=(.*)$/ postactionScript = "\1";/p - - # extract hyphenation patterns - /^execute\sAddHyphen\s/{ - # open a list - i\ hyphenPatterns = [ - - # create one attribute set per hyphenation pattern - - # plain keys: name, lefthyphenmin, righthyphenmin, file, file_patterns, file_exceptions, comment - # optionally double quoted key: luaspecial, comment - # comma-separated lists: databases, synonyms - :next-hyphen - s/(^|\n)execute\sAddHyphen/ {/ - s/\s+luaspecial="([^"]+)"/\n luaspecial = "\1";/ - s/\s+(name|lefthyphenmin|righthyphenmin|file|file_patterns|file_exceptions|luaspecial|comment)=([^ \t\n]*)/\n \1 = "\2";/g - s/\s+(databases|synonyms)=([^ \t\n]+)/\n \1 = [ "\2" ];/g - s/$/\n }/ - - :split-hyphens - s/"([^,]+),([^"]+)" ]/"\1" "\2" ]/; - t split-hyphens # repeat until there are no commas - - p - s/^.*$// # clear pattern space - N - /^\nexecute\sAddHyphen\s/b next-hyphen - - # close the list - i\ ]; - D # restart cycle from the current line - } - - # extract format details - /^execute\sAddFormat\s/{ - # open a list - i\ formats = [ - - # create one attribute set per format - # note that format names are not unique - - # plain keys: name, engine, patterns - # optionally double quoted key: options - # boolean key: mode (enabled/disabled) - # comma-separated lists: fmttriggers, patterns - :next-fmt - s/(^|\n)execute\sAddFormat/ {/ - s/\s+options="([^"]+)"/\n options = "\1";/ - s/\s+(name|engine|options)=([^ \t\n]+)/\n \1 = "\2";/g - s/\s+mode=enabled// - s/\s+mode=disabled/\n enabled = false;/ - s/\s+(fmttriggers|patterns)=([^ \t\n]+)/\n \1 = [ "\2" ];/g - s/$/\n }/ - - :split-triggers - s/"([^,]+),([^"]+)" ]/"\1" "\2" ]/; - t split-triggers # repeat until there are no commas - - p - s/^.*$// # clear pattern space - N - /^\nexecute\sAddFormat\s/b next-fmt - - # close the list - i\ ]; - D # restart cycle from the current line - } - - # close attrmap - /^$/i}; -} - -# add list of binaries from one of the architecture-specific packages -/^name ([^.]+|texlive\.infra)\.x86_64-linux$/,/^$/{ - s/^name ([0-9].*|texlive\.infra)\.x86_64-linux$/"\1".binfiles = [/p - s/^name (.*)\.x86_64-linux$/\1.binfiles = [/p - s!^ bin/x86_64-linux/(.+)$! "\1"!p - /^$/i]; -} diff --git a/pkgs/by-name/te/texlive/tlpdb-overrides.nix b/pkgs/by-name/te/texlive/tlpdb-overrides.nix deleted file mode 100644 index 7ec6eee..0000000 --- a/pkgs/by-name/te/texlive/tlpdb-overrides.nix +++ /dev/null @@ -1,420 +0,0 @@ -{ 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: - -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); - - orig = removeFormatLinks (removeAttrs oldTlpdb [ "00texlive.config" ]); - -in lib.recursiveUpdate orig rec { - #### overrides of texlive.tlpdb - - #### nonstandard script folders - context.scriptsFolder = "context/stubs-mkiv/unix"; - context-legacy.scriptsFolder = "context/stubs/unix"; - cyrillic-bin.scriptsFolder = "texlive-extra"; - fontinst.scriptsFolder = "texlive-extra"; - mptopdf.scriptsFolder = "context/perl"; - pdftex.scriptsFolder = "simpdftex"; - texlive-scripts.scriptsFolder = "texlive"; - texlive-scripts-extra.scriptsFolder = "texlive-extra"; - xetex.scriptsFolder = "texlive-extra"; - - #### interpreters not detected by looking at the script extensions - ctanbib.extraBuildInputs = [ bin.luatex ]; - de-macro.extraBuildInputs = [ python3 ]; - match_parens.extraBuildInputs = [ ruby ]; - optexcount.extraBuildInputs = [ python3 ]; - pdfbook2.extraBuildInputs = [ python3 ]; - 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 ])) ]; - ctanify.extraBuildInputs = [ (perl.withPackages (ps: with ps; [ FileCopyRecursive ])) ]; - 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 ])) ]; - 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 ])) ]; - svn-multi.extraBuildInputs = [ (perl.withPackages (ps: with ps; [ TimeDate ])) ]; - texdoctk.extraBuildInputs = [ (perl.withPackages (ps: with ps; [ Tk ])) ]; - ulqda.extraBuildInputs = [ (perl.withPackages (ps: with ps; [ DigestSHA1 ])) ]; - - #### python packages - pythontex.extraBuildInputs = [ (python3.withPackages (ps: with ps; [ pygments ])) ]; - - #### other runtime PATH dependencies - a2ping.extraBuildInputs = [ ghostscript_headless ]; - bibexport.extraBuildInputs = [ gnugrep ]; - checklistings.extraBuildInputs = [ coreutils ]; - cjk-gs-integrate.extraBuildInputs = [ ghostscript_headless ]; - context.extraBuildInputs = [ coreutils ]; - context-legacy.extraBuildInputs = [ ruby ]; - 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 ]; - ltximg.extraBuildInputs = [ ghostscript_headless ]; - luaotfload.extraBuildInputs = [ ncurses ]; - makeindex.extraBuildInputs = [ coreutils gnused ]; - pagelayout.extraBuildInputs = [ gnused ncurses ]; - pdfcrop.extraBuildInputs = [ ghostscript_headless ]; - pdftex.extraBuildInputs = [ coreutils ghostscript_headless gnused ]; - pdftex-quiet.extraBuildInputs = [ coreutils ]; - 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 ]; - thumbpdf.extraBuildInputs = [ ghostscript_headless ]; - tpic2pdftex.extraBuildInputs = [ gawk ]; - wordcount.extraBuildInputs = [ coreutils gnugrep ]; - xdvi.extraBuildInputs = [ coreutils gnugrep ]; - xindy.extraBuildInputs = [ gzip ]; - - #### adjustments to binaries - # TODO patch the scripts from bin.* directly in bin.* instead of here - - # 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" ]; - - # 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 []; - - #### additional symlinks - cluttex.binlinks = { - cllualatex = "cluttex"; - clxelatex = "cluttex"; - }; - - context.binlinks = { - context = "luametatex"; - "context.lua" = tl.context.tex + "/scripts/context/lua/context.lua"; - mtxrun = "luametatex"; - "mtxrun.lua" = tl.context.tex + "/scripts/context/lua/mtxrun.lua"; - }; - - epstopdf.binlinks.repstopdf = "epstopdf"; - pdfcrop.binlinks.rpdfcrop = "pdfcrop"; - - # TODO: handle symlinks in bin.core - ptex.binlinks = { - pbibtex = tl.uptex.out + "/bin/upbibtex"; - pdvitype = tl.uptex.out + "/bin/updvitype"; - ppltotf = tl.uptex.out + "/bin/uppltotf"; - ptftopl = tl.uptex.out + "/bin/uptftopl"; - }; - - texdef.binlinks = { - latexdef = "texdef"; - }; - - texlive-scripts.binlinks = { - mktexfmt = "fmtutil"; - texhash = tl."texlive.infra".out + "/bin/mktexlsr"; - }; - - texlive-scripts-extra.binlinks = { - allec = "allcm"; - kpsepath = "kpsetool"; - kpsexpand = "kpsetool"; - }; - - #### add PATH dependencies without wrappers - # TODO deduplicate this code - a2ping.postFixup = '' - sed -i '6i$ENV{PATH}='"'"'${lib.makeBinPath a2ping.extraBuildInputs}'"'"' . ($ENV{PATH} ? ":$ENV{PATH}" : '"'''"');' "$out"/bin/a2ping - ''; - - bibexport.postFixup = '' - sed -i '2iPATH="${lib.makeBinPath bibexport.extraBuildInputs}''${PATH:+:$PATH}"' "$out"/bin/bibexport - ''; - - checklistings.postFixup = '' - sed -i '2iPATH="${lib.makeBinPath checklistings.extraBuildInputs}''${PATH:+:$PATH}"' "$out"/bin/checklistings - ''; - - cjk-gs-integrate.postFixup = '' - sed -i '2i$ENV{PATH}='"'"'${lib.makeBinPath cjk-gs-integrate.extraBuildInputs}'"'"' . ($ENV{PATH} ? ":$ENV{PATH}" : '"'''"');' "$out"/bin/cjk-gs-integrate - ''; - - context.postFixup = '' - sed -i '2iPATH="${lib.makeBinPath context.extraBuildInputs}''${PATH:+:$PATH}"' "$out"/bin/{contextjit,mtxrunjit} - ''; - - context-legacy.postFixup = '' - sed -i '2iPATH="${lib.makeBinPath context-legacy.extraBuildInputs}''${PATH:+:$PATH}"' "$out"/bin/texexec - ''; - - cyrillic-bin.postFixup = '' - sed -i '2iPATH="${lib.makeBinPath cyrillic-bin.extraBuildInputs}''${PATH:+:$PATH}"' "$out"/bin/rumakeindex - ''; - - dtxgen.postFixup = '' - sed -i '2iPATH="${lib.makeBinPath dtxgen.extraBuildInputs}''${PATH:+:$PATH}"' "$out"/bin/dtxgen - ''; - - dviljk.postFixup = '' - sed -i '2iPATH="${lib.makeBinPath dviljk.extraBuildInputs}''${PATH:+:$PATH}"' "$out"/bin/dvihp - ''; - - epstopdf.postFixup = '' - sed -i '2i$ENV{PATH}='"'"'${lib.makeBinPath epstopdf.extraBuildInputs}'"'"' . ($ENV{PATH} ? ":$ENV{PATH}" : '"'''"');' "$out"/bin/epstopdf - ''; - - fragmaster.postFixup = '' - sed -i '2i$ENV{PATH}='"'"'${lib.makeBinPath fragmaster.extraBuildInputs}'"'"' . ($ENV{PATH} ? ":$ENV{PATH}" : '"'''"');' "$out"/bin/fragmaster - ''; - - installfont.postFixup = '' - sed -i '2iPATH="${lib.makeBinPath installfont.extraBuildInputs}''${PATH:+:$PATH}"' "$out"/bin/installfont-tl - ''; - - latexfileversion.postFixup = '' - sed -i '2iPATH="${lib.makeBinPath latexfileversion.extraBuildInputs}''${PATH:+:$PATH}"' "$out"/bin/latexfileversion - ''; - - listings-ext.postFixup = '' - sed -i '2iPATH="${lib.makeBinPath listings-ext.extraBuildInputs}''${PATH:+:$PATH}"' "$out"/bin/listings-ext.sh - ''; - - ltxfileinfo.postFixup = '' - sed -i '2iPATH="${lib.makeBinPath ltxfileinfo.extraBuildInputs}''${PATH:+:$PATH}"' "$out"/bin/ltxfileinfo - ''; - - ltximg.postFixup = '' - sed -i '2i$ENV{PATH}='"'"'${lib.makeBinPath ltximg.extraBuildInputs}'"'"' . ($ENV{PATH} ? ":$ENV{PATH}" : '"'''"');' "$out"/bin/ltximg - ''; - - luaotfload.postFixup = '' - sed -i '2ios.setenv("PATH","${lib.makeBinPath luaotfload.extraBuildInputs}" .. (os.getenv("PATH") and ":" .. os.getenv("PATH") or ""))' "$out"/bin/luaotfload-tool - ''; - - makeindex.postFixup = '' - sed -i '2iPATH="${lib.makeBinPath makeindex.extraBuildInputs}''${PATH:+:$PATH}"' "$out"/bin/mkindex - ''; - - pagelayout.postFixup = '' - sed -i '2iPATH="${lib.makeBinPath [ gnused ]}''${PATH:+:$PATH}"' "$out"/bin/pagelayoutapi - sed -i '2iPATH="${lib.makeBinPath [ ncurses ]}''${PATH:+:$PATH}"' "$out"/bin/textestvis - ''; - - pdfcrop.postFixup = '' - sed -i '2i$ENV{PATH}='"'"'${lib.makeBinPath pdfcrop.extraBuildInputs}'"'"' . ($ENV{PATH} ? ":$ENV{PATH}" : '"'''"');' "$out"/bin/pdfcrop - ''; - - pdftex.postFixup = '' - sed -i -e '2iPATH="${lib.makeBinPath [ coreutils gnused ]}''${PATH:+:$PATH}"' \ - -e 's!^distillerpath="/usr/local/bin"$!distillerpath="${lib.makeBinPath [ ghostscript_headless ]}"!' \ - "$out"/bin/simpdftex - ''; - - pdftex-quiet.postFixup = '' - sed -i '2iPATH="${lib.makeBinPath pdftex-quiet.extraBuildInputs}''${PATH:+:$PATH}"' "$out"/bin/pdftex-quiet - ''; - - pdfxup.postFixup = '' - sed -i '2iPATH="${lib.makeBinPath pdfxup.extraBuildInputs}''${PATH:+:$PATH}"' "$out"/bin/pdfxup - ''; - - pkfix-helper.postFixup = '' - sed -i '2i$ENV{PATH}='"'"'${lib.makeBinPath pkfix-helper.extraBuildInputs}'"'"' . ($ENV{PATH} ? ":$ENV{PATH}" : '"'''"');' "$out"/bin/pkfix-helper - ''; - - ps2eps.postFixup = '' - sed -i '2i$ENV{PATH}='"'"'${lib.makeBinPath ps2eps.extraBuildInputs}'"'"' . ($ENV{PATH} ? ":$ENV{PATH}" : '"'''"');' "$out"/bin/ps2eps - ''; - - pst2pdf.postFixup = '' - sed -i '2i$ENV{PATH}='"'"'${lib.makeBinPath pst2pdf.extraBuildInputs}'"'"' . ($ENV{PATH} ? ":$ENV{PATH}" : '"'''"');' "$out"/bin/pst2pdf - ''; - - tex4ebook.postFixup = '' - sed -i '2ios.setenv("PATH","${lib.makeBinPath tex4ebook.extraBuildInputs}" .. (os.getenv("PATH") and ":" .. os.getenv("PATH") or ""))' "$out"/bin/tex4ebook - ''; - - texlive-scripts.postFixup = '' - sed -i '2iPATH="${lib.makeBinPath texlive-scripts.extraBuildInputs}''${PATH:+:$PATH}"' "$out"/bin/{fmtutil-user,mktexmf,mktexpk,mktextfm,updmap-user} - ''; - - thumbpdf.postFixup = '' - sed -i '2i$ENV{PATH}='"'"'${lib.makeBinPath thumbpdf.extraBuildInputs}'"'"' . ($ENV{PATH} ? ":$ENV{PATH}" : '"'''"');' "$out"/bin/thumbpdf - ''; - - tpic2pdftex.postFixup = '' - sed -i '2iPATH="${lib.makeBinPath tpic2pdftex.extraBuildInputs}''${PATH:+:$PATH}"' "$out"/bin/tpic2pdftex - ''; - - wordcount.postFixup = '' - sed -i '2iPATH="${lib.makeBinPath wordcount.extraBuildInputs}''${PATH:+:$PATH}"' "$out"/bin/wordcount - ''; - - # TODO patch in bin.xdvi - xdvi.postFixup = '' - sed -i '2iPATH="${lib.makeBinPath xdvi.extraBuildInputs}''${PATH:+:$PATH}"' "$out"/bin/xdvi - ''; - - xindy.postFixup = '' - sed -i '2i$ENV{PATH}='"'"'${lib.makeBinPath xindy.extraBuildInputs}'"'"' . ($ENV{PATH} ? ":$ENV{PATH}" : '"'''"');' "$out"/bin/{texindy,xindy} - ''; - - #### other script fixes - # misc tab and python3 fixes - ebong.postFixup = '' - sed -Ei 's/import sre/import re/; s/file\(/open(/g; s/\t/ /g; s/print +(.*)$/print(\1)/g' "$out"/bin/ebong - ''; - - # find files in script directory, not binary directory - # add runtime dependencies to PATH - epspdf.postFixup = '' - sed -i '2ios.setenv("PATH","${lib.makeBinPath epspdf.extraBuildInputs}" .. (os.getenv("PATH") and ":" .. os.getenv("PATH") or ""))' "$out"/bin/epspdf - substituteInPlace "$out"/bin/epspdftk --replace-fail '[info script]' "\"$scriptsFolder/epspdftk.tcl\"" - ''; - - # find files in script directory, not in binary directory - latexindent.postFixup = '' - substituteInPlace "$out"/bin/latexindent --replace-fail 'use FindBin;' "BEGIN { \$0 = '$scriptsFolder' . '/latexindent.pl'; }; use FindBin;" - ''; - - # flag lua dependency - texblend.scriptExts = [ "lua" ]; - - # Patch texlinks.sh back to 2015 version; - # otherwise some bin/ links break, e.g. xe(la)tex. - # add runtime dependencies to PATH - 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 [ gnused ]}''${PATH:+:$PATH}"' "$out"/bin/{kpsetool,texconfig,texconfig-sys} - sed -i '2iPATH="${lib.makeBinPath [ coreutils gnused ]}''${PATH:+:$PATH}"' "$out"/bin/texconfig-dialog - ''; - - # patch interpreter - texosquery.postFixup = '' - substituteInPlace "$out"/bin/* --replace-fail java "$interpJava" - ''; - - # 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 tlshell localrev]' '${toString orig.tlshell.revision}' - ''; - - #### dependency changes - # it seems to need it to transform fonts - 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; - - # add them elsewhere so that collections cover all packages - collection-metapost.deps = orig.collection-metapost.deps ++ [ "metafont" ]; - collection-plaingeneric.deps = orig.collection-plaingeneric.deps ++ [ "xdvi" ]; - - #### 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; - - # tlpdb lists license as "unknown", but the README says lppl13: http://mirrors.ctan.org/language/arabic/arabi-add/README - arabi-add.license = [ "lppl13c" ]; - - texdoc = { - extraRevision = "-tlpdb${toString tlpdbVersion.revision}"; - extraVersion = "-tlpdb-${toString tlpdbVersion.revision}"; - - extraNativeBuildInputs = [ installShellFiles ]; - - # build Data.tlpdb.lua (part of the 'tlType == "run"' package) - postUnpack = '' - if [[ -f "$out"/scripts/texdoc/texdoc.tlu ]]; then - unxz --stdout "${tlpdbxz}" > texlive.tlpdb - - # create dummy doc file to ensure that texdoc does not return an error - mkdir -p support/texdoc - touch support/texdoc/NEWS - - TEXMFCNF="${tl.kpathsea.tex}/web2c" TEXMF="$out" TEXDOCS=. TEXMFVAR=. \ - "${bin.luatex}"/bin/texlua "$out"/scripts/texdoc/texdoc.tlu \ - -c texlive_tlpdb=texlive.tlpdb -lM texdoc - - cp texdoc/cache-tlpdb.lua "$out"/scripts/texdoc/Data.tlpdb.lua - fi - ''; - - # install zsh completion - postFixup = '' - TEXMFCNF="${tl.kpathsea.tex}"/web2c TEXMF="$scriptsFolder/../.." \ - texlua "$out"/bin/texdoc --print-completion zsh > "$TMPDIR"/_texdoc - substituteInPlace "$TMPDIR"/_texdoc \ - --replace-fail 'compdef __texdoc texdoc' '#compdef texdoc' \ - --replace-fail '$(kpsewhich -var-value TEXMFROOT)/tlpkg/texlive.tlpdb' '$(kpsewhich Data.tlpdb.lua)' \ - --replace-fail '/^name[^.]*$/ {print $2}' '/^ \["[^"]*"\] = {$/ { print substr($1,3,length($1)-4) }' - echo '__texdoc' >> "$TMPDIR"/_texdoc - installShellCompletion --zsh "$TMPDIR"/_texdoc - ''; - }; - - "texlive.infra" = { - extraRevision = ".tlpdb${toString tlpdbVersion.revision}"; - 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 [ ]; - - scriptsFolder = "texlive"; - 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 - ''; - - # add minimal texlive.tlpdb - postUnpack = '' - if [[ -d "$out"/TeXLive ]] ; then - xzcat "${tlpdbxz}" | sed -n -e '/^name \(00texlive.config\|00texlive.installation\)$/,/^$/p' > "$out"/texlive.tlpdb - fi - ''; - }; -} diff --git a/pkgs/by-name/te/texlive/tlpdb.nix b/pkgs/by-name/te/texlive/tlpdb.nix deleted file mode 100644 index c778234..0000000 --- a/pkgs/by-name/te/texlive/tlpdb.nix +++ /dev/null @@ -1,54489 +0,0 @@ -{ # 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" - "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" -]; -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" - "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" - "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" - "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" -]; -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" -]; -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 = [ - "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" -]; -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" - "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" - "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" -]; -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" - "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" -]; -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" -]; -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" -]; -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 deleted file mode 100644 index a46b249..0000000 --- a/pkgs/by-name/ti/tix/default.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ 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"; - }; - 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 - # In fact, it only needs some private headers. We copy them in - # the private_headers folders and trick the configure script into believing - # the sources are here. - preConfigure = '' - mkdir -p private_headers/generic - < ${tcl}/lib/tclConfig.sh sed "s@TCL_SRC_DIR=.*@TCL_SRC_DIR=private_headers@" > tclConfig.sh - < ${tk}/lib/tkConfig.sh sed "s@TK_SRC_DIR=.*@TK_SRC_DIR=private_headers@" > tkConfig.sh - for i in ${tcl}/include/* ${tk.dev}/include/*; do - ln -s $i private_headers/generic; - done; - ''; - addTclConfigureFlags = false; - configureFlags = [ - "--with-tclconfig=." - "--with-tkinclude=${tk.dev}/include" - "--with-tkconfig=." - "--libdir=\${prefix}/lib" - ]; - - meta = with lib; { - description = "A widget library for Tcl/Tk"; - homepage = "https://tix.sourceforge.net/"; - platforms = platforms.all; - license = with licenses; [ - bsd2 # tix - gpl2 # patches from portage - ]; - }; -} diff --git a/pkgs/by-name/ti/tix/duplicated-xlowerwindow.patch b/pkgs/by-name/ti/tix/duplicated-xlowerwindow.patch deleted file mode 100644 index 0ea8887..0000000 --- a/pkgs/by-name/ti/tix/duplicated-xlowerwindow.patch +++ /dev/null @@ -1,49 +0,0 @@ -This is duplicated code from Tk. -It causes errors during build since XLowerWindow is not only a function but also "defined" in tkIntXlibDecls.h. - -See -https://github.com/tcltk/tk/blob/71dcaddc69769cbd3e2c4b5edb5810f974579527/generic/tkIntXlibDecls.h#L396 -and -https://github.com/tcltk/tk/blob/71dcaddc69769cbd3e2c4b5edb5810f974579527/generic/tkIntXlibDecls.h#L1487 - ---- a/unix/tixUnixWm.c 2005-03-25 13:15:53.000000000 -0700 -+++ b/unix/tixUnixWm.c 2021-03-20 07:31:52.000000000 -0700 -@@ -24,38 +24,3 @@ - { - return TCL_OK; - } -- --#ifdef MAC_OSX_TK --#include "tkInt.h" --/* -- *---------------------------------------------------------------------- -- * -- * XLowerWindow -- -- * -- * Change the stacking order of a window. -- * -- * Results: -- * None. -- * -- * Side effects: -- * Changes the stacking order of the specified window. -- * -- *---------------------------------------------------------------------- -- */ -- --int --XLowerWindow( -- Display* display, /* Display. */ -- Window window) /* Window. */ --{ -- TkWindow *winPtr = *((TkWindow **) window); -- -- display->request++; -- if (Tk_IsTopLevel(winPtr) && !Tk_IsEmbedded(winPtr)) { -- TkWmRestackToplevel(winPtr, Below, NULL); -- } else { -- /* TODO: this should generate damage */ -- } -- return 0; --} --#endif diff --git a/pkgs/by-name/ti/tix/fix-clang16.patch b/pkgs/by-name/ti/tix/fix-clang16.patch deleted file mode 100644 index f5d8a53..0000000 --- a/pkgs/by-name/ti/tix/fix-clang16.patch +++ /dev/null @@ -1,215 +0,0 @@ -diff -ur a/generic/tixDItem.c b/generic/tixDItem.c ---- a/generic/tixDItem.c 2004-03-27 19:44:56.000000000 -0700 -+++ b/generic/tixDItem.c 2023-07-11 14:49:51.583894242 -0600 -@@ -30,7 +30,7 @@ - Tcl_Interp *interp, Tk_Window tkwin, CONST84 char *value, - char *widRec, int offset)); - --static char *DItemPrintProc _ANSI_ARGS_(( -+static const char *DItemPrintProc _ANSI_ARGS_(( - ClientData clientData, Tk_Window tkwin, char *widRec, - int offset, Tcl_FreeProc **freeProcPtr)); - -@@ -548,7 +548,7 @@ - return TCL_OK; - } - --static char *DItemPrintProc(clientData, tkwin, widRec,offset, freeProcPtr) -+static const char *DItemPrintProc(clientData, tkwin, widRec,offset, freeProcPtr) - ClientData clientData; - Tk_Window tkwin; - char *widRec; -diff -ur a/generic/tixDiStyle.c b/generic/tixDiStyle.c ---- a/generic/tixDiStyle.c 2004-03-27 19:44:56.000000000 -0700 -+++ b/generic/tixDiStyle.c 2023-07-11 15:02:45.245210252 -0600 -@@ -31,7 +31,7 @@ - static int DItemStyleParseProc _ANSI_ARGS_((ClientData clientData, - Tcl_Interp *interp, Tk_Window tkwin, - CONST84 char *value,char *widRec, int offset)); --static char * DItemStylePrintProc _ANSI_ARGS_(( -+static const char * DItemStylePrintProc _ANSI_ARGS_(( - ClientData clientData, Tk_Window tkwin, - char *widRec, int offset, - Tcl_FreeProc **freeProcPtr)); -@@ -785,7 +785,7 @@ - - hashPtr = Tcl_CreateHashEntry(&stylePtr->base.items, (char*)iPtr, &isNew); - if (!isNew) { -- panic("DItem is already associated with style"); -+ Tcl_Panic("DItem is already associated with style"); - } else { - Tcl_SetHashValue(hashPtr, (char*)iPtr); - } -@@ -801,7 +801,7 @@ - - hashPtr = Tcl_FindHashEntry(&stylePtr->base.items, (char*)iPtr); - if (hashPtr == NULL) { -- panic("DItem is not associated with style"); -+ Tcl_Panic("DItem is not associated with style"); - } - Tcl_DeleteHashEntry(hashPtr); - stylePtr->base.refCount--; -@@ -998,7 +998,7 @@ - return TCL_ERROR; - } - --static char *DItemStylePrintProc(clientData, tkwin, widRec,offset, freeProcPtr) -+static const char *DItemStylePrintProc(clientData, tkwin, widRec,offset, freeProcPtr) - ClientData clientData; - Tk_Window tkwin; - char *widRec; -diff -ur a/generic/tixForm.c b/generic/tixForm.c ---- a/generic/tixForm.c 2004-03-27 19:44:56.000000000 -0700 -+++ b/generic/tixForm.c 2023-07-11 14:53:45.695753419 -0600 -@@ -802,7 +802,7 @@ - * Now set all the client's geometry - */ - if (PlaceAllClients(masterPtr) != TCL_OK) { -- panic("circular dependency"); -+ Tcl_Panic("circular dependency"); - } - - for (clientPtr = masterPtr->client; clientPtr; clientPtr=clientPtr->next) { -diff -ur a/generic/tixGrData.c b/generic/tixGrData.c ---- a/generic/tixGrData.c 2004-03-27 19:44:56.000000000 -0700 -+++ b/generic/tixGrData.c 2023-07-11 14:54:19.644741199 -0600 -@@ -296,7 +296,7 @@ - Tcl_DeleteHashEntry(cy); - } - else { -- panic("Inconsistent grid dataset: (%d,%d) : %x %x", x, y, cx, cy); -+ Tcl_Panic("Inconsistent grid dataset: (%d,%d) : %x %x", x, y, cx, cy); - } - - return 1; -diff -ur a/generic/tixGrid.c b/generic/tixGrid.c ---- a/generic/tixGrid.c 2008-02-27 21:10:43.000000000 -0700 -+++ b/generic/tixGrid.c 2023-07-11 14:53:59.283841038 -0600 -@@ -831,7 +831,7 @@ - * All mapped windows should have been unmapped when the - * the entries were deleted - */ -- panic("tixGrid: mappedWindows not NULL"); -+ Tcl_Panic("tixGrid: mappedWindows not NULL"); - } - - Tk_FreeOptions(configSpecs, (char *) wPtr, wPtr->dispData.display, 0); -diff -ur a/generic/tixHList.c b/generic/tixHList.c ---- a/generic/tixHList.c 2008-02-27 21:05:29.000000000 -0700 -+++ b/generic/tixHList.c 2023-07-11 14:55:20.699375202 -0600 -@@ -2036,7 +2036,7 @@ - break; - } - if (wPtr->headerWin != NULL) { -- panic("HList: header subwindow deleted illegally\n"); -+ Tcl_Panic("HList: header subwindow deleted illegally\n"); - } - #endif - break; -@@ -2117,7 +2117,7 @@ - * All mapped windows should have been unmapped when the - * the entries were deleted - */ -- panic("tixHList: mappedWindows not NULL"); -+ Tcl_Panic("tixHList: mappedWindows not NULL"); - } - if (wPtr->headerWin) { - wPtr->headerWin = NULL; -diff -ur a/generic/tixImgCmp.c b/generic/tixImgCmp.c ---- a/generic/tixImgCmp.c 2008-02-27 21:05:29.000000000 -0700 -+++ b/generic/tixImgCmp.c 2023-07-11 14:59:16.429640785 -0600 -@@ -142,8 +142,8 @@ - * The type record for bitmap images: - */ - static int ImgCmpCreate _ANSI_ARGS_((Tcl_Interp *interp, -- char *name, int argc, Tcl_Obj *CONST objv[], -- Tk_ImageType *typePtr, Tk_ImageMaster master, -+ const char *name, int argc, Tcl_Obj *CONST objv[], -+ const Tk_ImageType *typePtr, Tk_ImageMaster master, - ClientData *clientDataPtr)); - static ClientData ImgCmpGet _ANSI_ARGS_((Tk_Window tkwin, - ClientData clientData)); -@@ -378,11 +378,11 @@ - ImgCmpCreate(interp, name, argc, objv, typePtr, master, clientDataPtr) - Tcl_Interp *interp; /* Interpreter for application containing - * image. */ -- char *name; /* Name to use for image. */ -+ const char *name; /* Name to use for image. */ - int argc; /* Number of arguments. */ - Tcl_Obj *CONST objv[]; /* Argument strings for options (doesn't - * include image name or type). */ -- Tk_ImageType *typePtr; /* Pointer to our type record (not used). */ -+ const Tk_ImageType *typePtr;/* Pointer to our type record (not used). */ - Tk_ImageMaster master; /* Token for image, to be used by us in - * later callbacks. */ - ClientData *clientDataPtr; /* Store manager's token for image here; -diff -ur a/generic/tixImgXpm.c b/generic/tixImgXpm.c ---- a/generic/tixImgXpm.c 2023-07-11 15:01:05.887387236 -0600 -+++ b/generic/tixImgXpm.c 2023-07-11 15:00:37.209042328 -0600 -@@ -22,8 +22,8 @@ - */ - - static int ImgXpmCreate _ANSI_ARGS_((Tcl_Interp *interp, -- char *name, int argc, Tcl_Obj *CONST objv[], -- Tk_ImageType *typePtr, Tk_ImageMaster master, -+ const char *name, int argc, Tcl_Obj *CONST objv[], -+ const Tk_ImageType *typePtr, Tk_ImageMaster master, - ClientData *clientDataPtr)); - static ClientData ImgXpmGet _ANSI_ARGS_((Tk_Window tkwin, - ClientData clientData)); -@@ -115,11 +115,11 @@ - ImgXpmCreate(interp, name, argc, objv, typePtr, master, clientDataPtr) - Tcl_Interp *interp; /* Interpreter for application containing - * image. */ -- char *name; /* Name to use for image. */ -+ const char *name; /* Name to use for image. */ - int argc; /* Number of arguments. */ - Tcl_Obj *CONST objv[]; /* Argument strings for options (doesn't - * include image name or type). */ -- Tk_ImageType *typePtr; /* Pointer to our type record (not used). */ -+ const Tk_ImageType *typePtr;/* Pointer to our type record (not used). */ - Tk_ImageMaster master; /* Token for image, to be used by us in - * later callbacks. */ - ClientData *clientDataPtr; /* Store manager's token for image here; -@@ -1213,7 +1213,7 @@ - PixmapMaster *masterPtr = (PixmapMaster *) masterData; - - if (masterPtr->instancePtr != NULL) { -- panic("tried to delete pixmap image when instances still exist"); -+ Tcl_Panic("tried to delete pixmap image when instances still exist"); - } - masterPtr->tkMaster = NULL; - if (masterPtr->imageCmd != NULL) { -diff -ur a/generic/tixTList.c b/generic/tixTList.c ---- a/generic/tixTList.c 2008-02-27 21:05:29.000000000 -0700 -+++ b/generic/tixTList.c 2023-07-11 14:55:35.960761327 -0600 -@@ -1208,7 +1208,7 @@ - sprintf(buff, "%d", i); - Tcl_AppendResult(interp, buff, NULL); - } else { -- panic("TList list entry is invalid"); -+ Tcl_Panic("TList list entry is invalid"); - } - } else { - Tcl_ResetResult(interp); -diff -ur a/generic/tixUtils.c b/generic/tixUtils.c ---- a/generic/tixUtils.c 2008-02-27 21:29:17.000000000 -0700 -+++ b/generic/tixUtils.c 2023-07-11 15:01:43.718202631 -0600 -@@ -24,7 +24,7 @@ - static int ReliefParseProc(ClientData clientData, - Tcl_Interp *interp, Tk_Window tkwin, CONST84 char *value, - char *widRec, int offset); --static char * ReliefPrintProc(ClientData clientData, -+static const char * ReliefPrintProc(ClientData clientData, - Tk_Window tkwin, char *widRec, int offset, - Tix_FreeProc **freeProcPtr); - -@@ -637,7 +637,7 @@ - return TCL_ERROR; - } - --static char * -+static const char * - ReliefPrintProc(clientData, tkwin, widRec,offset, freeProcPtr) - ClientData clientData; - Tk_Window tkwin; diff --git a/pkgs/by-name/tk/tk/8.5.nix b/pkgs/by-name/tk/tk/8.5.nix deleted file mode 100644 index afd5759..0000000 --- a/pkgs/by-name/tk/tk/8.5.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib -, stdenv -, callPackage -, fetchurl -, fetchpatch -, tcl -, ... -} @ args: - -callPackage ./generic.nix (args // { - - 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"; - }) - ]; - -}) diff --git a/pkgs/by-name/tk/tk/8.6.nix b/pkgs/by-name/tk/tk/8.6.nix deleted file mode 100644 index fbf4560..0000000 --- a/pkgs/by-name/tk/tk/8.6.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ lib -, stdenv -, callPackage -, fetchurl -, fetchpatch -, tcl -, ... -} @ args: - -callPackage ./generic.nix (args // { - - src = fetchurl { - url = "mirror://sourceforge/tcl/tk${tcl.version}-src.tar.gz"; - sha256 = "sha256-LmX6BpojNlRAo8VsVWuGc7XjKig4ANjZslfj9YTOBnU="; - }; - - 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 deleted file mode 100644 index 57a9b61..0000000 --- a/pkgs/by-name/tk/tk/generic.nix +++ /dev/null @@ -1,74 +0,0 @@ -{ stdenv, lib, src, pkg-config, tcl, libXft, patches ? [] -, enableAqua ? stdenv.isDarwin, darwin -, ... }: - -tcl.mkTclDerivation { - pname = "tk"; - version = tcl.version; - - inherit src patches; - - outputs = [ "out" "man" "dev" ]; - - setOutputFlags = false; - - preConfigure = '' - configureFlagsArray+=(--mandir=$man/share/man --enable-man-symlinks) - 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" "" - ''; - - 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"; - - 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 - ]); - - enableParallelBuilding = true; - - doCheck = false; # fails. can't find itself - - inherit tcl; - - passthru = rec { - inherit (tcl) release version; - libPrefix = "tk${tcl.release}"; - libdir = "lib/${libPrefix}"; - }; - - meta = with lib; { - description = "A widget toolkit that provides a library of basic elements for building a GUI in many different programming languages"; - homepage = "https://www.tcl.tk/"; - license = licenses.tcltk; - platforms = platforms.all; - maintainers = with maintainers; [ lovek323 vrthra ]; - }; -} diff --git a/pkgs/by-name/tk/tk/packages.nix b/pkgs/by-name/tk/tk/packages.nix deleted file mode 100644 index 30754d2..0000000 --- a/pkgs/by-name/tk/tk/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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/tk/tk/tk-8_6_13-find-library.patch b/pkgs/by-name/tk/tk/tk-8_6_13-find-library.patch deleted file mode 100644 index a055ade..0000000 --- a/pkgs/by-name/tk/tk/tk-8_6_13-find-library.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/generic/tkWindow.c b/generic/tkWindow.c -index fa25553..ad45598 100644 ---- a/generic/tkWindow.c -+++ b/generic/tkWindow.c -@@ -1045,6 +1045,7 @@ TkCreateMainWindow( - - Tcl_SetVar2(interp, "tk_patchLevel", NULL, TK_PATCH_LEVEL, TCL_GLOBAL_ONLY); - Tcl_SetVar2(interp, "tk_version", NULL, TK_VERSION, TCL_GLOBAL_ONLY); -+ Tcl_SetVar2(interp, "tk_library", NULL, TK_LIBRARY, TCL_GLOBAL_ONLY); - - tsdPtr->numMainWindows++; - return tkwin; -diff --git a/unix/Makefile.in b/unix/Makefile.in -index e98070e..f417753 100644 ---- a/unix/Makefile.in -+++ b/unix/Makefile.in -@@ -1033,7 +1033,7 @@ tkVisual.o: $(GENERIC_DIR)/tkVisual.c - $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkVisual.c - - tkWindow.o: $(GENERIC_DIR)/tkWindow.c tkUuid.h -- $(CC) -c $(CC_SWITCHES) -I. $(GENERIC_DIR)/tkWindow.c -+ $(CC) -c $(CC_SWITCHES) -I. -DTK_LIBRARY=\"${TK_LIBRARY}\" $(GENERIC_DIR)/tkWindow.c - - tkButton.o: $(GENERIC_DIR)/tkButton.c - $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkButton.c diff --git a/pkgs/by-name/to/toml11/default.nix b/pkgs/by-name/to/toml11/default.nix deleted file mode 100644 index 641b72a..0000000 --- a/pkgs/by-name/to/toml11/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "toml11"; - version = "3.7.1"; - - src = fetchFromGitHub { - owner = "ToruNiina"; - repo = "toml11"; - rev = "v${finalAttrs.version}"; - hash = "sha256-HnhXBvIjo1JXhp+hUQvjs83t5IBVbNN6o3ZGhB4WESQ="; - }; - - nativeBuildInputs = [ - cmake - ]; - - meta = with lib; { - homepage = "https://github.com/ToruNiina/toml11"; - description = "TOML for Modern C++"; - longDescription = '' - toml11 is a C++11 (or later) header-only toml parser/encoder depending - only on C++ standard library. - - - It is compatible to the latest version of TOML v1.0.0. - - It is one of the most TOML standard compliant libraries, tested with - the language agnostic test suite for TOML parsers by BurntSushi. - - It shows highly informative error messages. - - It has configurable container. You can use any random-access containers - and key-value maps as backend containers. - - It optionally preserves comments without any overhead. - - It has configurable serializer that supports comments, inline tables, - literal strings and multiline strings. - - It supports user-defined type conversion from/into toml values. - - It correctly handles UTF-8 sequences, with or without BOM, both on posix - and Windows. - ''; - license = licenses.mit; - maintainers = with maintainers; [ AndersonTorres ]; - platforms = platforms.unix; - }; -}) -# TODO [ AndersonTorres ]: tests diff --git a/pkgs/by-name/tr/tracker/default.nix b/pkgs/by-name/tr/tracker/default.nix deleted file mode 100644 index 509c910..0000000 --- a/pkgs/by-name/tr/tracker/default.nix +++ /dev/null @@ -1,183 +0,0 @@ -{ 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 -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "tracker"; - version = "3.6.0"; - - outputs = [ "out" "dev" "devdoc" ]; - - src = fetchurl { - 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 - ]; - - 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 - libxml2 - sqlite - icu - libsoup - libsoup_3 - libuuid - json-glib - libstemmer - dbus - ] ++ lib.optionals stdenv.isLinux [ - systemd - ]; - - 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 - [ - "--cross-file=${crossFile}" - ] - ) ++ lib.optionals (!stdenv.isLinux) [ - "-Dsystemd_user_services=false" - ]; - - doCheck = - # https://gitlab.gnome.org/GNOME/tracker/-/issues/402 - !stdenv.isDarwin - # https://gitlab.gnome.org/GNOME/tracker/-/issues/398 - && !stdenv.is32bit; - - postPatch = '' - chmod +x \ - docs/reference/libtracker-sparql/embed-files.py \ - docs/reference/libtracker-sparql/generate-svgs.sh - patchShebangs \ - utils/data-generators/cc/generate \ - docs/reference/libtracker-sparql/embed-files.py \ - docs/reference/libtracker-sparql/generate-svgs.sh - ''; - - preCheck = - let - linuxDot0 = lib.optionalString stdenv.isLinux ".0"; - darwinDot0 = lib.optionalString stdenv.isDarwin ".0"; - extension = stdenv.hostPlatform.extensions.sharedLibrary; - in - '' - # (tracker-store:6194): Tracker-CRITICAL **: 09:34:07.722: Cannot initialize database: Could not open sqlite3 database:'/homeless-shelter/.cache/tracker/meta.db': unable to open database file - export HOME=$(mktemp -d) - - # Our gobject-introspection patches make the shared library paths absolute - # in the GIR files. When running functional tests, the library is not yet installed, - # though, so we need to replace the absolute path with a local one during build. - # We are using a symlink that will be overridden during installation. - mkdir -p $out/lib - ln -s $PWD/src/libtracker-sparql/libtracker-sparql-3.0${darwinDot0}${extension} $out/lib/libtracker-sparql-3.0${darwinDot0}${extension}${linuxDot0} - ''; - - checkPhase = '' - runHook preCheck - - dbus-run-session \ - --config-file=${dbus}/share/dbus-1/session.conf \ - meson test \ - --timeout-multiplier 2 \ - --print-errorlogs - - runHook postCheck - ''; - - postCheck = '' - # Clean up out symlinks - rm -r $out/lib - ''; - - postFixup = '' - # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back. - moveToOutput "share/doc" "$devdoc" - ''; - - # passthru = { - # updateScript = gnome.updateScript { - # packageName = finalAttrs.pname; - # }; - # tests.pkg-config = testers.hasPkgConfigModules { - # package = finalAttrs.finalPackage; - # }; - # }; - - meta = with lib; { - homepage = "https://tracker.gnome.org/"; - description = "Desktop-neutral user information store, search tool and indexer"; - mainProgram = "tracker3"; - maintainers = teams.gnome.members; - license = licenses.gpl2Plus; - platforms = platforms.unix; - pkgConfigModules = [ "tracker-sparql-3.0" "tracker-testutils-3.0" ]; - }; -}) diff --git a/pkgs/by-name/tr/tradcpp/aarch64.patch b/pkgs/by-name/tr/tradcpp/aarch64.patch deleted file mode 100644 index ef7ad98..0000000 --- a/pkgs/by-name/tr/tradcpp/aarch64.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff a/config.h b/config.h ---- a/config.h -+++ b/config.h -@@ -124,6 +124,8 @@ - #define CONFIG_CPU "__ppc64__" - #elif defined(__ARM__) - #define CONFIG_CPU "__ARM__" -+#elif defined(__aarch64__) -+#define CONFIG_CPU "__aarch64__" - #else - /* let it go */ - #endif diff --git a/pkgs/by-name/tr/tradcpp/default.nix b/pkgs/by-name/tr/tradcpp/default.nix deleted file mode 100644 index 73d0cf5..0000000 --- a/pkgs/by-name/tr/tradcpp/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib, stdenv, fetchurl, autoconf }: - -stdenv.mkDerivation rec { - pname = "tradcpp"; - version = "0.5.2"; - - src = fetchurl { - url = "https://ftp.netbsd.org/pub/NetBSD/misc/dholland/${pname}-${version}.tar.gz"; - sha256 = "1h2bwxwc13rz3g2236l89hm47f72hn3m4h7wjir3j532kq0m68bc"; - }; - - strictDeps = true; - # tradcpp only comes with BSD-make Makefile; the patch adds configure support - nativeBuildInputs = [ autoconf ]; - preConfigure = "autoconf"; - patches = [ - ./tradcpp-configure.patch - ./aarch64.patch - ]; - - meta = with lib; { - description = "A traditional (K&R-style) C macro preprocessor"; - mainProgram = "tradcpp"; - platforms = platforms.all; - license = licenses.bsd2; - }; - -} diff --git a/pkgs/by-name/tr/tradcpp/tradcpp-configure.patch b/pkgs/by-name/tr/tradcpp/tradcpp-configure.patch deleted file mode 100644 index 39cc499..0000000 --- a/pkgs/by-name/tr/tradcpp/tradcpp-configure.patch +++ /dev/null @@ -1,84 +0,0 @@ -*** /dev/null Wed Jan 7 11:47:26 2015 ---- tradcpp-0.4/Makefile.in Wed Jan 7 11:43:15 2015 -*************** -*** 0 **** ---- 1,64 ---- -+ SHELL = /bin/sh -+ -+ ### Filled in by `configure' ### -+ srcdir = @srcdir@ -+ VPATH = @srcdir@ -+ CC = @CC@ -+ CFLAGS = @CFLAGS@ -+ CPPFLAGS = @CPPFLAGS@ -+ -+ LDFLAGS = @LDFLAGS@ -+ -+ prefix = @prefix@ -+ exec_prefix = @exec_prefix@ -+ -+ bindir = @bindir@ -+ libdir = @libdir@ -+ incdir = @includedir@ -+ manext = 1 -+ mandir = @mandir@/man$(manext) -+ docdir = @docdir@ -+ datarootdir = @datarootdir@ -+ datadir = @datadir@ -+ -+ OBJS= main.o \ -+ files.o directive.o eval.o macro.o output.o \ -+ place.o array.o utils.o -+ -+ .PHONY: all clean install man doc dist -+ -+ default: all -+ -+ all: tradcpp -+ -+ tradcpp: $(OBJS) -+ $(CC) $(LDFLAGS) $(CFLAGS) $(CPPFLAGS) -o $@ $(OBJS) -+ -+ clean: -+ rm -f *.o -+ -+ distclean: clean -+ rm -f Makefile config.log config.status config-cache -+ -+ install: tradcpp -+ mkdir -p $(DESTDIR)$(mandir) -+ install tradcpp.1 $(DESTDIR)$(mandir) -+ mkdir -p $(DESTDIR)$(bindir) -+ install tradcpp $(DESTDIR)$(bindir) -+ -+ .c.o: -+ $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $< -+ -+ array.o: array.c array.h inlinedefs.h utils.h -+ directive.o: directive.c utils.h mode.h place.h files.h directive.h \ -+ macro.h eval.h output.h -+ eval.o: eval.c utils.h array.h inlinedefs.h mode.h place.h eval.h -+ files.o: files.c array.h inlinedefs.h utils.h mode.h place.h files.h \ -+ directive.h -+ macro.o: macro.c array.h inlinedefs.h utils.h mode.h place.h macro.h \ -+ output.h -+ main.o: main.c version.h config.h utils.h array.h inlinedefs.h mode.h \ -+ place.h files.h directive.h macro.h -+ output.o: output.c utils.h mode.h place.h output.h -+ place.o: place.c utils.h array.h inlinedefs.h place.h -+ utils.o: utils.c utils.h -*** /dev/null Wed Jan 7 11:47:26 2015 ---- tradcpp-0.4/configure.ac Wed Jan 7 11:22:18 2015 -*************** -*** 0 **** ---- 1,10 ---- -+ AC_PREREQ([2.60])dnl -+ AC_INIT(main.c) -+ AC_PROG_CC -+ AC_LANG(C) -+ AC_SUBST(CC) -+ AC_SUBST(CFLAGS) -+ AC_SUBST(CPPFLAGS) -+ AC_SUBST(LDFLAGS) -+ AC_SUBST(LD) -+ AC_OUTPUT(Makefile) diff --git a/pkgs/by-name/tz/tzdata/0001-Add-exe-extension-for-MS-Windows-binaries.patch b/pkgs/by-name/tz/tzdata/0001-Add-exe-extension-for-MS-Windows-binaries.patch deleted file mode 100644 index af90ce5..0000000 --- a/pkgs/by-name/tz/tzdata/0001-Add-exe-extension-for-MS-Windows-binaries.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/Makefile b/Makefile -index a9a989e..4da737b 100644 ---- a/Makefile -+++ b/Makefile -@@ -606,8 +606,8 @@ install: all $(DATA) $(REDO) $(MANS) - -t '$(DESTDIR)$(TZDEFAULT)' - cp -f $(TABDATA) '$(DESTDIR)$(TZDIR)/.' - cp tzselect '$(DESTDIR)$(BINDIR)/.' -- cp zdump '$(DESTDIR)$(ZDUMPDIR)/.' -- cp zic '$(DESTDIR)$(ZICDIR)/.' -+ cp zdump.exe '$(DESTDIR)$(ZDUMPDIR)/.' -+ cp zic.exe '$(DESTDIR)$(ZICDIR)/.' - cp libtz.a '$(DESTDIR)$(LIBDIR)/.' - $(RANLIB) '$(DESTDIR)$(LIBDIR)/libtz.a' - cp -f newctime.3 newtzset.3 '$(DESTDIR)$(MANDIR)/man3/.' diff --git a/pkgs/by-name/tz/tzdata/default.nix b/pkgs/by-name/tz/tzdata/default.nix deleted file mode 100644 index 522b2da..0000000 --- a/pkgs/by-name/tz/tzdata/default.nix +++ /dev/null @@ -1,85 +0,0 @@ -{ lib, stdenv, fetchurl, buildPackages }: - -stdenv.mkDerivation (finalAttrs: { - pname = "tzdata"; - version = "2024a"; - - srcs = [ - (fetchurl { - url = "https://data.iana.org/time-zones/releases/tzdata${finalAttrs.version}.tar.gz"; - hash = "sha256-DQQ0RZrL0gWaeo2h8zBKhKhlkfbtacYkj/+lArbt/+M="; - }) - (fetchurl { - url = "https://data.iana.org/time-zones/releases/tzcode${finalAttrs.version}.tar.gz"; - hash = "sha256-gAcolK3/WkWPHRQ+FuTKHYsqEiycU5naSCy2jLpqH/g="; - }) - ]; - - sourceRoot = "."; - - patches = lib.optionals stdenv.hostPlatform.isWindows [ - ./0001-Add-exe-extension-for-MS-Windows-binaries.patch - ]; - - 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" - ]; - - doCheck = true; - # everything except for: - # - check_web, because that needs curl and wants to talk to https://validator.w3.org - # - check_now, because that depends on the current time - checkTarget = "check_back check_character_set check_white_space check_links check_name_lengths check_slashed_abbrs check_sorted check_tables check_ziguard check_zishrink check_tzs"; - - installFlags = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ - "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 - - cp leap-seconds.list $out/share/zoneinfo - - mkdir -p "$dev/include" - cp tzfile.h "$dev/include/tzfile.h" - ''; - - setupHook = ./tzdata-setup-hook.sh; - - meta = with lib; { - homepage = "http://www.iana.org/time-zones"; - description = "Database of current and historical time zones"; - changelog = "https://github.com/eggert/tz/blob/${finalAttrs.version}/NEWS"; - license = with licenses; [ - bsd3 # tzcode - publicDomain # tzdata - ]; - platforms = platforms.all; - maintainers = with maintainers; [ ajs124 fpletz ]; - }; -}) diff --git a/pkgs/by-name/tz/tzdata/tzdata-setup-hook.sh b/pkgs/by-name/tz/tzdata/tzdata-setup-hook.sh deleted file mode 100644 index 9975d0a..0000000 --- a/pkgs/by-name/tz/tzdata/tzdata-setup-hook.sh +++ /dev/null @@ -1,5 +0,0 @@ -tzdataHook() { - export TZDIR=@out@/share/zoneinfo -} - -addEnvHooks "$targetOffset" tzdataHook diff --git a/pkgs/by-name/un/unifdef/default.nix b/pkgs/by-name/un/unifdef/default.nix deleted file mode 100644 index ebb034a..0000000 --- a/pkgs/by-name/un/unifdef/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "unifdef"; - version = "2.12"; - - src = fetchurl { - url = "https://dotat.at/prog/unifdef/unifdef-${version}.tar.xz"; - sha256 = "00647bp3m9n01ck6ilw6r24fk4mivmimamvm4hxp5p6wxh10zkj3"; - }; - - makeFlags = [ - "prefix=$(out)" - "DESTDIR=" - ]; - - meta = with lib; { - homepage = "https://dotat.at/prog/unifdef/"; - description = "Selectively remove C preprocessor conditionals"; - license = licenses.bsd2; - platforms = platforms.unix; - maintainers = with maintainers; [ orivej vrthra ]; - }; -} diff --git a/pkgs/by-name/un/unixtools/packages.nix b/pkgs/by-name/un/unixtools/packages.nix deleted file mode 100644 index 6b1e475..0000000 --- a/pkgs/by-name/un/unixtools/packages.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ ... }: -res: pkgs: super: - -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; -} diff --git a/pkgs/by-name/un/unixtools/unixtools.nix b/pkgs/by-name/un/unixtools/unixtools.nix deleted file mode 100644 index e15d38d..0000000 --- a/pkgs/by-name/un/unixtools/unixtools.nix +++ /dev/null @@ -1,201 +0,0 @@ -{ 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 -# coreutils, these are commonly assumed to be available by build -# systems, but we can't assume they are available. In Nix, we list -# each program by name directly through this unixtools attribute. - -# You should always try to use single binaries when available. For -# instance, if your program needs to use "ps", just list it as a build -# input, not "procps" which requires Linux. - -let - inherit (lib) - getBin - getOutput - mapAttrs - platforms - ; - - version = "1003.1-2008"; - - 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 - - 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 - ''; - - # more is unavailable in darwin - # so we just use less - more_compat = runCommand "more-${pkgs.less.name}" {} '' - mkdir -p $out/bin - ln -s ${pkgs.less}/bin/less $out/bin/more - ''; - - bins = mapAttrs singleBinary { - # singular binaries - arp = { - linux = pkgs.nettools; - darwin = pkgs.darwin.network_cmds; - }; - col = { - linux = pkgs.util-linux; - darwin = pkgs.darwin.text_cmds; - }; - column = { - linux = pkgs.util-linux; - darwin = pkgs.darwin.text_cmds; - }; - eject = { - linux = pkgs.util-linux; - }; - 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; - darwin = pkgs.netbsd.getent; - }; - getopt = { - linux = pkgs.util-linux; - darwin = pkgs.getopt; - }; - fdisk = { - linux = pkgs.util-linux; - darwin = pkgs.darwin.diskdev_cmds; - }; - fsck = { - linux = pkgs.util-linux; - darwin = pkgs.darwin.diskdev_cmds; - }; - hexdump = { - linux = pkgs.util-linux; - darwin = pkgs.darwin.shell_cmds; - }; - hostname = { - linux = pkgs.nettools; - darwin = pkgs.darwin.shell_cmds; - }; - ifconfig = { - linux = pkgs.nettools; - darwin = pkgs.darwin.network_cmds; - }; - killall = { - linux = pkgs.psmisc; - darwin = pkgs.darwin.shell_cmds; - }; - locale = { - linux = pkgs.glibc; - darwin = pkgs.darwin.adv_cmds; - }; - logger = { - linux = pkgs.util-linux; - }; - more = { - linux = pkgs.util-linux; - darwin = more_compat; - }; - mount = { - linux = pkgs.util-linux; - darwin = pkgs.darwin.diskdev_cmds; - }; - netstat = { - linux = pkgs.nettools; - darwin = pkgs.darwin.network_cmds; - }; - ping = { - linux = pkgs.iputils; - darwin = pkgs.darwin.network_cmds; - }; - ps = { - linux = pkgs.procps; - darwin = pkgs.darwin.ps; - }; - quota = { - linux = pkgs.linuxquota; - darwin = pkgs.darwin.diskdev_cmds; - }; - route = { - linux = pkgs.nettools; - darwin = pkgs.darwin.network_cmds; - }; - script = { - linux = pkgs.util-linux; - darwin = pkgs.darwin.shell_cmds; - }; - sysctl = { - linux = pkgs.procps; - darwin = pkgs.darwin.system_cmds; - }; - top = { - linux = pkgs.procps; - darwin = pkgs.darwin.top; - }; - umount = { - linux = pkgs.util-linux; - darwin = pkgs.darwin.diskdev_cmds; - }; - whereis = { - linux = pkgs.util-linux; - darwin = pkgs.darwin.shell_cmds; - }; - wall = { - linux = pkgs.util-linux; - }; - watch = { - linux = pkgs.procps; - - # 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") {}; - }; - write = { - linux = pkgs.util-linux; - darwin = pkgs.darwin.basic_cmds; - }; - xxd = { - linux = pkgs.vim.xxd; - darwin = pkgs.vim.xxd; - }; - }; - - makeCompat = pname: paths: - buildEnv { - name = "${pname}-${version}"; - inherit paths; - }; - - # 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 diff --git a/pkgs/by-name/un/unzip/CVE-2014-8139.diff b/pkgs/by-name/un/unzip/CVE-2014-8139.diff deleted file mode 100644 index 3bcc21c..0000000 --- a/pkgs/by-name/un/unzip/CVE-2014-8139.diff +++ /dev/null @@ -1,47 +0,0 @@ -From RedHat: https://bugzilla.redhat.com/attachment.cgi?id=971984&action=diff&context=patch&collapsed=&headers=1&format=raw - ---- unzip60/extract.c 2010-04-03 14:41:55 -0500 -+++ unzip60/extract.c 2014-12-03 15:33:35 -0600 -@@ -1,5 +1,5 @@ - /* -- Copyright (c) 1990-2009 Info-ZIP. All rights reserved. -+ Copyright (c) 1990-2014 Info-ZIP. All rights reserved. - - See the accompanying file LICENSE, version 2009-Jan-02 or later - (the contents of which are also included in unzip.h) for terms of use. -@@ -298,6 +298,8 @@ - #ifndef SFX - static ZCONST char Far InconsistEFlength[] = "bad extra-field entry:\n \ - EF block length (%u bytes) exceeds remaining EF data (%u bytes)\n"; -+ static ZCONST char Far TooSmallEFlength[] = "bad extra-field entry:\n \ -+ EF block length (%u bytes) invalid (< %d)\n"; - static ZCONST char Far InvalidComprDataEAs[] = - " invalid compressed data for EAs\n"; - # if (defined(WIN32) && defined(NTSD_EAS)) -@@ -2023,7 +2025,8 @@ - ebID = makeword(ef); - ebLen = (unsigned)makeword(ef+EB_LEN); - -- if (ebLen > (ef_len - EB_HEADSIZE)) { -+ if (ebLen > (ef_len - EB_HEADSIZE)) -+ { - /* Discovered some extra field inconsistency! */ - if (uO.qflag) - Info(slide, 1, ((char *)slide, "%-22s ", -@@ -2032,6 +2035,16 @@ - ebLen, (ef_len - EB_HEADSIZE))); - return PK_ERR; - } -+ else if (ebLen < EB_HEADSIZE) -+ { -+ /* Extra block length smaller than header length. */ -+ if (uO.qflag) -+ Info(slide, 1, ((char *)slide, "%-22s ", -+ FnFilter1(G.filename))); -+ Info(slide, 1, ((char *)slide, LoadFarString(TooSmallEFlength), -+ ebLen, EB_HEADSIZE)); -+ return PK_ERR; -+ } - - switch (ebID) { - case EF_OS2: diff --git a/pkgs/by-name/un/unzip/CVE-2014-8140.diff b/pkgs/by-name/un/unzip/CVE-2014-8140.diff deleted file mode 100644 index 81b96b8..0000000 --- a/pkgs/by-name/un/unzip/CVE-2014-8140.diff +++ /dev/null @@ -1,26 +0,0 @@ -From RedHat: https://bugzilla.redhat.com/attachment.cgi?id=969621&action=diff -(unzip60/ path prefix added) - ---- unzip60/extract.c 2009-03-14 02:32:52.000000000 +0100 -+++ unzip60/extract.c 2014-12-05 22:43:13.000000000 +0100 -@@ -2221,10 +2234,17 @@ static int test_compr_eb(__G__ eb, eb_si - if (compr_offset < 4) /* field is not compressed: */ - return PK_OK; /* do nothing and signal OK */ - -+ /* Return no/bad-data error status if any problem is found: -+ * 1. eb_size is too small to hold the uncompressed size -+ * (eb_ucsize). (Else extract eb_ucsize.) -+ * 2. eb_ucsize is zero (invalid). 2014-12-04 SMS. -+ * 3. eb_ucsize is positive, but eb_size is too small to hold -+ * the compressed data header. -+ */ - if ((eb_size < (EB_UCSIZE_P + 4)) || -- ((eb_ucsize = makelong(eb+(EB_HEADSIZE+EB_UCSIZE_P))) > 0L && -- eb_size <= (compr_offset + EB_CMPRHEADLEN))) -- return IZ_EF_TRUNC; /* no compressed data! */ -+ ((eb_ucsize = makelong( eb+ (EB_HEADSIZE+ EB_UCSIZE_P))) == 0L) || -+ ((eb_ucsize > 0L) && (eb_size <= (compr_offset + EB_CMPRHEADLEN)))) -+ return IZ_EF_TRUNC; /* no/bad compressed data! */ - - if ( - #ifdef INT_16BIT diff --git a/pkgs/by-name/un/unzip/CVE-2014-8141.diff b/pkgs/by-name/un/unzip/CVE-2014-8141.diff deleted file mode 100644 index 1100719..0000000 --- a/pkgs/by-name/un/unzip/CVE-2014-8141.diff +++ /dev/null @@ -1,136 +0,0 @@ -From RedHat: https://bugzilla.redhat.com/attachment.cgi?id=969625&action=diff -(unzip60/ path prefix added) - ---- unzip60/process.c 2009-03-06 02:25:10.000000000 +0100 -+++ unzip60/process.c 2014-12-05 22:42:39.000000000 +0100 -@@ -1,5 +1,5 @@ - /* -- Copyright (c) 1990-2009 Info-ZIP. All rights reserved. -+ Copyright (c) 1990-2014 Info-ZIP. All rights reserved. - - See the accompanying file LICENSE, version 2009-Jan-02 or later - (the contents of which are also included in unzip.h) for terms of use. -@@ -1888,48 +1888,82 @@ int getZip64Data(__G__ ef_buf, ef_len) - and a 4-byte version of disk start number. - Sets both local header and central header fields. Not terribly clever, - but it means that this procedure is only called in one place. -+ -+ 2014-12-05 SMS. -+ Added checks to ensure that enough data are available before calling -+ makeint64() or makelong(). Replaced various sizeof() values with -+ simple ("4" or "8") constants. (The Zip64 structures do not depend -+ on our variable sizes.) Error handling is crude, but we should now -+ stay within the buffer. - ---------------------------------------------------------------------------*/ - -+#define Z64FLGS 0xffff -+#define Z64FLGL 0xffffffff -+ - if (ef_len == 0 || ef_buf == NULL) - return PK_COOL; - - Trace((stderr,"\ngetZip64Data: scanning extra field of length %u\n", - ef_len)); - -- while (ef_len >= EB_HEADSIZE) { -+ while (ef_len >= EB_HEADSIZE) -+ { - eb_id = makeword(EB_ID + ef_buf); - eb_len = makeword(EB_LEN + ef_buf); - -- if (eb_len > (ef_len - EB_HEADSIZE)) { -- /* discovered some extra field inconsistency! */ -+ if (eb_len > (ef_len - EB_HEADSIZE)) -+ { -+ /* Extra block length exceeds remaining extra field length. */ - Trace((stderr, - "getZip64Data: block length %u > rest ef_size %u\n", eb_len, - ef_len - EB_HEADSIZE)); - break; - } -- if (eb_id == EF_PKSZ64) { -- -+ if (eb_id == EF_PKSZ64) -+ { - int offset = EB_HEADSIZE; - -- if (G.crec.ucsize == 0xffffffff || G.lrec.ucsize == 0xffffffff){ -- G.lrec.ucsize = G.crec.ucsize = makeint64(offset + ef_buf); -- offset += sizeof(G.crec.ucsize); -+ if ((G.crec.ucsize == Z64FLGL) || (G.lrec.ucsize == Z64FLGL)) -+ { -+ if (offset+ 8 > ef_len) -+ return PK_ERR; -+ -+ G.crec.ucsize = G.lrec.ucsize = makeint64(offset + ef_buf); -+ offset += 8; - } -- if (G.crec.csize == 0xffffffff || G.lrec.csize == 0xffffffff){ -- G.csize = G.lrec.csize = G.crec.csize = makeint64(offset + ef_buf); -- offset += sizeof(G.crec.csize); -+ -+ if ((G.crec.csize == Z64FLGL) || (G.lrec.csize == Z64FLGL)) -+ { -+ if (offset+ 8 > ef_len) -+ return PK_ERR; -+ -+ G.csize = G.crec.csize = G.lrec.csize = makeint64(offset + ef_buf); -+ offset += 8; - } -- if (G.crec.relative_offset_local_header == 0xffffffff){ -+ -+ if (G.crec.relative_offset_local_header == Z64FLGL) -+ { -+ if (offset+ 8 > ef_len) -+ return PK_ERR; -+ - G.crec.relative_offset_local_header = makeint64(offset + ef_buf); -- offset += sizeof(G.crec.relative_offset_local_header); -+ offset += 8; - } -- if (G.crec.disk_number_start == 0xffff){ -+ -+ if (G.crec.disk_number_start == Z64FLGS) -+ { -+ if (offset+ 4 > ef_len) -+ return PK_ERR; -+ - G.crec.disk_number_start = (zuvl_t)makelong(offset + ef_buf); -- offset += sizeof(G.crec.disk_number_start); -+ offset += 4; - } -+#if 0 -+ break; /* Expect only one EF_PKSZ64 block. */ -+#endif /* 0 */ - } - -- /* Skip this extra field block */ -+ /* Skip this extra field block. */ - ef_buf += (eb_len + EB_HEADSIZE); - ef_len -= (eb_len + EB_HEADSIZE); - } ---- unzip60/fileio.c 2009-04-20 02:03:44.000000000 +0200 -+++ unzip60/fileio.c 2014-12-05 22:44:16.000000000 +0100 -@@ -176,6 +176,8 @@ static ZCONST char Far FilenameTooLongTr - #endif - static ZCONST char Far ExtraFieldTooLong[] = - "warning: extra field too long (%d). Ignoring...\n"; -+static ZCONST char Far ExtraFieldCorrupt[] = -+ "warning: extra field (type: 0x%04x) corrupt. Continuing...\n"; - - #ifdef WINDLL - static ZCONST char Far DiskFullQuery[] = -@@ -2295,7 +2297,12 @@ int do_string(__G__ length, option) /* - if (readbuf(__G__ (char *)G.extra_field, length) == 0) - return PK_EOF; - /* Looks like here is where extra fields are read */ -- getZip64Data(__G__ G.extra_field, length); -+ if (getZip64Data(__G__ G.extra_field, length) != PK_COOL) -+ { -+ Info(slide, 0x401, ((char *)slide, -+ LoadFarString( ExtraFieldCorrupt), EF_PKSZ64)); -+ error = PK_WARN; -+ } - #ifdef UNICODE_SUPPORT - G.unipath_filename = NULL; - if (G.UzO.U_flag < 2) { diff --git a/pkgs/by-name/un/unzip/CVE-2014-9636.diff b/pkgs/by-name/un/unzip/CVE-2014-9636.diff deleted file mode 100644 index d4c7f75..0000000 --- a/pkgs/by-name/un/unzip/CVE-2014-9636.diff +++ /dev/null @@ -1,42 +0,0 @@ -From 190040ebfcf5395a6ccedede2cc9343d34f0a108 Mon Sep 17 00:00:00 2001 -From: mancha -Date: Wed, 11 Feb 2015 -Subject: Info-ZIP UnZip buffer overflow - -By carefully crafting a corrupt ZIP archive with "extra fields" that -purport to have compressed blocks larger than the corresponding -uncompressed blocks in STORED no-compression mode, an attacker can -trigger a heap overflow that can result in application crash or -possibly have other unspecified impact. - -This patch ensures that when extra fields use STORED mode, the -"compressed" and uncompressed block sizes match. - ---- - extract.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - ---- a/extract.c -+++ b/extract.c -@@ -2217,6 +2217,7 @@ static int test_compr_eb(__G__ eb, eb_si - ulg eb_ucsize; - uch *eb_ucptr; - int r; -+ ush method; - - if (compr_offset < 4) /* field is not compressed: */ - return PK_OK; /* do nothing and signal OK */ -@@ -2226,6 +2227,13 @@ static int test_compr_eb(__G__ eb, eb_si - eb_size <= (compr_offset + EB_CMPRHEADLEN))) - return IZ_EF_TRUNC; /* no compressed data! */ - -+ method = makeword(eb + (EB_HEADSIZE + compr_offset)); -+ if ((method == STORED) && -+ (eb_size - compr_offset - EB_CMPRHEADLEN != eb_ucsize)) -+ return PK_ERR; /* compressed & uncompressed -+ * should match in STORED -+ * method */ -+ - if ( - #ifdef INT_16BIT - (((ulg)(extent)eb_ucsize) != eb_ucsize) || diff --git a/pkgs/by-name/un/unzip/CVE-2014-9913.patch b/pkgs/by-name/un/unzip/CVE-2014-9913.patch deleted file mode 100644 index a5675f4..0000000 --- a/pkgs/by-name/un/unzip/CVE-2014-9913.patch +++ /dev/null @@ -1,29 +0,0 @@ -From: "Steven M. Schweda" -Subject: Fix CVE-2014-9913, buffer overflow in unzip -Bug: https://sourceforge.net/p/infozip/bugs/27/ -Bug-Debian: https://bugs.debian.org/847485 -Bug-Ubuntu: https://launchpad.net/bugs/387350 -X-Debian-version: 6.0-21 - ---- a/list.c -+++ b/list.c -@@ -339,7 +339,18 @@ - G.crec.compression_method == ENHDEFLATED) { - methbuf[5] = dtype[(G.crec.general_purpose_bit_flag>>1) & 3]; - } else if (methnum >= NUM_METHODS) { -- sprintf(&methbuf[4], "%03u", G.crec.compression_method); -+ /* 2013-02-26 SMS. -+ * http://sourceforge.net/p/infozip/bugs/27/ CVE-2014-9913. -+ * Unexpectedly large compression methods overflow -+ * &methbuf[]. Use the old, three-digit decimal format -+ * for values which fit. Otherwise, sacrifice the -+ * colon, and use four-digit hexadecimal. -+ */ -+ if (G.crec.compression_method <= 999) { -+ sprintf( &methbuf[ 4], "%03u", G.crec.compression_method); -+ } else { -+ sprintf( &methbuf[ 3], "%04X", G.crec.compression_method); -+ } - } - - #if 0 /* GRR/Euro: add this? */ diff --git a/pkgs/by-name/un/unzip/CVE-2015-7696.diff b/pkgs/by-name/un/unzip/CVE-2015-7696.diff deleted file mode 100644 index 3aad17b..0000000 --- a/pkgs/by-name/un/unzip/CVE-2015-7696.diff +++ /dev/null @@ -1,66 +0,0 @@ -From 68efed87fabddd450c08f3112f62a73f61d493c9 Mon Sep 17 00:00:00 2001 -From: Petr Stodulka -Date: Mon, 14 Sep 2015 18:23:17 +0200 -Subject: [PATCH 1/2] upstream fix for heap overflow - -https://bugzilla.redhat.com/attachment.cgi?id=1073002 ---- - crypt.c | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/crypt.c b/crypt.c -index 784e411..a8975f2 100644 ---- a/crypt.c -+++ b/crypt.c -@@ -465,7 +465,17 @@ int decrypt(__G__ passwrd) - GLOBAL(pInfo->encrypted) = FALSE; - defer_leftover_input(__G); - for (n = 0; n < RAND_HEAD_LEN; n++) { -- b = NEXTBYTE; -+ /* 2012-11-23 SMS. (OUSPG report.) -+ * Quit early if compressed size < HEAD_LEN. The resulting -+ * error message ("unable to get password") could be improved, -+ * but it's better than trying to read nonexistent data, and -+ * then continuing with a negative G.csize. (See -+ * fileio.c:readbyte()). -+ */ -+ if ((b = NEXTBYTE) == (ush)EOF) -+ { -+ return PK_ERR; -+ } - h[n] = (uch)b; - Trace((stdout, " (%02x)", h[n])); - } --- -2.4.6 - - -From bd8a743ee0a77e65ad07ef4196c4cd366add3f26 Mon Sep 17 00:00:00 2001 -From: Kamil Dudka -Date: Mon, 14 Sep 2015 18:24:56 +0200 -Subject: [PATCH 2/2] fix infinite loop when extracting empty bzip2 data - ---- - extract.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/extract.c b/extract.c -index 7134bfe..29db027 100644 ---- a/extract.c -+++ b/extract.c -@@ -2733,6 +2733,12 @@ __GDEF - int repeated_buf_err; - bz_stream bstrm; - -+ if (G.incnt <= 0 && G.csize <= 0L) { -+ /* avoid an infinite loop */ -+ Trace((stderr, "UZbunzip2() got empty input\n")); -+ return 2; -+ } -+ - #if (defined(DLL) && !defined(NO_SLIDE_REDIR)) - if (G.redirect_slide) - wsize = G.redirect_size, redirSlide = G.redirect_buffer; --- -2.4.6 - diff --git a/pkgs/by-name/un/unzip/CVE-2015-7697.diff b/pkgs/by-name/un/unzip/CVE-2015-7697.diff deleted file mode 100644 index 98ebf53..0000000 --- a/pkgs/by-name/un/unzip/CVE-2015-7697.diff +++ /dev/null @@ -1,36 +0,0 @@ -From bd150334fb4084f5555a6be26b015a0671cb5b74 Mon Sep 17 00:00:00 2001 -From: Kamil Dudka -Date: Tue, 22 Sep 2015 18:52:23 +0200 -Subject: [PATCH] extract: prevent unsigned overflow on invalid input - -Suggested-by: Stefan Cornelius ---- - extract.c | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git a/extract.c b/extract.c -index 29db027..b9ae667 100644 ---- a/extract.c -+++ b/extract.c -@@ -1257,8 +1257,17 @@ static int extract_or_test_entrylist(__G__ numchunk, - if (G.lrec.compression_method == STORED) { - zusz_t csiz_decrypted = G.lrec.csize; - -- if (G.pInfo->encrypted) -+ if (G.pInfo->encrypted) { -+ if (csiz_decrypted <= 12) { -+ /* handle the error now to prevent unsigned overflow */ -+ Info(slide, 0x401, ((char *)slide, -+ LoadFarStringSmall(ErrUnzipNoFile), -+ LoadFarString(InvalidComprData), -+ LoadFarStringSmall2(Inflate))); -+ return PK_ERR; -+ } - csiz_decrypted -= 12; -+ } - if (G.lrec.ucsize != csiz_decrypted) { - Info(slide, 0x401, ((char *)slide, - LoadFarStringSmall2(WrnStorUCSizCSizDiff), --- -2.5.2 - diff --git a/pkgs/by-name/un/unzip/CVE-2016-9844.patch b/pkgs/by-name/un/unzip/CVE-2016-9844.patch deleted file mode 100644 index 52d0798..0000000 --- a/pkgs/by-name/un/unzip/CVE-2016-9844.patch +++ /dev/null @@ -1,28 +0,0 @@ -From: "Steven M. Schweda" -Subject: Fix CVE-2016-9844, buffer overflow in zipinfo -Bug-Debian: https://bugs.debian.org/847486 -Bug-Ubuntu: https://launchpad.net/bugs/1643750 -X-Debian-version: 6.0-21 - ---- a/zipinfo.c -+++ b/zipinfo.c -@@ -1921,7 +1921,18 @@ - ush dnum=(ush)((G.crec.general_purpose_bit_flag>>1) & 3); - methbuf[3] = dtype[dnum]; - } else if (methnum >= NUM_METHODS) { /* unknown */ -- sprintf(&methbuf[1], "%03u", G.crec.compression_method); -+ /* 2016-12-05 SMS. -+ * https://launchpad.net/bugs/1643750 -+ * Unexpectedly large compression methods overflow -+ * &methbuf[]. Use the old, three-digit decimal format -+ * for values which fit. Otherwise, sacrifice the "u", -+ * and use four-digit hexadecimal. -+ */ -+ if (G.crec.compression_method <= 999) { -+ sprintf( &methbuf[ 1], "%03u", G.crec.compression_method); -+ } else { -+ sprintf( &methbuf[ 0], "%04X", G.crec.compression_method); -+ } - } - - for (k = 0; k < 15; ++k) diff --git a/pkgs/by-name/un/unzip/CVE-2018-18384.patch b/pkgs/by-name/un/unzip/CVE-2018-18384.patch deleted file mode 100644 index e9320e1..0000000 --- a/pkgs/by-name/un/unzip/CVE-2018-18384.patch +++ /dev/null @@ -1,35 +0,0 @@ ---- unzip60/list.c -+++ unzip60/list.c -@@ -97,7 +97,7 @@ int list_files(__G) /* return PK-type - { - int do_this_file=FALSE, cfactor, error, error_in_archive=PK_COOL; - #ifndef WINDLL -- char sgn, cfactorstr[10]; -+ char sgn, cfactorstr[1+10+1+1]; /* %NUL */ - int longhdr=(uO.vflag>1); - #endif - int date_format; -@@ -389,9 +389,9 @@ int list_files(__G) /* return PK-type - } - #else /* !WINDLL */ - if (cfactor == 100) -- sprintf(cfactorstr, LoadFarString(CompFactor100)); -+ snprintf(cfactorstr, sizeof(cfactorstr), LoadFarString(CompFactor100)); - else -- sprintf(cfactorstr, LoadFarString(CompFactorStr), sgn, cfactor); -+ snprintf(cfactorstr, sizeof(cfactorstr), LoadFarString(CompFactorStr), sgn, cfactor); - if (longhdr) - Info(slide, 0, ((char *)slide, LoadFarString(LongHdrStats), - FmZofft(G.crec.ucsize, "8", "u"), methbuf, -@@ -471,9 +471,9 @@ int list_files(__G) /* return PK-type - - #else /* !WINDLL */ - if (cfactor == 100) -- sprintf(cfactorstr, LoadFarString(CompFactor100)); -+ snprintf(cfactorstr, sizeof(cfactorstr), LoadFarString(CompFactor100)); - else -- sprintf(cfactorstr, LoadFarString(CompFactorStr), sgn, cfactor); -+ snprintf(cfactorstr, sizeof(cfactorstr), LoadFarString(CompFactorStr), sgn, cfactor); - if (longhdr) { - Info(slide, 0, ((char *)slide, LoadFarString(LongFileTrailer), - FmZofft(tot_ucsize, "8", "u"), FmZofft(tot_csize, "8", "u"), diff --git a/pkgs/by-name/un/unzip/default.nix b/pkgs/by-name/un/unzip/default.nix deleted file mode 100644 index 9860817..0000000 --- a/pkgs/by-name/un/unzip/default.nix +++ /dev/null @@ -1,107 +0,0 @@ -{ lib, stdenv, fetchurl -, bzip2 -, enableNLS ? false, libnatspec -}: - -stdenv.mkDerivation rec { - pname = "unzip"; - version = "6.0"; - - src = fetchurl { - url = "mirror://sourceforge/infozip/unzip${lib.replaceStrings ["."] [""] version}.tar.gz"; - sha256 = "0dxx11knh3nk95p2gg2ak777dd11pr7jx5das2g49l262scrcv83"; - }; - - hardeningDisable = [ "format" ]; - - 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" - - "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 { - 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; - - makefile = "unix/Makefile"; - - 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" ]; - - 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"}" - ]; - - setupHook = ./setup-hook.sh; - - meta = { - homepage = "http://www.info-zip.org"; - description = "An extraction utility for archives compressed in .zip format"; - license = lib.licenses.info-zip; - platforms = lib.platforms.all; - mainProgram = "unzip"; - }; -} diff --git a/pkgs/by-name/un/unzip/dont-hardcode-cc.patch b/pkgs/by-name/un/unzip/dont-hardcode-cc.patch deleted file mode 100644 index 15dbbfe..0000000 --- a/pkgs/by-name/un/unzip/dont-hardcode-cc.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- a/unix/Makefile -+++ b/unix/Makefile -@@ -42,9 +42,9 @@ - # such as -DDOSWILD). - - # UnZip flags --CC = cc# try using "gcc" target rather than changing this (CC and LD -+CC ?= cc# try using "gcc" target rather than changing this (CC and LD - LD = $(CC)# must match, else "unresolved symbol: ___main" is possible) --AS = as -+AS ?= as - LOC = $(D_USE_BZ2) $(LOCAL_UNZIP) - AF = $(LOC) - CFLAGS = -O diff --git a/pkgs/by-name/un/unzip/implicit-declarations-fix.patch b/pkgs/by-name/un/unzip/implicit-declarations-fix.patch deleted file mode 100644 index df19bf1..0000000 --- a/pkgs/by-name/un/unzip/implicit-declarations-fix.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- a/unix/configure 2009-04-16 15:25:12.000000000 -0400 -+++ b/unix/configure 2023-05-30 15:18:33.670321348 -0400 -@@ -408,7 +408,7 @@ - echo Check for errno declaration - cat > conftest.c << _EOF_ - #include --main() -+int main() - { - errno = 0; - return 0; -@@ -419,6 +419,8 @@ - - echo Check for directory libraries - cat > conftest.c << _EOF_ -+#include -+#include - int main() { return closedir(opendir(".")); } - _EOF_ - - diff --git a/pkgs/by-name/un/unzip/setup-hook.sh b/pkgs/by-name/un/unzip/setup-hook.sh deleted file mode 100644 index 99c63f6..0000000 --- a/pkgs/by-name/un/unzip/setup-hook.sh +++ /dev/null @@ -1,11 +0,0 @@ -unpackCmdHooks+=(_tryUnzip) -_tryUnzip() { - if ! [[ "$curSrc" =~ \.zip$ ]]; then return 1; fi - - # UTF-8 locale is needed for unzip on glibc to handle UTF-8 symbols: - # https://github.com/NixOS/nixpkgs/issues/176225#issuecomment-1146617263 - # Otherwise unzip unpacks escaped file names as if '-U' options was in effect. - # - # Pick en_US.UTF-8 as most possible to be present on glibc, musl and darwin. - LANG=en_US.UTF-8 unzip -qq "$curSrc" -} diff --git a/pkgs/by-name/ut/util-linux/default.nix b/pkgs/by-name/ut/util-linux/default.nix deleted file mode 100644 index e533a81..0000000 --- a/pkgs/by-name/ut/util-linux/default.nix +++ /dev/null @@ -1,141 +0,0 @@ -{ 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"; - version = "2.39.3"; - - src = fetchurl { - url = "mirror://kernel/linux/utils/util-linux/v${lib.versions.majorMinor version}/util-linux-${version}.tar.xz"; - hash = "sha256-e2YF5I0aSfQ8xLTPxZ8xPQ3VQC+kC5aBC9Vy4Wff7Q8="; - }; - - 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" ]; - separateDebugInfo = true; - - 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" - ''; - - # !!! It would be better to obtain the path to the mount helpers - # (/sbin/mount.*) through an environment variable, but that's - # somewhat risky because we have to consider that mount can setuid - # root... - configureFlags = [ - "--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-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.enableFeature translateManpages "poman") - "SYSCONFSTATICDIR=${placeholder "lib"}/lib" - ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) - "scanf_cv_type_modifier=ms" - ; - - makeFlags = [ - "usrbin_execdir=${placeholder "bin"}/bin" - "usrlib_execdir=${placeholder "lib"}/lib" - "usrsbin_execdir=${placeholder "bin"}/sbin" - ]; - - nativeBuildInputs = [ pkg-config installShellFiles ] - ++ lib.optionals translateManpages [ po4a ]; - - buildInputs = [ zlib libxcrypt ] - ++ lib.optionals pamSupport [ pam ] - ++ lib.optionals capabilitiesSupport [ libcap_ng ] - ++ lib.optionals ncursesSupport [ ncurses ] - ++ lib.optionals systemdSupport [ systemd ] - ++ lib.optionals (stdenv.system == "x86_64-darwin") [ memstreamHook ]; - - doCheck = false; # "For development purpose only. Don't execute on production system!" - - enableParallelBuilding = true; - - 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/swapon "$swap" - moveToOutput sbin/swapoff "$swap" - prefix=$swap _moveSbin - ln -svf "$swap/bin/"* $bin/bin/ - '' + '' - - installShellCompletion --bash bash-completion/* - ''; - - # passthru = { - # updateScript = gitUpdater { - # # No nicer place to find latest release. - # url = "https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git"; - # rev-prefix = "v"; - # ignoredVersions = "(-rc).*"; - # }; - # }; - - meta = with lib; { - homepage = "https://www.kernel.org/pub/linux/utils/util-linux/"; - 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 ]; - platforms = platforms.unix; - pkgConfigModules = [ - "blkid" - "fdisk" - "mount" - "smartcols" - "uuid" - ]; - priority = 6; # lower priority than coreutils ("kill") and shadow ("login" etc.) packages - }; -} diff --git a/pkgs/by-name/ut/util-linux/packages.nix b/pkgs/by-name/ut/util-linux/packages.nix deleted file mode 100644 index 35d1499..0000000 --- a/pkgs/by-name/ut/util-linux/packages.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - util-linux = callPackage ./. { }; - util-linuxMinimal = util-linux.override { - nlsSupport = false; - ncursesSupport = false; - systemdSupport = false; - translateManpages = false; - }; - - libuuid = - if stdenv.isLinux - then util-linuxMinimal - else null; -} diff --git a/pkgs/by-name/ut/util-linux/rtcwake-search-PATH-for-shutdown.patch b/pkgs/by-name/ut/util-linux/rtcwake-search-PATH-for-shutdown.patch deleted file mode 100644 index 52c970a..0000000 --- a/pkgs/by-name/ut/util-linux/rtcwake-search-PATH-for-shutdown.patch +++ /dev/null @@ -1,69 +0,0 @@ -Search $PATH for the shutdown binary instead of hard-coding /sbin/shutdown, -which isn't valid on NixOS (and a compatibility link on most other modern -distros anyway). - ---- a/include/pathnames.h -+++ b/include/pathnames.h -@@ -50,8 +50,8 @@ - #ifndef _PATH_LOGIN - # define _PATH_LOGIN "/bin/login" - #endif --#define _PATH_SHUTDOWN "/sbin/shutdown" --#define _PATH_POWEROFF "/sbin/poweroff" -+#define _PATH_SHUTDOWN "shutdown" -+#define _PATH_POWEROFF "poweroff" - - #define _PATH_TERMCOLORS_DIRNAME "terminal-colors.d" - #define _PATH_TERMCOLORS_DIR "/etc/" _PATH_TERMCOLORS_DIRNAME ---- a/sys-utils/rtcwake.c -+++ b/sys-utils/rtcwake.c -@@ -587,29 +587,29 @@ int main(int argc, char **argv) - char *arg[5]; - int i = 0; - -- if (!access(_PATH_SHUTDOWN, X_OK)) { -- arg[i++] = _PATH_SHUTDOWN; -- arg[i++] = "-h"; -- arg[i++] = "-P"; -- arg[i++] = "now"; -- arg[i] = NULL; -- } else if (!access(_PATH_POWEROFF, X_OK)) { -- arg[i++] = _PATH_POWEROFF; -- arg[i] = NULL; -- } else { -- arg[i] = NULL; -- } -+ arg[i++] = _PATH_SHUTDOWN; -+ arg[i++] = "-h"; -+ arg[i++] = "-P"; -+ arg[i++] = "now"; -+ arg[i] = NULL; - -- if (arg[0]) { -- if (ctl.verbose) -- printf(_("suspend mode: off; executing %s\n"), -- arg[0]); -- if (!ctl.dryrun) { -- execv(arg[0], arg); -+ if (ctl.verbose) -+ printf(_("suspend mode: off; executing %s\n"), -+ arg[0]); -+ -+ if (!ctl.dryrun) { -+ execvp(arg[0], arg); -+ if (ctl.verbose) { - warn(_("failed to execute %s"), arg[0]); -- rc = EX_EXEC_ENOENT; -+ // Reuse translations. -+ printf(_("suspend mode: off; executing %s\n"), -+ _PATH_POWEROFF); - } -- } else { -+ -+ i = 0; -+ arg[i++] = _PATH_POWEROFF; -+ arg[i] = NULL; -+ execvp(arg[0], arg); - /* Failed to find shutdown command */ - warn(_("failed to find shutdown command")); - rc = EX_EXEC_ENOENT; diff --git a/pkgs/by-name/w3/w3m/RAND_egd.libressl.patch b/pkgs/by-name/w3/w3m/RAND_egd.libressl.patch deleted file mode 100644 index 49dd417..0000000 --- a/pkgs/by-name/w3/w3m/RAND_egd.libressl.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/url.c 2014-07-14 12:31:30.476563116 +0200 -+++ b/url.c 2014-07-14 12:32:16.364918248 +0200 -@@ -268,7 +268,7 @@ init_PRNG() - if (RAND_status()) - return; - if ((file = RAND_file_name(buffer, sizeof(buffer)))) { --#ifdef USE_EGD -+#if defined(USE_EGD) && defined(HAVE_SSL_RAND_EGD) - if (RAND_egd(file) > 0) - return; - #endif diff --git a/pkgs/by-name/w3/w3m/default.nix b/pkgs/by-name/w3/w3m/default.nix deleted file mode 100644 index 5d2ea47..0000000 --- a/pkgs/by-name/w3/w3m/default.nix +++ /dev/null @@ -1,103 +0,0 @@ -{ 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 ]; - makeFlags = [ "mktable" ]; - installPhase = '' - install -D mktable $out/bin/mktable - ''; - }; -in stdenv.mkDerivation rec { - pname = "w3m"; - version = "0.5.3+git20230121"; - - src = fetchFromGitHub { - owner = "tats"; - repo = pname; - rev = "v${version}"; - hash = "sha256-upb5lWqhC1jRegzTncIz5e21v4Pw912FyVn217HucFs="; - }; - - NIX_LDFLAGS = lib.optionalString stdenv.isSunOS "-lsocket -lnsl"; - - # we must set these so that the generated files (e.g. w3mhelp.cgi) contain - # the correct paths. - PERL = "${perl}/bin/perl"; - MAN = "${man}/bin/man"; - - makeFlags = [ "AR=${stdenv.cc.bintools.targetPrefix}ar" ]; - - patches = [ - ./RAND_egd.libressl.patch - (fetchpatch { - name = "https.patch"; - url = "https://aur.archlinux.org/cgit/aur.git/plain/https.patch?h=w3m-mouse&id=5b5f0fbb59f674575e87dd368fed834641c35f03"; - sha256 = "08skvaha1hjyapsh8zw5dgfy433mw2hk7qy9yy9avn8rjqj7kjxk"; - }) - ]; - - postPatch = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' - ln -s ${mktable}/bin/mktable mktable - # stop make from recompiling mktable - sed -ie 's!mktable.*:.*!mktable:!' Makefile.in - ''; - - nativeBuildInputs = [ pkg-config gettext ]; - buildInputs = [ ncurses boehmgc zlib ] - ++ lib.optional sslSupport openssl - ++ lib.optional mouseSupport gpm-ncurses - ++ lib.optional graphicsSupport imlib2 - ++ lib.optional x11Support libX11; - - postInstall = lib.optionalString graphicsSupport '' - ln -s $out/libexec/w3m/w3mimgdisplay $out/bin - ''; - - hardeningDisable = [ "format" ]; - - configureFlags = - [ "--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"; - - preConfigure = '' - substituteInPlace ./configure --replace "/lib /usr/lib /usr/local/lib /usr/ucblib /usr/ccslib /usr/ccs/lib /lib64 /usr/lib64" /no-such-path - substituteInPlace ./configure --replace /usr /no-such-path - ''; - - enableParallelBuilding = false; - - # for w3mimgdisplay - # see: https://bbs.archlinux.org/viewtopic.php?id=196093 - LIBS = lib.optionalString x11Support "-lX11"; - - passthru.tests.version = testers.testVersion { - inherit version; - package = w3m; - command = "w3m -version"; - }; - - meta = with lib; { - homepage = "https://w3m.sourceforge.net/"; - changelog = "https://github.com/tats/w3m/blob/v${version}/ChangeLog"; - description = "A text-mode web browser"; - maintainers = with maintainers; [ anthonyroussel ]; - platforms = platforms.unix; - license = licenses.mit; - mainProgram = "w3m"; - }; -} diff --git a/pkgs/by-name/w3/w3m/packages.nix b/pkgs/by-name/w3/w3m/packages.nix deleted file mode 100644 index 4dbfeac..0000000 --- a/pkgs/by-name/w3/w3m/packages.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - w3m = callPackage ./. { }; - - # Should always be the version with the most features - w3m-full = w3m; - - # Version without X11 - w3m-nox = w3m.override { - x11Support = false; - imlib2 = imlib2-nox; - }; - - # Version without X11 or graphics - w3m-nographics = w3m.override { - x11Support = false; - graphicsSupport = false; - }; - - # Version for batch text processing, not a good browser - w3m-batch = w3m.override { - graphicsSupport = false; - mouseSupport = false; - x11Support = false; - imlib2 = imlib2-nox; - }; - -} diff --git a/pkgs/by-name/wi/which/default.nix b/pkgs/by-name/wi/which/default.nix deleted file mode 100644 index 831791a..0000000 --- a/pkgs/by-name/wi/which/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "which"; - version = "2.21"; - - src = fetchurl { - url = "mirror://gnu/which/which-${version}.tar.gz"; - hash = "sha256-9KJFuUEks3fYtJZGv0IfkVXTaqdhS26/g3BdP/x26q0="; - }; - - strictDeps = true; - enableParallelBuilding = true; - - env.NIX_CFLAGS_COMPILE = toString ( - # Enable 64-bit file API. Otherwise `which` fails to find tools - # on filesystems with 64-bit inodes (like `btrfs`) when running - # binaries from 32-bit systems (like `i686-linux`). - lib.optional stdenv.hostPlatform.is32bit "-D_FILE_OFFSET_BITS=64" - ); - - meta = { - homepage = "https://www.gnu.org/software/which/"; - description = "Shows the full path of (shell) commands"; - license = lib.licenses.gpl3Plus; - mainProgram = "which"; - platforms = lib.platforms.all; - }; -} diff --git a/pkgs/by-name/wi/windows/cygwin-setup/default.nix b/pkgs/by-name/wi/windows/cygwin-setup/default.nix deleted file mode 100644 index 91dad81..0000000 --- a/pkgs/by-name/wi/windows/cygwin-setup/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ lib, stdenv, fetchcvs, autoconf, automake, libtool, flex, bison, pkg-config -, zlib, bzip2, xz, libgcrypt -}: - -with lib; - -stdenv.mkDerivation rec { - pname = "cygwin-setup"; - version = "20131101"; - - src = fetchcvs { - cvsRoot = ":pserver:anoncvs@cygwin.com:/cvs/cygwin-apps"; - module = "setup"; - date = version; - sha256 = "024wxaaxkf7p1i78bh5xrsqmfz7ss2amigbfl2r5w9h87zqn9aq3"; - }; - - 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 ]; - - configureFlags = [ "--disable-shared" ]; - - dontDisableStatic = true; - - preConfigure = '' - autoreconf -vfi - ''; - - installPhase = '' - install -vD setup.exe "$out/bin/setup.exe" - ''; - - meta = { - homepage = "https://sourceware.org/cygwin-apps/setup.html"; - description = "A tool for installing Cygwin"; - license = licenses.gpl2Plus; - }; -} diff --git a/pkgs/by-name/wi/windows/default.nix b/pkgs/by-name/wi/windows/default.nix deleted file mode 100644 index 7d152a6..0000000 --- a/pkgs/by-name/wi/windows/default.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ lib, stdenv, buildPackages -, newScope, overrideCC, crossLibcStdenv, libcCross -}: - -lib.makeScope newScope (self: with self; { - - cygwinSetup = callPackage ./cygwin-setup { }; - - dlfcn = callPackage ./dlfcn { }; - - w32api = callPackage ./w32api { }; - - mingwrt = callPackage ./mingwrt { }; - mingw_runtime = mingwrt; - - 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; - })); - - mingw_w64_headers = callPackage ./mingw-w64/headers.nix { }; - - mingw_w64_pthreads = callPackage ./mingw-w64/pthreads.nix { - stdenv = crossThreadsStdenv; - }; - - mcfgthreads_pre_gcc_13 = callPackage ./mcfgthreads/pre_gcc_13.nix { - stdenv = crossThreadsStdenv; - }; - - mcfgthreads = callPackage ./mcfgthreads { - stdenv = crossThreadsStdenv; - }; - - npiperelay = callPackage ./npiperelay { }; - - pthreads = callPackage ./pthread-w32 { }; - - libgnurx = callPackage ./libgnurx { }; -}) diff --git a/pkgs/by-name/wi/windows/dlfcn/default.nix b/pkgs/by-name/wi/windows/dlfcn/default.nix deleted file mode 100644 index d1fba98..0000000 --- a/pkgs/by-name/wi/windows/dlfcn/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, cmake }: - -stdenv.mkDerivation rec { - pname = "dlfcn"; - version = "1.3.1"; - - src = fetchFromGitHub { - owner = "dlfcn-win32"; - repo = "dlfcn-win32"; - rev = "v${version}"; - sha256 = "sha256-ljVTMBiGp8TPufrQcK4zQtcVH1To4zcfBAbUOb+v910="; - }; - - nativeBuildInputs = [ cmake ]; - - meta = with lib; { - homepage = "https://github.com/dlfcn-win32/dlfcn-win32"; - description = "Set of functions that allows runtime dynamic library loading"; - license = licenses.mit; - platforms = platforms.windows; - maintainers = with maintainers; [ marius851000 ]; - }; -} diff --git a/pkgs/by-name/wi/windows/libgnurx/default.nix b/pkgs/by-name/wi/windows/libgnurx/default.nix deleted file mode 100644 index e760bdd..0000000 --- a/pkgs/by-name/wi/windows/libgnurx/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ lib, stdenv, fetchurl }: - -let - version = "2.5.1"; -in stdenv.mkDerivation rec { - pname = "libgnurx"; - inherit version; - src = fetchurl { - url = "mirror://sourceforge/mingw/Other/UserContributed/regex/mingw-regex-${version}/mingw-${pname}-${version}-src.tar.gz"; - sha256 = "0xjxcxgws3bblybw5zsp9a4naz2v5bs1k3mk8dw00ggc0vwbfivi"; - }; - - # file looks for libgnurx.a when compiling statically - postInstall = lib.optionalString stdenv.hostPlatform.isStatic '' - ln -s $out/lib/libgnurx{.dll.a,.a} - ''; - - meta = { - platforms = lib.platforms.windows; - }; -} diff --git a/pkgs/by-name/wi/windows/mcfgthreads/default.nix b/pkgs/by-name/wi/windows/mcfgthreads/default.nix deleted file mode 100644 index 5075107..0000000 --- a/pkgs/by-name/wi/windows/mcfgthreads/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, autoreconfHook -}: - -stdenv.mkDerivation rec { - pname = "mcfgthread"; - version = "1.6.1"; - - src = fetchFromGitHub { - owner = "lhmouse"; - repo = "mcfgthread"; - rev = "v${lib.versions.majorMinor version}-ga.${lib.versions.patch version}"; - hash = "sha256-FrmeaQhwLrNewS0HDlbWgCvVQ5U1l0jrw0YVuQdt9Ck="; - }; - - outputs = [ "out" "dev" ]; - - nativeBuildInputs = [ - autoreconfHook - ]; - - meta = { - description = "A threading support library for Windows 7 and above"; - homepage = "https://github.com/lhmouse/mcfgthread/wiki"; - license = lib.licenses.gpl3Plus; - maintainers = with lib.maintainers; [ wegank ]; - platforms = lib.platforms.windows; - }; -} diff --git a/pkgs/by-name/wi/windows/mcfgthreads/pre_gcc_13.nix b/pkgs/by-name/wi/windows/mcfgthreads/pre_gcc_13.nix deleted file mode 100644 index 6be6481..0000000 --- a/pkgs/by-name/wi/windows/mcfgthreads/pre_gcc_13.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ stdenv, fetchFromGitHub, autoreconfHook }: - -stdenv.mkDerivation { - pname = "mcfgthreads"; - version = "git"; # unstable-2021-03-12, not in any branch - - src = fetchFromGitHub { - owner = "lhmouse"; - repo = "mcfgthread"; - rev = "c446cf4fcdc262fc899a188a4bb7136284c34222"; - sha256 = "1ib90lrd4dz8irq4yvzwhxqa86i5vxl2q2z3z04sf1i8hw427p2f"; - }; - - outputs = [ "out" "dev" ]; - - # Don't want prebuilt binaries sneaking in. - postUnpack = '' - rm -r "$sourceRoot/debug" "$sourceRoot/release" - ''; - - nativeBuildInputs = [ - autoreconfHook - ]; -} diff --git a/pkgs/by-name/wi/windows/mingw-w64/default.nix b/pkgs/by-name/wi/windows/mingw-w64/default.nix deleted file mode 100644 index 706186c..0000000 --- a/pkgs/by-name/wi/windows/mingw-w64/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib -, stdenv -, windows -, fetchurl -, autoreconfHook -}: - -let - version = "11.0.1"; -in stdenv.mkDerivation { - pname = "mingw-w64"; - inherit version; - - src = fetchurl { - url = "mirror://sourceforge/mingw-w64/mingw-w64-v${version}.tar.bz2"; - hash = "sha256-P2a84Gnui+10OaGhPafLkaXmfqYXDyExesf1eUYl7hA="; - }; - - outputs = [ "out" "dev" ]; - - configureFlags = [ - "--enable-idl" - "--enable-secure-api" - ] ++ lib.optionals (stdenv.targetPlatform.libc == "ucrt") [ - "--with-default-msvcrt=ucrt" - ]; - - enableParallelBuilding = true; - - nativeBuildInputs = [ autoreconfHook ]; - buildInputs = [ windows.mingw_w64_headers ]; - hardeningDisable = [ "stackprotector" "fortify" ]; - - meta = { - platforms = lib.platforms.windows; - }; -} diff --git a/pkgs/by-name/wi/windows/mingw-w64/headers.nix b/pkgs/by-name/wi/windows/mingw-w64/headers.nix deleted file mode 100644 index 1fd27a8..0000000 --- a/pkgs/by-name/wi/windows/mingw-w64/headers.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ stdenvNoCC, mingw_w64 }: - -stdenvNoCC.mkDerivation { - name = "${mingw_w64.name}-headers"; - inherit (mingw_w64) src meta; - - preConfigure = '' - cd mingw-w64-headers - ''; - -} diff --git a/pkgs/by-name/wi/windows/mingw-w64/pthreads.nix b/pkgs/by-name/wi/windows/mingw-w64/pthreads.nix deleted file mode 100644 index 3b143ef..0000000 --- a/pkgs/by-name/wi/windows/mingw-w64/pthreads.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ stdenv, mingw_w64 }: - -stdenv.mkDerivation { - name = "${mingw_w64.name}-pthreads"; - inherit (mingw_w64) src meta; - - configureFlags = [ - # Rustc require 'libpthread.a' when targeting 'x86_64-pc-windows-gnu'. - # Enabling this makes it work out of the box instead of failing. - "--enable-static" - ]; - - preConfigure = '' - cd mingw-w64-libraries/winpthreads - ''; -} diff --git a/pkgs/by-name/wi/windows/mingwrt/default.nix b/pkgs/by-name/wi/windows/mingwrt/default.nix deleted file mode 100644 index 5bf6951..0000000 --- a/pkgs/by-name/wi/windows/mingwrt/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ stdenv, lib, fetchurl }: - -stdenv.mkDerivation rec { - pname = "mingwrt"; - version = "5.0.2"; - - src = fetchurl { - url = "mirror://sourceforge/mingw/MinGW/Base/mingwrt/mingwrt-${version}/mingwrt-${version}-mingw32-src.tar.xz"; - sha256 = "1vj6f578wcffdmy7zzf7xz1lw57kxjy08j0k1n28f0j4ylrk68vp"; - }; - - meta = { - platforms = lib.platforms.windows; - }; - - dontStrip = true; - hardeningDisable = [ "stackprotector" "fortify" ]; -} diff --git a/pkgs/by-name/wi/windows/npiperelay/default.nix b/pkgs/by-name/wi/windows/npiperelay/default.nix deleted file mode 100644 index d2347ed..0000000 --- a/pkgs/by-name/wi/windows/npiperelay/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ lib, buildGoModule, fetchFromGitHub }: - -buildGoModule rec { - pname = "npiperelay"; - version = "0.1.0"; - - src = fetchFromGitHub { - owner = "jstarks"; - repo = "npiperelay"; - rev = "v${version}"; - sha256 = "sha256-cg4aZmpTysc8m1euxIO2XPv8OMnBk1DwhFcuIFHF/1o="; - }; - - vendorHash = null; - - meta = { - description = "Access Windows named pipes from WSL"; - homepage = "https://github.com/jstarks/npiperelay"; - license = lib.licenses.mit; - maintainers = [ lib.maintainers.shlevy ]; - platforms = lib.platforms.windows; - }; -} diff --git a/pkgs/by-name/wi/windows/pthread-w32/default.nix b/pkgs/by-name/wi/windows/pthread-w32/default.nix deleted file mode 100644 index da0fe56..0000000 --- a/pkgs/by-name/wi/windows/pthread-w32/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib, stdenv, fetchzip }: - -stdenv.mkDerivation { - pname = "pthreads-w32"; - version = "2.9.1"; - - src = fetchzip { - url = "https://sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.tar.gz"; - sha256 = "1s8iny7g06z289ahdj0kzaxj0cd3wvjbd8j3bh9xlg7g444lhy9w"; - }; - - makeFlags = [ "CROSS=${stdenv.cc.targetPrefix}" "GC-static" ]; - - installPhase = '' - runHook preInstall - - install -D libpthreadGC2.a $out/lib/libpthread.a - - runHook postInstall - ''; - - meta = with lib; { - description = "POSIX threads library for Windows"; - homepage = "https://sourceware.org/pthreads-win32"; - license = licenses.lgpl21Plus; - maintainers = with maintainers; [ yana ]; - platforms = platforms.windows; - }; -} diff --git a/pkgs/by-name/wi/windows/w32api/default.nix b/pkgs/by-name/wi/windows/w32api/default.nix deleted file mode 100644 index 99faeeb..0000000 --- a/pkgs/by-name/wi/windows/w32api/default.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ stdenv, fetchurl, lib }: - -stdenv.mkDerivation rec { - pname = "w32api"; - version = "3.17-2"; - - src = fetchurl { - url = "mirror://sourceforge/mingw/MinGW/Base/w32api/w32api-${lib.versions.majorMinor version}/w32api-${version}-mingw32-src.tar.lzma"; - sha256 = "09rhnl6zikmdyb960im55jck0rdy5z9nlg3akx68ixn7khf3j8wb"; - }; - - meta = { - platforms = lib.platforms.windows; - }; - - dontStrip = true; -} diff --git a/pkgs/by-name/wo/wolfssl/default.nix b/pkgs/by-name/wo/wolfssl/default.nix deleted file mode 100644 index 76a0721..0000000 --- a/pkgs/by-name/wo/wolfssl/default.nix +++ /dev/null @@ -1,107 +0,0 @@ -{ 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}"; - version = "5.7.0"; - - src = fetchFromGitHub { - owner = "wolfSSL"; - repo = "wolfssl"; - rev = "refs/tags/v${finalAttrs.version}-stable"; - hash = "sha256-4j1GqeZJn5UWx56DjGjge05jlzBbIGn4IXxcaIBxON4="; - }; - - postPatch = '' - patchShebangs ./scripts - # ocsp stapling tests require network access, so skip them - sed -i -e'2s/.*/exit 77/' scripts/ocsp-stapling.test - # ensure test detects musl-based systems too - substituteInPlace scripts/ocsp-stapling2.test \ - --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" - - # 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"; - env.NIX_LDFLAGS_COMPILE = lib.optionalString enableLto "-flto"; - - outputs = [ - "dev" - "doc" - "lib" - "out" - ]; - - propagatedBuildInputs = lib.optionals stdenv.isDarwin [ - Security - ]; - - nativeBuildInputs = [ - autoreconfHook - util-linux - ]; - - doCheck = true; - - nativeCheckInputs = [ - openssl - cacert - ]; - - postInstall = '' - # fix recursive cycle: - # wolfssl-config points to dev, dev propagates bin - moveToOutput bin/wolfssl-config "$dev" - # moveToOutput also removes "$out" so recreate it - mkdir -p "$out" - ''; - - meta = with lib; { - description = "A small, fast, portable implementation of TLS/SSL for embedded devices"; - mainProgram = "wolfssl-config"; - homepage = "https://www.wolfssl.com/"; - changelog = "https://github.com/wolfSSL/wolfssl/releases/tag/v${finalAttrs.version}-stable"; - platforms = platforms.all; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ fab vifino ]; - }; -}) diff --git a/pkgs/by-name/wo/wolfssl/packages.nix b/pkgs/by-name/wo/wolfssl/packages.nix deleted file mode 100644 index 389962f..0000000 --- a/pkgs/by-name/wo/wolfssl/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -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/0001-Add-useless-descriptions-to-AC_DEFINE.patch b/pkgs/by-name/xa/xar/0001-Add-useless-descriptions-to-AC_DEFINE.patch deleted file mode 100644 index a605d2d..0000000 --- a/pkgs/by-name/xa/xar/0001-Add-useless-descriptions-to-AC_DEFINE.patch +++ /dev/null @@ -1,95 +0,0 @@ -From a14be07c0aae3bf6f732d1ca5f625ba375702121 Mon Sep 17 00:00:00 2001 -From: Andrew Childs -Date: Sun, 15 Nov 2020 19:12:33 +0900 -Subject: [PATCH 1/2] Add useless descriptions to AC_DEFINE - -Removes autoheader warnings. ---- - configure.ac | 42 +++++++++++++++++++++--------------------- - 1 file changed, 21 insertions(+), 21 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 812b5ff..358ab89 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -210,48 +210,48 @@ AC_CHECK_MEMBERS([struct stat.st_flags]) - - AC_CHECK_SIZEOF(uid_t) - if test $ac_cv_sizeof_uid_t = "4"; then --AC_DEFINE(UID_STRING, RId32) --AC_DEFINE(UID_CAST, (uint32_t)) -+AC_DEFINE([UID_STRING], RId32, [UID_STRING]) -+AC_DEFINE([UID_CAST], (uint32_t), [UID_CAST]) - elif test $ac_cv_sizeof_uid_t = "8"; then --AC_DEFINE(UID_STRING, PRId64) --AC_DEFINE(UID_CAST, (uint64_t)) -+AC_DEFINE([UID_STRING], PRId64, [UID_STRING]) -+AC_DEFINE([UID_CAST], (uint64_t), [UID_CAST]) - else - AC_ERROR(can not detect the size of your system's uid_t type) - fi - - AC_CHECK_SIZEOF(gid_t) - if test $ac_cv_sizeof_gid_t = "4"; then --AC_DEFINE(GID_STRING, PRId32) --AC_DEFINE(GID_CAST, (uint32_t)) -+AC_DEFINE([GID_STRING], PRId32, [GID_STRING]) -+AC_DEFINE([GID_CAST], (uint32_t), [GID_CAST]) - elif test $ac_cv_sizeof_gid_t = "8"; then --AC_DEFINE(GID_STRING, PRId64) --AC_DEFINE(GID_CAST, (uint64_t)) -+AC_DEFINE([GID_STRING], PRId64, [GID_STRING]) -+AC_DEFINE([GID_CAST], (uint64_t), [GID_CAST]) - else - AC_ERROR(can not detect the size of your system's gid_t type) - fi - - AC_CHECK_SIZEOF(ino_t) - if test $ac_cv_sizeof_ino_t = "4"; then --AC_DEFINE(INO_STRING, PRId32) --AC_DEFINE(INO_HEXSTRING, PRIx32) --AC_DEFINE(INO_CAST, (uint32_t)) -+AC_DEFINE([INO_STRING], PRId32, [INO_STRING]) -+AC_DEFINE([INO_HEXSTRING], PRIx32, [INO_HEXSTRING]) -+AC_DEFINE([INO_CAST], (uint32_t), [INO_CAST]) - elif test $ac_cv_sizeof_ino_t = "8"; then --AC_DEFINE(INO_STRING, PRId64) --AC_DEFINE(INO_HEXSTRING, PRIx64) --AC_DEFINE(INO_CAST, (uint64_t)) -+AC_DEFINE([INO_STRING], PRId64, [INO_STRING]) -+AC_DEFINE([INO_HEXSTRING], PRIx64, [INO_HEXSTRING]) -+AC_DEFINE([INO_CAST], (uint64_t), [INO_CAST]) - else - AC_ERROR(can not detect the size of your system's ino_t type) - fi - - AC_CHECK_SIZEOF(dev_t) - if test $ac_cv_sizeof_dev_t = "4"; then --AC_DEFINE(DEV_STRING, PRId32) --AC_DEFINE(DEV_HEXSTRING, PRIx32) --AC_DEFINE(DEV_CAST, (uint32_t)) -+AC_DEFINE([DEV_STRING], PRId32, [DEV_STRING]) -+AC_DEFINE([DEV_HEXSTRING], PRIx32, [DEV_HEXSTRING]) -+AC_DEFINE([DEV_CAST], (uint32_t), [DEV_CAST]) - elif test $ac_cv_sizeof_dev_t = "8"; then --AC_DEFINE(DEV_STRING, PRId64) --AC_DEFINE(DEV_HEXSTRING, PRIx64) --AC_DEFINE(DEV_CAST, (uint64_t)) -+AC_DEFINE([DEV_STRING], PRId64, [DEV_STRING]) -+AC_DEFINE([DEV_HEXSTRING], PRIx64, [DEV_HEXSTRING]) -+AC_DEFINE([DEV_CAST], (uint64_t), [DEV_CAST]) - else - AC_ERROR(can not detect the size of your system's dev_t type) - fi -@@ -261,7 +261,7 @@ AC_CHECK_LIB(acl, acl_get_file) - dnl Check for paths - AC_PREFIX_DEFAULT(/usr/local) - --AC_CHECK_FUNC([asprintf], AC_DEFINE([HAVE_ASPRINTF])) -+AC_CHECK_FUNC([asprintf], AC_DEFINE([HAVE_ASPRINTF], [], [HAVE_ASPRINTF])) - - dnl - dnl Configure libxml2. --- -2.28.0 - diff --git a/pkgs/by-name/xa/xar/0002-Use-pkg-config-for-libxml2.patch b/pkgs/by-name/xa/xar/0002-Use-pkg-config-for-libxml2.patch deleted file mode 100644 index d71ad4b..0000000 --- a/pkgs/by-name/xa/xar/0002-Use-pkg-config-for-libxml2.patch +++ /dev/null @@ -1,89 +0,0 @@ -From 276833851657c85651c053ee16b8e1a8dc768a50 Mon Sep 17 00:00:00 2001 -From: Andrew Childs -Date: Sun, 15 Nov 2020 19:12:56 +0900 -Subject: [PATCH 2/2] Use pkg-config for libxml2 - ---- - configure.ac | 66 +++++++++------------------------------------------- - 1 file changed, 11 insertions(+), 55 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 358ab89..984a694 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -268,61 +268,17 @@ dnl Configure libxml2. - dnl - LIBXML2_VERSION_MIN=2.6.11 - --have_libxml2="1" -- --AC_ARG_WITH([xml2-config], [ --with-xml2-config libxml2 config program], --if test "x${with_xml2_config}" = "xno" ; then -- XML2_CONFIG= --else -- XML2_CONFIG="${with_xml2_config}" --fi --, -- XML2_CONFIG= --) --if test "x${XML2_CONFIG}" != "x" ; then -- if test ! -x "${XML2_CONFIG}" ; then -- AC_MSG_ERROR([Unusable or missing xml2-config: ${XML2_CONFIG}]) -- fi --else -- AC_PATH_PROG([XML2_CONFIG], [xml2-config], , [${PATH}]) -- if test "x${XML2_CONFIG}" = "x" ; then -- AC_MSG_ERROR([Cannot configure without xml2-config]) -- fi --fi -- --dnl Make sure the version of libxml2 found is sufficient. --AC_MSG_CHECKING([for libxml >= ${LIBXML2_VERSION_MIN}]) --LIBXML2_FOUND=`2>&1 ${XML2_CONFIG} --version` --LIBXML2_MAJOR=`echo ${LIBXML2_FOUND} | tr . " " | awk '{print $1}'` --LIBXML2_MINOR=`echo ${LIBXML2_FOUND} | tr . " " | awk '{print $2}' | tr a-z " " |awk '{print $1}'` --LIBXML2_BRANCH=`echo ${LIBXML2_FOUND} | tr . " " | awk '{print $3}' | tr a-z " " |awk '{print $1}'` --if test "x${LIBXML2_BRANCH}" = "x" ; then -- LIBXML2_BRANCH=0 --fi --LIBXML2_MAJOR_MIN=`echo ${LIBXML2_VERSION_MIN} | tr . " " | awk '{print $1}'` --LIBXML2_MINOR_MIN=`echo ${LIBXML2_VERSION_MIN} | tr . " " | awk '{print $2}'` --LIBXML2_BRANCH_MIN=`echo ${LIBXML2_VERSION_MIN} | tr . " " | awk '{print $3}'` --if test ${LIBXML2_MAJOR} -gt ${LIBXML2_MAJOR_MIN} \ -- -o ${LIBXML2_MAJOR} -eq ${LIBXML2_MAJOR_MIN} \ -- -a ${LIBXML2_MINOR} -gt ${LIBXML2_MINOR_MIN} \ -- -o ${LIBXML2_MAJOR} -eq ${LIBXML2_MAJOR_MIN} \ -- -a ${LIBXML2_MINOR} -eq ${LIBXML2_MINOR_MIN} \ -- -a ${LIBXML2_BRANCH} -ge $LIBXML2_BRANCH_MIN ; then -- AC_MSG_RESULT([${LIBXML2_MAJOR}.${LIBXML2_MINOR}.${LIBXML2_BRANCH}]) -- have_libxml2="1" -- CPPFLAGS="${CPPFLAGS} `${XML2_CONFIG} --cflags`" -- LIBS="${LIBS} `${XML2_CONFIG} --libs`" --else -- AC_MSG_RESULT([no]) -- have_libxml2="0" --fi --if test "x${have_libxml2}" = "x1" ; then -- dnl Final sanity check, to make sure that xmlwriter is present. -- AC_CHECK_HEADER([libxml/xmlwriter.h], , [have_libxml2="0"]) --fi --if test "x${have_libxml2}" = "x0" ; then -- AC_MSG_ERROR([Cannot build without libxml2]) --fi -+PKG_PROG_PKG_CONFIG -+ -+PKG_CHECK_MODULES(LIBXML2_PKGCONFIG, [libxml-2.0 >= ${LIBXML2_VERSION_MIN}], -+ [ -+ have_libxml2=1 -+ CPPFLAGS="${CPPFLAGS} ${LIBXML2_PKGCONFIG_CFLAGS}" -+ LIBS="${LIBS} ${LIBXML2_PKGCONFIG_LIBS}" -+ ], -+ [ -+ have_libxml2=0 -+ ]) - - dnl - dnl Configure libcrypto (part of OpenSSL). --- -2.28.0 - diff --git a/pkgs/by-name/xa/xar/default.nix b/pkgs/by-name/xa/xar/default.nix deleted file mode 100644 index 9c03c41..0000000 --- a/pkgs/by-name/xa/xar/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ 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"; - sha256 = "0ghmsbs6xwg1092v7pjcibmk5wkyifwxw6ygp08gfz25d2chhipf"; - }; - - nativeBuildInputs = [ autoreconfHook pkg-config ]; - buildInputs = [ libxml2 xz openssl zlib bzip2 fts ]; - - patches = [ - ./0001-Add-useless-descriptions-to-AC_DEFINE.patch - ./0002-Use-pkg-config-for-libxml2.patch - ]; - - postPatch = '' - substituteInPlace configure.ac \ - --replace 'OpenSSL_add_all_ciphers' 'OPENSSL_init_crypto' \ - --replace 'openssl/evp.h' 'openssl/crypto.h' - ''; - - configureFlags = lib.optional (fts != null) "LDFLAGS=-lfts"; - - meta = { - 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. - ''; - - license = lib.licenses.bsd3; - maintainers = with lib.maintainers; [ copumpkin ]; - platforms = lib.platforms.all; - mainProgram = "xar"; - }; -} diff --git a/pkgs/by-name/xc/xcbuild/default.nix b/pkgs/by-name/xc/xcbuild/default.nix deleted file mode 100644 index 8dc527c..0000000 --- a/pkgs/by-name/xc/xcbuild/default.nix +++ /dev/null @@ -1,80 +0,0 @@ -{ lib, stdenv, cmake, fetchFromGitHub, zlib, libxml2, libpng -, CoreServices, CoreGraphics, ImageIO, ninja }: - -let - googletest = fetchFromGitHub { - owner = "google"; - repo = "googletest"; - rev = "43359642a1c16ad3f4fc575c7edd0cb935810815"; - sha256 = "0y4xaah62fjr3isaryc3vfz3mn9xflr00vchdimj8785milxga4q"; - }; - - linenoise = fetchFromGitHub { - owner = "antirez"; - repo = "linenoise"; - rev = "c894b9e59f02203dbe4e2be657572cf88c4230c3"; - sha256 = "0wasql7ph5g473zxhc2z47z3pjp42q0dsn4gpijwzbxawid71b4w"; - }; -in stdenv.mkDerivation { - pname = "xcbuild"; - - # Once a version is released that includes - # https://github.com/facebook/xcbuild/commit/183c087a6484ceaae860c6f7300caf50aea0d710, - # we can stop doing this -pre thing. - version = "0.1.2-pre"; - - src = fetchFromGitHub { - owner = "facebook"; - repo = "xcbuild"; - rev = "32b9fbeb69bfa2682bd0351ec2f14548aaedd554"; - sha256 = "1xxwg2849jizxv0g1hy0b1m3i7iivp9bmc4f5pi76swsn423d41m"; - }; - - patches = [ ./includes.patch ]; - - prePatch = '' - rmdir ThirdParty/* - cp -r --no-preserve=all ${googletest} ThirdParty/googletest - 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 - - # 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 = '' - mv $out/usr/* $out - rmdir $out/usr - cp liblinenoise.* $out/lib/ - ''; - - env.NIX_CFLAGS_COMPILE = "-Wno-error"; - - cmakeFlags = [ "-GNinja" ]; - - 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 ]; - }; -} diff --git a/pkgs/by-name/xc/xcbuild/includes.patch b/pkgs/by-name/xc/xcbuild/includes.patch deleted file mode 100644 index 7a05a33..0000000 --- a/pkgs/by-name/xc/xcbuild/includes.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/Libraries/plist/Sources/Format/Encoding.cpp -+++ b/Libraries/plist/Sources/Format/Encoding.cpp -@@ -11,6 +11,7 @@ - #include - - #include -+#include /* abort() */ - - #if defined(__linux__) - #include diff --git a/pkgs/by-name/xc/xcbuild/packages.nix b/pkgs/by-name/xc/xcbuild/packages.nix deleted file mode 100644 index 657ec4e..0000000 --- a/pkgs/by-name/xc/xcbuild/packages.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - xcodebuild = callPackage ./wrapper.nix { - inherit (darwin.apple_sdk.frameworks) CoreServices CoreGraphics ImageIO; - }; - xcbuild = xcodebuild; - xcbuildHook = makeSetupHook { - name = "xcbuild-hook"; - propagatedBuildInputs = [ xcbuild ]; - } ./setup-hook.sh ; -} diff --git a/pkgs/by-name/xc/xcbuild/platforms.nix b/pkgs/by-name/xc/xcbuild/platforms.nix deleted file mode 100644 index 0108ac8..0000000 --- a/pkgs/by-name/xc/xcbuild/platforms.nix +++ /dev/null @@ -1,301 +0,0 @@ -{ stdenv, runCommand, lib, sdks, xcodePlatform, writeText }: - -let - - inherit (lib.generators) toPlist; - - Info = { - CFBundleIdentifier = "com.apple.platform.${lib.toLower xcodePlatform}"; - Type = "Platform"; - Name = lib.toLower xcodePlatform; - }; - - Version = { - ProjectName = "OSXPlatformSupport"; - }; - - # These files are all based off of Xcode spec fies found in - # /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Xcode/PrivatePlugIns/IDEOSXSupportCore.ideplugin/Contents/Resources. - - # Based off of the "MacOSX Architectures.xcspec" file. All i386 stuff - # is removed because NixPkgs only supports darwin-x86_64 and darwin-arm64. - Architectures = [ - { - Identifier = "Standard"; - Type = "Architecture"; - Name = "Standard Architectures (Apple Silicon, 64-bit Intel)"; - RealArchitectures = [ "arm64" "x86_64" ]; - ArchitectureSetting = "ARCHS_STANDARD"; - } - { - Identifier = "Universal"; - Type = "Architecture"; - Name = "Universal (Apple Silicon, 64-bit Intel)"; - RealArchitectures = [ "arm64" "x86_64" ]; - ArchitectureSetting = "ARCHS_STANDARD_32_64_BIT"; - } - { - Identifier = "Native"; - Type = "Architecture"; - Name = "Native Architecture of Build Machine"; - ArchitectureSetting = "NATIVE_ARCH_ACTUAL"; - } - { - Identifier = "Standard64bit"; - Type = "Architecture"; - Name = "Apple Silicon, 64-bit Intel"; - RealArchitectures = [ "arm64" "x86_64" ]; - ArchitectureSetting = "ARCHS_STANDARD_64_BIT"; - } - { - Identifier = if stdenv.isAarch64 then "arm64" else "x86_64"; - Type = "Architecture"; - Name = "Apple Silicon or Intel 64-bit"; - } - { - Identifier = "Standard_Including_64_bit"; - Type = "Architecture"; - Name = "Standard Architectures (including 64-bit)"; - RealArchitectures = [ "arm64" "x86_64" ]; - ArchitectureSetting = "ARCHS_STANDARD_INCLUDING_64_BIT"; - } - ]; - - # Based off of the "MacOSX Package Types.xcspec" file. Only keep the - # bare minimum needed. - PackageTypes = [ - { - Identifier = "com.apple.package-type.mach-o-executable"; - Type = "PackageType"; - Name = "Mach-O Executable"; - DefaultBuildSettings = { - EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)"; - EXECUTABLE_PATH = "$(EXECUTABLE_NAME)"; - }; - ProductReference = { - FileType = "compiled.mach-o.executable"; - Name = "$(EXECUTABLE_NAME)"; - }; - } - { - Identifier = "com.apple.package-type.mach-o-objfile"; - Type = "PackageType"; - Name = "Mach-O Object File"; - DefaultBuildSettings = { - EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)"; - EXECUTABLE_PATH = "$(EXECUTABLE_NAME)"; - }; - ProductReference = { - FileType = "compiled.mach-o.objfile"; - Name = "$(EXECUTABLE_NAME)"; - }; - } - { - Identifier = "com.apple.package-type.mach-o-dylib"; - Type = "PackageType"; - Name = "Mach-O Dynamic Library"; - DefaultBuildSettings = { - EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)"; - EXECUTABLE_PATH = "$(EXECUTABLE_NAME)"; - }; - ProductReference = { - FileType = "compiled.mach-o.dylib"; - Name = "$(EXECUTABLE_NAME)"; - }; - } - { - Identifier = "com.apple.package-type.static-library"; - Type = "PackageType"; - Name = "Mach-O Static Library"; - DefaultBuildSettings = { - EXECUTABLE_PREFIX = "lib"; - EXECUTABLE_SUFFIX = ".a"; - EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)"; - EXECUTABLE_PATH = "$(EXECUTABLE_NAME)"; - }; - ProductReference = { - FileType = "archive.ar"; - Name = "$(EXECUTABLE_NAME)"; - IsLaunchable = "NO"; - }; - } - { - Identifier = "com.apple.package-type.wrapper"; - Type = "PackageType"; - Name = "Wrapper"; - DefaultBuildSettings = { - WRAPPER_SUFFIX = ".bundle"; - WRAPPER_NAME = "$(WRAPPER_PREFIX)$(PRODUCT_NAME)$(WRAPPER_SUFFIX)"; - CONTENTS_FOLDER_PATH = "$(WRAPPER_NAME)/Contents"; - EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)"; - EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/MacOS"; - EXECUTABLE_PATH = "$(EXECUTABLE_FOLDER_PATH)/$(EXECUTABLE_NAME)"; - INFOPLIST_PATH = "$(CONTENTS_FOLDER_PATH)/Info.plist"; - INFOSTRINGS_PATH = "$(LOCALIZED_RESOURCES_FOLDER_PATH)/InfoPlist.strings"; - PKGINFO_PATH = "$(CONTENTS_FOLDER_PATH)/PkgInfo"; - PBDEVELOPMENTPLIST_PATH = "$(CONTENTS_FOLDER_PATH)/pbdevelopment.plist"; - VERSIONPLIST_PATH = "$(CONTENTS_FOLDER_PATH)/version.plist"; - PUBLIC_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Headers"; - PRIVATE_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/PrivateHeaders"; - EXECUTABLES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Executables"; - FRAMEWORKS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Frameworks"; - SHARED_FRAMEWORKS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/SharedFrameworks"; - SHARED_SUPPORT_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/SharedSupport"; - UNLOCALIZED_RESOURCES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Resources"; - LOCALIZED_RESOURCES_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/$(DEVELOPMENT_LANGUAGE).lproj"; - DOCUMENTATION_FOLDER_PATH = "$(LOCALIZED_RESOURCES_FOLDER_PATH)/Documentation"; - PLUGINS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/PlugIns"; - SCRIPTS_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Scripts"; - }; - ProductReference = { - FileType = "wrapper.cfbundle"; - Name = "$(WRAPPER_NAME)"; - IsLaunchable = "NO"; - }; - } - { - Identifier = "com.apple.package-type.wrapper.application"; - Type = "PackageType"; - BasedOn = "com.apple.package-type.wrapper"; - Name = "Application Wrapper"; - DefaultBuildSettings = { - GENERATE_PKGINFO_FILE = "YES"; - }; - ProductReference = { - FileType = "wrapper.application"; - Name = "$(WRAPPER_NAME)"; - IsLaunchable = "YES"; - }; - } - ]; - - # Based off of the "MacOSX Product Types.xcspec" file. All - # bundles/wrapper are removed, because we prefer dynamic products in - # NixPkgs. - ProductTypes = [ - { - Identifier = "com.apple.product-type.tool"; - Type = "ProductType"; - Name = "Command-line Tool"; - PackageTypes = [ "com.apple.package-type.mach-o-executable" ]; - } - { - Identifier = "com.apple.product-type.objfile"; - Type = "ProductType"; - Name = "Object File"; - PackageTypes = [ "com.apple.package-type.mach-o-objfile" ]; - } - { - Identifier = "com.apple.product-type.library.dynamic"; - Type = "ProductType"; - Name = "Dynamic Library"; - PackageTypes = [ "com.apple.package-type.mach-o-dylib" ]; - DefaultBuildProperties = { - FULL_PRODUCT_NAME = "$(EXECUTABLE_NAME)"; - MACH_O_TYPE = "mh_dylib"; - REZ_EXECUTABLE = "YES"; - EXECUTABLE_SUFFIX = ".$(EXECUTABLE_EXTENSION)"; - EXECUTABLE_EXTENSION = "dylib"; - DYLIB_COMPATIBILITY_VERSION = "1"; - DYLIB_CURRENT_VERSION = "1"; - FRAMEWORK_FLAG_PREFIX = "-framework"; - LIBRARY_FLAG_PREFIX = "-l"; - LIBRARY_FLAG_NOSPACE = "YES"; - STRIP_STYLE = "debugging"; - GCC_INLINES_ARE_PRIVATE_EXTERN = "YES"; - CODE_SIGNING_ALLOWED = "YES"; - CODE_SIGNING_REQUIRED = "NO"; - }; - } - { - Identifier = "com.apple.product-type.library.static"; - Type = "ProductType"; - Name = "Static Library"; - PackageTypes = [ "com.apple.package-type.static-library" ]; - DefaultBuildProperties = { - FULL_PRODUCT_NAME = "$(EXECUTABLE_NAME)"; - MACH_O_TYPE = "staticlib"; - REZ_EXECUTABLE = "YES"; - EXECUTABLE_PREFIX = "lib"; - EXECUTABLE_SUFFIX = ".$(EXECUTABLE_EXTENSION)"; - EXECUTABLE_EXTENSION = "a"; - FRAMEWORK_FLAG_PREFIX = "-framework"; - LIBRARY_FLAG_PREFIX = "-l"; - LIBRARY_FLAG_NOSPACE = "YES"; - STRIP_STYLE = "debugging"; - SEPARATE_STRIP = "YES"; - CLANG_ENABLE_MODULE_DEBUGGING = "NO"; - }; - } - { - Type = "ProductType"; - Identifier = "com.apple.product-type.bundle"; - Name = "Bundle"; - DefaultBuildProperties = { - FULL_PRODUCT_NAME = "$(WRAPPER_NAME)"; - MACH_O_TYPE = "mh_bundle"; - WRAPPER_PREFIX = ""; - WRAPPER_SUFFIX = ".$(WRAPPER_EXTENSION)"; - WRAPPER_EXTENSION = "bundle"; - WRAPPER_NAME = "$(WRAPPER_PREFIX)$(PRODUCT_NAME)$(WRAPPER_SUFFIX)"; - FRAMEWORK_FLAG_PREFIX = "-framework"; - LIBRARY_FLAG_PREFIX = "-l"; - LIBRARY_FLAG_NOSPACE = "YES"; - STRIP_STYLE = "non-global"; - }; - PackageTypes = [ "com.apple.package-type.wrapper" ]; - IsWrapper = "YES"; - HasInfoPlist = "YES"; - HasInfoPlistStrings = "YES"; - } - { - Identifier = "com.apple.product-type.application"; - Type = "ProductType"; - BasedOn = "com.apple.product-type.bundle"; - Name = "Application"; - DefaultBuildProperties = { - MACH_O_TYPE = "mh_execute"; - WRAPPER_SUFFIX = ".$(WRAPPER_EXTENSION)"; - WRAPPER_EXTENSION = "app"; - }; - PackageTypes = [ "com.apple.package-type.wrapper.application" ]; - } - { - Type = "ProductType"; - Identifier = "com.apple.product-type.framework"; - Name = "Bundle"; - DefaultBuildProperties = { - FULL_PRODUCT_NAME = "$(WRAPPER_NAME)"; - MACH_O_TYPE = "mh_bundle"; - WRAPPER_PREFIX = ""; - WRAPPER_SUFFIX = ".$(WRAPPER_EXTENSION)"; - WRAPPER_EXTENSION = "bundle"; - WRAPPER_NAME = "$(WRAPPER_PREFIX)$(PRODUCT_NAME)$(WRAPPER_SUFFIX)"; - FRAMEWORK_FLAG_PREFIX = "-framework"; - LIBRARY_FLAG_PREFIX = "-l"; - LIBRARY_FLAG_NOSPACE = "YES"; - STRIP_STYLE = "non-global"; - }; - PackageTypes = [ "com.apple.package-type.wrapper" ]; - IsWrapper = "YES"; - HasInfoPlist = "YES"; - HasInfoPlistStrings = "YES"; - } - ]; - -in - -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 - - ln -s $platform $platform/usr - - mkdir -p $platform/Developer - ln -s ${sdks} $platform/Developer/SDKs -'' diff --git a/pkgs/by-name/xc/xcbuild/sdks.nix b/pkgs/by-name/xc/xcbuild/sdks.nix deleted file mode 100644 index bf16bf1..0000000 --- a/pkgs/by-name/xc/xcbuild/sdks.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ runCommand, lib, toolchainName, sdkName -, writeText, xcodePlatform, sdkVer, productBuildVer }: - -let - inherit (lib.generators) toPlist toJSON; - - SDKSettings = { - CanonicalName = sdkName; - DisplayName = sdkName; - Toolchains = [ toolchainName ]; - Version = sdkVer; - MaximumDeploymentTarget = sdkVer; - isBaseSDK = "YES"; - }; - - SystemVersion = lib.optionalAttrs (productBuildVer != null) { - ProductBuildVersion = productBuildVer; - } // { - ProductName = "Mac OS X"; - ProductVersion = sdkVer; - }; -in - -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 - ln -s $sdk $sdk/usr - - ln -s $sdk $out/${xcodePlatform}.sdk -'' diff --git a/pkgs/by-name/xc/xcbuild/setup-hook.sh b/pkgs/by-name/xc/xcbuild/setup-hook.sh deleted file mode 100644 index f4b5abf..0000000 --- a/pkgs/by-name/xc/xcbuild/setup-hook.sh +++ /dev/null @@ -1,29 +0,0 @@ -xcbuildBuildPhase() { - export DSTROOT=$out - - runHook preBuild - - echo "running xcodebuild" - - xcodebuild SYMROOT=$PWD/Products OBJROOT=$PWD/Intermediates $xcbuildFlags build - - runHook postBuild -} - -xcbuildInstallPhase () { - runHook preInstall - - # not implemented - # xcodebuild install - - runHook postInstall -} - -buildPhase=xcbuildBuildPhase -if [ -z "${installPhase-}" ]; then - installPhase=xcbuildInstallPhase -fi - -# if [ -d "*.xcodeproj" ]; then -# buildPhase=xcbuildPhase -# fi diff --git a/pkgs/by-name/xc/xcbuild/toolchains.nix b/pkgs/by-name/xc/xcbuild/toolchains.nix deleted file mode 100644 index e0abf90..0000000 --- a/pkgs/by-name/xc/xcbuild/toolchains.nix +++ /dev/null @@ -1,73 +0,0 @@ -{ runCommand, toolchainName, fetchurl, stdenv -, buildPackages, lib, writeText }: - -let - - inherit (lib) getBin optionalString; - inherit (lib.generators) toPlist; - - ToolchainInfo = { - Identifier = toolchainName; - }; - - # We could pull this out of developer_cmds but it adds an annoying - # 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"; - executable = true; - }; -in - -runCommand "Toolchains" {} ('' - toolchain=$out/XcodeDefault.xctoolchain - mkdir -p $toolchain - - install -D ${writeText "ToolchainInfo.plist" (toPlist {} ToolchainInfo)} $toolchain/ToolchainInfo.plist - - 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 - - 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 - ln -s $bin $toolchain/bin - fi - 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 - - ln -s ${buildPackages.m4}/bin/m4 $toolchain/bin/m4 - ln -s $toolchain/bin/m4 $toolchain/bin/gm4 - - ln -s ${buildPackages.unifdef}/bin/unifdef $toolchain/bin/unifdef - ln -s ${buildPackages.unifdef}/bin/unifdefall $toolchain/bin/unifdefall - - 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 deleted file mode 100644 index 9c8c846..0000000 --- a/pkgs/by-name/xc/xcbuild/wrapper.nix +++ /dev/null @@ -1,167 +0,0 @@ -{ 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 - - toolchainName = "com.apple.dt.toolchain.XcodeDefault"; - sdkName = "${xcodePlatform}${sdkVer}"; - xcrunSdkName = lib.toLower xcodePlatform; - - # TODO: expose MACOSX_DEPLOYMENT_TARGET in nix so we can use it here. - sdkBuildVersion = "17E189"; - xcodeSelectVersion = "2349"; - - xcbuild = callPackage ./default.nix { - inherit CoreServices ImageIO CoreGraphics stdenv; - }; - - toolchains = callPackage ./toolchains.nix { - inherit toolchainName stdenv; - }; - - sdks = callPackage ./sdks.nix { - inherit toolchainName sdkName xcodePlatform sdkVer productBuildVer; - }; - - 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 - ''; - - xcrun = writeTextFile { - name = "xcrun"; - executable = true; - destination = "/bin/xcrun"; - text = '' -#!${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 - 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" - ''; - }; - -in - -runCommand "xcodebuild-${xcbuild.version}" { - nativeBuildInputs = [ makeWrapper ]; - inherit (xcbuild) meta; - - # 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"; - }; - - preferLocalBuild = true; -} '' - mkdir -p $out/bin - - ln -s $out $out/usr - - 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 - - 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' - - 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 - - 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 -'' diff --git a/pkgs/by-name/xm/xmlto/default.nix b/pkgs/by-name/xm/xmlto/default.nix deleted file mode 100644 index 09597be..0000000 --- a/pkgs/by-name/xm/xmlto/default.nix +++ /dev/null @@ -1,63 +0,0 @@ -{ fetchurl, fetchpatch, lib, stdenv, libxml2, libxslt -, docbook_xml_dtd_45, docbook_xsl, flex, w3m -, bash, getopt, makeWrapper }: - -stdenv.mkDerivation rec { - pname = "xmlto"; - version = "0.0.28"; - src = fetchurl { - url = "https://releases.pagure.org/${pname}/${pname}-${version}.tar.bz2"; - sha256 = "0xhj8b2pwp4vhl9y16v3dpxpsakkflfamr191mprzsspg4xdyc0i"; - }; - - # Note: These patches modify `xmlif/xmlif.l`, which requires `flex` to be rerun. - patches = [ - # Fixes implicit `int` on `main`, which is an error with clang 16. - (fetchpatch { - url = "https://pagure.io/xmlto/c/8e34f087bf410bcc5fe445933d6ad9bae54f24b5.patch"; - hash = "sha256-z5riDBZBVuFeBcjI++dAl3nTIgOPau4Gag0MJbYt+cc="; - }) - # Fixes implicit `int` on `ifsense`, which is also an error with clang 16. - (fetchpatch { - url = "https://pagure.io/xmlto/c/1375e2df75530cd198bd16ac3de38e2b0d126276.patch"; - hash = "sha256-fM6ZdTigrcC9cbXiKu6oa5Hs71mrREockB1wRlw6nDk="; - }) - ]; - - postPatch = '' - patchShebangs xmlif/test/run-test - - substituteInPlace "xmlto.in" \ - --replace "/bin/bash" "${bash}/bin/bash" - substituteInPlace "xmlto.in" \ - --replace "/usr/bin/locale" "$(type -P locale)" - substituteInPlace "xmlto.in" \ - --replace "mktemp" "$(type -P mktemp)" - ''; - - # `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 ]; - - postInstall = '' - # `w3m' is needed for HTML to text conversions. - wrapProgram "$out/bin/xmlto" \ - --prefix PATH : "${lib.makeBinPath [ libxslt libxml2 getopt w3m ]}" - ''; - - meta = { - description = "Front-end to an XSL toolchain"; - - longDescription = '' - xmlto is a front-end to an XSL toolchain. It chooses an - appropriate stylesheet for the conversion you want and applies - it using an external XSL-T processor. It also performs any - necessary post-processing. - ''; - - license = lib.licenses.gpl2Plus; - homepage = "https://pagure.io/xmlto/"; - platforms = lib.platforms.unix; - }; -} diff --git a/pkgs/by-name/xm/xmlto/packages.nix b/pkgs/by-name/xm/xmlto/packages.nix deleted file mode 100644 index 721c12c..0000000 --- a/pkgs/by-name/xm/xmlto/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - xmlto = callPackage ./. { - w3m = w3m-batch; - }; -} diff --git a/pkgs/by-name/xo/xorg/.gitignore b/pkgs/by-name/xo/xorg/.gitignore deleted file mode 100644 index 1bf88f2..0000000 --- a/pkgs/by-name/xo/xorg/.gitignore +++ /dev/null @@ -1 +0,0 @@ -download-cache/ diff --git a/pkgs/by-name/xo/xorg/builder.sh b/pkgs/by-name/xo/xorg/builder.sh deleted file mode 100644 index 833acf4..0000000 --- a/pkgs/by-name/xo/xorg/builder.sh +++ /dev/null @@ -1,42 +0,0 @@ -if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi -# This is the builder for all X.org components. -source $stdenv/setup - - -# After installation, automatically add all "Requires" fields in the -# pkgconfig files (*.pc) to the propagated build inputs. -origPostInstall=$postInstall -postInstall() { - if test -n "$origPostInstall"; then eval "$origPostInstall"; fi - - local r p requires - set +o pipefail - requires=$(grep "Requires:" ${!outputDev}/lib/pkgconfig/*.pc | \ - sed "s/Requires://" | sed "s/,/ /g") - set -o pipefail - - echo "propagating requisites $requires" - - for r in $requires; do - for p in "${pkgsHostHost[@]}" "${pkgsHostTarget[@]}"; do - if test -e $p/lib/pkgconfig/$r.pc; then - echo " found requisite $r in $p" - propagatedBuildInputs+=" $p" - fi - done - done -} - - -installFlags="appdefaultdir=$out/share/X11/app-defaults $installFlags" - - -if test -n "$x11BuildHook"; then - source $x11BuildHook -fi - - -enableParallelBuilding=1 -enableParallelInstalling=1 - -genericBuild diff --git a/pkgs/by-name/xo/xorg/darwin/bundle_main.patch b/pkgs/by-name/xo/xorg/darwin/bundle_main.patch deleted file mode 100644 index 5d4c97d..0000000 --- a/pkgs/by-name/xo/xorg/darwin/bundle_main.patch +++ /dev/null @@ -1,84 +0,0 @@ -This patch makes it possible (and necessary) to specify the default -shell, xterm client, and startx script from environment variables. These -defaults are used when launching the XQuartz.app, which in turn needs to know -how to start the X server. `startx' comes from the `xinit' package, -which also has a dependency on `xorg-server', so we can't hardcode -sane defaults. If the environment variables are specified, they -override any value in the preferences settings. - -When developing an installable package for XQuartz/XQuartz.app, we'll -need to set an `LSEnvironment' entry in the plist for the XQuartz.app. -(See stub.patch for more details.). - -diff --git a/hw/xquartz/mach-startup/bundle-main.c b/hw/xquartz/mach-startup/bundle-main.c -index de82e2280..da58a5d44 100644 ---- a/hw/xquartz/mach-startup/bundle-main.c -+++ b/hw/xquartz/mach-startup/bundle-main.c -@@ -76,8 +76,6 @@ extern int noPanoramiXExtension; - extern Bool noCompositeExtension; - #endif - --#define DEFAULT_CLIENT X11BINDIR "/xterm" --#define DEFAULT_STARTX X11BINDIR "/startx -- " X11BINDIR "/Xquartz" - #define DEFAULT_SHELL "/bin/sh" - - #define _STRINGIZE(s) #s -@@ -108,7 +106,7 @@ server_main(int argc, char **argv, char **envp); - static int - execute(const char *command); - static char * --command_from_prefs(const char *key, const char *default_value); -+command_from_prefs(const char *key, const char *env_name, const char *default_value); - - static char *pref_app_to_run; - static char *pref_login_shell; -@@ -669,14 +667,19 @@ main(int argc, char **argv, char **envp) - pid_t child1, child2; - int status; - -- pref_app_to_run = command_from_prefs("app_to_run", DEFAULT_CLIENT); -+ pref_app_to_run = command_from_prefs("app_to_run", -+ "XQUARTZ_DEFAULT_CLIENT", -+ NULL); - assert(pref_app_to_run); - -- pref_login_shell = command_from_prefs("login_shell", DEFAULT_SHELL); -+ pref_login_shell = command_from_prefs("login_shell", -+ "XQUARTZ_DEFAULT_SHELL", -+ DEFAULT_SHELL); - assert(pref_login_shell); - - pref_startx_script = command_from_prefs("startx_script", -- DEFAULT_STARTX); -+ "XQUARTZ_DEFAULT_STARTX", -+ NULL); - assert(pref_startx_script); - - /* Do the fork-twice trick to avoid having to reap zombies */ -@@ -753,7 +756,7 @@ execute(const char *command) - } - - static char * --command_from_prefs(const char *key, const char *default_value) -+command_from_prefs(const char *key, const char *env_name, const char *default_value) - { - char *command = NULL; - -@@ -763,6 +766,17 @@ command_from_prefs(const char *key, const char *default_value) - if (!key) - return NULL; - -+ if (env_name != NULL) { -+ command = getenv(env_name); -+ if (command != NULL) { -+ return strdup(command); -+ } -+ } -+ -+ if (!default_value) { -+ return NULL; -+ } -+ - cfKey = CFStringCreateWithCString(NULL, key, kCFStringEncodingASCII); - - if (!cfKey) diff --git a/pkgs/by-name/xo/xorg/darwin/dri/GL/internal/dri_interface.h b/pkgs/by-name/xo/xorg/darwin/dri/GL/internal/dri_interface.h deleted file mode 100644 index b012570..0000000 --- a/pkgs/by-name/xo/xorg/darwin/dri/GL/internal/dri_interface.h +++ /dev/null @@ -1,1409 +0,0 @@ -/* - * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. - * Copyright 2007-2008 Red Hat, Inc. - * (C) Copyright IBM Corporation 2004 - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * on the rights to use, copy, modify, merge, publish, distribute, sub - * license, and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL - * THE COPYRIGHT HOLDERS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - * USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -/** - * \file dri_interface.h - * - * This file contains all the types and functions that define the interface - * between a DRI driver and driver loader. Currently, the most common driver - * loader is the XFree86 libGL.so. However, other loaders do exist, and in - * the future the server-side libglx.a will also be a loader. - * - * \author Kevin E. Martin - * \author Ian Romanick - * \author Kristian Høgsberg - */ - -#ifndef DRI_INTERFACE_H -#define DRI_INTERFACE_H - -/* For archs with no drm.h */ -#if defined(__APPLE__) || defined(__CYGWIN__) || defined(__GNU__) -#ifndef __NOT_HAVE_DRM_H -#define __NOT_HAVE_DRM_H -#endif -#endif - -#ifndef __NOT_HAVE_DRM_H -#include -#else -typedef unsigned int drm_context_t; -typedef unsigned int drm_drawable_t; -typedef struct drm_clip_rect drm_clip_rect_t; -#endif - -/** - * \name DRI interface structures - * - * The following structures define the interface between the GLX client - * side library and the DRI (direct rendering infrastructure). - */ -/*@{*/ -typedef struct __DRIdisplayRec __DRIdisplay; -typedef struct __DRIscreenRec __DRIscreen; -typedef struct __DRIcontextRec __DRIcontext; -typedef struct __DRIdrawableRec __DRIdrawable; -typedef struct __DRIconfigRec __DRIconfig; -typedef struct __DRIframebufferRec __DRIframebuffer; -typedef struct __DRIversionRec __DRIversion; - -typedef struct __DRIcoreExtensionRec __DRIcoreExtension; -typedef struct __DRIextensionRec __DRIextension; -typedef struct __DRIcopySubBufferExtensionRec __DRIcopySubBufferExtension; -typedef struct __DRIswapControlExtensionRec __DRIswapControlExtension; -typedef struct __DRIframeTrackingExtensionRec __DRIframeTrackingExtension; -typedef struct __DRImediaStreamCounterExtensionRec __DRImediaStreamCounterExtension; -typedef struct __DRItexOffsetExtensionRec __DRItexOffsetExtension; -typedef struct __DRItexBufferExtensionRec __DRItexBufferExtension; -typedef struct __DRIlegacyExtensionRec __DRIlegacyExtension; -typedef struct __DRIswrastExtensionRec __DRIswrastExtension; -typedef struct __DRIbufferRec __DRIbuffer; -typedef struct __DRIdri2ExtensionRec __DRIdri2Extension; -typedef struct __DRIdri2LoaderExtensionRec __DRIdri2LoaderExtension; -typedef struct __DRI2flushExtensionRec __DRI2flushExtension; -typedef struct __DRI2throttleExtensionRec __DRI2throttleExtension; - - -typedef struct __DRIimageLoaderExtensionRec __DRIimageLoaderExtension; -typedef struct __DRIimageDriverExtensionRec __DRIimageDriverExtension; - -/*@}*/ - - -/** - * Extension struct. Drivers 'inherit' from this struct by embedding - * it as the first element in the extension struct. - * - * We never break API in for a DRI extension. If we need to change - * the way things work in a non-backwards compatible manner, we - * introduce a new extension. During a transition period, we can - * leave both the old and the new extension in the driver, which - * allows us to move to the new interface without having to update the - * loader(s) in lock step. - * - * However, we can add entry points to an extension over time as long - * as we don't break the old ones. As we add entry points to an - * extension, we increase the version number. The corresponding - * #define can be used to guard code that accesses the new entry - * points at compile time and the version field in the extension - * struct can be used at run-time to determine how to use the - * extension. - */ -struct __DRIextensionRec { - const char *name; - int version; -}; - -/** - * The first set of extension are the screen extensions, returned by - * __DRIcore::getExtensions(). This entry point will return a list of - * extensions and the loader can use the ones it knows about by - * casting them to more specific extensions and advertising any GLX - * extensions the DRI extensions enables. - */ - -/** - * Used by drivers to indicate support for setting the read drawable. - */ -#define __DRI_READ_DRAWABLE "DRI_ReadDrawable" -#define __DRI_READ_DRAWABLE_VERSION 1 - -/** - * Used by drivers that implement the GLX_MESA_copy_sub_buffer extension. - */ -#define __DRI_COPY_SUB_BUFFER "DRI_CopySubBuffer" -#define __DRI_COPY_SUB_BUFFER_VERSION 1 -struct __DRIcopySubBufferExtensionRec { - __DRIextension base; - void (*copySubBuffer)(__DRIdrawable *drawable, int x, int y, int w, int h); -}; - -/** - * Used by drivers that implement the GLX_SGI_swap_control or - * GLX_MESA_swap_control extension. - */ -#define __DRI_SWAP_CONTROL "DRI_SwapControl" -#define __DRI_SWAP_CONTROL_VERSION 1 -struct __DRIswapControlExtensionRec { - __DRIextension base; - void (*setSwapInterval)(__DRIdrawable *drawable, unsigned int inteval); - unsigned int (*getSwapInterval)(__DRIdrawable *drawable); -}; - -/** - * Used by drivers that implement the GLX_MESA_swap_frame_usage extension. - */ -#define __DRI_FRAME_TRACKING "DRI_FrameTracking" -#define __DRI_FRAME_TRACKING_VERSION 1 -struct __DRIframeTrackingExtensionRec { - __DRIextension base; - - /** - * Enable or disable frame usage tracking. - * - * \since Internal API version 20030317. - */ - int (*frameTracking)(__DRIdrawable *drawable, GLboolean enable); - - /** - * Retrieve frame usage information. - * - * \since Internal API version 20030317. - */ - int (*queryFrameTracking)(__DRIdrawable *drawable, - int64_t * sbc, int64_t * missedFrames, - float * lastMissedUsage, float * usage); -}; - - -/** - * Used by drivers that implement the GLX_SGI_video_sync extension. - */ -#define __DRI_MEDIA_STREAM_COUNTER "DRI_MediaStreamCounter" -#define __DRI_MEDIA_STREAM_COUNTER_VERSION 1 -struct __DRImediaStreamCounterExtensionRec { - __DRIextension base; - - /** - * Wait for the MSC to equal target_msc, or, if that has already passed, - * the next time (MSC % divisor) is equal to remainder. If divisor is - * zero, the function will return as soon as MSC is greater than or equal - * to target_msc. - */ - int (*waitForMSC)(__DRIdrawable *drawable, - int64_t target_msc, int64_t divisor, int64_t remainder, - int64_t * msc, int64_t * sbc); - - /** - * Get the number of vertical refreshes since some point in time before - * this function was first called (i.e., system start up). - */ - int (*getDrawableMSC)(__DRIscreen *screen, __DRIdrawable *drawable, - int64_t *msc); -}; - - -#define __DRI_TEX_OFFSET "DRI_TexOffset" -#define __DRI_TEX_OFFSET_VERSION 1 -struct __DRItexOffsetExtensionRec { - __DRIextension base; - - /** - * Method to override base texture image with a driver specific 'offset'. - * The depth passed in allows e.g. to ignore the alpha channel of texture - * images where the non-alpha components don't occupy a whole texel. - * - * For GLX_EXT_texture_from_pixmap with AIGLX. - */ - void (*setTexOffset)(__DRIcontext *pDRICtx, GLint texname, - unsigned long long offset, GLint depth, GLuint pitch); -}; - - -/* Valid values for format in the setTexBuffer2 function below. These - * values match the GLX tokens for compatibility reasons, but we - * define them here since the DRI interface can't depend on GLX. */ -#define __DRI_TEXTURE_FORMAT_NONE 0x20D8 -#define __DRI_TEXTURE_FORMAT_RGB 0x20D9 -#define __DRI_TEXTURE_FORMAT_RGBA 0x20DA - -#define __DRI_TEX_BUFFER "DRI_TexBuffer" -#define __DRI_TEX_BUFFER_VERSION 2 -struct __DRItexBufferExtensionRec { - __DRIextension base; - - /** - * Method to override base texture image with the contents of a - * __DRIdrawable. - * - * For GLX_EXT_texture_from_pixmap with AIGLX. Deprecated in favor of - * setTexBuffer2 in version 2 of this interface - */ - void (*setTexBuffer)(__DRIcontext *pDRICtx, - GLint target, - __DRIdrawable *pDraw); - - /** - * Method to override base texture image with the contents of a - * __DRIdrawable, including the required texture format attribute. - * - * For GLX_EXT_texture_from_pixmap with AIGLX. - */ - void (*setTexBuffer2)(__DRIcontext *pDRICtx, - GLint target, - GLint format, - __DRIdrawable *pDraw); - /** - * Method to release texture buffer in case some special platform - * need this. - * - * For GLX_EXT_texture_from_pixmap with AIGLX. - */ - void (*releaseTexBuffer)(__DRIcontext *pDRICtx, - GLint target, - __DRIdrawable *pDraw); -}; - -/** - * Used by drivers that implement DRI2 - */ -#define __DRI2_FLUSH "DRI2_Flush" -#define __DRI2_FLUSH_VERSION 4 - -#define __DRI2_FLUSH_DRAWABLE (1 << 0) /* the drawable should be flushed. */ -#define __DRI2_FLUSH_CONTEXT (1 << 1) /* glFlush should be called */ - -enum __DRI2throttleReason { - __DRI2_THROTTLE_SWAPBUFFER, - __DRI2_THROTTLE_COPYSUBBUFFER, - __DRI2_THROTTLE_FLUSHFRONT -}; - -struct __DRI2flushExtensionRec { - __DRIextension base; - void (*flush)(__DRIdrawable *drawable); - - /** - * Ask the driver to call getBuffers/getBuffersWithFormat before - * it starts rendering again. - * - * \param drawable the drawable to invalidate - * - * \since 3 - */ - void (*invalidate)(__DRIdrawable *drawable); - - /** - * This function reduces the number of flushes in the driver by combining - * several operations into one call. - * - * It can: - * - throttle - * - flush a drawable - * - flush a context - * - * \param context the context - * \param drawable the drawable to flush - * \param flags a combination of _DRI2_FLUSH_xxx flags - * \param throttle_reason the reason for throttling, 0 = no throttling - * - * \since 4 - */ - void (*flush_with_flags)(__DRIcontext *ctx, - __DRIdrawable *drawable, - unsigned flags, - enum __DRI2throttleReason throttle_reason); -}; - - -/** - * Extension that the driver uses to request - * throttle callbacks. - */ - -#define __DRI2_THROTTLE "DRI2_Throttle" -#define __DRI2_THROTTLE_VERSION 1 - -struct __DRI2throttleExtensionRec { - __DRIextension base; - void (*throttle)(__DRIcontext *ctx, - __DRIdrawable *drawable, - enum __DRI2throttleReason reason); -}; - -/*@}*/ - -/** - * The following extensions describe loader features that the DRI - * driver can make use of. Some of these are mandatory, such as the - * getDrawableInfo extension for DRI and the DRI Loader extensions for - * DRI2, while others are optional, and if present allow the driver to - * expose certain features. The loader pass in a NULL terminated - * array of these extensions to the driver in the createNewScreen - * constructor. - */ - -typedef struct __DRIgetDrawableInfoExtensionRec __DRIgetDrawableInfoExtension; -typedef struct __DRIsystemTimeExtensionRec __DRIsystemTimeExtension; -typedef struct __DRIdamageExtensionRec __DRIdamageExtension; -typedef struct __DRIloaderExtensionRec __DRIloaderExtension; -typedef struct __DRIswrastLoaderExtensionRec __DRIswrastLoaderExtension; - - -/** - * Callback to getDrawableInfo protocol - */ -#define __DRI_GET_DRAWABLE_INFO "DRI_GetDrawableInfo" -#define __DRI_GET_DRAWABLE_INFO_VERSION 1 -struct __DRIgetDrawableInfoExtensionRec { - __DRIextension base; - - /** - * This function is used to get information about the position, size, and - * clip rects of a drawable. - */ - GLboolean (* getDrawableInfo) ( __DRIdrawable *drawable, - unsigned int * index, unsigned int * stamp, - int * x, int * y, int * width, int * height, - int * numClipRects, drm_clip_rect_t ** pClipRects, - int * backX, int * backY, - int * numBackClipRects, drm_clip_rect_t ** pBackClipRects, - void *loaderPrivate); -}; - -/** - * Callback to get system time for media stream counter extensions. - */ -#define __DRI_SYSTEM_TIME "DRI_SystemTime" -#define __DRI_SYSTEM_TIME_VERSION 1 -struct __DRIsystemTimeExtensionRec { - __DRIextension base; - - /** - * Get the 64-bit unadjusted system time (UST). - */ - int (*getUST)(int64_t * ust); - - /** - * Get the media stream counter (MSC) rate. - * - * Matching the definition in GLX_OML_sync_control, this function returns - * the rate of the "media stream counter". In practical terms, this is - * the frame refresh rate of the display. - */ - GLboolean (*getMSCRate)(__DRIdrawable *draw, - int32_t * numerator, int32_t * denominator, - void *loaderPrivate); -}; - -/** - * Damage reporting - */ -#define __DRI_DAMAGE "DRI_Damage" -#define __DRI_DAMAGE_VERSION 1 -struct __DRIdamageExtensionRec { - __DRIextension base; - - /** - * Reports areas of the given drawable which have been modified by the - * driver. - * - * \param drawable which the drawing was done to. - * \param rects rectangles affected, with the drawable origin as the - * origin. - * \param x X offset of the drawable within the screen (used in the - * front_buffer case) - * \param y Y offset of the drawable within the screen. - * \param front_buffer boolean flag for whether the drawing to the - * drawable was actually done directly to the front buffer (instead - * of backing storage, for example) - * \param loaderPrivate the data passed in at createNewDrawable time - */ - void (*reportDamage)(__DRIdrawable *draw, - int x, int y, - drm_clip_rect_t *rects, int num_rects, - GLboolean front_buffer, - void *loaderPrivate); -}; - -#define __DRI_SWRAST_IMAGE_OP_DRAW 1 -#define __DRI_SWRAST_IMAGE_OP_CLEAR 2 -#define __DRI_SWRAST_IMAGE_OP_SWAP 3 - -/** - * SWRast Loader extension. - */ -#define __DRI_SWRAST_LOADER "DRI_SWRastLoader" -#define __DRI_SWRAST_LOADER_VERSION 1 -struct __DRIswrastLoaderExtensionRec { - __DRIextension base; - - /* - * Drawable position and size - */ - void (*getDrawableInfo)(__DRIdrawable *drawable, - int *x, int *y, int *width, int *height, - void *loaderPrivate); - - /** - * Put image to drawable - */ - void (*putImage)(__DRIdrawable *drawable, int op, - int x, int y, int width, int height, - char *data, void *loaderPrivate); - - /** - * Get image from readable - */ - void (*getImage)(__DRIdrawable *readable, - int x, int y, int width, int height, - char *data, void *loaderPrivate); -}; - -/** - * Invalidate loader extension. The presence of this extension - * indicates to the DRI driver that the loader will call invalidate in - * the __DRI2_FLUSH extension, whenever the needs to query for new - * buffers. This means that the DRI driver can drop the polling in - * glViewport(). - * - * The extension doesn't provide any functionality, it's only use to - * indicate to the driver that it can use the new semantics. A DRI - * driver can use this to switch between the different semantics or - * just refuse to initialize if this extension isn't present. - */ -#define __DRI_USE_INVALIDATE "DRI_UseInvalidate" -#define __DRI_USE_INVALIDATE_VERSION 1 - -typedef struct __DRIuseInvalidateExtensionRec __DRIuseInvalidateExtension; -struct __DRIuseInvalidateExtensionRec { - __DRIextension base; -}; - -/** - * The remaining extensions describe driver extensions, immediately - * available interfaces provided by the driver. To start using the - * driver, dlsym() for the __DRI_DRIVER_EXTENSIONS symbol and look for - * the extension you need in the array. - */ -#define __DRI_DRIVER_EXTENSIONS "__driDriverExtensions" - -/** - * This symbol replaces the __DRI_DRIVER_EXTENSIONS symbol, and will be - * suffixed by "_drivername", allowing multiple drivers to be built into one - * library, and also giving the driver the chance to return a variable driver - * extensions struct depending on the driver name being loaded or any other - * system state. - * - * The function prototype is: - * - * const __DRIextension **__driDriverGetExtensions_drivername(void); - */ -#define __DRI_DRIVER_GET_EXTENSIONS "__driDriverGetExtensions" - -/** - * Tokens for __DRIconfig attribs. A number of attributes defined by - * GLX or EGL standards are not in the table, as they must be provided - * by the loader. For example, FBConfig ID or visual ID, drawable type. - */ - -#define __DRI_ATTRIB_BUFFER_SIZE 1 -#define __DRI_ATTRIB_LEVEL 2 -#define __DRI_ATTRIB_RED_SIZE 3 -#define __DRI_ATTRIB_GREEN_SIZE 4 -#define __DRI_ATTRIB_BLUE_SIZE 5 -#define __DRI_ATTRIB_LUMINANCE_SIZE 6 -#define __DRI_ATTRIB_ALPHA_SIZE 7 -#define __DRI_ATTRIB_ALPHA_MASK_SIZE 8 -#define __DRI_ATTRIB_DEPTH_SIZE 9 -#define __DRI_ATTRIB_STENCIL_SIZE 10 -#define __DRI_ATTRIB_ACCUM_RED_SIZE 11 -#define __DRI_ATTRIB_ACCUM_GREEN_SIZE 12 -#define __DRI_ATTRIB_ACCUM_BLUE_SIZE 13 -#define __DRI_ATTRIB_ACCUM_ALPHA_SIZE 14 -#define __DRI_ATTRIB_SAMPLE_BUFFERS 15 -#define __DRI_ATTRIB_SAMPLES 16 -#define __DRI_ATTRIB_RENDER_TYPE 17 -#define __DRI_ATTRIB_CONFIG_CAVEAT 18 -#define __DRI_ATTRIB_CONFORMANT 19 -#define __DRI_ATTRIB_DOUBLE_BUFFER 20 -#define __DRI_ATTRIB_STEREO 21 -#define __DRI_ATTRIB_AUX_BUFFERS 22 -#define __DRI_ATTRIB_TRANSPARENT_TYPE 23 -#define __DRI_ATTRIB_TRANSPARENT_INDEX_VALUE 24 -#define __DRI_ATTRIB_TRANSPARENT_RED_VALUE 25 -#define __DRI_ATTRIB_TRANSPARENT_GREEN_VALUE 26 -#define __DRI_ATTRIB_TRANSPARENT_BLUE_VALUE 27 -#define __DRI_ATTRIB_TRANSPARENT_ALPHA_VALUE 28 -#define __DRI_ATTRIB_FLOAT_MODE 29 -#define __DRI_ATTRIB_RED_MASK 30 -#define __DRI_ATTRIB_GREEN_MASK 31 -#define __DRI_ATTRIB_BLUE_MASK 32 -#define __DRI_ATTRIB_ALPHA_MASK 33 -#define __DRI_ATTRIB_MAX_PBUFFER_WIDTH 34 -#define __DRI_ATTRIB_MAX_PBUFFER_HEIGHT 35 -#define __DRI_ATTRIB_MAX_PBUFFER_PIXELS 36 -#define __DRI_ATTRIB_OPTIMAL_PBUFFER_WIDTH 37 -#define __DRI_ATTRIB_OPTIMAL_PBUFFER_HEIGHT 38 -#define __DRI_ATTRIB_VISUAL_SELECT_GROUP 39 -#define __DRI_ATTRIB_SWAP_METHOD 40 -#define __DRI_ATTRIB_MAX_SWAP_INTERVAL 41 -#define __DRI_ATTRIB_MIN_SWAP_INTERVAL 42 -#define __DRI_ATTRIB_BIND_TO_TEXTURE_RGB 43 -#define __DRI_ATTRIB_BIND_TO_TEXTURE_RGBA 44 -#define __DRI_ATTRIB_BIND_TO_MIPMAP_TEXTURE 45 -#define __DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS 46 -#define __DRI_ATTRIB_YINVERTED 47 -#define __DRI_ATTRIB_FRAMEBUFFER_SRGB_CAPABLE 48 - -/* __DRI_ATTRIB_RENDER_TYPE */ -#define __DRI_ATTRIB_RGBA_BIT 0x01 -#define __DRI_ATTRIB_COLOR_INDEX_BIT 0x02 -#define __DRI_ATTRIB_LUMINANCE_BIT 0x04 -#define __DRI_ATTRIB_FLOAT_BIT 0x08 -#define __DRI_ATTRIB_UNSIGNED_FLOAT_BIT 0x10 - -/* __DRI_ATTRIB_CONFIG_CAVEAT */ -#define __DRI_ATTRIB_SLOW_BIT 0x01 -#define __DRI_ATTRIB_NON_CONFORMANT_CONFIG 0x02 - -/* __DRI_ATTRIB_TRANSPARENT_TYPE */ -#define __DRI_ATTRIB_TRANSPARENT_RGB 0x00 -#define __DRI_ATTRIB_TRANSPARENT_INDEX 0x01 - -/* __DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS */ -#define __DRI_ATTRIB_TEXTURE_1D_BIT 0x01 -#define __DRI_ATTRIB_TEXTURE_2D_BIT 0x02 -#define __DRI_ATTRIB_TEXTURE_RECTANGLE_BIT 0x04 - -/** - * This extension defines the core DRI functionality. - */ -#define __DRI_CORE "DRI_Core" -#define __DRI_CORE_VERSION 1 - -struct __DRIcoreExtensionRec { - __DRIextension base; - - __DRIscreen *(*createNewScreen)(int screen, int fd, - unsigned int sarea_handle, - const __DRIextension **extensions, - const __DRIconfig ***driverConfigs, - void *loaderPrivate); - - void (*destroyScreen)(__DRIscreen *screen); - - const __DRIextension **(*getExtensions)(__DRIscreen *screen); - - int (*getConfigAttrib)(const __DRIconfig *config, - unsigned int attrib, - unsigned int *value); - - int (*indexConfigAttrib)(const __DRIconfig *config, int index, - unsigned int *attrib, unsigned int *value); - - __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen, - const __DRIconfig *config, - unsigned int drawable_id, - unsigned int head, - void *loaderPrivate); - - void (*destroyDrawable)(__DRIdrawable *drawable); - - void (*swapBuffers)(__DRIdrawable *drawable); - - __DRIcontext *(*createNewContext)(__DRIscreen *screen, - const __DRIconfig *config, - __DRIcontext *shared, - void *loaderPrivate); - - int (*copyContext)(__DRIcontext *dest, - __DRIcontext *src, - unsigned long mask); - - void (*destroyContext)(__DRIcontext *context); - - int (*bindContext)(__DRIcontext *ctx, - __DRIdrawable *pdraw, - __DRIdrawable *pread); - - int (*unbindContext)(__DRIcontext *ctx); -}; - -/** - * Stored version of some component (i.e., server-side DRI module, kernel-side - * DRM, etc.). - * - * \todo - * There are several data structures that explicitly store a major version, - * minor version, and patch level. These structures should be modified to - * have a \c __DRIversionRec instead. - */ -struct __DRIversionRec { - int major; /**< Major version number. */ - int minor; /**< Minor version number. */ - int patch; /**< Patch-level. */ -}; - -/** - * Framebuffer information record. Used by libGL to communicate information - * about the framebuffer to the driver's \c __driCreateNewScreen function. - * - * In XFree86, most of this information is derrived from data returned by - * calling \c XF86DRIGetDeviceInfo. - * - * \sa XF86DRIGetDeviceInfo __DRIdisplayRec::createNewScreen - * __driUtilCreateNewScreen CallCreateNewScreen - * - * \bug This structure could be better named. - */ -struct __DRIframebufferRec { - unsigned char *base; /**< Framebuffer base address in the CPU's - * address space. This value is calculated by - * calling \c drmMap on the framebuffer handle - * returned by \c XF86DRIGetDeviceInfo (or a - * similar function). - */ - int size; /**< Framebuffer size, in bytes. */ - int stride; /**< Number of bytes from one line to the next. */ - int width; /**< Pixel width of the framebuffer. */ - int height; /**< Pixel height of the framebuffer. */ - int dev_priv_size; /**< Size of the driver's dev-priv structure. */ - void *dev_priv; /**< Pointer to the driver's dev-priv structure. */ -}; - - -/** - * This extension provides alternative screen, drawable and context - * constructors for legacy DRI functionality. This is used in - * conjunction with the core extension. - */ -#define __DRI_LEGACY "DRI_Legacy" -#define __DRI_LEGACY_VERSION 1 - -struct __DRIlegacyExtensionRec { - __DRIextension base; - - __DRIscreen *(*createNewScreen)(int screen, - const __DRIversion *ddx_version, - const __DRIversion *dri_version, - const __DRIversion *drm_version, - const __DRIframebuffer *frame_buffer, - void *pSAREA, int fd, - const __DRIextension **extensions, - const __DRIconfig ***driver_configs, - void *loaderPrivate); - - __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen, - const __DRIconfig *config, - drm_drawable_t hwDrawable, - int renderType, const int *attrs, - void *loaderPrivate); - - __DRIcontext *(*createNewContext)(__DRIscreen *screen, - const __DRIconfig *config, - int render_type, - __DRIcontext *shared, - drm_context_t hwContext, - void *loaderPrivate); -}; - -/** - * This extension provides alternative screen, drawable and context - * constructors for swrast DRI functionality. This is used in - * conjunction with the core extension. - */ -#define __DRI_SWRAST "DRI_SWRast" -#define __DRI_SWRAST_VERSION 4 - -struct __DRIswrastExtensionRec { - __DRIextension base; - - __DRIscreen *(*createNewScreen)(int screen, - const __DRIextension **extensions, - const __DRIconfig ***driver_configs, - void *loaderPrivate); - - __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen, - const __DRIconfig *config, - void *loaderPrivate); - - /* Since version 2 */ - __DRIcontext *(*createNewContextForAPI)(__DRIscreen *screen, - int api, - const __DRIconfig *config, - __DRIcontext *shared, - void *data); - - /** - * Create a context for a particular API with a set of attributes - * - * \since version 3 - * - * \sa __DRIdri2ExtensionRec::createContextAttribs - */ - __DRIcontext *(*createContextAttribs)(__DRIscreen *screen, - int api, - const __DRIconfig *config, - __DRIcontext *shared, - unsigned num_attribs, - const uint32_t *attribs, - unsigned *error, - void *loaderPrivate); - - /** - * createNewScreen() with the driver extensions passed in. - * - * \since version 4 - */ - __DRIscreen *(*createNewScreen2)(int screen, - const __DRIextension **loader_extensions, - const __DRIextension **driver_extensions, - const __DRIconfig ***driver_configs, - void *loaderPrivate); - -}; - -/** Common DRI function definitions, shared among DRI2 and Image extensions - */ - -typedef __DRIscreen * -(*__DRIcreateNewScreen2Func)(int screen, int fd, - const __DRIextension **extensions, - const __DRIextension **driver_extensions, - const __DRIconfig ***driver_configs, - void *loaderPrivate); - -typedef __DRIdrawable * -(*__DRIcreateNewDrawableFunc)(__DRIscreen *screen, - const __DRIconfig *config, - void *loaderPrivate); - -typedef __DRIcontext * -(*__DRIcreateContextAttribsFunc)(__DRIscreen *screen, - int api, - const __DRIconfig *config, - __DRIcontext *shared, - unsigned num_attribs, - const uint32_t *attribs, - unsigned *error, - void *loaderPrivate); - -typedef unsigned int -(*__DRIgetAPIMaskFunc)(__DRIscreen *screen); - -/** - * DRI2 Loader extension. - */ -#define __DRI_BUFFER_FRONT_LEFT 0 -#define __DRI_BUFFER_BACK_LEFT 1 -#define __DRI_BUFFER_FRONT_RIGHT 2 -#define __DRI_BUFFER_BACK_RIGHT 3 -#define __DRI_BUFFER_DEPTH 4 -#define __DRI_BUFFER_STENCIL 5 -#define __DRI_BUFFER_ACCUM 6 -#define __DRI_BUFFER_FAKE_FRONT_LEFT 7 -#define __DRI_BUFFER_FAKE_FRONT_RIGHT 8 -#define __DRI_BUFFER_DEPTH_STENCIL 9 /**< Only available with DRI2 1.1 */ -#define __DRI_BUFFER_HIZ 10 - -/* Inofficial and for internal use. Increase when adding a new buffer token. */ -#define __DRI_BUFFER_COUNT 11 - -struct __DRIbufferRec { - unsigned int attachment; - unsigned int name; - unsigned int pitch; - unsigned int cpp; - unsigned int flags; -}; - -#define __DRI_DRI2_LOADER "DRI_DRI2Loader" -#define __DRI_DRI2_LOADER_VERSION 3 -struct __DRIdri2LoaderExtensionRec { - __DRIextension base; - - __DRIbuffer *(*getBuffers)(__DRIdrawable *driDrawable, - int *width, int *height, - unsigned int *attachments, int count, - int *out_count, void *loaderPrivate); - - /** - * Flush pending front-buffer rendering - * - * Any rendering that has been performed to the - * \c __DRI_BUFFER_FAKE_FRONT_LEFT will be flushed to the - * \c __DRI_BUFFER_FRONT_LEFT. - * - * \param driDrawable Drawable whose front-buffer is to be flushed - * \param loaderPrivate Loader's private data that was previously passed - * into __DRIdri2ExtensionRec::createNewDrawable - */ - void (*flushFrontBuffer)(__DRIdrawable *driDrawable, void *loaderPrivate); - - - /** - * Get list of buffers from the server - * - * Gets a list of buffer for the specified set of attachments. Unlike - * \c ::getBuffers, this function takes a list of attachments paired with - * opaque \c unsigned \c int value describing the format of the buffer. - * It is the responsibility of the caller to know what the service that - * allocates the buffers will expect to receive for the format. - * - * \param driDrawable Drawable whose buffers are being queried. - * \param width Output where the width of the buffers is stored. - * \param height Output where the height of the buffers is stored. - * \param attachments List of pairs of attachment ID and opaque format - * requested for the drawable. - * \param count Number of attachment / format pairs stored in - * \c attachments. - * \param loaderPrivate Loader's private data that was previously passed - * into __DRIdri2ExtensionRec::createNewDrawable. - */ - __DRIbuffer *(*getBuffersWithFormat)(__DRIdrawable *driDrawable, - int *width, int *height, - unsigned int *attachments, int count, - int *out_count, void *loaderPrivate); -}; - -/** - * This extension provides alternative screen, drawable and context - * constructors for DRI2. - */ -#define __DRI_DRI2 "DRI_DRI2" -#define __DRI_DRI2_VERSION 4 - -#define __DRI_API_OPENGL 0 /**< OpenGL compatibility profile */ -#define __DRI_API_GLES 1 /**< OpenGL ES 1.x */ -#define __DRI_API_GLES2 2 /**< OpenGL ES 2.x */ -#define __DRI_API_OPENGL_CORE 3 /**< OpenGL 3.2+ core profile */ -#define __DRI_API_GLES3 4 /**< OpenGL ES 3.x */ - -#define __DRI_CTX_ATTRIB_MAJOR_VERSION 0 -#define __DRI_CTX_ATTRIB_MINOR_VERSION 1 -#define __DRI_CTX_ATTRIB_FLAGS 2 - -/** - * \requires __DRI2_ROBUSTNESS. - */ -#define __DRI_CTX_ATTRIB_RESET_STRATEGY 3 - -#define __DRI_CTX_FLAG_DEBUG 0x00000001 -#define __DRI_CTX_FLAG_FORWARD_COMPATIBLE 0x00000002 - -/** - * \requires __DRI2_ROBUSTNESS. - */ -#define __DRI_CTX_FLAG_ROBUST_BUFFER_ACCESS 0x00000004 - -/** - * \name Context reset strategies. - */ -/*@{*/ -#define __DRI_CTX_RESET_NO_NOTIFICATION 0 -#define __DRI_CTX_RESET_LOSE_CONTEXT 1 -/*@}*/ - -/** - * \name Reasons that __DRIdri2Extension::createContextAttribs might fail - */ -/*@{*/ -/** Success! */ -#define __DRI_CTX_ERROR_SUCCESS 0 - -/** Memory allocation failure */ -#define __DRI_CTX_ERROR_NO_MEMORY 1 - -/** Client requested an API (e.g., OpenGL ES 2.0) that the driver can't do. */ -#define __DRI_CTX_ERROR_BAD_API 2 - -/** Client requested an API version that the driver can't do. */ -#define __DRI_CTX_ERROR_BAD_VERSION 3 - -/** Client requested a flag or combination of flags the driver can't do. */ -#define __DRI_CTX_ERROR_BAD_FLAG 4 - -/** Client requested an attribute the driver doesn't understand. */ -#define __DRI_CTX_ERROR_UNKNOWN_ATTRIBUTE 5 - -/** Client requested a flag the driver doesn't understand. */ -#define __DRI_CTX_ERROR_UNKNOWN_FLAG 6 -/*@}*/ - -struct __DRIdri2ExtensionRec { - __DRIextension base; - - __DRIscreen *(*createNewScreen)(int screen, int fd, - const __DRIextension **extensions, - const __DRIconfig ***driver_configs, - void *loaderPrivate); - - __DRIcreateNewDrawableFunc createNewDrawable; - __DRIcontext *(*createNewContext)(__DRIscreen *screen, - const __DRIconfig *config, - __DRIcontext *shared, - void *loaderPrivate); - - /* Since version 2 */ - __DRIgetAPIMaskFunc getAPIMask; - - __DRIcontext *(*createNewContextForAPI)(__DRIscreen *screen, - int api, - const __DRIconfig *config, - __DRIcontext *shared, - void *data); - - __DRIbuffer *(*allocateBuffer)(__DRIscreen *screen, - unsigned int attachment, - unsigned int format, - int width, - int height); - void (*releaseBuffer)(__DRIscreen *screen, - __DRIbuffer *buffer); - - /** - * Create a context for a particular API with a set of attributes - * - * \since version 3 - * - * \sa __DRIswrastExtensionRec::createContextAttribs - */ - __DRIcreateContextAttribsFunc createContextAttribs; - - /** - * createNewScreen with the driver's extension list passed in. - * - * \since version 4 - */ - __DRIcreateNewScreen2Func createNewScreen2; -}; - - -/** - * This extension provides functionality to enable various EGLImage - * extensions. - */ -#define __DRI_IMAGE "DRI_IMAGE" -#define __DRI_IMAGE_VERSION 8 - -/** - * These formats correspond to the similarly named MESA_FORMAT_* - * tokens, except in the native endian of the CPU. For example, on - * little endian __DRI_IMAGE_FORMAT_XRGB8888 corresponds to - * MESA_FORMAT_XRGB8888, but MESA_FORMAT_XRGB8888_REV on big endian. - * - * __DRI_IMAGE_FORMAT_NONE is for images that aren't directly usable - * by the driver (YUV planar formats) but serve as a base image for - * creating sub-images for the different planes within the image. - * - * R8, GR88 and NONE should not be used with createImageFormName or - * createImage, and are returned by query from sub images created with - * createImageFromNames (NONE, see above) and fromPlane (R8 & GR88). - */ -#define __DRI_IMAGE_FORMAT_RGB565 0x1001 -#define __DRI_IMAGE_FORMAT_XRGB8888 0x1002 -#define __DRI_IMAGE_FORMAT_ARGB8888 0x1003 -#define __DRI_IMAGE_FORMAT_ABGR8888 0x1004 -#define __DRI_IMAGE_FORMAT_XBGR8888 0x1005 -#define __DRI_IMAGE_FORMAT_R8 0x1006 /* Since version 5 */ -#define __DRI_IMAGE_FORMAT_GR88 0x1007 -#define __DRI_IMAGE_FORMAT_NONE 0x1008 -#define __DRI_IMAGE_FORMAT_XRGB2101010 0x1009 -#define __DRI_IMAGE_FORMAT_ARGB2101010 0x100a -#define __DRI_IMAGE_FORMAT_SARGB8 0x100b - -#define __DRI_IMAGE_USE_SHARE 0x0001 -#define __DRI_IMAGE_USE_SCANOUT 0x0002 -#define __DRI_IMAGE_USE_CURSOR 0x0004 /* Depricated */ -#define __DRI_IMAGE_USE_LINEAR 0x0008 - - -/** - * Four CC formats that matches with WL_DRM_FORMAT_* from wayland_drm.h - * and GBM_FORMAT_* from gbm.h, used with createImageFromNames. - * - * \since 5 - */ - -#define __DRI_IMAGE_FOURCC_RGB565 0x36314752 -#define __DRI_IMAGE_FOURCC_ARGB8888 0x34325241 -#define __DRI_IMAGE_FOURCC_XRGB8888 0x34325258 -#define __DRI_IMAGE_FOURCC_ABGR8888 0x34324241 -#define __DRI_IMAGE_FOURCC_XBGR8888 0x34324258 -#define __DRI_IMAGE_FOURCC_YUV410 0x39565559 -#define __DRI_IMAGE_FOURCC_YUV411 0x31315559 -#define __DRI_IMAGE_FOURCC_YUV420 0x32315559 -#define __DRI_IMAGE_FOURCC_YUV422 0x36315559 -#define __DRI_IMAGE_FOURCC_YUV444 0x34325559 -#define __DRI_IMAGE_FOURCC_NV12 0x3231564e -#define __DRI_IMAGE_FOURCC_NV16 0x3631564e -#define __DRI_IMAGE_FOURCC_YUYV 0x56595559 - - -/** - * Queryable on images created by createImageFromNames. - * - * RGB and RGBA are may be usable directly as images but its still - * recommended to call fromPlanar with plane == 0. - * - * Y_U_V, Y_UV and Y_XUXV all requires call to fromPlanar to create - * usable sub-images, sampling from images return raw YUV data and - * color conversion needs to be done in the shader. - * - * \since 5 - */ - -#define __DRI_IMAGE_COMPONENTS_RGB 0x3001 -#define __DRI_IMAGE_COMPONENTS_RGBA 0x3002 -#define __DRI_IMAGE_COMPONENTS_Y_U_V 0x3003 -#define __DRI_IMAGE_COMPONENTS_Y_UV 0x3004 -#define __DRI_IMAGE_COMPONENTS_Y_XUXV 0x3005 - - -/** - * queryImage attributes - */ - -#define __DRI_IMAGE_ATTRIB_STRIDE 0x2000 -#define __DRI_IMAGE_ATTRIB_HANDLE 0x2001 -#define __DRI_IMAGE_ATTRIB_NAME 0x2002 -#define __DRI_IMAGE_ATTRIB_FORMAT 0x2003 /* available in versions 3+ */ -#define __DRI_IMAGE_ATTRIB_WIDTH 0x2004 /* available in versions 4+ */ -#define __DRI_IMAGE_ATTRIB_HEIGHT 0x2005 -#define __DRI_IMAGE_ATTRIB_COMPONENTS 0x2006 /* available in versions 5+ */ -#define __DRI_IMAGE_ATTRIB_FD 0x2007 /* available in versions - * 7+. Each query will return a - * new fd. */ - -enum __DRIYUVColorSpace { - __DRI_YUV_COLOR_SPACE_UNDEFINED = 0, - __DRI_YUV_COLOR_SPACE_ITU_REC601 = 0x327F, - __DRI_YUV_COLOR_SPACE_ITU_REC709 = 0x3280, - __DRI_YUV_COLOR_SPACE_ITU_REC2020 = 0x3281 -}; - -enum __DRISampleRange { - __DRI_YUV_RANGE_UNDEFINED = 0, - __DRI_YUV_FULL_RANGE = 0x3282, - __DRI_YUV_NARROW_RANGE = 0x3283 -}; - -enum __DRIChromaSiting { - __DRI_YUV_CHROMA_SITING_UNDEFINED = 0, - __DRI_YUV_CHROMA_SITING_0 = 0x3284, - __DRI_YUV_CHROMA_SITING_0_5 = 0x3285 -}; - -/** - * \name Reasons that __DRIimageExtensionRec::createImageFromTexture might fail - */ -/*@{*/ -/** Success! */ -#define __DRI_IMAGE_ERROR_SUCCESS 0 - -/** Memory allocation failure */ -#define __DRI_IMAGE_ERROR_BAD_ALLOC 1 - -/** Client requested an invalid attribute for a texture object */ -#define __DRI_IMAGE_ERROR_BAD_MATCH 2 - -/** Client requested an invalid texture object */ -#define __DRI_IMAGE_ERROR_BAD_PARAMETER 3 -/*@}*/ - -typedef struct __DRIimageRec __DRIimage; -typedef struct __DRIimageExtensionRec __DRIimageExtension; -struct __DRIimageExtensionRec { - __DRIextension base; - - __DRIimage *(*createImageFromName)(__DRIscreen *screen, - int width, int height, int format, - int name, int pitch, - void *loaderPrivate); - - __DRIimage *(*createImageFromRenderbuffer)(__DRIcontext *context, - int renderbuffer, - void *loaderPrivate); - - void (*destroyImage)(__DRIimage *image); - - __DRIimage *(*createImage)(__DRIscreen *screen, - int width, int height, int format, - unsigned int use, - void *loaderPrivate); - - GLboolean (*queryImage)(__DRIimage *image, int attrib, int *value); - - /** - * The new __DRIimage will share the content with the old one, see dup(2). - */ - __DRIimage *(*dupImage)(__DRIimage *image, void *loaderPrivate); - - /** - * Validate that a __DRIimage can be used a certain way. - * - * \since 2 - */ - GLboolean (*validateUsage)(__DRIimage *image, unsigned int use); - - /** - * Unlike createImageFromName __DRI_IMAGE_FORMAT is not but instead - * __DRI_IMAGE_FOURCC and strides are in bytes not pixels. Stride is - * also per block and not per pixel (for non-RGB, see gallium blocks). - * - * \since 5 - */ - __DRIimage *(*createImageFromNames)(__DRIscreen *screen, - int width, int height, int fourcc, - int *names, int num_names, - int *strides, int *offsets, - void *loaderPrivate); - - /** - * Create an image out of a sub-region of a parent image. This - * entry point lets us create individual __DRIimages for different - * planes in a planar buffer (typically yuv), for example. While a - * sub-image shares the underlying buffer object with the parent - * image and other sibling sub-images, the life times of parent and - * sub-images are not dependent. Destroying the parent or a - * sub-image doesn't affect other images. The underlying buffer - * object is free when no __DRIimage remains that references it. - * - * Sub-images may overlap, but rendering to overlapping sub-images - * is undefined. - * - * \since 5 - */ - __DRIimage *(*fromPlanar)(__DRIimage *image, int plane, - void *loaderPrivate); - - /** - * Create image from texture. - * - * \since 6 - */ - __DRIimage *(*createImageFromTexture)(__DRIcontext *context, - int target, - unsigned texture, - int depth, - int level, - unsigned *error, - void *loaderPrivate); - /** - * Like createImageFromNames, but takes a prime fd instead. - * - * \since 7 - */ - __DRIimage *(*createImageFromFds)(__DRIscreen *screen, - int width, int height, int fourcc, - int *fds, int num_fds, - int *strides, int *offsets, - void *loaderPrivate); - - /** - * Like createImageFromFds, but takes additional attributes. - * - * For EGL_EXT_image_dma_buf_import. - * - * \since 8 - */ - __DRIimage *(*createImageFromDmaBufs)(__DRIscreen *screen, - int width, int height, int fourcc, - int *fds, int num_fds, - int *strides, int *offsets, - enum __DRIYUVColorSpace color_space, - enum __DRISampleRange sample_range, - enum __DRIChromaSiting horiz_siting, - enum __DRIChromaSiting vert_siting, - unsigned *error, - void *loaderPrivate); -}; - - -/** - * This extension must be implemented by the loader and passed to the - * driver at screen creation time. The EGLImage entry points in the - * various client APIs take opaque EGLImage handles and use this - * extension to map them to a __DRIimage. At version 1, this - * extensions allows mapping EGLImage pointers to __DRIimage pointers, - * but future versions could support other EGLImage-like, opaque types - * with new lookup functions. - */ -#define __DRI_IMAGE_LOOKUP "DRI_IMAGE_LOOKUP" -#define __DRI_IMAGE_LOOKUP_VERSION 1 - -typedef struct __DRIimageLookupExtensionRec __DRIimageLookupExtension; -struct __DRIimageLookupExtensionRec { - __DRIextension base; - - __DRIimage *(*lookupEGLImage)(__DRIscreen *screen, void *image, - void *loaderPrivate); -}; - -/** - * This extension allows for common DRI2 options - */ -#define __DRI2_CONFIG_QUERY "DRI_CONFIG_QUERY" -#define __DRI2_CONFIG_QUERY_VERSION 1 - -typedef struct __DRI2configQueryExtensionRec __DRI2configQueryExtension; -struct __DRI2configQueryExtensionRec { - __DRIextension base; - - int (*configQueryb)(__DRIscreen *screen, const char *var, GLboolean *val); - int (*configQueryi)(__DRIscreen *screen, const char *var, GLint *val); - int (*configQueryf)(__DRIscreen *screen, const char *var, GLfloat *val); -}; - -/** - * Robust context driver extension. - * - * Existence of this extension means the driver can accept the - * \c __DRI_CTX_FLAG_ROBUST_BUFFER_ACCESS flag and the - * \c __DRI_CTX_ATTRIB_RESET_STRATEGY attribute in - * \c __DRIdri2ExtensionRec::createContextAttribs. - */ -#define __DRI2_ROBUSTNESS "DRI_Robustness" -#define __DRI2_ROBUSTNESS_VERSION 1 - -typedef struct __DRIrobustnessExtensionRec __DRIrobustnessExtension; -struct __DRIrobustnessExtensionRec { - __DRIextension base; -}; - -/** - * DRI config options extension. - * - * This extension provides the XML string containing driver options for use by - * the loader in supporting the driconf application. - */ -#define __DRI_CONFIG_OPTIONS "DRI_ConfigOptions" -#define __DRI_CONFIG_OPTIONS_VERSION 1 - -typedef struct __DRIconfigOptionsExtensionRec { - __DRIextension base; - const char *xml; -} __DRIconfigOptionsExtension; - -/** - * This extension provides a driver vtable to a set of common driver helper - * functions (driCoreExtension, driDRI2Extension) within the driver - * implementation, as opposed to having to pass them through a global - * variable. - * - * It is not intended to be public API to the actual loader, and the vtable - * layout may change at any time. - */ -#define __DRI_DRIVER_VTABLE "DRI_DriverVtable" -#define __DRI_DRIVER_VTABLE_VERSION 1 - -typedef struct __DRIDriverVtableExtensionRec { - __DRIextension base; - const struct __DriverAPIRec *vtable; -} __DRIDriverVtableExtension; - -/** - * Query renderer driver extension - * - * This allows the window system layer (either EGL or GLX) to query aspects of - * hardware and driver support without creating a context. - */ -#define __DRI2_RENDERER_QUERY "DRI_RENDERER_QUERY" -#define __DRI2_RENDERER_QUERY_VERSION 1 - -#define __DRI2_RENDERER_VENDOR_ID 0x0000 -#define __DRI2_RENDERER_DEVICE_ID 0x0001 -#define __DRI2_RENDERER_VERSION 0x0002 -#define __DRI2_RENDERER_ACCELERATED 0x0003 -#define __DRI2_RENDERER_VIDEO_MEMORY 0x0004 -#define __DRI2_RENDERER_UNIFIED_MEMORY_ARCHITECTURE 0x0005 -#define __DRI2_RENDERER_PREFERRED_PROFILE 0x0006 -#define __DRI2_RENDERER_OPENGL_CORE_PROFILE_VERSION 0x0007 -#define __DRI2_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION 0x0008 -#define __DRI2_RENDERER_OPENGL_ES_PROFILE_VERSION 0x0009 -#define __DRI2_RENDERER_OPENGL_ES2_PROFILE_VERSION 0x000a - -typedef struct __DRI2rendererQueryExtensionRec __DRI2rendererQueryExtension; -struct __DRI2rendererQueryExtensionRec { - __DRIextension base; - - int (*queryInteger)(__DRIscreen *screen, int attribute, unsigned int *val); - int (*queryString)(__DRIscreen *screen, int attribute, const char **val); -}; - -/** - * Image Loader extension. Drivers use this to allocate color buffers - */ - -enum __DRIimageBufferMask { - __DRI_IMAGE_BUFFER_BACK = (1 << 0), - __DRI_IMAGE_BUFFER_FRONT = (1 << 1) -}; - -struct __DRIimageList { - uint32_t image_mask; - __DRIimage *back; - __DRIimage *front; -}; - -#define __DRI_IMAGE_LOADER "DRI_IMAGE_LOADER" -#define __DRI_IMAGE_LOADER_VERSION 1 - -struct __DRIimageLoaderExtensionRec { - __DRIextension base; - - /** - * Allocate color buffers. - * - * \param driDrawable - * \param width Width of allocated buffers - * \param height Height of allocated buffers - * \param format one of __DRI_IMAGE_FORMAT_* - * \param stamp Address of variable to be updated when - * getBuffers must be called again - * \param loaderPrivate The loaderPrivate for driDrawable - * \param buffer_mask Set of buffers to allocate - * \param buffers Returned buffers - */ - int (*getBuffers)(__DRIdrawable *driDrawable, - unsigned int format, - uint32_t *stamp, - void *loaderPrivate, - uint32_t buffer_mask, - struct __DRIimageList *buffers); - - /** - * Flush pending front-buffer rendering - * - * Any rendering that has been performed to the - * fake front will be flushed to the front - * - * \param driDrawable Drawable whose front-buffer is to be flushed - * \param loaderPrivate Loader's private data that was previously passed - * into __DRIdri2ExtensionRec::createNewDrawable - */ - void (*flushFrontBuffer)(__DRIdrawable *driDrawable, void *loaderPrivate); -}; - -/** - * DRI extension. - */ - -#define __DRI_IMAGE_DRIVER "DRI_IMAGE_DRIVER" -#define __DRI_IMAGE_DRIVER_VERSION 1 - -struct __DRIimageDriverExtensionRec { - __DRIextension base; - - /* Common DRI functions, shared with DRI2 */ - __DRIcreateNewScreen2Func createNewScreen2; - __DRIcreateNewDrawableFunc createNewDrawable; - __DRIcreateContextAttribsFunc createContextAttribs; - __DRIgetAPIMaskFunc getAPIMask; -}; - -#endif diff --git a/pkgs/by-name/xo/xorg/darwin/stub.patch b/pkgs/by-name/xo/xorg/darwin/stub.patch deleted file mode 100644 index 0005c35..0000000 --- a/pkgs/by-name/xo/xorg/darwin/stub.patch +++ /dev/null @@ -1,61 +0,0 @@ -When the X / Xquartz server initializes, it starts the XQuartz.app and -hands-off the display FD. To start the XQuartz.app, Xquartz normally uses some -system calls to get the path of the application by app bundle id, and then -executes the Contents/MacOS/X11 script contained inside, which in turn executes -Contents/MacOS/X11.bin (the actual app). - -This patch replaces that discovery technique with a simple call to -`getenv' and a hardcoded default. In order to make Xquartz work if the -app is moved, we'll need another wrapper that sets the `XQUARTZ_X11' -environment variable to point to the `X11' script. - -diff --git a/hw/xquartz/mach-startup/stub.c b/hw/xquartz/mach-startup/stub.c -index 83252e805..f1974215b 100644 ---- a/hw/xquartz/mach-startup/stub.c -+++ b/hw/xquartz/mach-startup/stub.c -@@ -52,7 +52,6 @@ - - #include "launchd_fd.h" - --static CFURLRef x11appURL; - static FSRef x11_appRef; - static pid_t x11app_pid = 0; - aslclient aslc; -@@ -60,29 +59,21 @@ aslclient aslc; - static void - set_x11_path(void) - { -- OSStatus osstatus = LSFindApplicationForInfo(kLSUnknownCreator, CFSTR(kX11AppBundleId), -- nil, &x11_appRef, &x11appURL); -+ unsigned char *xquartzApp = getenv("XQUARTZ_APP"); -+ if (!xquartzApp) { -+ xquartzApp = "@XQUARTZ_APP@"; -+ } -+ -+ OSStatus osstatus = FSPathMakeRef(xquartzApp, &x11_appRef, NULL); - - switch (osstatus) { - case noErr: -- if (x11appURL == NULL) { -- asl_log(aslc, NULL, ASL_LEVEL_ERR, -- "Xquartz: Invalid response from LSFindApplicationForInfo(%s)", -- kX11AppBundleId); -- exit(1); -- } - break; - -- case kLSApplicationNotFoundErr: -- asl_log(aslc, NULL, ASL_LEVEL_ERR, -- "Xquartz: Unable to find application for %s", -- kX11AppBundleId); -- exit(10); -- - default: - asl_log(aslc, NULL, ASL_LEVEL_ERR, -- "Xquartz: Unable to find application for %s, error code = %d", -- kX11AppBundleId, (int)osstatus); -+ "Xquartz: Unable to find FSRef for %s, error code = %d", -+ xquartzApp, (int)osstatus); - exit(11); - } - } diff --git a/pkgs/by-name/xo/xorg/default.nix b/pkgs/by-name/xo/xorg/default.nix deleted file mode 100644 index a76a05f..0000000 --- a/pkgs/by-name/xo/xorg/default.nix +++ /dev/null @@ -1,4498 +0,0 @@ -# THIS IS A GENERATED FILE. DO NOT EDIT! -{ lib, pixman }: - -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; - }; - })) {}; - -} diff --git a/pkgs/by-name/xo/xorg/dont-create-logdir-during-build.patch b/pkgs/by-name/xo/xorg/dont-create-logdir-during-build.patch deleted file mode 100644 index 3675292..0000000 --- a/pkgs/by-name/xo/xorg/dont-create-logdir-during-build.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- - hw/xfree86/Makefile.am | 1 - - hw/xfree86/Makefile.in | 1 - - 2 files changed, 2 deletions(-) - -diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am -index 9aeaea1..dcca3b8 100644 ---- a/hw/xfree86/Makefile.am -+++ b/hw/xfree86/Makefile.am -@@ -100,7 +100,6 @@ EXTRA_DIST = xorgconf.cpp - - # Without logdir, X will post an error on the terminal and will not start - install-data-local: -- $(AM_V_GEN)$(MKDIR_P) $(DESTDIR)$(logdir) - if CYGWIN - $(INSTALL_DATA) libXorg.exe.a $(DESTDIR)$(libdir)/libXorg.exe.a - endif -diff --git a/hw/xfree86/Makefile.in b/hw/xfree86/Makefile.in -index c4fceee..74da8f1 100644 ---- a/hw/xfree86/Makefile.in -+++ b/hw/xfree86/Makefile.in -@@ -1161,7 +1161,6 @@ uninstall-am: uninstall-binPROGRAMS uninstall-local \ - - # Without logdir, X will post an error on the terminal and will not start - install-data-local: -- $(AM_V_GEN)$(MKDIR_P) $(DESTDIR)$(logdir) - @CYGWIN_TRUE@ $(INSTALL_DATA) libXorg.exe.a $(DESTDIR)$(libdir)/libXorg.exe.a - - install-exec-hook: --- -2.25.4 - diff --git a/pkgs/by-name/xo/xorg/generate-expr-from-tarballs.pl b/pkgs/by-name/xo/xorg/generate-expr-from-tarballs.pl deleted file mode 100755 index d0f88c4..0000000 --- a/pkgs/by-name/xo/xorg/generate-expr-from-tarballs.pl +++ /dev/null @@ -1,358 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell --pure --keep NIX_PATH -i perl -p cacert nix perl - -# Usage: manually update tarballs.list then run: ./generate-expr-from-tarballs.pl tarballs.list - -use strict; -use warnings; - -use File::Basename; -use File::Spec::Functions; -use File::Temp; - - -my %pkgURLs; -my %pkgHashes; -my %pkgNames; -my %pkgVersions; -my %pkgRequires; -my %pkgNativeRequires; - -my %pcProvides; -my %pcMap; - -my %extraAttrs; - - -my @missingPCs = ("fontconfig", "libdrm", "libXaw", "zlib", "perl", "python3", "mkfontscale", "bdftopcf", "libxslt", "openssl", "gperf", "m4", "libinput", "libevdev", "mtdev", "xorgproto", "cairo", "gettext", "meson", "ninja", "wrapWithXFileSearchPathHook" ); -$pcMap{$_} = $_ foreach @missingPCs; -$pcMap{"freetype2"} = "freetype"; -$pcMap{"libpng12"} = "libpng"; -$pcMap{"libpng"} = "libpng"; -$pcMap{"dbus-1"} = "dbus"; -$pcMap{"uuid"} = "libuuid"; -$pcMap{"libudev"} = "udev"; -$pcMap{"gl"} = "libGL"; -$pcMap{"GL"} = "libGL"; -$pcMap{"gbm"} = "mesa"; -$pcMap{"hwdata"} = "hwdata"; -$pcMap{"\$PIXMAN"} = "pixman"; -$pcMap{"\$RENDERPROTO"} = "xorgproto"; -$pcMap{"\$DRI3PROTO"} = "xorgproto"; -$pcMap{"\$DRI2PROTO"} = "xorgproto"; -$pcMap{"\${XKBMODULE}"} = "libxkbfile"; - - -my $downloadCache = "./download-cache"; -mkdir $downloadCache, 0755; - - -while (<>) { - chomp; - my $tarball = "$_"; - print "\nDOING TARBALL $tarball\n"; - - my $pkg; - if ($tarball =~ s/:([a-zA-Z0-9_]+)$//) { - $pkg = $1; - } else { - $tarball =~ /\/((?:(?:[A-Za-z0-9]|(?:-[^0-9])|(?:-[0-9]*[a-z]))+))[^\/]*$/; - die unless defined $1; - $pkg = $1; - $pkg =~ s/(-|[a-f0-9]{40})//g; # Remove hyphen-minus and SHA-1 - #next unless $pkg eq "xcbutil"; - } - - $tarball =~ /\/([^\/]*)\.(tar\.(bz2|gz|xz)|tgz)$/; - my $pkgName = $1; - - print " $pkg $pkgName\n"; - - if (defined $pkgNames{$pkg}) { - print " SKIPPING\n"; - next; - } - - # Split by first occurrence of hyphen followed by only numbers, ends line, another hyphen follows, or SHA-1 - my ($name, $version) = split(/-(?=[.0-9]+(?:$|-)|[a-f0-9]{40})/, $pkgName, 2); - - $pkgURLs{$pkg} = $tarball; - $pkgNames{$pkg} = $name; - $pkgVersions{$pkg} = $version; - - my $cachePath = catdir($downloadCache, basename($tarball)); - my $hash; - my $path; - if (-e $cachePath) { - $path = readlink($cachePath); - $hash = `nix-hash --type sha256 --base32 --flat $cachePath`; - } - else { - ($hash, $path) = `PRINT_PATH=1 QUIET=1 nix-prefetch-url '$tarball'`; - `nix-store --realise --add-root $cachePath --indirect $path`; - } - chomp $hash; - chomp $path; - $pkgHashes{$pkg} = $hash; - - print "\nunpacking $path\n"; - my $tmpDir = File::Temp->newdir(); - system "cd '$tmpDir' && tar xf '$path'"; - die "cannot unpack `$path'" if $? != 0; - print "\n"; - - my $pkgDir = `echo $tmpDir/*`; - chomp $pkgDir; - - my $provides = `find $pkgDir -name "*.pc.in"`; - my @provides2 = split '\n', $provides; - my @requires = (); - my @nativeRequires = (); - - foreach my $pcFile (@provides2) { - my $pc = $pcFile; - $pc =~ s/.*\///; - $pc =~ s/.pc.in//; - push @{$pcProvides{$pkg}}, $pc; - print "PROVIDES $pc\n"; - die "collision with $pcMap{$pc}" if defined $pcMap{$pc}; - $pcMap{$pc} = $pkg; - - open FOO, "<$pcFile" or die; - while () { - if (/Requires:(.*)/) { - my @reqs = split ' ', $1; - foreach my $req (@reqs) { - next unless $req =~ /^[a-z]+$/; - print "REQUIRE (from $pc): $req\n"; - push @requires, $req; - } - } - } - close FOO; - - } - - my $file; - { - local $/; - open FOO, "cd '$tmpDir'/* && grep -v '^ *#' configure.ac |"; - $file = ; - close FOO; - } - - if ($file =~ /XAW_CHECK_XPRINT_SUPPORT/) { - push @requires, "libXaw"; - } - - if ($file =~ /zlib is required/ || $file =~ /AC_CHECK_LIB\(z\,/) { - push @requires, "zlib"; - } - - if ($file =~ /Perl is required/) { - push @requires, "perl"; - } - - if ($file =~ /AC_PATH_PROG\(BDFTOPCF/) { - push @nativeRequires, "bdftopcf"; - } - - if ($file =~ /AC_PATH_PROG\(MKFONTSCALE/ || $file =~ /XORG_FONT_REQUIRED_PROG\(MKFONTSCALE/) { - push @nativeRequires, "mkfontscale"; - } - - if ($file =~ /AC_PATH_PROG\(MKFONTDIR/) { - push @nativeRequires, "mkfontscale"; - } - - if ($file =~ /AM_PATH_PYTHON/) { - push @nativeRequires, "python3"; - } - - if ($file =~ /AC_PATH_PROG\(FCCACHE/) { - # Don't run fc-cache. - die if defined $extraAttrs{$pkg}; - push @{$extraAttrs{$pkg}}, "preInstall = \"installFlags=(FCCACHE=true)\";"; - } - - my $isFont; - - if ($file =~ /XORG_FONT_BDF_UTILS/) { - push @nativeRequires, "bdftopcf", "mkfontscale"; - $isFont = 1; - } - - if ($file =~ /XORG_FONT_SCALED_UTILS/) { - push @nativeRequires, "mkfontscale"; - $isFont = 1; - } - - if ($file =~ /XORG_FONT_UCS2ANY/) { - push @nativeRequires, "fontutil", "mkfontscale"; - $isFont = 1; - } - - if ($isFont) { - push @requires, "fontutil"; - push @{$extraAttrs{$pkg}}, "configureFlags = [ \"--with-fontrootdir=\$(out)/lib/X11/fonts\" ];"; - push @{$extraAttrs{$pkg}}, "postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`\$PKG_CONFIG' '';"; - } - - if (@@ = glob("$tmpDir/*/app-defaults/")) { - push @nativeRequires, "wrapWithXFileSearchPathHook"; - } - - sub process { - my $requires = shift; - my $s = shift; - $s =~ s/\[/\ /g; - $s =~ s/\]/\ /g; - $s =~ s/\,/\ /g; - foreach my $req (split / /, $s) { - next if $req eq ">="; - #next if $req =~ /^\$/; - next if $req =~ /^[0-9]/; - next if $req =~ /^\s*$/; - next if $req eq '$REQUIRED_MODULES'; - next if $req eq '$REQUIRED_LIBS'; - next if $req eq '$XDMCP_MODULES'; - next if $req eq '$XORG_MODULES'; - print "REQUIRE: $req\n"; - push @{$requires}, $req; - } - } - - #process \@requires, $1 while $file =~ /PKG_CHECK_MODULES\([^,]*,\s*[\[]?([^\)\[]*)/g; - process \@requires, $1 while $file =~ /PKG_CHECK_MODULES\([^,]*,([^\)\,]*)/g; - process \@requires, $1 while $file =~ /AC_SEARCH_LIBS\([^,]*,([^\)\,]*)/g; - process \@requires, $1 while $file =~ /MODULES=\"(.*)\"/g; - process \@requires, $1 while $file =~ /REQUIRED_LIBS=\"(.*)\"/g; - process \@requires, $1 while $file =~ /REQUIRED_MODULES=\"(.*)\"/g; - process \@requires, $1 while $file =~ /REQUIRES=\"(.*)\"/g; - process \@requires, $1 while $file =~ /X11_REQUIRES=\'(.*)\'/g; - process \@requires, $1 while $file =~ /XDMCP_MODULES=\"(.*)\"/g; - process \@requires, $1 while $file =~ /XORG_MODULES=\"(.*)\"/g; - process \@requires, $1 while $file =~ /NEEDED=\"(.*)\"/g; - process \@requires, $1 while $file =~ /ivo_requires=\"(.*)\"/g; - process \@requires, $1 while $file =~ /XORG_DRIVER_CHECK_EXT\([^,]*,([^\)]*)\)/g; - - push @nativeRequires, "gettext" if $file =~ /USE_GETTEXT/; - push @requires, "libxslt" if $pkg =~ /libxcb/; - push @nativeRequires, "meson", "ninja" if $pkg =~ /libxcvt/; - push @nativeRequires, "m4" if $pkg =~ /xcbutil/; - push @requires, "gperf", "xorgproto" if $pkg =~ /xcbutil/; - - print "REQUIRES $pkg => @requires\n"; - print "NATIVE_REQUIRES $pkg => @nativeRequires\n"; - $pkgRequires{$pkg} = \@requires; - $pkgNativeRequires{$pkg} = \@nativeRequires; - - print "done\n"; -} - - -print "\nWRITE OUT\n"; - -open OUT, ">default.nix"; - -print OUT ""; -print OUT < - - - 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 - xorg.xkeyboardconfig.overrideAttrs (old: { - buildInputs = old.buildInputs ++ [ automake ]; - postPatch = with lib; concatStrings (mapAttrsToList patchIn layouts); - }); - - xlsfonts = super.xlsfonts.overrideAttrs (attrs: { - meta = attrs.meta // { - license = lib.licenses.mit; - mainProgram = "xlsfonts"; - }; - }); - - xorgproto = super.xorgproto.overrideAttrs (attrs: { - buildInputs = []; - propagatedBuildInputs = []; - nativeBuildInputs = attrs.nativeBuildInputs ++ [ meson ninja ]; - # adds support for printproto needed for libXp - mesonFlags = [ "-Dlegacy=true" ]; - - patches = [ - (fetchpatch { - url = "https://aur.archlinux.org/cgit/aur.git/plain/meson.patch?h=mingw-w64-xorgproto&id=7b817efc3144a50e6766817c4ca7242f8ce49307"; - sha256 = "sha256-Izzz9In53W7CC++k1bLr78iSrmxpFm1cH8qcSpptoUQ="; - }) - ]; - 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" - 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 - ]; - - 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 - ]; - - 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 = []; - preConfigure = '' - export XPROTO_CFLAGS=" " - export XPROTO_LIBS=" " - substituteInPlace lndir.c \ - --replace '' '' \ - --replace '' '' \ - --replace '_X_ATTRIBUTE_PRINTF(1,2)' '__attribute__((__format__(__printf__,1,2)))' \ - --replace '_X_ATTRIBUTE_PRINTF(2,3)' '__attribute__((__format__(__printf__,2,3)))' \ - --replace '_X_NORETURN' '__attribute__((noreturn))' \ - --replace 'n_dirs--;' "" - ''; - meta = attrs.meta // { mainProgram = "lndir"; }; - }); - - twm = super.twm.overrideAttrs (attrs: { - 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"; }; - }); - - xbacklight = addMainProgram super.xbacklight { }; - xclock = addMainProgram super.xclock { }; - xcmsdb = addMainProgram super.xcmsdb { }; - xcompmgr = addMainProgram super.xcompmgr { }; - xconsole = addMainProgram super.xconsole { }; - xcursorgen = addMainProgram super.xcursorgen { }; - - xcursorthemes = super.xcursorthemes.overrideAttrs (attrs: { - nativeBuildInputs = attrs.nativeBuildInputs ++ [ xorg.xcursorgen ]; - buildInputs = attrs.buildInputs ++ [ xorg.xorgproto ]; - 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"; }; - }); - - xf86videointel = super.xf86videointel.overrideAttrs (attrs: { - # the update script only works with released tarballs :-/ - name = "xf86-video-intel-2021-01-15"; - src = fetchFromGitLab { - domain = "gitlab.freedesktop.org"; - group = "xorg"; - owner = "driver"; - repo = "xf86-video-intel"; - 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" ]; - patches = [ ./use_crocus_and_iris.patch ]; - - meta = attrs.meta // { - platforms = ["i686-linux" "x86_64-linux"]; - }; - }); - - xf86videoopenchrome = super.xf86videoopenchrome.overrideAttrs (attrs: { - buildInputs = attrs.buildInputs ++ [ xorg.libXv ]; - patches = [ - # Pull upstream fix for -fno-common toolchains. - (fetchpatch { - name = "fno-common.patch"; - url = "https://github.com/freedesktop/openchrome-xf86-video-openchrome/commit/edb46574d4686c59e80569ba236d537097dcdd0e.patch"; - sha256 = "0xqawg9zzwb7x5vaf3in60isbkl3zfjq0wcnfi45s3hiii943sxz"; - }) - ]; - }); - - xf86videoxgi = super.xf86videoxgi.overrideAttrs (attrs: { - patches = [ - # fixes invalid open mode - # https://cgit.freedesktop.org/xorg/driver/xf86-video-xgi/commit/?id=bd94c475035739b42294477cff108e0c5f15ef67 - (fetchpatch { - url = "https://cgit.freedesktop.org/xorg/driver/xf86-video-xgi/patch/?id=bd94c475035739b42294477cff108e0c5f15ef67"; - sha256 = "0myfry07655adhrpypa9rqigd6rfx57pqagcwibxw7ab3wjay9f6"; - }) - (fetchpatch { - url = "https://cgit.freedesktop.org/xorg/driver/xf86-video-xgi/patch/?id=78d1138dd6e214a200ca66fa9e439ee3c9270ec8"; - sha256 = "0z3643afgrync280zrp531ija0hqxc5mrwjif9nh9lcnzgnz2d6d"; - }) - # Pull upstream fix for -fno-common toolchains. - (fetchpatch { - name = "fno-common.patch"; - url = "https://github.com/freedesktop/xorg-xf86-video-xgi/commit/3143bdee580c4d397e21adb0fa35502d4dc8e888.patch"; - sha256 = "0by6k26rj1xmljnbfd08v90s1f9bkmnf17aclhv50081m83lmm07"; - }) - ]; - }); - - xfd = addMainProgram super.xfd { }; - xfontsel = addMainProgram super.xfontsel { }; - xfs = addMainProgram super.xfs { }; - xfsinfo = addMainProgram super.xfsinfo { }; - xgamma = addMainProgram super.xgamma { }; - xgc = addMainProgram super.xgc { }; - xhost = addMainProgram super.xhost { }; - xinput = addMainProgram super.xinput { }; - xkbevd = addMainProgram super.xkbevd { }; - xkbprint = addMainProgram super.xkbprint { }; - xkill = addMainProgram super.xkill { }; - xload = addMainProgram super.xload { }; - xlsatoms = addMainProgram super.xlsatoms { }; - xlsclients = addMainProgram super.xlsclients { }; - xmag = addMainProgram super.xmag { }; - xmessage = addMainProgram super.xmessage { }; - xmodmap = addMainProgram super.xmodmap { }; - xmore = addMainProgram super.xmore { }; - - xorgcffiles = super.xorgcffiles.overrideAttrs (attrs: { - postInstall = lib.optionalString stdenv.isDarwin '' - substituteInPlace $out/lib/X11/config/darwin.cf --replace "/usr/bin/" "" - ''; - }); - - xorgdocs = super.xorgdocs.overrideAttrs (attrs: { - # This makes the man pages discoverable by the default man, - # since it looks for packages in $PATH - postInstall = "mkdir $out/bin"; - }); - - xpr = addMainProgram super.xpr { }; - xprop = addMainProgram super.xprop { }; - - xrdb = super.xrdb.overrideAttrs (attrs: { - configureFlags = [ "--with-cpp=${mcpp}/bin/mcpp" ]; - 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"; }; - }); - - xrandr = super.xrandr.overrideAttrs (attrs: { - postInstall = '' - rm $out/bin/xkeystone - ''; - meta = attrs.meta // { - mainProgram = "xrandr"; - }; - }); - - xrefresh = addMainProgram super.xrefresh { }; - xset = addMainProgram super.xset { }; - xsetroot = addMainProgram super.xsetroot { }; - xsm = addMainProgram super.xsm { }; - xstdcmap = addMainProgram super.xstdcmap { }; - xwd = addMainProgram super.xwd { }; - xwininfo = addMainProgram super.xwininfo { }; - xwud = addMainProgram super.xwud { }; - - # convert Type1 vector fonts to OpenType fonts - fontbitstreamtype1 = super.fontbitstreamtype1.overrideAttrs (attrs: { - nativeBuildInputs = attrs.nativeBuildInputs ++ [ fontforge ]; - - postBuild = '' - # convert Postscript (Type 1) font to otf - for i in $(find -type f -name '*.pfa' -o -name '*.pfb'); do - name=$(basename $i | cut -d. -f1) - fontforge -lang=ff -c "Open(\"$i\"); Generate(\"$name.otf\")" - done - ''; - - postInstall = '' - # install the otf fonts - fontDir="$out/lib/X11/fonts/misc/" - install -D -m 644 -t "$fontDir" *.otf - mkfontscale "$fontDir" - ''; - }); - -} - -# mark some packages as unfree -// ( - let - # unfree but redistributable - redist = [ - "fontadobeutopiatype1" - "fontadobeutopia100dpi" - "fontadobeutopia75dpi" - "fontbhtype1" - "fontibmtype1" - "fontbhttf" - "fontbh100dpi" - "fontbh75dpi" - - # Bigelow & Holmes fonts - # https://www.x.org/releases/current/doc/xorg-docs/License.html#Bigelow_Holmes_Inc_and_URW_GmbH_Luxi_font_license - "fontbhlucidatypewriter100dpi" - "fontbhlucidatypewriter75dpi" - ]; - - # unfree, possibly not redistributable - unfree = [ - # no license, just a copyright notice - "fontdaewoomisc" - - # unclear license, "permission to use"? - "fontjismisc" - ]; - - setLicense = license: name: - super.${name}.overrideAttrs (attrs: { - meta = attrs.meta // { inherit license; }; - }); - 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 -) diff --git a/pkgs/by-name/xo/xorg/packages.nix b/pkgs/by-name/xo/xorg/packages.nix deleted file mode 100644 index 83df020..0000000 --- a/pkgs/by-name/xo/xorg/packages.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ ... }: -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; - }; - - generatedPackages = lib.callPackageWith __splicedPackages ./default.nix { }; - - xorgPackages = makeScopeWithSplicing' { - otherSplices = generateSplicesForMkScope "xorg"; - f = lib.extends overrides generatedPackages; - }; - - in recurseIntoAttrs xorgPackages; - - xwayland = callPackage ./xwayland.nix { }; - - xcbutilxrm = callPackage ./xcb-util-xrm.nix { }; -} diff --git a/pkgs/by-name/xo/xorg/tarballs.list b/pkgs/by-name/xo/xorg/tarballs.list deleted file mode 100644 index 5383629..0000000 --- a/pkgs/by-name/xo/xorg/tarballs.list +++ /dev/null @@ -1,221 +0,0 @@ -https://invisible-mirror.net/archives/luit/luit-20230201.tgz -mirror://xorg/individual/xcb/libpthread-stubs-0.5.tar.xz -mirror://xorg/individual/xcb/xcb-util-0.4.1.tar.xz -mirror://xorg/individual/xcb/xcb-util-errors-1.0.1.tar.xz -mirror://xorg/individual/xcb/xcb-util-image-0.4.1.tar.xz -mirror://xorg/individual/xcb/xcb-util-keysyms-0.4.1.tar.xz -mirror://xorg/individual/xcb/xcb-util-renderutil-0.3.10.tar.xz -mirror://xorg/individual/xcb/xcb-util-wm-0.4.2.tar.xz -mirror://xorg/individual/app/appres-1.0.6.tar.xz -mirror://xorg/individual/app/bitmap-1.1.1.tar.xz -mirror://xorg/individual/app/editres-1.0.8.tar.xz -mirror://xorg/individual/app/fonttosfnt-1.2.3.tar.xz -mirror://xorg/individual/app/iceauth-1.0.9.tar.xz -mirror://xorg/individual/app/ico-1.0.6.tar.xz -mirror://xorg/individual/app/listres-1.0.5.tar.xz -mirror://xorg/individual/app/mkfontscale-1.2.3.tar.xz -mirror://xorg/individual/app/oclock-1.0.5.tar.xz -mirror://xorg/individual/app/sessreg-1.1.3.tar.xz -mirror://xorg/individual/app/setxkbmap-1.3.4.tar.xz -mirror://xorg/individual/app/smproxy-1.0.7.tar.xz -mirror://xorg/individual/app/transset-1.0.3.tar.xz -mirror://xorg/individual/app/twm-1.0.12.tar.xz -mirror://xorg/individual/app/viewres-1.0.7.tar.xz -mirror://xorg/individual/app/x11perf-1.6.1.tar.bz2 -mirror://xorg/individual/app/xauth-1.1.3.tar.xz -mirror://xorg/individual/app/xbacklight-1.2.3.tar.bz2 -mirror://xorg/individual/app/xcalc-1.1.2.tar.xz -mirror://xorg/individual/app/xclock-1.1.1.tar.xz -mirror://xorg/individual/app/xcmsdb-1.0.6.tar.xz -mirror://xorg/individual/app/xcompmgr-1.1.9.tar.xz -mirror://xorg/individual/app/xconsole-1.0.8.tar.xz -mirror://xorg/individual/app/xcursorgen-1.0.8.tar.xz -mirror://xorg/individual/app/xdm-1.1.14.tar.xz -mirror://xorg/individual/app/xdpyinfo-1.3.4.tar.xz -mirror://xorg/individual/app/xdriinfo-1.0.7.tar.xz -mirror://xorg/individual/app/xev-1.2.5.tar.xz -mirror://xorg/individual/app/xeyes-1.3.0.tar.xz -mirror://xorg/individual/app/xfd-1.1.4.tar.xz -mirror://xorg/individual/app/xfontsel-1.1.0.tar.xz -mirror://xorg/individual/app/xfs-1.2.1.tar.xz -mirror://xorg/individual/app/xfsinfo-1.0.7.tar.xz -mirror://xorg/individual/app/xgamma-1.0.7.tar.xz -mirror://xorg/individual/app/xgc-1.0.6.tar.xz -mirror://xorg/individual/app/xhost-1.0.9.tar.xz -mirror://xorg/individual/app/xinit-1.4.2.tar.xz -mirror://xorg/individual/app/xinput-1.6.4.tar.xz -mirror://xorg/individual/app/xkbcomp-1.4.7.tar.xz -mirror://xorg/individual/app/xkbevd-1.1.5.tar.xz -mirror://xorg/individual/app/xkbprint-1.0.6.tar.xz -mirror://xorg/individual/app/xkbutils-1.0.6.tar.xz -mirror://xorg/individual/app/xkill-1.0.6.tar.xz -mirror://xorg/individual/app/xload-1.1.4.tar.xz -mirror://xorg/individual/app/xlsatoms-1.1.4.tar.xz -mirror://xorg/individual/app/xlsclients-1.1.5.tar.xz -mirror://xorg/individual/app/xlsfonts-1.0.7.tar.xz -mirror://xorg/individual/app/xmag-1.0.7.tar.xz -mirror://xorg/individual/app/xmessage-1.0.6.tar.xz -mirror://xorg/individual/app/xmodmap-1.0.11.tar.xz -mirror://xorg/individual/app/xmore-1.0.4.tar.xz -mirror://xorg/individual/app/xpr-1.1.0.tar.xz -mirror://xorg/individual/app/xprop-1.2.7.tar.xz -mirror://xorg/individual/app/xrandr-1.5.2.tar.xz -mirror://xorg/individual/app/xrdb-1.2.2.tar.xz -mirror://xorg/individual/app/xrefresh-1.0.7.tar.xz -mirror://xorg/individual/app/xset-1.2.5.tar.xz -mirror://xorg/individual/app/xsetroot-1.1.3.tar.xz -mirror://xorg/individual/app/xsm-1.0.5.tar.xz -mirror://xorg/individual/app/xstdcmap-1.0.5.tar.xz -mirror://xorg/individual/app/xtrap-1.0.3.tar.bz2 -mirror://xorg/individual/app/xvinfo-1.1.5.tar.xz -mirror://xorg/individual/app/xwd-1.0.9.tar.xz -mirror://xorg/individual/app/xwininfo-1.1.6.tar.xz -mirror://xorg/individual/app/xwud-1.0.6.tar.xz -mirror://xorg/individual/data/xbitmaps-1.1.3.tar.xz -mirror://xorg/individual/data/xcursor-themes-1.0.7.tar.xz -mirror://xorg/individual/data/xkeyboard-config/xkeyboard-config-2.41.tar.xz -mirror://xorg/individual/doc/xorg-docs-1.7.2.tar.gz -mirror://xorg/individual/doc/xorg-sgml-doctools-1.12.tar.gz -mirror://xorg/individual/driver/xf86-input-evdev-2.10.6.tar.bz2 -mirror://xorg/individual/driver/xf86-input-joystick-1.6.4.tar.xz -mirror://xorg/individual/driver/xf86-input-keyboard-2.0.0.tar.xz -mirror://xorg/individual/driver/xf86-input-libinput-1.4.0.tar.xz -mirror://xorg/individual/driver/xf86-input-mouse-1.9.5.tar.xz -mirror://xorg/individual/driver/xf86-input-synaptics-1.9.2.tar.xz -mirror://xorg/individual/driver/xf86-input-vmmouse-13.2.0.tar.xz -mirror://xorg/individual/driver/xf86-input-void-1.4.2.tar.xz -mirror://xorg/individual/driver/xf86-video-amdgpu-23.0.0.tar.xz -mirror://xorg/individual/driver/xf86-video-apm-1.3.0.tar.bz2 -mirror://xorg/individual/driver/xf86-video-ark-0.7.6.tar.xz -mirror://xorg/individual/driver/xf86-video-ast-1.1.6.tar.xz -mirror://xorg/individual/driver/xf86-video-ati-22.0.0.tar.xz -mirror://xorg/individual/driver/xf86-video-chips-1.4.0.tar.bz2 -mirror://xorg/individual/driver/xf86-video-cirrus-1.6.0.tar.xz -mirror://xorg/individual/driver/xf86-video-dummy-0.4.1.tar.xz -mirror://xorg/individual/driver/xf86-video-fbdev-0.5.0.tar.bz2 -mirror://xorg/individual/driver/xf86-video-geode-2.11.21.tar.xz -mirror://xorg/individual/driver/xf86-video-glide-1.2.2.tar.bz2 -mirror://xorg/individual/driver/xf86-video-glint-1.2.9.tar.bz2 -mirror://xorg/individual/driver/xf86-video-i128-1.4.1.tar.xz -mirror://xorg/individual/driver/xf86-video-i740-1.4.0.tar.bz2 -mirror://xorg/individual/driver/xf86-video-intel-2.99.917.tar.bz2 -mirror://xorg/individual/driver/xf86-video-mga-2.0.1.tar.xz -mirror://xorg/individual/driver/xf86-video-neomagic-1.3.1.tar.xz -mirror://xorg/individual/driver/xf86-video-newport-0.2.4.tar.bz2 -https://gitlab.freedesktop.org/xorg/driver/xf86-video-nouveau/-/archive/3ee7cbca8f9144a3bb5be7f71ce70558f548d268/xf86-video-nouveau-3ee7cbca8f9144a3bb5be7f71ce70558f548d268.tar.bz2 -mirror://xorg/individual/driver/xf86-video-nv-2.1.22.tar.xz -mirror://xorg/individual/driver/xf86-video-omap-0.4.5.tar.bz2 -mirror://xorg/individual/driver/xf86-video-openchrome-0.6.0.tar.bz2 -mirror://xorg/individual/driver/xf86-video-qxl-0.1.6.tar.xz -mirror://xorg/individual/driver/xf86-video-r128-6.12.1.tar.xz -mirror://xorg/individual/driver/xf86-video-rendition-4.2.7.tar.bz2 -mirror://xorg/individual/driver/xf86-video-s3virge-1.11.1.tar.xz -mirror://xorg/individual/driver/xf86-video-savage-2.4.0.tar.xz -mirror://xorg/individual/driver/xf86-video-siliconmotion-1.7.10.tar.xz -mirror://xorg/individual/driver/xf86-video-sis-0.12.0.tar.gz -mirror://xorg/individual/driver/xf86-video-sisusb-0.9.7.tar.bz2 -mirror://xorg/individual/driver/xf86-video-suncg6-1.1.3.tar.xz -mirror://xorg/individual/driver/xf86-video-sunffb-1.2.3.tar.xz -mirror://xorg/individual/driver/xf86-video-sunleo-1.2.3.tar.xz -mirror://xorg/individual/driver/xf86-video-tdfx-1.5.0.tar.bz2 -mirror://xorg/individual/driver/xf86-video-tga-1.2.2.tar.bz2 -mirror://xorg/individual/driver/xf86-video-trident-1.4.0.tar.xz -mirror://xorg/individual/driver/xf86-video-v4l-0.3.0.tar.bz2 -mirror://xorg/individual/driver/xf86-video-vboxvideo-1.0.0.tar.bz2 -mirror://xorg/individual/driver/xf86-video-vesa-2.6.0.tar.xz -mirror://xorg/individual/driver/xf86-video-vmware-13.4.0.tar.xz -mirror://xorg/individual/driver/xf86-video-voodoo-1.2.6.tar.xz -mirror://xorg/individual/driver/xf86-video-wsfb-0.4.0.tar.bz2 -mirror://xorg/individual/driver/xf86-video-xgi-1.6.1.tar.bz2 -mirror://xorg/individual/font/encodings-1.0.7.tar.xz -mirror://xorg/individual/font/font-adobe-75dpi-1.0.4.tar.xz -mirror://xorg/individual/font/font-adobe-100dpi-1.0.4.tar.xz -mirror://xorg/individual/font/font-adobe-utopia-75dpi-1.0.5.tar.xz -mirror://xorg/individual/font/font-adobe-utopia-100dpi-1.0.5.tar.xz -mirror://xorg/individual/font/font-adobe-utopia-type1-1.0.5.tar.xz -mirror://xorg/individual/font/font-alias-1.0.5.tar.xz -mirror://xorg/individual/font/font-arabic-misc-1.0.4.tar.xz -mirror://xorg/individual/font/font-bh-75dpi-1.0.4.tar.xz -mirror://xorg/individual/font/font-bh-100dpi-1.0.4.tar.xz -mirror://xorg/individual/font/font-bh-lucidatypewriter-75dpi-1.0.4.tar.xz -mirror://xorg/individual/font/font-bh-lucidatypewriter-100dpi-1.0.4.tar.xz -mirror://xorg/individual/font/font-bh-ttf-1.0.4.tar.xz -mirror://xorg/individual/font/font-bh-type1-1.0.4.tar.xz -mirror://xorg/individual/font/font-bitstream-75dpi-1.0.4.tar.xz -mirror://xorg/individual/font/font-bitstream-100dpi-1.0.4.tar.xz -mirror://xorg/individual/font/font-bitstream-speedo-1.0.2.tar.gz -mirror://xorg/individual/font/font-bitstream-type1-1.0.4.tar.xz -mirror://xorg/individual/font/font-cronyx-cyrillic-1.0.4.tar.xz -mirror://xorg/individual/font/font-cursor-misc-1.0.4.tar.xz -mirror://xorg/individual/font/font-daewoo-misc-1.0.4.tar.xz -mirror://xorg/individual/font/font-dec-misc-1.0.4.tar.xz -mirror://xorg/individual/font/font-ibm-type1-1.0.4.tar.xz -mirror://xorg/individual/font/font-isas-misc-1.0.4.tar.xz -mirror://xorg/individual/font/font-jis-misc-1.0.4.tar.xz -mirror://xorg/individual/font/font-micro-misc-1.0.4.tar.xz -mirror://xorg/individual/font/font-misc-cyrillic-1.0.4.tar.xz -mirror://xorg/individual/font/font-misc-ethiopic-1.0.5.tar.xz -mirror://xorg/individual/font/font-misc-meltho-1.0.4.tar.xz -mirror://xorg/individual/font/font-misc-misc-1.1.3.tar.xz -mirror://xorg/individual/font/font-mutt-misc-1.0.4.tar.xz -mirror://xorg/individual/font/font-schumacher-misc-1.1.3.tar.xz -mirror://xorg/individual/font/font-screen-cyrillic-1.0.5.tar.xz -mirror://xorg/individual/font/font-sony-misc-1.0.4.tar.xz -mirror://xorg/individual/font/font-sun-misc-1.0.4.tar.xz -mirror://xorg/individual/font/font-util-1.4.1.tar.xz -mirror://xorg/individual/font/font-winitzki-cyrillic-1.0.4.tar.xz -mirror://xorg/individual/font/font-xfree86-type1-1.0.5.tar.xz -mirror://xorg/individual/lib/libAppleWM-1.4.1.tar.bz2 -mirror://xorg/individual/lib/libdmx-1.1.5.tar.xz -mirror://xorg/individual/lib/libfontenc-1.1.7.tar.xz -mirror://xorg/individual/lib/libFS-1.0.9.tar.xz -mirror://xorg/individual/lib/libICE-1.1.1.tar.xz -mirror://xorg/individual/lib/libpciaccess-0.18.tar.xz -mirror://xorg/individual/lib/libSM-1.2.4.tar.xz -mirror://xorg/individual/lib/libWindowsWM-1.0.1.tar.bz2 -mirror://xorg/individual/lib/libX11-1.8.7.tar.xz -mirror://xorg/individual/lib/libXau-1.0.11.tar.xz -mirror://xorg/individual/lib/libXaw-1.0.15.tar.xz -mirror://xorg/individual/lib/libxcb-1.16.tar.xz -mirror://xorg/individual/lib/libXcomposite-0.4.6.tar.xz -mirror://xorg/individual/lib/libXcursor-1.2.2.tar.xz -mirror://xorg/individual/lib/libxcvt-0.1.2.tar.xz -mirror://xorg/individual/lib/libXdamage-1.1.6.tar.xz -mirror://xorg/individual/lib/libXdmcp-1.1.4.tar.xz -mirror://xorg/individual/lib/libXext-1.3.6.tar.xz -mirror://xorg/individual/lib/libXfixes-6.0.1.tar.xz -mirror://xorg/individual/lib/libXfont-1.5.4.tar.bz2 -mirror://xorg/individual/lib/libXfont2-2.0.6.tar.xz -mirror://xorg/individual/lib/libXft-2.3.8.tar.xz -mirror://xorg/individual/lib/libXi-1.8.1.tar.xz -mirror://xorg/individual/lib/libXinerama-1.1.5.tar.xz -mirror://xorg/individual/lib/libxkbfile-1.1.3.tar.xz -mirror://xorg/individual/lib/libXmu-1.1.4.tar.xz -mirror://xorg/individual/lib/libXp-1.0.4.tar.xz -mirror://xorg/individual/lib/libXpm-3.5.17.tar.xz -mirror://xorg/individual/lib/libXpresent-1.0.1.tar.xz -mirror://xorg/individual/lib/libXrandr-1.5.4.tar.xz -mirror://xorg/individual/lib/libXrender-0.9.11.tar.xz -mirror://xorg/individual/lib/libXres-1.2.2.tar.xz -mirror://xorg/individual/lib/libXScrnSaver-1.2.4.tar.xz -mirror://xorg/individual/lib/libxshmfence-1.3.2.tar.xz -mirror://xorg/individual/lib/libXTrap-1.0.1.tar.bz2 -mirror://xorg/individual/lib/libXt-1.3.0.tar.xz -mirror://xorg/individual/lib/libXtst-1.2.4.tar.xz -mirror://xorg/individual/lib/libXv-1.0.12.tar.xz -mirror://xorg/individual/lib/libXvMC-1.0.14.tar.xz -mirror://xorg/individual/lib/libXxf86dga-1.1.6.tar.xz -mirror://xorg/individual/lib/libXxf86misc-1.0.4.tar.bz2 -mirror://xorg/individual/lib/libXxf86vm-1.1.5.tar.xz -mirror://xorg/individual/lib/xcb-util-cursor-0.1.5.tar.xz -mirror://xorg/individual/lib/xtrans-1.5.0.tar.xz -mirror://xorg/individual/proto/xcb-proto-1.16.0.tar.xz -mirror://xorg/individual/proto/xorgproto-2023.2.tar.xz -mirror://xorg/individual/util/bdftopcf-1.1.1.tar.xz -mirror://xorg/individual/util/gccmakedep-1.0.3.tar.bz2 -mirror://xorg/individual/util/imake-1.0.10.tar.xz -mirror://xorg/individual/util/lndir-1.0.4.tar.xz -mirror://xorg/individual/util/makedepend-1.0.9.tar.xz -mirror://xorg/individual/util/util-macros-1.20.0.tar.xz -mirror://xorg/individual/util/xorg-cf-files-1.0.8.tar.xz -mirror://xorg/individual/xserver/xorg-server-21.1.13.tar.xz diff --git a/pkgs/by-name/xo/xorg/use_crocus_and_iris.patch b/pkgs/by-name/xo/xorg/use_crocus_and_iris.patch deleted file mode 100644 index 54744f4..0000000 --- a/pkgs/by-name/xo/xorg/use_crocus_and_iris.patch +++ /dev/null @@ -1,28 +0,0 @@ ---- a/src/uxa/intel_dri.c -+++ b/src/uxa/intel_dri.c -@@ -1540,8 +1540,10 @@ - return has_i830_dri() ? "i830" : "i915"; - else if (INTEL_INFO(intel)->gen < 040) - return "i915"; -+ else if (INTEL_INFO(intel)->gen < 0100) -+ return "crocus"; - else -- return "i965"; -+ return "iris"; - } - - return s; ---- a/src/sna/sna_dri2.c -+++ b/src/sna/sna_dri2.c -@@ -3707,8 +3707,10 @@ - return has_i830_dri() ? "i830" : "i915"; - else if (sna->kgem.gen < 040) - return "i915"; -+ else if (sna->kgem.gen < 0100) -+ return "crocus"; - else -- return "i965"; -+ return "iris"; - } - - return s; diff --git a/pkgs/by-name/xo/xorg/xcb-util-xrm.nix b/pkgs/by-name/xo/xorg/xcb-util-xrm.nix deleted file mode 100644 index 0235ad2..0000000 --- a/pkgs/by-name/xo/xorg/xcb-util-xrm.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib, stdenv, fetchurl, pkg-config, m4, libxcb, xcbutil, libX11 }: - -stdenv.mkDerivation rec { - version = "1.3"; - pname = "xcb-util-xrm"; - - src = fetchurl { - url = "https://github.com/Airblader/xcb-util-xrm/releases/download/v${version}/${pname}-${version}.tar.bz2"; - sha256 = "118cj1ybw86pgw0l5whn9vbg5n5b0ijcpx295mwahzi004vz671h"; - }; - - strictDeps = true; - - nativeBuildInputs = [ pkg-config m4 ]; - doCheck = true; - buildInputs = [ libxcb xcbutil libX11 ]; - - meta = with lib; { - description = "XCB utility functions for the X resource manager"; - homepage = "https://github.com/Airblader/xcb-util-xrm"; - license = licenses.mit; # X11 variant - platforms = with platforms; unix; - }; -} diff --git a/pkgs/by-name/xo/xorg/xwayland.nix b/pkgs/by-name/xo/xorg/xwayland.nix deleted file mode 100644 index a34e128..0000000 --- a/pkgs/by-name/xo/xorg/xwayland.nix +++ /dev/null @@ -1,126 +0,0 @@ -{ 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 { - pname = "xwayland"; - version = "23.2.6"; - - src = fetchurl { - url = "mirror://xorg/individual/xserver/${pname}-${version}.tar.xz"; - hash = "sha256-HJo2a058ytug+b0xPFnq4S0jvXJUOyKibq+LIINc/G0="; - }; - - depsBuildBuild = [ - pkg-config - ]; - nativeBuildInputs = [ - pkg-config - meson - ninja - wayland-scanner - ]; - buildInputs = [ - egl-wayland - libepoxy - libei - fontutil - libGL - libGLU - libX11 - libXau - libXaw - libXdmcp - libXext - libXfixes - libXfont2 - libXmu - libXpm - libXrender - libXres - libXt - libdrm - libtirpc - libxcb - libxkbfile - libxshmfence - libxcvt - mesa - openssl - pixman - wayland - wayland-protocols - xkbcomp - xorgproto - xtrans - zlib - ] ++ lib.optionals withLibunwind [ - libunwind - ]; - mesonFlags = [ - (lib.mesonBool "xwayland_eglstream" true) - (lib.mesonBool "xcsecurity" true) - (lib.mesonOption "default_font_path" defaultFontPath) - (lib.mesonOption "xkb_bin_dir" "${xkbcomp}/bin") - (lib.mesonOption "xkb_dir" "${xkeyboard_config}/etc/X11/xkb") - (lib.mesonOption "xkb_output_dir" "${placeholder "out"}/share/X11/xkb/compiled") - (lib.mesonBool "libunwind" withLibunwind) - ]; - - passthru.updateScript = gitUpdater { - # No nicer place to find latest release. - url = "https://gitlab.freedesktop.org/xorg/xserver.git"; - rev-prefix = "xwayland-"; - }; - - meta = with lib; { - description = "An X server for interfacing X11 apps with the Wayland protocol"; - homepage = "https://wayland.freedesktop.org/xserver.html"; - license = licenses.mit; - mainProgram = "Xwayland"; - maintainers = with maintainers; [ emantor ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/by-name/xz/xz/default.nix b/pkgs/by-name/xz/xz/default.nix deleted file mode 100644 index fae306a..0000000 --- a/pkgs/by-name/xz/xz/default.nix +++ /dev/null @@ -1,85 +0,0 @@ -{ lib, stdenv, fetchurl -, enableStatic ? stdenv.hostPlatform.isStatic -, writeScript -# for passthru.tests -# , testers -}: - -# 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. - -stdenv.mkDerivation (finalAttrs: { - pname = "xz"; - version = "5.4.6"; # Beware of CVE-2024-3094 and related risks!!! - - src = fetchurl { - 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"; - sha256 = "sha256-kThRsnTo4dMXgeyUnxwj6NvPDs9uc6JDbcIXad0+b0k="; - }; - - strictDeps = true; - outputs = [ "bin" "dev" "out" "man" "doc" ]; - - configureFlags = lib.optional enableStatic "--disable-shared"; - - enableParallelBuilding = true; - doCheck = true; - - preCheck = '' - # Tests have a /bin/sh dependency... - patchShebangs tests - ''; - - # In stdenv-linux, prevent a dependency on bootstrap-tools. - preConfigure = "CONFIG_SHELL=/bin/sh"; - - postInstall = "rm -rf $out/share/doc"; - - # passthru = { - # updateScript = writeScript "update-xz" '' - # #!/usr/bin/env nix-shell - # #!nix-shell -i bash -p curl pcre common-updater-scripts - - # set -eu -o pipefail - - # # Expect the text in format of '>xz-5.2.6.tar.bz2' - # # We pick first match where a stable release goes first. - # new_version="$(curl -s https://tukaani.org/xz/ | - # pcregrep -o1 '>xz-([0-9.]+)[.]tar[.]bz2' | - # head -n1)" - # update-source-version ${finalAttrs.pname} "$new_version" - # ''; - # tests.pkg-config = testers.hasPkgConfigModules { - # package = finalAttrs.finalPackage; - # }; - # }; - - meta = with lib; { - 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. - - 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 ]; - 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 deleted file mode 100644 index 029a1bd..0000000 --- a/pkgs/by-name/zl/zlib/default.nix +++ /dev/null @@ -1,146 +0,0 @@ -{ 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 -}: - -# Without either the build will actually still succeed because the build -# system makes an arbitrary choice, but we shouldn't be so indecisive. -assert shared || static; - -# 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 splitStaticOutput -> static; - -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="; - }; - - postPatch = lib.optionalString stdenv.hostPlatform.isDarwin '' - substituteInPlace configure \ - --replace '/usr/bin/libtool' '${stdenv.cc.targetPrefix}ar' \ - --replace 'AR="libtool"' 'AR="${stdenv.cc.targetPrefix}ar"' \ - --replace 'ARFLAGS="-o"' 'ARFLAGS="-r"' - ''; - - strictDeps = true; - outputs = [ "out" "dev" ] - ++ lib.optional splitStaticOutput "static"; - setOutputFlags = false; - outputDoc = "dev"; # single tiny man3 page - - dontConfigure = stdenv.hostPlatform.isMinGW; - - preConfigure = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' - export CHOST=${stdenv.hostPlatform.config} - ''; - - # For zlib's ./configure (as of version 1.2.11), the order - # of --static/--shared flags matters! - # `--shared --static` builds only static libs, while - # `--static --shared` builds both. - # So we use the latter order to be able to build both. - # Also, giving just `--shared` builds both, - # giving just `--static` builds only static, - # and giving nothing builds both. - # So we have 3 possible ways to build both: - # `--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"; - # We do the right thing manually, above, so don't need these. - dontDisableStatic = true; - dontAddStaticConfigureFlags = true; - - # Note we don't need to set `dontDisableStatic`, because static-disabling - # works by grepping for `enable-static` in the `./configure` script - # (see `pkgs/stdenv/generic/setup.sh`), and zlib's handwritten one does - # not have such. - # It wouldn't hurt setting `dontDisableStatic = static && !splitStaticOutput` - # 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" - '' - # 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 - '' - # 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 - ''; - - # 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) - env.NIX_CFLAGS_COMPILE = lib.optionalString (!stdenv.hostPlatform.isDarwin) "-static-libgcc"; - - # 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 = []; - - installFlags = lib.optionals stdenv.hostPlatform.isMinGW [ - "BINARY_PATH=$(out)/bin" - "INCLUDE_PATH=$(dev)/include" - "LIBRARY_PATH=$(out)/lib" - ]; - - 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" - ]; - - # passthru.tests = { - # pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - # # uses `zlib` derivation: - # inherit minizip; - # }; - - meta = with lib; { - homepage = "https://zlib.net"; - description = "Lossless data-compression library"; - license = licenses.zlib; - platforms = platforms.all; - pkgConfigModules = [ "zlib" ]; - }; -}) diff --git a/pkgs/by-name/zs/zstd/default.nix b/pkgs/by-name/zs/zstd/default.nix deleted file mode 100644 index eebc258..0000000 --- a/pkgs/by-name/zs/zstd/default.nix +++ /dev/null @@ -1,129 +0,0 @@ -{ 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 -# , libarchive -# , rocksdb -# , arrow-cpp -# , libzip -# , curl -# , python3Packages -# , haskellPackages -}: - -stdenv.mkDerivation rec { - pname = "zstd"; - version = "1.5.6"; - - src = fetchFromGitHub { - owner = "facebook"; - repo = "zstd"; - rev = "v${version}"; - hash = "sha256-qcd92hQqVBjMT3hyntjcgk29o9wGQsg5Hg7HE5C0UNc="; - }; - - nativeBuildInputs = [ cmake ] - ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; - buildInputs = lib.optional stdenv.hostPlatform.isUnix bash; - - patches = [ - # This patches makes sure we do not attempt to use the MD5 implementation - # of the host platform when running the tests - ./playtests-darwin.patch - ]; - - postPatch = lib.optionalString (!static) '' - substituteInPlace build/cmake/CMakeLists.txt \ - --replace 'message(SEND_ERROR "You need to build static library to build tests")' "" - substituteInPlace build/cmake/tests/CMakeLists.txt \ - --replace 'libzstd_static' 'libzstd_shared' - sed -i \ - "1aexport ${lib.optionalString stdenv.isDarwin "DY"}LD_LIBRARY_PATH=$PWD/build_/lib" \ - 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; - }; - - cmakeDir = "../build/cmake"; - dontUseCmakeBuildDir = true; - preConfigure = '' - mkdir -p build_ && cd $_ - ''; - - nativeCheckInputs = [ file ]; - inherit doCheck; - checkPhase = '' - runHook preCheck - # Patch shebangs for playTests - patchShebangs ../programs/zstdgrep - ctest -R playTests # The only relatively fast test. - 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 ( - '' - 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 { }; - # tests = { - # inherit libarchive rocksdb arrow-cpp; - # libzip = libzip.override { withZstd = true; }; - # curl = curl.override { zstdSupport = true; }; - # python-zstd = python3Packages.zstd; - # haskell-zstd = haskellPackages.zstd; - # haskell-hs-zstd = haskellPackages.hs-zstd; - # }; - # }; - - meta = with lib; { - description = "Zstandard real-time compression algorithm"; - longDescription = '' - Zstd, short for Zstandard, is a fast lossless compression algorithm, - targeting real-time compression scenarios at zlib-level compression - ratio. Zstd can also offer stronger compression ratio at the cost of - compression speed. Speed/ratio trade-off is configurable by small - increment, to fit different situations. Note however that decompression - speed is preserved and remain roughly the same at all settings, a - property shared by most LZ compression algorithms, such as zlib. - ''; - homepage = "https://facebook.github.io/zstd/"; - changelog = "https://github.com/facebook/zstd/blob/v${version}/CHANGELOG"; - license = with licenses; [ bsd3 ]; # Or, at your opinion, GPL-2.0-only. - - platforms = platforms.all; - maintainers = with maintainers; [ orivej ]; - }; -} diff --git a/pkgs/by-name/zs/zstd/packages.nix b/pkgs/by-name/zs/zstd/packages.nix deleted file mode 100644 index db501f7..0000000 --- a/pkgs/by-name/zs/zstd/packages.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - zstd = callPackage ./. { - cmake = buildPackages.cmakeMinimal; - }; -} diff --git a/pkgs/by-name/zs/zstd/playtests-darwin.patch b/pkgs/by-name/zs/zstd/playtests-darwin.patch deleted file mode 100644 index 454489a..0000000 --- a/pkgs/by-name/zs/zstd/playtests-darwin.patch +++ /dev/null @@ -1,40 +0,0 @@ ---- a/tests/playTests.sh -+++ b/tests/playTests.sh -@@ -112,29 +112,19 @@ case "$OS" in - esac - - case "$UNAME" in -- Darwin) MD5SUM="md5 -r" ;; -- FreeBSD) MD5SUM="gmd5sum" ;; -- NetBSD) MD5SUM="md5 -n" ;; -- OpenBSD) MD5SUM="md5" ;; - *) MD5SUM="md5sum" ;; - esac - - MTIME="stat -c %Y" --case "$UNAME" in -- Darwin | FreeBSD | OpenBSD | NetBSD) MTIME="stat -f %m" ;; --esac - - assertSameMTime() { - MT1=$($MTIME "$1") - MT2=$($MTIME "$2") - echo MTIME $MT1 $MT2 - [ "$MT1" = "$MT2" ] || die "mtime on $1 doesn't match mtime on $2 ($MT1 != $MT2)" - } - - GET_PERMS="stat -c %a" --case "$UNAME" in -- Darwin | FreeBSD | OpenBSD | NetBSD) GET_PERMS="stat -f %Lp" ;; --esac - - assertFilePermissions() { - STAT1=$($GET_PERMS "$1") -@@ -967,7 +957,6 @@ $MD5SUM dirTestDict/* > tmph1 - zstd -f --rm dirTestDict/* -D tmpDictC - zstd -d --rm dirTestDict/*.zst -D tmpDictC # note : use internal checksum by default - case "$UNAME" in -- Darwin) println "md5sum -c not supported on OS-X : test skipped" ;; # not compatible with OS-X's md5 - *) $MD5SUM -c tmph1 ;; - esac - rm -rf dirTestDict diff --git a/pkgs/common-updater/combinators.nix b/pkgs/common-updater/combinators.nix deleted file mode 100644 index d60a6e7..0000000 --- a/pkgs/common-updater/combinators.nix +++ /dev/null @@ -1,158 +0,0 @@ -{ lib -}: - -/* - This is a set of tools to manipulate update scripts as recognized by update.nix. - It is still very experimental with **instability** almost guaranteed so any use - outside Nixpkgs is discouraged. - - update.nix currently accepts the following type: - - type UpdateScript - // Simple path to script to execute script - = FilePath - // Path to execute plus arguments to pass it - | [ (FilePath | String) ] - // Advanced attribue set (experimental) - | { - // Script to execute (same as basic update script above) - command : (FilePath | [ (FilePath | String) ]) - // Features that the script supports - // - commit: (experimental) returns commit message in stdout - // - silent: (experimental) returns no stdout - supportedFeatures : ?[ ("commit" | "silent") ] - // Override attribute path detected by update.nix - attrPath : ?String - } -*/ - -let - /* - 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); - - /* - 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 }: - 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; - }; - /* - 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; - /* - 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 }: - command: - let - new = extractPaths maxArgIndex command; - in - { - commands = commands ++ [ new.args ]; - paths = paths ++ new.paths; - maxArgIndex = new.maxArgIndex; - }; - /* - 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; - - /* - 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: - let - extracted = extractCommands 0 commands; - in - [ - "sh" - "-c" - (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; -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; - }; - - /* - sequence : [UpdateScript] → UpdateScript - EXPERIMENTAL! Combines multiple update scripts to run in sequence. - */ - sequence = - scripts: - - let - scriptsNormalized = builtins.map normalize scripts; - in - let - scripts = scriptsNormalized; - hasCommitSupport = lib.findSingle ({ supportedFeatures, ... }: supportedFeatures == [ "commit" ]) null null scripts != null; - validateFeatures = - if hasCommitSupport then - ({ supportedFeatures, ... }: supportedFeatures == [ "commit" ] || supportedFeatures == [ "silent" ]) - else - ({ 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."; - - { - command = commandsToShellInvocation (builtins.map ({ command, ... }: command) scripts); - supportedFeatures = lib.optionals hasCommitSupport [ - "commit" - ]; - }; - - /* - copyAttrOutputToFile : String → FilePath → UpdateScript - EXPERIMENTAL! Simple update script that copies the output of Nix derivation built by `attr` to `path`. - */ - copyAttrOutputToFile = - attr: - path: - - { - command = [ - "sh" - "-c" - "cp --no-preserve=all \"$(nix-build -A ${attr})\" \"$0\" > /dev/null" - path - ]; - supportedFeatures = [ "silent" ]; - }; - -} diff --git a/pkgs/common-updater/directory-listing-updater.nix b/pkgs/common-updater/directory-listing-updater.nix deleted file mode 100644 index bd0b5b1..0000000 --- a/pkgs/common-updater/directory-listing-updater.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ lib -, genericUpdater -, common-updater-scripts -}: - -{ 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}"}"; -} diff --git a/pkgs/common-updater/generic-updater.nix b/pkgs/common-updater/generic-updater.nix deleted file mode 100644 index 25008d6..0000000 --- a/pkgs/common-updater/generic-updater.nix +++ /dev/null @@ -1,124 +0,0 @@ -{ 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 -}: - -let - # where to print git commands and debugging messages - fileForGitCommands = "update-git-commits.txt"; - - # shell script to update package - updateScript = writeScript "generic-update-script.sh" '' - #! ${stdenv.shell} - set -o errexit - set -x - - name="$1" - pname="$2" - version="$3" - attr_path="$4" - version_lister="$5" - ignored_versions="$6" - rev_prefix="$7" - odd_unstable="$8" - patchlevel_unstable="$9" - - [[ -n "$name" ]] || name="$UPDATE_NIX_NAME" - [[ -n "$pname" ]] || pname="$UPDATE_NIX_PNAME" - [[ -n "$version" ]] || version="$UPDATE_NIX_OLD_VERSION" - [[ -n "$attr_path" ]] || attr_path="$UPDATE_NIX_ATTR_PATH" - - # print header - echo "# $name" >> ${fileForGitCommands} - - function version_is_ignored() { - local tag="$1" - [ -n "$ignored_versions" ] && grep -E "$ignored_versions" <<< "$tag" - } - - function version_is_unstable() { - local tag="$1" - local enforce="$2" - if [ -n "$odd_unstable" -o -n "$enforce" ]; then - local minor=$(echo "$tag" | ${gnused}/bin/sed -rne 's,^[0-9]+\.([0-9]+).*,\1,p') - if [ $((minor % 2)) -eq 1 ]; then - return 0 - fi - fi - if [ -n "$patchlevel_unstable" -o -n "$enforce" ]; then - local patchlevel=$(echo "$tag" | ${gnused}/bin/sed -rne 's,^[0-9]+\.[0-9]+\.([0-9]+).*$,\1,p') - if ((patchlevel >= 90)); then - return 0 - fi - fi - return 1 - } - - tags=$(sh -c "$version_lister --pname=$pname --attr-path=$attr_path --file=\"${fileForGitCommands}\"") || exit 1 - - # print available tags - for tag in $tags; do - echo "# found $pname version: $tag" >> ${fileForGitCommands} - done - - # cut any revision prefix not used in the NixOS package version - if [ -n "$rev_prefix" ]; then - tags=$(echo "$tags" | ${gnugrep}/bin/grep "^$rev_prefix") - tags=$(echo "$tags" | ${gnused}/bin/sed -e "s,^$rev_prefix,,") - fi - tags=$(echo "$tags" | ${gnugrep}/bin/grep "^[0-9]") - - # sort the tags in decreasing order - tags=$(echo "$tags" | ${coreutils}/bin/sort --reverse --version-sort) - - # find the newest tag - # do not consider development versions - for latest_tag in $tags; do - if version_is_ignored "$latest_tag"; then - echo "# skip ignored version: $pname-$latest_tag" >> ${fileForGitCommands} - latest_tag= - elif version_is_unstable "$latest_tag"; then - echo "# skip development version: $pname-$latest_tag" >> ${fileForGitCommands} - latest_tag= - else - if version_is_unstable "$latest_tag" "enforce"; then - echo "# use potential development version: $pname-$latest_tag" >> ${fileForGitCommands} - fi - break - fi - done - - if [ -n "$latest_tag" ]; then - # print commands to commit the changes - if [ "$version" != "$latest_tag" ]; then - pfile=$(EDITOR=echo ${nix}/bin/nix edit --extra-experimental-features nix-command -f. "$attr_path") - echo " git add $pfile " >> ${fileForGitCommands} - echo " git commit -m '$attr_path: $version -> $latest_tag'" >> ${fileForGitCommands} - fi - - # update the nix expression - ${common-updater-scripts}/bin/update-source-version --print-changes "$attr_path" "$latest_tag" - else - # No changes for commit protocol. - echo "[]" - fi - - echo "" >> ${fileForGitCommands} - ''; - -in { - name = "generic-update-script"; - 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 deleted file mode 100644 index 86bf88a..0000000 --- a/pkgs/common-updater/git-updater.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ 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 -}: - -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}"}"; -} diff --git a/pkgs/common-updater/http-two-levels-updater.nix b/pkgs/common-updater/http-two-levels-updater.nix deleted file mode 100644 index 4656163..0000000 --- a/pkgs/common-updater/http-two-levels-updater.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ lib -, genericUpdater -, common-updater-scripts -}: - -{ 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}"}"; -} diff --git a/pkgs/common-updater/nix-update.nix b/pkgs/common-updater/nix-update.nix deleted file mode 100644 index 342b167..0000000 --- a/pkgs/common-updater/nix-update.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ lib, nix-update }: - -{ 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 deleted file mode 100644 index 2296121..0000000 --- a/pkgs/common-updater/packages.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ ... }: -res: pkgs: super: - -with pkgs; -{ - common-updater-scripts = callPackage ./scripts.nix { }; - - genericUpdater = callPackage ./generic-updater.nix { }; - - _experimental-update-script-combinators = callPackage ./combinators.nix { }; - - directoryListingUpdater = callPackage ./directory-listing-updater.nix { }; - - gitUpdater = callPackage ./git-updater.nix { }; - - httpTwoLevelsUpdater = callPackage ./http-two-levels-updater.nix { }; - - unstableGitUpdater = callPackage ./unstable-updater.nix { }; - - nix-update-script = callPackage ./nix-update.nix { }; -} diff --git a/pkgs/common-updater/scripts.nix b/pkgs/common-updater/scripts.nix deleted file mode 100644 index d5ee3b5..0000000 --- a/pkgs/common-updater/scripts.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ lib -, stdenv -, makeWrapper -, coreutils -, diffutils -, git -, gnugrep -, gnused -, jq -, nix -, python3Packages -}: - -stdenv.mkDerivation { - name = "common-updater-scripts"; - - nativeBuildInputs = [ - makeWrapper - python3Packages.wrapPython - ]; - - pythonPath = [ - python3Packages.beautifulsoup4 - python3Packages.requests - ]; - - dontUnpack = true; - - installPhase = '' - mkdir -p $out/bin - cp ${./scripts}/* $out/bin - - # 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 ]} - fi - done - - # wrap python scripts - makeWrapperArgs+=( --prefix PATH : "${lib.makeBinPath [ nix ]}" ) - wrapPythonPrograms - ''; -} diff --git a/pkgs/common-updater/scripts/list-archive-two-levels-versions b/pkgs/common-updater/scripts/list-archive-two-levels-versions deleted file mode 100755 index e7c02ed..0000000 --- a/pkgs/common-updater/scripts/list-archive-two-levels-versions +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env bash - -# lists all available versions listed for a package in a site (http) - -pname="" # package name -attr_path="" # package attribute path -url="" # directory listing url -file="" # file for writing debugging information - -while (( $# > 0 )); do - flag="$1" - shift 1 - case "$flag" in - --pname=*) - pname="${flag#*=}" - ;; - --attr-path=*) - attr_path="${flag#*=}" - ;; - --url=*) - url="${flag#*=}" - ;; - --file=*) - file="${flag#*=}" - ;; - *) - echo "$0: unknown option ‘${flag}’" - exit 1 - ;; - esac -done - -if [[ -z "$pname" ]]; then - pname="$UPDATE_NIX_PNAME" -fi - -if [[ -z "$attr_path" ]]; then - attr_path="$UPDATE_NIX_ATTR_PATH" -fi - -# by default set url to the base dir of the first url in src.urls -if [[ -z "$url" ]]; then - url="$(nix-instantiate $systemArg --eval -E \ - "with import ./. {}; dirOf (dirOf (lib.head $attr_path.src.urls))" \ - | tr -d '"')" -fi - -# print a debugging message -if [[ -n "$file" ]]; then - echo "# Listing versions for '$pname' at $url" >> $file -fi - -# list all major-minor versions from url -tags1=$(curl -sS "$url/") -tags1=$(echo "$tags1" | sed -rne 's,^.*,\1,p') - -# print available versions -for tag in $tags1; do - tags2=$(curl -sS "$url/$tag/") - tags2=$(echo "$tags2" | sed -rne "s,^.*,\\1,p") - echo "$tags2" -done diff --git a/pkgs/common-updater/scripts/list-directory-versions b/pkgs/common-updater/scripts/list-directory-versions deleted file mode 100755 index c713578..0000000 --- a/pkgs/common-updater/scripts/list-directory-versions +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/bin/env python - -import argparse -import requests -import os -import subprocess -import json -import re -from bs4 import BeautifulSoup - -parser = argparse.ArgumentParser( - description="Get all available versions listed for a package in a site." -) - -parser.add_argument( - "--pname", - default=os.environ.get("UPDATE_NIX_PNAME"), - required="UPDATE_NIX_PNAME" not in os.environ, - help="name of the package", -) -parser.add_argument( - "--attr-path", - default=os.environ.get("UPDATE_NIX_ATTR_PATH"), - help="attribute path of the package", -) -parser.add_argument("--url", help="url of the page that lists the package versions") -parser.add_argument("--file", help="file name for writing debugging information") - -parser.add_argument("--extra-regex", help="additional regex to filter versions with") - - -if __name__ == "__main__": - args = parser.parse_args() - - pname = args.pname - - attr_path = args.attr_path or pname - - url = args.url or json.loads( - subprocess.check_output( - [ - "nix-instantiate", - "--json", - "--eval", - "-E", - f"with import ./. {{}}; dirOf (lib.head {attr_path}.src.urls)", - ], - text=True, - ) - ) - - # print a debugging message - if args.file: - with open(args.file, "a") as f: - f.write(f"# Listing versions for {pname} from {url}\n") - - page = requests.get(url) - soup = BeautifulSoup(page.content, "html.parser") - links = soup.find_all("a") - for link in links: - link_url = link.get("href", None) - if link_url is not None: - match = re.fullmatch( - rf"(.*/)?{args.pname}-([\d.]+?(-[\d\w.-]+?)?)(\.tar)?(\.[^.]*)", link_url - ) - if match: - version = match.group(2) - if (not args.extra_regex) or re.fullmatch(args.extra_regex, version): - print(version) diff --git a/pkgs/common-updater/scripts/list-git-tags b/pkgs/common-updater/scripts/list-git-tags deleted file mode 100755 index cf0a52d..0000000 --- a/pkgs/common-updater/scripts/list-git-tags +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/env bash - -# lists all available tags from a git repository - -pname="" # package name -attr_path="" # package attribute path -url="" # git repository url -file="" # file for writing debugging information - -while (( $# > 0 )); do - flag="$1" - shift 1 - case "$flag" in - --pname=*) - pname="${flag#*=}" - ;; - --attr-path=*) - attr_path="${flag#*=}" - ;; - --url=*) - url="${flag#*=}" - ;; - --file=*) - file="${flag#*=}" - ;; - *) - echo "$0: unknown option ‘${flag}’" - exit 1 - ;; - esac -done - -if [[ -z "$pname" ]]; then - pname="$UPDATE_NIX_PNAME" -fi - -if [[ -z "$attr_path" ]]; then - attr_path="$UPDATE_NIX_ATTR_PATH" -fi - -# By default we set url to src.url or src.meta.homepage -if [[ -z "$url" ]]; then - url="$(nix-instantiate $systemArg --eval -E \ - "with import ./. {}; $attr_path.src.meta.homepage or $attr_path.src.url" \ - | tr -d '"')" -fi - -# print a debugging message -if [[ -n "$file" ]]; then - echo "# Listing tags for '$pname' at $url" >> $file -fi - -# list all tags from the remote repository -tags=$(git ls-remote --tags --refs "$url") - -# keep only the version part of the tag -tags=$(echo "$tags" | cut --delimiter=/ --field=3-) - -echo "$tags" diff --git a/pkgs/common-updater/scripts/mark-broken b/pkgs/common-updater/scripts/mark-broken deleted file mode 100755 index 7035bee..0000000 --- a/pkgs/common-updater/scripts/mark-broken +++ /dev/null @@ -1,104 +0,0 @@ -#!/usr/bin/env bash - -# This script is meant to be used to mark failing hydra builds as broken in the meta attrs -# To use the script, you should pass the list of failing attrs as arguments to the script. -# -# Example: `cat failing-attrs | xargs ./pkgs/common-updater/scripts/mark-broken` -# -# Generating a list of failing attrs: (this should be improved at a later date) -# - Go to the most recent hydra evaluation with all builds completed -# - Select the "builds still failing" tab -# - Highlight and select all packages, should be prefixed with `nixpkgs.` -# - Use regex and editor foo to leave only the attr names -# - Use the above example command to then execute the script -# -# OTHER NOTES: -# - The `denyFileList` and `denyAttrList` will likely need to be updated slightly -# to align with the conventions used in nixpkgs at execution time -# - Any attrs which failed for any reason will be written to `failed-marks.txt`. -# Those attrs will likely need manual attention as disablement will likely be conditional. - -scriptName=mark-broken # do not use the .wrapped name - -failMark() { - local attr=$1 - shift 1 - - echo "$attr: $@" >&2 - echo $attr >> failed-marks.txt -} - -usage() { - echo "Usage: $scriptName " -} - -if (( "${#@}" < 1 )); then - echo "$scriptName: Too few arguments" - usage - exit 1 -fi - -# in case we resolve to an auto-generated file, just skip these entries -denyFileList=( - node-packages.nix # node, it will mark all node packages as broken - generic-builder.nix # haskell, it will mark all haskell packages as broken -) - -# ignore older versions of parameterized packages sets, these likely need -# to be conditionally disabled -denyAttrList=( - python27Packages - linuxPackages_ - rubyPackages_ -) - -function attemptToMarkBroken() { - local attr=$1 - - # skip likely to be noisy attrs - for badAttr in ${denyAttrList[@]};do - if [[ $attr =~ $badAttr ]]; then - failMark $attr "attr contained $badAttr, skipped." - return - fi - done - - nixFile=$(nix-instantiate --eval --json -E "with import ./. {}; (builtins.unsafeGetAttrPos \"description\" $attr.meta).file" 2>/dev/null | jq -r .) - if [[ ! -f "$nixFile" ]]; then - failMark $attr "Couldn't locate correct file" - return - fi - - # skip files which are auto-generated - for filename in ${denyFileList[@]};do - if [[ "$filename" == $(basename $nixFile) ]]; then - failMark $attr "filename matched $filename, skipped." - return - fi - done - - # Insert broken attribute - sed -i.bak "$nixFile" -r \ - -e "/^\s*broken\s*=.*$/d" \ - -e "s/(\s*)meta\s*=.*\{/&\n\1 broken = true;/" - - if cmp -s "$nixFile" "$nixFile.bak"; then - mv "$nixFile.bak" "$nixFile" - failMark $attr "Does it have a meta attribute?" - return - fi - - # broken should evaluate to true in any case now - markedSuccessfully=$(nix-instantiate --eval -E "with import ./. {}; $attr.meta.broken") - if [[ "$markedSuccessfully" != "true" ]]; then - mv "$nixFile.bak" "$nixFile" - failMark $attr "$attr.meta.broken doesn't evaluate to true." - return - fi - - rm -f "$nixFile.bak" -} - -for attr in $@; do - attemptToMarkBroken $attr -done diff --git a/pkgs/common-updater/scripts/update-source-version b/pkgs/common-updater/scripts/update-source-version deleted file mode 100755 index 75ad6e7..0000000 --- a/pkgs/common-updater/scripts/update-source-version +++ /dev/null @@ -1,273 +0,0 @@ -#!/usr/bin/env bash -set -e - -scriptName=update-source-version # do not use the .wrapped name - -die() { - echo "$scriptName: error: $1" >&2 - exit 1 -} - -usage() { - echo "Usage: $scriptName [] []" - echo " [--version-key=] [--source-key=]" - echo " [--system=] [--file=] [--rev=]" - echo " [--ignore-same-hash] [--print-changes]" -} - -args=() - -for arg in "$@"; do - case $arg in - --system=*) - system="${arg#*=}" - systemArg="--system ${arg#*=}" - ;; - --version-key=*) - versionKey="${arg#*=}" - ;; - --source-key=*) - sourceKey="${arg#*=}" - ;; - --file=*) - nixFile="${arg#*=}" - if [[ ! -f "$nixFile" ]]; then - die "Could not find provided file $nixFile" - fi - ;; - --rev=*) - newRevision="${arg#*=}" - ;; - --ignore-same-hash) - ignoreSameHash="true" - ;; - --print-changes) - printChanges="true" - ;; - --help) - usage - exit 0 - ;; - --*) - echo "$scriptName: Unknown argument: $arg" - usage - exit 1 - ;; - *) - args["${#args[*]}"]=$arg - ;; - esac -done - -attr=${args[0]} -newVersion=${args[1]} -newHash=${args[2]} -newUrl=${args[3]} - -# Third-party repositories might not accept arguments in their default.nix. -importTree="(let tree = import ./.; in if builtins.isFunction tree then tree {} else tree)" - -if (( "${#args[*]}" < 2 )); then - echo "$scriptName: Too few arguments" - usage - exit 1 -fi - -if (( "${#args[*]}" > 4 )); then - echo "$scriptName: Too many arguments" - usage - exit 1 -fi - -if [[ -z "$versionKey" ]]; then - versionKey=version -fi - -if [[ -z "$sourceKey" ]]; then - sourceKey=src -fi - -# Allow finding packages among flake outputs in repos using flake-compat. -pname=$(nix-instantiate $systemArg --eval --strict -A "$attr.name" || echo) -if [[ -z "$pname" ]]; then - if [[ -z "$system" ]]; then - system=$(nix-instantiate --eval -E 'builtins.currentSystem' | tr -d '"') - fi - - pname=$(nix-instantiate $systemArg --eval --strict -A "packages.$system.$attr.name" || echo) - if [[ -n "$pname" ]]; then - attr="packages.$system.$attr" - else - pname=$(nix-instantiate $systemArg --eval --strict -A "legacyPackages.$system.$attr.name" || echo) - if [[ -n "$pname" ]]; then - attr="legacyPackages.$system.$attr" - else - die "Could not find attribute '$attr'!" - fi - fi -fi - -if [[ -z "$nixFile" ]]; then - nixFile=$(nix-instantiate $systemArg --eval --strict -A "$attr.meta.position" | sed -re 's/^"(.*):[0-9]+"$/\1/') - if [[ ! -f "$nixFile" ]]; then - die "Couldn't evaluate '$attr.meta.position' to locate the .nix file!" - fi - - # flake-compat will return paths in the Nix store, we need to correct for that. - possiblyOutPath=$(nix-instantiate $systemArg --eval -E "with $importTree; outPath" 2>/dev/null | tr -d '"') - if [[ -n "$possiblyOutPath" ]]; then - outPathEscaped=$(echo "$possiblyOutPath" | sed 's#[$^*\\.[|]#\\&#g') - pwdEscaped=$(echo "$PWD" | sed 's#[$^*\\.[|]#\\&#g') - nixFile=$(echo "$nixFile" | sed "s|^$outPathEscaped|$pwdEscaped|") - fi -fi - -oldHashAlgo=$(nix-instantiate $systemArg --eval --strict -A "$attr.$sourceKey.drvAttrs.outputHashAlgo" | tr -d '"') -oldHash=$(nix-instantiate $systemArg --eval --strict -A "$attr.$sourceKey.drvAttrs.outputHash" | tr -d '"') - -if [[ -z "$oldHashAlgo" || -z "$oldHash" ]]; then - die "Couldn't evaluate old source hash from '$attr.$sourceKey'!" -fi - -if [[ $(grep --count "$oldHash" "$nixFile") != 1 ]]; then - die "Couldn't locate old source hash '$oldHash' (or it appeared more than once) in '$nixFile'!" -fi - -oldVersion=$(nix-instantiate $systemArg --eval -E "with $importTree; $attr.${versionKey} or (builtins.parseDrvName $attr.name).version" | tr -d '"') - -if [[ -z "$oldVersion" ]]; then - die "Couldn't find out the old version of '$attr'!" -fi - -if [[ "$oldVersion" = "$newVersion" ]]; then - echo "$scriptName: New version same as old version, nothing to do." >&2 - if [ -n "$printChanges" ]; then - printf '[]\n' - fi - exit 0 -fi - -if [[ -n "$newRevision" ]]; then - oldRevision=$(nix-instantiate $systemArg --eval -E "with $importTree; $attr.$sourceKey.rev" | tr -d '"') - if [[ -z "$oldRevision" ]]; then - die "Couldn't evaluate source revision from '$attr.$sourceKey'!" - fi -fi - -# Escape regex metacharacter that are allowed in store path names -oldVersionEscaped=$(echo "$oldVersion" | sed -re 's|[.+]|\\&|g') - -if [[ $(grep --count --extended-regexp "^\s*(let\b)?\s*$versionKey\s*=\s*\"$oldVersionEscaped\"" "$nixFile") = 1 ]]; then - pattern="/\b$versionKey\b\s*=/ s|\"$oldVersionEscaped\"|\"$newVersion\"|" -elif [[ $(grep --count --extended-regexp "^\s*(let\b)?\s*name\s*=\s*\"[^\"]+-$oldVersionEscaped\"" "$nixFile") = 1 ]]; then - pattern="/\bname\b\s*=/ s|-$oldVersionEscaped\"|-$newVersion\"|" -else - die "Couldn't figure out where out where to patch in new version in '$attr'!" -fi - -if [[ "$oldHash" =~ ^(sha256|sha512)[:-] ]]; then - # Handle the possible SRI-style hash attribute (in the form ${type}${separator}${hash}) - # True SRI uses dash as a separator and only supports base64, whereas Nix’s SRI-style format uses a colon and supports all the same encodings like regular hashes (16/32/64). - # To keep this program reasonably simple, we will upgrade Nix’s format to SRI. - oldHashAlgo="${BASH_REMATCH[1]}" - sri=true -elif [[ "$oldHashAlgo" = "null" ]]; then - # Some fetcher functions support SRI-style `hash` attribute in addition to legacy type-specific attributes. When `hash` is used `outputHashAlgo` is null so let’s complain when SRI-style hash value was not detected. - die "Unable to figure out hashing scheme from '$oldHash' in '$attr'!" -fi - -case "$oldHashAlgo" in - # Choose a temporary hash for given algorithm. - # Not using all-zeroes hash, since that is sometimes - # used for clean-up when updating multi-source packages. - # Created by hashing “update-source-version” string. - sha256) tempHash=AzH1rZFqEH8sovZZfJykvsEmCedEZWigQFHWHl6/PdE= ;; - sha512) tempHash=KFj9Fvco4AuCgLJIGRnVzyssRf7VGP2oi5CkH6ADvj75ow3am3h8pxefOgQlO+i33Q/BBnG/ST/F7B/0BvWHxw== ;; - *) die "Unhandled hash algorithm '$oldHashAlgo' in '$attr'!" ;; -esac - -if [[ -n "$sri" ]]; then - # SRI hashes only support base64 - # SRI hashes need to declare the hash type as part of the hash - tempHash="$(nix --extra-experimental-features nix-command hash to-sri --type "$oldHashAlgo" "$tempHash" 2>/dev/null \ - || nix to-sri --type "$oldHashAlgo" "$tempHash" 2>/dev/null)" \ - || die "Failed to convert hash to SRI representation!" -fi - -# Escape regex metacharacter that are allowed in hashes (+) -oldHashEscaped=$(echo "$oldHash" | sed -re 's|[+]|\\&|g') -tempHashEscaped=$(echo "$tempHash" | sed -re 's|[+]|\\&|g') - -# Replace new version -sed -i.cmp "$nixFile" -re "$pattern" -if cmp -s "$nixFile" "$nixFile.cmp"; then - die "Failed to replace version '$oldVersion' to '$newVersion' in '$attr'!" -fi - -# Replace new URL -if [[ -n "$newUrl" ]]; then - oldUrl=$(nix-instantiate $systemArg --eval -E "with $importTree; builtins.elemAt ($attr.$sourceKey.drvAttrs.urls or [ $attr.$sourceKey.url ]) 0" | tr -d '"') - if [[ -z "$oldUrl" ]]; then - die "Couldn't evaluate source url from '$attr.$sourceKey'!" - fi - - # Escape regex metacharacter that are allowed in store path names - oldUrlEscaped=$(echo "$oldUrl" | sed -re 's|[${}.+]|\\&|g') - - sed -i.cmp "$nixFile" -re "s|\"$oldUrlEscaped\"|\"$newUrl\"|" - if cmp -s "$nixFile" "$nixFile.cmp"; then - die "Failed to replace source URL '$oldUrl' to '$newUrl' in '$attr'!" - fi -fi - -sed -i.cmp "$nixFile" -re "s|\"$oldHashEscaped\"|\"$tempHash\"|" -if cmp -s "$nixFile" "$nixFile.cmp"; then - die "Failed to replace source hash of '$attr' to a temporary hash!" -fi - -# Replace new revision, if given -if [[ -n "$newRevision" ]]; then - sed -i.cmp "$nixFile" -re "s|\"$oldRevision\"|\"$newRevision\"|" - if cmp -s "$nixFile" "$nixFile.cmp"; then - die "Failed to replace source revision '$oldRevision' to '$newRevision' in '$attr'!" - fi -fi - -# If new hash not given on the command line, recalculate it ourselves. -if [[ -z "$newHash" ]]; then - nix-build $systemArg --no-out-link -A "$attr.$sourceKey" 2>"$attr.fetchlog" >/dev/null || true - # FIXME: use nix-build --hash here once https://github.com/NixOS/nix/issues/1172 is fixed - newHash=$( - sed '1,/hash mismatch in fixed-output derivation/d' "$attr.fetchlog" \ - | grep --perl-regexp --only-matching 'got: +.+[:-]\K.+' \ - || true # handled below - ) - - if [[ -n "$newHash" && -n "$sri" ]]; then - # nix-build preserves the hashing scheme so we can just convert the result to SRI using the old type - newHash="$(nix --extra-experimental-features nix-command hash to-sri --type "$oldHashAlgo" "$newHash" 2>/dev/null \ - || nix to-sri --type "$oldHashAlgo" "$newHash" 2>/dev/null)" \ - || die "Failed to convert hash to SRI representation!" - fi -fi - -if [[ -z "$newHash" ]]; then - cat "$attr.fetchlog" >&2 - die "Couldn't figure out new hash of '$attr.$sourceKey'!" -fi - -if [[ -z "${ignoreSameHash}" && "$oldVersion" != "$newVersion" && "$oldHash" = "$newHash" ]]; then - die "Both the old and new source hashes of '$attr.$sourceKey' were equivalent. Please fix the package's source URL to be dependent on '\${version}'!" -fi - -sed -i.cmp "$nixFile" -re "s|\"$tempHashEscaped\"|\"$newHash\"|" -if cmp -s "$nixFile" "$nixFile.cmp"; then - die "Failed to replace temporary source hash of '$attr' to the final source hash!" -fi - -rm -f "$nixFile.cmp" -rm -f "$attr.fetchlog" - -if [ -n "$printChanges" ]; then - printf '[{"attrPath":"%s","oldVersion":"%s","newVersion":"%s","files":["%s"]}]\n' "$attr" "$oldVersion" "$newVersion" "$nixFile" -fi diff --git a/pkgs/common-updater/unstable-updater.nix b/pkgs/common-updater/unstable-updater.nix deleted file mode 100644 index d982fc6..0000000 --- a/pkgs/common-updater/unstable-updater.nix +++ /dev/null @@ -1,171 +0,0 @@ -{ 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 -}: - -assert lib.asserts.assertMsg (tagPrefix == null || tagConverter == null) "Can only use either tagPrefix or tagConverter!"; - -let - updateScript = writeShellApplication { - name = "unstable-update-script"; - runtimeInputs = [ - common-updater-scripts - coreutils - git - nix - ]; - text = '' - set -ex - - url="" - branch="" - hardcode_zero_version="" - tag_format="" - tag_prefix="" - tag_converter="" - shallow_clone="" - : "''${systemArg:=}" - - while (( $# > 0 )); do - flag="$1" - shift 1 - case "$flag" in - --url=*) - url="''${flag#*=}" - ;; - --branch=*) - branch="''${flag#*=}" - ;; - --hardcode-zero-version) - hardcode_zero_version=1 - ;; - --tag-format=*) - tag_format="''${flag#*=}" - ;; - --tag-prefix=*) - tag_prefix="''${flag#*=}" - ;; - --tag-converter=*) - tag_converter="''${flag#*=}" - ;; - --shallow-clone) - shallow_clone=1 - ;; - *) - echo "$0: unknown option ‘''${flag}’" - exit 1 - ;; - esac - done - - # By default we set url to src.gitRepoUrl - if [[ -z "$url" ]]; then - # system argument cannot be passed as 1 argument - # shellcheck disable=SC2086 - url="$(nix-instantiate $systemArg --eval -E \ - "with import ./. {}; $UPDATE_NIX_ATTR_PATH.src.gitRepoUrl" \ - | tr -d '"')" - fi - - # Get info about HEAD from a shallow git clone - tmpdir="$(mktemp -d)" - - cloneArgs=() - - if [[ "$shallow_clone" == "1" ]]; then - cloneArgs+=(--depth=1) - fi - - if [[ -n "$branch" ]]; then - cloneArgs+=(--branch="$branch") - fi - - git clone "''${cloneArgs[@]}" "$url" "$tmpdir" - getLatestVersion() { - git describe --tags --abbrev=0 --match "''${tag_format}" 2> /dev/null || true - } - - pushd "$tmpdir" - commit_date="$(git show -s --pretty='format:%cs')" - commit_sha="$(git show -s --pretty='format:%H')" - last_tag="" - if [[ -z "$hardcode_zero_version" ]]; then - if [[ "$shallow_clone" == "1" ]]; then - depth=100 - while (( depth < 10000 )); do - last_tag="$(getLatestVersion)" - if [[ -n "$last_tag" ]]; then - break - fi - git fetch --depth="$depth" --tags - depth=$(( depth * 2 )) - done - - if [[ -z "$last_tag" ]]; then - # To be extra sure, check if full history helps with finding a tag - git fetch --tags - last_tag="$(getLatestVersion)" - fi - else - last_tag="$(getLatestVersion)" - fi - if [[ -z "$last_tag" ]]; then - last_tag="0" - fi - if [[ -n "$tag_prefix" ]]; then - echo "Stripping prefix '$tag_prefix' from tag '$last_tag'" - last_tag="''${last_tag#"''${tag_prefix}"}" - fi - if [[ -n "$tag_converter" ]]; then - echo "Running '$last_tag' through: $tag_converter" - last_tag="$(echo "''${last_tag}" | ''${tag_converter})" - fi - else - last_tag="0" - fi - if [[ ! "$last_tag" =~ ^[[:digit:]] ]]; then - echo "Last tag '$last_tag' does not start with a digit" > /dev/stderr - exit 1 - fi - new_version="$last_tag-unstable-$commit_date" - popd - # rm -rf "$tmpdir" - - # update the nix expression - update-source-version \ - "$UPDATE_NIX_ATTR_PATH" \ - "$new_version" \ - --rev="$commit_sha" - ''; - }; - -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" -] diff --git a/pkgs/pkgs-lib/default.nix b/pkgs/pkgs-lib/default.nix deleted file mode 100644 index 113dceb..0000000 --- a/pkgs/pkgs-lib/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -# 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 }: { - # 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; - }; -} - diff --git a/pkgs/pkgs-lib/formats.nix b/pkgs/pkgs-lib/formats.nix deleted file mode 100644 index 1b72270..0000000 --- a/pkgs/pkgs-lib/formats.nix +++ /dev/null @@ -1,509 +0,0 @@ -{ lib, pkgs }: -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: - - = : { - # ^^ 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 = ...; - - # 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 = ...; - - }); - - 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; - - libconfig = (import ./formats/libconfig/default.nix { inherit lib pkgs; }).format; - - hocon = (import ./formats/hocon/default.nix { inherit lib pkgs; }).format; - - json = {}: { - - 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 - '') {}; - - }; - - yaml = {}: { - - 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; - - }; - - # 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 + ")"; - }; - - 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; }); - - 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; - }; - }; - }; - 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; - }; - in with lib.types; attrsOf (attrsOf (either atom (attrsOf atom))); - - generate = name: value: pkgs.writeText name (lib.generators.toGitINI value); - }; - - }) 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; - }; - - 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 - - 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; - - 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); - - }; - - 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" - '') {}; - - }; - - /* For configurations of Elixir project, like config.exs or runtime.exs - - Most Elixir project are configured using the [Config] Elixir DSL - - Since Elixir has more types than Nix, we need a way to map Nix types to - more than 1 Elixir type. To that end, this format provides its own library, - and its own set of types. - - To be more detailed, a Nix attribute set could correspond in Elixir to a - [Keyword list] (the more common type), or it could correspond to a [Map]. - - A Nix string could correspond in Elixir to a [String] (also called - "binary"), an [Atom], or a list of chars (usually discouraged). - - A Nix array could correspond in Elixir to a [List] or a [Tuple]. - - Some more types exists, like records, regexes, but since they are less used, - we can leave the `mkRaw` function as an escape hatch. - - For more information on how to use this format in modules, please refer to - the Elixir section of the Nixos documentation. - - TODO: special Elixir values doesn't show up nicely in the documentation - - [Config]: - [Keyword list]: - [Map]: - [String]: - [Atom]: - [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})"; - - escapeElixir = escape [ "\\" "#" "\"" ]; - string = value: "\"${escapeElixir value}\""; - - attrs = set: - if set ? _elixirType then specialType set - else - let - toKeyword = name: value: "${name}: ${toElixir value}"; - keywordList = concatStringsSep ", " (mapAttrsToList toKeyword set); - in - "[" + keywordList + "]"; - - listContent = values: concatStringsSep ", " (map toElixir values); - - 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})"; - - elixirMap = set: - let - toEntry = name: value: "${toElixir name} => ${toElixir value}"; - entries = concatStringsSep ", " (mapAttrsToList toEntry set); - in - "%{${entries}}"; - - tuple = values: "{${listContent values}}"; - - toConf = values: - let - keyConfig = rootKey: key: value: - "config ${rootKey}, ${key}, ${toElixir value}"; - keyConfigs = rootKey: values: mapAttrsToList (keyConfig rootKey) values; - rootConfigs = flatten (mapAttrsToList keyConfigs values); - in - '' - import Config - - ${concatStringsSep "\n" rootConfigs} - ''; - in - { - 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 - mkRaw = value: { - inherit value; - _elixirType = "raw"; - }; - - in - { - inherit mkRaw; - - /* 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. - - Note: lowercase atoms still need to be prefixed by ':' - */ - mkAtom = value: { - inherit value; - _elixirType = "atom"; - }; - - /* Make an Elixir tuple out of a list. - */ - mkTuple = value: { - inherit value; - _elixirType = "tuple"; - }; - - /* 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`). - - 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; - - rawElixir = mkOptionType { - name = "rawElixir"; - description = "raw elixir"; - check = isElixirType "raw"; - }; - - elixirOr = other: either other rawElixir; - in - { - inherit rawElixir elixirOr; - - atom = elixirOr (mkOptionType { - name = "elixirAtom"; - description = "elixir atom"; - check = isElixirType "atom"; - }); - - 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; - }; - - 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 - - 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 deleted file mode 100644 index 0ae9c56..0000000 --- a/pkgs/pkgs-lib/formats/hocon/default.nix +++ /dev/null @@ -1,189 +0,0 @@ -{ lib -, pkgs -}: -let - inherit (pkgs) buildPackages callPackage; - - hocon-generator = buildPackages.rustPlatform.buildRustPackage { - name = "hocon-generator"; - version = "0.1.0"; - src = ./src; - - passthru.updateScript = ./update.sh; - - cargoLock.lockFile = ./src/Cargo.lock; - }; - - 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 ") - - 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; - - 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"; - }; - }; - - 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/src/.gitignore b/pkgs/pkgs-lib/formats/hocon/src/.gitignore deleted file mode 100644 index eb5a316..0000000 --- a/pkgs/pkgs-lib/formats/hocon/src/.gitignore +++ /dev/null @@ -1 +0,0 @@ -target diff --git a/pkgs/pkgs-lib/formats/hocon/src/Cargo.lock b/pkgs/pkgs-lib/formats/hocon/src/Cargo.lock deleted file mode 100644 index 735461c..0000000 --- a/pkgs/pkgs-lib/formats/hocon/src/Cargo.lock +++ /dev/null @@ -1,89 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "hocon-generator" -version = "0.1.0" -dependencies = [ - "serde", - "serde_json", -] - -[[package]] -name = "itoa" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" - -[[package]] -name = "proc-macro2" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "ryu" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" - -[[package]] -name = "serde" -version = "1.0.190" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.190" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.107" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "syn" -version = "2.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" diff --git a/pkgs/pkgs-lib/formats/hocon/src/Cargo.toml b/pkgs/pkgs-lib/formats/hocon/src/Cargo.toml deleted file mode 100644 index e39e636..0000000 --- a/pkgs/pkgs-lib/formats/hocon/src/Cargo.toml +++ /dev/null @@ -1,10 +0,0 @@ -[package] -name = "hocon-generator" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -serde = "1.0.178" -serde_json = "1.0.104" diff --git a/pkgs/pkgs-lib/formats/hocon/src/src/main.rs b/pkgs/pkgs-lib/formats/hocon/src/src/main.rs deleted file mode 100644 index 2e53f3f..0000000 --- a/pkgs/pkgs-lib/formats/hocon/src/src/main.rs +++ /dev/null @@ -1,237 +0,0 @@ -use serde_json::{value, Map, Value}; - -#[derive(Debug)] -enum HOCONValue { - Null, - Append(Box), - Bool(bool), - Number(value::Number), - String(String), - List(Vec), - Substitution(String, bool), - Object(Vec, Vec<(String, HOCONValue)>), - Literal(String), -} - -#[derive(Debug)] -enum HOCONInclude { - Heuristic(String, bool), - Url(String, bool), - File(String, bool), - ClassPath(String, bool), -} - -impl HOCONInclude { - fn map_fst(&self, f: &dyn Fn(&String) -> String) -> HOCONInclude { - match self { - HOCONInclude::Heuristic(s, r) => HOCONInclude::Heuristic(f(s), *r), - HOCONInclude::Url(s, r) => HOCONInclude::Url(f(s), *r), - HOCONInclude::File(s, r) => HOCONInclude::File(f(s), *r), - HOCONInclude::ClassPath(s, r) => HOCONInclude::ClassPath(f(s), *r), - } - } -} - -fn parse_include(o: &Map) -> HOCONInclude { - let value = o - .get("value") - .expect("Missing field 'value' for include statement") - .as_str() - .expect("Field 'value' is not a string in include statement") - .to_string(); - let required = o - .get("required") - .expect("Missing field 'required' for include statement") - .as_bool() - .expect("Field 'required'is not a bool in include statement"); - let include_type = match o - .get("type") - .expect("Missing field 'type' for include statement") - { - Value::Null => None, - Value::String(s) => Some(s.as_str()), - t => panic!("Field 'type' is not a string in include statement: {:?}", t), - }; - - // Assert that this was an intentional include - debug_assert!(o.get("_type").and_then(|t| t.as_str()) == Some("include")); - - match include_type { - None => HOCONInclude::Heuristic(value, required), - Some("url") => HOCONInclude::Url(value, required), - Some("file") => HOCONInclude::File(value, required), - Some("classpath") => HOCONInclude::ClassPath(value, required), - _ => panic!( - "Could not recognize type for include statement: {}", - include_type.unwrap() - ), - } -} - -fn parse_special_types(o: &Map) -> Option { - o.get("_type") - .and_then(|r#type| r#type.as_str()) - .map(|r#type| match r#type { - "substitution" => { - let value = o - .get("value") - .expect("Missing value for substitution") - .as_str() - .unwrap_or_else(|| panic!("Substition value is not a string: {:?}", o)); - let required = o - .get("required") - .unwrap_or(&Value::Bool(false)) - .as_bool() - .unwrap_or_else(|| panic!("Substition value is not a string: {:?}", o)); - - debug_assert!(!value.contains('}')); - - HOCONValue::Substitution(value.to_string(), required) - } - "append" => { - let value = o.get("value").expect("Missing value for append"); - - HOCONValue::Append(Box::new(json_to_hocon(value))) - } - "unquoted_string" => { - let value = o - .get("value") - .expect("Missing value for unquoted_string") - .as_str() - .unwrap_or_else(|| panic!("Unquoted string value is not a string: {:?}", o)); - - HOCONValue::Literal(value.to_string()) - } - _ => panic!( - "\ - Attribute set contained special element '_type',\ - but its value is not recognized:\n{}", - r#type - ), - }) -} - -fn json_to_hocon(v: &Value) -> HOCONValue { - match v { - Value::Null => HOCONValue::Null, - Value::Bool(b) => HOCONValue::Bool(*b), - Value::Number(n) => HOCONValue::Number(n.clone()), - Value::String(s) => HOCONValue::String(s.clone()), - Value::Array(a) => { - let items = a.iter().map(json_to_hocon).collect::>(); - HOCONValue::List(items) - } - Value::Object(o) => { - if let Some(result) = parse_special_types(o) { - return result; - } - - let mut items = o - .iter() - .filter(|(key, _)| key.as_str() != "_includes") - .map(|(key, value)| (key.clone(), json_to_hocon(value))) - .collect::>(); - - items.sort_by(|(a, _), (b, _)| a.partial_cmp(b).unwrap()); - - let includes = o - .get("_includes") - .map(|x| { - x.as_array() - .expect("_includes is not an array") - .iter() - .map(|x| { - x.as_object() - .unwrap_or_else(|| panic!("Include is not an object: {}", x)) - }) - .map(parse_include) - .collect::>() - }) - .unwrap_or(vec![]); - - HOCONValue::Object(includes, items) - } - } -} - -impl ToString for HOCONValue { - fn to_string(&self) -> String { - match self { - HOCONValue::Null => "null".to_string(), - HOCONValue::Bool(b) => b.to_string(), - HOCONValue::Number(n) => n.to_string(), - HOCONValue::String(s) => serde_json::to_string(&Value::String(s.clone())).unwrap(), - HOCONValue::Substitution(v, required) => { - format!("${{{}{}}}", if *required { "" } else { "?" }, v) - } - HOCONValue::List(l) => { - let items = l - .iter() - .map(|item| item.to_string()) - .collect::>() - .join(",\n") - .split('\n') - .map(|s| " ".to_owned() + s) - .collect::>() - .join("\n"); - format!("[\n{}\n]", items) - } - HOCONValue::Object(i, o) => { - let includes = i - .iter() - .map(|x| { - x.map_fst(&|s| serde_json::to_string(&Value::String(s.clone())).unwrap()) - }) - .map(|x| match x { - HOCONInclude::Heuristic(s, r) => (s.to_string(), r), - HOCONInclude::Url(s, r) => (format!("url({})", s), r), - HOCONInclude::File(s, r) => (format!("file({})", s), r), - HOCONInclude::ClassPath(s, r) => (format!("classpath({})", s), r), - }) - .map(|(i, r)| if r { format!("required({})", i) } else { i }) - .map(|s| format!("include {}", s)) - .collect::>() - .join("\n"); - let items = o - .iter() - .map(|(key, value)| { - ( - serde_json::to_string(&Value::String(key.clone())).unwrap(), - value, - ) - }) - .map(|(key, value)| match value { - HOCONValue::Append(v) => format!("{} += {}", key, v.to_string()), - v => format!("{} = {}", key, v.to_string()), - }) - .collect::>() - .join("\n"); - - let content = (if includes.is_empty() { - items - } else { - format!("{}{}", includes, items) - }) - .split('\n') - .map(|s| format!(" {}", s)) - .collect::>() - .join("\n"); - - format!("{{\n{}\n}}", content) - } - HOCONValue::Append(_) => panic!("Append should not be present at this point"), - Self::Literal(s) => s.to_string(), - } - } -} - -fn main() { - let stdin = std::io::stdin().lock(); - let json = serde_json::Deserializer::from_reader(stdin) - .into_iter::() - .next() - .expect("Could not read content from stdin") - .expect("Could not parse JSON from stdin"); - - print!("{}\n\n", json_to_hocon(&json).to_string()); -} diff --git a/pkgs/pkgs-lib/formats/hocon/test/backwards-compatibility/default.nix b/pkgs/pkgs-lib/formats/hocon/test/backwards-compatibility/default.nix deleted file mode 100644 index 5f0b3d1..0000000 --- a/pkgs/pkgs-lib/formats/hocon/test/backwards-compatibility/default.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ lib, formats, stdenvNoCC, writeText, ... }: -let - hocon = formats.hocon { }; - - expression = { - substitution = { __hocon_envvar = "PATH"; }; - literal = { - __hocon_unquoted_string = '' - [ - 1, - "a", - ]''; - }; - - nested = { - substitution = { __hocon_envvar = "PATH"; }; - literal = { - __hocon_unquoted_string = '' - [ - 1, - "a", - ]''; - }; - }; - - nested_in_array = [ - { __hocon_envvar = "PATH"; } - { - __hocon_unquoted_string = '' - [ - 1, - "a", - ]''; - } - ]; - }; - - hocon-test-conf = hocon.generate "hocon-test.conf" expression; -in - stdenvNoCC.mkDerivation { - name = "pkgs.formats.hocon-test-backwards-compatibility"; - - dontUnpack = true; - dontBuild = true; - - doCheck = true; - checkPhase = '' - runHook preCheck - - diff -U3 ${./expected.txt} ${hocon-test-conf} - - runHook postCheck - ''; - - 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 - - runHook postInstall - ''; - } diff --git a/pkgs/pkgs-lib/formats/hocon/test/backwards-compatibility/expected.txt b/pkgs/pkgs-lib/formats/hocon/test/backwards-compatibility/expected.txt deleted file mode 100644 index 2835a3c..0000000 --- a/pkgs/pkgs-lib/formats/hocon/test/backwards-compatibility/expected.txt +++ /dev/null @@ -1,22 +0,0 @@ -{ - "literal" = [ - 1, - "a", - ] - "nested" = { - "literal" = [ - 1, - "a", - ] - "substitution" = ${?PATH} - } - "nested_in_array" = [ - ${?PATH}, - [ - 1, - "a", - ] - ] - "substitution" = ${?PATH} -} - diff --git a/pkgs/pkgs-lib/formats/hocon/test/comprehensive/default.nix b/pkgs/pkgs-lib/formats/hocon/test/comprehensive/default.nix deleted file mode 100644 index ae4fae4..0000000 --- a/pkgs/pkgs-lib/formats/hocon/test/comprehensive/default.nix +++ /dev/null @@ -1,83 +0,0 @@ -{ 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="; - }); - - expression = { - simple_top_level_attr = "1.0"; - nested.attrset.has.a.integer.value = 100; - some_floaty = 29.95; - - array2d = [ - [ 1 2 "a" ] - [ 2 1 "b" ] - ]; - nasty_string = "\"@\n\\\t^*\b\f\n\0\";'''$"; - - "misc attrs" = { - x = 1; - y = hocon.lib.mkAppend { a = 1; }; - }; - - "cursed \" .attrs \" " = { - "a" = 1; - "a b" = hocon.lib.mkSubstitution "a"; - "a b c" = hocon.lib.mkSubstitution { - value = "a b"; - required = false; - }; - }; - - to_include = { - _includes = [ - (hocon.lib.mkInclude include_file) - (hocon.lib.mkInclude "https://example.com") - (hocon.lib.mkInclude { - required = true; - type = "file"; - value = include_file; - }) - (hocon.lib.mkInclude { value = include_file; }) - (hocon.lib.mkInclude { - value = "https://example.com"; - type = "url"; - }) - ]; - }; - }; - - hocon-test-conf = hocon.generate "hocon-test.conf" expression; -in - stdenvNoCC.mkDerivation { - name = "pkgs.formats.hocon-test-comprehensive"; - - dontUnpack = true; - dontBuild = true; - - doCheck = true; - checkPhase = '' - runHook preCheck - - diff -U3 ${./expected.txt} ${hocon-test-conf} - - runHook postCheck - ''; - - 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 - - runHook postInstall - ''; - } diff --git a/pkgs/pkgs-lib/formats/hocon/test/comprehensive/expected.txt b/pkgs/pkgs-lib/formats/hocon/test/comprehensive/expected.txt deleted file mode 100644 index ec196be..0000000 --- a/pkgs/pkgs-lib/formats/hocon/test/comprehensive/expected.txt +++ /dev/null @@ -1,47 +0,0 @@ -{ - "array2d" = [ - [ - 1, - 2, - "a" - ], - [ - 2, - 1, - "b" - ] - ] - "cursed \" .attrs \" " = { - "a" = 1 - "a b" = ${?a} - "a b c" = ${?a b} - } - "misc attrs" = { - "x" = 1 - "y" += { - "a" = 1 - } - } - "nasty_string" = "\"@\n\\\t^*bf\n0\";'''$" - "nested" = { - "attrset" = { - "has" = { - "a" = { - "integer" = { - "value" = 100 - } - } - } - } - } - "simple_top_level_attr" = "1.0" - "some_floaty" = 29.95 - "to_include" = { - include "/nix/store/ccnzr53dpipdacxgci3ii3bqacvb5hxm-hocon-test-include.conf" - include "https://example.com" - include required(file("/nix/store/ccnzr53dpipdacxgci3ii3bqacvb5hxm-hocon-test-include.conf")) - include "/nix/store/ccnzr53dpipdacxgci3ii3bqacvb5hxm-hocon-test-include.conf" - include url("https://example.com") - } -} - diff --git a/pkgs/pkgs-lib/formats/hocon/test/default.nix b/pkgs/pkgs-lib/formats/hocon/test/default.nix deleted file mode 100644 index 1992870..0000000 --- a/pkgs/pkgs-lib/formats/hocon/test/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ pkgs, ... }: -{ - 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 { }; -} diff --git a/pkgs/pkgs-lib/formats/hocon/update.sh b/pkgs/pkgs-lib/formats/hocon/update.sh deleted file mode 100755 index ffc5ad3..0000000 --- a/pkgs/pkgs-lib/formats/hocon/update.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell -p cargo -i bash -cd "$(dirname "$0")" -cargo update diff --git a/pkgs/pkgs-lib/formats/java-properties/default.nix b/pkgs/pkgs-lib/formats/java-properties/default.nix deleted file mode 100644 index d3a4761..0000000 --- a/pkgs/pkgs-lib/formats/java-properties/default.nix +++ /dev/null @@ -1,132 +0,0 @@ -{ lib, pkgs }: -let - inherit (lib) types; - inherit (types) attrsOf oneOf coercedTo str bool int float package; -in -{ - 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) - - (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. - - 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; - - inputEncoding = "UTF-8"; - - 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" - ''; - }; -} diff --git a/pkgs/pkgs-lib/formats/java-properties/test/Main.java b/pkgs/pkgs-lib/formats/java-properties/test/Main.java deleted file mode 100644 index dc83944..0000000 --- a/pkgs/pkgs-lib/formats/java-properties/test/Main.java +++ /dev/null @@ -1,27 +0,0 @@ -import java.io.FileInputStream; -import java.io.InputStream; -import java.util.Properties; -import java.util.SortedSet; -import java.util.TreeSet; - -class Main { - public static void main (String args[]) { - try { - InputStream input = new FileInputStream(args[0]); - Properties prop = new Properties(); - prop.load(input); - SortedSet keySet = new TreeSet(prop.keySet()); - for (String key : keySet) { - System.out.println("KEY"); - System.out.println(key); - System.out.println("VALUE"); - System.out.println(prop.get(key)); - System.out.println(""); - } - } catch (Exception e) { - e.printStackTrace(); - System.err.println(e.toString()); - System.exit(1); - } - } -} diff --git a/pkgs/pkgs-lib/formats/java-properties/test/default.nix b/pkgs/pkgs-lib/formats/java-properties/test/default.nix deleted file mode 100644 index 4a51179..0000000 --- a/pkgs/pkgs-lib/formats/java-properties/test/default.nix +++ /dev/null @@ -1,92 +0,0 @@ -{ fetchurl -, formats -, glibcLocales -, jdk -, lib -, stdenv -}: - -# This test primarily tests correct escaping. -# See also testJavaProperties in -# pkgs/pkgs-lib/tests/formats.nix, which tests -# type coercions and is a bit easier to read. - -let - inherit (lib) concatStrings attrValues mapAttrs; - - javaProperties = formats.javaProperties { }; - - input = { - foo = "bar"; - "empty value" = ""; - "typical.dot.syntax" = "com.sun.awt"; - "" = "empty key's value"; - "1" = "2 3"; - "#" = "not a comment # still not"; - "!" = "not a comment!"; - "!a" = "still not! a comment"; - "!b" = "still not ! a comment"; - "dos paths" = "C:\\Program Files\\Nix For Windows\\nix.exe"; - "a \t\nb" = " c"; - "angry \t\nkey" = '' - multi - ${"\tline\r"} - space- - indented - trailing-space${" "} - trailing-space${" "} - value - ''; - "this=not" = "bad"; - "nor = this" = "bad"; - "all stuff" = "foo = bar"; - "unicode big brain" = "e = mc□"; - "ütf-8" = "dûh"; - # NB: Some editors (vscode) show this _whole_ line in right-to-left order - "الجبر" = "أكثر من مجرد أرقام"; - }; - -in -stdenv.mkDerivation { - name = "pkgs.formats.javaProperties-test-${jdk.name}"; - nativeBuildInputs = [ - jdk - glibcLocales - ]; - - # technically should go through the type.merge first, but that's tested - # in tests/formats.nix. - properties = javaProperties.generate "example.properties" input; - - # Expected output as printed by Main.java - passAsFile = [ "expected" ]; - expected = concatStrings (attrValues ( - mapAttrs - (key: value: - '' - KEY - ${key} - VALUE - ${value} - - '' - ) - input - )); - - 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 = '' - javac Main.java - ''; - doCheck = true; - checkPhase = '' - cat -v $properties - java Main $properties >actual - diff -U3 $expectedPath actual - ''; - installPhase = "touch $out"; -} diff --git a/pkgs/pkgs-lib/formats/libconfig/default.nix b/pkgs/pkgs-lib/formats/libconfig/default.nix deleted file mode 100644 index 7433a72..0000000 --- a/pkgs/pkgs-lib/formats/libconfig/default.nix +++ /dev/null @@ -1,121 +0,0 @@ -{ lib -, pkgs -}: -let - inherit (pkgs) buildPackages callPackage; - # Implementation notes: - # Libconfig spec: https://hyperrealm.github.io/libconfig/libconfig_manual.html - # - # Since libconfig does not allow setting names to start with an underscore, - # this is used as a prefix for both special types and include directives. - # - # The difference between 32bit and 64bit values became optional in libconfig - # 1.5, so we assume 64bit values for all numbers. - - libconfig-generator = buildPackages.rustPlatform.buildRustPackage { - name = "libconfig-generator"; - version = "0.1.0"; - src = ./src; - - passthru.updateScript = ./update.sh; - - 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} - ''; -in -{ - 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"; - }; - in - attrsOf valueType; - - 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; - }; - }; -} diff --git a/pkgs/pkgs-lib/formats/libconfig/src/Cargo.lock b/pkgs/pkgs-lib/formats/libconfig/src/Cargo.lock deleted file mode 100644 index f8f921f..0000000 --- a/pkgs/pkgs-lib/formats/libconfig/src/Cargo.lock +++ /dev/null @@ -1,40 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "itoa" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" - -[[package]] -name = "libconfig-generator" -version = "0.1.0" -dependencies = [ - "serde", - "serde_json", -] - -[[package]] -name = "ryu" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" - -[[package]] -name = "serde" -version = "1.0.183" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c" - -[[package]] -name = "serde_json" -version = "1.0.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c" -dependencies = [ - "itoa", - "ryu", - "serde", -] diff --git a/pkgs/pkgs-lib/formats/libconfig/src/Cargo.toml b/pkgs/pkgs-lib/formats/libconfig/src/Cargo.toml deleted file mode 100644 index 20ad44d..0000000 --- a/pkgs/pkgs-lib/formats/libconfig/src/Cargo.toml +++ /dev/null @@ -1,10 +0,0 @@ -[package] -name = "libconfig-generator" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -serde = "1.0.178" -serde_json = "1.0.104" diff --git a/pkgs/pkgs-lib/formats/libconfig/src/src/main.rs b/pkgs/pkgs-lib/formats/libconfig/src/src/main.rs deleted file mode 100644 index 4da45f6..0000000 --- a/pkgs/pkgs-lib/formats/libconfig/src/src/main.rs +++ /dev/null @@ -1,271 +0,0 @@ -use serde_json::Value; -use std::mem::discriminant; - -#[derive(Debug)] -enum LibConfigIntNumber { - Oct(i64), - Hex(i64), - Int(i64), -} - -#[derive(Debug)] -enum LibConfigValue { - Bool(bool), - Int(LibConfigIntNumber), - Float(f64), - String(String), - Array(Vec), - List(Vec), - Group(Vec, Vec<(String, LibConfigValue)>), -} - -fn validate_setting_name(key: &str) -> bool { - let first_char = key.chars().next().expect("Empty setting name"); - (first_char.is_alphabetic() || first_char == '*') - && key[1..] - .chars() - .all(|c| c.is_alphanumeric() || c == '_' || c == '*') -} - -const SPECIAL_TYPES: [&str; 5] = ["octal", "hex", "float", "list", "array"]; - -fn object_is_special_type(o: &serde_json::Map) -> Option<&str> { - o.get("_type").and_then(|x| x.as_str()).and_then(|x| { - if SPECIAL_TYPES.contains(&x) { - Some(x) - } else { - None - } - }) -} - -fn vec_is_array(v: &Vec) -> bool { - if v.is_empty() { - return true; - } - - let first_item = v.first().unwrap(); - - if match first_item { - LibConfigValue::Array(_) => true, - LibConfigValue::List(_) => true, - LibConfigValue::Group(_, _) => true, - _ => false, - } { - return false; - }; - - v[1..] - .iter() - .all(|item| discriminant(first_item) == discriminant(item)) -} - -fn json_to_libconfig(v: &Value) -> LibConfigValue { - match v { - Value::Null => panic!("Null value not allowed in libconfig"), - Value::Bool(b) => LibConfigValue::Bool(b.clone()), - Value::Number(n) => { - if n.is_i64() { - LibConfigValue::Int(LibConfigIntNumber::Int(n.as_i64().unwrap())) - } else if n.is_f64() { - LibConfigValue::Float(n.as_f64().unwrap()) - } else { - panic!("{} is not i64 or f64, cannot be represented as number in libconfig", n); - } - } - Value::String(s) => LibConfigValue::String(s.to_string()), - Value::Array(a) => { - let items = a - .iter() - .map(|item| json_to_libconfig(item)) - .collect::>(); - LibConfigValue::List(items) - } - Value::Object(o) => { - if let Some(_type) = object_is_special_type(o) { - let value = o - .get("value") - .expect(format!("Missing value for special type: {}", &_type).as_str()); - - return match _type { - "octal" => { - let str_value = value - .as_str() - .expect( - format!("Value is not a string for special type: {}", &_type) - .as_str(), - ) - .to_owned(); - - LibConfigValue::Int(LibConfigIntNumber::Oct( - i64::from_str_radix(&str_value, 8) - .expect(format!("Invalid octal value: {}", value).as_str()), - )) - } - "hex" => { - let str_value = value - .as_str() - .expect( - format!("Value is not a string for special type: {}", &_type) - .as_str(), - ) - .to_owned(); - - LibConfigValue::Int(LibConfigIntNumber::Hex( - i64::from_str_radix(&str_value[2..], 16) - .expect(format!("Invalid hex value: {}", value).as_str()), - )) - } - "float" => { - let str_value = value - .as_str() - .expect( - format!("Value is not a string for special type: {}", &_type) - .as_str(), - ) - .to_owned(); - - LibConfigValue::Float( - str_value - .parse::() - .expect(format!("Invalid float value: {}", value).as_str()), - ) - } - "list" => { - let items = value - .as_array() - .expect( - format!("Value is not an array for special type: {}", &_type) - .as_str(), - ) - .to_owned() - .iter() - .map(|item| json_to_libconfig(item)) - .collect::>(); - - LibConfigValue::List(items) - } - "array" => { - let items = value - .as_array() - .expect( - format!("Value is not an array for special type: {}", &_type) - .as_str(), - ) - .to_owned() - .iter() - .map(|item| json_to_libconfig(item)) - .collect::>(); - - if !vec_is_array(&items) { - panic!( - "This can not be an array because of its contents: {:#?}", - items - ); - } - - LibConfigValue::Array(items) - } - _ => panic!("Invalid type: {}", _type), - }; - } - - let mut items = o - .iter() - .filter(|(key, _)| key.as_str() != "_includes") - .map(|(key, value)| (key.clone(), json_to_libconfig(value))) - .collect::>(); - items.sort_by(|(a,_),(b,_)| a.partial_cmp(b).unwrap()); - - let includes = o - .get("_includes") - .map(|x| { - x.as_array() - .expect("_includes is not an array") - .iter() - .map(|x| { - x.as_str() - .expect("_includes item is not a string") - .to_owned() - }) - .collect::>() - }) - .unwrap_or(vec![]); - - for (key,_) in items.iter() { - if !validate_setting_name(key) { - panic!("Invalid setting name: {}", key); - } - } - LibConfigValue::Group(includes, items) - } - } -} - -impl ToString for LibConfigValue { - fn to_string(&self) -> String { - match self { - LibConfigValue::Bool(b) => b.to_string(), - LibConfigValue::Int(i) => match i { - LibConfigIntNumber::Oct(n) => format!("0{:o}", n), - LibConfigIntNumber::Hex(n) => format!("0x{:x}", n), - LibConfigIntNumber::Int(n) => n.to_string(), - }, - LibConfigValue::Float(n) => format!("{:?}", n), - LibConfigValue::String(s) => { - format!("\"{}\"", s.replace("\\", "\\\\").replace("\"", "\\\"")) - } - LibConfigValue::Array(a) => { - let items = a - .iter() - .map(|item| item.to_string()) - .collect::>() - .join(", "); - format!("[{}]", items) - } - LibConfigValue::List(a) => { - let items = a - .iter() - .map(|item| item.to_string()) - .collect::>() - .join(", "); - format!("({})", items) - } - LibConfigValue::Group(i, o) => { - let includes = i - .iter() - .map(|x| x.replace("\\", "\\\\").replace("\"", "\\\"")) - .map(|x| format!("@include \"{}\"", x)) - .collect::>() - .join("\n"); - let items = o - .iter() - .map(|(key, value)| format!("{}={};", key, value.to_string())) - .collect::>() - .join(""); - if includes.is_empty() { - format!("{{{}}}", items) - } else { - format!("{{\n{}\n{}}}", includes, items) - } - } - } - } -} - -fn main() { - let stdin = std::io::stdin().lock(); - let json = serde_json::Deserializer::from_reader(stdin) - .into_iter::() - .next() - .expect("Could not read content from stdin") - .expect("Could not parse JSON from stdin"); - - for (key, value) in json - .as_object() - .expect("Top level of JSON file is not an object") - { - print!("{}={};", key, json_to_libconfig(value).to_string()); - } - print!("\n\n"); -} diff --git a/pkgs/pkgs-lib/formats/libconfig/test/comprehensive/default.nix b/pkgs/pkgs-lib/formats/libconfig/test/comprehensive/default.nix deleted file mode 100644 index 7b0df23..0000000 --- a/pkgs/pkgs-lib/formats/libconfig/test/comprehensive/default.nix +++ /dev/null @@ -1,76 +0,0 @@ -{ lib, formats, stdenvNoCC, writeText, ... }: -let - libconfig = formats.libconfig { }; - - include_expr = { - val = 1; - }; - - include_file = writeText "libconfig-test-include" '' - val=1; - ''; - - expression = { - simple_top_level_attr = "1.0"; - nested.attrset.has.a.integer.value = 100; - 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 ]; - # 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 ] ]; - # > 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 ]; - array2d = [ - (libconfig.lib.mkArray [ 1 2 ]) - (libconfig.lib.mkArray [ 2 1 ]) - ]; - nasty_string = "\"@\n\\\t^*\b\f\n\0\";'''$"; - - weirderTypes = { - _includes = [ include_file ]; - pi = 3.141592654; - bigint = 9223372036854775807; - hex = libconfig.lib.mkHex "0x1FC3"; - octal = libconfig.lib.mkOctal "0027"; - float = libconfig.lib.mkFloat "1.2E-3"; - array_of_ints = libconfig.lib.mkArray [ - (libconfig.lib.mkOctal "0732") - (libconfig.lib.mkHex "0xA3") - 1234 - ]; - list_of_weird_types = [ - 3.141592654 - 9223372036854775807 - (libconfig.lib.mkHex "0x1FC3") - (libconfig.lib.mkOctal "0027") - (libconfig.lib.mkFloat "1.2E-32") - (libconfig.lib.mkFloat "1") - ]; - }; - }; - - libconfig-test-cfg = libconfig.generate "libconfig-test.cfg" expression; -in - stdenvNoCC.mkDerivation { - name = "pkgs.formats.libconfig-test-comprehensive"; - - 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 - ''; - } - diff --git a/pkgs/pkgs-lib/formats/libconfig/test/comprehensive/expected.txt b/pkgs/pkgs-lib/formats/libconfig/test/comprehensive/expected.txt deleted file mode 100644 index ef6e09f..0000000 --- a/pkgs/pkgs-lib/formats/libconfig/test/comprehensive/expected.txt +++ /dev/null @@ -1,6 +0,0 @@ -array1d=[1, 5, 2];array2d=([1, 2], [2, 1]);list1d=(1, "mixed!", 5, 2);list2d=(1, (1, 1.2, "foo"), ("bar", 1.2, 1));nasty_string="\"@ -\\ ^*bf -0\";'''$";nested={attrset={has={a={integer={value=100;};};};};};simple_top_level_attr="1.0";some_floaty=29.95;weirderTypes={ -@include "@include_file@" -array_of_ints=[0732, 0xa3, 1234];bigint=9223372036854775807;float=0.0012;hex=0x1fc3;list_of_weird_types=(3.141592654, 9223372036854775807, 0x1fc3, 027, 1.2e-32, 1.0);octal=027;pi=3.141592654;}; - diff --git a/pkgs/pkgs-lib/formats/libconfig/test/default.nix b/pkgs/pkgs-lib/formats/libconfig/test/default.nix deleted file mode 100644 index 6cd03fe..0000000 --- a/pkgs/pkgs-lib/formats/libconfig/test/default.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ pkgs, ... }: -{ - comprehensive = pkgs.callPackage ./comprehensive { }; -} diff --git a/pkgs/pkgs-lib/formats/libconfig/update.sh b/pkgs/pkgs-lib/formats/libconfig/update.sh deleted file mode 100755 index ffc5ad3..0000000 --- a/pkgs/pkgs-lib/formats/libconfig/update.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell -p cargo -i bash -cd "$(dirname "$0")" -cargo update diff --git a/pkgs/pkgs-lib/formats/libconfig/validator.c b/pkgs/pkgs-lib/formats/libconfig/validator.c deleted file mode 100644 index 738be0b..0000000 --- a/pkgs/pkgs-lib/formats/libconfig/validator.c +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (C) 2005-2023 Mark A Lindner, ckie -// SPDX-License-Identifier: LGPL-2.1-or-later -#include -#include -int main(int argc, char **argv) -{ - config_t cfg; - config_init(&cfg); - if (argc != 2) - { - fprintf(stderr, "USAGE: validator "); - } - if(! config_read_file(&cfg, argv[1])) - { - fprintf(stderr, "[libconfig] %s:%d - %s\n", config_error_file(&cfg), - config_error_line(&cfg), config_error_text(&cfg)); - config_destroy(&cfg); - return 1; - } - printf("[libconfig] validation ok\n"); -} \ No newline at end of file diff --git a/pkgs/pkgs-lib/tests/default.nix b/pkgs/pkgs-lib/tests/default.nix deleted file mode 100644 index 8e5e243..0000000 --- a/pkgs/pkgs-lib/tests/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -# Call nix-build on this file to run all tests in this directory - -# This produces a link farm derivation with the original attrs -# merged on top of it. -# You can run parts of the "hierarchy" with for example: -# nix-build -A java-properties -# See `structured` below. - -{ pkgs ? import ../../.. { } }: -let - inherit (pkgs.lib) mapAttrs mapAttrsToList isDerivation mergeAttrs foldl' attrValues recurseIntoAttrs; - - structured = { - formats = import ./formats.nix { inherit pkgs; }; - java-properties = recurseIntoAttrs { - jdk8 = pkgs.callPackage ../formats/java-properties/test { jdk = pkgs.jdk8; }; - jdk11 = pkgs.callPackage ../formats/java-properties/test { jdk = pkgs.jdk11_headless; }; - jdk17 = pkgs.callPackage ../formats/java-properties/test { jdk = pkgs.jdk17_headless; }; - }; - - libconfig = recurseIntoAttrs (import ../formats/libconfig/test { inherit pkgs; }); - - 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 - ) - ); -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) - ) -// structured diff --git a/pkgs/pkgs-lib/tests/formats.nix b/pkgs/pkgs-lib/tests/formats.nix deleted file mode 100644 index 3243f40..0000000 --- a/pkgs/pkgs-lib/tests/formats.nix +++ /dev/null @@ -1,428 +0,0 @@ -{ pkgs }: -let - inherit (pkgs) lib formats; - - # merging allows us to add metadata to the input - # this makes error messages more readable during development - 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; - # 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 - ''; - - # 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; - }; - - # 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: - let - # trigger a deep type check using the module system - 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"; - # 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 { - name = "fail-${name}"; - path = if eval.success then typeSucceeds else typeFails; - }; - - # this function creates a linkFarm for all the tests below such that the results are easily visible in the filesystem after a build - # the parameters are an attrset of name: test pairs where the name is automatically passed to the test - # the test therefore is an invocation of ShouldPass or shouldFail with the attrset parameters but *not* the name (which this adds for convenience) - runBuildTests = (lib.flip lib.pipe) [ - (lib.mapAttrsToList (name: value: value name)) - (pkgs.linkFarm "nixpkgs-pkgs-lib-format-tests") - ]; - -in runBuildTests { - - jsonAtoms = shouldPass { - format = formats.json {}; - input = { - null = null; - false = false; - true = true; - int = 10; - float = 3.141; - str = "foo"; - attrs.foo = null; - list = [ null null ]; - path = ./formats.nix; - }; - expected = '' - { - "attrs": { - "foo": null - }, - "false": false, - "float": 3.141, - "int": 10, - "list": [ - null, - null - ], - "null": null, - "path": "${./formats.nix}", - "str": "foo", - "true": true - } - ''; - }; - - yamlAtoms = shouldPass { - format = formats.yaml {}; - input = { - null = null; - false = false; - true = true; - float = 3.141; - str = "foo"; - attrs.foo = null; - list = [ null null ]; - path = ./formats.nix; - }; - expected = '' - attrs: - foo: null - 'false': false - float: 3.141 - list: - - null - - null - 'null': null - path: ${./formats.nix} - str: foo - 'true': true - ''; - }; - - iniAtoms = shouldPass { - format = formats.ini {}; - input = { - foo = { - bool = true; - int = 10; - float = 3.141; - str = "string"; - }; - }; - expected = '' - [foo] - bool=true - float=3.141000 - int=10 - str=string - ''; - }; - - iniInvalidAtom = shouldFail { - format = formats.ini {}; - input = { - foo = { - function = _: 1; - }; - }; - }; - - iniDuplicateKeysWithoutList = shouldFail { - format = formats.ini {}; - input = { - foo = { - bar = [ null true "test" 1.2 10 ]; - baz = false; - qux = "qux"; - }; - }; - }; - - iniDuplicateKeys = shouldPass { - format = formats.ini { listsAsDuplicateKeys = true; }; - input = { - foo = { - bar = [ null true "test" 1.2 10 ]; - baz = false; - qux = "qux"; - }; - }; - expected = '' - [foo] - bar=null - bar=true - bar=test - bar=1.200000 - bar=10 - baz=false - qux=qux - ''; - }; - - iniListToValue = shouldPass { - format = formats.ini { listToValue = lib.concatMapStringsSep ", " (lib.generators.mkValueStringDefault {}); }; - input = { - foo = { - bar = [ null true "test" 1.2 10 ]; - baz = false; - qux = "qux"; - }; - }; - expected = '' - [foo] - bar=null, true, test, 1.200000, 10 - baz=false - qux=qux - ''; - }; - - iniWithGlobalNoSections = shouldPass { - format = formats.iniWithGlobalSection {}; - input = {}; - expected = ""; - }; - - iniWithGlobalOnlySections = shouldPass { - format = formats.iniWithGlobalSection {}; - input = { - sections = { - foo = { - bar = "baz"; - }; - }; - }; - expected = '' - [foo] - bar=baz - ''; - }; - - iniWithGlobalOnlyGlobal = shouldPass { - format = formats.iniWithGlobalSection {}; - input = { - globalSection = { - bar = "baz"; - }; - }; - expected = '' - bar=baz - - ''; - }; - - iniWithGlobalWrongSections = shouldFail { - format = formats.iniWithGlobalSection {}; - input = { - foo = {}; - }; - }; - - iniWithGlobalEverything = shouldPass { - format = formats.iniWithGlobalSection {}; - input = { - globalSection = { - bar = true; - }; - sections = { - foo = { - bool = true; - int = 10; - float = 3.141; - str = "string"; - }; - }; - }; - expected = '' - bar=true - - [foo] - bool=true - float=3.141000 - int=10 - str=string - ''; - }; - - iniWithGlobalListToValue = shouldPass { - format = formats.iniWithGlobalSection { listToValue = lib.concatMapStringsSep ", " (lib.generators.mkValueStringDefault {}); }; - input = { - globalSection = { - bar = [ null true "test" 1.2 10 ]; - baz = false; - qux = "qux"; - }; - sections = { - foo = { - bar = [ null true "test" 1.2 10 ]; - baz = false; - qux = "qux"; - }; - }; - }; - expected = '' - bar=null, true, test, 1.200000, 10 - baz=false - qux=qux - - [foo] - bar=null, true, test, 1.200000, 10 - baz=false - qux=qux - ''; - }; - - keyValueAtoms = shouldPass { - format = formats.keyValue {}; - input = { - bool = true; - int = 10; - float = 3.141; - str = "string"; - }; - expected = '' - bool=true - float=3.141000 - int=10 - str=string - ''; - }; - - keyValueDuplicateKeys = shouldPass { - format = formats.keyValue { listsAsDuplicateKeys = true; }; - input = { - bar = [ null true "test" 1.2 10 ]; - baz = false; - qux = "qux"; - }; - expected = '' - bar=null - bar=true - bar=test - bar=1.200000 - bar=10 - baz=false - qux=qux - ''; - }; - - keyValueListToValue = shouldPass { - format = formats.keyValue { listToValue = lib.concatMapStringsSep ", " (lib.generators.mkValueStringDefault {}); }; - input = { - bar = [ null true "test" 1.2 10 ]; - baz = false; - qux = "qux"; - }; - expected = '' - bar=null, true, test, 1.200000, 10 - baz=false - qux=qux - ''; - }; - - tomlAtoms = shouldPass { - format = formats.toml {}; - input = { - false = false; - true = true; - int = 10; - float = 3.141; - str = "foo"; - attrs.foo = "foo"; - list = [ 1 2 ]; - level1.level2.level3.level4 = "deep"; - }; - expected = '' - false = false - float = 3.141 - int = 10 - list = [1, 2] - str = "foo" - true = true - [attrs] - foo = "foo" - - [level1.level2.level3] - level4 = "deep" - ''; - }; - - # This test is responsible for - # 1. testing type coercions - # 2. providing a more readable example test - # Whereas java-properties/default.nix tests the low level escaping, etc. - javaProperties = shouldPass { - format = formats.javaProperties {}; - input = { - floaty = 3.1415; - tautologies = true; - contradictions = false; - foo = "bar"; - # # Disallowed at eval time, because it's ambiguous: - # # add to store or convert to string? - # root = /root; - "1" = 2; - package = pkgs.hello; - "ütf 8" = "dûh"; - # NB: Some editors (vscode) show this _whole_ line in right-to-left order - "الجبر" = "أكثر من مجرد أرقام"; - }; - expected = '' - # Generated with Nix - - 1 = 2 - contradictions = false - floaty = 3.141500 - foo = bar - package = ${pkgs.hello} - tautologies = true - \u00fctf\ 8 = d\u00fbh - \u0627\u0644\u062c\u0628\u0631 = \u0623\u0643\u062b\u0631 \u0645\u0646 \u0645\u062c\u0631\u062f \u0623\u0631\u0642\u0627\u0645 - ''; - }; -} diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix deleted file mode 100644 index 2304b32..0000000 --- a/pkgs/stdenv/adapters.nix +++ /dev/null @@ -1,345 +0,0 @@ -/* 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 }: - -let - # N.B. Keep in sync with default arg for stdenv/generic. - 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 - k stdenvSelf mkDerivationSuper; - - # Wrap the original `mkDerivation` providing extra args to it. - 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)); -in - -rec { - - - # Override the compiler in stdenv for specific packages. - 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; }); - - - # 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 - # compiler versions while still using the same libc++ implementation for compatibility. - # - # 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: - assert stdenv.cc.libcxx != null; - assert pkgs.stdenv.cc.libcxx != null; - # only unified libcxx / libcxxabi stdenv's are supported - assert lib.versionAtLeast pkgs.stdenv.cc.libcxx.version "12"; - assert lib.versionAtLeast stdenv.cc.libcxx.version "12"; - let - llvmLibcxxVersion = lib.getVersion llvmLibcxx; - - 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" - ''; - in - 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 - # everything. - # - # Example: - # randomPkg = import ../bla { ... - # stdenv = overrideSetup stdenv ../stdenv/generic/setup-latest.sh; - # }; - 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 - ]; - }); - - - # Return a modified stdenv that builds static libraries instead of - # shared libraries. - 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" ]; - }); - }); - - # 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) - ]; - })); - }); - - # Puts all the other ones together - makeStatic = stdenv: lib.foldl (lib.flip lib.id) stdenv ( - lib.optional stdenv.hostPlatform.isDarwin makeStaticDarwin - - ++ [ 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 - ); - - - /* Modify a stdenv so that all buildInputs are implicitly propagated to - consuming derivations - */ - propagateBuildInputs = stdenv: - stdenv.override (old: { - mkDerivationFromStdenv = extendMkDerivationArgs old (args: { - 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. - - 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: - 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: - 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"; }; - }); - }); - - - /* 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: - let - ccForLibs = modelStdenv.cc.cc; - /* 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. */ - 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"; - }); - }); - - - /* Modify a stdenv so that it builds binaries optimized specifically - for the machine they are built on. - - 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"; }; - - NIX_ENFORCE_NO_NATIVE = false; - - preferLocalBuild = true; - allowSubstitutes = false; - }); - }); - - - /* 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. - - Example: - nixpkgs.overlays = [ - (self: super: { - stdenv = super.withCFlags [ "-funroll-loops" "-O3" ] super.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}"; }; - }); - }); - - # Overriding the SDK changes the Darwin SDK used to build the package, which: - # * Ensures that the compiler and bintools have the correct Libsystem version; and - # * Replaces any SDK references with those in the SDK corresponding to the requested SDK version. - # - # `sdkVersion` can be any of the following: - # * A version string indicating the requested SDK version; or - # * An attrset consisting of either or both of the following fields: darwinSdkVersion and darwinMinVersion. - overrideSDK = import ./darwin/override-sdk.nix { - inherit lib extendMkDerivationArgs; - inherit (pkgs) - stdenvNoCC - pkgsBuildBuild - pkgsBuildHost - pkgsBuildTarget - pkgsHostHost - pkgsHostTarget - pkgsTargetTarget; - }; - - 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; - }; - allowedRequisites = lib.mapNullable (rs: rs ++ [ bintools ]) (stdenv.allowedRequisites or null); - }); -} diff --git a/pkgs/stdenv/booter.nix b/pkgs/stdenv/booter.nix deleted file mode 100644 index 7fc1fa4..0000000 --- a/pkgs/stdenv/booter.nix +++ /dev/null @@ -1,142 +0,0 @@ -# This file defines a single function for booting a package set from a list of -# stages. The exact mechanics of that function are defined below; here I -# (@Ericson2314) wish to describe the purpose of the abstraction. -# -# The first goal is consistency across stdenvs. Regardless of what this function -# does, by making every stdenv use it for bootstrapping we ensure that they all -# work in a similar way. [Before this abstraction, each stdenv was its own -# special snowflake due to different authors writing in different times.] -# -# The second goal is consistency across each stdenv's stage functions. By -# writing each stage in terms of the previous stage, commonalities between them -# are more easily observable. [Before, there usually was a big attribute set -# with each stage, and stages would access the previous stage by name.] -# -# The third goal is composition. Because each stage is written in terms of the -# previous, the list can be reordered or, more practically, extended with new -# stages. The latter is used for cross compiling and custom -# stdenvs. Additionally, certain options should by default apply only to the -# last stage, whatever it may be. By delaying the creation of stage package sets -# until the final fold, we prevent these options from inhibiting composition. -# -# The fourth and final goal is debugging. Normal packages should only source -# their dependencies from the current stage. But for the sake of debugging, it -# is nice that all packages still remain accessible. We make sure previous -# stages are kept around with a `stdenv.__bootPackges` attribute referring the -# previous stage. It is idiomatic that attributes prefixed with `__` come with -# special restrictions and should not be used under normal circumstances. -{ lib, allPackages }: - -# Type: -# [ pkgset -> (args to stage/default.nix) or ({ __raw = true; } // pkgs) ] -# -> pkgset -# -# In english: This takes a list of function from the previous stage pkgset and -# returns the final pkgset. Each of those functions returns, if `__raw` is -# undefined or false, args for this stage's pkgset (the most complex and -# important arg is the stdenv), or, if `__raw = true`, simply this stage's -# pkgset itself. -# -# 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 - - /* "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 - */ - 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; - lapp = lnul cur; - cur = go lapp 0; - 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); - - # 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; - }; - }); - in thisStage; - - # This is a hack for resolving cross-compiled compilers' run-time - # deps. (That is, compilers that are themselves cross-compiled, as - # opposed to used to cross-compile packages.) - postStage = buildPackages: { - __raw = true; - stdenv.cc = - 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 - else - # This will blow up if anything uses it, but that's OK. The `if - # buildPackages.stdenv.cc.isClang then ... else ...` would blow up - # everything, so we make sure to avoid that. - buildPackages.stdenv.cc; - }; - -in dfold folder postStage (_: {}) withAllowCustomOverrides diff --git a/pkgs/stdenv/cross/default.nix b/pkgs/stdenv/cross/default.nix deleted file mode 100644 index cf6a55f..0000000 --- a/pkgs/stdenv/cross/default.nix +++ /dev/null @@ -1,90 +0,0 @@ -{ lib -, localSystem, crossSystem, config, overlays, crossOverlays ? [] -}: - -let - bootStages = import ../. { - inherit lib localSystem overlays; - - crossSystem = localSystem; - crossOverlays = []; - - # Ignore custom stdenvs when cross compiling for compatibility - config = builtins.removeAttrs config [ "replaceStdenv" ]; - }; - -in lib.init bootStages ++ [ - - # Regular native packages - (somePrevStage: lib.last bootStages somePrevStage // { - # It's OK to change the built-time dependencies - allowCustomOverrides = true; - }) - - # Build tool Packages - (vanillaPackages: { - inherit config overlays; - selfBuild = false; - stdenv = - assert vanillaPackages.stdenv.buildPlatform == localSystem; - assert vanillaPackages.stdenv.hostPlatform == localSystem; - assert vanillaPackages.stdenv.targetPlatform == localSystem; - vanillaPackages.stdenv.override { targetPlatform = crossSystem; }; - # It's OK to change the built-time dependencies - allowCustomOverrides = true; - }) - - # 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; - - # 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; - - 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 - ; - })); - }) - -] diff --git a/pkgs/stdenv/custom/default.nix b/pkgs/stdenv/custom/default.nix deleted file mode 100644 index 4c73801..0000000 --- a/pkgs/stdenv/custom/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib -, localSystem, crossSystem, config, overlays, crossOverlays ? [] -}: - -assert crossSystem == localSystem; - -let - bootStages = import ../. { - inherit lib localSystem crossSystem overlays; - # Remove config.replaceStdenv to ensure termination. - config = builtins.removeAttrs config [ "replaceStdenv" ]; - }; - -in bootStages ++ [ - - # Additional stage, built using custom stdenv - (vanillaPackages: { - inherit config overlays; - stdenv = - assert vanillaPackages.hostPlatform == localSystem; - assert vanillaPackages.targetPlatform == localSystem; - config.replaceStdenv { pkgs = vanillaPackages; }; - }) - -] diff --git a/pkgs/stdenv/cygwin/all-buildinputs-as-runtimedep.sh b/pkgs/stdenv/cygwin/all-buildinputs-as-runtimedep.sh deleted file mode 100644 index 7cb6a58..0000000 --- a/pkgs/stdenv/cygwin/all-buildinputs-as-runtimedep.sh +++ /dev/null @@ -1,16 +0,0 @@ -# On cygwin, automatic runtime dependency detection does not work -# because the binaries do not contain absolute references to store -# locations (yet) -postFixupHooks+=(_cygwinAllBuildInputsAsRuntimeDep) - -_cygwinAllBuildInputsAsRuntimeDep() { - if [ -n "$buildInputs" ]; then - mkdir -p "$out/nix-support" - echo "$buildInputs" >> "$out/nix-support/cygwin-buildinputs-as-runtime-deps" - fi - - if [ -n "$nativeBuildInputs" ]; then - mkdir -p "$out/nix-support" - echo "$nativeBuildInputs" >> "$out/nix-support/cygwin-buildinputs-as-runtime-deps" - fi -} diff --git a/pkgs/stdenv/cygwin/rebase-i686.sh b/pkgs/stdenv/cygwin/rebase-i686.sh deleted file mode 100644 index 6b8ec44..0000000 --- a/pkgs/stdenv/cygwin/rebase-i686.sh +++ /dev/null @@ -1,24 +0,0 @@ -fixupOutputHooks+=(_cygwinFixAutoImageBase) - -_cygwinFixAutoImageBase() { - if [ "${dontRebase-}" == 1 ] || [ ! -d "$prefix" ]; then - return - fi - find "$prefix" -name "*.dll" -type f | while read DLL; do - if [ -f /etc/rebasenix.nextbase ]; then - NEXTBASE="$(>16)+1)<<16)) - - echo "REBASE FIX: $DLL $BASE -> $NEXTBASE" - /bin/rebase -b $NEXTBASE $DLL - NEXTBASE="0x`printf %x $(($NEXTBASE+$SKIP))`" - - echo $NEXTBASE > /etc/rebasenix.nextbase - done -} diff --git a/pkgs/stdenv/cygwin/rebase-x86_64.sh b/pkgs/stdenv/cygwin/rebase-x86_64.sh deleted file mode 100644 index 6dccdc4..0000000 --- a/pkgs/stdenv/cygwin/rebase-x86_64.sh +++ /dev/null @@ -1,24 +0,0 @@ -fixupOutputHooks+=(_cygwinFixAutoImageBase) - -_cygwinFixAutoImageBase() { - if [ "${dontRebase-}" == 1 ] || [ ! -d "$prefix" ]; then - return - fi - find "$prefix" -name "*.dll" -type f | while read DLL; do - if [ -f /etc/rebasenix.nextbase ]; then - NEXTBASE="$(>16)+1)<<16)) - - echo "REBASE FIX: $DLL $BASE -> $NEXTBASE" - /bin/rebase -b $NEXTBASE $DLL - NEXTBASE="0x`printf %x $(($NEXTBASE+$SKIP))`" - - echo $NEXTBASE > /etc/rebasenix.nextbase - done -} diff --git a/pkgs/stdenv/cygwin/wrap-exes-to-find-dlls.sh b/pkgs/stdenv/cygwin/wrap-exes-to-find-dlls.sh deleted file mode 100644 index d0da8c1..0000000 --- a/pkgs/stdenv/cygwin/wrap-exes-to-find-dlls.sh +++ /dev/null @@ -1,74 +0,0 @@ -postFixupHooks+=(_cygwinWrapExesToFindDlls) - -_cygwinWrapExesToFindDlls() { - find $out -type l | while read LINK; do - TARGET="$(readlink "${LINK}")" - - # fix all non .exe links that link explicitly to a .exe - if [[ ${TARGET} == *.exe ]] && [[ ${LINK} != *.exe ]]; then - mv "${LINK}" "${LINK}.exe" - LINK="${LINK}.exe" - fi - - # generate complementary filenames - if [[ ${LINK} == *.exe ]]; then - _LINK="${LINK%.exe}" - _TARGET="${TARGET%.exe}" - else - _LINK="${LINK}.exe" - _TARGET="${TARGET}.exe" - fi - - # check if sould create complementary link - DOLINK=1 - if [[ ${_TARGET} == *.exe ]]; then - # the canonical target has to be a .exe - CTARGET="$(readlink -f "${LINK}")" - if [[ ${CTARGET} != *.exe ]]; then - CTARGET="${CTARGET}.exe" - fi - - if [ ! -e "${CTARGET}" ]; then - unset DOLINK - fi - fi - - if [ -e "${_LINK}" ]; then - # complementary link seems to exist - # but could be cygwin smoke and mirrors - INO=$(stat -c%i "${LINK}") - _INO=$(stat -c%i "${_LINK}") - if [ "${INO}" -ne "${_INO}" ]; then - unset DOLINK - fi - fi - - # create complementary link - if [ -n "${DOLINK}" ]; then - ln -s "${_TARGET}" "${_LINK}.tmp" - mv "${_LINK}.tmp" "${_LINK}" - fi - done - - find $out -type f -name "*.exe" | while read EXE; do - WRAPPER="${EXE%.exe}" - if [ -e "${WRAPPER}" ]; then - # check if really exists or cygwin smoke and mirrors - INO=$(stat -c%i "${EXE}") - _INO=$(stat -c%i "${WRAPPER}") - if [ "${INO}" -ne "${_INO}" ]; then - continue - fi - fi - - mv "${EXE}" "${EXE}.tmp" - - cat >"${WRAPPER}" < { - url = "http://tarballs.nixos.org/stdenv/aarch64-apple-darwin/d03a4482228d4d6dbd2d4b425b6dfcd49ebe765f/bootstrap-tools.tar.xz"; - hash = "sha256-a37OgMdTHjFyKs4UTxoD7zx6Te3A7zsSjhbFHzbNxQ8="; - }; - unpack = import { - url = "http://tarballs.nixos.org/stdenv/aarch64-apple-darwin/d03a4482228d4d6dbd2d4b425b6dfcd49ebe765f/unpack.nar.xz"; - hash = "sha256-XCVy6TMDJ1DKFnhIT1NHzdQUjY/TPKLV67Zi/ANIpms="; - name = "unpack"; - unpack = true; - }; -} diff --git a/pkgs/stdenv/darwin/bootstrap-files/x86_64-apple-darwin.nix b/pkgs/stdenv/darwin/bootstrap-files/x86_64-apple-darwin.nix deleted file mode 100644 index bbef3ec..0000000 --- a/pkgs/stdenv/darwin/bootstrap-files/x86_64-apple-darwin.nix +++ /dev/null @@ -1,22 +0,0 @@ -# Autogenerated by maintainers/scripts/bootstrap-files/refresh-tarballs.bash as: -# $ ./refresh-tarballs.bash --targets=x86_64-apple-darwin -# -# Metadata: -# - nixpkgs revision: d03a4482228d4d6dbd2d4b425b6dfcd49ebe765f -# - hydra build: https://hydra.nixos.org/job/nixpkgs/trunk/stdenvBootstrapTools.x86_64-apple-darwin.build/latest -# - resolved hydra build: https://hydra.nixos.org/build/255281731 -# - instantiated derivation: /nix/store/44wnr0ikrbcxkakfqhhm2cz6gsh6wjni-stdenv-bootstrap-tools.drv -# - output directory: /nix/store/lsl9rl3zj9nr318w471vvmlvxzj21b2k-stdenv-bootstrap-tools -# - build time: Wed, 03 Apr 2024 07:56:15 +0000 -{ - bootstrapTools = import { - url = "http://tarballs.nixos.org/stdenv/x86_64-apple-darwin/d03a4482228d4d6dbd2d4b425b6dfcd49ebe765f/bootstrap-tools.tar.xz"; - hash = "sha256-3OBigzlbu/Z6g8r7hsOWg95HTv7IJw9Nvbamwvw+88w="; - }; - unpack = import { - url = "http://tarballs.nixos.org/stdenv/x86_64-apple-darwin/d03a4482228d4d6dbd2d4b425b6dfcd49ebe765f/unpack.nar.xz"; - hash = "sha256-93GK8LjjgUBknxsylfGVr0DG4AbWVIQEIWrwxhDW07k="; - name = "unpack"; - unpack = true; - }; -} diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix deleted file mode 100644 index 3ab2382..0000000 --- a/pkgs/stdenv/darwin/default.nix +++ /dev/null @@ -1,1380 +0,0 @@ -# This file contains the standard build environment for Darwin. It is based on LLVM and is patterned -# after the Linux stdenv. It shares similar goals to the Linux standard environment in that the -# resulting environment should be built purely and not contain any references to it. -# -# For more on the design of the stdenv and updating it, see `README.md`. -# -# 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 ? [ ] - # 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 -}: - -assert crossSystem == localSystem; - -let - inherit (localSystem) system; - - useAppleSDKLibs = localSystem.isAarch64; - - commonImpureHostDeps = [ - "/bin/sh" - "/usr/lib/libSystem.B.dylib" - "/usr/lib/system/libunc.dylib" # This dependency is "hidden", so our scanning code doesn't pick it up - ]; - - 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; - - commonPreHook = '' - export NIX_ENFORCE_NO_NATIVE=''${NIX_ENFORCE_NO_NATIVE-1} - export NIX_ENFORCE_PURITY=''${NIX_ENFORCE_PURITY-1} - export NIX_IGNORE_LD_THROUGH_GCC=1 - unset SDKROOT - ''; - - bootstrapTools = derivation ({ - inherit system; - - 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 - ]; - - 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; - - thisStdenv = import ../generic { - name = "${name}-stdenv-darwin"; - - buildPlatform = localSystem; - hostPlatform = localSystem; - targetPlatform = localSystem; - - inherit config; - - extraBuildInputs = [ prevStage.darwin.CF ]; - 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 - ''; - - shell = bash + "/bin/bash"; - initialPath = [ bash bootstrapTools ]; - - fetchurlBoot = import ../../build-support/fetchurl { - inherit lib; - stdenvNoCC = prevStage.ccWrapperStdenv or thisStdenv; - curl = bootstrapTools; - }; - - inherit cc; - - # The stdenvs themselves don't use mkDerivation, so I need to specify this here - __stdenvImpureHostDeps = commonImpureHostDeps; - __extraImpureHostDeps = commonImpureHostDeps; - - # 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; }; - }; - fetchzip = super.fetchzip.override { inherit (self) fetchurl; }; - }; - }; - - in - { - inherit config overlays; - stdenv = thisStdenv; - }; -in - assert bootstrapTools.passthru.isFromBootstrapFiles or false; # sanity check -[ - ({}: { - __raw = true; - - coreutils = null; - gnugrep = 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; - }; - - 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"; - - 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; - - 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"; - 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 - # linker because the `compiler-rt` build process checks the version and attempts to manually - # run `codesign` if it detects a version of `ld64` it considers too old. If that happens, the - # build process will fail for a few different reasons: - # - sigtool is too old and does not accept the `--sign` argument; - # - sigtool is new enough to accept the `--sign` argument, but it aborts when it is invoked on a - # binary that is already signed; or - # - compiler-rt attempts to invoke `codesign` on x86_64-darwin, but `sigtool` is not currently - # part of the x86_64-darwin bootstrap tools. - # - # 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: - # previous stage0 stdenv: - assert lib.all isFromBootstrapFiles ( - 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 (! 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 - ]); - - stageFun prevStage { - name = "bootstrap-stage1"; - - 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 ]; - }); - - signingUtils = prevStage.darwin.signingUtils.override { - inherit (selfDarwin) sigtool; - }; - - postLinkSignHook = prevStage.darwin.postLinkSignHook.override { - inherit (selfDarwin) sigtool; - }; - - binutils = superDarwin.binutils.override { - inherit (self) coreutils; - inherit (selfDarwin) postLinkSignHook signingUtils; - - 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: - # previous stage1 stdenv: - 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.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.getVersion prevStage.stdenv.cc.bintools.bintools == "boot"; - - stageFun prevStage { - 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; - - # 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; - - 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 - ); - }; - - 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" - ''; - }) - - # 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: - # previous stage-sysctl stdenv: - 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.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.getVersion prevStage.stdenv.cc.bintools.bintools == lib.getVersion prevStage.darwin.cctools-port; - - stageFun prevStage { - 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; - - # 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; - }; - - # 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; - - # 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" ]; - }); - - 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 - ]; - - 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: - # 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; [ - 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 (! 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 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; - - stageFun prevStage { - - 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; - - # 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; - }); - }; - - 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: - # 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 isBuiltByNixpkgsCompiler (with prevStage; [ bash ]); - - 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 (! 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 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; - - stageFun prevStage { - - 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; - - # 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; - - # 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 ]; - }; - }); - }); - 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: - # 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.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 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; - - stageFun prevStage { - - 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 - - # 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; }; - - 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; - }; - }); - - 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 - ]; - - 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: - # 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 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 (! 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.getVersion prevStage.stdenv.cc.bintools.bintools == lib.getVersion prevStage.darwin.cctools-llvm; - - stageFun prevStage { - - 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 - - # 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; - - apple_sdk = superDarwin.apple_sdk // { - inherit (prevStage.darwin.apple_sdk) sdkRoot; - }; - - signingUtils = superDarwin.signingUtils.override { - inherit (selfDarwin) sigtool; - }; - - binutils = superDarwin.binutils.override { - inherit (prevStage) expand-response-params; - - 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; - - 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 - # the bootstrap tools. - # - # 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: - # 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.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 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 prevStage.darwin.cctools == prevStage.darwin.cctools-llvm; - - let - doSign = localSystem.isAarch64; - - cc = prevStage.llvmPackages.clang; - in - { - inherit config overlays; - stdenv = import ../generic { - name = "stdenv-darwin"; - - buildPlatform = localSystem; - hostPlatform = localSystem; - targetPlatform = localSystem; - - inherit config; - - 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; }); - - extraNativeBuildInputs = lib.optionals localSystem.isAarch64 [ - prevStage.updateAutotoolsGnuConfigScriptsHook - ] ++ [ prevStage.darwin.apple_sdk.sdkRoot ]; - - extraBuildInputs = [ prevStage.darwin.CF ]; - - inherit cc; - - shell = cc.shell; - - 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; - }; - } // 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: - # previous final stage stdenv: - assert isBuiltByNixpkgsCompiler prevStage.darwin.sigtool; - assert isBuiltByNixpkgsCompiler prevStage.darwin.binutils-unwrapped; - assert isBuiltByNixpkgsCompiler prevStage.darwin.print-reexports; - assert isBuiltByNixpkgsCompiler prevStage.darwin.rewrite-tbd; - assert isBuiltByNixpkgsCompiler prevStage.darwin.cctools; - - 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; }) -] diff --git a/pkgs/stdenv/darwin/make-bootstrap-tools.nix b/pkgs/stdenv/darwin/make-bootstrap-tools.nix deleted file mode 100644 index bacad15..0000000 --- a/pkgs/stdenv/darwin/make-bootstrap-tools.nix +++ /dev/null @@ -1,408 +0,0 @@ -{ 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); - -rec { - build = stdenv.mkDerivation { - name = "stdenv-bootstrap-tools"; - - nativeBuildInputs = [ dumpnar nukeReferences ]; - - 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"; - }); - - cctools_ = darwin.cctools; - - # 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 - - echo Unpacking the bootstrap tools... >&2 - mkdir $out - tar xf "$1" -C $out - - 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" - } - - 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 - } - - # 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 - } - - 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/* - - mkdir $out/.pack - mv $out/* $out/.pack - mv $out/.pack $out/pack - - 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 - ''; - - allowedReferences = []; - - meta = { - maintainers = [ lib.maintainers.copumpkin ]; - }; - }; - - bootstrapFiles = { - bootstrapTools = "${build}/on-server/bootstrap-tools.tar.xz"; - unpack = runCommand "unpack" { allowedReferences = []; } '' - cp -r ${build}/unpack $out - ''; - }; - - bootstrapTools = derivation { - inherit (stdenv.hostPlatform) system; - - name = "bootstrap-tools"; - builder = "${bootstrapFiles.unpack}/bin/bash"; - - args = [ - "${bootstrapFiles.unpack}/bootstrap-tools-unpack.sh" - bootstrapFiles.bootstrapTools - ]; - - PATH = lib.makeBinPath [ - (placeholder "out") - bootstrapFiles.unpack - ]; - - allowedReferences = [ "out" ]; - }; - - test = derivation { - name = "test-bootstrap-tools"; - inherit (stdenv.hostPlatform) system; - builder = "${bootstrapTools}/bin/bash"; - args = [ "-euo" "pipefail" "-c" "eval \"$buildCommand\"" ]; - PATH = lib.makeBinPath [ bootstrapTools ]; - tools = bootstrapTools; - "${stdenv.cc.darwinMinVersionVariable}" = stdenv.cc.darwinMinVersion; - - # Create a pure environment where we use just what's in the bootstrap tools. - buildCommand = '' - mkdir -p $out/bin - - for exe in $tools/bin/*; do - [[ $exe =~ bunzip2|codesign.*|false|install_name_tool|ld|lipo|pbzx|ranlib|rewrite-tbd|sigtool ]] && continue - $exe --version > /dev/null || { echo $exe failed >&2; exit 1; } - done - - # run all exes that don't take a --version flag - bunzip2 -h - codesign --help - codesign_allocate -i $tools/bin/true -r -o true - false || (($? == 1)) - install_name_tool -id true true - ld -v - lipo -info true - pbzx -v - # ranlib gets tested bulding hello - rewrite-tbd ' >> hello1.c - echo '#include ' >> hello1.c - echo '#include ' >> hello1.c - echo 'int main() { printf("Hello World\n"); return 0; }' >> hello1.c - $CC -o hello1 hello1.c - cp hello1 $out/bin/ - $out/bin/hello1 - - echo '#include ' >> hello3.cc - echo 'int main() { std::cout << "Hello World\n"; }' >> hello3.cc - $CXX -v -o hello3 hello3.cc - cp hello3 $out/bin/ - $out/bin/hello3 - - # test that libc++.dylib rpaths are correct so it can reference libc++abi.dylib when linked. - # using -Wl,-flat_namespace is required to generate an error - mkdir libtest/ - ln -s $tools/lib/libc++.dylib libtest/ - clang++ -Wl,-flat_namespace -idirafter $tools/include-Libsystem -isystem$tools/include/c++/v1 \ - --sysroot=$tools -L./libtest -L$PWD/libSystem-boot hello3.cc - - tar xvf ${hello.src} - cd hello-* - # hello configure detects -liconv is needed but doesn't add to the link step - LDFLAGS=-liconv ./configure --prefix=$out - make - make install - $out/bin/hello - ''; - }; - - # The ultimate test: bootstrap a whole stdenv from the tools specified above and get a package set out of it - # eg: nix-build -A freshBootstrapTools.test-pkgs.stdenv - test-pkgs = import test-pkgspath { - # if the bootstrap tools are for another platform, we should be testing - # 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'); - }; -} diff --git a/pkgs/stdenv/darwin/override-sdk.nix b/pkgs/stdenv/darwin/override-sdk.nix deleted file mode 100644 index 6de6753..0000000 --- a/pkgs/stdenv/darwin/override-sdk.nix +++ /dev/null @@ -1,437 +0,0 @@ -# The basic algorithm is to rewrite the propagated inputs of a package and any of its -# own propagated inputs recursively to replace references from the default SDK with -# those from the requested SDK version. This is done across all propagated inputs to -# avoid making assumptions about how those inputs are being used. -# -# For example, packages may propagate target-target dependencies with the expectation that -# they will be just build inputs when the package itself is used as a native build input. -# -# To support this use case and operate without regard to the original package set, -# `overrideSDK` creates a mapping from the default SDK in all package categories to the -# requested SDK. If the lookup fails, it is assumed the package is not part of the SDK. -# Non-SDK packages are processed per the algorithm described above. -{ - lib, - stdenvNoCC, - extendMkDerivationArgs, - pkgsBuildBuild, - pkgsBuildHost, - pkgsBuildTarget, - pkgsHostHost, - pkgsHostTarget, - pkgsTargetTarget, -}@args: - -let - # Takes a mapping from a package to its replacement and transforms it into a list of - # mappings by output (e.g., a package with three outputs produces a list of size 3). - expandOutputs = - mapping: - map (output: { - name = builtins.unsafeDiscardStringContext (lib.getOutput output mapping.original); - value = lib.getOutput output mapping.replacement; - }) mapping.original.outputs; - - # Produces a list of mappings from the default SDK to the new SDK (`sdk`). - # `attr` indicates which SDK path to remap (e.g., `libs` remaps `apple_sdk.libs`). - # - # TODO: Update once the SDKs have been refactored to a common pattern to better handle - # frameworks that are not present in both SDKs. Currently, they’re dropped. - mkMapping = - attr: pkgs: sdk: - lib.foldlAttrs ( - mappings: name: pkg: - let - # Avoid evaluation failures due to missing or throwing - # frameworks (such as QuickTime in the 11.0 SDK). - maybeReplacement = builtins.tryEval sdk.${attr}.${name} or { success = false; }; - in - if maybeReplacement.success then - mappings - ++ expandOutputs { - original = pkg; - replacement = maybeReplacement.value; - } - else - mappings - ) [ ] pkgs.darwin.apple_sdk.${attr}; - - # Produces a list of overrides for the given package set, SDK, and version. - # If you want to manually specify a mapping, this is where you should do it. - mkOverrides = - pkgs: sdk: version: - lib.concatMap expandOutputs [ - # Libsystem needs to match the one used by the SDK or weird errors happen. - { - original = pkgs.darwin.apple_sdk.Libsystem; - replacement = sdk.Libsystem; - } - # Make sure darwin.CF is mapped to the correct version for the SDK. - { - original = pkgs.darwin.CF; - replacement = sdk.frameworks.CoreFoundation; - } - # libobjc needs to be handled specially because it’s not actually in the SDK. - { - original = pkgs.darwin.libobjc; - replacement = sdk.objc4; - } - # Unfortunately, this is not consistent between Darwin SDKs in nixpkgs, so - # try both versions to map between them. - { - original = pkgs.darwin.apple_sdk.sdk or pkgs.darwin.apple_sdk.MacOSX-SDK; - replacement = sdk.sdk or sdk.MacOSX-SDK; - } - # Remap the SDK root. This is used by clang to set the SDK version when - # linking. This behavior is automatic by clang and can’t be overriden. - # Otherwise, without the SDK root set, the SDK version will be inferred to - # be the same as the deployment target, which is not usually what you want. - { - original = pkgs.darwin.apple_sdk.sdkRoot; - replacement = sdk.sdkRoot; - } - # Override xcodebuild because it hardcodes the SDK version. - # TODO: Make xcodebuild defer to the SDK root set in the stdenv. - { - original = pkgs.xcodebuild; - replacement = pkgs.xcodebuild.override { - # Do the override manually to avoid an infinite recursion. - stdenv = pkgs.stdenv.override (old: { - buildPlatform = mkPlatform version old.buildPlatform; - hostPlatform = mkPlatform version old.hostPlatform; - targetPlatform = mkPlatform version old.targetPlatform; - - allowedRequisites = null; - cc = mkCC sdk.Libsystem old.cc; - }); - }; - } - ]; - - mkBintools = - Libsystem: bintools: - if bintools ? override then - bintools.override { libc = Libsystem; } - else - let - # `override` isn’t available, so bintools has to be rewrapped with the new libc. - # Most of the required arguments can be recovered except for `postLinkSignHook` - # and `signingUtils`, which have to be scrapped from the original’s `postFixup`. - # This isn’t ideal, but it works. - postFixup = lib.splitString "\n" bintools.postFixup; - - postLinkSignHook = lib.pipe postFixup [ - (lib.findFirst (lib.hasPrefix "echo 'source") null) - (builtins.match "^echo 'source (.*-post-link-sign-hook)' >> \\$out/nix-support/post-link-hook$") - lib.head - ]; - - signingUtils = lib.pipe postFixup [ - (lib.findFirst (lib.hasPrefix "export signingUtils") null) - (builtins.match "^export signingUtils=(.*)$") - lib.head - ]; - - newBintools = pkgsBuildTarget.wrapBintoolsWith { - inherit (bintools) name; - - buildPackages = { }; - libc = Libsystem; - - inherit lib; - - coreutils = bintools.coreutils_bin; - gnugrep = bintools.gnugrep_bin; - - inherit (bintools) bintools; - - inherit postLinkSignHook signingUtils; - }; - in - lib.getOutput bintools.outputName newBintools; - - mkCC = - Libsystem: cc: - if cc ? override then - cc.override { - bintools = mkBintools Libsystem cc.bintools; - libc = Libsystem; - } - else - builtins.throw "CC has no override: ${cc}"; - - mkPlatform = - version: platform: - platform - // lib.optionalAttrs platform.isDarwin { inherit (version) darwinMinVersion darwinSdkVersion; }; - - # Creates a stub package. Unchanged files from the original package are symlinked - # into the package. The contents of `nix-support` are updated to reference any - # replaced packages. - # - # Note: `env` is an attrset containing `outputs` and `dependencies`. - # `dependencies` is a regex passed to sed and must be `passAsFile`. - mkProxyPackage = - name: env: - stdenvNoCC.mkDerivation { - inherit name; - - inherit (env) outputs replacements sourceOutputs; - - # Take advantage of the fact that replacements and sourceOutputs will be passed - # via JSON and parsed into environment variables. - __structuredAttrs = true; - - buildCommand = '' - # Map over the outputs in the package being replaced to make sure the proxy is - # a fully functional replacement. This is like `symlinkJoin` except for - # outputs and the contents of `nix-support`, which will be customized. - function replacePropagatedInputs() { - local sourcePath=$1 - local targetPath=$2 - - mkdir -p "$targetPath" - - local sourceFile - for sourceFile in "$sourcePath"/*; do - local fileName=$(basename "$sourceFile") - local targetFile="$targetPath/$fileName" - - if [ -d "$sourceFile" ]; then - replacePropagatedInputs "$sourceFile" "$targetPath/$fileName" - # Check to see if any of the files in the folder were replaced. - # Otherwise, replace the folder with a symlink if none were changed. - if [ "$(find -maxdepth 1 "$targetPath/$fileName" -not -type l)" = "" ]; then - rm "$targetPath/$fileName"/* - ln -s "$sourceFile" "$targetPath/$fileName" - fi - else - cp "$sourceFile" "$targetFile" - local original - for original in "''${!replacements[@]}"; do - substituteInPlace "$targetFile" \ - --replace-quiet "$original" "''${replacements[$original]}" - done - if cmp -s "$sourceFile" "$targetFile"; then - rm "$targetFile" - ln -s "$sourceFile" "$targetFile" - fi - fi - done - } - - local outputName - for outputName in "''${!outputs[@]}"; do - local outPath=''${outputs[$outputName]} - mkdir -p "$outPath" - - local sourcePath - for sourcePath in "''${sourceOutputs[$outputName]}"/*; do - sourceName=$(basename "$sourcePath") - # `nix-support` is special-cased because any propagated inputs need their - # SDK frameworks replaced with those from the requested SDK. - if [ "$sourceName" == "nix-support" ]; then - replacePropagatedInputs "$sourcePath" "$outPath/nix-support" - else - ln -s "$sourcePath" "$outPath/$sourceName" - fi - done - done - ''; - }; - - # Gets all propagated inputs in a package. This does not recurse. - getPropagatedInputs = - pkg: - lib.optionals (lib.isDerivation pkg) ( - lib.concatMap (input: pkg.${input} or [ ]) [ - "depsBuildBuildPropagated" - "propagatedNativeBuildInputs" - "depsBuildTargetPropagated" - "depsHostHostPropagated" - "propagatedBuildInputs" - "depsTargetTargetPropagated" - ] - ); - - # Looks up the replacement for `pkg` in the `newPackages` mapping. If `pkg` is a - # compiler (meaning it has a `libc` attribute), the compiler will be overriden. - getReplacement = - newPackages: pkg: - let - pkgOrCC = - if pkg.libc or null != null then - # Heuristic to determine whether package is a compiler or bintools. - if pkg.wrapperName == "CC_WRAPPER" then - mkCC (getReplacement newPackages pkg.libc) pkg - else - mkBintools (getReplacement newPackages pkg.libc) pkg - else - pkg; - in - if lib.isDerivation pkg then - newPackages.${builtins.unsafeDiscardStringContext pkg} or pkgOrCC - else - pkg; - - # Replaces all packages propagated by `pkgs` using the `newPackages` mapping. - # It is assumed that all possible overrides have already been incorporated into - # the mapping. If any propagated packages are replaced, a proxy package will be - # created with references to the old packages replaced in `nix-support`. - replacePropagatedPackages = - newPackages: pkg: - let - propagatedInputs = getPropagatedInputs pkg; - env = { - inherit (pkg) outputs; - - replacements = lib.pipe propagatedInputs [ - (lib.filter (pkg: pkg != null)) - (map (dep: { - name = builtins.unsafeDiscardStringContext dep; - value = getReplacement newPackages dep; - })) - (lib.filter (mapping: mapping.name != mapping.value)) - lib.listToAttrs - ]; - - sourceOutputs = lib.genAttrs pkg.outputs (output: lib.getOutput output pkg); - }; - in - # Only remap the package’s propagated inputs if there are any and if any of them - # had packages remapped (with frameworks or proxy packages). - if propagatedInputs != [ ] && env.replacements != { } then mkProxyPackage pkg.name env else pkg; - - # Gets all propagated dependencies in a package in reverse order sorted topologically. - # This takes advantage of the fact that items produced by `operator` are pushed to - # the end of the working set, ensuring that dependencies always appear after their - # parent in the list with leaf nodes at the end. - topologicallyOrderedPropagatedDependencies = - pkgs: - let - mapPackageDeps = lib.flip lib.pipe [ - (lib.filter (pkg: pkg != null)) - (map (pkg: { - key = builtins.unsafeDiscardStringContext pkg; - package = pkg; - deps = getPropagatedInputs pkg; - })) - ]; - in - lib.genericClosure { - startSet = mapPackageDeps pkgs; - operator = { deps, ... }: mapPackageDeps deps; - }; - - # Returns a package mapping based on remapping all propagated packages. - getPackageMapping = - baseMapping: input: - let - dependencies = topologicallyOrderedPropagatedDependencies input; - in - lib.foldr ( - pkg: newPackages: - let - replacement = replacePropagatedPackages newPackages pkg.package; - outPath = pkg.key; - in - if pkg.key == null || newPackages ? ${outPath} then - newPackages - else - newPackages // { ${outPath} = replacement; } - ) baseMapping dependencies; - - overrideSDK = - stdenv: sdkVersion: - let - newVersion = { - inherit (stdenv.hostPlatform) darwinMinVersion darwinSdkVersion; - } // (if lib.isAttrs sdkVersion then sdkVersion else { darwinSdkVersion = sdkVersion; }); - - inherit (newVersion) darwinMinVersion darwinSdkVersion; - - # Used to get an SDK version corresponding to the requested `darwinSdkVersion`. - # TODO: Treat `darwinSdkVersion` as a constraint rather than as an exact version. - resolveSDK = pkgs: pkgs.darwin."apple_sdk_${lib.replaceStrings [ "." ] [ "_" ] darwinSdkVersion}"; - - # `newSdkPackages` is constructed based on the assumption that SDK packages only - # propagate versioned packages from that SDK -- that they neither propagate - # unversioned SDK packages nor propagate non-SDK packages (such as curl). - # - # Note: `builtins.unsafeDiscardStringContext` is used to allow the path from the - # original package output to be mapped to the replacement. This is safe because - # the value is not persisted anywhere and necessary because store paths are not - # allowed as attrset names otherwise. - baseSdkMapping = lib.pipe args [ - (lib.flip removeAttrs [ - "lib" - "stdenvNoCC" - "extendMkDerivationArgs" - ]) - (lib.filterAttrs (_: lib.hasAttr "darwin")) - lib.attrValues - (lib.concatMap ( - pkgs: - let - newSDK = resolveSDK pkgs; - - frameworks = mkMapping "frameworks" pkgs newSDK; - libs = mkMapping "libs" pkgs newSDK; - overrides = mkOverrides pkgs newSDK newVersion; - in - frameworks ++ libs ++ overrides - )) - lib.listToAttrs - ]; - - # Remaps all inputs given to the requested SDK version. The result is an attrset - # that can be passed to `extendMkDerivationArgs`. - mapInputsToSDK = - inputs: args: - lib.pipe inputs [ - (lib.filter (input: args ? ${input})) - (lib.flip lib.genAttrs ( - inputName: - let - input = args.${inputName}; - newPackages = getPackageMapping baseSdkMapping input; - in - map (getReplacement newPackages) input - )) - ]; - in - stdenv.override ( - old: - { - buildPlatform = mkPlatform newVersion old.buildPlatform; - hostPlatform = mkPlatform newVersion old.hostPlatform; - targetPlatform = mkPlatform newVersion old.targetPlatform; - } - # Only perform replacements if the SDK version has changed. Changing only the - # deployment target does not require replacing the libc or SDK dependencies. - // lib.optionalAttrs (old.hostPlatform.darwinSdkVersion != darwinSdkVersion) { - allowedRequisites = null; - - mkDerivationFromStdenv = extendMkDerivationArgs old (mapInputsToSDK [ - "depsBuildBuild" - "nativeBuildInputs" - "depsBuildTarget" - "depsHostHost" - "buildInputs" - "depsTargetTarget" - "depsBuildBuildPropagated" - "propagatedNativeBuildInputs" - "depsBuildTargetPropagated" - "depsHostHostPropagated" - "propagatedBuildInputs" - "depsTargetTargetPropagated" - ]); - - cc = getReplacement baseSdkMapping old.cc; - - extraBuildInputs = map (getReplacement baseSdkMapping) stdenv.extraBuildInputs; - extraNativeBuildInputs = map (getReplacement baseSdkMapping) stdenv.extraNativeBuildInputs; - } - ); -in -overrideSDK diff --git a/pkgs/stdenv/darwin/portable-libsystem.sh b/pkgs/stdenv/darwin/portable-libsystem.sh deleted file mode 100644 index 7608c0a..0000000 --- a/pkgs/stdenv/darwin/portable-libsystem.sh +++ /dev/null @@ -1,12 +0,0 @@ -# Make /nix/store/...-libSystem “portable” for static built binaries. -# This just rewrites everything in $1/bin to use the -# /usr/lib/libSystem.B.dylib that is provided on every macOS system. - -fixupOutputHooks+=('fixLibsystemRefs $prefix') - -fixLibsystemRefs() { - if [ -d "$1/bin" ]; then - find "$1/bin" -type f -exec \ - @targetPrefix@install_name_tool -change @libsystem@ /usr/lib/libSystem.B.dylib {} \; - fi -} diff --git a/pkgs/stdenv/default.nix b/pkgs/stdenv/default.nix deleted file mode 100644 index 6cc1339..0000000 --- a/pkgs/stdenv/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -# This file chooses a sane default stdenv given the system, platform, etc. -# -# Rather than returning a stdenv, this returns a list of functions---one per -# each bootstrapping stage. See `./booter.nix` for exactly what this list should -# contain. - -{ # Args just for stdenvs' usage - lib - # Args to pass on to the pkgset builder, too -, localSystem, crossSystem, config, overlays, crossOverlays ? [] -} @ args: - -let - # The native (i.e., impure) build environment. This one uses the - # tools installed on the system outside of the Nix environment, - # i.e., the stuff in /bin, /usr/bin, etc. This environment should - # be used with care, since many Nix packages will not build properly - # with it (e.g., because they require GNU Make). - stagesNative = import ./native args; - - # The Nix build environment. - stagesNix = import ./nix (args // { bootStages = stagesNative; }); - - stagesFreeBSD = import ./freebsd args; - - # On Linux systems, the standard build environment consists of Nix-built - # instances glibc and the `standard' Unix tools, i.e., the Posix utilities, - # the GNU C compiler, and so on. - stagesLinux = import ./linux args; - - stagesDarwin = import ./darwin args; - - stagesCross = import ./cross args; - - 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 - x86_64-solaris = stagesNix; - i686-cygwin = stagesNative; - x86_64-cygwin = stagesNative; - x86_64-freebsd = stagesFreeBSD; - }.${localSystem.system} or stagesNative diff --git a/pkgs/stdenv/freebsd/default.nix b/pkgs/stdenv/freebsd/default.nix deleted file mode 100644 index de66085..0000000 --- a/pkgs/stdenv/freebsd/default.nix +++ /dev/null @@ -1,276 +0,0 @@ -{ 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"; -in -[ - - ({}: { - __raw = true; - - 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"; - }); - }) - - ({ bootstrapTools, ... }: rec { - __raw = true; - - 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: { - }; - }; - }) - - (prevStage: { - __raw = true; - - inherit (prevStage) bootstrapTools; - - stdenv = import ../generic { - name = "stdenv-freebsd-boot-0"; - inherit config; - initialPath = [ prevStage.bootstrapTools ]; - inherit (prevStage.stdenv) - buildPlatform hostPlatform targetPlatform - shell; - fetchurlBoot = prevStage.fetchurl; - cc = null; - }; - }) - - (prevStage: { - inherit config overlays; - stdenv = import ../generic rec { - name = "stdenv-freebsd-boot-3"; - inherit config; - - inherit (prevStage.stdenv) - buildPlatform hostPlatform targetPlatform - initialPath shell fetchurlBoot; - - cc = lib.makeOverridable (import ../../build-support/cc-wrapper) { - inherit lib; - nativeTools = true; - nativePrefix = "/usr"; - nativeLibc = true; - stdenvNoCC = prevStage.stdenv; - buildPackages = { - inherit (prevStage) stdenv; - }; - cc = { - name = "clang-9.9.9"; - cc = "/usr"; - outPath = prevStage.bootstrapTools; - }; - isClang = true; - bintools = import ../../build-support/bintools-wrapper { - inherit lib; - stdenvNoCC = prevStage.stdenv; - nativeTools = true; - nativeLibc = true; - propagateDoc = false; - nativePrefix = "/usr"; - bintools = { name = "${name}-binutils"; - outPath = prevStage.bootstrapTools; }; - }; - }; - - preHook = "export NIX_NO_SELF_RPATH=1"; - }; - }) - -] diff --git a/pkgs/stdenv/freebsd/trivial-bootstrap.sh b/pkgs/stdenv/freebsd/trivial-bootstrap.sh deleted file mode 100644 index 34b4dba..0000000 --- a/pkgs/stdenv/freebsd/trivial-bootstrap.sh +++ /dev/null @@ -1,118 +0,0 @@ -set -e -set -o nounset -set -o pipefail - -echo Building the trivial bootstrap environment... -#echo -#echo Needed FreeBSD packages: -#echo findutils gcpio gawk gnugrep coreutils bash gsed gtar gmake xar binutils gpatch lbzip2 diffutils - -$mkdir -p $out/bin - -ln () { - if [ ! -z "${2:-}" ]; then - if [ -f "$out/bin/$2" ]; then - echo "$2 exists" - exit 1 - fi - fi - if test ! -f "$1"; then - echo Target "$2" does not exist - exit 1 - fi - # TODO: check that destination directory exists - if [ ! -z "${2:-}" ]; then - $ln -s "$1" "$out/bin/$2" - else - $ln -s "$1" "$out/bin/" - fi -} - -ln $bash/bin/bash -ln $make/bin/make - -ln /bin/sh - -for i in b2sum base32 base64 basename basenc cat chcon chgrp chmod \ - chown chroot cksum comm cp csplit cut date dd df dir dircolors \ - dirname du echo env expand expr factor false fmt fold install \ - groups head hostid id join kill link ln logname ls md5sum mkdir \ - mkfifo mknod mktemp mv nice nl nohup nproc numfmt od paste pathchk \ - pinky pr printenv printf ptx pwd readlink realpath rm rmdir runcon \ - seq sha1sum sha224sum sha256sum sha384sum sha512sum shred shuf \ - sleep sort split stat stdbuf stty sum sync tac tee test timeout \ - touch tr true truncate tsort tty uname unexpand uniq unlink uptime \ - users vdir wc who whoami yes -do - ln "$coreutils/bin/$i" "$i" -done - -for i in find xargs; do - ln "$findutils/bin/$i" "$i" -done - -for i in diff diff3 sdiff; do - ln "$diffutils/bin/$i" "$i" -done - -for i in grep egrep fgrep; do - ln "$grep/bin/$i" "$i" -done - -ln /usr/bin/locale - -ln /usr/bin/more - -ln /usr/bin/hexdump # for bitcoin - -ln /usr/bin/bzip2 -ln /usr/bin/bunzip2 -ln /usr/bin/bzip2recover - -ln /usr/bin/xz -ln /usr/bin/unxz -ln /usr/bin/lzma -ln /usr/bin/unlzma - -ln /bin/ps -ln /bin/hostname -ln /usr/bin/cmp -ln $sed/bin/sed -ln /usr/bin/tar tar -ln $gawk/bin/gawk -ln $gawk/bin/gawk awk -ln $cpio/bin/cpio -ln $curl/bin/curl curl -ln /usr/bin/gzip -ln /usr/bin/gunzip -ln /usr/bin/tail tail # note that we are not using gtail!!! -ln /usr/bin/less less -ln $patch/bin/patch patch -ln /usr/bin/which which - -## binutils -# pkg info -l binutils | grep usr/local/bin -ln /usr/bin/addr2line -ln /usr/bin/ar -ln /usr/bin/as -ln /usr/bin/c++filt -#ln /usr/bin/dwp -#ln /usr/bin/elfedit -ln /usr/bin/gprof -ln /usr/bin/ld -#ln /usr/bin/ld.bfd -#ln /usr/bin/ld.gold -ln /usr/bin/nm -ln /usr/bin/objcopy -ln /usr/bin/objdump -ln /usr/bin/ranlib -ln /usr/bin/readelf -ln /usr/bin/size -ln /usr/bin/strings -ln /usr/bin/strip - -ln /usr/bin/cc -ln /usr/bin/cpp -ln /usr/bin/c++ - -#pkg info -l llvm37 | grep usr/local/bin diff --git a/pkgs/stdenv/freebsd/trivial-builder.nix b/pkgs/stdenv/freebsd/trivial-builder.nix deleted file mode 100644 index 6426508..0000000 --- a/pkgs/stdenv/freebsd/trivial-builder.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ system, name, ver, url, sha256, configureArgs ? [], executable ? false } : - -let fetchURL = import ; - -in derivation { - inherit system configureArgs; - name = "trivial-bootstrap-${name}-${ver}"; - dname = "${name}-${ver}"; - src = fetchURL { - inherit url sha256 executable; - }; - builder = ./trivial-builder.sh; -} diff --git a/pkgs/stdenv/freebsd/trivial-builder.sh b/pkgs/stdenv/freebsd/trivial-builder.sh deleted file mode 100755 index ac5601b..0000000 --- a/pkgs/stdenv/freebsd/trivial-builder.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -export PATH=/bin:/sbin:/usr/bin:/usr/sbin - -tar -zxvf $src -cd $dname -mkdir -p $out/bin -./configure --prefix=$out $configureArgs -make -make install diff --git a/pkgs/stdenv/generic/builder.sh b/pkgs/stdenv/generic/builder.sh deleted file mode 100644 index 2d8d784..0000000 --- a/pkgs/stdenv/generic/builder.sh +++ /dev/null @@ -1,23 +0,0 @@ -export PATH= -for i in $initialPath; do - if [ "$i" = / ]; then i=; fi - PATH=$PATH${PATH:+:}$i/bin -done - -mkdir $out - -{ - echo "export SHELL=$shell" - echo "initialPath=\"$initialPath\"" - echo "defaultNativeBuildInputs=\"$defaultNativeBuildInputs\"" - echo "defaultBuildInputs=\"$defaultBuildInputs\"" - echo "$preHook" - cat "$setup" -} > "$out/setup" - -# Allow the user to install stdenv using nix-env and get the packages -# in stdenv. -mkdir $out/nix-support -if [ "$propagatedUserEnvPkgs" ]; then - printf '%s ' $propagatedUserEnvPkgs > $out/nix-support/propagated-user-env-packages -fi diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix deleted file mode 100644 index a61f3e1..0000000 --- a/pkgs/stdenv/generic/check-meta.nix +++ /dev/null @@ -1,520 +0,0 @@ -# Checks derivation meta and attrs for problems (like brokenness, -# licenses, etc). - -{ lib, config, hostPlatform }: - -let - inherit (lib) - all - attrNames - concatMapStrings - concatMapStringsSep - concatStrings - findFirst - isDerivation - length - concatMap - mutuallyExclusive - optional - optionalAttrs - optionalString - optionals - isAttrs - isString - mapAttrs - ; - - inherit (lib.lists) - any - toList - isList - elem - ; - - inherit (lib.meta) - availableOn - ; - - inherit (lib.generators) - toPretty - ; - - # If we're in hydra, we can dispense with the more verbose error - # messages and make problems easier to spot. - inHydra = config.inHydra or false; - # Allow the user to opt-into additional warnings, e.g. - # import { config = { showDerivationWarnings = [ "maintainerless" ]; }; } - showWarnings = config.showDerivationWarnings; - - getName = attrs: attrs.name or ("${attrs.pname or "«name-missing»"}-${attrs.version or "«version-missing»"}"); - - 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; - - allowlist = config.allowlistedLicenses or config.whitelistedLicenses or []; - blocklist = config.blocklistedLicenses or config.blacklistedLicenses or []; - - areLicenseListsValid = - if mutuallyExclusive allowlist blocklist then - true - else - throw "allowlistedLicenses and blocklistedLicenses are not mutually exclusive."; - - 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 - ); - - hasAllowlistedLicense = attrs: hasListedLicense allowlist attrs; - - hasBlocklistedLicense = attrs: hasListedLicense blocklist attrs; - - allowBroken = config.allowBroken - || builtins.getEnv "NIXPKGS_ALLOW_BROKEN" == "1"; - - allowUnsupportedSystem = config.allowUnsupportedSystem - || builtins.getEnv "NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM" == "1"; - - 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; - - hasUnfreeLicense = attrs: hasLicense attrs && isUnfree attrs.meta.license; - - hasNoMaintainers = attrs: - attrs ? meta.maintainers && (length attrs.meta.maintainers) == 0; - - isMarkedBroken = attrs: attrs.meta.broken or false; - - hasUnsupportedPlatform = - pkg: !(availableOn hostPlatform pkg); - - isMarkedInsecure = attrs: (attrs.meta.knownVulnerabilities or []) != []; - - # Alow granular checks to allow only some unfree packages - # Example: - # {pkgs, ...}: - # { - # allowUnfree = false; - # allowUnfreePredicate = (x: pkgs.lib.hasPrefix "vscode" x.name); - # } - allowUnfreePredicate = config.allowUnfreePredicate or (x: false); - - # 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; - - 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"; - - - isNonSource = sourceTypes: any (t: !t.isSource) sourceTypes; - - hasNonSourceProvenance = attrs: - (attrs ? meta.sourceProvenance) && - isNonSource attrs.meta.sourceProvenance; - - # Allow granular checks to allow only some non-source-built packages - # Example: - # { pkgs, ... }: - # { - # allowNonSource = false; - # allowNonSourcePredicate = with pkgs.lib.lists; pkg: !(any (p: !p.isSource && p != lib.sourceTypes.binaryFirmware) pkg.meta.sourceProvenance); - # } - allowNonSourcePredicate = config.allowNonSourcePredicate or (x: false); - - # 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; - - showLicenseOrSourceType = value: toString (map (v: v.shortName or "unknown") (toList value)); - showLicense = showLicenseOrSourceType; - showSourceType = showLicenseOrSourceType; - - pos_str = meta: meta.position or "«unknown-file»"; - - remediation = { - unfree = remediate_allowlist "Unfree" (remediate_predicate "allowUnfreePredicate"); - non-source = remediate_allowlist "NonSource" (remediate_predicate "allowNonSourcePredicate"); - broken = remediate_allowlist "Broken" (x: ""); - unsupported = remediate_allowlist "UnsupportedSystem" (x: ""); - blocklisted = x: ""; - insecure = remediate_insecure; - broken-outputs = remediateOutputsToInstall; - 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: - '' - - 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 = " - 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. - - $ 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: - '' - - Known issues: - '' + (concatStrings (map (issue: " - ${issue}\n") attrs.meta.knownVulnerabilities)) + '' - - 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: - - $ 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}" - ]; - } - - 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}" - ]; - } - - ''; - - remediateOutputsToInstall = attrs: let - expectedOutputs = attrs.meta.outputsToInstall or []; - actualOutputs = attrs.outputs or [ "out" ]; - 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} - - and is missing the following ouputs: - - ${concatStrings (builtins.map (output: " - ${output}\n") missingOutputs)} - ''; - - 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. - - '' + (builtins.getAttr reason remediation) attrs; - - handler = if config ? handleEvalIssue - then config.handleEvalIssue reason - else throw; - in handler msg; - - 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}"); - isEnabled = findFirst (x: x == reason) null showWarnings; - 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 [ - (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; - }; - - 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 - }" ] - 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)); - - 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; - - # Check if a derivation is valid, that is whether it passes checks for - # e.g brokenness or license. - # - # Return { valid: "yes", "warn" or "no" } and additionally - # { reason: String; errormsg: String } if it is not valid, where - # reason is one of "unfree", "blocklisted", "broken", "insecure", ... - # !!! reason strings are hardcoded into OfBorg, make sure to keep them in sync - # Along with a boolean flag for each reason - checkValidity = - let - validYes = { - valid = "yes"; - handled = true; - }; - in - attrs: - # 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 {}); - in - 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"; } - - # --- 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}’)"; } - else if hasBlocklistedLicense attrs then - { 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}’)"; } - else if !allowBroken && attrs.meta.broken or false then - { 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 [])} - ''; - } - else if !(hasAllowedInsecure attrs) then - { 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"; } - # ----- - 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 - # passed to the builder and is not a dependency. But since we - # include it in the result, it *is* available to nix-env for queries. - # Example: - # meta = checkMeta.commonMeta { inherit validity attrs pos references; }; - # validity = checkMeta.assertValidity { inherit meta attrs; }; - commonMeta = { validity, attrs, pos ? null, references ? [ ] }: - let - outputs = attrs.outputs or [ "out" ]; - hasOutput = out: builtins.elem out outputs; - in - { - # `name` derivation attribute includes cross-compilation cruft, - # is under assert, and is sanitized. - # Let's have a clean always accessible version here. - name = attrs.name or "${attrs.pname}-${attrs.version}"; - - # If the packager hasn't specified `outputsToInstall`, choose a default, - # which is the name of `p.bin or p.out or p` along with `p.man` when - # present. - # - # If the packager has specified it, it will be overridden below in - # `// meta`. - # - # 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"; - } - // attrs.meta or { } - # Fill `meta.position` to identify the source location of the package. - // 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); - }; - - 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 { inherit assertValidity commonMeta; } diff --git a/pkgs/stdenv/generic/common-path.nix b/pkgs/stdenv/generic/common-path.nix deleted file mode 100644 index 8c1acfb..0000000 --- a/pkgs/stdenv/generic/common-path.nix +++ /dev/null @@ -1,23 +0,0 @@ -{pkgs}: [ - pkgs.coreutils - pkgs.findutils - pkgs.diffutils - pkgs.gnused - pkgs.gnugrep - pkgs.gawk - pkgs.gnutar - pkgs.gzip - pkgs.bzip2.bin - pkgs.gnumake - pkgs.bash - pkgs.patch - pkgs.xz.bin - - # The `file` command is added here because an enormous number of - # packages have a vendored dependency upon `file` in their - # `./configure` script, due to libtool<=2.4.6, or due to - # libtool>=2.4.7 in which the package author decided to set FILECMD - # when running libtoolize. In fact, file-5.4.6 *depends on itself* - # and tries to invoke `file` from its own ./configure script. - pkgs.file -] diff --git a/pkgs/stdenv/generic/default-builder.sh b/pkgs/stdenv/generic/default-builder.sh deleted file mode 100644 index d49fb8a..0000000 --- a/pkgs/stdenv/generic/default-builder.sh +++ /dev/null @@ -1,4 +0,0 @@ -if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi - -source $stdenv/setup -genericBuild diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix deleted file mode 100644 index 2cda43d..0000000 --- a/pkgs/stdenv/generic/default.nix +++ /dev/null @@ -1,183 +0,0 @@ -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 ]; - - defaultBuildInputs = extraBuildInputs; - - stdenv = (stdenv-overridable argsStdenv); - - # The stdenv that we are producing. - in - derivation ( - 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; - - builder = shell; - - args = ["-e" ./builder.sh]; - - 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 - # '' - ; - - inherit initialPath shell - defaultNativeBuildInputs defaultBuildInputs; - } - // lib.optionalAttrs buildPlatform.isDarwin { - __sandboxProfile = stdenvSandboxProfile; - __impureHostDeps = __stdenvImpureHostDeps; - }) - - // { - - meta = { - description = "The default build environment for Unix packages in Nixpkgs"; - platforms = lib.platforms.all; - }; - - inherit buildPlatform hostPlatform targetPlatform; - - 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; - - # Override `system` so that packages can get the system of the host - # platform through `stdenv.system`. `system` is originally set to the - # build platform within the derivation above so that Nix directs the build - # to correct type of machine. - inherit (hostPlatform) system; - - mkDerivation = mkDerivationFromStdenv stdenv; - - inherit fetchurlBoot; - - inherit overrides; - - inherit cc hasCC; - - # Convenience for doing some very basic shell syntax checking by parsing a script - # without running any commands. Because this will also skip `shopt -s extglob` - # commands and extglob affects the Bash parser, we enable extglob always. - shellDryRun = "${stdenv.shell} -n -O extglob"; - - tests = { - succeedOnFailure = import ../tests/succeedOnFailure.nix { inherit stdenv; }; - }; - passthru.tests = lib.warn "Use `stdenv.tests` instead. `passthru` is a `mkDerivation` detail." stdenv.tests; - } - - # Propagate any extra attributes. For instance, we use this to - # "lift" packages like curl from the final stdenv for Linux to - # 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 diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix deleted file mode 100644 index 1214d01..0000000 --- a/pkgs/stdenv/generic/make-derivation.nix +++ /dev/null @@ -1,639 +0,0 @@ -{ lib, config }: - -stdenv: - -let - # Lib attributes are inherited to the lexical scope for performance reasons. - inherit (lib) - any - assertMsg - attrNames - boolToString - concatLists - concatMap - concatMapStrings - concatStringsSep - elem - elemAt - extendDerivation - filter - findFirst - getDev - head - imap1 - isAttrs - isBool - isDerivation - isInt - isList - isString - mapAttrs - mapNullable - optional - optionalAttrs - optionalString - optionals - remove - 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; - - checkMeta = import ./check-meta.nix { - inherit lib config; - # Nix itself uses the `system` field of a derivation to decide where - # to build it. This is a bit confusing for cross compilation. - inherit (stdenv) hostPlatform; - }; - - # Based off lib.makeExtensible, with modifications: - 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 - # separate lines, because Nix would only show the last line of the comment. - - # An infinite recursion here can be caused by having the attribute names of expression `e` in `.overrideAttrs(finalAttrs: previousAttrs: e)` depend on `finalAttrs`. Only the attribute values of `e` can depend on `finalAttrs`. - args = rattrs (args // { inherit finalPackage overrideAttrs; }); - # ^^^^ - - overrideAttrs = f0: - let - f = self: super: - # Convert f0 to an overlay. Legacy is: - # overrideAttrs (super: {}) - # We want to introduce self. We follow the convention of overlays: - # overrideAttrs (self: super: {}) - # 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; - 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; - in - makeDerivationExtensible - (self: let super = rattrs self; in super // (if builtins.isFunction f0 || f0?__functor then f self super else f0)); - - finalPackage = - mkDerivationSimple overrideAttrs args; - - 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; - - knownHardeningFlags = [ - "bindnow" - "format" - "fortify" - "fortify3" - "pic" - "pie" - "relro" - "stackprotector" - "strictoverflow" - "trivialautovarinit" - "zerocallusedregs" - ]; - - removedOrReplacedAttrNames = [ - "checkInputs" "installCheckInputs" - "nativeCheckInputs" "nativeInstallCheckInputs" - "__contentAddressed" - "__darwinAllowLocalNetworking" - "__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; - - 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 -{ - -# 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 - -# 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 - -, depsTargetTarget ? [] # 1 -> 1 -, depsTargetTargetPropagated ? [] # 1 -> 1 - -, 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" ] - -# 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 always true and remove / resolve #178468 - strictDeps ? if config.strictDepsByDefault then true else stdenv.hostPlatform != stdenv.buildPlatform - -, enableParallelBuilding ? config.enableParallelBuildingByDefault - -, separateDebugInfo ? false -, outputs ? [ "out" ] -, __darwinAllowLocalNetworking ? false -, __impureHostDeps ? [] -, __propagatedImpureHostDeps ? [] -, sandboxProfile ? "" -, propagatedSandboxProfile ? "" - -, hardeningEnable ? [] -, hardeningDisable ? [] - -, patches ? [] - -, __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 - -, ... } @ 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 = - 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"; - 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; - - # 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); - 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 -{ - inherit mkDerivation; -} diff --git a/pkgs/stdenv/generic/meta-types.nix b/pkgs/stdenv/generic/meta-types.nix deleted file mode 100644 index ddbd1da..0000000 --- a/pkgs/stdenv/generic/meta-types.nix +++ /dev/null @@ -1,76 +0,0 @@ -{ lib }: -# Simple internal type checks for meta. -# This file is not a stable interface and may be changed arbitrarily. -# -# 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; - isTypeDef = t: isAttrs t && t ? name && isString t.name && t ? verify && isFunction t.verify; - -in -lib.fix (self: { - string = { - name = "string"; - verify = isString; - }; - str = self.string; # Type alias - - any = { - name = "any"; - verify = _: true; - }; - - int = { - name = "int"; - verify = isInt; - }; - - float = { - name = "float"; - verify = isFloat; - }; - - bool = { - name = "bool"; - verify = isBool; - }; - - attrs = { - name = "attrs"; - verify = isAttrs; - }; - - list = { - name = "list"; - 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); - }; - - 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; - }; -}) diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh deleted file mode 100644 index 45c73d7..0000000 --- a/pkgs/stdenv/generic/setup.sh +++ /dev/null @@ -1,1634 +0,0 @@ -# shellcheck shell=bash -# shellcheck disable=1090,2154,2123,2034,2178,2048,2068,1091 -__nixpkgs_setup_set_original=$- -set -eu -set -o pipefail - -if [[ -n "${BASH_VERSINFO-}" && "${BASH_VERSINFO-}" -lt 4 ]]; then - echo "Detected Bash version that isn't supported by Nixpkgs (${BASH_VERSION})" - echo "Please install Bash 4 or greater to continue." - exit 1 -fi - -shopt -s inherit_errexit - -if (( "${NIX_DEBUG:-0}" >= 6 )); then - set -x -fi - -if [ -f .attrs.sh ] || [[ -n "${NIX_ATTRS_JSON_FILE:-}" ]]; then - __structuredAttrs=1 - echo "structuredAttrs is enabled" - - for outputName in "${!outputs[@]}"; do - # ex: out=/nix/store/... - export "$outputName=${outputs[$outputName]}" - done - - # $NIX_ATTRS_JSON_FILE pointed to the wrong location in sandbox - # https://github.com/NixOS/nix/issues/6736; please keep around until the - # fix reaches *every patch version* that's >= lib/minver.nix - if ! [[ -e "${NIX_ATTRS_JSON_FILE:-}" ]]; then - export NIX_ATTRS_JSON_FILE="$NIX_BUILD_TOP/.attrs.json" - fi - if ! [[ -e "${NIX_ATTRS_SH_FILE:-}" ]]; then - export NIX_ATTRS_SH_FILE="$NIX_BUILD_TOP/.attrs.sh" - fi -else - __structuredAttrs= - : "${outputs:=out}" -fi - -getAllOutputNames() { - if [ -n "$__structuredAttrs" ]; then - echo "${!outputs[*]}" - else - echo "$outputs" - fi -} - -###################################################################### -# Hook handling. - - -# Run all hooks with the specified name in the order in which they -# were added, stopping if any fails (returns a non-zero exit -# code). The hooks for are the shell function or variable -# , and the values of the shell array ‘Hooks’. -runHook() { - local hookName="$1" - shift - local hooksSlice="${hookName%Hook}Hooks[@]" - - local hook - # Hack around old bash being bad and thinking empty arrays are - # undefined. - for hook in "_callImplicitHook 0 $hookName" ${!hooksSlice+"${!hooksSlice}"}; do - _eval "$hook" "$@" - done - - return 0 -} - - -# Run all hooks with the specified name, until one succeeds (returns a -# zero exit code). If none succeed, return a non-zero exit code. -runOneHook() { - local hookName="$1" - shift - local hooksSlice="${hookName%Hook}Hooks[@]" - - local hook ret=1 - # Hack around old bash like above - for hook in "_callImplicitHook 1 $hookName" ${!hooksSlice+"${!hooksSlice}"}; do - if _eval "$hook" "$@"; then - ret=0 - break - fi - done - - return "$ret" -} - - -# Run the named hook, either by calling the function with that name or -# by evaluating the variable with that name. This allows convenient -# setting of hooks both from Nix expressions (as attributes / -# environment variables) and from shell scripts (as functions). If you -# want to allow multiple hooks, use runHook instead. -_callImplicitHook() { - local def="$1" - local hookName="$2" - if declare -F "$hookName" > /dev/null; then - "$hookName" - elif type -p "$hookName" > /dev/null; then - source "$hookName" - elif [ -n "${!hookName:-}" ]; then - eval "${!hookName}" - else - return "$def" - fi - # `_eval` expects hook to need nounset disable and leave it - # disabled anyways, so Ok to to delegate. The alternative of a - # return trap is no good because it would affect nested returns. -} - - -# A function wrapper around ‘eval’ that ensures that ‘return’ inside -# hooks exits the hook, not the caller. Also will only pass args if -# command can take them -_eval() { - if declare -F "$1" > /dev/null 2>&1; then - "$@" # including args - else - eval "$1" - fi -} - - -###################################################################### -# Logging. - -# Prints a command such that all word splits are unambiguous. We need -# to split the command in three parts because the middle format string -# will be, and must be, repeated for each argument. The first argument -# goes before the ':' and is just for convenience. -echoCmd() { - printf "%s:" "$1" - shift - printf ' %q' "$@" - echo -} - - -###################################################################### -# Error handling. - -exitHandler() { - exitCode="$?" - set +e - - if [ -n "${showBuildStats:-}" ]; then - read -r -d '' -a buildTimes < <(times) - echo "build times:" - echo "user time for the shell ${buildTimes[0]}" - echo "system time for the shell ${buildTimes[1]}" - echo "user time for all child processes ${buildTimes[2]}" - echo "system time for all child processes ${buildTimes[3]}" - fi - - if (( "$exitCode" != 0 )); then - runHook failureHook - - # If the builder had a non-zero exit code and - # $succeedOnFailure is set, create the file - # ‘$out/nix-support/failed’ to signal failure, and exit - # normally. Otherwise, return the original exit code. - if [ -n "${succeedOnFailure:-}" ]; then - echo "build failed with exit code $exitCode (ignored)" - mkdir -p "$out/nix-support" - printf "%s" "$exitCode" > "$out/nix-support/failed" - exit 0 - fi - - else - runHook exitHook - fi - - return "$exitCode" -} - -trap "exitHandler" EXIT - - -###################################################################### -# Helper functions. - - -addToSearchPathWithCustomDelimiter() { - local delimiter="$1" - local varName="$2" - local dir="$3" - if [[ -d "$dir" && "${!varName:+${delimiter}${!varName}${delimiter}}" \ - != *"${delimiter}${dir}${delimiter}"* ]]; then - export "${varName}=${!varName:+${!varName}${delimiter}}${dir}" - fi -} - -addToSearchPath() { - addToSearchPathWithCustomDelimiter ":" "$@" -} - -# Prepend elements to variable "$1", which may come from an attr. -# -# This is useful in generic setup code, which must (for now) support -# both derivations with and without __structuredAttrs true, so the -# variable may be an array or a space-separated string. -# -# Expressions for individual packages should simply switch to array -# syntax when they switch to setting __structuredAttrs = true. -prependToVar() { - local -n nameref="$1" - local useArray type - - if [ -n "$__structuredAttrs" ]; then - useArray=true - else - useArray=false - fi - - # check if variable already exist and if it does then do extra checks - if declare -p "$1" 2> /dev/null | grep -q '^'; then - type="$(declare -p "$1")" - if [[ "$type" =~ "declare -A" ]]; then - echo "prependToVar(): ERROR: trying to use prependToVar on an associative array." >&2 - return 1 - elif [[ "$type" =~ "declare -a" ]]; then - useArray=true - else - useArray=false - fi - fi - - shift - - if $useArray; then - nameref=( "$@" ${nameref+"${nameref[@]}"} ) - else - nameref="$* ${nameref-}" - fi -} - -# Same as above -appendToVar() { - local -n nameref="$1" - local useArray type - - if [ -n "$__structuredAttrs" ]; then - useArray=true - else - useArray=false - fi - - # check if variable already exist and if it does then do extra checks - if declare -p "$1" 2> /dev/null | grep -q '^'; then - type="$(declare -p "$1")" - if [[ "$type" =~ "declare -A" ]]; then - echo "appendToVar(): ERROR: trying to use appendToVar on an associative array, use variable+=([\"X\"]=\"Y\") instead." >&2 - return 1 - elif [[ "$type" =~ "declare -a" ]]; then - useArray=true - else - useArray=false - fi - fi - - shift - - if $useArray; then - nameref=( ${nameref+"${nameref[@]}"} "$@" ) - else - nameref="${nameref-} $*" - fi -} - -# Accumulate into `flagsArray` the flags from the named variables. -# -# If __structuredAttrs, the variables are all treated as arrays -# and simply concatenated onto `flagsArray`. -# -# If not __structuredAttrs, then: -# * Each variable is treated as a string, and split on whitespace; -# * except variables whose names end in "Array", which are treated -# as arrays. -_accumFlagsArray() { - local name - if [ -n "$__structuredAttrs" ]; then - for name in "$@"; do - local -n nameref="$name" - flagsArray+=( ${nameref+"${nameref[@]}"} ) - done - else - for name in "$@"; do - local -n nameref="$name" - case "$name" in - *Array) - flagsArray+=( ${nameref+"${nameref[@]}"} ) ;; - *) - flagsArray+=( ${nameref-} ) ;; - esac - done - fi - -} - -# Add $1/lib* into rpaths. -# The function is used in multiple-outputs.sh hook, -# so it is defined here but tried after the hook. -_addRpathPrefix() { - if [ "${NIX_NO_SELF_RPATH:-0}" != 1 ]; then - export NIX_LDFLAGS="-rpath $1/lib ${NIX_LDFLAGS-}" - fi -} - -# Return success if the specified file is an ELF object. -isELF() { - local fn="$1" - local fd - local magic - exec {fd}< "$fn" - read -r -n 4 -u "$fd" magic - exec {fd}<&- - if [ "$magic" = $'\177ELF' ]; then return 0; else return 1; fi -} - -# Return success if the specified file is a Mach-O object. -isMachO() { - local fn="$1" - local fd - local magic - exec {fd}< "$fn" - read -r -n 4 -u "$fd" magic - exec {fd}<&- - - # nix uses 'declare -F' in get-env.sh to retrieve the loaded functions. - # If we use the $'string' syntax instead of 'echo -ne' then 'declare' will print the raw characters and break nix. - # See https://github.com/NixOS/nixpkgs/pull/138334 and https://github.com/NixOS/nix/issues/5262. - - # https://opensource.apple.com/source/lldb/lldb-310.2.36/examples/python/mach_o.py.auto.html - if [[ "$magic" = $(echo -ne "\xfe\xed\xfa\xcf") || "$magic" = $(echo -ne "\xcf\xfa\xed\xfe") ]]; then - # MH_MAGIC_64 || MH_CIGAM_64 - return 0; - elif [[ "$magic" = $(echo -ne "\xfe\xed\xfa\xce") || "$magic" = $(echo -ne "\xce\xfa\xed\xfe") ]]; then - # MH_MAGIC || MH_CIGAM - return 0; - elif [[ "$magic" = $(echo -ne "\xca\xfe\xba\xbe") || "$magic" = $(echo -ne "\xbe\xba\xfe\xca") ]]; then - # FAT_MAGIC || FAT_CIGAM - return 0; - else - return 1; - fi -} - -# Return success if the specified file is a script (i.e. starts with -# "#!"). -isScript() { - local fn="$1" - local fd - local magic - exec {fd}< "$fn" - read -r -n 2 -u "$fd" magic - exec {fd}<&- - if [[ "$magic" =~ \#! ]]; then return 0; else return 1; fi -} - -# printf unfortunately will print a trailing newline regardless -printLines() { - (( "$#" > 0 )) || return 0 - printf '%s\n' "$@" -} - -printWords() { - (( "$#" > 0 )) || return 0 - printf '%s ' "$@" -} - -###################################################################### -# Initialisation. - -# If using structured attributes, export variables from `env` to the environment. -# When not using structured attributes, those variables are already exported. -if [[ -n $__structuredAttrs ]]; then - for envVar in "${!env[@]}"; do - declare -x "${envVar}=${env[${envVar}]}" - done -fi - - -# Set a fallback default value for SOURCE_DATE_EPOCH, used by some build tools -# to provide a deterministic substitute for the "current" time. Note that -# 315532800 = 1980-01-01 12:00:00. We use this date because python's wheel -# implementation uses zip archive and zip does not support dates going back to -# 1970. -export SOURCE_DATE_EPOCH -: "${SOURCE_DATE_EPOCH:=315532800}" - - -# Wildcard expansions that don't match should expand to an empty list. -# This ensures that, for instance, "for i in *; do ...; done" does the -# right thing. -shopt -s nullglob - - -# Set up the initial path. -PATH= -HOST_PATH= -for i in $initialPath; do - if [ "$i" = / ]; then i=; fi - addToSearchPath PATH "$i/bin" - - # For backward compatibility, we add initial path to HOST_PATH so - # it can be used in auto patch-shebangs. Unfortunately this will - # not work with cross compilation. - if [ -z "${strictDeps-}" ]; then - addToSearchPath HOST_PATH "$i/bin" - fi -done - -unset i - -if (( "${NIX_DEBUG:-0}" >= 1 )); then - echo "initial path: $PATH" -fi - - -# Check that the pre-hook initialised SHELL. -if [ -z "${SHELL:-}" ]; then echo "SHELL not set"; exit 1; fi -BASH="$SHELL" -export CONFIG_SHELL="$SHELL" - - -# Execute the pre-hook. -if [ -z "${shell:-}" ]; then export shell="$SHELL"; fi -runHook preHook - - -# Allow the caller to augment buildInputs (it's not always possible to -# do this before the call to setup.sh, since the PATH is empty at that -# point; here we have a basic Unix environment). -runHook addInputsHook - - -# Package accumulators - -declare -a pkgsBuildBuild pkgsBuildHost pkgsBuildTarget -declare -a pkgsHostHost pkgsHostTarget -declare -a pkgsTargetTarget - -declare -a pkgBuildAccumVars=(pkgsBuildBuild pkgsBuildHost pkgsBuildTarget) -declare -a pkgHostAccumVars=(pkgsHostHost pkgsHostTarget) -declare -a pkgTargetAccumVars=(pkgsTargetTarget) - -declare -a pkgAccumVarVars=(pkgBuildAccumVars pkgHostAccumVars pkgTargetAccumVars) - - -# Hooks - -declare -a envBuildBuildHooks envBuildHostHooks envBuildTargetHooks -declare -a envHostHostHooks envHostTargetHooks -declare -a envTargetTargetHooks - -declare -a pkgBuildHookVars=(envBuildBuildHook envBuildHostHook envBuildTargetHook) -declare -a pkgHostHookVars=(envHostHostHook envHostTargetHook) -declare -a pkgTargetHookVars=(envTargetTargetHook) - -declare -a pkgHookVarVars=(pkgBuildHookVars pkgHostHookVars pkgTargetHookVars) - -# those variables are declared here, since where and if they are used varies -declare -a preFixupHooks fixupOutputHooks preConfigureHooks postFixupHooks postUnpackHooks unpackCmdHooks - -# Add env hooks for all sorts of deps with the specified host offset. -addEnvHooks() { - local depHostOffset="$1" - shift - local pkgHookVarsSlice="${pkgHookVarVars[$depHostOffset + 1]}[@]" - local pkgHookVar - for pkgHookVar in "${!pkgHookVarsSlice}"; do - eval "${pkgHookVar}s"'+=("$@")' - done -} - - -# Propagated dep files - -declare -a propagatedBuildDepFiles=( - propagated-build-build-deps - propagated-native-build-inputs # Legacy name for back-compat - propagated-build-target-deps -) -declare -a propagatedHostDepFiles=( - propagated-host-host-deps - propagated-build-inputs # Legacy name for back-compat -) -declare -a propagatedTargetDepFiles=( - propagated-target-target-deps -) -declare -a propagatedDepFilesVars=( - propagatedBuildDepFiles - propagatedHostDepFiles - propagatedTargetDepFiles -) - -# Platform offsets: build = -1, host = 0, target = 1 -declare -a allPlatOffsets=(-1 0 1) - - -# Mutually-recursively find all build inputs. See the dependency section of the -# stdenv chapter of the Nixpkgs manual for the specification this algorithm -# implements. -findInputs() { - local -r pkg="$1" - local -r hostOffset="$2" - local -r targetOffset="$3" - - # Sanity check - (( hostOffset <= targetOffset )) || exit 1 - - local varVar="${pkgAccumVarVars[hostOffset + 1]}" - local varRef="$varVar[$((targetOffset - hostOffset))]" - local var="${!varRef}" - unset -v varVar varRef - - # 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")' - - if ! [ -e "$pkg" ]; then - echo "build input $pkg does not exist" >&2 - exit 1 - fi - - # The current package's host and target offset together - # provide a <=-preserving homomorphism from the relative - # offsets to current offset - function mapOffset() { - local -r inputOffset="$1" - local -n outputOffset="$2" - if (( inputOffset <= 0 )); then - outputOffset=$((inputOffset + hostOffset)) - else - outputOffset=$((inputOffset - 1 + targetOffset)) - fi - } - - # Host offset relative to that of the package whose immediate - # dependencies we are currently exploring. - local relHostOffset - for relHostOffset in "${allPlatOffsets[@]}"; do - # `+ 1` so we start at 0 for valid index - local files="${propagatedDepFilesVars[relHostOffset + 1]}" - - # Host offset relative to the package currently being - # built---as absolute an offset as will be used. - local hostOffsetNext - mapOffset "$relHostOffset" hostOffsetNext - - # Ensure we're in bounds relative to the package currently - # being built. - (( -1 <= hostOffsetNext && hostOffsetNext <= 1 )) || continue - - # Target offset relative to the *host* offset of the package - # whose immediate dependencies we are currently exploring. - local relTargetOffset - for relTargetOffset in "${allPlatOffsets[@]}"; do - (( "$relHostOffset" <= "$relTargetOffset" )) || continue - - local fileRef="${files}[$relTargetOffset - $relHostOffset]" - local file="${!fileRef}" - unset -v fileRef - - # Target offset relative to the package currently being - # built. - local targetOffsetNext - mapOffset "$relTargetOffset" targetOffsetNext - - # Once again, ensure we're in bounds relative to the - # package currently being built. - (( -1 <= hostOffsetNext && hostOffsetNext <= 1 )) || continue - - [[ -f "$pkg/nix-support/$file" ]] || continue - - local pkgNext - read -r -d '' pkgNext < "$pkg/nix-support/$file" || true - for pkgNext in $pkgNext; do - findInputs "$pkgNext" "$hostOffsetNext" "$targetOffsetNext" - done - done - done -} - -# The way we handle deps* and *Inputs works with structured attrs -# either enabled or disabled. For this it's convenient that the items -# in each list must be store paths, and therefore space-free. - -# Make sure all are at least defined as empty -: "${depsBuildBuild=}" "${depsBuildBuildPropagated=}" -: "${nativeBuildInputs=}" "${propagatedNativeBuildInputs=}" "${defaultNativeBuildInputs=}" -: "${depsBuildTarget=}" "${depsBuildTargetPropagated=}" -: "${depsHostHost=}" "${depsHostHostPropagated=}" -: "${buildInputs=}" "${propagatedBuildInputs=}" "${defaultBuildInputs=}" -: "${depsTargetTarget=}" "${depsTargetTargetPropagated=}" - -for pkg in ${depsBuildBuild[@]} ${depsBuildBuildPropagated[@]}; do - findInputs "$pkg" -1 -1 -done -for pkg in ${nativeBuildInputs[@]} ${propagatedNativeBuildInputs[@]}; do - findInputs "$pkg" -1 0 -done -for pkg in ${depsBuildTarget[@]} ${depsBuildTargetPropagated[@]}; do - findInputs "$pkg" -1 1 -done -for pkg in ${depsHostHost[@]} ${depsHostHostPropagated[@]}; do - findInputs "$pkg" 0 0 -done -for pkg in ${buildInputs[@]} ${propagatedBuildInputs[@]} ; do - findInputs "$pkg" 0 1 -done -for pkg in ${depsTargetTarget[@]} ${depsTargetTargetPropagated[@]}; do - findInputs "$pkg" 1 1 -done -# Default inputs must be processed last -for pkg in ${defaultNativeBuildInputs[@]}; do - findInputs "$pkg" -1 0 -done -for pkg in ${defaultBuildInputs[@]}; do - findInputs "$pkg" 0 1 -done - -# Add package to the future PATH and run setup hooks -activatePackage() { - local pkg="$1" - local -r hostOffset="$2" - local -r targetOffset="$3" - - # Sanity check - (( hostOffset <= targetOffset )) || exit 1 - - if [ -f "$pkg" ]; then - source "$pkg" - fi - - # Only dependencies whose host platform is guaranteed to match the - # build platform are included here. That would be `depsBuild*`, - # and legacy `nativeBuildInputs`, in general. If we aren't cross - # compiling, however, everything can be put on the PATH. To ease - # the transition, we do include everything in that case. - # - # TODO(@Ericson2314): Don't special-case native compilation - if [[ -z "${strictDeps-}" || "$hostOffset" -le -1 ]]; then - addToSearchPath _PATH "$pkg/bin" - fi - - if (( hostOffset <= -1 )); then - addToSearchPath _XDG_DATA_DIRS "$pkg/share" - fi - - if [[ "$hostOffset" -eq 0 && -d "$pkg/bin" ]]; then - addToSearchPath _HOST_PATH "$pkg/bin" - fi - - if [[ -f "$pkg/nix-support/setup-hook" ]]; then - source "$pkg/nix-support/setup-hook" - fi -} - -_activatePkgs() { - local hostOffset targetOffset - local pkg - - for hostOffset in "${allPlatOffsets[@]}"; do - local pkgsVar="${pkgAccumVarVars[hostOffset + 1]}" - for targetOffset in "${allPlatOffsets[@]}"; do - (( hostOffset <= targetOffset )) || continue - local pkgsRef="${pkgsVar}[$targetOffset - $hostOffset]" - local pkgsSlice="${!pkgsRef}[@]" - for pkg in ${!pkgsSlice+"${!pkgsSlice}"}; do - activatePackage "$pkg" "$hostOffset" "$targetOffset" - done - done - done -} - -# Run the package setup hooks and build _PATH -_activatePkgs - -# Set the relevant environment variables to point to the build inputs -# found above. -# -# These `depOffset`s, beyond indexing the arrays, also tell the env -# hook what sort of dependency (ignoring propagatedness) is being -# passed to the env hook. In a real language, we'd append a closure -# with this information to the relevant env hook array, but bash -# doesn't have closures, so it's easier to just pass this in. -_addToEnv() { - local depHostOffset depTargetOffset - local pkg - - for depHostOffset in "${allPlatOffsets[@]}"; do - local hookVar="${pkgHookVarVars[depHostOffset + 1]}" - local pkgsVar="${pkgAccumVarVars[depHostOffset + 1]}" - for depTargetOffset in "${allPlatOffsets[@]}"; do - (( depHostOffset <= depTargetOffset )) || continue - local hookRef="${hookVar}[$depTargetOffset - $depHostOffset]" - if [[ -z "${strictDeps-}" ]]; then - - # Keep track of which packages we have visited before. - local visitedPkgs="" - - # Apply environment hooks to all packages during native - # compilation to ease the transition. - # - # TODO(@Ericson2314): Don't special-case native compilation - for pkg in \ - "${pkgsBuildBuild[@]}" \ - "${pkgsBuildHost[@]}" \ - "${pkgsBuildTarget[@]}" \ - "${pkgsHostHost[@]}" \ - "${pkgsHostTarget[@]}" \ - "${pkgsTargetTarget[@]}" - do - if [[ "$visitedPkgs" = *"$pkg"* ]]; then - continue - fi - runHook "${!hookRef}" "$pkg" - visitedPkgs+=" $pkg" - done - else - local pkgsRef="${pkgsVar}[$depTargetOffset - $depHostOffset]" - local pkgsSlice="${!pkgsRef}[@]" - for pkg in ${!pkgsSlice+"${!pkgsSlice}"}; do - runHook "${!hookRef}" "$pkg" - done - fi - done - done -} - -# Run the package-specific hooks set by the setup-hook scripts. -_addToEnv - - -# Unset setup-specific declared variables -unset allPlatOffsets -unset pkgBuildAccumVars pkgHostAccumVars pkgTargetAccumVars pkgAccumVarVars -unset pkgBuildHookVars pkgHostHookVars pkgTargetHookVars pkgHookVarVars -unset propagatedDepFilesVars - - -_addRpathPrefix "$out" - - -# Set the TZ (timezone) environment variable, otherwise commands like -# `date' will complain (e.g., `Tue Mar 9 10:01:47 Local time zone must -# be set--see zic manual page 2004'). -export TZ=UTC - - -# Set the prefix. This is generally $out, but it can be overriden, -# for instance if we just want to perform a test build/install to a -# temporary location and write a build report to $out. -if [ -z "${prefix:-}" ]; then - prefix="$out"; -fi - -if [ "${useTempPrefix:-}" = 1 ]; then - prefix="$NIX_BUILD_TOP/tmp_prefix"; -fi - - -PATH="${_PATH-}${_PATH:+${PATH:+:}}$PATH" -HOST_PATH="${_HOST_PATH-}${_HOST_PATH:+${HOST_PATH:+:}}$HOST_PATH" -export XDG_DATA_DIRS="${_XDG_DATA_DIRS-}${_XDG_DATA_DIRS:+${XDG_DATA_DIRS:+:}}${XDG_DATA_DIRS-}" -if (( "${NIX_DEBUG:-0}" >= 1 )); then - echo "final path: $PATH" - echo "final host path: $HOST_PATH" - echo "final data dirs: $XDG_DATA_DIRS" -fi - -unset _PATH -unset _HOST_PATH -unset _XDG_DATA_DIRS - - -# Normalize the NIX_BUILD_CORES variable. The value might be 0, which -# means that we're supposed to try and auto-detect the number of -# available CPU cores at run-time. - -NIX_BUILD_CORES="${NIX_BUILD_CORES:-1}" -if ((NIX_BUILD_CORES <= 0)); then - guess=$(nproc 2>/dev/null || true) - ((NIX_BUILD_CORES = guess <= 0 ? 1 : guess)) -fi -export NIX_BUILD_CORES - - -# Prevent SSL libraries from using certificates in /etc/ssl, unless set explicitly. -# Leave it in impure shells for convenience. -if [[ -z "${NIX_SSL_CERT_FILE:-}" && "${IN_NIX_SHELL:-}" != "impure" ]]; then - export NIX_SSL_CERT_FILE=/no-cert-file.crt -fi -# Another variant left for compatibility. -if [[ -z "${SSL_CERT_FILE:-}" && "${IN_NIX_SHELL:-}" != "impure" ]]; then - export SSL_CERT_FILE=/no-cert-file.crt -fi - - -###################################################################### -# Textual substitution functions. - -# only log once, due to max logging limit on hydra -_substituteStream_has_warned_replace_deprecation=false - -substituteStream() { - local var=$1 - local description=$2 - shift 2 - - while (( "$#" )); do - local replace_mode="$1" - case "$1" in - --replace) - # deprecated 2023-11-22 - # this will either get removed, or switch to the behaviour of --replace-fail in the future - if ! "$_substituteStream_has_warned_replace_deprecation"; then - echo "substituteStream(): WARNING: '--replace' is deprecated, use --replace-{fail,warn,quiet}. ($description)" >&2 - _substituteStream_has_warned_replace_deprecation=true - fi - replace_mode='--replace-warn' - ;& - --replace-quiet|--replace-warn|--replace-fail) - pattern="$2" - replacement="$3" - shift 3 - local savedvar - savedvar="${!var}" - eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}' - if [ "$pattern" != "$replacement" ]; then - if [ "${!var}" == "$savedvar" ]; then - if [ "$replace_mode" == --replace-warn ]; then - printf "substituteStream(): WARNING: pattern %q doesn't match anything in %s\n" "$pattern" "$description" >&2 - elif [ "$replace_mode" == --replace-fail ]; then - printf "substituteStream(): ERROR: pattern %q doesn't match anything in %s\n" "$pattern" "$description" >&2 - return 1 - fi - fi - fi - ;; - - --subst-var) - local varName="$2" - shift 2 - # check if the used nix attribute name is a valid bash name - if ! [[ "$varName" =~ ^[a-zA-Z_][a-zA-Z0-9_]*$ ]]; then - echo "substituteStream(): ERROR: substitution variables must be valid Bash names, \"$varName\" isn't." >&2 - return 1 - fi - if [ -z ${!varName+x} ]; then - echo "substituteStream(): ERROR: variable \$$varName is unset" >&2 - return 1 - fi - pattern="@$varName@" - replacement="${!varName}" - eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}' - ;; - - --subst-var-by) - pattern="@$2@" - replacement="$3" - eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}' - shift 3 - ;; - - *) - echo "substituteStream(): ERROR: Invalid command line argument: $1" >&2 - return 1 - ;; - esac - done - - printf "%s" "${!var}" -} - -# put the content of a file in a variable -# fail loudly if provided with a binary (containing null bytes) -consumeEntire() { - # read returns non-0 on EOF, so we want read to fail - if IFS='' read -r -d '' "$1" ; then - echo "consumeEntire(): ERROR: Input null bytes, won't process" >&2 - return 1 - fi -} - -substitute() { - local input="$1" - local output="$2" - shift 2 - - if [ ! -f "$input" ]; then - echo "substitute(): ERROR: file '$input' does not exist" >&2 - return 1 - fi - - local content - consumeEntire content < "$input" - - if [ -e "$output" ]; then chmod +w "$output"; fi - substituteStream content "file '$input'" "$@" > "$output" -} - -substituteInPlace() { - local -a fileNames=() - for arg in "$@"; do - if [[ "$arg" = "--"* ]]; then - break - fi - fileNames+=("$arg") - shift - done - - for file in "${fileNames[@]}"; do - substitute "$file" "$file" "$@" - done -} - -_allFlags() { - # export some local variables for the awk below - # so some substitutions such as name don't have to be in the env attrset - # when __structuredAttrs is enabled - export system pname name version - for varName in $(awk 'BEGIN { for (v in ENVIRON) if (v ~ /^[a-z][a-zA-Z0-9_]*$/) print v }'); do - if (( "${NIX_DEBUG:-0}" >= 1 )); then - printf "@%s@ -> %q\n" "${varName}" "${!varName}" >&2 - fi - args+=("--subst-var" "$varName") - done -} - -substituteAllStream() { - local -a args=() - _allFlags - - substituteStream "$1" "$2" "${args[@]}" -} - -# Substitute all environment variables that start with a lowercase character and -# are valid Bash names. -substituteAll() { - local input="$1" - local output="$2" - - local -a args=() - _allFlags - - substitute "$input" "$output" "${args[@]}" -} - - -substituteAllInPlace() { - local fileName="$1" - shift - substituteAll "$fileName" "$fileName" "$@" -} - - -###################################################################### -# What follows is the generic builder. - - -# This function is useful for debugging broken Nix builds. It dumps -# all environment variables to a file `env-vars' in the build -# directory. If the build fails and the `-K' option is used, you can -# then go to the build directory and source in `env-vars' to reproduce -# the environment used for building. -dumpVars() { - if [ "${noDumpEnvVars:-0}" != 1 ]; then - export 2>/dev/null >| "$NIX_BUILD_TOP/env-vars" || true - fi -} - - -# Utility function: echo the base name of the given path, with the -# prefix `HASH-' removed, if present. -stripHash() { - local strippedName casematchOpt=0 - # On separate line for `set -e` - strippedName="$(basename -- "$1")" - shopt -q nocasematch && casematchOpt=1 - shopt -u nocasematch - if [[ "$strippedName" =~ ^[a-z0-9]{32}- ]]; then - echo "${strippedName:33}" - else - echo "$strippedName" - fi - if (( casematchOpt )); then shopt -s nocasematch; fi -} - - -recordPropagatedDependencies() { - # Propagate dependencies into the development output. - declare -ra flatVars=( - # Build - depsBuildBuildPropagated - propagatedNativeBuildInputs - depsBuildTargetPropagated - # Host - depsHostHostPropagated - propagatedBuildInputs - # Target - depsTargetTargetPropagated - ) - declare -ra flatFiles=( - "${propagatedBuildDepFiles[@]}" - "${propagatedHostDepFiles[@]}" - "${propagatedTargetDepFiles[@]}" - ) - - local propagatedInputsIndex - for propagatedInputsIndex in "${!flatVars[@]}"; do - local propagatedInputsSlice="${flatVars[$propagatedInputsIndex]}[@]" - local propagatedInputsFile="${flatFiles[$propagatedInputsIndex]}" - - [[ "${!propagatedInputsSlice}" ]] || continue - - mkdir -p "${!outputDev}/nix-support" - # shellcheck disable=SC2086 - printWords ${!propagatedInputsSlice} > "${!outputDev}/nix-support/$propagatedInputsFile" - done -} - - -unpackCmdHooks+=(_defaultUnpack) -_defaultUnpack() { - local fn="$1" - local destination - - if [ -d "$fn" ]; then - - destination="$(stripHash "$fn")" - - if [ -e "$destination" ]; then - echo "Cannot copy $fn to $destination: destination already exists!" - echo "Did you specify two \"srcs\" with the same \"name\"?" - return 1 - fi - - # We can't preserve hardlinks because they may have been - # introduced by store optimization, which might break things - # in the build. - cp -pr --reflink=auto -- "$fn" "$destination" - - else - - case "$fn" in - *.tar.xz | *.tar.lzma | *.txz) - # Don't rely on tar knowing about .xz. - # Additionally, we have multiple different xz binaries with different feature sets in different - # stages. The XZ_OPT env var is only used by the full "XZ utils" implementation, which supports - # the --threads (-T) flag. This allows us to enable multithreaded decompression exclusively on - # that implementation, without the use of complex bash conditionals and checks. - # Since tar does not control the decompression, we need to - # disregard the error code from the xz invocation. Otherwise, - # it can happen that tar exits earlier, causing xz to fail - # from a SIGPIPE. - (XZ_OPT="--threads=$NIX_BUILD_CORES" xz -d < "$fn"; true) | tar xf - --mode=+w --warning=no-timestamp - ;; - *.tar | *.tar.* | *.tgz | *.tbz2 | *.tbz) - # GNU tar can automatically select the decompression method - # (info "(tar) gzip"). - tar xf "$fn" --mode=+w --warning=no-timestamp - ;; - *) - return 1 - ;; - esac - - fi -} - - -unpackFile() { - curSrc="$1" - echo "unpacking source archive $curSrc" - if ! runOneHook unpackCmd "$curSrc"; then - echo "do not know how to unpack source archive $curSrc" - exit 1 - fi -} - - -unpackPhase() { - runHook preUnpack - - if [ -z "${srcs:-}" ]; then - if [ -z "${src:-}" ]; then - # shellcheck disable=SC2016 - echo 'variable $src or $srcs should point to the source' - exit 1 - fi - srcs="$src" - fi - - local -a srcsArray - if [ -n "$__structuredAttrs" ]; then - srcsArray=( "${srcs[@]}" ) - else - srcsArray=( $srcs ) - fi - - # To determine the source directory created by unpacking the - # source archives, we record the contents of the current - # directory, then look below which directory got added. Yeah, - # it's rather hacky. - local dirsBefore="" - for i in *; do - if [ -d "$i" ]; then - dirsBefore="$dirsBefore $i " - fi - done - - # Unpack all source archives. - for i in "${srcsArray[@]}"; do - unpackFile "$i" - done - - # Find the source directory. - - # set to empty if unset - : "${sourceRoot=}" - - if [ -n "${setSourceRoot:-}" ]; then - runOneHook setSourceRoot - elif [ -z "$sourceRoot" ]; then - for i in *; do - if [ -d "$i" ]; then - case $dirsBefore in - *\ $i\ *) - ;; - *) - if [ -n "$sourceRoot" ]; then - echo "unpacker produced multiple directories" - exit 1 - fi - sourceRoot="$i" - ;; - esac - fi - done - fi - - if [ -z "$sourceRoot" ]; then - echo "unpacker appears to have produced no directories" - exit 1 - fi - - echo "source root is $sourceRoot" - - # By default, add write permission to the sources. This is often - # necessary when sources have been copied from other store - # locations. - if [ "${dontMakeSourcesWritable:-0}" != 1 ]; then - chmod -R u+w -- "$sourceRoot" - fi - - runHook postUnpack -} - - -patchPhase() { - runHook prePatch - - local -a patchesArray - if [ -n "$__structuredAttrs" ]; then - patchesArray=( ${patches:+"${patches[@]}"} ) - else - patchesArray=( ${patches:-} ) - fi - - for i in "${patchesArray[@]}"; do - echo "applying patch $i" - local uncompress=cat - case "$i" in - *.gz) - uncompress="gzip -d" - ;; - *.bz2) - uncompress="bzip2 -d" - ;; - *.xz) - uncompress="xz -d" - ;; - *.lzma) - uncompress="lzma -d" - ;; - esac - - local -a flagsArray - if [ -n "$__structuredAttrs" ]; then - flagsArray=( "${patchFlags[@]:--p1}" ) - else - # shellcheck disable=SC2086 - flagsArray=( ${patchFlags:--p1} ) - fi - # "2>&1" is a hack to make patch fail if the decompressor fails (nonexistent patch, etc.) - # shellcheck disable=SC2086 - $uncompress < "$i" 2>&1 | patch "${flagsArray[@]}" - done - - runHook postPatch -} - - -fixLibtool() { - local search_path - for flag in $NIX_LDFLAGS; do - case $flag in - -L*) - search_path+=" ${flag#-L}" - ;; - esac - done - - sed -i "$1" \ - -e "s^eval \(sys_lib_search_path=\).*^\1'${search_path:-}'^" \ - -e 's^eval sys_lib_.+search_path=.*^^' -} - - -configurePhase() { - runHook preConfigure - - # set to empty if unset - : "${configureScript=}" - - if [[ -z "$configureScript" && -x ./configure ]]; then - configureScript=./configure - fi - - if [ -z "${dontFixLibtool:-}" ]; then - export lt_cv_deplibs_check_method="${lt_cv_deplibs_check_method-pass_all}" - local i - find . -iname "ltmain.sh" -print0 | while IFS='' read -r -d '' i; do - echo "fixing libtool script $i" - fixLibtool "$i" - done - - # replace `/usr/bin/file` with `file` in any `configure` - # scripts with vendored libtool code. Preserve mtimes to - # prevent some packages (e.g. libidn2) from spontaneously - # autoreconf'ing themselves - CONFIGURE_MTIME_REFERENCE=$(mktemp configure.mtime.reference.XXXXXX) - find . \ - -executable \ - -type f \ - -name configure \ - -exec grep -l 'GNU Libtool is free software; you can redistribute it and/or modify' {} \; \ - -exec touch -r {} "$CONFIGURE_MTIME_REFERENCE" \; \ - -exec sed -i s_/usr/bin/file_file_g {} \; \ - -exec touch -r "$CONFIGURE_MTIME_REFERENCE" {} \; - rm -f "$CONFIGURE_MTIME_REFERENCE" - fi - - if [[ -z "${dontAddPrefix:-}" && -n "$prefix" ]]; then - prependToVar configureFlags "${prefixKey:---prefix=}$prefix" - fi - - if [[ -f "$configureScript" ]]; then - # Add --disable-dependency-tracking to speed up some builds. - if [ -z "${dontAddDisableDepTrack:-}" ]; then - if grep -q dependency-tracking "$configureScript"; then - prependToVar configureFlags --disable-dependency-tracking - fi - fi - - # By default, disable static builds. - if [ -z "${dontDisableStatic:-}" ]; then - if grep -q enable-static "$configureScript"; then - prependToVar configureFlags --disable-static - fi - fi - - if [ -z "${dontPatchShebangsInConfigure:-}" ]; then - patchShebangs --build "$configureScript" - fi - fi - - if [ -n "$configureScript" ]; then - local -a flagsArray - _accumFlagsArray configureFlags configureFlagsArray - - echoCmd 'configure flags' "${flagsArray[@]}" - # shellcheck disable=SC2086 - $configureScript "${flagsArray[@]}" - unset flagsArray - else - echo "no configure script, doing nothing" - fi - - runHook postConfigure -} - - -buildPhase() { - runHook preBuild - - if [[ -z "${makeFlags-}" && -z "${makefile:-}" && ! ( -e Makefile || -e makefile || -e GNUmakefile ) ]]; then - echo "no Makefile or custom buildPhase, doing nothing" - else - foundMakefile=1 - - # shellcheck disable=SC2086 - local flagsArray=( - ${enableParallelBuilding:+-j${NIX_BUILD_CORES}} - SHELL=$SHELL - ) - _accumFlagsArray makeFlags makeFlagsArray buildFlags buildFlagsArray - - echoCmd 'build flags' "${flagsArray[@]}" - make ${makefile:+-f $makefile} "${flagsArray[@]}" - unset flagsArray - fi - - runHook postBuild -} - - -checkPhase() { - runHook preCheck - - if [[ -z "${foundMakefile:-}" ]]; then - echo "no Makefile or custom checkPhase, doing nothing" - runHook postCheck - return - fi - - if [[ -z "${checkTarget:-}" ]]; then - #TODO(@oxij): should flagsArray influence make -n? - if make -n ${makefile:+-f $makefile} check >/dev/null 2>&1; then - checkTarget=check - elif make -n ${makefile:+-f $makefile} test >/dev/null 2>&1; then - checkTarget=test - fi - fi - - if [[ -z "${checkTarget:-}" ]]; then - echo "no check/test target in ${makefile:-Makefile}, doing nothing" - else - # Old bash empty array hack - # shellcheck disable=SC2086 - local flagsArray=( - ${enableParallelChecking:+-j${NIX_BUILD_CORES}} - SHELL=$SHELL - ) - - _accumFlagsArray makeFlags makeFlagsArray - if [ -n "$__structuredAttrs" ]; then - flagsArray+=( "${checkFlags[@]:-VERBOSE=y}" ) - else - flagsArray+=( ${checkFlags:-VERBOSE=y} ) - fi - _accumFlagsArray checkFlagsArray - flagsArray+=( ${checkTarget} ) - - echoCmd 'check flags' "${flagsArray[@]}" - make ${makefile:+-f $makefile} "${flagsArray[@]}" - - unset flagsArray - fi - - runHook postCheck -} - - -installPhase() { - runHook preInstall - - # Dont reuse 'foundMakefile' set in buildPhase, a makefile may have been created in buildPhase - if [[ -z "${makeFlags-}" && -z "${makefile:-}" && ! ( -e Makefile || -e makefile || -e GNUmakefile ) ]]; then - echo "no Makefile or custom installPhase, doing nothing" - runHook postInstall - return - else - foundMakefile=1 - fi - - if [ -n "$prefix" ]; then - mkdir -p "$prefix" - fi - - # shellcheck disable=SC2086 - local flagsArray=( - ${enableParallelInstalling:+-j${NIX_BUILD_CORES}} - SHELL=$SHELL - ) - _accumFlagsArray makeFlags makeFlagsArray installFlags installFlagsArray - if [ -n "$__structuredAttrs" ]; then - flagsArray+=( "${installTargets[@]:-install}" ) - else - flagsArray+=( ${installTargets:-install} ) - fi - - echoCmd 'install flags' "${flagsArray[@]}" - make ${makefile:+-f $makefile} "${flagsArray[@]}" - unset flagsArray - - runHook postInstall -} - - -# The fixup phase performs generic, package-independent stuff, like -# stripping binaries, running patchelf and setting -# propagated-build-inputs. -fixupPhase() { - # Make sure everything is writable so "strip" et al. work. - local output - for output in $(getAllOutputNames); do - # for set*id bits see #300635 - if [ -e "${!output}" ]; then chmod -R u+w,u-s,g-s "${!output}"; fi - done - - runHook preFixup - - # Apply fixup to each output. - local output - for output in $(getAllOutputNames); do - prefix="${!output}" runHook fixupOutput - done - - - # record propagated dependencies & setup hook into the development output. - recordPropagatedDependencies - - if [ -n "${setupHook:-}" ]; then - mkdir -p "${!outputDev}/nix-support" - substituteAll "$setupHook" "${!outputDev}/nix-support/setup-hook" - fi - - # TODO(@Ericson2314): Remove after https://github.com/NixOS/nixpkgs/pull/31414 - if [ -n "${setupHooks:-}" ]; then - mkdir -p "${!outputDev}/nix-support" - local hook - # have to use ${setupHooks[@]} without quotes because it needs to support setupHooks being a array or a whitespace separated string - # # values of setupHooks won't have spaces so it won't cause problems - # shellcheck disable=2068 - for hook in ${setupHooks[@]}; do - local content - consumeEntire content < "$hook" - substituteAllStream content "file '$hook'" >> "${!outputDev}/nix-support/setup-hook" - unset -v content - done - unset -v hook - fi - - # Propagate user-env packages into the output with binaries, TODO? - - if [ -n "${propagatedUserEnvPkgs:-}" ]; then - mkdir -p "${!outputBin}/nix-support" - # shellcheck disable=SC2086 - printWords $propagatedUserEnvPkgs > "${!outputBin}/nix-support/propagated-user-env-packages" - fi - - runHook postFixup -} - - -installCheckPhase() { - runHook preInstallCheck - - if [[ -z "${foundMakefile:-}" ]]; then - echo "no Makefile or custom installCheckPhase, doing nothing" - #TODO(@oxij): should flagsArray influence make -n? - elif [[ -z "${installCheckTarget:-}" ]] \ - && ! make -n ${makefile:+-f $makefile} "${installCheckTarget:-installcheck}" >/dev/null 2>&1; then - echo "no installcheck target in ${makefile:-Makefile}, doing nothing" - else - # Old bash empty array hack - # shellcheck disable=SC2086 - local flagsArray=( - ${enableParallelChecking:+-j${NIX_BUILD_CORES}} - SHELL=$SHELL - ) - - _accumFlagsArray makeFlags makeFlagsArray \ - installCheckFlags installCheckFlagsArray - flagsArray+=( ${installCheckTarget:-installcheck} ) - - echoCmd 'installcheck flags' "${flagsArray[@]}" - make ${makefile:+-f $makefile} "${flagsArray[@]}" - unset flagsArray - fi - - runHook postInstallCheck -} - - -distPhase() { - runHook preDist - - local flagsArray=() - _accumFlagsArray distFlags distFlagsArray - flagsArray+=( ${distTarget:-dist} ) - - echo 'dist flags: %q' "${flagsArray[@]}" - make ${makefile:+-f $makefile} "${flagsArray[@]}" - - if [ "${dontCopyDist:-0}" != 1 ]; then - mkdir -p "$out/tarballs" - - # Note: don't quote $tarballs, since we explicitly permit - # wildcards in there. - # shellcheck disable=SC2086 - cp -pvd ${tarballs[*]:-*.tar.gz} "$out/tarballs" - fi - - runHook postDist -} - - -showPhaseHeader() { - local phase="$1" - echo "Running phase: $phase" -} - - -showPhaseFooter() { - local phase="$1" - local startTime="$2" - local endTime="$3" - local delta=$(( endTime - startTime )) - (( delta < 30 )) && return - - local H=$((delta/3600)) - local M=$((delta%3600/60)) - local S=$((delta%60)) - echo -n "$phase completed in " - (( H > 0 )) && echo -n "$H hours " - (( M > 0 )) && echo -n "$M minutes " - echo "$S seconds" -} - - -runPhase() { - local curPhase="$*" - if [[ "$curPhase" = unpackPhase && -n "${dontUnpack:-}" ]]; then return; fi - if [[ "$curPhase" = patchPhase && -n "${dontPatch:-}" ]]; then return; fi - if [[ "$curPhase" = configurePhase && -n "${dontConfigure:-}" ]]; then return; fi - if [[ "$curPhase" = buildPhase && -n "${dontBuild:-}" ]]; then return; fi - if [[ "$curPhase" = checkPhase && -z "${doCheck:-}" ]]; then return; fi - if [[ "$curPhase" = installPhase && -n "${dontInstall:-}" ]]; then return; fi - if [[ "$curPhase" = fixupPhase && -n "${dontFixup:-}" ]]; then return; fi - if [[ "$curPhase" = installCheckPhase && -z "${doInstallCheck:-}" ]]; then return; fi - if [[ "$curPhase" = distPhase && -z "${doDist:-}" ]]; then return; fi - - if [[ -n $NIX_LOG_FD ]]; then - echo "@nix { \"action\": \"setPhase\", \"phase\": \"$curPhase\" }" >&"$NIX_LOG_FD" - fi - - showPhaseHeader "$curPhase" - dumpVars - - local startTime=$(date +"%s") - - # Evaluate the variable named $curPhase if it exists, otherwise the - # function named $curPhase. - eval "${!curPhase:-$curPhase}" - - local endTime=$(date +"%s") - - showPhaseFooter "$curPhase" "$startTime" "$endTime" - - if [ "$curPhase" = unpackPhase ]; then - # make sure we can cd into the directory - [ -n "${sourceRoot:-}" ] && chmod +x "${sourceRoot}" - - cd "${sourceRoot:-.}" - fi -} - - -genericBuild() { - # variable used by our gzip wrapper to add -n. - # gzip is in common-path.nix and is added to nix-shell but we only want to change its behaviour in nix builds. do not move to a setupHook in gzip. - export GZIP_NO_TIMESTAMPS=1 - - if [ -f "${buildCommandPath:-}" ]; then - source "$buildCommandPath" - return - fi - if [ -n "${buildCommand:-}" ]; then - eval "$buildCommand" - return - fi - - if [ -z "${phases[*]:-}" ]; then - phases="${prePhases[*]:-} unpackPhase patchPhase ${preConfigurePhases[*]:-} \ - configurePhase ${preBuildPhases[*]:-} buildPhase checkPhase \ - ${preInstallPhases[*]:-} installPhase ${preFixupPhases[*]:-} fixupPhase installCheckPhase \ - ${preDistPhases[*]:-} distPhase ${postPhases[*]:-}"; - fi - - # The use of ${phases[*]} gives the correct behavior both with and - # without structured attrs. This relies on the fact that each - # phase name is space-free, which it must be because it's the name - # of either a shell variable or a shell function. - for curPhase in ${phases[*]}; do - runPhase "$curPhase" - done -} - - -# Execute the post-hooks. -runHook postHook - - -# Execute the global user hook (defined through the Nixpkgs -# configuration option ‘stdenv.userHook’). This can be used to set -# global compiler optimisation flags, for instance. -runHook userHook - - -dumpVars - - -# Restore the original options for nix-shell -[[ $__nixpkgs_setup_set_original == *e* ]] || set +e -[[ $__nixpkgs_setup_set_original == *u* ]] || set +u -unset -v __nixpkgs_setup_set_original diff --git a/pkgs/stdenv/linux/bootstrap-files/aarch64-unknown-linux-gnu.nix b/pkgs/stdenv/linux/bootstrap-files/aarch64-unknown-linux-gnu.nix deleted file mode 100644 index 6719e7c..0000000 --- a/pkgs/stdenv/linux/bootstrap-files/aarch64-unknown-linux-gnu.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ - busybox = import { - url = "http://tarballs.nixos.org/stdenv-linux/aarch64/21ec906463ea8f11abf3f9091ddd4c3276516e58/busybox"; - executable = true; - hash = "sha256-0MuIeQlBUaeisqoFSu8y+8oB6K4ZG5Lhq8RcS9JqkFQ="; - }; - bootstrapTools = import { - url = "http://tarballs.nixos.org/stdenv-linux/aarch64/21ec906463ea8f11abf3f9091ddd4c3276516e58/bootstrap-tools.tar.xz"; - hash = "sha256-aJvtsWeuQHbb14BGZ2EiOKzjQn46h3x3duuPEawG0eE="; - }; -} diff --git a/pkgs/stdenv/linux/bootstrap-files/aarch64-unknown-linux-musl.nix b/pkgs/stdenv/linux/bootstrap-files/aarch64-unknown-linux-musl.nix deleted file mode 100644 index c1a96e6..0000000 --- a/pkgs/stdenv/linux/bootstrap-files/aarch64-unknown-linux-musl.nix +++ /dev/null @@ -1,25 +0,0 @@ -# -# Files came from this Hydra build: -# -# https://hydra.nixos.org/build/246470544 -# -# …which used nixpkgs revision dd5621df6dcb90122b50da5ec31c411a0de3e538 -# to instantiate: -# -# /nix/store/g480ass2vjmakaq03z7k2j95xnxh206a-stdenv-bootstrap-tools.drv -# -# …and then built: -# -# /nix/store/95lm0y33dayag4542s8bi83s31bw68dr-stdenv-bootstrap-tools -# -{ - busybox = import { - url = "http://tarballs.nixos.org/stdenv/aarch64-unknown-linux-musl/dd5621df6dcb90122b50da5ec31c411a0de3e538/busybox"; - sha256 = "sha256-WuOaun7U5enbOy8SuuCo6G1fbGwsO16jhy/oM8K0lAs="; - executable = true; - }; - bootstrapTools = import { - url = "http://tarballs.nixos.org/stdenv/aarch64-unknown-linux-musl/dd5621df6dcb90122b50da5ec31c411a0de3e538/bootstrap-tools.tar.xz"; - hash = "sha256-ZY9IMOmx1VOn6uoFDpdJbTnPX59TEkrVCzWNtjQ8/QE="; - }; -} diff --git a/pkgs/stdenv/linux/bootstrap-files/armv5tel-unknown-linux-gnueabi.nix b/pkgs/stdenv/linux/bootstrap-files/armv5tel-unknown-linux-gnueabi.nix deleted file mode 100644 index 0ac818b..0000000 --- a/pkgs/stdenv/linux/bootstrap-files/armv5tel-unknown-linux-gnueabi.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - # Note: do not use Hydra as a source URL. Ask a member of the - # infrastructure team to mirror the job. - busybox = import { - # from job: https://hydra.nixos.org/job/nixpkgs/cross-trunk/bootstrapTools.armv5tel.dist/latest - # from build: https://hydra.nixos.org/build/114203025 - url = "http://tarballs.nixos.org/stdenv-linux/armv5tel/0eb0ddc4dbe3cd5415c6b6e657538eb809fc3778/busybox"; - # note: the following hash is different than the above hash, due to executable = true - sha256 = "0qxp2fsvs4phbc17g9npj9bsm20ylr8myi5pivcrmxm5qqflgi8d"; - executable = true; - }; - bootstrapTools = import { - # from job: https://hydra.nixos.org/job/nixpkgs/cross-trunk/bootstrapTools.armv5tel.dist/latest - # from build: https://hydra.nixos.org/build/114203025 - url = "http://tarballs.nixos.org/stdenv-linux/armv5tel/0eb0ddc4dbe3cd5415c6b6e657538eb809fc3778/bootstrap-tools.tar.xz"; - sha256 = "28327343db5ecc7f7811449ec69280d5867fa5d1d377cab0426beb9d4e059ed6"; - }; -} diff --git a/pkgs/stdenv/linux/bootstrap-files/armv6l-unknown-linux-gnueabihf.nix b/pkgs/stdenv/linux/bootstrap-files/armv6l-unknown-linux-gnueabihf.nix deleted file mode 100644 index 8bc99c6..0000000 --- a/pkgs/stdenv/linux/bootstrap-files/armv6l-unknown-linux-gnueabihf.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - # Note: do not use Hydra as a source URL. Ask a member of the - # infrastructure team to mirror the job. - busybox = import { - # from job: https://hydra.nixos.org/job/nixpkgs/cross-trunk/bootstrapTools.armv6l.dist/latest - # from build: https://hydra.nixos.org/build/114202834 - url = "http://tarballs.nixos.org/stdenv-linux/armv6l/0eb0ddc4dbe3cd5415c6b6e657538eb809fc3778/busybox"; - # note: the following hash is different than the above hash, due to executable = true - sha256 = "1q02537cq56wlaxbz3s3kj5vmh6jbm27jhvga6b4m4jycz5sxxp6"; - executable = true; - }; - bootstrapTools = import { - # from job: https://hydra.nixos.org/job/nixpkgs/cross-trunk/bootstrapTools.armv6l.dist/latest - # from build: https://hydra.nixos.org/build/114202834 - url = "http://tarballs.nixos.org/stdenv-linux/armv6l/0eb0ddc4dbe3cd5415c6b6e657538eb809fc3778/bootstrap-tools.tar.xz"; - sha256 = "0810fe74f8cd09831f177d075bd451a66b71278d3cc8db55b07c5e38ef3fbf3f"; - }; -} diff --git a/pkgs/stdenv/linux/bootstrap-files/armv6l-unknown-linux-musleabihf.nix b/pkgs/stdenv/linux/bootstrap-files/armv6l-unknown-linux-musleabihf.nix deleted file mode 100644 index e445a7b..0000000 --- a/pkgs/stdenv/linux/bootstrap-files/armv6l-unknown-linux-musleabihf.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ - busybox = import { - url = "https://wdtz.org/files/xmz441m69qrlfdw47l2k10zf87fsya6r-stdenv-bootstrap-tools-armv6l-unknown-linux-musleabihf/on-server/busybox"; - sha256 = "01d0hp1xgrriiy9w0sd9vbqzwxnpwiyah80pi4vrpcmbwji36j1i"; - executable = true; - }; - bootstrapTools = import { - url = "https://wdtz.org/files/xmz441m69qrlfdw47l2k10zf87fsya6r-stdenv-bootstrap-tools-armv6l-unknown-linux-musleabihf/on-server/bootstrap-tools.tar.xz"; - sha256 = "1r9mz9w8y5jd7gfwfsrvs20qarzxy7bvrp5dlm41hnx6z617if1h"; - }; -} diff --git a/pkgs/stdenv/linux/bootstrap-files/armv7l-unknown-linux-gnueabihf.nix b/pkgs/stdenv/linux/bootstrap-files/armv7l-unknown-linux-gnueabihf.nix deleted file mode 100644 index 74d1584..0000000 --- a/pkgs/stdenv/linux/bootstrap-files/armv7l-unknown-linux-gnueabihf.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - # Note: do not use Hydra as a source URL. Ask a member of the - # infrastructure team to mirror the job. - busybox = import { - # from job: https://hydra.nixos.org/job/nixpkgs/cross-trunk/bootstrapTools.armv7l.dist/latest - # from build: https://hydra.nixos.org/build/114203060 - url = "http://tarballs.nixos.org/stdenv-linux/armv7l/0eb0ddc4dbe3cd5415c6b6e657538eb809fc3778/busybox"; - # note: the following hash is different than the above hash, due to executable = true - sha256 = "18qc6w2yykh7nvhjklsqb2zb3fjh4p9r22nvmgj32jr1mjflcsjn"; - executable = true; - }; - bootstrapTools = import { - # from job: https://hydra.nixos.org/job/nixpkgs/cross-trunk/bootstrapTools.armv7l.dist/latest - # from build: https://hydra.nixos.org/build/114203060 - url = "http://tarballs.nixos.org/stdenv-linux/armv7l/0eb0ddc4dbe3cd5415c6b6e657538eb809fc3778/bootstrap-tools.tar.xz"; - sha256 = "cf2968e8085cd3e6b3e9359624060ad24d253800ede48c5338179f6e0082c443"; - }; -} diff --git a/pkgs/stdenv/linux/bootstrap-files/i686-unknown-linux-gnu.nix b/pkgs/stdenv/linux/bootstrap-files/i686-unknown-linux-gnu.nix deleted file mode 100644 index 91709d7..0000000 --- a/pkgs/stdenv/linux/bootstrap-files/i686-unknown-linux-gnu.nix +++ /dev/null @@ -1,21 +0,0 @@ -# Autogenerated by maintainers/scripts/bootstrap-files/refresh-tarballs.bash as: -# $ ./refresh-tarballs.bash --targets=i686-unknown-linux-gnu -# -# Metadata: -# - nixpkgs revision: 125cefd4cf8f857e5ff1aceaef9230ba578a033d -# - hydra build: https://hydra.nixos.org/job/nixpkgs/trunk/stdenvBootstrapTools.i686-unknown-linux-gnu.build/latest -# - resolved hydra build: https://hydra.nixos.org/build/247889988 -# - instantiated derivation: /nix/store/chcf0brhdyn7ihmb14n0w4rm2a59gqrw-stdenv-bootstrap-tools.drv -# - output directory: /nix/store/5x6dldhza7if5s6wsicaxa8fbndyixps-stdenv-bootstrap-tools -# - build time: Fri, 26 Jan 2024 22:04:03 +0000 -{ - bootstrapTools = import { - url = "http://tarballs.nixos.org/stdenv/i686-unknown-linux-gnu/125cefd4cf8f857e5ff1aceaef9230ba578a033d/bootstrap-tools.tar.xz"; - hash = "sha256-KTAh3t91aJMiMO/7NFOjUz6fXI9Iu+H7cuODreWz9N8="; - }; - busybox = import { - url = "http://tarballs.nixos.org/stdenv/i686-unknown-linux-gnu/125cefd4cf8f857e5ff1aceaef9230ba578a033d/busybox"; - hash = "sha256-omz+ZT0bhMkAZcDs9evA2PNpO6VHUozdtjMgdui6fxw="; - executable = true; - }; -} diff --git a/pkgs/stdenv/linux/bootstrap-files/mips64el-unknown-linux-gnuabi64.nix b/pkgs/stdenv/linux/bootstrap-files/mips64el-unknown-linux-gnuabi64.nix deleted file mode 100644 index 452a247..0000000 --- a/pkgs/stdenv/linux/bootstrap-files/mips64el-unknown-linux-gnuabi64.nix +++ /dev/null @@ -1,25 +0,0 @@ -# -# Files came from this Hydra build: -# -# https://hydra.nixos.org/build/182757245 -# -# Which used nixpkgs revision ef3fe254f3c59455386bc92fe84164f9679b92b1 -# to instantiate: -# -# /nix/store/a2bvv663wjnyhq8m7v84aspsd3sgf9h6-stdenv-bootstrap-tools-mips64el-unknown-linux-gnuabi64.drv -# -# and then built: -# -# /nix/store/aw3dmsrh22831l83vi3q9apg9qi3x8ms-stdenv-bootstrap-tools-mips64el-unknown-linux-gnuabi64 -# -{ - busybox = import { - url = "http://tarballs.nixos.org/stdenv-linux/mips64el/ef3fe254f3c59455386bc92fe84164f9679b92b1/busybox"; - sha256 = "sha256-sTE58ofjqAqX3Xtq1g9wDxzIe6Vo//GHbicfqJoivDI="; - executable = true; - }; - 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-files/mips64el-unknown-linux-gnuabin32.nix b/pkgs/stdenv/linux/bootstrap-files/mips64el-unknown-linux-gnuabin32.nix deleted file mode 100644 index cf26c21..0000000 --- a/pkgs/stdenv/linux/bootstrap-files/mips64el-unknown-linux-gnuabin32.nix +++ /dev/null @@ -1,25 +0,0 @@ -# -# Files came from this Hydra build: -# -# https://hydra.nixos.org/build/188389586 -# -# Which used nixpkgs revision 97d9c84e1df4397b43ecb39359f1bd003cd44585 -# to instantiate: -# -# /nix/store/hakn8s85s9011v61r6svp5qy8x1y64fv-stdenv-bootstrap-tools-mips64el-unknown-linux-gnuabin32.drv -# -# and then built: -# -# /nix/store/rjgybpnf3yiqyhvl2n2lx31jf800fii2-stdenv-bootstrap-tools-mips64el-unknown-linux-gnuabin32 -# -{ - busybox = import { - url = "http://tarballs.nixos.org/stdenv-linux/mips64el-n32/97d9c84e1df4397b43ecb39359f1bd003cd44585/busybox"; - sha256 = "sha256-4N3G1qYA7vitjhsIW17pR6UixIuzrq4vZXa8F0/X4iI="; - executable = true; - }; - bootstrapTools = import { - url = "http://tarballs.nixos.org/stdenv-linux/mips64el-n32/97d9c84e1df4397b43ecb39359f1bd003cd44585/bootstrap-tools.tar.xz"; - sha256 = "sha256-LWrpN6su2yNVurUyhZP34OiZyzgh7MfN13fIIbou8KI="; - }; -} diff --git a/pkgs/stdenv/linux/bootstrap-files/mipsel-unknown-linux-gnu.nix b/pkgs/stdenv/linux/bootstrap-files/mipsel-unknown-linux-gnu.nix deleted file mode 100644 index 42f2e87..0000000 --- a/pkgs/stdenv/linux/bootstrap-files/mipsel-unknown-linux-gnu.nix +++ /dev/null @@ -1,25 +0,0 @@ -# -# Files came from this Hydra build: -# -# https://hydra.nixos.org/build/185311909 -# -# Which used nixpkgs revision 5bd14b3cfe2f87a2e2b074645aba39c69563e4bc -# to instantiate: -# -# /nix/store/184fa520zv8ls9fzcqyfa5dmkp8kf6xr-stdenv-bootstrap-tools-mipsel-unknown-linux-gnu.drv -# -# and then built: -# -# /nix/store/i46mrzinxi9a5incliwhksmk947ff4wn-stdenv-bootstrap-tools-mipsel-unknown-linux-gnu -# -{ - busybox = import { - url = "http://tarballs.nixos.org/stdenv-linux/mipsel/5bd14b3cfe2f87a2e2b074645aba39c69563e4bc/busybox"; - hash = "sha256-EhuzjL52VEIOfEcFdVGZaDMClQbMc9V9ISrTUNaA7HQ="; - executable = true; - }; - bootstrapTools = import { - url = "http://tarballs.nixos.org/stdenv-linux/mipsel/5bd14b3cfe2f87a2e2b074645aba39c69563e4bc/bootstrap-tools.tar.xz"; - hash = "sha256-OEGgLJOLnV+aobsb+P8mY3Dp8qbeVODBH6x3aUE/MGM="; - }; -} diff --git a/pkgs/stdenv/linux/bootstrap-files/powerpc64-unknown-linux-gnuabielfv2.nix b/pkgs/stdenv/linux/bootstrap-files/powerpc64-unknown-linux-gnuabielfv2.nix deleted file mode 100644 index ac7c948..0000000 --- a/pkgs/stdenv/linux/bootstrap-files/powerpc64-unknown-linux-gnuabielfv2.nix +++ /dev/null @@ -1,21 +0,0 @@ -# Autogenerated by maintainers/scripts/bootstrap-files/refresh-tarballs.bash as: -# $ ./refresh-tarballs.bash --targets=powerpc64-unknown-linux-gnuabielfv2 -# -# Metadata: -# - nixpkgs revision: 57cf2e0b24fb52344cc718913eaed78f389b1319 -# - hydra build: https://hydra.nixos.org/job/nixpkgs/cross-trunk/bootstrapTools.powerpc64-unknown-linux-gnuabielfv2.build/latest -# - resolved hydra build: https://hydra.nixos.org/build/252872323 -# - instantiated derivation: /nix/store/yaa735jz1r1n863gzv3c8szl77lsgg8d-stdenv-bootstrap-tools-powerpc64-unknown-linux-gnuabielfv2.drv -# - output directory: /nix/store/8frm8kk8gzpv31r289ai5jgkwfikmpm4-stdenv-bootstrap-tools-powerpc64-unknown-linux-gnuabielfv2 -# - build time: Sat, 09 Mar 2024 11:26:00 +0000 -{ - bootstrapTools = import { - url = "http://tarballs.nixos.org/stdenv/powerpc64-unknown-linux-gnuabielfv2/57cf2e0b24fb52344cc718913eaed78f389b1319/bootstrap-tools.tar.xz"; - hash = "sha256-CvMRR2tUs5nzAkuS6cUYNjrNKxX3E+g9C7T7P48m2Ys="; - }; - busybox = import { - url = "http://tarballs.nixos.org/stdenv/powerpc64-unknown-linux-gnuabielfv2/57cf2e0b24fb52344cc718913eaed78f389b1319/busybox"; - hash = "sha256-+vnQrVBHg793JIdQR4Y9KuqdmNZ+Ic0FZvVqrPOKnOY="; - executable = true; - }; -} diff --git a/pkgs/stdenv/linux/bootstrap-files/powerpc64le-unknown-linux-gnu.nix b/pkgs/stdenv/linux/bootstrap-files/powerpc64le-unknown-linux-gnu.nix deleted file mode 100644 index c35cb9b..0000000 --- a/pkgs/stdenv/linux/bootstrap-files/powerpc64le-unknown-linux-gnu.nix +++ /dev/null @@ -1,25 +0,0 @@ -# -# Files came from this Hydra build: -# -# https://hydra.nixos.org/build/186237511 -# -# Which used nixpkgs revision ac43c444780a80e789fd14fe2114acd4a3b5cf9d -# to instantiate: -# -# /nix/store/nhjbza9vlcyhp9zxfz6lwpc3m2ghrpzj-stdenv-bootstrap-tools-powerpc64le-unknown-linux-gnu.drv -# -# and then built: -# -# /nix/store/fklpm7fy6cp5wz55w0gd8wakyqvzapjx-stdenv-bootstrap-tools-powerpc64le-unknown-linux-gnu -# -{ - busybox = import { - url = "http://tarballs.nixos.org/stdenv-linux/powerpc64le/ac43c444780a80e789fd14fe2114acd4a3b5cf9d/busybox"; - sha256 = "sha256-jtPEAsht4AUAG4MLK8xocQSfveUR4ppU1lS4bGI1VN4="; - executable = true; - }; - bootstrapTools = import { - url = "http://tarballs.nixos.org/stdenv-linux/powerpc64le/ac43c444780a80e789fd14fe2114acd4a3b5cf9d/bootstrap-tools.tar.xz"; - sha256 = "sha256-MpIDnpZUK3M17qlnuoxfnK0EgxRosm3TMW1WfPZ1+jU="; - }; -} diff --git a/pkgs/stdenv/linux/bootstrap-files/riscv64-unknown-linux-gnu.nix b/pkgs/stdenv/linux/bootstrap-files/riscv64-unknown-linux-gnu.nix deleted file mode 100644 index 2a3bf37..0000000 --- a/pkgs/stdenv/linux/bootstrap-files/riscv64-unknown-linux-gnu.nix +++ /dev/null @@ -1,26 +0,0 @@ -# -# Files came from this Hydra build: -# -# https://hydra.nixos.org/build/246376732 -# -# Which used nixpkgs revision 160cedc144aced7a35a91440b46b74ffacd52682 -# to instantiate: -# -# /nix/store/cpiajh4l83b08pynwiwkpxj53d78pcxr-stdenv-bootstrap-tools-riscv64-unknown-linux-gnu.drv -# -# and then built: -# -# /nix/store/8a92pj40awdw585mcb9dvm4nyb03k3q3-stdenv-bootstrap-tools-riscv64-unknown-linux-gnu -# -{ - busybox = import { - url = "http://tarballs.nixos.org/stdenv-linux/riscv64/160cedc144aced7a35a91440b46b74ffacd52682/busybox"; - sha256 = "sha256-OGO96QUzs2n5pGipn/V87AxzUY9OWKZl417nE8HdZIE="; - executable = true; - }; - - bootstrapTools = import { - url = "http://tarballs.nixos.org/stdenv-linux/riscv64/160cedc144aced7a35a91440b46b74ffacd52682/bootstrap-tools.tar.xz"; - sha256 = "sha256-0LxRd7fdafQezNJ+N2tuOfm0KEwgfRSts5fhP0e0r0s="; - }; -} diff --git a/pkgs/stdenv/linux/bootstrap-files/x86_64-unknown-linux-gnu.nix b/pkgs/stdenv/linux/bootstrap-files/x86_64-unknown-linux-gnu.nix deleted file mode 100644 index 1220397..0000000 --- a/pkgs/stdenv/linux/bootstrap-files/x86_64-unknown-linux-gnu.nix +++ /dev/null @@ -1,21 +0,0 @@ -# Autogenerated by maintainers/scripts/bootstrap-files/refresh-tarballs.bash as: -# $ ./refresh-tarballs.bash --targets=x86_64-unknown-linux-gnu -# -# Metadata: -# - nixpkgs revision: 82b583ba2ba2e5706b35dbe23f31362e62be2a9d -# - hydra build: https://hydra.nixos.org/job/nixpkgs/trunk/stdenvBootstrapTools.x86_64-unknown-linux-gnu.build/latest -# - resolved hydra build: https://hydra.nixos.org/build/249165517 -# - instantiated derivation: /nix/store/7g8mrv13mi4zrx66fw0hy4c46j752wfd-stdenv-bootstrap-tools.drv -# - output directory: /nix/store/dw6vr6m5w7ysrdrbs0s5wdgbjmbnr7gx-stdenv-bootstrap-tools -# - build time: Sat, 10 Feb 2024 01:29:55 +0000 -{ - bootstrapTools = import { - url = "http://tarballs.nixos.org/stdenv/x86_64-unknown-linux-gnu/82b583ba2ba2e5706b35dbe23f31362e62be2a9d/bootstrap-tools.tar.xz"; - hash = "sha256-YQlr088HPoVWBU2jpPhpIMyOyoEDZYDw1y60SGGbUM0="; - }; - busybox = import { - url = "http://tarballs.nixos.org/stdenv/x86_64-unknown-linux-gnu/82b583ba2ba2e5706b35dbe23f31362e62be2a9d/busybox"; - hash = "sha256-QrTEnQTBM1Y/qV9odq8irZkQSD9uOMbs2Q5NgCvKCNQ="; - executable = true; - }; -} diff --git a/pkgs/stdenv/linux/bootstrap-files/x86_64-unknown-linux-musl.nix b/pkgs/stdenv/linux/bootstrap-files/x86_64-unknown-linux-musl.nix deleted file mode 100644 index 283b12b..0000000 --- a/pkgs/stdenv/linux/bootstrap-files/x86_64-unknown-linux-musl.nix +++ /dev/null @@ -1,21 +0,0 @@ -# Autogenerated by maintainers/scripts/bootstrap-files/refresh-tarballs.bash as: -# $ ./refresh-tarballs.bash --targets=x86_64-unknown-linux-musl -# -# Metadata: -# - nixpkgs revision: 125cefd4cf8f857e5ff1aceaef9230ba578a033d -# - hydra build: https://hydra.nixos.org/job/nixpkgs/trunk/stdenvBootstrapTools.x86_64-unknown-linux-musl.build/latest -# - resolved hydra build: https://hydra.nixos.org/build/247890807 -# - instantiated derivation: /nix/store/gqri9n85rsf2983r6m8lkz0h69k4n7xi-stdenv-bootstrap-tools.drv -# - output directory: /nix/store/b0x0qcbf1gsp50jzw52sbbgdp3jlwcjf-stdenv-bootstrap-tools -# - build time: Fri, 26 Jan 2024 22:09:22 +0000 -{ - bootstrapTools = import { - url = "http://tarballs.nixos.org/stdenv/x86_64-unknown-linux-musl/125cefd4cf8f857e5ff1aceaef9230ba578a033d/bootstrap-tools.tar.xz"; - hash = "sha256-t0W2MR7UwtPyYEGcRo9UOuXfaP4uUZKZXEmYGcBOuOA="; - }; - busybox = import { - url = "http://tarballs.nixos.org/stdenv/x86_64-unknown-linux-musl/125cefd4cf8f857e5ff1aceaef9230ba578a033d/busybox"; - hash = "sha256-0U2r3EU61oqhs+oyzFABIFTCVqXOWSP0qEtnyHwjzm0="; - executable = true; - }; -} diff --git a/pkgs/stdenv/linux/bootstrap-tools-musl/default.nix b/pkgs/stdenv/linux/bootstrap-tools-musl/default.nix deleted file mode 100644 index 6d2490a..0000000 --- a/pkgs/stdenv/linux/bootstrap-tools-musl/default.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ system, bootstrapFiles, extraAttrs }: - -derivation ({ - name = "bootstrap-tools"; - - builder = bootstrapFiles.busybox; - - args = [ "ash" "-e" ./scripts/unpack-bootstrap-tools.sh ]; - - tarball = bootstrapFiles.bootstrapTools; - - inherit system; - - # Needed by the GCC wrapper. - langC = true; - langCC = true; - isGNU = true; - hardeningUnsupportedFlags = [ "fortify3" "zerocallusedregs" "trivialautovarinit" ]; -} // extraAttrs) diff --git a/pkgs/stdenv/linux/bootstrap-tools-musl/scripts/unpack-bootstrap-tools.sh b/pkgs/stdenv/linux/bootstrap-tools-musl/scripts/unpack-bootstrap-tools.sh deleted file mode 100644 index b160a74..0000000 --- a/pkgs/stdenv/linux/bootstrap-tools-musl/scripts/unpack-bootstrap-tools.sh +++ /dev/null @@ -1,64 +0,0 @@ -# Unpack the bootstrap tools tarball. -echo Unpacking the bootstrap tools... -$builder mkdir $out -< $tarball $builder unxz | $builder tar x -C $out - -# Set the ELF interpreter / RPATH in the bootstrap binaries. -echo Patching the bootstrap tools... - -if test -f $out/lib/ld.so.?; then - # MIPS case - LD_BINARY=$out/lib/ld.so.? -else - # i686, x86_64 and armv5tel - LD_BINARY=$out/lib/ld-*so.? -fi - -# On x86_64, ld-linux-x86-64.so.2 barfs on patchelf'ed programs. So -# use a copy of patchelf. -LD_LIBRARY_PATH=$out/lib $LD_BINARY $out/bin/cp $out/bin/patchelf . - -for i in $out/bin/* $out/libexec/gcc/*/*/*; do - if [ -L "$i" ]; then continue; fi - if [ -z "${i##*/liblto*}" ]; then continue; fi - echo patching "$i" - LD_LIBRARY_PATH=$out/lib $LD_BINARY \ - ./patchelf --set-interpreter $LD_BINARY --set-rpath $out/lib --force-rpath "$i" -done - -for i in $out/lib/libpcre* $out/lib/libc.so; do - if [ -L "$i" ]; then continue; fi - echo patching "$i" - $out/bin/patchelf --set-rpath $out/lib --force-rpath "$i" -done - -export PATH=$out/bin - -# Fix the libc linker script. -#cat $out/lib/libc.so | sed "s|/nix/store/e*-[^/]*/|$out/|g" > $out/lib/libc.so.tmp -#mv $out/lib/libc.so.tmp $out/lib/libc.so -#cat $out/lib/libpthread.so | sed "s|/nix/store/e*-[^/]*/|$out/|g" > $out/lib/libpthread.so.tmp -#mv $out/lib/libpthread.so.tmp $out/lib/libpthread.so - -# Provide some additional symlinks. -ln -s bash $out/bin/sh -ln -s bzip2 $out/bin/bunzip2 - -# 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 - -# Provide xz (actually only xz -d will work). -echo "#! $out/bin/sh" > $out/bin/xz -echo "exec $builder unxz \"\$@\"" >> $out/bin/xz - -chmod +x $out/bin/egrep $out/bin/fgrep $out/bin/xz diff --git a/pkgs/stdenv/linux/bootstrap-tools/default.nix b/pkgs/stdenv/linux/bootstrap-tools/default.nix deleted file mode 100644 index 6d2490a..0000000 --- a/pkgs/stdenv/linux/bootstrap-tools/default.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ system, bootstrapFiles, extraAttrs }: - -derivation ({ - name = "bootstrap-tools"; - - builder = bootstrapFiles.busybox; - - args = [ "ash" "-e" ./scripts/unpack-bootstrap-tools.sh ]; - - tarball = bootstrapFiles.bootstrapTools; - - inherit system; - - # Needed by the GCC wrapper. - langC = true; - langCC = true; - isGNU = true; - hardeningUnsupportedFlags = [ "fortify3" "zerocallusedregs" "trivialautovarinit" ]; -} // extraAttrs) diff --git a/pkgs/stdenv/linux/bootstrap-tools/scripts/unpack-bootstrap-tools.sh b/pkgs/stdenv/linux/bootstrap-tools/scripts/unpack-bootstrap-tools.sh deleted file mode 100644 index 09bf25f..0000000 --- a/pkgs/stdenv/linux/bootstrap-tools/scripts/unpack-bootstrap-tools.sh +++ /dev/null @@ -1,77 +0,0 @@ -# Unpack the bootstrap tools tarball. -echo Unpacking the bootstrap tools... -$builder mkdir $out -< $tarball $builder unxz | $builder tar x -C $out - -# Set the ELF interpreter / RPATH in the bootstrap binaries. -echo Patching the bootstrap tools... - -if test -f $out/lib/ld.so.?; then - # MIPS case - LD_BINARY=$out/lib/ld.so.? -elif test -f $out/lib/ld64.so.?; then - # ppc64(le) - LD_BINARY=$out/lib/ld64.so.? -else - # i686, x86_64 and armv5tel - LD_BINARY=$out/lib/ld-*so.? -fi - -# path to version-specific libraries, like libstdc++.so -LIBSTDCXX_SO_DIR=$(echo $out/lib/gcc/*/*) - -# Move version-specific libraries out to avoid library mix when we -# upgrade gcc. -# TODO(trofi): update bootstrap tarball script and tarballs to put them -# into expected location directly. -LD_LIBRARY_PATH=$out/lib $LD_BINARY $out/bin/mv $out/lib/libstdc++.* $LIBSTDCXX_SO_DIR/ - -# On x86_64, ld-linux-x86-64.so.2 barfs on patchelf'ed programs. So -# use a copy of patchelf. -LD_LIBRARY_PATH=$out/lib $LD_BINARY $out/bin/cp $out/bin/patchelf . - -# Older versions of the bootstrap-files did not compile their -# patchelf with -static-libgcc, so we have to be very careful not to -# run patchelf on the same copy of libgcc_s that it links against. -LD_LIBRARY_PATH=$out/lib $LD_BINARY $out/bin/cp $out/lib/libgcc_s.so.1 . -LD_LIBRARY_PATH=.:$out/lib:$LIBSTDCXX_SO_DIR $LD_BINARY \ - ./patchelf --set-rpath $out/lib --force-rpath $out/lib/libgcc_s.so.1 - -for i in $out/bin/* $out/libexec/gcc/*/*/*; do - if [ -L "$i" ]; then continue; fi - if [ -z "${i##*/liblto*}" ]; then continue; fi - echo patching "$i" - LD_LIBRARY_PATH=$out/lib:$LIBSTDCXX_SO_DIR $LD_BINARY \ - ./patchelf --set-interpreter $LD_BINARY --set-rpath $out/lib:$LIBSTDCXX_SO_DIR --force-rpath "$i" -done - -for i in $out/lib/librt-*.so $out/lib/libpcre*; do - if [ -L "$i" ]; then continue; fi - echo patching "$i" - $out/bin/patchelf --set-rpath $out/lib --force-rpath "$i" -done - -export PATH=$out/bin - -# Provide some additional symlinks. -ln -s bash $out/bin/sh -ln -s bzip2 $out/bin/bunzip2 - -# 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 - -# Provide xz (actually only xz -d will work). -echo "#! $out/bin/sh" > $out/bin/xz -echo "exec $builder unxz \"\$@\"" >> $out/bin/xz - -chmod +x $out/bin/egrep $out/bin/fgrep $out/bin/xz diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix deleted file mode 100644 index ec19b10..0000000 --- a/pkgs/stdenv/linux/default.nix +++ /dev/null @@ -1,699 +0,0 @@ -# This file constructs the standard build environment for the -# Linux platform. It's completely pure; that is, it relies on no -# external (non-Nix) tools, such as /usr/bin/gcc, and it contains a C -# compiler and linker that do not search in default locations, -# ensuring purity of components produced by it. -# -# It starts from prebuilt seed bootstrapFiles and creates a series of -# nixpkgs instances (stages) to gradually rebuild stdenv, which -# is used to build all other packages (including the bootstrapFiles). -# -# Goals of the bootstrap process: -# 1. final stdenv must not reference any of the bootstrap files. -# 2. final stdenv must not contain any of the bootstrap files. -# 3. final stdenv must not contain any of the files directly -# generated by the bootstrap code generators (assembler, linker, -# compiler). -# -# These goals ensure that final packages and final stdenv are built -# exclusively using nixpkgs package definitions and don't depend -# on bootstrapTools (via direct references, inclusion -# of copied code, or code compiled directly by bootstrapTools). -# -# Stages are described below along with their definitions. -# -# Debugging stdenv dependency graph: -# An useful tool to explore dependencies across stages is to use -# '__bootPackages' attribute of 'stdenv. Examples of last 3 stages: -# - stdenv -# - stdenv.__bootPackages.stdenv -# - stdenv.__bootPackages.stdenv.__bootPackages.stdenv -# - ... and so on. -# -# To explore build-time dependencies in graphical form one can use -# the following: -# $ nix-store --query --graph $(nix-instantiate -A stdenv) | -# grep -P -v '[.]sh|[.]patch|bash|[.]tar' | # avoid clutter -# dot -Tsvg > stdenv-final.svg -# -# To find all the packages built by a particular stdenv instance: -# $ for stage in 0 1 2 3 4; do -# echo "stage${stage} used in:" -# nix-store --query --graph $(nix-instantiate -A stdenv) | -# grep -P ".*bootstrap-stage${stage}-stdenv.*->.*" | -# sed 's/"[0-9a-z]\{32\}-/"/g' -# done -# -# To verify which stdenv was used to build a given final package: -# $ nix-store --query --graph $(nix-instantiate -A stdenv) | -# grep -P -v '[.]sh|[.]patch|bash|[.]tar' | -# grep -P '.*stdenv.*->.*glibc-2' -# "...-bootstrap-stage2-stdenv-linux.drv" -> "...-glibc-2.35-224.drv"; -# -# For a TUI (rather than CLI) view, you can use: -# -# $ nix-tree --derivation $(nix-instantiate -A stdenv) -{ 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; - }; - }; - - # 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 -}: - -assert crossSystem == localSystem; - -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; - - commonGccOverrides = { - # Use a deterministically built compiler - # see https://github.com/NixOS/nixpkgs/issues/108475 for context - reproducibleBuild = true; - profiledCompiler = false; - - # It appears that libcc1 (which is not a g++ plugin; it is a gdb plugin) gets linked against - # the libstdc++ from the compiler that *built* g++, not the libstdc++ which was just built. - # This causes a reference chain from stdenv to the bootstrapFiles: - # - # stdenv -> gcc-lib -> xgcc-lib -> bootstrapFiles - # - disableGdbPlugin = true; - }; - - 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"; - }; - }) // { 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 ? [] }: - - let - - thisStdenv = import ../generic { - name = "${name}-stdenv-linux"; - buildPlatform = localSystem; - 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} - ''; - shell = "${bootstrapTools}/bin/bash"; - initialPath = [bootstrapTools]; - - 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 - ''; - }); - - overrides = self: super: (overrides self super) // { fetchurl = thisStdenv.fetchurlBoot; }; - }; - - in { - inherit config overlays; - stdenv = thisStdenv; - }; - -in - assert bootstrapTools.passthru.isFromBootstrapFiles or false; # sanity check -[ - - ({}: { - __raw = true; - - 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"; - - 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; - }; - }) - - - # Create the first "real" standard environment. This one consists - # of bootstrap tools only, and a minimal Glibc to keep the GCC - # configure script happy. - # - # For clarity, we only use the previous stage when specifying these - # stages. So stageN should only ever have references for stage{N-1}. - # - # 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: - # previous stage0 stdenv: - assert isFromBootstrapFiles prevStage.binutils.bintools; - assert isFromBootstrapFiles prevStage."${localSystem.libc}"; - assert isFromBootstrapFiles prevStage.gcc-unwrapped; - assert isFromBootstrapFiles prevStage.coreutils; - assert isFromBootstrapFiles prevStage.gnugrep; - stageFun prevStage { - name = "bootstrap-stage1"; - - # 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; }; - }; - - # `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: - assert isBuiltByBootstrapFilesCompiler prevStage.binutils-unwrapped; - 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; - ${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. - # We inherit this until stage3, in stage4 it will be rebuilt using the adjacent bash/runtimeShell pkg. - # 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"; - }; - 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"; - - # 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; }; - - # 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 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: - # previous stage1 stdenv: - assert isBuiltByBootstrapFilesCompiler prevStage.binutils-unwrapped; - assert isFromBootstrapFiles prevStage."${localSystem.libc}"; - assert isBuiltByBootstrapFilesCompiler prevStage.gcc-unwrapped; - assert isFromBootstrapFiles prevStage.coreutils; - assert isFromBootstrapFiles prevStage.gnugrep; - assert isBuiltByBootstrapFilesCompiler prevStage.patchelf; - stageFun prevStage { - 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++"; - }); - - }; - - # `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: - # previous stage2 stdenv: - 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 ]); - 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 - ]; - }) - - - # Construct a fourth stdenv that uses the new GCC. But coreutils is - # still from the bootstrap tools. - # - (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 isBuiltByNixpkgsCompiler prevStage.patchelf; - stageFun prevStage { - 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; - }; - - # 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 - ]; - }) - - # 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 - # as dynamically linked versions of all other tools. - # - # When updating stdenvLinux, make sure that the result has no - # dependency (`nix-store -qR') on bootstrapTools or the first - # binutils built. - # - (prevStage: - # previous stage4 stdenv; see stage3 comment regarding gcc, - # which applies here as well. - assert isBuiltByNixpkgsCompiler prevStage.binutils-unwrapped; - assert isBuiltByNixpkgsCompiler prevStage.${localSystem.libc}; - assert isBuiltByNixpkgsCompiler prevStage.gcc-unwrapped; - assert isBuiltByNixpkgsCompiler prevStage.coreutils; - assert isBuiltByNixpkgsCompiler prevStage.gnugrep; - assert isBuiltByNixpkgsCompiler prevStage.patchelf; - { - inherit config overlays; - stdenv = import ../generic rec { - name = "stdenv-linux"; - - buildPlatform = localSystem; - hostPlatform = localSystem; - targetPlatform = localSystem; - inherit config; - - preHook = commonPreHook; - - 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 - ]; - - cc = prevStage.gcc; - - shell = cc.shell; - - 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; - }; - - 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: - # previous stage5 stdenv; see stage3 comment regarding gcc, - # which applies here as well. - assert isBuiltByNixpkgsCompiler prevStage.binutils-unwrapped; - assert isBuiltByNixpkgsCompiler prevStage.${localSystem.libc}; - assert isBuiltByNixpkgsCompiler prevStage.gcc-unwrapped; - assert isBuiltByNixpkgsCompiler prevStage.coreutils; - assert isBuiltByNixpkgsCompiler prevStage.gnugrep; - assert isBuiltByNixpkgsCompiler prevStage.patchelf; - { 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 deleted file mode 100644 index f58e807..0000000 --- a/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix +++ /dev/null @@ -1,36 +0,0 @@ -{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 = []; - }; - - 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; - - # 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 deleted file mode 100644 index 8743303..0000000 --- a/pkgs/stdenv/linux/make-bootstrap-tools.nix +++ /dev/null @@ -1,294 +0,0 @@ -{ 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++" ]; - }); -in with pkgs; rec { - - - coreutilsMinimal = coreutils.override (args: { - # We want coreutils without ACL/attr support. - aclSupport = false; - attrSupport = false; - # Our tooling currently can't handle scripts in bin/, only ELFs and symlinks. - singleBinary = "symlinks"; - }); - - tarMinimal = gnutar.override { acl = null; }; - - busyboxMinimal = busybox.override { - useMusl = lib.meta.availableOn stdenv.hostPlatform musl; - enableStatic = true; - enableMinimal = true; - extraConfig = '' - CONFIG_ASH y - CONFIG_ASH_ECHO y - CONFIG_ASH_TEST y - CONFIG_ASH_OPTIMIZE_FOR_SIZE y - CONFIG_MKDIR y - CONFIG_TAR y - CONFIG_UNXZ y - ''; - }; - - bootGCC = gcc.cc.override { enableLTO = false; }; - bootBinutils = binutils.bintools.override { - withAllTargets = false; - # Don't need two linkers, disable whatever's not primary/default. - enableGold = false; - # bootstrap is easier w/static - enableShared = false; - }; - - build = - let - # ${libc.src}/sysdeps/unix/sysv/linux/loongarch/lp64/libnsl.abilist does not exist! - withLibnsl = !stdenv.hostPlatform.isLoongArch64; - in - stdenv.mkDerivation { - name = "stdenv-bootstrap-tools"; - - meta = { - # Increase priority to unblock nixpkgs-unstable - # https://github.com/NixOS/nixpkgs/pull/104679#issuecomment-732267288 - schedulingPriority = 200; - }; - - nativeBuildInputs = [ buildPackages.nukeReferences buildPackages.cpio ]; - - 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 - - # 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" - - # 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" - - 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 -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 - - 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 - - '' + '' - 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/" - - 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 - - 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/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 = []; - }; - - 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"; - }; - - bootstrapTools = - 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; - } - 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"; - - test = derivation { - name = "test-bootstrap-tools"; - inherit (stdenv.hostPlatform) system; # We cannot "cross test" - builder = bootstrapFiles.busybox; - args = [ "ash" "-e" "-c" "eval \"$buildCommand\"" ]; - - 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 - - '' + 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 ' >> 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 - ''; - }; -} diff --git a/pkgs/stdenv/native/default.nix b/pkgs/stdenv/native/default.nix deleted file mode 100644 index 242bf9d..0000000 --- a/pkgs/stdenv/native/default.nix +++ /dev/null @@ -1,173 +0,0 @@ -{ lib -, localSystem, crossSystem, config, overlays, crossOverlays ? [] -}: - -assert crossSystem == localSystem; - -let - inherit (localSystem) system; - - shell = - 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"]; - - prehookBase = '' - # Disable purity tests; it's allowed (even needed) to link to - # libraries outside the Nix store (like the C library). - export NIX_ENFORCE_PURITY= - export NIX_ENFORCE_NO_NATIVE="''${NIX_ENFORCE_NO_NATIVE-1}" - ''; - - prehookFreeBSD = '' - ${prehookBase} - - alias make=gmake - alias tar=gtar - alias sed=gsed - export MAKE=gmake - shopt -s expand_aliases - ''; - - prehookOpenBSD = '' - ${prehookBase} - - alias make=gmake - alias grep=ggrep - alias mv=gmv - alias ln=gln - alias sed=gsed - alias tar=gtar - - export MAKE=gmake - shopt -s expand_aliases - ''; - - prehookNetBSD = '' - ${prehookBase} - - alias make=gmake - alias sed=gsed - alias tar=gtar - export MAKE=gmake - shopt -s expand_aliases - ''; - - # prevent libtool from failing to find dynamic libraries - prehookCygwin = '' - ${prehookBase} - - shopt -s expand_aliases - 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 []); - - # A function that builds a "native" stdenv (one that uses tools in - # /usr etc.). - makeStdenv = - { cc, fetchurl, extraPath ? [], overrides ? (self: super: { }), extraNativeBuildInputs ? [] }: - - import ../generic { - buildPlatform = localSystem; - hostPlatform = localSystem; - 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; - - 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; - }; - -in - -[ - - ({}: 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; - }; - 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; - }; - }) - - # Using that, build a stdenv that adds the ‘xz’ command (which most systems - # don't have, so we mustn't rely on the native environment providing it). - (prevStage: { - inherit config overlays; - stdenv = makeStdenv { - inherit (prevStage.stdenv) cc fetchurl; - extraPath = [ prevStage.xz ]; - overrides = self: super: { inherit (prevStage) fetchurl xz; }; - extraNativeBuildInputs = if localSystem.isLinux then [ prevStage.patchelf ] else []; - }; - }) - -] diff --git a/pkgs/stdenv/nix/default.nix b/pkgs/stdenv/nix/default.nix deleted file mode 100644 index e9e9936..0000000 --- a/pkgs/stdenv/nix/default.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ lib -, crossSystem, localSystem, config, overlays -, bootStages -, ... -}: - -assert crossSystem == localSystem; - -bootStages ++ [ - (prevStage: { - inherit config overlays; - - stdenv = import ../generic rec { - inherit config; - - inherit (prevStage.stdenv) buildPlatform hostPlatform targetPlatform; - - preHook = '' - export NIX_ENFORCE_PURITY="''${NIX_ENFORCE_PURITY-1}" - export NIX_ENFORCE_NO_NATIVE="''${NIX_ENFORCE_NO_NATIVE-1}" - export NIX_IGNORE_LD_THROUGH_GCC=1 - ''; - - initialPath = (import ../generic/common-path.nix) { pkgs = prevStage; }; - - cc = import ../../build-support/cc-wrapper { - inherit lib; - nativeTools = false; - nativePrefix = lib.optionalString hostPlatform.isSunOS "/usr"; - nativeLibc = true; - inherit (prevStage) stdenvNoCC binutils coreutils gnugrep; - cc = prevStage.gcc.cc; - isGNU = true; - shell = prevStage.bash + "/bin/sh"; - }; - - shell = prevStage.bash + "/bin/sh"; - - fetchurlBoot = prevStage.stdenv.fetchurlBoot; - - overrides = self: super: { - inherit cc; - inherit (cc) binutils; - inherit (prevStage) - gzip bzip2 xz bash coreutils diffutils findutils gawk - gnumake gnused gnutar gnugrep gnupatch perl; - }; - }; - }) -] diff --git a/pkgs/stdenv/tests/succeedOnFailure.nix b/pkgs/stdenv/tests/succeedOnFailure.nix deleted file mode 100644 index fef7f17..0000000 --- a/pkgs/stdenv/tests/succeedOnFailure.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ stdenv }: - -stdenv.mkDerivation { - name = "stdenv-test-succeedOnFailure"; - - succeedOnFailure = true; - - passAsFile = [ "buildCommand" ]; - buildCommand = '' - mkdir $out - echo foo > $out/foo - exit 1 - ''; -} diff --git a/pkgs/top-level/base-packages.nix b/pkgs/top-level/base-packages.nix deleted file mode 100644 index 5c07506..0000000 --- a/pkgs/top-level/base-packages.nix +++ /dev/null @@ -1,170 +0,0 @@ -/* 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; - -{ - # A module system style type tag - # - # Allows the nixpkgs fixpoint, usually known as `pkgs` to be distinguished - # nominally. - # - # pkgs._type == "pkgs" - # pkgs.pkgsStatic._type == "pkgs" - # - # Design note: - # While earlier stages of nixpkgs fixpoint construction are supertypes of this - # stage, they're generally not usable in places where a `pkgs` is expected. - # (earlier stages being the various `super` variables that precede - # all-packages.nix) - _type = "pkgs"; - - # A stdenv capable of building 32-bit binaries. - # On x86_64-linux, it uses GCC compiled with multilib support; on i686-linux, - # it's just the plain stdenv. - 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 = [ ]; - } - ); - - mkStdenvNoLibs = stdenv: - let - bintools = stdenv.cc.bintools.override { - libc = null; - noLibc = true; - }; - in - stdenv.override { - cc = stdenv.cc.override { - libc = null; - noLibc = true; - extraPackages = [ ]; - inherit bintools; - }; - allowedRequisites = - lib.mapNullable (rs: rs ++ [ bintools ]) (stdenv.allowedRequisites or null); - }; - - stdenvNoLibs = - 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. - overrideCC stdenv buildPackages.llvmPackages.clangNoCompilerRt - else mkStdenvNoLibs stdenv; - - gccStdenvNoLibs = mkStdenvNoLibs gccStdenv; - clangStdenvNoLibs = mkStdenvNoLibs clangStdenv; - - # For convenience, allow callers to get the path to Nixpkgs. - path = ../..; - - ### Helper functions. - inherit lib config overlays; - - # do not import 'appendToName' to get consistent package-names with the same - # set of package-parameters: https://github.com/NixOS/nixpkgs/issues/68519 - inherit (lib) lowPrio hiPrio makeOverridable; - - inherit (lib) recurseIntoAttrs; - - # This is intended to be the reverse of recurseIntoAttrs, as it is - # defined now it exists mainly for documentation purposes, but you - # can also override this with recurseIntoAttrs to recurseInto all - # the Attrs which is useful for testing massive changes. Ideally, - # every package subset not marked with recurseIntoAttrs should be - # marked with this. - inherit (lib) dontRecurseIntoAttrs; - - stringsWithDeps = lib.stringsWithDeps; - - tests = callPackages ../test { }; - - # These are used when buiding compiler-rt / libgcc, prior to building libc. - preLibcCrossHeaders = - 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; - - # We can choose: - 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 - 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}"; - - libcCross = assert stdenv.targetPlatform != stdenv.buildPlatform; libcCrossChooser stdenv.targetPlatform.libc; - - threadsCross = threadsCrossFor null; - 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; - }; - - 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; - - runtimeShell = "${runtimeShellPackage}${runtimeShellPackage.shellPath}"; - runtimeShellPackage = bash; -} diff --git a/pkgs/top-level/config.nix b/pkgs/top-level/config.nix deleted file mode 100644 index 67a9a60..0000000 --- a/pkgs/top-level/config.nix +++ /dev/null @@ -1,185 +0,0 @@ -# This file defines the structure of the `config` nixpkgs option. - -# This file is tested in `pkgs/test/config.nix`. -# Run tests with: -# -# nix-build -A tests.config -# - -{ config, lib, ... }: - -let - inherit (lib) - literalExpression - mapAttrsToList - mkOption - optionals - 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. - ''); - }); - - options = { - - /* Internal stuff */ - - # Hide built-in module system options from docs. - _module.args = mkOption { - internal = true; - }; - - warnings = mkOption { - type = types.listOf types.str; - default = []; - internal = true; - }; - - /* Config options */ - - warnUndeclaredOptions = mkOption { - description = "Whether to warn when `config` contains an unrecognized attribute."; - type = types.bool; - default = false; - }; - - doCheckByDefault = mkMassRebuild { - feature = "run `checkPhase` by default"; - }; - - strictDepsByDefault = mkMassRebuild { - feature = "set `strictDeps` to true by default"; - }; - - structuredAttrsByDefault = mkMassRebuild { - feature = "set `__structuredAttrs` to true by default"; - }; - - enableParallelBuildingByDefault = mkMassRebuild { - feature = "set `enableParallelBuilding` to true by default"; - }; - - configurePlatformsByDefault = mkMassRebuild { - feature = "set `configurePlatforms` to `[\"build\" \"host\"]` by default"; - }; - - contentAddressedByDefault = mkMassRebuild { - feature = "set `__contentAddressed` to true by default"; - }; - - allowAliases = mkOption { - type = types.bool; - default = true; - description = '' - Whether to expose old attribute names for compatibility. - - The recommended setting is to enable this, as it - improves backward compatibility, easing updates. - - The only reason to disable aliases is for continuous - integration purposes. For instance, Nixpkgs should - not depend on aliases in its internal code. Projects - that aren't Nixpkgs should be cautious of instantly - removing all usages of aliases, as migrating too soon - can break compatibility with the stable Nixpkgs releases. - ''; - }; - - allowUnfree = mkOption { - type = types.bool; - default = false; - # getEnv part is in check-meta.nix - defaultText = literalExpression ''false || builtins.getEnv "NIXPKGS_ALLOW_UNFREE" == "1"''; - description = '' - Whether to allow unfree packages. - - See [Installing unfree packages](https://nixos.org/manual/nixpkgs/stable/#sec-allow-unfree) in the NixOS manual. - ''; - }; - - allowBroken = mkOption { - type = types.bool; - default = false; - # getEnv part is in check-meta.nix - defaultText = literalExpression ''false || builtins.getEnv "NIXPKGS_ALLOW_BROKEN" == "1"''; - description = '' - Whether to allow broken packages. - - See [Installing broken packages](https://nixos.org/manual/nixpkgs/stable/#sec-allow-broken) in the NixOS manual. - ''; - }; - - allowUnsupportedSystem = mkOption { - type = types.bool; - default = false; - # getEnv part is in check-meta.nix - defaultText = literalExpression ''false || builtins.getEnv "NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM" == "1"''; - description = '' - Whether to allow unsupported packages. - - See [Installing packages on unsupported systems](https://nixos.org/manual/nixpkgs/stable/#sec-allow-unsupported-system) in the NixOS manual. - ''; - }; - - cudaSupport = mkMassRebuild { - type = types.bool; - default = false; - feature = "build packages with CUDA support by default"; - }; - - rocmSupport = mkMassRebuild { - type = types.bool; - default = false; - feature = "build packages with ROCm support by default"; - }; - - showDerivationWarnings = mkOption { - type = types.listOf (types.enum [ "maintainerless" ]); - default = []; - description = '' - Which warnings to display for potentially dangerous - or deprecated values passed into `stdenv.mkDerivation`. - - A list of warnings can be found in - [/pkgs/stdenv/generic/check-meta.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/check-meta.nix). - - This is not a stable interface; warnings may be added, changed - or removed without prior notice. - ''; - }; - - checkMeta = mkOption { - type = types.bool; - default = false; - description = '' - Whether to check that the `meta` attribute of derivations are correct during evaluation time. - ''; - }; - }; - -in { - - freeformType = - 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 {} - ); - }; - -} diff --git a/pkgs/top-level/default.nix b/pkgs/top-level/default.nix deleted file mode 100644 index 828b72e..0000000 --- a/pkgs/top-level/default.nix +++ /dev/null @@ -1,144 +0,0 @@ -/* This function composes the Nix Packages collection. It: - - 1. Elaborates `localSystem` and `crossSystem` with defaults as needed. - - 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 - - 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 - - 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 - # subtle division of labor between these two `*System`s and the three - # `*Platform`s. - localSystem - -, lib ? import ../../lib - -, # The system packages will ultimately be run on. - crossSystem ? localSystem - -, # 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 to apply to target packages only. - crossOverlays ? [] - -, # 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 - -, # Ignore unexpected args. - ... -} @ args: - -let # Rename the function arguments - config0 = config; - crossSystem0 = crossSystem; - -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 - ; - - localSystem = lib.systems.elaborate args.localSystem; - - # Condition preserves sharing which in turn affects equality. - # - # See `lib.systems.equals` documentation for more details. - # - # Note that it is generally not possible to compare systems as given in - # parameters, e.g. if systems are initialized as - # - # localSystem = { system = "x86_64-linux"; }; - # crossSystem = { config = "x86_64-unknown-linux-gnu"; }; - # - # 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; - - # Allow both: - # { /* the config */ } and - # { pkgs, ... } : { /* the config */ } - config1 = - if lib.isFunction config0 - then config0 { inherit pkgs; } - else config0; - - configEval = lib.evalModules { - modules = [ - ./config.nix - ({ options, ... }: { - _file = "nixpkgs.config"; - config = config1; - }) - ]; - class = "nixpkgsConfig"; - }; - - # take all the rest as-is - config = lib.showWarnings configEval.config.warnings configEval.config; - - # A few packages make a new package set to draw their dependencies from. - # (Currently to get a cross tool chain, or forced-i686 package.) Rather than - # give `all-packages.nix` all the arguments to this function, even ones that - # don't concern it, we give it this function to "re-call" nixpkgs, inheriting - # whatever arguments it doesn't explicitly provide. This way, - # `all-packages.nix` doesn't know more than it needs too. - # - # It's OK that `args` doesn't include default arguments from this file: - # they'll be deterministically inferred. In fact we must *not* include them, - # because it's important that if some parameter which affects the default is - # substituted with a different argument, the default is re-inferred. - # - # To put this in concrete terms, this function is basically just used today to - # use package for a different platform for the current platform (namely cross - # compiling toolchains and 32-bit packages on x86_64). In both those cases we - # want the provided non-native `localSystem` argument to affect the stdenv - # chosen. - # - # NB!!! This thing gets its `config` argument from `args`, i.e. it's actually - # `config0`. It is important to keep it to `config0` format (as opposed to the - # result of `evalModules`, i.e. the `config` variable above) throughout all - # nixpkgs evaluations since the above function `config0 -> config` implemented - # via `evalModules` is not idempotent. In other words, if you add `config` to - # `newArgs`, expect strange very hard to debug errors! (Yes, I'm speaking from - # experience here.) - nixpkgsFun = newArgs: import ./. (args // newArgs); - - # 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); - - boot = import ../stdenv/booter.nix { inherit lib allPackages; }; - - stages = stdenvStages { - inherit lib localSystem crossSystem config overlays crossOverlays; - }; - - pkgs = boot stages; - -in checked pkgs diff --git a/pkgs/top-level/impure.nix b/pkgs/top-level/impure.nix deleted file mode 100644 index 9a05545..0000000 --- a/pkgs/top-level/impure.nix +++ /dev/null @@ -1,88 +0,0 @@ -/* 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; - -in - -{ # 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; } - -# 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 - # $HOME/.config/nixpkgs/config.nix. - 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 {} - -, # 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 - isDir = path: builtins.pathExists (path + "/."); - pathOverlays = try (toString ) ""; - homeOverlaysFile = homeDir + "/.config/nixpkgs/overlays.nix"; - homeOverlaysDir = homeDir + "/.config/nixpkgs/overlays"; - 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)) - 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 [] - -, crossOverlays ? [] - -, ... -} @ 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; -}) diff --git a/pkgs/top-level/splice.nix b/pkgs/top-level/splice.nix deleted file mode 100644 index 9ac0fe2..0000000 --- a/pkgs/top-level/splice.nix +++ /dev/null @@ -1,168 +0,0 @@ -# The `splicedPackages' package set, and its use by `callPackage` -# -# The `buildPackages` pkg set is a new concept, and the vast majority package -# expression (the other *.nix files) are not designed with it in mind. This -# presents us with a problem with how to get the right version (build-time vs -# run-time) of a package to a consumer that isn't used to thinking so cleverly. -# -# The solution is to splice the package sets together as we do below, so every -# `callPackage`d expression in fact gets both versions. Each derivation (and -# each derivation's outputs) consists of the run-time version, augmented with -# a `__spliced.buildHost` field for the build-time version, and -# `__spliced.hostTarget` field for the run-time version. -# -# For performance reasons, rather than uniformally splice in all cases, we only -# do so when `pkgs` and `buildPackages` are distinct. The `actuallySplice` -# parameter there the boolean value of that equality check. -lib: pkgs: actuallySplice: - -let - - spliceReal = - { pkgsBuildBuild - , pkgsBuildHost - , pkgsBuildTarget - , pkgsHostHost - , pkgsHostTarget - , pkgsTargetTarget - }: - let - mash = - # Other pkgs sets - pkgsBuildBuild // pkgsBuildTarget // pkgsHostHost // pkgsTargetTarget - # The same pkgs sets one probably intends - // pkgsBuildHost // pkgsHostTarget; - merge = name: { - inherit name; - value = - let - defaultValue = mash.${name}; - # `or {}` is for the non-derivation attsert splicing case, where `{}` is the identity. - valueBuildBuild = pkgsBuildBuild.${name} or { }; - valueBuildHost = pkgsBuildHost.${name} or { }; - valueBuildTarget = pkgsBuildTarget.${name} or { }; - valueHostHost = pkgsHostHost.${name} or { }; - valueHostTarget = pkgsHostTarget.${name} or { }; - valueTargetTarget = pkgsTargetTarget.${name} or { }; - 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; - }); - }; - # 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: - 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}); - 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; - }; - in - lib.listToAttrs (map merge (lib.attrNames mash)); - - splicePackages = - { pkgsBuildBuild - , pkgsBuildHost - , pkgsBuildTarget - , pkgsHostHost - , pkgsHostTarget - , pkgsTargetTarget - } @ args: - if actuallySplice then spliceReal args else pkgsHostTarget; - - splicedPackages = splicePackages - { - inherit (pkgs) - 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; - }; - - splicedPackagesWithXorg = splicedPackages // builtins.removeAttrs splicedPackages.xorg [ - "callPackage" - "newScope" - "overrideScope" - "packages" - ]; - -in - -{ - inherit splicePackages; - - # We use `callPackage' to be able to omit function arguments that can be - # obtained `pkgs` or `buildPackages` and their `xorg` package sets. Use - # `newScope' for sets of packages in `pkgs' (see e.g. `gnome' below). - callPackage = pkgs.newScope { }; - - callPackages = lib.callPackagesWith splicedPackagesWithXorg; - - newScope = extra: lib.callPackageWith (splicedPackagesWithXorg // extra); - - # prefill 2 fields of the function for convenience - makeScopeWithSplicing = lib.makeScopeWithSplicing splicePackages pkgs.newScope; - makeScopeWithSplicing' = lib.makeScopeWithSplicing' { inherit splicePackages; inherit (pkgs) newScope; }; - - # generate 'otherSplices' for 'makeScopeWithSplicing' - generateSplicesForMkScope = attr: - let - split = X: lib.splitString "." "${X}.${attr}"; - in - { - # nulls should never be reached - selfBuildBuild = lib.attrByPath (split "pkgsBuildBuild") null pkgs; - selfBuildHost = lib.attrByPath (split "pkgsBuildHost") null pkgs; - selfBuildTarget = lib.attrByPath (split "pkgsBuildTarget") null pkgs; - selfHostHost = lib.attrByPath (split "pkgsHostHost") null pkgs; - selfHostTarget = lib.attrByPath (split "pkgsHostTarget") null pkgs; - selfTargetTarget = lib.attrByPath (split "pkgsTargetTarget") { } pkgs; - }; - - # Haskell package sets need this because they reimplement their own - # `newScope`. - __splicedPackages = splicedPackages // { recurseForDerivations = false; }; -} diff --git a/pkgs/top-level/stage.nix b/pkgs/top-level/stage.nix deleted file mode 100644 index 1cbf033..0000000 --- a/pkgs/top-level/stage.nix +++ /dev/null @@ -1,413 +0,0 @@ -/* 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`. */ - -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 - -{ - ## Misc parameters kept the same for all stages - ## - - # Utility functions, could just import but passing in for efficiency - lib - -, # Use to reevaluate Nixpkgs - nixpkgsFun - - ## Other parameters - ## - -, # Either null or an object in the form: - # - # { - # pkgsBuildBuild = ...; - # pkgsBuildHost = ...; - # pkgsBuildTarget = ...; - # pkgsHostHost = ...; - # # pkgsHostTarget skipped on purpose. - # pkgsTargetTarget ...; - # } - # - # These are references to adjacent bootstrapping stages. The more familiar - # `buildPackages` and `targetPackages` are defined in terms of them. If null, - # 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 - -, # The standard environment to use for building packages. - stdenv - -, # 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 - -, # 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" - && stdenv.buildPlatform.system != "i686-freebsd" - && stdenv.buildPlatform.system != "x86_64-solaris" - && stdenv.buildPlatform.system != "x86_64-kfreebsd-gnu" - -, # The configuration attribute set - config - -, # A list of overlays (Additional `self: super: { .. }` customization - # functions) to be fixed together in the produced package set - overlays - -} @args: - -let - # This is a function from parsed platforms (like - # stdenv.hostPlatform.parsed) to parsed platforms. - 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; - }); - - - stdenvAdapters = self: super: - let - res = import ../stdenv/adapters.nix { - inherit lib config; - pkgs = self; - }; - in - res // { - stdenvAdapters = res; - }; - - trivialBuilders = self: super: - import ../build-support/trivial-builders { - inherit lib; - inherit (self) config; - inherit (self) runtimeShell stdenv stdenvNoCC; - inherit (self.pkgsBuildHost) jq shellcheck-minimal; - inherit (self.pkgsBuildHost.xorg) lndir; - }; - - stdenvBootstappingAndPlatforms = self: super: - let - 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 - # `pkgs{theirHost}{theirTarget}`. For example, `pkgsBuildHost` means their - # host platform is our build platform, and their target platform is our host - # platform. We only care about their host/target platforms, not their build - # platform, because the the former two alone affect the interface of the - # final package; the build platform is just an implementation detail that - # should not leak. - pkgsBuildBuild = withFallback adjacentPackages.pkgsBuildBuild; - pkgsBuildHost = withFallback adjacentPackages.pkgsBuildHost; - pkgsBuildTarget = withFallback adjacentPackages.pkgsBuildTarget; - pkgsHostHost = withFallback adjacentPackages.pkgsHostHost; - pkgsHostTarget = self // { recurseForDerivations = false; }; # always `self` - pkgsTargetTarget = withFallback adjacentPackages.pkgsTargetTarget; - - # Older names for package sets. Use these when only the host platform of the - # package set matter (i.e. use `buildPackages` where any of `pkgsBuild*` - # would do, and `targetPackages` when any of `pkgsTarget*` would do (if we - # had more than just `pkgsTargetTarget`).) - buildPackages = self.pkgsBuildHost; - pkgs = self.pkgsHostTarget; - targetPackages = self.pkgsTargetTarget; - - inherit stdenv; - }; - - splice = self: super: import ./splice.nix lib self (adjacentPackages != null); - - basePackages = self: super: - let - res = import ./base-packages.nix - { inherit lib noSysDirs config overlays; } - res - self - super; - in - res; - - commonUpdaterPackages = self: super: - let - res = import ../common-updater/packages.nix - { inherit lib noSysDirs config overlays; } - res - self - super; - in - res; - - buildSupportPackages = self: super: - let - 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: - let - inherit (builtins) readDir; - inherit (lib.attrsets) mapAttrs mapAttrsToList mergeAttrsList; - - baseDirectory = ../by-name; - 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}"))); - - 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}"))); - - packageFiles = mergeAttrsList (mapAttrsToList namesForShard (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; - 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; - - # Allow packages to be overridden globally via the `packageOverrides' - # configuration option, which must be a function that takes `pkgs' - # as an argument and returns a set of new or overridden packages. - # The `packageOverrides' function is called with the *original* - # (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); - - # Convenience attributes for instantitating package sets. Each of - # these will instantiate a new version of allPackages. Currently the - # following package sets are provided: - # - # - pkgsCross. where system is a member of lib.systems.examples - # - pkgsMusl - # - pkgsi686Linux - otherPackageSets = self: super: { - # This maps each entry in lib.systems.examples to its own package - # set. Each of these will contain all packages cross compiled for - # 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; - - pkgsLLVM = nixpkgsFun { - 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. - crossSystem = stdenv.hostPlatform // { - useLLVM = true; - linker = "lld"; - }; - }; - - # All packages built with the Musl libc. This will override the - # default GNU libc on Linux systems. Non-Linux systems are not - # 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."; - - # 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; - }; - }; - } 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; - }; - }; - } 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 - else - 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; }; - - # NOTE: each call to extend causes a full nixpkgs rebuild, adding ~130MB - # of allocations. DO NOT USE THIS IN NIXPKGS. - # - # Extend the package set with a single overlay. This preserves - # preexisting overlays. Prefer to initialize with the right overlays - # in one go when calling Nixpkgs, for performance and simplicity. - # Prefer appendOverlays if used repeatedly. - extend = f: self.appendOverlays [ f ]; - - # Fully static packages. - # Currently uses Musl on Linux (couldn’t get static glibc to work). - pkgsStatic = nixpkgsFun ({ - 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"; - }; - }); - - pkgsExtraHardening = nixpkgsFun { - overlays = [ - (self': super': { - pkgsExtraHardening = super'; - stdenv = super'.withDefaultHardeningFlags - ( - super'.stdenv.cc.defaultHardeningFlags ++ [ - "zerocallusedregs" - "trivialautovarinit" - ] - ) - super'.stdenv; - }) - ] ++ overlays; - }; - }; - - # 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 - ]); - -in -# Return the complete set of packages. -lib.fix toFix